Skip to content

Commit

Permalink
v9.2.0
Browse files Browse the repository at this point in the history
  • Loading branch information
Timer committed Jan 15, 2020
1 parent 6b21b45 commit b595dd6
Show file tree
Hide file tree
Showing 8 changed files with 8 additions and 8 deletions.
2 changes: 1 addition & 1 deletion lerna.json
Expand Up @@ -12,5 +12,5 @@
"registry": "https://registry.npmjs.org/"
}
},
"version": "9.1.8-canary.17"
"version": "9.2.0"
}
2 changes: 1 addition & 1 deletion packages/create-next-app/package.json
@@ -1,6 +1,6 @@
{
"name": "create-next-app",
"version": "9.1.8-canary.17",
"version": "9.2.0",
"keywords": [
"react",
"next",
Expand Down
2 changes: 1 addition & 1 deletion packages/next-bundle-analyzer/package.json
@@ -1,6 +1,6 @@
{
"name": "@next/bundle-analyzer",
"version": "9.1.8-canary.17",
"version": "9.2.0",
"main": "index.js",
"license": "MIT",
"repository": {
Expand Down
2 changes: 1 addition & 1 deletion packages/next-mdx/package.json
@@ -1,6 +1,6 @@
{
"name": "@next/mdx",
"version": "9.1.8-canary.17",
"version": "9.2.0",
"main": "index.js",
"license": "MIT",
"repository": {
Expand Down
2 changes: 1 addition & 1 deletion packages/next-plugin-google-analytics/package.json
@@ -1,6 +1,6 @@
{
"name": "@next/plugin-google-analytics",
"version": "9.1.8-canary.17",
"version": "9.2.0",
"nextjs": {
"name": "Google Analytics",
"required-env": [
Expand Down
2 changes: 1 addition & 1 deletion packages/next-plugin-material-ui/package.json
@@ -1,6 +1,6 @@
{
"name": "@next/plugin-material-ui",
"version": "9.1.8-canary.17",
"version": "9.2.0",
"nextjs": {
"name": "Material UI",
"required-env": []
Expand Down
2 changes: 1 addition & 1 deletion packages/next-plugin-sentry/package.json
@@ -1,6 +1,6 @@
{
"name": "@next/plugin-sentry",
"version": "9.1.8-canary.17",
"version": "9.2.0",
"nextjs": {
"name": "Sentry",
"required-env": [
Expand Down
2 changes: 1 addition & 1 deletion packages/next/package.json
@@ -1,6 +1,6 @@
{
"name": "next",
"version": "9.1.8-canary.17",
"version": "9.2.0",
"description": "The React Framework",
"main": "./dist/server/next.js",
"license": "MIT",
Expand Down

1 comment on commit b595dd6

@ijjk
Copy link
Member

@ijjk ijjk commented on b595dd6 Jan 15, 2020

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 Server Mode (Decrease detected βœ“)
General Overall decrease βœ“
zeit/next.js canary v9.1.7 zeit/next.js refs/tags/v9.2.0 Change
buildDuration 13.8s 14s ⚠️ +174ms
nodeModulesSize 49 MB 48.9 MB -94.3 kB
Client Bundles (main, webpack, commons) Overall decrease βœ“
zeit/next.js canary v9.1.7 zeit/next.js refs/tags/v9.2.0 Change
main-HASH.js gzip 6.43 kB 5.1 kB -1.33 kB
webpack-HASH.js gzip 746 B 746 B βœ“
4952ddcd88e7..54d3.js gzip 4.68 kB 4.68 kB βœ“
commons.HASH.js gzip 4.06 kB 4.06 kB βœ“
de003c3a9d30..6ef5.js gzip 13.8 kB 13.7 kB -133 B
framework.HASH.js gzip 39.5 kB 39.1 kB -311 B
Overall change 69.2 kB 67.4 kB -1.77 kB
Client Bundles (main, webpack, commons) Modern Overall decrease βœ“
zeit/next.js canary v9.1.7 zeit/next.js refs/tags/v9.2.0 Change
main-HASH.module.js gzip 5.41 kB 4.16 kB -1.25 kB
webpack-HASH..dule.js gzip 746 B 746 B βœ“
4952ddcd88e7..dule.js gzip 5.56 kB 5.56 kB βœ“
de003c3a9d30..dule.js gzip 12.6 kB 12.5 kB -113 B
framework.HA..dule.js gzip 39.4 kB 39.1 kB -310 B
Overall change 63.7 kB 62.1 kB -1.68 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary v9.1.7 zeit/next.js refs/tags/v9.2.0 Change
polyfills-HASH.js gzip 4.76 kB 4.76 kB βœ“
Overall change 4.76 kB 4.76 kB βœ“
Client Pages Overall decrease βœ“
zeit/next.js canary v9.1.7 zeit/next.js refs/tags/v9.2.0 Change
_app.js gzip 1.33 kB 1.33 kB βœ“
_error.js gzip 4.07 kB 4.07 kB βœ“
hooks.js gzip 779 B 779 B βœ“
index.js gzip 222 B 222 B βœ“
link.js gzip 2.93 kB 2.9 kB -28 B
routerDirect.js gzip 283 B 283 B βœ“
withRouter.js gzip 282 B 282 B βœ“
Overall change 9.89 kB 9.87 kB -28 B
Client Pages Modern Overall decrease βœ“
zeit/next.js canary v9.1.7 zeit/next.js refs/tags/v9.2.0 Change
_app.module.js gzip 757 B 757 B βœ“
_error.module.js gzip 3.06 kB 3.06 kB βœ“
hooks.module.js gzip 371 B 371 B βœ“
index.module.js gzip 212 B 212 B βœ“
link.module.js gzip 2.49 kB 2.47 kB -22 B
routerDirect..dule.js gzip 273 B 273 B βœ“
withRouter.m..dule.js gzip 272 B 272 B βœ“
Overall change 7.43 kB 7.41 kB -22 B
Client Build Manifests
zeit/next.js canary v9.1.7 zeit/next.js refs/tags/v9.2.0 Change
_buildManifest.js gzip 61 B 61 B βœ“
_buildManife..dule.js gzip 61 B 61 B βœ“
Overall change 122 B 122 B βœ“
Rendered Page Sizes Overall decrease βœ“
zeit/next.js canary v9.1.7 zeit/next.js refs/tags/v9.2.0 Change
index.html gzip 1.04 kB 1.02 kB -15 B
link.html gzip 1.04 kB 1.03 kB -14 B
withRouter.html gzip 1.03 kB 1.01 kB -18 B
Overall change 3.11 kB 3.07 kB -47 B

Diffs

Diff for link.js
@@ -445,12 +445,8 @@
 
       var _react = _interopRequireWildcard(__webpack_require__('q1tI'))
 
-      var _propTypes = _interopRequireDefault(__webpack_require__('17x9'))
-
       var _router = _interopRequireDefault(__webpack_require__('nOHt'))
 
-      var _rewriteUrlForExport = __webpack_require__('P5f7')
-
       var _utils = __webpack_require__('g/15')
 
       function isLocal(href) {
@@ -492,6 +488,7 @@
       var observer
       var listeners = new _map['default']()
       var IntersectionObserver = true ? window.IntersectionObserver : undefined
+      var prefetched = {}
 
       function getObserver() {
         // Return shared instance of IntersectionObserver if already created
@@ -658,10 +655,7 @@
               value: function handleRef(ref) {
                 var _this2 = this
 
-                var isPrefetched =
-                  _router['default'].router.pageLoader.prefetched[
-                    this.getHref()
-                  ]
+                var isPrefetched = prefetched[this.getHref()]
 
                 if (this.p && IntersectionObserver && ref && ref.tagName) {
                   this.cleanUpListeners()
@@ -683,7 +677,11 @@
               value: function prefetch() {
                 if (!this.p || false) return // Prefetch the JSON page if asked (only in the client)
 
-                _router['default'].prefetch(this.getHref())
+                var href = this.getHref()
+
+                _router['default'].prefetch(href)
+
+                prefetched[href] = true
               },
             },
             {
@@ -755,6 +753,7 @@
                 // "<page>/index.html" directly.
 
                 if (false) {
+                  var rewriteUrlForNextExport
                 }
 
                 return _react['default'].cloneElement(child, props)
@@ -765,10 +764,8 @@
           return Link
         })(_react.Component)
 
-      Link.propTypes = void 0
-
       if (false) {
-        var exact, warn
+        var exact, PropTypes, warn
       }
 
       var _default = Link
Diff for link.module.js
@@ -320,12 +320,8 @@
 
       var _react = _interopRequireWildcard(__webpack_require__('q1tI'))
 
-      var _propTypes = _interopRequireDefault(__webpack_require__('17x9'))
-
       var _router = _interopRequireDefault(__webpack_require__('nOHt'))
 
-      var _rewriteUrlForExport = __webpack_require__('P5f7')
-
       var _utils = __webpack_require__('g/15')
 
       function isLocal(href) {
@@ -367,6 +363,7 @@
       var observer
       var listeners = new _map.default()
       var IntersectionObserver = true ? window.IntersectionObserver : undefined
+      var prefetched = {}
 
       function getObserver() {
         // Return shared instance of IntersectionObserver if already created
@@ -500,8 +497,7 @@
         }
 
         handleRef(ref) {
-          var isPrefetched =
-            _router.default.router.pageLoader.prefetched[this.getHref()]
+          var isPrefetched = prefetched[this.getHref()]
 
           if (this.p && IntersectionObserver && ref && ref.tagName) {
             this.cleanUpListeners()
@@ -518,7 +514,11 @@
         prefetch() {
           if (!this.p || false) return // Prefetch the JSON page if asked (only in the client)
 
-          _router.default.prefetch(this.getHref())
+          var href = this.getHref()
+
+          _router.default.prefetch(href)
+
+          prefetched[href] = true
         }
 
         render() {
@@ -573,16 +573,15 @@
           // "<page>/index.html" directly.
 
           if (false) {
+            var rewriteUrlForNextExport
           }
 
           return _react.default.cloneElement(child, props)
         }
       }
 
-      Link.propTypes = void 0
-
       if (false) {
-        var exact, warn
+        var exact, PropTypes, warn
       }
 
       var _default = Link
Diff for de003c3a9d30..9a.module.js
@@ -1126,32 +1126,6 @@
       /***/
     },
 
-    /***/ P5f7: /***/ function(module, exports, __webpack_require__) {
-      'use strict'
-
-      var _Object$defineProperty = __webpack_require__('hfKm')
-
-      _Object$defineProperty(exports, '__esModule', {
-        value: true,
-      })
-
-      function rewriteUrlForNextExport(url) {
-        var [pathname, hash] = url.split('#') // tslint:disable-next-line
-
-        var [path, qs] = pathname.split('?')
-        path = path.replace(/\/$/, '') // Append a trailing slash if this path does not have an extension
-
-        if (!/\.[^/]+\/?$/.test(path)) path += '/'
-        if (qs) path += '?' + qs
-        if (hash) path += '#' + hash
-        return path
-      }
-
-      exports.rewriteUrlForNextExport = rewriteUrlForNextExport
-
-      /***/
-    },
-
     /***/ PBE1: /***/ function(module, exports, __webpack_require__) {
       'use strict'
       // https://github.com/tc39/proposal-promise-finally
@@ -1811,8 +1785,6 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
 
       var utils_1 = __webpack_require__('g/15')
 
-      var rewrite_url_for_export_1 = __webpack_require__('P5f7')
-
       var is_dynamic_1 = __webpack_require__('/jkW')
 
       var route_matcher_1 = __webpack_require__('gguc')
@@ -1970,7 +1942,11 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
         } // @deprecated backwards compatibility even though it's a private method.
 
         static _rewriteUrlForNextExport(url) {
-          return rewrite_url_for_export_1.rewriteUrlForNextExport(url)
+          if (false) {
+            var rewriteUrlForNextExport
+          } else {
+            return url
+          }
         }
 
         update(route, mod) {
@@ -2050,7 +2026,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
               this.isSsr = false
             } // marking route changes as a navigation start entry
 
-            if (utils_1.SUPPORTS_PERFORMANCE_USER_TIMING) {
+            if (utils_1.ST) {
               performance.mark('routeChange')
             } // If url and as provided as an object representation,
             // we'll format them into the string version here.
@@ -2064,6 +2040,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
             // "<page>/index.html" directly for the SSR page.
 
             if (false) {
+              var rewriteUrlForNextExport
             }
 
             this.abortComponentLoad(as) // If the url change is only related to a hash change
@@ -2226,7 +2203,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
               }
 
               return this._getData(() =>
-                Component.__NEXT_SPR
+                Component.__N_SSG
                   ? this._getStaticData(as)
                   : this.getInitialProps(
                       Component, // we provide AppTree later so this needs to be `any`
@@ -2377,13 +2354,12 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
               }
 
               return
-            } // @ts-ignore pathname is always defined
-
-            var route = toRoute(pathname) // Prefetch is not supported in development mode because it would trigger on-demand-entries
+            } // Prefetch is not supported in development mode because it would trigger on-demand-entries
 
             if (false) {
-            }
+            } // @ts-ignore pathname is always defined
 
+            var route = toRoute(pathname)
             this.pageLoader.prefetch(route).then(resolve, reject)
           })
         }
@@ -2545,6 +2521,8 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
       exports.isResSent = isResSent
 
       async function loadGetInitialProps(App, ctx) {
+        var _a
+
         if (false) {
           var message
         } // when called from _app `ctx` is nested in `ctx`
@@ -2609,9 +2587,9 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
       }
 
       exports.formatWithValidation = formatWithValidation
-      exports.SUPPORTS_PERFORMANCE = typeof performance !== 'undefined'
-      exports.SUPPORTS_PERFORMANCE_USER_TIMING =
-        exports.SUPPORTS_PERFORMANCE &&
+      exports.SP = typeof performance !== 'undefined'
+      exports.ST =
+        exports.SP &&
         typeof performance.mark === 'function' &&
         typeof performance.measure === 'function'
Diff for de003c3a9d30..5fa7da92f.js
@@ -765,41 +765,6 @@
       /***/
     },
 
-    /***/ P5f7: /***/ function(module, exports, __webpack_require__) {
-      'use strict'
-
-      var _slicedToArray = __webpack_require__('8+Nu')
-
-      var _Object$defineProperty = __webpack_require__('hfKm')
-
-      _Object$defineProperty(exports, '__esModule', {
-        value: true,
-      })
-
-      function rewriteUrlForNextExport(url) {
-        var _url$split = url.split('#'),
-          _url$split2 = _slicedToArray(_url$split, 2),
-          pathname = _url$split2[0],
-          hash = _url$split2[1] // tslint:disable-next-line
-
-        var _pathname$split = pathname.split('?'),
-          _pathname$split2 = _slicedToArray(_pathname$split, 2),
-          path = _pathname$split2[0],
-          qs = _pathname$split2[1]
-
-        path = path.replace(/\/$/, '') // Append a trailing slash if this path does not have an extension
-
-        if (!/\.[^/]+\/?$/.test(path)) path += '/'
-        if (qs) path += '?' + qs
-        if (hash) path += '#' + hash
-        return path
-      }
-
-      exports.rewriteUrlForNextExport = rewriteUrlForNextExport
-
-      /***/
-    },
-
     /***/ PBE1: /***/ function(module, exports, __webpack_require__) {
       'use strict'
       // https://github.com/tc39/proposal-promise-finally
@@ -1475,8 +1440,6 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
 
       var utils_1 = __webpack_require__('g/15')
 
-      var rewrite_url_for_export_1 = __webpack_require__('P5f7')
-
       var is_dynamic_1 = __webpack_require__('/jkW')
 
       var route_matcher_1 = __webpack_require__('gguc')
@@ -1740,7 +1703,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                       _this2.isSsr = false
                     } // marking route changes as a navigation start entry
 
-                    if (utils_1.SUPPORTS_PERFORMANCE_USER_TIMING) {
+                    if (utils_1.ST) {
                       performance.mark('routeChange')
                     } // If url and as provided as an object representation,
                     // we'll format them into the string version here.
@@ -1756,6 +1719,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                     // "<page>/index.html" directly for the SSR page.
 
                     if (false) {
+                      var rewriteUrlForNextExport
                     }
 
                     _this2.abortComponentLoad(as) // If the url change is only related to a hash change
@@ -1939,7 +1903,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
 
                       return _this3
                         ._getData(function() {
-                          return Component.__NEXT_SPR
+                          return Component.__N_SSG
                             ? _this3._getStaticData(as)
                             : _this3.getInitialProps(
                                 Component, // we provide AppTree later so this needs to be `any`
@@ -2125,12 +2089,12 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                       }
 
                       return
-                    } // @ts-ignore pathname is always defined
-
-                    var route = toRoute(pathname) // Prefetch is not supported in development mode because it would trigger on-demand-entries
+                    } // Prefetch is not supported in development mode because it would trigger on-demand-entries
 
                     if (false) {
-                    }
+                    } // @ts-ignore pathname is always defined
+
+                    var route = toRoute(pathname)
 
                     _this4.pageLoader.prefetch(route).then(resolve, reject)
                   })
@@ -2257,7 +2221,11 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
               {
                 key: '_rewriteUrlForNextExport',
                 value: function _rewriteUrlForNextExport(url) {
-                  return rewrite_url_for_export_1.rewriteUrlForNextExport(url)
+                  if (false) {
+                    var rewriteUrlForNextExport
+                  } else {
+                    return url
+                  }
                 },
               },
             ]
@@ -2414,7 +2382,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
       exports.isResSent = isResSent
 
       function loadGetInitialProps(App, ctx) {
-        var message, res, props, _message
+        var _a, message, res, props, _message
 
         return _regeneratorRuntime.async(function loadGetInitialProps$(
           _context
@@ -2427,7 +2395,11 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                   break
                 }
 
-                if (!(App.prototype && App.prototype.getInitialProps)) {
+                if (
+                  !((_a = App.prototype) === null || _a === void 0
+                    ? void 0
+                    : _a.getInitialProps)
+                ) {
                   _context.next = 4
                   break
                 }
@@ -2532,9 +2504,9 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
       }
 
       exports.formatWithValidation = formatWithValidation
-      exports.SUPPORTS_PERFORMANCE = typeof performance !== 'undefined'
-      exports.SUPPORTS_PERFORMANCE_USER_TIMING =
-        exports.SUPPORTS_PERFORMANCE &&
+      exports.SP = typeof performance !== 'undefined'
+      exports.ST =
+        exports.SP &&
         typeof performance.mark === 'function' &&
         typeof performance.measure === 'function'
Diff for framework.HASH.js
@@ -432,100 +432,6 @@
       /***/
     },
 
-    /***/ '16Al': /***/ function(module, exports, __webpack_require__) {
-      'use strict'
-      /**
-       * Copyright (c) 2013-present, Facebook, Inc.
-       *
-       * This source code is licensed under the MIT license found in the
-       * LICENSE file in the root directory of this source tree.
-       */
-
-      var ReactPropTypesSecret = __webpack_require__('WbBG')
-
-      function emptyFunction() {}
-      function emptyFunctionWithReset() {}
-      emptyFunctionWithReset.resetWarningCache = emptyFunction
-
-      module.exports = function() {
-        function shim(
-          props,
-          propName,
-          componentName,
-          location,
-          propFullName,
-          secret
-        ) {
-          if (secret === ReactPropTypesSecret) {
-            // It is still safe when called from React.
-            return
-          }
-          var err = new Error(
-            'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
-              'Use PropTypes.checkPropTypes() to call them. ' +
-              'Read more at http://fb.me/use-check-prop-types'
-          )
-          err.name = 'Invariant Violation'
-          throw err
-        }
-        shim.isRequired = shim
-        function getShim() {
-          return shim
-        }
-        // Important!
-        // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.
-        var ReactPropTypes = {
-          array: shim,
-          bool: shim,
-          func: shim,
-          number: shim,
-          object: shim,
-          string: shim,
-          symbol: shim,
-
-          any: shim,
-          arrayOf: getShim,
-          element: shim,
-          elementType: shim,
-          instanceOf: getShim,
-          node: shim,
-          objectOf: getShim,
-          oneOf: getShim,
-          oneOfType: getShim,
-          shape: getShim,
-          exact: getShim,
-
-          checkPropTypes: emptyFunctionWithReset,
-          resetWarningCache: emptyFunction,
-        }
-
-        ReactPropTypes.PropTypes = ReactPropTypes
-
-        return ReactPropTypes
-      }
-
-      /***/
-    },
-
-    /***/ '17x9': /***/ function(module, exports, __webpack_require__) {
-      /**
-       * Copyright (c) 2013-present, Facebook, Inc.
-       *
-       * This source code is licensed under the MIT license found in the
-       * LICENSE file in the root directory of this source tree.
-       */
-
-      if (false) {
-        var throwOnDirectAccess, ReactIs
-      } else {
-        // By explicitly using `prop-types` you are opting into new production behavior.
-        // http://fb.me/prop-types-in-prod
-        module.exports = __webpack_require__('16Al')()
-      }
-
-      /***/
-    },
-
     /***/ QCnb: /***/ function(module, exports, __webpack_require__) {
       'use strict'
 
@@ -537,22 +443,6 @@
       /***/
     },
 
-    /***/ WbBG: /***/ function(module, exports, __webpack_require__) {
-      'use strict'
-      /**
-       * Copyright (c) 2013-present, Facebook, Inc.
-       *
-       * This source code is licensed under the MIT license found in the
-       * LICENSE file in the root directory of this source tree.
-       */
-
-      var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'
-
-      module.exports = ReactPropTypesSecret
-
-      /***/
-    },
-
     /***/ i8i4: /***/ function(module, exports, __webpack_require__) {
       'use strict'
Diff for framework.HASH.module.js
@@ -432,100 +432,6 @@
       /***/
     },
 
-    /***/ '16Al': /***/ function(module, exports, __webpack_require__) {
-      'use strict'
-      /**
-       * Copyright (c) 2013-present, Facebook, Inc.
-       *
-       * This source code is licensed under the MIT license found in the
-       * LICENSE file in the root directory of this source tree.
-       */
-
-      var ReactPropTypesSecret = __webpack_require__('WbBG')
-
-      function emptyFunction() {}
-      function emptyFunctionWithReset() {}
-      emptyFunctionWithReset.resetWarningCache = emptyFunction
-
-      module.exports = function() {
-        function shim(
-          props,
-          propName,
-          componentName,
-          location,
-          propFullName,
-          secret
-        ) {
-          if (secret === ReactPropTypesSecret) {
-            // It is still safe when called from React.
-            return
-          }
-          var err = new Error(
-            'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
-              'Use PropTypes.checkPropTypes() to call them. ' +
-              'Read more at http://fb.me/use-check-prop-types'
-          )
-          err.name = 'Invariant Violation'
-          throw err
-        }
-        shim.isRequired = shim
-        function getShim() {
-          return shim
-        }
-        // Important!
-        // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.
-        var ReactPropTypes = {
-          array: shim,
-          bool: shim,
-          func: shim,
-          number: shim,
-          object: shim,
-          string: shim,
-          symbol: shim,
-
-          any: shim,
-          arrayOf: getShim,
-          element: shim,
-          elementType: shim,
-          instanceOf: getShim,
-          node: shim,
-          objectOf: getShim,
-          oneOf: getShim,
-          oneOfType: getShim,
-          shape: getShim,
-          exact: getShim,
-
-          checkPropTypes: emptyFunctionWithReset,
-          resetWarningCache: emptyFunction,
-        }
-
-        ReactPropTypes.PropTypes = ReactPropTypes
-
-        return ReactPropTypes
-      }
-
-      /***/
-    },
-
-    /***/ '17x9': /***/ function(module, exports, __webpack_require__) {
-      /**
-       * Copyright (c) 2013-present, Facebook, Inc.
-       *
-       * This source code is licensed under the MIT license found in the
-       * LICENSE file in the root directory of this source tree.
-       */
-
-      if (false) {
-        var throwOnDirectAccess, ReactIs
-      } else {
-        // By explicitly using `prop-types` you are opting into new production behavior.
-        // http://fb.me/prop-types-in-prod
-        module.exports = __webpack_require__('16Al')()
-      }
-
-      /***/
-    },
-
     /***/ QCnb: /***/ function(module, exports, __webpack_require__) {
       'use strict'
 
@@ -537,22 +443,6 @@
       /***/
     },
 
-    /***/ WbBG: /***/ function(module, exports, __webpack_require__) {
-      'use strict'
-      /**
-       * Copyright (c) 2013-present, Facebook, Inc.
-       *
-       * This source code is licensed under the MIT license found in the
-       * LICENSE file in the root directory of this source tree.
-       */
-
-      var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'
-
-      module.exports = ReactPropTypesSecret
-
-      /***/
-    },
-
     /***/ i8i4: /***/ function(module, exports, __webpack_require__) {
       'use strict'
Diff for main-HASH.js
@@ -95,87 +95,6 @@
       /***/
     },
 
-    /***/ '/h46': /***/ function(module, exports, __webpack_require__) {
-      // https://tc39.github.io/proposal-setmap-offrom/#sec-map.of
-      __webpack_require__('cHUd')('Map')
-
-      /***/
-    },
-
-    /***/ '0IRE': /***/ function(module, exports, __webpack_require__) {
-      'use strict'
-
-      var _Map = __webpack_require__('LX0d')
-
-      var _classCallCheck = __webpack_require__('/HRN')
-
-      var _createClass = __webpack_require__('WaGi')
-
-      var _Object$defineProperty = __webpack_require__('hfKm')
-
-      _Object$defineProperty(exports, '__esModule', {
-        value: true,
-      })
-
-      var DataManager =
-        /*#__PURE__*/
-        (function() {
-          function DataManager(data) {
-            _classCallCheck(this, DataManager)
-
-            this.data = new _Map(data)
-          }
-
-          _createClass(DataManager, [
-            {
-              key: 'getData',
-              value: function getData() {
-                return this.data
-              },
-            },
-            {
-              key: 'get',
-              value: function get(key) {
-                return this.data.get(key)
-              },
-            },
-            {
-              key: 'set',
-              value: function set(key, value) {
-                this.data.set(key, value)
-              },
-            },
-            {
-              key: 'overwrite',
-              value: function overwrite(data) {
-                this.data = new _Map(data)
-              },
-            },
-          ])
-
-          return DataManager
-        })()
-
-      exports.DataManager = DataManager
-
-      /***/
-    },
-
-    /***/ '8iia': /***/ function(module, exports, __webpack_require__) {
-      // https://github.com/DavidBruant/Map-Set.prototype.toJSON
-      var classof = __webpack_require__('QMMT')
-      var from = __webpack_require__('RRc/')
-      module.exports = function(NAME) {
-        return function toJSON() {
-          if (classof(this) != NAME)
-            throw TypeError(NAME + "#toJSON isn't generic")
-          return from(this)
-        }
-      }
-
-      /***/
-    },
-
     /***/ ApPD: /***/ function(module, exports, __webpack_require__) {
       // 19.1.2.9 Object.getPrototypeOf(O)
       var toObject = __webpack_require__('JB68')
@@ -428,7 +347,7 @@
       exports.renderError = renderError
       exports[
         'default'
-      ] = exports.emitter = exports.ErrorComponent = exports.router = exports.dataManager = exports.version = void 0
+      ] = exports.emitter = exports.router = exports.version = void 0
 
       var _asyncToGenerator2 = _interopRequireDefault(
         __webpack_require__('+oT+')
@@ -460,12 +379,8 @@
 
       var _headManagerContext = __webpack_require__('FYa8')
 
-      var _dataManagerContext = __webpack_require__('qArv')
-
       var _routerContext = __webpack_require__('qOIg')
 
-      var _dataManager = __webpack_require__('0IRE')
-
       var _querystring = __webpack_require__('s4NR')
 
       var _isDynamic = __webpack_require__('/jkW')
@@ -479,7 +394,7 @@
         document.getElementById('__NEXT_DATA__').textContent
       )
       window.__NEXT_DATA__ = data
-      var version = '9.1.7'
+      var version = '9.2.0'
       exports.version = version
       var props = data.props,
         err = data.err,
@@ -489,9 +404,6 @@
         assetPrefix = data.assetPrefix,
         runtimeConfig = data.runtimeConfig,
         dynamicIds = data.dynamicIds
-      var d = JSON.parse(window.__NEXT_DATA__.dataManager)
-      var dataManager = new _dataManager.DataManager(d)
-      exports.dataManager = dataManager
       var prefix = assetPrefix || '' // With dynamic assetPrefix it's no longer possible to set assetPrefix at the build time
       // So, this is how we do it in the client side at runtime
 
@@ -526,7 +438,6 @@
       var router
       exports.router = router
       var ErrorComponent
-      exports.ErrorComponent = ErrorComponent
       var Component
       var App, onPerfEntry
 
@@ -564,7 +475,7 @@
                   (data.nextExport &&
                     ((0, _isDynamic.isDynamicRoute)(router.pathname) ||
                       location.search)) ||
-                  (Component.__NEXT_SPR && location.search)
+                  (Component && Component.__N_SSG && location.search)
                 ) {
                   // update query on mount for exported pages
                   router.replace(
@@ -584,6 +495,7 @@
                       // client-side hydration. Your app should _never_ use this property.
                       // It may change at any time without notice.
                       _h: 1,
+                      shallow: true,
                     }
                   )
                 }
@@ -749,7 +661,6 @@
                                 Component: Component,
                                 props: props,
                                 err: err,
-                                emitter: emitter,
                               })
                             },
                           }
@@ -763,7 +674,6 @@
                           Component: Component,
                           props: props,
                           err: initialErr,
-                          emitter: emitter,
                         }
                         render(renderCtx)
                         return _context.abrupt('return', emitter)
@@ -885,7 +795,7 @@
                     return pageLoader.loadPage('/_error')
 
                   case 7:
-                    exports.ErrorComponent = ErrorComponent = _context3.sent
+                    ErrorComponent = _context3.sent
                     // In production we do a normal render with the `ErrorComponent` as component.
                     // If we've gotten here upon initial render, we can use the props from the server.
                     // Otherwise, we need to call `getInitialProps` on `App` before mounting.
@@ -945,15 +855,14 @@
       var reactRoot = null
 
       function renderReactElement(reactEl, domEl) {
-        // mark start of hydrate/render
-        if (_utils.SUPPORTS_PERFORMANCE_USER_TIMING) {
-          performance.mark('beforeRender')
-        }
-
         if (false) {
-          var opts, callback
+          var opts
         } else {
-          // The check for `.hydrate` is there to support React alternatives like preact
+          // mark start of hydrate/render
+          if (_utils.ST) {
+            performance.mark('beforeRender')
+          } // The check for `.hydrate` is there to support React alternatives like preact
+
           if (isInitialRender) {
             _reactDom['default'].hydrate(reactEl, domEl, markHydrateComplete)
 
@@ -963,24 +872,26 @@
           }
         }
 
-        if (onPerfEntry && _utils.SUPPORTS_PERFORMANCE_USER_TIMING) {
-          if (!(PerformanceObserver in window)) {
-            window.addEventListener('load', function() {
-              performance.getEntriesByType('paint').forEach(onPerfEntry)
-            })
-          } else {
+        if (onPerfEntry && _utils.ST) {
+          try {
             var observer = new PerformanceObserver(function(list) {
               list.getEntries().forEach(onPerfEntry)
-            })
+            }) // Start observing paint entry types.
+
             observer.observe({
-              entryTypes: ['paint'],
+              type: 'paint',
+              buffered: true,
+            })
+          } catch (e) {
+            window.addEventListener('load', function() {
+              performance.getEntriesByType('paint').forEach(onPerfEntry)
             })
           }
         }
       }
 
       function markHydrateComplete() {
-        if (!_utils.SUPPORTS_PERFORMANCE_USER_TIMING) return
+        if (!_utils.ST) return
         performance.mark('afterHydrate') // mark end of hydration
 
         performance.measure(
@@ -999,7 +910,7 @@
       }
 
       function markRenderComplete() {
-        if (!_utils.SUPPORTS_PERFORMANCE_USER_TIMING) return
+        if (!_utils.ST) return
         performance.mark('afterRender') // mark end of render
 
         var navStartEntries = performance.getEntriesByName(
@@ -1064,17 +975,11 @@
               value: (0, _router.makePublicRouterInstance)(router),
             },
             _react['default'].createElement(
-              _dataManagerContext.DataManagerContext.Provider,
+              _headManagerContext.HeadManagerContext.Provider,
               {
-                value: dataManager,
+                value: headManager.updateHead,
               },
-              _react['default'].createElement(
-                _headManagerContext.HeadManagerContext.Provider,
-                {
-                  value: headManager.updateHead,
-                },
-                children
-              )
+              children
             )
           )
         )
@@ -1219,12 +1124,6 @@
       /***/
     },
 
-    /***/ LX0d: /***/ function(module, exports, __webpack_require__) {
-      module.exports = __webpack_require__('UDep')
-
-      /***/
-    },
-
     /***/ N9n2: /***/ function(module, exports, __webpack_require__) {
       var _Object$create = __webpack_require__('SqZg')
 
@@ -1255,217 +1154,6 @@
       /***/
     },
 
-    /***/ 'RRc/': /***/ function(module, exports, __webpack_require__) {
-      var forOf = __webpack_require__('oioR')
-
-      module.exports = function(iter, ITERATOR) {
-        var result = []
-        forOf(iter, false, result.push, result, ITERATOR)
-        return result
-      }
-
-      /***/
-    },
-
-    /***/ UDep: /***/ function(module, exports, __webpack_require__) {
-      __webpack_require__('wgeU')
-      __webpack_require__('FlQf')
-      __webpack_require__('bBy9')
-      __webpack_require__('g33z')
-      __webpack_require__('XLbu')
-      __webpack_require__('/h46')
-      __webpack_require__('dVTT')
-      module.exports = __webpack_require__('WEpk').Map
-
-      /***/
-    },
-
-    /***/ Wu5q: /***/ function(module, exports, __webpack_require__) {
-      'use strict'
-
-      var dP = __webpack_require__('2faE').f
-      var create = __webpack_require__('oVml')
-      var redefineAll = __webpack_require__('XJU/')
-      var ctx = __webpack_require__('2GTP')
-      var anInstance = __webpack_require__('EXMj')
-      var forOf = __webpack_require__('oioR')
-      var $iterDefine = __webpack_require__('MPFp')
-      var step = __webpack_require__('UO39')
-      var setSpecies = __webpack_require__('TJWN')
-      var DESCRIPTORS = __webpack_require__('jmDH')
-      var fastKey = __webpack_require__('6/1s').fastKey
-      var validate = __webpack_require__('n3ko')
-      var SIZE = DESCRIPTORS ? '_s' : 'size'
-
-      var getEntry = function(that, key) {
-        // fast case
-        var index = fastKey(key)
-        var entry
-        if (index !== 'F') return that._i[index]
-        // frozen object case
-        for (entry = that._f; entry; entry = entry.n) {
-          if (entry.k == key) return entry
-        }
-      }
-
-      module.exports = {
-        getConstructor: function(wrapper, NAME, IS_MAP, ADDER) {
-          var C = wrapper(function(that, iterable) {
-            anInstance(that, C, NAME, '_i')
-            that._t = NAME // collection type
-            that._i = create(null) // index
-            that._f = undefined // first entry
-            that._l = undefined // last entry
-            that[SIZE] = 0 // size
-            if (iterable != undefined)
-              forOf(iterable, IS_MAP, that[ADDER], that)
-          })
-          redefineAll(C.prototype, {
-            // 23.1.3.1 Map.prototype.clear()
-            // 23.2.3.2 Set.prototype.clear()
-            clear: function clear() {
-              for (
-                var that = validate(this, NAME),
-                  data = that._i,
-                  entry = that._f;
-                entry;
-                entry = entry.n
-              ) {
-                entry.r = true
-                if (entry.p) entry.p = entry.p.n = undefined
-                delete data[entry.i]
-              }
-              that._f = that._l = undefined
-              that[SIZE] = 0
-            },
-            // 23.1.3.3 Map.prototype.delete(key)
-            // 23.2.3.4 Set.prototype.delete(value)
-            delete: function(key) {
-              var that = validate(this, NAME)
-              var entry = getEntry(that, key)
-              if (entry) {
-                var next = entry.n
-                var prev = entry.p
-                delete that._i[entry.i]
-                entry.r = true
-                if (prev) prev.n = next
-                if (next) next.p = prev
-                if (that._f == entry) that._f = next
-                if (that._l == entry) that._l = prev
-                that[SIZE]--
-              }
-              return !!entry
-            },
-            // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)
-            // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)
-            forEach: function forEach(callbackfn /* , that = undefined */) {
-              validate(this, NAME)
-              var f = ctx(
-                callbackfn,
-                arguments.length > 1 ? arguments[1] : undefined,
-                3
-              )
-              var entry
-              while ((entry = entry ? entry.n : this._f)) {
-                f(entry.v, entry.k, this)
-                // revert to the last existing entry
-                while (entry && entry.r) entry = entry.p
-              }
-            },
-            // 23.1.3.7 Map.prototype.has(key)
-            // 23.2.3.7 Set.prototype.has(value)
-            has: function has(key) {
-              return !!getEntry(validate(this, NAME), key)
-            },
-          })
-          if (DESCRIPTORS)
-            dP(C.prototype, 'size', {
-              get: function() {
-                return validate(this, NAME)[SIZE]
-              },
-            })
-          return C
-        },
-        def: function(that, key, value) {
-          var entry = getEntry(that, key)
-          var prev, index
-          // change existing entry
-          if (entry) {
-            entry.v = value
-            // create new entry
-          } else {
-            that._l = entry = {
-              i: (index = fastKey(key, true)), // <- index
-              k: key, // <- key
-              v: value, // <- value
-              p: (prev = that._l), // <- previous entry
-              n: undefined, // <- next entry
-              r: false, // <- removed
-            }
-            if (!that._f) that._f = entry
-            if (prev) prev.n = entry
-            that[SIZE]++
-            // add to index
-            if (index !== 'F') that._i[index] = entry
-          }
-          return that
-        },
-        getEntry: getEntry,
-        setStrong: function(C, NAME, IS_MAP) {
-          // add .keys, .values, .entries, [@@iterator]
-          // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11
-          $iterDefine(
-            C,
-            NAME,
-            function(iterated, kind) {
-              this._t = validate(iterated, NAME) // target
-              this._k = kind // kind
-              this._l = undefined // previous
-            },
-            function() {
-              var that = this
-              var kind = that._k
-              var entry = that._l
-              // revert to the last existing entry
-              while (entry && entry.r) entry = entry.p
-              // get next entry
-              if (
-                !that._t ||
-                !(that._l = entry = entry ? entry.n : that._t._f)
-              ) {
-                // or finish the iteration
-                that._t = undefined
-                return step(1)
-              }
-              // return step by kind
-              if (kind == 'keys') return step(0, entry.k)
-              if (kind == 'values') return step(0, entry.v)
-              return step(0, [entry.k, entry.v])
-            },
-            IS_MAP ? 'entries' : 'values',
-            !IS_MAP,
-            true
-          )
-
-          // add [@@species], 23.1.2.2, 23.2.2.2
-          setSpecies(NAME)
-        },
-      }
-
-      /***/
-    },
-
-    /***/ XLbu: /***/ function(module, exports, __webpack_require__) {
-      // https://github.com/DavidBruant/Map-Set.prototype.toJSON
-      var $export = __webpack_require__('Y7ZC')
-
-      $export($export.P + $export.R, 'Map', {
-        toJSON: __webpack_require__('8iia')('Map'),
-      })
-
-      /***/
-    },
-
     /***/ ZDA2: /***/ function(module, exports, __webpack_require__) {
       var _typeof = __webpack_require__('iZP3')
 
@@ -1487,75 +1175,6 @@
       /***/
     },
 
-    /***/ dVTT: /***/ function(module, exports, __webpack_require__) {
-      // https://tc39.github.io/proposal-setmap-offrom/#sec-map.from
-      __webpack_require__('aPfg')('Map')
-
-      /***/
-    },
-
-    /***/ g33z: /***/ function(module, exports, __webpack_require__) {
-      'use strict'
-
-      var strong = __webpack_require__('Wu5q')
-      var validate = __webpack_require__('n3ko')
-      var MAP = 'Map'
-
-      // 23.1 Map Objects
-      module.exports = __webpack_require__('raTm')(
-        MAP,
-        function(get) {
-          return function Map() {
-            return get(this, arguments.length > 0 ? arguments[0] : undefined)
-          }
-        },
-        {
-          // 23.1.3.6 Map.prototype.get(key)
-          get: function get(key) {
-            var entry = strong.getEntry(validate(this, MAP), key)
-            return entry && entry.v
-          },
-          // 23.1.3.9 Map.prototype.set(key, value)
-          set: function set(key, value) {
-            return strong.def(validate(this, MAP), key === 0 ? 0 : key, value)
-          },
-        },
-        strong,
-        true
-      )
-
-      /***/
-    },
-
-    /***/ qArv: /***/ function(module, exports, __webpack_require__) {
-      'use strict'
-
-      var _Object$defineProperty = __webpack_require__('hfKm')
-
-      var __importStar =
-        (this && this.__importStar) ||
-        function(mod) {
-          if (mod && mod.__esModule) return mod
-          var result = {}
-          if (mod != null)
-            for (var k in mod) {
-              if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]
-            }
-          result['default'] = mod
-          return result
-        }
-
-      _Object$defineProperty(exports, '__esModule', {
-        value: true,
-      })
-
-      var React = __importStar(__webpack_require__('q1tI'))
-
-      exports.DataManagerContext = React.createContext(null)
-
-      /***/
-    },
-
     /***/ yLiY: /***/ function(module, exports, __webpack_require__) {
       'use strict'
 
@@ -1583,8 +1202,6 @@
     /***/ zmvN: /***/ function(module, exports, __webpack_require__) {
       'use strict'
 
-      var _regeneratorRuntime = __webpack_require__('ln6h')
-
       var _classCallCheck = __webpack_require__('/HRN')
 
       var _createClass = __webpack_require__('WaGi')
@@ -1594,10 +1211,6 @@
       exports.__esModule = true
       exports['default'] = void 0
 
-      var _asyncToGenerator2 = _interopRequireDefault(
-        __webpack_require__('+oT+')
-      )
-
       var _promise = _interopRequireDefault(__webpack_require__('eVuF'))
 
       var _mitt = _interopRequireDefault(__webpack_require__('dZ6Y'))
@@ -1617,6 +1230,18 @@
             'prefetch'
       var hasNoModule = 'noModule' in document.createElement('script')
 
+      function normalizeRoute(route) {
+        if (route[0] !== '/') {
+          throw new Error(
+            'Route name should start with a "/", got "' + route + '"'
+          )
+        }
+
+        route = route.replace(/\/index$/, '/')
+        if (route === '/') return route
+        return route.replace(/\/$/, '')
+      }
+
       function appendLink(href, rel, as) {
         return new _promise['default'](function(res, rej, link) {
           link = document.createElement('link')
@@ -1639,7 +1264,6 @@
             this.buildId = buildId
             this.assetPrefix = assetPrefix
             this.pageCache = {}
-            this.prefetched = {}
             this.pageRegisterEvents = (0, _mitt['default'])()
             this.loadingRoutes = {}
 
@@ -1662,31 +1286,19 @@
             {
               key: 'getDependencies',
               value: function getDependencies(route) {
+                var _this = this
+
                 return this.promisedBuildManifest.then(function(man) {
                   return (
                     (man[route] &&
                       man[route].map(function(url) {
-                        return '/_next/' + encodeURI(url)
+                        return _this.assetPrefix + '/_next/' + encodeURI(url)
                       })) ||
                     []
                   )
                 })
               },
             },
-            {
-              key: 'normalizeRoute',
-              value: function normalizeRoute(route) {
-                if (route[0] !== '/') {
-                  throw new Error(
-                    'Route name should start with a "/", got "' + route + '"'
-                  )
-                }
-
-                route = route.replace(/\/index$/, '/')
-                if (route === '/') return route
-                return route.replace(/\/$/, '')
-              },
-            },
             {
               key: 'loadPage',
               value: function loadPage(route) {
@@ -1698,18 +1310,18 @@
             {
               key: 'loadPageScript',
               value: function loadPageScript(route) {
-                var _this3 = this
+                var _this2 = this
 
-                route = this.normalizeRoute(route)
+                route = normalizeRoute(route)
                 return new _promise['default'](function(resolve, reject) {
                   var fire = function fire(_ref) {
                     var error = _ref.error,
                       page = _ref.page,
                       mod = _ref.mod
 
-                    _this3.pageRegisterEvents.off(route, fire)
+                    _this2.pageRegisterEvents.off(route, fire)
 
-                    delete _this3.loadingRoutes[route]
+                    delete _this2.loadingRoutes[route]
 
                     if (error) {
                       reject(error)
@@ -1721,7 +1333,7 @@
                     }
                   } // If there's a cached version of the page, let's use it.
 
-                  var cachedPage = _this3.pageCache[route]
+                  var cachedPage = _this2.pageCache[route]
 
                   if (cachedPage) {
                     var error = cachedPage.error,
@@ -1736,7 +1348,7 @@
                     return
                   } // Register a listener to get the page
 
-                  _this3.pageRegisterEvents.on(route, fire) // If the page is loading via SSR, we need to wait for it
+                  _this2.pageRegisterEvents.on(route, fire) // If the page is loading via SSR, we need to wait for it
                   // rather downloading it again.
 
                   if (
@@ -1747,17 +1359,17 @@
                     return
                   }
 
-                  if (!_this3.loadingRoutes[route]) {
-                    _this3.loadingRoutes[route] = true
+                  if (!_this2.loadingRoutes[route]) {
+                    _this2.loadingRoutes[route] = true
 
                     if (true) {
-                      _this3.getDependencies(route).then(function(deps) {
+                      _this2.getDependencies(route).then(function(deps) {
                         deps.forEach(function(d) {
                           if (
                             /\.js$/.test(d) &&
                             !document.querySelector('script[src^="' + d + '"]')
                           ) {
-                            _this3.loadScript(d, route, false)
+                            _this2.loadScript(d, route, false)
                           }
 
                           if (
@@ -1773,7 +1385,7 @@
                           }
                         })
 
-                        _this3.loadRoute(route)
+                        _this2.loadRoute(route)
                       })
                     } else {
                     }
@@ -1784,45 +1396,21 @@
             {
               key: 'loadRoute',
               value: function loadRoute(route) {
-                var _this = this
-
-                return (0, _asyncToGenerator2['default'])(
-                  /*#__PURE__*/
-                  _regeneratorRuntime.mark(function _callee() {
-                    var scriptRoute, url
-                    return _regeneratorRuntime.wrap(function _callee$(
-                      _context
-                    ) {
-                      while (1) {
-                        switch ((_context.prev = _context.next)) {
-                          case 0:
-                            route = _this.normalizeRoute(route)
-                            scriptRoute =
-                              route === '/' ? '/index.js' : route + '.js'
-                            url =
-                              _this.assetPrefix +
-                              '/_next/static/' +
-                              encodeURIComponent(_this.buildId) +
-                              '/pages' +
-                              encodeURI(scriptRoute)
-
-                            _this.loadScript(url, route, true)
-
-                          case 4:
-                          case 'end':
-                            return _context.stop()
-                        }
-                      }
-                    },
-                    _callee)
-                  })
-                )()
+                route = normalizeRoute(route)
+                var scriptRoute = route === '/' ? '/index.js' : route + '.js'
+                var url =
+                  this.assetPrefix +
+                  '/_next/static/' +
+                  encodeURIComponent(this.buildId) +
+                  '/pages' +
+                  encodeURI(scriptRoute)
+                this.loadScript(url, route, true)
               },
             },
             {
               key: 'loadScript',
               value: function loadScript(url, route, isPage) {
-                var _this4 = this
+                var _this3 = this
 
                 var script = document.createElement('script')
 
@@ -1840,7 +1428,7 @@
                   var error = new Error('Error loading script ' + url)
                   error.code = 'PAGE_LOAD_ERROR'
 
-                  _this4.pageRegisterEvents.emit(route, {
+                  _this3.pageRegisterEvents.emit(route, {
                     error: error,
                   })
                 }
@@ -1851,7 +1439,7 @@
             {
               key: 'registerPage',
               value: function registerPage(route, regFn) {
-                var _this5 = this
+                var _this4 = this
 
                 var register = function register() {
                   try {
@@ -1860,15 +1448,15 @@
                       page: mod['default'] || mod,
                       mod: mod,
                     }
-                    _this5.pageCache[route] = pageData
+                    _this4.pageCache[route] = pageData
 
-                    _this5.pageRegisterEvents.emit(route, pageData)
+                    _this4.pageRegisterEvents.emit(route, pageData)
                   } catch (error) {
-                    _this5.pageCache[route] = {
+                    _this4.pageCache[route] = {
                       error: error,
                     }
 
-                    _this5.pageRegisterEvents.emit(route, {
+                    _this4.pageRegisterEvents.emit(route, {
                       error: error,
                     })
                   }
@@ -1884,110 +1472,72 @@
             {
               key: 'prefetch',
               value: function prefetch(route, isDependency) {
-                var _this2 = this
+                var _this5 = this
 
-                return (0, _asyncToGenerator2['default'])(
-                  /*#__PURE__*/
-                  _regeneratorRuntime.mark(function _callee2() {
-                    var cn, url, scriptRoute
-                    return _regeneratorRuntime.wrap(function _callee2$(
-                      _context2
-                    ) {
-                      while (1) {
-                        switch ((_context2.prev = _context2.next)) {
-                          case 0:
-                            if (!(cn = navigator.connection)) {
-                              _context2.next = 3
-                              break
-                            }
-
-                            if (!(cn.saveData || /2g/.test(cn.effectiveType))) {
-                              _context2.next = 3
-                              break
-                            }
-
-                            return _context2.abrupt('return')
-
-                          case 3:
-                            url = _this2.assetPrefix
-
-                            if (isDependency) {
-                              url += route
-                            } else {
-                              route = _this2.normalizeRoute(route)
-                              _this2.prefetched[route] = true
-                              scriptRoute =
-                                (route === '/' ? '/index' : route) + '.js'
-
-                              if (true && hasNoModule) {
-                                scriptRoute = scriptRoute.replace(
-                                  /\.js$/,
-                                  '.module.js'
-                                )
-                              }
-
-                              url +=
-                                '/_next/static/' +
-                                encodeURIComponent(_this2.buildId) +
-                                '/pages' +
-                                encodeURI(scriptRoute)
-                            }
-
-                            if (
-                              !document.querySelector(
-                                'link[rel="' +
-                                  relPrefetch +
-                                  '"][href^="' +
-                                  url +
-                                  '"], script[data-next-page="' +
-                                  route +
-                                  '"]'
-                              )
-                            ) {
-                              _context2.next = 7
-                              break
-                            }
-
-                            return _context2.abrupt('return')
-
-                          case 7:
-                            return _context2.abrupt(
-                              'return',
-                              _promise['default']
-                                .all([
-                                  appendLink(
-                                    url,
-                                    relPrefetch,
-                                    url.match(/\.css$/) ? 'style' : 'script'
-                                  ),
-                                  true &&
-                                    !isDependency &&
-                                    _this2
-                                      .getDependencies(route)
-                                      .then(function(urls) {
-                                        return _promise['default'].all(
-                                          urls.map(function(url) {
-                                            return _this2.prefetch(url, true)
-                                          })
-                                        )
-                                      }),
-                                ])
-                                .then(
-                                  // do not return any data
-                                  function() {}, // swallow prefetch errors
-                                  function() {}
-                                )
-                            )
+                // https://github.com/GoogleChromeLabs/quicklink/blob/453a661fa1fa940e2d2e044452398e38c67a98fb/src/index.mjs#L115-L118
+                // License: Apache 2.0
+                var cn
 
-                          case 8:
-                          case 'end':
-                            return _context2.stop()
-                        }
-                      }
-                    },
-                    _callee2)
-                  })
-                )()
+                if ((cn = navigator.connection)) {
+                  // Don't prefetch if using 2G or if Save-Data is enabled.
+                  if (cn.saveData || /2g/.test(cn.effectiveType))
+                    return _promise['default'].resolve()
+                }
+
+                var url
+
+                if (isDependency) {
+                  url = route
+                } else {
+                  route = normalizeRoute(route)
+                  var scriptRoute = (route === '/' ? '/index' : route) + '.js'
+
+                  if (true && hasNoModule) {
+                    scriptRoute = scriptRoute.replace(/\.js$/, '.module.js')
+                  }
+
+                  url =
+                    this.assetPrefix +
+                    '/_next/static/' +
+                    encodeURIComponent(this.buildId) +
+                    '/pages' +
+                    encodeURI(scriptRoute)
+                }
+
+                return _promise['default']
+                  .all(
+                    document.querySelector(
+                      'link[rel="' +
+                        relPrefetch +
+                        '"][href^="' +
+                        url +
+                        '"], script[data-next-page="' +
+                        route +
+                        '"]'
+                    )
+                      ? []
+                      : [
+                          appendLink(
+                            url,
+                            relPrefetch,
+                            url.match(/\.css$/) ? 'style' : 'script'
+                          ),
+                          true &&
+                            !isDependency &&
+                            this.getDependencies(route).then(function(urls) {
+                              return _promise['default'].all(
+                                urls.map(function(url) {
+                                  return _this5.prefetch(url, true)
+                                })
+                              )
+                            }),
+                        ]
+                  )
+                  .then(
+                    // do not return any data
+                    function() {}, // swallow prefetch errors
+                    function() {}
+                  )
               },
             },
           ])
Diff for main-HASH.module.js
@@ -69,66 +69,6 @@
       /***/
     },
 
-    /***/ '/h46': /***/ function(module, exports, __webpack_require__) {
-      // https://tc39.github.io/proposal-setmap-offrom/#sec-map.of
-      __webpack_require__('cHUd')('Map')
-
-      /***/
-    },
-
-    /***/ '0IRE': /***/ function(module, exports, __webpack_require__) {
-      'use strict'
-
-      var _Map = __webpack_require__('LX0d')
-
-      var _Object$defineProperty = __webpack_require__('hfKm')
-
-      _Object$defineProperty(exports, '__esModule', {
-        value: true,
-      })
-
-      class DataManager {
-        constructor(data) {
-          this.data = new _Map(data)
-        }
-
-        getData() {
-          return this.data
-        }
-
-        get(key) {
-          return this.data.get(key)
-        }
-
-        set(key, value) {
-          this.data.set(key, value)
-        }
-
-        overwrite(data) {
-          this.data = new _Map(data)
-        }
-      }
-
-      exports.DataManager = DataManager
-
-      /***/
-    },
-
-    /***/ '8iia': /***/ function(module, exports, __webpack_require__) {
-      // https://github.com/DavidBruant/Map-Set.prototype.toJSON
-      var classof = __webpack_require__('QMMT')
-      var from = __webpack_require__('RRc/')
-      module.exports = function(NAME) {
-        return function toJSON() {
-          if (classof(this) != NAME)
-            throw TypeError(NAME + "#toJSON isn't generic")
-          return from(this)
-        }
-      }
-
-      /***/
-    },
-
     /***/ BMP1: /***/ function(module, exports, __webpack_require__) {
       'use strict'
 
@@ -310,7 +250,7 @@
       exports.__esModule = true
       exports.render = render
       exports.renderError = renderError
-      exports.default = exports.emitter = exports.ErrorComponent = exports.router = exports.dataManager = exports.version = void 0
+      exports.default = exports.emitter = exports.router = exports.version = void 0
 
       var _asyncToGenerator2 = _interopRequireDefault(
         __webpack_require__('+oT+')
@@ -342,12 +282,8 @@
 
       var _headManagerContext = __webpack_require__('FYa8')
 
-      var _dataManagerContext = __webpack_require__('qArv')
-
       var _routerContext = __webpack_require__('qOIg')
 
-      var _dataManager = __webpack_require__('0IRE')
-
       var _querystring = __webpack_require__('s4NR')
 
       var _isDynamic = __webpack_require__('/jkW')
@@ -361,7 +297,7 @@
         document.getElementById('__NEXT_DATA__').textContent
       )
       window.__NEXT_DATA__ = data
-      var version = '9.1.7'
+      var version = '9.2.0'
       exports.version = version
       var {
         props,
@@ -373,9 +309,6 @@
         runtimeConfig,
         dynamicIds,
       } = data
-      var d = JSON.parse(window.__NEXT_DATA__.dataManager)
-      var dataManager = new _dataManager.DataManager(d)
-      exports.dataManager = dataManager
       var prefix = assetPrefix || '' // With dynamic assetPrefix it's no longer possible to set assetPrefix at the build time
       // So, this is how we do it in the client side at runtime
 
@@ -407,7 +340,6 @@
       var router
       exports.router = router
       var ErrorComponent
-      exports.ErrorComponent = ErrorComponent
       var Component
       var App, onPerfEntry
 
@@ -427,7 +359,7 @@
             (data.nextExport &&
               ((0, _isDynamic.isDynamicRoute)(router.pathname) ||
                 location.search)) ||
-            (Component.__NEXT_SPR && location.search)
+            (Component && Component.__N_SSG && location.search)
           ) {
             // update query on mount for exported pages
             router.replace(
@@ -447,6 +379,7 @@
                 // client-side hydration. Your app should _never_ use this property.
                 // It may change at any time without notice.
                 _h: 1,
+                shallow: true,
               }
             )
           }
@@ -534,7 +467,6 @@
                     Component,
                     props,
                     err,
-                    emitter,
                   })
                 },
               }
@@ -548,7 +480,6 @@
               Component,
               props,
               err: initialErr,
-              emitter,
             }
             render(renderCtx)
             return emitter
@@ -603,9 +534,7 @@
           } // Make sure we log the error to the console, otherwise users can't track down issues.
 
           console.error(err)
-          exports.ErrorComponent = ErrorComponent = yield pageLoader.loadPage(
-            '/_error'
-          ) // In production we do a normal render with the `ErrorComponent` as component.
+          ErrorComponent = yield pageLoader.loadPage('/_error') // In production we do a normal render with the `ErrorComponent` as component.
           // If we've gotten here upon initial render, we can use the props from the server.
           // Otherwise, we need to call `getInitialProps` on `App` before mounting.
 
@@ -640,15 +569,14 @@
       var reactRoot = null
 
       function renderReactElement(reactEl, domEl) {
-        // mark start of hydrate/render
-        if (_utils.SUPPORTS_PERFORMANCE_USER_TIMING) {
-          performance.mark('beforeRender')
-        }
-
         if (false) {
-          var opts, callback
+          var opts
         } else {
-          // The check for `.hydrate` is there to support React alternatives like preact
+          // mark start of hydrate/render
+          if (_utils.ST) {
+            performance.mark('beforeRender')
+          } // The check for `.hydrate` is there to support React alternatives like preact
+
           if (isInitialRender) {
             _reactDom.default.hydrate(reactEl, domEl, markHydrateComplete)
 
@@ -658,24 +586,26 @@
           }
         }
 
-        if (onPerfEntry && _utils.SUPPORTS_PERFORMANCE_USER_TIMING) {
-          if (!(PerformanceObserver in window)) {
-            window.addEventListener('load', () => {
-              performance.getEntriesByType('paint').forEach(onPerfEntry)
-            })
-          } else {
+        if (onPerfEntry && _utils.ST) {
+          try {
             var observer = new PerformanceObserver(list => {
               list.getEntries().forEach(onPerfEntry)
-            })
+            }) // Start observing paint entry types.
+
             observer.observe({
-              entryTypes: ['paint'],
+              type: 'paint',
+              buffered: true,
+            })
+          } catch (e) {
+            window.addEventListener('load', () => {
+              performance.getEntriesByType('paint').forEach(onPerfEntry)
             })
           }
         }
       }
 
       function markHydrateComplete() {
-        if (!_utils.SUPPORTS_PERFORMANCE_USER_TIMING) return
+        if (!_utils.ST) return
         performance.mark('afterHydrate') // mark end of hydration
 
         performance.measure(
@@ -694,7 +624,7 @@
       }
 
       function markRenderComplete() {
-        if (!_utils.SUPPORTS_PERFORMANCE_USER_TIMING) return
+        if (!_utils.ST) return
         performance.mark('afterRender') // mark end of render
 
         var navStartEntries = performance.getEntriesByName(
@@ -752,17 +682,11 @@
               value: (0, _router.makePublicRouterInstance)(router),
             },
             _react.default.createElement(
-              _dataManagerContext.DataManagerContext.Provider,
+              _headManagerContext.HeadManagerContext.Provider,
               {
-                value: dataManager,
+                value: headManager.updateHead,
               },
-              _react.default.createElement(
-                _headManagerContext.HeadManagerContext.Provider,
-                {
-                  value: headManager.updateHead,
-                },
-                children
-              )
+              children
             )
           )
         )
@@ -847,292 +771,6 @@
       /***/
     },
 
-    /***/ LX0d: /***/ function(module, exports, __webpack_require__) {
-      module.exports = __webpack_require__('UDep')
-
-      /***/
-    },
-
-    /***/ 'RRc/': /***/ function(module, exports, __webpack_require__) {
-      var forOf = __webpack_require__('oioR')
-
-      module.exports = function(iter, ITERATOR) {
-        var result = []
-        forOf(iter, false, result.push, result, ITERATOR)
-        return result
-      }
-
-      /***/
-    },
-
-    /***/ UDep: /***/ function(module, exports, __webpack_require__) {
-      __webpack_require__('wgeU')
-      __webpack_require__('FlQf')
-      __webpack_require__('bBy9')
-      __webpack_require__('g33z')
-      __webpack_require__('XLbu')
-      __webpack_require__('/h46')
-      __webpack_require__('dVTT')
-      module.exports = __webpack_require__('WEpk').Map
-
-      /***/
-    },
-
-    /***/ Wu5q: /***/ function(module, exports, __webpack_require__) {
-      'use strict'
-
-      var dP = __webpack_require__('2faE').f
-      var create = __webpack_require__('oVml')
-      var redefineAll = __webpack_require__('XJU/')
-      var ctx = __webpack_require__('2GTP')
-      var anInstance = __webpack_require__('EXMj')
-      var forOf = __webpack_require__('oioR')
-      var $iterDefine = __webpack_require__('MPFp')
-      var step = __webpack_require__('UO39')
-      var setSpecies = __webpack_require__('TJWN')
-      var DESCRIPTORS = __webpack_require__('jmDH')
-      var fastKey = __webpack_require__('6/1s').fastKey
-      var validate = __webpack_require__('n3ko')
-      var SIZE = DESCRIPTORS ? '_s' : 'size'
-
-      var getEntry = function(that, key) {
-        // fast case
-        var index = fastKey(key)
-        var entry
-        if (index !== 'F') return that._i[index]
-        // frozen object case
-        for (entry = that._f; entry; entry = entry.n) {
-          if (entry.k == key) return entry
-        }
-      }
-
-      module.exports = {
-        getConstructor: function(wrapper, NAME, IS_MAP, ADDER) {
-          var C = wrapper(function(that, iterable) {
-            anInstance(that, C, NAME, '_i')
-            that._t = NAME // collection type
-            that._i = create(null) // index
-            that._f = undefined // first entry
-            that._l = undefined // last entry
-            that[SIZE] = 0 // size
-            if (iterable != undefined)
-              forOf(iterable, IS_MAP, that[ADDER], that)
-          })
-          redefineAll(C.prototype, {
-            // 23.1.3.1 Map.prototype.clear()
-            // 23.2.3.2 Set.prototype.clear()
-            clear: function clear() {
-              for (
-                var that = validate(this, NAME),
-                  data = that._i,
-                  entry = that._f;
-                entry;
-                entry = entry.n
-              ) {
-                entry.r = true
-                if (entry.p) entry.p = entry.p.n = undefined
-                delete data[entry.i]
-              }
-              that._f = that._l = undefined
-              that[SIZE] = 0
-            },
-            // 23.1.3.3 Map.prototype.delete(key)
-            // 23.2.3.4 Set.prototype.delete(value)
-            delete: function(key) {
-              var that = validate(this, NAME)
-              var entry = getEntry(that, key)
-              if (entry) {
-                var next = entry.n
-                var prev = entry.p
-                delete that._i[entry.i]
-                entry.r = true
-                if (prev) prev.n = next
-                if (next) next.p = prev
-                if (that._f == entry) that._f = next
-                if (that._l == entry) that._l = prev
-                that[SIZE]--
-              }
-              return !!entry
-            },
-            // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)
-            // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)
-            forEach: function forEach(callbackfn /* , that = undefined */) {
-              validate(this, NAME)
-              var f = ctx(
-                callbackfn,
-                arguments.length > 1 ? arguments[1] : undefined,
-                3
-              )
-              var entry
-              while ((entry = entry ? entry.n : this._f)) {
-                f(entry.v, entry.k, this)
-                // revert to the last existing entry
-                while (entry && entry.r) entry = entry.p
-              }
-            },
-            // 23.1.3.7 Map.prototype.has(key)
-            // 23.2.3.7 Set.prototype.has(value)
-            has: function has(key) {
-              return !!getEntry(validate(this, NAME), key)
-            },
-          })
-          if (DESCRIPTORS)
-            dP(C.prototype, 'size', {
-              get: function() {
-                return validate(this, NAME)[SIZE]
-              },
-            })
-          return C
-        },
-        def: function(that, key, value) {
-          var entry = getEntry(that, key)
-          var prev, index
-          // change existing entry
-          if (entry) {
-            entry.v = value
-            // create new entry
-          } else {
-            that._l = entry = {
-              i: (index = fastKey(key, true)), // <- index
-              k: key, // <- key
-              v: value, // <- value
-              p: (prev = that._l), // <- previous entry
-              n: undefined, // <- next entry
-              r: false, // <- removed
-            }
-            if (!that._f) that._f = entry
-            if (prev) prev.n = entry
-            that[SIZE]++
-            // add to index
-            if (index !== 'F') that._i[index] = entry
-          }
-          return that
-        },
-        getEntry: getEntry,
-        setStrong: function(C, NAME, IS_MAP) {
-          // add .keys, .values, .entries, [@@iterator]
-          // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11
-          $iterDefine(
-            C,
-            NAME,
-            function(iterated, kind) {
-              this._t = validate(iterated, NAME) // target
-              this._k = kind // kind
-              this._l = undefined // previous
-            },
-            function() {
-              var that = this
-              var kind = that._k
-              var entry = that._l
-              // revert to the last existing entry
-              while (entry && entry.r) entry = entry.p
-              // get next entry
-              if (
-                !that._t ||
-                !(that._l = entry = entry ? entry.n : that._t._f)
-              ) {
-                // or finish the iteration
-                that._t = undefined
-                return step(1)
-              }
-              // return step by kind
-              if (kind == 'keys') return step(0, entry.k)
-              if (kind == 'values') return step(0, entry.v)
-              return step(0, [entry.k, entry.v])
-            },
-            IS_MAP ? 'entries' : 'values',
-            !IS_MAP,
-            true
-          )
-
-          // add [@@species], 23.1.2.2, 23.2.2.2
-          setSpecies(NAME)
-        },
-      }
-
-      /***/
-    },
-
-    /***/ XLbu: /***/ function(module, exports, __webpack_require__) {
-      // https://github.com/DavidBruant/Map-Set.prototype.toJSON
-      var $export = __webpack_require__('Y7ZC')
-
-      $export($export.P + $export.R, 'Map', {
-        toJSON: __webpack_require__('8iia')('Map'),
-      })
-
-      /***/
-    },
-
-    /***/ dVTT: /***/ function(module, exports, __webpack_require__) {
-      // https://tc39.github.io/proposal-setmap-offrom/#sec-map.from
-      __webpack_require__('aPfg')('Map')
-
-      /***/
-    },
-
-    /***/ g33z: /***/ function(module, exports, __webpack_require__) {
-      'use strict'
-
-      var strong = __webpack_require__('Wu5q')
-      var validate = __webpack_require__('n3ko')
-      var MAP = 'Map'
-
-      // 23.1 Map Objects
-      module.exports = __webpack_require__('raTm')(
-        MAP,
-        function(get) {
-          return function Map() {
-            return get(this, arguments.length > 0 ? arguments[0] : undefined)
-          }
-        },
-        {
-          // 23.1.3.6 Map.prototype.get(key)
-          get: function get(key) {
-            var entry = strong.getEntry(validate(this, MAP), key)
-            return entry && entry.v
-          },
-          // 23.1.3.9 Map.prototype.set(key, value)
-          set: function set(key, value) {
-            return strong.def(validate(this, MAP), key === 0 ? 0 : key, value)
-          },
-        },
-        strong,
-        true
-      )
-
-      /***/
-    },
-
-    /***/ qArv: /***/ function(module, exports, __webpack_require__) {
-      'use strict'
-
-      var _Object$defineProperty = __webpack_require__('hfKm')
-
-      var __importStar =
-        (this && this.__importStar) ||
-        function(mod) {
-          if (mod && mod.__esModule) return mod
-          var result = {}
-          if (mod != null)
-            for (var k in mod) {
-              if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]
-            }
-          result['default'] = mod
-          return result
-        }
-
-      _Object$defineProperty(exports, '__esModule', {
-        value: true,
-      })
-
-      var React = __importStar(__webpack_require__('q1tI'))
-
-      exports.DataManagerContext = React.createContext(null)
-
-      /***/
-    },
-
     /***/ yLiY: /***/ function(module, exports, __webpack_require__) {
       'use strict'
 
@@ -1165,10 +803,6 @@
       exports.__esModule = true
       exports.default = void 0
 
-      var _asyncToGenerator2 = _interopRequireDefault(
-        __webpack_require__('+oT+')
-      )
-
       var _promise = _interopRequireDefault(__webpack_require__('eVuF'))
 
       var _mitt = _interopRequireDefault(__webpack_require__('dZ6Y'))
@@ -1188,6 +822,18 @@
             'prefetch'
       var hasNoModule = 'noModule' in document.createElement('script')
 
+      function normalizeRoute(route) {
+        if (route[0] !== '/') {
+          throw new Error(
+            'Route name should start with a "/", got "' + route + '"'
+          )
+        }
+
+        route = route.replace(/\/index$/, '/')
+        if (route === '/') return route
+        return route.replace(/\/$/, '')
+      }
+
       function appendLink(href, rel, as) {
         return new _promise.default((res, rej, link) => {
           link = document.createElement('link')
@@ -1206,7 +852,6 @@
           this.buildId = buildId
           this.assetPrefix = assetPrefix
           this.pageCache = {}
-          this.prefetched = {}
           this.pageRegisterEvents = (0, _mitt.default)()
           this.loadingRoutes = {}
 
@@ -1227,29 +872,19 @@
           return this.promisedBuildManifest.then(
             man =>
               (man[route] &&
-                man[route].map(url => '/_next/' + encodeURI(url))) ||
+                man[route].map(
+                  url => this.assetPrefix + '/_next/' + encodeURI(url)
+                )) ||
               []
           )
         }
 
-        normalizeRoute(route) {
-          if (route[0] !== '/') {
-            throw new Error(
-              'Route name should start with a "/", got "' + route + '"'
-            )
-          }
-
-          route = route.replace(/\/index$/, '/')
-          if (route === '/') return route
-          return route.replace(/\/$/, '')
-        }
-
         loadPage(route) {
           return this.loadPageScript(route).then(v => v.page)
         }
 
         loadPageScript(route) {
-          route = this.normalizeRoute(route)
+          route = normalizeRoute(route)
           return new _promise.default((resolve, reject) => {
             var fire = _ref => {
               var { error, page, mod } = _ref
@@ -1322,20 +957,15 @@
         }
 
         loadRoute(route) {
-          var _this = this
-
-          return (0, _asyncToGenerator2.default)(function*() {
-            route = _this.normalizeRoute(route)
-            var scriptRoute = route === '/' ? '/index.js' : route + '.js'
-            var url =
-              _this.assetPrefix +
-              '/_next/static/' +
-              encodeURIComponent(_this.buildId) +
-              '/pages' +
-              encodeURI(scriptRoute)
-
-            _this.loadScript(url, route, true)
-          })()
+          route = normalizeRoute(route)
+          var scriptRoute = route === '/' ? '/index.js' : route + '.js'
+          var url =
+            this.assetPrefix +
+            '/_next/static/' +
+            encodeURIComponent(this.buildId) +
+            '/pages' +
+            encodeURI(scriptRoute)
+          this.loadScript(url, route, true)
         }
 
         loadScript(url, route, isPage) {
@@ -1390,39 +1020,38 @@
         }
 
         prefetch(route, isDependency) {
-          var _this2 = this
-
-          return (0, _asyncToGenerator2.default)(function*() {
-            // https://github.com/GoogleChromeLabs/quicklink/blob/453a661fa1fa940e2d2e044452398e38c67a98fb/src/index.mjs#L115-L118
-            // License: Apache 2.0
-            var cn
-
-            if ((cn = navigator.connection)) {
-              // Don't prefetch if using 2G or if Save-Data is enabled.
-              if (cn.saveData || /2g/.test(cn.effectiveType)) return
-            }
-
-            var url = _this2.assetPrefix
+          // https://github.com/GoogleChromeLabs/quicklink/blob/453a661fa1fa940e2d2e044452398e38c67a98fb/src/index.mjs#L115-L118
+          // License: Apache 2.0
+          var cn
+
+          if ((cn = navigator.connection)) {
+            // Don't prefetch if using 2G or if Save-Data is enabled.
+            if (cn.saveData || /2g/.test(cn.effectiveType))
+              return _promise.default.resolve()
+          }
 
-            if (isDependency) {
-              url += route
-            } else {
-              route = _this2.normalizeRoute(route)
-              _this2.prefetched[route] = true
-              var scriptRoute = (route === '/' ? '/index' : route) + '.js'
+          var url
 
-              if (true && hasNoModule) {
-                scriptRoute = scriptRoute.replace(/\.js$/, '.module.js')
-              }
+          if (isDependency) {
+            url = route
+          } else {
+            route = normalizeRoute(route)
+            var scriptRoute = (route === '/' ? '/index' : route) + '.js'
 
-              url +=
-                '/_next/static/' +
-                encodeURIComponent(_this2.buildId) +
-                '/pages' +
-                encodeURI(scriptRoute)
+            if (true && hasNoModule) {
+              scriptRoute = scriptRoute.replace(/\.js$/, '.module.js')
             }
 
-            if (
+            url =
+              this.assetPrefix +
+              '/_next/static/' +
+              encodeURIComponent(this.buildId) +
+              '/pages' +
+              encodeURI(scriptRoute)
+          }
+
+          return _promise.default
+            .all(
               document.querySelector(
                 'link[rel="' +
                   relPrefetch +
@@ -1432,33 +1061,27 @@
                   route +
                   '"]'
               )
-            ) {
-              return
-            }
-
-            return _promise.default
-              .all([
-                appendLink(
-                  url,
-                  relPrefetch,
-                  url.match(/\.css$/) ? 'style' : 'script'
-                ),
-                true &&
-                  !isDependency &&
-                  _this2
-                    .getDependencies(route)
-                    .then(urls =>
-                      _promise.default.all(
-                        urls.map(url => _this2.prefetch(url, true))
-                      )
+                ? []
+                : [
+                    appendLink(
+                      url,
+                      relPrefetch,
+                      url.match(/\.css$/) ? 'style' : 'script'
                     ),
-              ])
-              .then(
-                // do not return any data
-                () => {}, // swallow prefetch errors
-                () => {}
-              )
-          })()
+                    true &&
+                      !isDependency &&
+                      this.getDependencies(route).then(urls =>
+                        _promise.default.all(
+                          urls.map(url => this.prefetch(url, true))
+                        )
+                      ),
+                  ]
+            )
+            .then(
+              // do not return any data
+              () => {}, // swallow prefetch errors
+              () => {}
+            )
         }
       }
Diff for index.html
@@ -21,13 +21,13 @@
     />
     <link
       rel="preload"
-      href="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
+      href="/_next/static/runtime/webpack-d629b83a65f3e33fa99e.module.js"
       as="script"
       crossorigin="anonymous"
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
+      href="/_next/static/chunks/framework.5bb7f30f859f5f31359f.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -39,13 +39,13 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.08c4064758778ec3689a.module.js"
+      href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.c5cfe57ad45f291e53e4.module.js"
       as="script"
       crossorigin="anonymous"
     />
     <link
       rel="preload"
-      href="/_next/static/runtime/main-6c919dd5a10cd6022375.module.js"
+      href="/_next/static/runtime/main-c1f681b026529749e230.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -53,7 +53,7 @@
   <body>
     <div id="__next">Hello world πŸ‘‹</div>
     <script id="__NEXT_DATA__" type="application/json" crossorigin="anonymous">
-      {"dataManager":"[]","props":{"pageProps":{}},"page":"/","query":{},"buildId":"BUILD_ID"}</script
+      {"props":{"pageProps":{}},"page":"/","query":{},"buildId":"BUILD_ID"}</script
     ><script crossorigin="anonymous" nomodule="">
       !(function() {
         var e = document,
@@ -81,108 +81,108 @@
       src="/_next/static/runtime/polyfills-355bc4b3077ea9d3fc7a.js"
     ></script
     ><script
-      async=""
+      defer=""
       data-next-page="/"
       src="/_next/static/BUILD_ID/pages/index.js"
       crossorigin="anonymous"
       nomodule=""
     ></script
     ><script
-      async=""
+      defer=""
       data-next-page="/"
       src="/_next/static/BUILD_ID/pages/index.module.js"
       crossorigin="anonymous"
       type="module"
     ></script
     ><script
-      async=""
+      defer=""
       data-next-page="/_app"
       src="/_next/static/BUILD_ID/pages/_app.js"
       crossorigin="anonymous"
       nomodule=""
     ></script
     ><script
-      async=""
+      defer=""
       data-next-page="/_app"
       src="/_next/static/BUILD_ID/pages/_app.module.js"
       crossorigin="anonymous"
       type="module"
     ></script
     ><script
-      src="/_next/static/runtime/webpack-a470c2a25bcb4d5a8ec0.js"
-      async=""
+      src="/_next/static/runtime/webpack-4d739ac7b0d8f888ab18.js"
+      defer=""
       crossorigin="anonymous"
       nomodule=""
     ></script
     ><script
-      src="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
-      async=""
+      src="/_next/static/runtime/webpack-d629b83a65f3e33fa99e.module.js"
+      defer=""
       crossorigin="anonymous"
       type="module"
     ></script
     ><script
-      src="/_next/static/chunks/framework.4c64484d8a631a55b435.js"
-      async=""
+      src="/_next/static/chunks/framework.c07ba8a3b0945b0f6315.js"
+      defer=""
       crossorigin="anonymous"
       nomodule=""
     ></script
     ><script
-      src="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
-      async=""
+      src="/_next/static/chunks/framework.5bb7f30f859f5f31359f.module.js"
+      defer=""
       crossorigin="anonymous"
       type="module"
     ></script
     ><script
       src="/_next/static/chunks/commons.5d483f979b96e9afed5a.js"
-      async=""
+      defer=""
       crossorigin="anonymous"
       nomodule=""
     ></script
     ><script
       src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.9a0caf742c992a927903.js"
-      async=""
+      defer=""
       crossorigin="anonymous"
       nomodule=""
     ></script
     ><script
       src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
-      async=""
+      defer=""
       crossorigin="anonymous"
       type="module"
     ></script
     ><script
-      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.a956fdaeb9a5fa7da92f.js"
-      async=""
+      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.f292cf66b770b02858bf.js"
+      defer=""
       crossorigin="anonymous"
       nomodule=""
     ></script
     ><script
-      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.08c4064758778ec3689a.module.js"
-      async=""
+      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.c5cfe57ad45f291e53e4.module.js"
+      defer=""
       crossorigin="anonymous"
       type="module"
     ></script
     ><script
-      src="/_next/static/runtime/main-b984e7fb60832e00613e.js"
-      async=""
+      src="/_next/static/runtime/main-b88ab0b3125aefaa36de.js"
+      defer=""
       crossorigin="anonymous"
       nomodule=""
     ></script
     ><script
-      src="/_next/static/runtime/main-6c919dd5a10cd6022375.module.js"
-      async=""
+      src="/_next/static/runtime/main-c1f681b026529749e230.module.js"
+      defer=""
       crossorigin="anonymous"
       type="module"
     ></script
     ><script
       src="/_next/static/BUILD_ID/_buildManifest.js"
-      async=""
+      defer=""
       crossorigin="anonymous"
       nomodule=""
     ></script
     ><script
       src="/_next/static/BUILD_ID/_buildManifest.module.js"
-      async=""
+      defer=""
       crossorigin="anonymous"
       type="module"
     ></script>
Diff for link.html
@@ -21,13 +21,13 @@
     />
     <link
       rel="preload"
-      href="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
+      href="/_next/static/runtime/webpack-d629b83a65f3e33fa99e.module.js"
       as="script"
       crossorigin="anonymous"
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
+      href="/_next/static/chunks/framework.5bb7f30f859f5f31359f.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -39,13 +39,13 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.08c4064758778ec3689a.module.js"
+      href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.c5cfe57ad45f291e53e4.module.js"
       as="script"
       crossorigin="anonymous"
     />
     <link
       rel="preload"
-      href="/_next/static/runtime/main-6c919dd5a10cd6022375.module.js"
+      href="/_next/static/runtime/main-c1f681b026529749e230.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -58,7 +58,7 @@
       </div>
     </div>
     <script id="__NEXT_DATA__" type="application/json" crossorigin="anonymous">
-      {"dataManager":"[]","props":{"pageProps":{}},"page":"/link","query":{},"buildId":"BUILD_ID"}</script
+      {"props":{"pageProps":{}},"page":"/link","query":{},"buildId":"BUILD_ID"}</script
     ><script crossorigin="anonymous" nomodule="">
       !(function() {
         var e = document,
@@ -86,108 +86,108 @@
       src="/_next/static/runtime/polyfills-355bc4b3077ea9d3fc7a.js"
     ></script
     ><script
-      async=""
+      defer=""
       data-next-page="/link"
       src="/_next/static/BUILD_ID/pages/link.js"
       crossorigin="anonymous"
       nomodule=""
     ></script
     ><script
-      async=""
+      defer=""
       data-next-page="/link"
       src="/_next/static/BUILD_ID/pages/link.module.js"
       crossorigin="anonymous"
       type="module"
     ></script
     ><script
-      async=""
+      defer=""
       data-next-page="/_app"
       src="/_next/static/BUILD_ID/pages/_app.js"
       crossorigin="anonymous"
       nomodule=""
     ></script
     ><script
-      async=""
+      defer=""
       data-next-page="/_app"
       src="/_next/static/BUILD_ID/pages/_app.module.js"
       crossorigin="anonymous"
       type="module"
     ></script
     ><script
-      src="/_next/static/runtime/webpack-a470c2a25bcb4d5a8ec0.js"
-      async=""
+      src="/_next/static/runtime/webpack-4d739ac7b0d8f888ab18.js"
+      defer=""
       crossorigin="anonymous"
       nomodule=""
     ></script
     ><script
-      src="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
-      async=""
+      src="/_next/static/runtime/webpack-d629b83a65f3e33fa99e.module.js"
+      defer=""
       crossorigin="anonymous"
       type="module"
     ></script
     ><script
-      src="/_next/static/chunks/framework.4c64484d8a631a55b435.js"
-      async=""
+      src="/_next/static/chunks/framework.c07ba8a3b0945b0f6315.js"
+      defer=""
       crossorigin="anonymous"
       nomodule=""
     ></script
     ><script
-      src="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
-      async=""
+      src="/_next/static/chunks/framework.5bb7f30f859f5f31359f.module.js"
+      defer=""
       crossorigin="anonymous"
       type="module"
     ></script
     ><script
       src="/_next/static/chunks/commons.5d483f979b96e9afed5a.js"
-      async=""
+      defer=""
       crossorigin="anonymous"
       nomodule=""
     ></script
     ><script
       src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.9a0caf742c992a927903.js"
-      async=""
+      defer=""
       crossorigin="anonymous"
       nomodule=""
     ></script
     ><script
       src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
-      async=""
+      defer=""
       crossorigin="anonymous"
       type="module"
     ></script
     ><script
-      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.a956fdaeb9a5fa7da92f.js"
-      async=""
+      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.f292cf66b770b02858bf.js"
+      defer=""
       crossorigin="anonymous"
       nomodule=""
     ></script
     ><script
-      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.08c4064758778ec3689a.module.js"
-      async=""
+      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.c5cfe57ad45f291e53e4.module.js"
+      defer=""
       crossorigin="anonymous"
       type="module"
     ></script
     ><script
-      src="/_next/static/runtime/main-b984e7fb60832e00613e.js"
-      async=""
+      src="/_next/static/runtime/main-b88ab0b3125aefaa36de.js"
+      defer=""
       crossorigin="anonymous"
       nomodule=""
     ></script
     ><script
-      src="/_next/static/runtime/main-6c919dd5a10cd6022375.module.js"
-      async=""
+      src="/_next/static/runtime/main-c1f681b026529749e230.module.js"
+      defer=""
       crossorigin="anonymous"
       type="module"
     ></script
     ><script
       src="/_next/static/BUILD_ID/_buildManifest.js"
-      async=""
+      defer=""
       crossorigin="anonymous"
       nomodule=""
     ></script
     ><script
       src="/_next/static/BUILD_ID/_buildManifest.module.js"
-      async=""
+      defer=""
       crossorigin="anonymous"
       type="module"
     ></script>
Diff for withRouter.html
@@ -21,13 +21,13 @@
     />
     <link
       rel="preload"
-      href="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
+      href="/_next/static/runtime/webpack-d629b83a65f3e33fa99e.module.js"
       as="script"
       crossorigin="anonymous"
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
+      href="/_next/static/chunks/framework.5bb7f30f859f5f31359f.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -39,13 +39,13 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.08c4064758778ec3689a.module.js"
+      href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.c5cfe57ad45f291e53e4.module.js"
       as="script"
       crossorigin="anonymous"
     />
     <link
       rel="preload"
-      href="/_next/static/runtime/main-6c919dd5a10cd6022375.module.js"
+      href="/_next/static/runtime/main-c1f681b026529749e230.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -53,7 +53,7 @@
   <body>
     <div id="__next"><div>I use withRouter</div></div>
     <script id="__NEXT_DATA__" type="application/json" crossorigin="anonymous">
-      {"dataManager":"[]","props":{"pageProps":{}},"page":"/withRouter","query":{},"buildId":"BUILD_ID"}</script
+      {"props":{"pageProps":{}},"page":"/withRouter","query":{},"buildId":"BUILD_ID"}</script
     ><script crossorigin="anonymous" nomodule="">
       !(function() {
         var e = document,
@@ -81,108 +81,108 @@
       src="/_next/static/runtime/polyfills-355bc4b3077ea9d3fc7a.js"
     ></script
     ><script
-      async=""
+      defer=""
       data-next-page="/withRouter"
       src="/_next/static/BUILD_ID/pages/withRouter.js"
       crossorigin="anonymous"
       nomodule=""
     ></script
     ><script
-      async=""
+      defer=""
       data-next-page="/withRouter"
       src="/_next/static/BUILD_ID/pages/withRouter.module.js"
       crossorigin="anonymous"
       type="module"
     ></script
     ><script
-      async=""
+      defer=""
       data-next-page="/_app"
       src="/_next/static/BUILD_ID/pages/_app.js"
       crossorigin="anonymous"
       nomodule=""
     ></script
     ><script
-      async=""
+      defer=""
       data-next-page="/_app"
       src="/_next/static/BUILD_ID/pages/_app.module.js"
       crossorigin="anonymous"
       type="module"
     ></script
     ><script
-      src="/_next/static/runtime/webpack-a470c2a25bcb4d5a8ec0.js"
-      async=""
+      src="/_next/static/runtime/webpack-4d739ac7b0d8f888ab18.js"
+      defer=""
       crossorigin="anonymous"
       nomodule=""
     ></script
     ><script
-      src="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
-      async=""
+      src="/_next/static/runtime/webpack-d629b83a65f3e33fa99e.module.js"
+      defer=""
       crossorigin="anonymous"
       type="module"
     ></script
     ><script
-      src="/_next/static/chunks/framework.4c64484d8a631a55b435.js"
-      async=""
+      src="/_next/static/chunks/framework.c07ba8a3b0945b0f6315.js"
+      defer=""
       crossorigin="anonymous"
       nomodule=""
     ></script
     ><script
-      src="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
-      async=""
+      src="/_next/static/chunks/framework.5bb7f30f859f5f31359f.module.js"
+      defer=""
       crossorigin="anonymous"
       type="module"
     ></script
     ><script
       src="/_next/static/chunks/commons.5d483f979b96e9afed5a.js"
-      async=""
+      defer=""
       crossorigin="anonymous"
       nomodule=""
     ></script
     ><script
       src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.9a0caf742c992a927903.js"
-      async=""
+      defer=""
       crossorigin="anonymous"
       nomodule=""
     ></script
     ><script
       src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
-      async=""
+      defer=""
       crossorigin="anonymous"
       type="module"
     ></script
     ><script
-      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.a956fdaeb9a5fa7da92f.js"
-      async=""
+      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.f292cf66b770b02858bf.js"
+      defer=""
       crossorigin="anonymous"
       nomodule=""
     ></script
     ><script
-      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.08c4064758778ec3689a.module.js"
-      async=""
+      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.c5cfe57ad45f291e53e4.module.js"
+      defer=""
       crossorigin="anonymous"
       type="module"
     ></script
     ><script
-      src="/_next/static/runtime/main-b984e7fb60832e00613e.js"
-      async=""
+      src="/_next/static/runtime/main-b88ab0b3125aefaa36de.js"
+      defer=""
       crossorigin="anonymous"
       nomodule=""
     ></script
     ><script
-      src="/_next/static/runtime/main-6c919dd5a10cd6022375.module.js"
-      async=""
+      src="/_next/static/runtime/main-c1f681b026529749e230.module.js"
+      defer=""
       crossorigin="anonymous"
       type="module"
     ></script
     ><script
       src="/_next/static/BUILD_ID/_buildManifest.js"
-      async=""
+      defer=""
       crossorigin="anonymous"
       nomodule=""
     ></script
     ><script
       src="/_next/static/BUILD_ID/_buildManifest.module.js"
-      async=""
+      defer=""
       crossorigin="anonymous"
       type="module"
     ></script>

Serverless Mode (Decrease detected βœ“)
General Overall decrease βœ“
zeit/next.js canary v9.1.7 zeit/next.js refs/tags/v9.2.0 Change
buildDuration 14.2s 14.4s ⚠️ +156ms
nodeModulesSize 49 MB 48.9 MB -94.3 kB
Client Bundles (main, webpack, commons) Overall decrease βœ“
zeit/next.js canary v9.1.7 zeit/next.js refs/tags/v9.2.0 Change
main-HASH.js gzip 6.43 kB 5.1 kB -1.33 kB
webpack-HASH.js gzip 746 B 746 B βœ“
4952ddcd88e7..54d3.js gzip 4.68 kB 4.68 kB βœ“
commons.HASH.js gzip 4.06 kB 4.06 kB βœ“
de003c3a9d30..6ef5.js gzip 13.8 kB N/A N/A
framework.HASH.js gzip 39.5 kB 39.1 kB -311 B
de003c3a9d30..e54b.js gzip N/A 13.7 kB N/A
Overall change 69.2 kB 67.4 kB -1.64 kB
Client Bundles (main, webpack, commons) Modern Overall decrease βœ“
zeit/next.js canary v9.1.7 zeit/next.js refs/tags/v9.2.0 Change
main-HASH.module.js gzip 5.41 kB 4.16 kB -1.25 kB
webpack-HASH..dule.js gzip 746 B 746 B βœ“
4952ddcd88e7..dule.js gzip 5.56 kB 5.56 kB βœ“
de003c3a9d30..dule.js gzip 12.6 kB N/A N/A
framework.HA..dule.js gzip 39.4 kB 39.1 kB -310 B
de003c3a9d30..dule.js gzip N/A 12.5 kB N/A
Overall change 63.7 kB 62.1 kB -1.56 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary v9.1.7 zeit/next.js refs/tags/v9.2.0 Change
polyfills-HASH.js gzip 4.76 kB 4.76 kB βœ“
Overall change 4.76 kB 4.76 kB βœ“
Client Pages Overall decrease βœ“
zeit/next.js canary v9.1.7 zeit/next.js refs/tags/v9.2.0 Change
_app.js gzip 1.33 kB 1.33 kB βœ“
_error.js gzip 4.07 kB 4.07 kB βœ“
hooks.js gzip 779 B 779 B βœ“
index.js gzip 222 B 222 B βœ“
link.js gzip 2.93 kB 2.9 kB -28 B
routerDirect.js gzip 283 B 283 B βœ“
withRouter.js gzip 282 B 282 B βœ“
Overall change 9.89 kB 9.87 kB -28 B
Client Pages Modern Overall decrease βœ“
zeit/next.js canary v9.1.7 zeit/next.js refs/tags/v9.2.0 Change
_app.module.js gzip 757 B 757 B βœ“
_error.module.js gzip 3.06 kB 3.06 kB βœ“
hooks.module.js gzip 371 B 371 B βœ“
index.module.js gzip 212 B 212 B βœ“
link.module.js gzip 2.49 kB 2.47 kB -22 B
routerDirect..dule.js gzip 273 B 273 B βœ“
withRouter.m..dule.js gzip 272 B 272 B βœ“
Overall change 7.43 kB 7.41 kB -22 B
Client Build Manifests
zeit/next.js canary v9.1.7 zeit/next.js refs/tags/v9.2.0 Change
_buildManifest.js gzip 61 B 61 B βœ“
_buildManife..dule.js gzip 61 B 61 B βœ“
Overall change 122 B 122 B βœ“
Serverless bundles Overall decrease βœ“
zeit/next.js canary v9.1.7 zeit/next.js refs/tags/v9.2.0 Change
_error.js gzip 78.9 kB 77.8 kB -1.12 kB
hooks.html gzip 1.07 kB 1.05 kB -19 B
index.js gzip 79.1 kB 78 kB -1.16 kB
link.js gzip 81.3 kB 80.4 kB -909 B
routerDirect.js gzip 79.2 kB 78.1 kB -1.15 kB
withRouter.js gzip 79.3 kB 78.1 kB -1.2 kB
Overall change 399 kB 393 kB -5.55 kB

Please sign in to comment.