Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Use SWC for Next.js core client files #27196

Merged
merged 6 commits into from
Jul 28, 2021
Merged

Conversation

timneutkens
Copy link
Member

Replaces Babel with SWC for Next.js core client-side files.

Bug

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

Feature

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

Documentation / Examples

  • Make sure the linting passes

@ijjk

This comment has been minimized.

@ijjk

This comment has been minimized.

@ijjk

This comment has been minimized.

@ijjk

This comment has been minimized.

@ijjk

This comment has been minimized.

@ijjk

This comment has been minimized.

@ijjk

This comment has been minimized.

@ijjk
Copy link
Member

ijjk commented Jul 28, 2021

Stats from current PR

Default Build (Decrease detected ✓)
General Overall decrease ✓
vercel/next.js canary vercel/next.js add/use-swc-for-next-core-client Change
buildDuration 12.3s 12.9s ⚠️ +616ms
buildDurationCached 2.9s 2.7s -188ms
nodeModulesSize 50.4 MB 50.3 MB -96.8 kB
Page Load Tests Overall decrease ⚠️
vercel/next.js canary vercel/next.js add/use-swc-for-next-core-client Change
/ failed reqs 0 0
/ total time (seconds) 2.097 2.23 ⚠️ +0.13
/ avg req/sec 1192.14 1121.02 ⚠️ -71.12
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.206 1.246 ⚠️ +0.04
/error-in-render avg req/sec 2072.78 2006.54 ⚠️ -66.24
Client Bundles (main, webpack, commons) Overall decrease ✓
vercel/next.js canary vercel/next.js add/use-swc-for-next-core-client Change
359.HASH.js gzip 2.96 kB N/A N/A
745.HASH.js gzip 180 B 180 B
framework-HASH.js gzip 42.2 kB 42.2 kB
main-HASH.js gzip 21 kB 22.8 kB ⚠️ +1.85 kB
webpack-HASH.js gzip 1.53 kB 1.49 kB -36 B
Overall change 67.9 kB 66.8 kB -1.15 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary vercel/next.js add/use-swc-for-next-core-client Change
polyfills-HASH.js gzip 31.1 kB 31.1 kB
Overall change 31.1 kB 31.1 kB
Client Pages Overall decrease ✓
vercel/next.js canary vercel/next.js add/use-swc-for-next-core-client Change
_app-HASH.js gzip 803 B 980 B ⚠️ +177 B
_error-HASH.js gzip 3.06 kB 194 B -2.86 kB
amp-HASH.js gzip 554 B 312 B -242 B
css-HASH.js gzip 329 B 329 B
dynamic-HASH.js gzip 2.52 kB 2.52 kB
head-HASH.js gzip 2.28 kB 350 B -1.93 kB
hooks-HASH.js gzip 903 B 903 B
image-HASH.js gzip 5.63 kB 4.1 kB -1.53 kB
index-HASH.js gzip 261 B 261 B
link-HASH.js gzip 1.66 kB 1.66 kB
routerDirect..HASH.js gzip 319 B 319 B
script-HASH.js gzip 387 B 387 B
withRouter-HASH.js gzip 320 B 320 B
bb14e60e810b..30f.css gzip 125 B 125 B
Overall change 19.1 kB 12.8 kB -6.39 kB
Client Build Manifests Overall increase ⚠️
vercel/next.js canary vercel/next.js add/use-swc-for-next-core-client Change
_buildManifest.js gzip 489 B 490 B ⚠️ +1 B
Overall change 489 B 490 B ⚠️ +1 B
Rendered Page Sizes Overall decrease ✓
vercel/next.js canary vercel/next.js add/use-swc-for-next-core-client Change
index.html gzip 531 B 530 B -1 B
link.html gzip 544 B 543 B -1 B
withRouter.html gzip 525 B 523 B -2 B
Overall change 1.6 kB 1.6 kB -4 B

Diffs

Diff for _buildManifest.js
@@ -2,9 +2,9 @@ self.__BUILD_MANIFEST = {
   __rewrites: { beforeFiles: [], afterFiles: [], fallback: [] },
   "/": ["static\u002Fchunks\u002Fpages\u002Findex-191cfefb947010b4d318.js"],
   "/_error": [
-    "static\u002Fchunks\u002Fpages\u002F_error-b7cf869ea4c3dc245b13.js"
+    "static\u002Fchunks\u002Fpages\u002F_error-2ec7da50c56ba9de12f1.js"
   ],
-  "/amp": ["static\u002Fchunks\u002Fpages\u002Famp-110c9d1dfe07ae6114f8.js"],
+  "/amp": ["static\u002Fchunks\u002Fpages\u002Famp-6a70b3d996818f416ae4.js"],
   "/css": [
     "static\u002Fcss\u002F59de118426c393f58653.css",
     "static\u002Fchunks\u002Fpages\u002Fcss-fc196f2ef04da4c7630f.js"
@@ -12,14 +12,14 @@ self.__BUILD_MANIFEST = {
   "/dynamic": [
     "static\u002Fchunks\u002Fpages\u002Fdynamic-0a62768e1cc2caf27342.js"
   ],
-  "/head": ["static\u002Fchunks\u002Fpages\u002Fhead-dfe941721461fc33ce30.js"],
+  "/head": ["static\u002Fchunks\u002Fpages\u002Fhead-420e11b736e2c6ac6d20.js"],
   "/hooks": [
     "static\u002Fchunks\u002Fpages\u002Fhooks-4e38b05900fed34fcf34.js"
   ],
   "/image": [
-    "static\u002Fchunks\u002Fpages\u002Fimage-539dcc621e94d5583508.js"
+    "static\u002Fchunks\u002Fpages\u002Fimage-d9b962e16c4943c7be00.js"
   ],
-  "/link": ["static\u002Fchunks\u002Fpages\u002Flink-36845453cb7a35e1a731.js"],
+  "/link": ["static\u002Fchunks\u002Fpages\u002Flink-b0be5b4e4799da3b6efb.js"],
   "/routerDirect": [
     "static\u002Fchunks\u002Fpages\u002FrouterDirect-7d3bf8d007854c164077.js"
   ],
Diff for _app-HASH.js
@@ -8,8 +8,6 @@
     ) {
       "use strict";
 
-      var _regeneratorRuntime = __webpack_require__(7757);
-
       var _classCallCheck = __webpack_require__(4575);
 
       var _createClass = __webpack_require__(3913);
@@ -20,7 +18,7 @@
 
       var _getPrototypeOf = __webpack_require__(9754);
 
-      var _asyncToGenerator = __webpack_require__(8926);
+      var _regeneratorRuntime = __webpack_require__(7757);
 
       function _createSuper(Derived) {
         var hasNativeReflectConstruct = _isNativeReflectConstruct();
@@ -51,52 +49,130 @@
         }
       }
 
-      var _interopRequireDefault = __webpack_require__(5318);
-
-      exports.__esModule = true;
+      Object.defineProperty(exports, "__esModule", {
+        value: true
+      });
+      Object.defineProperty(exports, "AppInitialProps", {
+        enumerable: true,
+        get: function get() {
+          return _utils.AppInitialProps;
+        }
+      });
+      Object.defineProperty(exports, "NextWebVitalsMetric", {
+        enumerable: true,
+        get: function get() {
+          return _utils.NextWebVitalsMetric;
+        }
+      });
       exports.default = void 0;
 
       var _react = _interopRequireDefault(__webpack_require__(7294));
 
       var _utils = __webpack_require__(9664);
 
-      exports.AppInitialProps = _utils.AppInitialProps;
-      exports.NextWebVitalsMetric = _utils.NextWebVitalsMetric;
-      /**
-       * `App` component is used for initialize of pages. It allows for overwriting and full control of the `page` initialization.
-       * This allows for keeping state between navigation, custom error handling, injecting additional data.
-       */
+      function asyncGeneratorStep(
+        gen,
+        resolve,
+        reject,
+        _next,
+        _throw,
+        key,
+        arg
+      ) {
+        try {
+          var info = gen[key](arg);
+          var value = info.value;
+        } catch (error) {
+          reject(error);
+          return;
+        }
 
-      function appGetInitialProps(_x) {
-        return _appGetInitialProps.apply(this, arguments);
+        if (info.done) {
+          resolve(value);
+        } else {
+          Promise.resolve(value).then(_next, _throw);
+        }
+      }
+
+      function _asyncToGenerator(fn) {
+        return function() {
+          var self = this,
+            args = arguments;
+          return new Promise(function(resolve, reject) {
+            var gen = fn.apply(self, args);
+
+            function _next(value) {
+              asyncGeneratorStep(
+                gen,
+                resolve,
+                reject,
+                _next,
+                _throw,
+                "next",
+                value
+              );
+            }
+
+            function _throw(err) {
+              asyncGeneratorStep(
+                gen,
+                resolve,
+                reject,
+                _next,
+                _throw,
+                "throw",
+                err
+              );
+            }
+
+            _next(undefined);
+          });
+        };
+      }
+
+      function _interopRequireDefault(obj) {
+        return obj && obj.__esModule
+          ? obj
+          : {
+              default: obj
+            };
       }
 
       function _appGetInitialProps() {
-        _appGetInitialProps = _asyncToGenerator(
-          /*#__PURE__*/ _regeneratorRuntime.mark(function _callee(_ref) {
-            var Component, ctx, pageProps;
-            return _regeneratorRuntime.wrap(function _callee$(_context) {
-              while (1) {
-                switch ((_context.prev = _context.next)) {
-                  case 0:
-                    (Component = _ref.Component), (ctx = _ref.ctx);
-                    _context.next = 3;
-                    return (0, _utils.loadGetInitialProps)(Component, ctx);
-
-                  case 3:
-                    pageProps = _context.sent;
-                    return _context.abrupt("return", {
-                      pageProps: pageProps
-                    });
-
-                  case 5:
-                  case "end":
-                    return _context.stop();
+        _appGetInitialProps =
+          /**
+           * `App` component is used for initialize of pages. It allows for overwriting and full control of the `page` initialization.
+           * This allows for keeping state between navigation, custom error handling, injecting additional data.
+           */
+          _asyncToGenerator(
+            /*#__PURE__*/ _regeneratorRuntime.mark(function _callee(_ref) {
+              var Component, ctx, pageProps;
+              return _regeneratorRuntime.wrap(function _callee$(_context) {
+                while (1) {
+                  switch ((_context.prev = _context.next)) {
+                    case 0:
+                      (Component = _ref.Component), (ctx = _ref.ctx);
+                      _context.next = 3;
+                      return (0, _utils).loadGetInitialProps(Component, ctx);
+
+                    case 3:
+                      pageProps = _context.sent;
+                      return _context.abrupt("return", {
+                        pageProps: pageProps
+                      });
+
+                    case 5:
+                    case "end":
+                      return _context.stop();
+                  }
                 }
-              }
-            }, _callee);
-          })
-        );
+              }, _callee);
+            })
+          );
+        return _appGetInitialProps.apply(this, arguments);
+      }
+
+      function appGetInitialProps(_) {
         return _appGetInitialProps.apply(this, arguments);
       }
 
@@ -120,7 +196,7 @@
                 pageProps = _this$props.pageProps;
               return /*#__PURE__*/ _react["default"].createElement(
                 Component,
-                pageProps
+                Object.assign({}, pageProps)
               );
             }
           }
@@ -129,9 +205,9 @@
         return App;
       })(_react["default"].Component);
 
-      exports.default = App;
       App.origGetInitialProps = appGetInitialProps;
       App.getInitialProps = appGetInitialProps;
+      exports.default = App;
 
       /***/
     },
Diff for _error-HASH.js
@@ -1,804 +1,6 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
-  [820, 359],
+  [820],
   {
-    /***/ 3646: /***/ function(
-      module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) {
-      var arrayLikeToArray = __webpack_require__(7228);
-
-      function _arrayWithoutHoles(arr) {
-        if (Array.isArray(arr)) return arrayLikeToArray(arr);
-      }
-
-      module.exports = _arrayWithoutHoles;
-
-      /***/
-    },
-
-    /***/ 6860: /***/ function(module) {
-      function _iterableToArray(iter) {
-        if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter))
-          return Array.from(iter);
-      }
-
-      module.exports = _iterableToArray;
-
-      /***/
-    },
-
-    /***/ 8206: /***/ function(module) {
-      function _nonIterableSpread() {
-        throw new TypeError(
-          "Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."
-        );
-      }
-
-      module.exports = _nonIterableSpread;
-
-      /***/
-    },
-
-    /***/ 319: /***/ function(
-      module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) {
-      var arrayWithoutHoles = __webpack_require__(3646);
-
-      var iterableToArray = __webpack_require__(6860);
-
-      var unsupportedIterableToArray = __webpack_require__(379);
-
-      var nonIterableSpread = __webpack_require__(8206);
-
-      function _toConsumableArray(arr) {
-        return (
-          arrayWithoutHoles(arr) ||
-          iterableToArray(arr) ||
-          unsupportedIterableToArray(arr) ||
-          nonIterableSpread()
-        );
-      }
-
-      module.exports = _toConsumableArray;
-
-      /***/
-    },
-
-    /***/ 3359: /***/ function(
-      __unused_webpack_module,
-      exports,
-      __webpack_require__
-    ) {
-      "use strict";
-
-      var _classCallCheck = __webpack_require__(4575);
-
-      var _createClass = __webpack_require__(3913);
-
-      var _inherits = __webpack_require__(2205);
-
-      var _possibleConstructorReturn = __webpack_require__(8585);
-
-      var _getPrototypeOf = __webpack_require__(9754);
-
-      function _createSuper(Derived) {
-        var hasNativeReflectConstruct = _isNativeReflectConstruct();
-        return function _createSuperInternal() {
-          var Super = _getPrototypeOf(Derived),
-            result;
-          if (hasNativeReflectConstruct) {
-            var NewTarget = _getPrototypeOf(this).constructor;
-            result = Reflect.construct(Super, arguments, NewTarget);
-          } else {
-            result = Super.apply(this, arguments);
-          }
-          return _possibleConstructorReturn(this, result);
-        };
-      }
-
-      function _isNativeReflectConstruct() {
-        if (typeof Reflect === "undefined" || !Reflect.construct) return false;
-        if (Reflect.construct.sham) return false;
-        if (typeof Proxy === "function") return true;
-        try {
-          Date.prototype.toString.call(
-            Reflect.construct(Date, [], function() {})
-          );
-          return true;
-        } catch (e) {
-          return false;
-        }
-      }
-
-      var _interopRequireDefault = __webpack_require__(5318);
-
-      exports.__esModule = true;
-      exports.default = void 0;
-
-      var _react = _interopRequireDefault(__webpack_require__(7294));
-
-      var _head = _interopRequireDefault(__webpack_require__(639));
-
-      var statusCodes = {
-        400: "Bad Request",
-        404: "This page could not be found",
-        405: "Method Not Allowed",
-        500: "Internal Server Error"
-      };
-
-      function _getInitialProps(_ref) {
-        var res = _ref.res,
-          err = _ref.err;
-        var statusCode =
-          res && res.statusCode ? res.statusCode : err ? err.statusCode : 404;
-        return {
-          statusCode: statusCode
-        };
-      }
-      /**
-       * `Error` component used for handling errors.
-       */
-
-      var Error = /*#__PURE__*/ (function(_react$default$Compon) {
-        _inherits(Error, _react$default$Compon);
-
-        var _super = _createSuper(Error);
-
-        function Error() {
-          _classCallCheck(this, Error);
-
-          return _super.apply(this, arguments);
-        }
-
-        _createClass(Error, [
-          {
-            key: "render",
-            value: function render() {
-              var statusCode = this.props.statusCode;
-              var title =
-                this.props.title ||
-                statusCodes[statusCode] ||
-                "An unexpected error has occurred";
-              return /*#__PURE__*/ _react["default"].createElement(
-                "div",
-                {
-                  style: styles.error
-                },
-                /*#__PURE__*/ _react["default"].createElement(
-                  _head["default"],
-                  null,
-                  /*#__PURE__*/ _react["default"].createElement(
-                    "title",
-                    null,
-                    statusCode
-                      ? "".concat(statusCode, ": ").concat(title)
-                      : "Application error: a client-side exception has occurred"
-                  )
-                ),
-                /*#__PURE__*/ _react["default"].createElement(
-                  "div",
-                  null,
-                  /*#__PURE__*/ _react["default"].createElement("style", {
-                    dangerouslySetInnerHTML: {
-                      __html: "body { margin: 0 }"
-                    }
-                  }),
-                  statusCode
-                    ? /*#__PURE__*/ _react["default"].createElement(
-                        "h1",
-                        {
-                          style: styles.h1
-                        },
-                        statusCode
-                      )
-                    : null,
-                  /*#__PURE__*/ _react["default"].createElement(
-                    "div",
-                    {
-                      style: styles.desc
-                    },
-                    /*#__PURE__*/ _react["default"].createElement(
-                      "h2",
-                      {
-                        style: styles.h2
-                      },
-                      this.props.title || statusCode
-                        ? title
-                        : /*#__PURE__*/ _react["default"].createElement(
-                            _react["default"].Fragment,
-                            null,
-                            "Application error: a client-side exception has occurred (",
-                            /*#__PURE__*/ _react["default"].createElement(
-                              "a",
-                              {
-                                href:
-                                  "https://nextjs.org/docs/messages/client-side-exception-occurred"
-                              },
-                              "developer guidance"
-                            ),
-                            ")"
-                          ),
-                      "."
-                    )
-                  )
-                )
-              );
-            }
-          }
-        ]);
-
-        return Error;
-      })(_react["default"].Component);
-
-      exports.default = Error;
-      Error.displayName = "ErrorPage";
-      Error.getInitialProps = _getInitialProps;
-      Error.origGetInitialProps = _getInitialProps;
-      var styles = {
-        error: {
-          color: "#000",
-          background: "#fff",
-          fontFamily:
-            '-apple-system, BlinkMacSystemFont, Roboto, "Segoe UI", "Fira Sans", Avenir, "Helvetica Neue", "Lucida Grande", sans-serif',
-          height: "100vh",
-          textAlign: "center",
-          display: "flex",
-          flexDirection: "column",
-          alignItems: "center",
-          justifyContent: "center"
-        },
-        desc: {
-          display: "inline-block",
-          textAlign: "left",
-          lineHeight: "49px",
-          height: "49px",
-          verticalAlign: "middle"
-        },
-        h1: {
-          display: "inline-block",
-          borderRight: "1px solid rgba(0, 0, 0,.3)",
-          margin: 0,
-          marginRight: "20px",
-          padding: "10px 23px 10px 0",
-          fontSize: "24px",
-          fontWeight: 500,
-          verticalAlign: "top"
-        },
-        h2: {
-          fontSize: "14px",
-          fontWeight: "normal",
-          lineHeight: "inherit",
-          margin: 0,
-          padding: 0
-        }
-      };
-
-      /***/
-    },
-
-    /***/ 6046: /***/ function(
-      __unused_webpack_module,
-      exports,
-      __webpack_require__
-    ) {
-      "use strict";
-
-      Object.defineProperty(exports, "__esModule", {
-        value: true
-      });
-      exports.AmpStateContext = void 0;
-
-      var _react = _interopRequireDefault(__webpack_require__(7294));
-
-      function _interopRequireDefault(obj) {
-        return obj && obj.__esModule
-          ? obj
-          : {
-              default: obj
-            };
-      }
-
-      var AmpStateContext = _react["default"].createContext({});
-
-      exports.AmpStateContext = AmpStateContext;
-
-      if (false) {
-      }
-
-      /***/
-    },
-
-    /***/ 3237: /***/ function(
-      __unused_webpack_module,
-      exports,
-      __webpack_require__
-    ) {
-      "use strict";
-
-      Object.defineProperty(exports, "__esModule", {
-        value: true
-      });
-      exports.isInAmpMode = isInAmpMode;
-      exports.useAmp = useAmp;
-
-      var _react = _interopRequireDefault(__webpack_require__(7294));
-
-      var _ampContext = __webpack_require__(6046);
-
-      function _interopRequireDefault(obj) {
-        return obj && obj.__esModule
-          ? obj
-          : {
-              default: obj
-            };
-      }
-
-      function isInAmpMode() {
-        var _ref =
-            arguments.length > 0 && arguments[0] !== undefined
-              ? arguments[0]
-              : {},
-          _ref$ampFirst = _ref.ampFirst,
-          ampFirst = _ref$ampFirst === void 0 ? false : _ref$ampFirst,
-          _ref$hybrid = _ref.hybrid,
-          hybrid = _ref$hybrid === void 0 ? false : _ref$hybrid,
-          _ref$hasQuery = _ref.hasQuery,
-          hasQuery = _ref$hasQuery === void 0 ? false : _ref$hasQuery;
-
-        return ampFirst || (hybrid && hasQuery);
-      }
-
-      function useAmp() {
-        // Don't assign the context value to a variable to save bytes
-        return isInAmpMode(
-          _react["default"].useContext(_ampContext.AmpStateContext)
-        );
-      }
-
-      /***/
-    },
-
-    /***/ 639: /***/ function(
-      __unused_webpack_module,
-      exports,
-      __webpack_require__
-    ) {
-      "use strict";
-
-      var _defineProperty = __webpack_require__(9713);
-
-      function ownKeys(object, enumerableOnly) {
-        var keys = Object.keys(object);
-        if (Object.getOwnPropertySymbols) {
-          var symbols = Object.getOwnPropertySymbols(object);
-          if (enumerableOnly)
-            symbols = symbols.filter(function(sym) {
-              return Object.getOwnPropertyDescriptor(object, sym).enumerable;
-            });
-          keys.push.apply(keys, symbols);
-        }
-        return keys;
-      }
-
-      function _objectSpread(target) {
-        for (var i = 1; i < arguments.length; i++) {
-          var source = arguments[i] != null ? arguments[i] : {};
-          if (i % 2) {
-            ownKeys(Object(source), true).forEach(function(key) {
-              _defineProperty(target, key, source[key]);
-            });
-          } else if (Object.getOwnPropertyDescriptors) {
-            Object.defineProperties(
-              target,
-              Object.getOwnPropertyDescriptors(source)
-            );
-          } else {
-            ownKeys(Object(source)).forEach(function(key) {
-              Object.defineProperty(
-                target,
-                key,
-                Object.getOwnPropertyDescriptor(source, key)
-              );
-            });
-          }
-        }
-        return target;
-      }
-
-      Object.defineProperty(exports, "__esModule", {
-        value: true
-      });
-      exports.defaultHead = defaultHead;
-      exports.default = void 0;
-
-      var _react = _interopRequireWildcard(__webpack_require__(7294));
-
-      var _sideEffect = _interopRequireDefault(__webpack_require__(4766));
-
-      var _ampContext = __webpack_require__(6046);
-
-      var _headManagerContext = __webpack_require__(699);
-
-      var _amp = __webpack_require__(3237);
-
-      function _interopRequireDefault(obj) {
-        return obj && obj.__esModule
-          ? obj
-          : {
-              default: obj
-            };
-      }
-
-      function _interopRequireWildcard(obj) {
-        if (obj && obj.__esModule) {
-          return obj;
-        } else {
-          var newObj = {};
-
-          if (obj != null) {
-            for (var key in obj) {
-              if (Object.prototype.hasOwnProperty.call(obj, key)) {
-                var desc =
-                  Object.defineProperty && Object.getOwnPropertyDescriptor
-                    ? Object.getOwnPropertyDescriptor(obj, key)
-                    : {};
-
-                if (desc.get || desc.set) {
-                  Object.defineProperty(newObj, key, desc);
-                } else {
-                  newObj[key] = obj[key];
-                }
-              }
-            }
-          }
-
-          newObj["default"] = obj;
-          return newObj;
-        }
-      }
-
-      function defaultHead() {
-        var inAmpMode =
-          arguments.length > 0 && arguments[0] !== undefined
-            ? arguments[0]
-            : false;
-        var head = [
-          /*#__PURE__*/ _react["default"].createElement("meta", {
-            charSet: "utf-8"
-          })
-        ];
-
-        if (!inAmpMode) {
-          head.push(
-            /*#__PURE__*/ _react["default"].createElement("meta", {
-              name: "viewport",
-              content: "width=device-width"
-            })
-          );
-        }
-
-        return head;
-      }
-
-      function onlyReactElement(list, child) {
-        // React children can be "string" or "number" in this case we ignore them for backwards compat
-        if (typeof child === "string" || typeof child === "number") {
-          return list;
-        } // Adds support for React.Fragment
-
-        if (child.type === _react["default"].Fragment) {
-          return list.concat(
-            _react["default"].Children.toArray(child.props.children).reduce(
-              function(fragmentList, fragmentChild) {
-                if (
-                  typeof fragmentChild === "string" ||
-                  typeof fragmentChild === "number"
-                ) {
-                  return fragmentList;
-                }
-
-                return fragmentList.concat(fragmentChild);
-              },
-              []
-            )
-          );
-        }
-
-        return list.concat(child);
-      }
-
-      var METATYPES = ["name", "httpEquiv", "charSet", "itemProp"];
-      /*
- returns a function for filtering head child elements
- which shouldn't be duplicated, like <title/>
- Also adds support for deduplicated `key` properties
-*/
-
-      function unique() {
-        var keys = new Set();
-        var tags = new Set();
-        var metaTypes = new Set();
-        var metaCategories = {};
-        return function(h) {
-          var isUnique = true;
-          var hasKey = false;
-
-          if (h.key && typeof h.key !== "number" && h.key.indexOf("$") > 0) {
-            hasKey = true;
-            var key = h.key.slice(h.key.indexOf("$") + 1);
-
-            if (keys.has(key)) {
-              isUnique = false;
-            } else {
-              keys.add(key);
-            }
-          } // eslint-disable-next-line default-case
-
-          switch (h.type) {
-            case "title":
-            case "base":
-              if (tags.has(h.type)) {
-                isUnique = false;
-              } else {
-                tags.add(h.type);
-              }
-
-              break;
-
-            case "meta":
-              for (var i = 0, len = METATYPES.length; i < len; i++) {
-                var metatype = METATYPES[i];
-                if (!h.props.hasOwnProperty(metatype)) continue;
-
-                if (metatype === "charSet") {
-                  if (metaTypes.has(metatype)) {
-                    isUnique = false;
-                  } else {
-                    metaTypes.add(metatype);
-                  }
-                } else {
-                  var category = h.props[metatype];
-                  var categories = metaCategories[metatype] || new Set();
-
-                  if (
-                    (metatype !== "name" || !hasKey) &&
-                    categories.has(category)
-                  ) {
-                    isUnique = false;
-                  } else {
-                    categories.add(category);
-                    metaCategories[metatype] = categories;
-                  }
-                }
-              }
-
-              break;
-          }
-
-          return isUnique;
-        };
-      }
-      /**
-       *
-       * @param headElements List of multiple <Head> instances
-       */
-
-      function reduceComponents(headElements, props) {
-        return headElements
-          .reduce(function(list, headElement) {
-            var headElementChildren = _react["default"].Children.toArray(
-              headElement.props.children
-            );
-
-            return list.concat(headElementChildren);
-          }, [])
-          .reduce(onlyReactElement, [])
-          .reverse()
-          .concat(defaultHead(props.inAmpMode))
-          .filter(unique())
-          .reverse()
-          .map(function(c, i) {
-            var key = c.key || i;
-
-            if (true && !props.inAmpMode) {
-              if (
-                c.type === "link" &&
-                c.props["href"] && // TODO(prateekbh@): Replace this with const from `constants` when the tree shaking works.
-                [
-                  "https://fonts.googleapis.com/css",
-                  "https://use.typekit.net/"
-                ].some(function(url) {
-                  return c.props["href"].startsWith(url);
-                })
-              ) {
-                var newProps = _objectSpread({}, c.props || {});
-
-                newProps["data-href"] = newProps["href"];
-                newProps["href"] = undefined; // Add this attribute to make it easy to identify optimized tags
-
-                newProps["data-optimized-fonts"] = true;
-                return /*#__PURE__*/ _react["default"].cloneElement(
-                  c,
-                  newProps
-                );
-              }
-            }
-
-            return /*#__PURE__*/ _react["default"].cloneElement(c, {
-              key: key
-            });
-          });
-      }
-      /**
-       * This component injects elements to `<head>` of your page.
-       * To avoid duplicated `tags` in `<head>` you can use the `key` property, which will make sure every tag is only rendered once.
-       */
-
-      function Head(_ref) {
-        var children = _ref.children;
-        var ampState = (0, _react).useContext(_ampContext.AmpStateContext);
-        var headManager = (0, _react).useContext(
-          _headManagerContext.HeadManagerContext
-        );
-        return /*#__PURE__*/ _react["default"].createElement(
-          _sideEffect["default"],
-          {
-            reduceComponentsToState: reduceComponents,
-            headManager: headManager,
-            inAmpMode: (0, _amp).isInAmpMode(ampState)
-          },
-          children
-        );
-      }
-
-      var _default = Head;
-      exports.default = _default;
-
-      /***/
-    },
-
-    /***/ 4766: /***/ function(
-      __unused_webpack_module,
-      exports,
-      __webpack_require__
-    ) {
-      "use strict";
-
-      var _toConsumableArray = __webpack_require__(319);
-
-      var _classCallCheck = __webpack_require__(4575);
-
-      var _createClass = __webpack_require__(3913);
-
-      var _assertThisInitialized = __webpack_require__(1506);
-
-      var _inherits = __webpack_require__(2205);
-
-      var _possibleConstructorReturn = __webpack_require__(8585);
-
-      var _getPrototypeOf = __webpack_require__(9754);
-
-      function _createSuper(Derived) {
-        var hasNativeReflectConstruct = _isNativeReflectConstruct();
-        return function _createSuperInternal() {
-          var Super = _getPrototypeOf(Derived),
-            result;
-          if (hasNativeReflectConstruct) {
-            var NewTarget = _getPrototypeOf(this).constructor;
-            result = Reflect.construct(Super, arguments, NewTarget);
-          } else {
-            result = Super.apply(this, arguments);
-          }
-          return _possibleConstructorReturn(this, result);
-        };
-      }
-
-      function _isNativeReflectConstruct() {
-        if (typeof Reflect === "undefined" || !Reflect.construct) return false;
-        if (Reflect.construct.sham) return false;
-        if (typeof Proxy === "function") return true;
-        try {
-          Date.prototype.toString.call(
-            Reflect.construct(Date, [], function() {})
-          );
-          return true;
-        } catch (e) {
-          return false;
-        }
-      }
-
-      Object.defineProperty(exports, "__esModule", {
-        value: true
-      });
-      exports.default = void 0;
-
-      var _react = __webpack_require__(7294);
-
-      var isServer = false;
-
-      var _class = /*#__PURE__*/ (function(_react$Component) {
-        _inherits(_class, _react$Component);
-
-        var _super = _createSuper(_class);
-
-        function _class(props) {
-          var _this;
-
-          _classCallCheck(this, _class);
-
-          _this = _super.call(this, props);
-
-          _this.emitChange = function() {
-            if (_this._hasHeadManager) {
-              _this.props.headManager.updateHead(
-                _this.props.reduceComponentsToState(
-                  _toConsumableArray(_this.props.headManager.mountedInstances),
-                  _this.props
-                )
-              );
-            }
-          };
-
-          _this._hasHeadManager =
-            _this.props.headManager && _this.props.headManager.mountedInstances;
-
-          if (isServer && _this._hasHeadManager) {
-            _this.props.headManager.mountedInstances.add(
-              _assertThisInitialized(_this)
-            );
-
-            _this.emitChange();
-          }
-
-          return _this;
-        }
-
-        _createClass(_class, [
-          {
-            key: "componentDidMount",
-            value: function componentDidMount() {
-              if (this._hasHeadManager) {
-                this.props.headManager.mountedInstances.add(this);
-              }
-
-              this.emitChange();
-            }
-          },
-          {
-            key: "componentDidUpdate",
-            value: function componentDidUpdate() {
-              this.emitChange();
-            }
-          },
-          {
-            key: "componentWillUnmount",
-            value: function componentWillUnmount() {
-              if (this._hasHeadManager) {
-                this.props.headManager.mountedInstances["delete"](this);
-              }
-
-              this.emitChange();
-            }
-          },
-          {
-            key: "render",
-            value: function render() {
-              return null;
-            }
-          }
-        ]);
-
-        return _class;
-      })(_react.Component);
-
-      exports.default = _class;
-
-      /***/
-    },
-
     /***/ 4977: /***/ function(
       __unused_webpack_module,
       __unused_webpack_exports,
Diff for amp-HASH.js
@@ -11,88 +11,6 @@
       /***/
     },
 
-    /***/ 6046: /***/ function(
-      __unused_webpack_module,
-      exports,
-      __webpack_require__
-    ) {
-      "use strict";
-
-      Object.defineProperty(exports, "__esModule", {
-        value: true
-      });
-      exports.AmpStateContext = void 0;
-
-      var _react = _interopRequireDefault(__webpack_require__(7294));
-
-      function _interopRequireDefault(obj) {
-        return obj && obj.__esModule
-          ? obj
-          : {
-              default: obj
-            };
-      }
-
-      var AmpStateContext = _react["default"].createContext({});
-
-      exports.AmpStateContext = AmpStateContext;
-
-      if (false) {
-      }
-
-      /***/
-    },
-
-    /***/ 3237: /***/ function(
-      __unused_webpack_module,
-      exports,
-      __webpack_require__
-    ) {
-      "use strict";
-
-      Object.defineProperty(exports, "__esModule", {
-        value: true
-      });
-      exports.isInAmpMode = isInAmpMode;
-      exports.useAmp = useAmp;
-
-      var _react = _interopRequireDefault(__webpack_require__(7294));
-
-      var _ampContext = __webpack_require__(6046);
-
-      function _interopRequireDefault(obj) {
-        return obj && obj.__esModule
-          ? obj
-          : {
-              default: obj
-            };
-      }
-
-      function isInAmpMode() {
-        var _ref =
-            arguments.length > 0 && arguments[0] !== undefined
-              ? arguments[0]
-              : {},
-          _ref$ampFirst = _ref.ampFirst,
-          ampFirst = _ref$ampFirst === void 0 ? false : _ref$ampFirst,
-          _ref$hybrid = _ref.hybrid,
-          hybrid = _ref$hybrid === void 0 ? false : _ref$hybrid,
-          _ref$hasQuery = _ref.hasQuery,
-          hasQuery = _ref$hasQuery === void 0 ? false : _ref$hasQuery;
-
-        return ampFirst || (hybrid && hasQuery);
-      }
-
-      function useAmp() {
-        // Don't assign the context value to a variable to save bytes
-        return isInAmpMode(
-          _react["default"].useContext(_ampContext.AmpStateContext)
-        );
-      }
-
-      /***/
-    },
-
     /***/ 6739: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
Diff for head-HASH.js
@@ -1,592 +1,6 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [645],
   {
-    /***/ 3646: /***/ function(
-      module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) {
-      var arrayLikeToArray = __webpack_require__(7228);
-
-      function _arrayWithoutHoles(arr) {
-        if (Array.isArray(arr)) return arrayLikeToArray(arr);
-      }
-
-      module.exports = _arrayWithoutHoles;
-
-      /***/
-    },
-
-    /***/ 6860: /***/ function(module) {
-      function _iterableToArray(iter) {
-        if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter))
-          return Array.from(iter);
-      }
-
-      module.exports = _iterableToArray;
-
-      /***/
-    },
-
-    /***/ 8206: /***/ function(module) {
-      function _nonIterableSpread() {
-        throw new TypeError(
-          "Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."
-        );
-      }
-
-      module.exports = _nonIterableSpread;
-
-      /***/
-    },
-
-    /***/ 319: /***/ function(
-      module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) {
-      var arrayWithoutHoles = __webpack_require__(3646);
-
-      var iterableToArray = __webpack_require__(6860);
-
-      var unsupportedIterableToArray = __webpack_require__(379);
-
-      var nonIterableSpread = __webpack_require__(8206);
-
-      function _toConsumableArray(arr) {
-        return (
-          arrayWithoutHoles(arr) ||
-          iterableToArray(arr) ||
-          unsupportedIterableToArray(arr) ||
-          nonIterableSpread()
-        );
-      }
-
-      module.exports = _toConsumableArray;
-
-      /***/
-    },
-
-    /***/ 6046: /***/ function(
-      __unused_webpack_module,
-      exports,
-      __webpack_require__
-    ) {
-      "use strict";
-
-      Object.defineProperty(exports, "__esModule", {
-        value: true
-      });
-      exports.AmpStateContext = void 0;
-
-      var _react = _interopRequireDefault(__webpack_require__(7294));
-
-      function _interopRequireDefault(obj) {
-        return obj && obj.__esModule
-          ? obj
-          : {
-              default: obj
-            };
-      }
-
-      var AmpStateContext = _react["default"].createContext({});
-
-      exports.AmpStateContext = AmpStateContext;
-
-      if (false) {
-      }
-
-      /***/
-    },
-
-    /***/ 3237: /***/ function(
-      __unused_webpack_module,
-      exports,
-      __webpack_require__
-    ) {
-      "use strict";
-
-      Object.defineProperty(exports, "__esModule", {
-        value: true
-      });
-      exports.isInAmpMode = isInAmpMode;
-      exports.useAmp = useAmp;
-
-      var _react = _interopRequireDefault(__webpack_require__(7294));
-
-      var _ampContext = __webpack_require__(6046);
-
-      function _interopRequireDefault(obj) {
-        return obj && obj.__esModule
-          ? obj
-          : {
-              default: obj
-            };
-      }
-
-      function isInAmpMode() {
-        var _ref =
-            arguments.length > 0 && arguments[0] !== undefined
-              ? arguments[0]
-              : {},
-          _ref$ampFirst = _ref.ampFirst,
-          ampFirst = _ref$ampFirst === void 0 ? false : _ref$ampFirst,
-          _ref$hybrid = _ref.hybrid,
-          hybrid = _ref$hybrid === void 0 ? false : _ref$hybrid,
-          _ref$hasQuery = _ref.hasQuery,
-          hasQuery = _ref$hasQuery === void 0 ? false : _ref$hasQuery;
-
-        return ampFirst || (hybrid && hasQuery);
-      }
-
-      function useAmp() {
-        // Don't assign the context value to a variable to save bytes
-        return isInAmpMode(
-          _react["default"].useContext(_ampContext.AmpStateContext)
-        );
-      }
-
-      /***/
-    },
-
-    /***/ 639: /***/ function(
-      __unused_webpack_module,
-      exports,
-      __webpack_require__
-    ) {
-      "use strict";
-
-      var _defineProperty = __webpack_require__(9713);
-
-      function ownKeys(object, enumerableOnly) {
-        var keys = Object.keys(object);
-        if (Object.getOwnPropertySymbols) {
-          var symbols = Object.getOwnPropertySymbols(object);
-          if (enumerableOnly)
-            symbols = symbols.filter(function(sym) {
-              return Object.getOwnPropertyDescriptor(object, sym).enumerable;
-            });
-          keys.push.apply(keys, symbols);
-        }
-        return keys;
-      }
-
-      function _objectSpread(target) {
-        for (var i = 1; i < arguments.length; i++) {
-          var source = arguments[i] != null ? arguments[i] : {};
-          if (i % 2) {
-            ownKeys(Object(source), true).forEach(function(key) {
-              _defineProperty(target, key, source[key]);
-            });
-          } else if (Object.getOwnPropertyDescriptors) {
-            Object.defineProperties(
-              target,
-              Object.getOwnPropertyDescriptors(source)
-            );
-          } else {
-            ownKeys(Object(source)).forEach(function(key) {
-              Object.defineProperty(
-                target,
-                key,
-                Object.getOwnPropertyDescriptor(source, key)
-              );
-            });
-          }
-        }
-        return target;
-      }
-
-      Object.defineProperty(exports, "__esModule", {
-        value: true
-      });
-      exports.defaultHead = defaultHead;
-      exports.default = void 0;
-
-      var _react = _interopRequireWildcard(__webpack_require__(7294));
-
-      var _sideEffect = _interopRequireDefault(__webpack_require__(4766));
-
-      var _ampContext = __webpack_require__(6046);
-
-      var _headManagerContext = __webpack_require__(699);
-
-      var _amp = __webpack_require__(3237);
-
-      function _interopRequireDefault(obj) {
-        return obj && obj.__esModule
-          ? obj
-          : {
-              default: obj
-            };
-      }
-
-      function _interopRequireWildcard(obj) {
-        if (obj && obj.__esModule) {
-          return obj;
-        } else {
-          var newObj = {};
-
-          if (obj != null) {
-            for (var key in obj) {
-              if (Object.prototype.hasOwnProperty.call(obj, key)) {
-                var desc =
-                  Object.defineProperty && Object.getOwnPropertyDescriptor
-                    ? Object.getOwnPropertyDescriptor(obj, key)
-                    : {};
-
-                if (desc.get || desc.set) {
-                  Object.defineProperty(newObj, key, desc);
-                } else {
-                  newObj[key] = obj[key];
-                }
-              }
-            }
-          }
-
-          newObj["default"] = obj;
-          return newObj;
-        }
-      }
-
-      function defaultHead() {
-        var inAmpMode =
-          arguments.length > 0 && arguments[0] !== undefined
-            ? arguments[0]
-            : false;
-        var head = [
-          /*#__PURE__*/ _react["default"].createElement("meta", {
-            charSet: "utf-8"
-          })
-        ];
-
-        if (!inAmpMode) {
-          head.push(
-            /*#__PURE__*/ _react["default"].createElement("meta", {
-              name: "viewport",
-              content: "width=device-width"
-            })
-          );
-        }
-
-        return head;
-      }
-
-      function onlyReactElement(list, child) {
-        // React children can be "string" or "number" in this case we ignore them for backwards compat
-        if (typeof child === "string" || typeof child === "number") {
-          return list;
-        } // Adds support for React.Fragment
-
-        if (child.type === _react["default"].Fragment) {
-          return list.concat(
-            _react["default"].Children.toArray(child.props.children).reduce(
-              function(fragmentList, fragmentChild) {
-                if (
-                  typeof fragmentChild === "string" ||
-                  typeof fragmentChild === "number"
-                ) {
-                  return fragmentList;
-                }
-
-                return fragmentList.concat(fragmentChild);
-              },
-              []
-            )
-          );
-        }
-
-        return list.concat(child);
-      }
-
-      var METATYPES = ["name", "httpEquiv", "charSet", "itemProp"];
-      /*
- returns a function for filtering head child elements
- which shouldn't be duplicated, like <title/>
- Also adds support for deduplicated `key` properties
-*/
-
-      function unique() {
-        var keys = new Set();
-        var tags = new Set();
-        var metaTypes = new Set();
-        var metaCategories = {};
-        return function(h) {
-          var isUnique = true;
-          var hasKey = false;
-
-          if (h.key && typeof h.key !== "number" && h.key.indexOf("$") > 0) {
-            hasKey = true;
-            var key = h.key.slice(h.key.indexOf("$") + 1);
-
-            if (keys.has(key)) {
-              isUnique = false;
-            } else {
-              keys.add(key);
-            }
-          } // eslint-disable-next-line default-case
-
-          switch (h.type) {
-            case "title":
-            case "base":
-              if (tags.has(h.type)) {
-                isUnique = false;
-              } else {
-                tags.add(h.type);
-              }
-
-              break;
-
-            case "meta":
-              for (var i = 0, len = METATYPES.length; i < len; i++) {
-                var metatype = METATYPES[i];
-                if (!h.props.hasOwnProperty(metatype)) continue;
-
-                if (metatype === "charSet") {
-                  if (metaTypes.has(metatype)) {
-                    isUnique = false;
-                  } else {
-                    metaTypes.add(metatype);
-                  }
-                } else {
-                  var category = h.props[metatype];
-                  var categories = metaCategories[metatype] || new Set();
-
-                  if (
-                    (metatype !== "name" || !hasKey) &&
-                    categories.has(category)
-                  ) {
-                    isUnique = false;
-                  } else {
-                    categories.add(category);
-                    metaCategories[metatype] = categories;
-                  }
-                }
-              }
-
-              break;
-          }
-
-          return isUnique;
-        };
-      }
-      /**
-       *
-       * @param headElements List of multiple <Head> instances
-       */
-
-      function reduceComponents(headElements, props) {
-        return headElements
-          .reduce(function(list, headElement) {
-            var headElementChildren = _react["default"].Children.toArray(
-              headElement.props.children
-            );
-
-            return list.concat(headElementChildren);
-          }, [])
-          .reduce(onlyReactElement, [])
-          .reverse()
-          .concat(defaultHead(props.inAmpMode))
-          .filter(unique())
-          .reverse()
-          .map(function(c, i) {
-            var key = c.key || i;
-
-            if (true && !props.inAmpMode) {
-              if (
-                c.type === "link" &&
-                c.props["href"] && // TODO(prateekbh@): Replace this with const from `constants` when the tree shaking works.
-                [
-                  "https://fonts.googleapis.com/css",
-                  "https://use.typekit.net/"
-                ].some(function(url) {
-                  return c.props["href"].startsWith(url);
-                })
-              ) {
-                var newProps = _objectSpread({}, c.props || {});
-
-                newProps["data-href"] = newProps["href"];
-                newProps["href"] = undefined; // Add this attribute to make it easy to identify optimized tags
-
-                newProps["data-optimized-fonts"] = true;
-                return /*#__PURE__*/ _react["default"].cloneElement(
-                  c,
-                  newProps
-                );
-              }
-            }
-
-            return /*#__PURE__*/ _react["default"].cloneElement(c, {
-              key: key
-            });
-          });
-      }
-      /**
-       * This component injects elements to `<head>` of your page.
-       * To avoid duplicated `tags` in `<head>` you can use the `key` property, which will make sure every tag is only rendered once.
-       */
-
-      function Head(_ref) {
-        var children = _ref.children;
-        var ampState = (0, _react).useContext(_ampContext.AmpStateContext);
-        var headManager = (0, _react).useContext(
-          _headManagerContext.HeadManagerContext
-        );
-        return /*#__PURE__*/ _react["default"].createElement(
-          _sideEffect["default"],
-          {
-            reduceComponentsToState: reduceComponents,
-            headManager: headManager,
-            inAmpMode: (0, _amp).isInAmpMode(ampState)
-          },
-          children
-        );
-      }
-
-      var _default = Head;
-      exports.default = _default;
-
-      /***/
-    },
-
-    /***/ 4766: /***/ function(
-      __unused_webpack_module,
-      exports,
-      __webpack_require__
-    ) {
-      "use strict";
-
-      var _toConsumableArray = __webpack_require__(319);
-
-      var _classCallCheck = __webpack_require__(4575);
-
-      var _createClass = __webpack_require__(3913);
-
-      var _assertThisInitialized = __webpack_require__(1506);
-
-      var _inherits = __webpack_require__(2205);
-
-      var _possibleConstructorReturn = __webpack_require__(8585);
-
-      var _getPrototypeOf = __webpack_require__(9754);
-
-      function _createSuper(Derived) {
-        var hasNativeReflectConstruct = _isNativeReflectConstruct();
-        return function _createSuperInternal() {
-          var Super = _getPrototypeOf(Derived),
-            result;
-          if (hasNativeReflectConstruct) {
-            var NewTarget = _getPrototypeOf(this).constructor;
-            result = Reflect.construct(Super, arguments, NewTarget);
-          } else {
-            result = Super.apply(this, arguments);
-          }
-          return _possibleConstructorReturn(this, result);
-        };
-      }
-
-      function _isNativeReflectConstruct() {
-        if (typeof Reflect === "undefined" || !Reflect.construct) return false;
-        if (Reflect.construct.sham) return false;
-        if (typeof Proxy === "function") return true;
-        try {
-          Date.prototype.toString.call(
-            Reflect.construct(Date, [], function() {})
-          );
-          return true;
-        } catch (e) {
-          return false;
-        }
-      }
-
-      Object.defineProperty(exports, "__esModule", {
-        value: true
-      });
-      exports.default = void 0;
-
-      var _react = __webpack_require__(7294);
-
-      var isServer = false;
-
-      var _class = /*#__PURE__*/ (function(_react$Component) {
-        _inherits(_class, _react$Component);
-
-        var _super = _createSuper(_class);
-
-        function _class(props) {
-          var _this;
-
-          _classCallCheck(this, _class);
-
-          _this = _super.call(this, props);
-
-          _this.emitChange = function() {
-            if (_this._hasHeadManager) {
-              _this.props.headManager.updateHead(
-                _this.props.reduceComponentsToState(
-                  _toConsumableArray(_this.props.headManager.mountedInstances),
-                  _this.props
-                )
-              );
-            }
-          };
-
-          _this._hasHeadManager =
-            _this.props.headManager && _this.props.headManager.mountedInstances;
-
-          if (isServer && _this._hasHeadManager) {
-            _this.props.headManager.mountedInstances.add(
-              _assertThisInitialized(_this)
-            );
-
-            _this.emitChange();
-          }
-
-          return _this;
-        }
-
-        _createClass(_class, [
-          {
-            key: "componentDidMount",
-            value: function componentDidMount() {
-              if (this._hasHeadManager) {
-                this.props.headManager.mountedInstances.add(this);
-              }
-
-              this.emitChange();
-            }
-          },
-          {
-            key: "componentDidUpdate",
-            value: function componentDidUpdate() {
-              this.emitChange();
-            }
-          },
-          {
-            key: "componentWillUnmount",
-            value: function componentWillUnmount() {
-              if (this._hasHeadManager) {
-                this.props.headManager.mountedInstances["delete"](this);
-              }
-
-              this.emitChange();
-            }
-          },
-          {
-            key: "render",
-            value: function render() {
-              return null;
-            }
-          }
-        ]);
-
-        return _class;
-      })(_react.Component);
-
-      exports.default = _class;
-
-      /***/
-    },
-
     /***/ 5816: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
Diff for image-HASH.js
@@ -1,72 +1,6 @@
 (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
   [358],
   {
-    /***/ 3646: /***/ function(
-      module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) {
-      var arrayLikeToArray = __webpack_require__(7228);
-
-      function _arrayWithoutHoles(arr) {
-        if (Array.isArray(arr)) return arrayLikeToArray(arr);
-      }
-
-      module.exports = _arrayWithoutHoles;
-
-      /***/
-    },
-
-    /***/ 6860: /***/ function(module) {
-      function _iterableToArray(iter) {
-        if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter))
-          return Array.from(iter);
-      }
-
-      module.exports = _iterableToArray;
-
-      /***/
-    },
-
-    /***/ 8206: /***/ function(module) {
-      function _nonIterableSpread() {
-        throw new TypeError(
-          "Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."
-        );
-      }
-
-      module.exports = _nonIterableSpread;
-
-      /***/
-    },
-
-    /***/ 319: /***/ function(
-      module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) {
-      var arrayWithoutHoles = __webpack_require__(3646);
-
-      var iterableToArray = __webpack_require__(6860);
-
-      var unsupportedIterableToArray = __webpack_require__(379);
-
-      var nonIterableSpread = __webpack_require__(8206);
-
-      function _toConsumableArray(arr) {
-        return (
-          arrayWithoutHoles(arr) ||
-          iterableToArray(arr) ||
-          unsupportedIterableToArray(arr) ||
-          nonIterableSpread()
-        );
-      }
-
-      module.exports = _toConsumableArray;
-
-      /***/
-    },
-
     /***/ 9917: /***/ function(
       __unused_webpack_module,
       exports,
@@ -77,64 +11,103 @@
 
       var _slicedToArray = __webpack_require__(3038);
 
-      var _objectWithoutProperties = __webpack_require__(6479);
+      var _toConsumableArray = __webpack_require__(319);
 
-      var _defineProperty = __webpack_require__(9713);
+      __webpack_unused_export__ = {
+        value: true
+      };
+      exports.default = Image1;
 
-      var _toConsumableArray = __webpack_require__(319);
+      var _react = _interopRequireDefault(__webpack_require__(7294));
 
-      function ownKeys(object, enumerableOnly) {
-        var keys = Object.keys(object);
-        if (Object.getOwnPropertySymbols) {
-          var symbols = Object.getOwnPropertySymbols(object);
-          if (enumerableOnly)
-            symbols = symbols.filter(function(sym) {
-              return Object.getOwnPropertyDescriptor(object, sym).enumerable;
-            });
-          keys.push.apply(keys, symbols);
+      var _head = _interopRequireDefault(__webpack_require__(639));
+
+      var _toBase64 = __webpack_require__(8997);
+
+      var _imageConfig = __webpack_require__(5809);
+
+      var _useIntersection = __webpack_require__(7426);
+
+      function _defineProperty(obj, key, value) {
+        if (key in obj) {
+          Object.defineProperty(obj, key, {
+            value: value,
+            enumerable: true,
+            configurable: true,
+            writable: true
+          });
+        } else {
+          obj[key] = value;
         }
-        return keys;
+
+        return obj;
+      }
+
+      function _interopRequireDefault(obj) {
+        return obj && obj.__esModule
+          ? obj
+          : {
+              default: obj
+            };
       }
 
       function _objectSpread(target) {
         for (var i = 1; i < arguments.length; i++) {
           var source = arguments[i] != null ? arguments[i] : {};
-          if (i % 2) {
-            ownKeys(Object(source), true).forEach(function(key) {
-              _defineProperty(target, key, source[key]);
-            });
-          } else if (Object.getOwnPropertyDescriptors) {
-            Object.defineProperties(
-              target,
-              Object.getOwnPropertyDescriptors(source)
+          var ownKeys = Object.keys(source);
+
+          if (typeof Object.getOwnPropertySymbols === "function") {
+            ownKeys = ownKeys.concat(
+              Object.getOwnPropertySymbols(source).filter(function(sym) {
+                return Object.getOwnPropertyDescriptor(source, sym).enumerable;
+              })
             );
-          } else {
-            ownKeys(Object(source)).forEach(function(key) {
-              Object.defineProperty(
-                target,
-                key,
-                Object.getOwnPropertyDescriptor(source, key)
-              );
-            });
           }
+
+          ownKeys.forEach(function(key) {
+            _defineProperty(target, key, source[key]);
+          });
         }
+
         return target;
       }
 
-      var _interopRequireDefault = __webpack_require__(5318);
+      function _objectWithoutProperties(source, excluded) {
+        if (source == null) return {};
 
-      __webpack_unused_export__ = true;
-      exports.default = Image;
+        var target = _objectWithoutPropertiesLoose(source, excluded);
 
-      var _react = _interopRequireDefault(__webpack_require__(7294));
+        var key, i;
 
-      var _head = _interopRequireDefault(__webpack_require__(639));
+        if (Object.getOwnPropertySymbols) {
+          var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
+
+          for (i = 0; i < sourceSymbolKeys.length; i++) {
+            key = sourceSymbolKeys[i];
+            if (excluded.indexOf(key) >= 0) continue;
+            if (!Object.prototype.propertyIsEnumerable.call(source, key))
+              continue;
+            target[key] = source[key];
+          }
+        }
 
-      var _toBase = __webpack_require__(8997);
+        return target;
+      }
 
-      var _imageConfig = __webpack_require__(5809);
+      function _objectWithoutPropertiesLoose(source, excluded) {
+        if (source == null) return {};
+        var target = {};
+        var sourceKeys = Object.keys(source);
+        var key, i;
 
-      var _useIntersection = __webpack_require__(7426);
+        for (i = 0; i < sourceKeys.length; i++) {
+          key = sourceKeys[i];
+          if (excluded.indexOf(key) >= 0) continue;
+          target[key] = source[key];
+        }
+
+        return target;
+      }
 
       var loadedImageURLs = new Set();
 
@@ -383,32 +356,33 @@
         }
       }
 
-      function Image(_ref3) {
-        var src = _ref3.src,
-          sizes = _ref3.sizes,
-          _ref3$unoptimized = _ref3.unoptimized,
+      function Image1(_param) {
+        var src = _param.src,
+          sizes = _param.sizes,
+          _param$unoptimized = _param.unoptimized,
           unoptimized =
-            _ref3$unoptimized === void 0 ? false : _ref3$unoptimized,
-          _ref3$priority = _ref3.priority,
-          priority = _ref3$priority === void 0 ? false : _ref3$priority,
-          loading = _ref3.loading,
-          _ref3$lazyBoundary = _ref3.lazyBoundary,
+            _param$unoptimized === void 0 ? false : _param$unoptimized,
+          _param$priority = _param.priority,
+          priority = _param$priority === void 0 ? false : _param$priority,
+          loading = _param.loading,
+          _param$lazyBoundary = _param.lazyBoundary,
           lazyBoundary =
-            _ref3$lazyBoundary === void 0 ? "200px" : _ref3$lazyBoundary,
-          className = _ref3.className,
-          quality = _ref3.quality,
-          width = _ref3.width,
-          height = _ref3.height,
-          objectFit = _ref3.objectFit,
-          objectPosition = _ref3.objectPosition,
-          onLoadingComplete = _ref3.onLoadingComplete,
-          _ref3$loader = _ref3.loader,
-          loader = _ref3$loader === void 0 ? defaultImageLoader : _ref3$loader,
-          _ref3$placeholder = _ref3.placeholder,
+            _param$lazyBoundary === void 0 ? "200px" : _param$lazyBoundary,
+          className = _param.className,
+          quality = _param.quality,
+          width = _param.width,
+          height = _param.height,
+          objectFit = _param.objectFit,
+          objectPosition = _param.objectPosition,
+          onLoadingComplete = _param.onLoadingComplete,
+          _param$loader = _param.loader,
+          loader =
+            _param$loader === void 0 ? defaultImageLoader : _param$loader,
+          _param$placeholder = _param.placeholder,
           placeholder =
-            _ref3$placeholder === void 0 ? "empty" : _ref3$placeholder,
-          blurDataURL = _ref3.blurDataURL,
-          all = _objectWithoutProperties(_ref3, [
+            _param$placeholder === void 0 ? "empty" : _param$placeholder,
+          blurDataURL = _param.blurDataURL,
+          all = _objectWithoutProperties(_param, [
             "src",
             "sizes",
             "unoptimized",
@@ -488,13 +462,13 @@
           var rand, VALID_BLUR_EXT;
         }
 
-        var _ref4 = (0, _useIntersection.useIntersection)({
+        var _useIntersection2 = (0, _useIntersection).useIntersection({
             rootMargin: lazyBoundary,
             disabled: !isLazy
           }),
-          _ref5 = _slicedToArray(_ref4, 2),
-          setRef = _ref5[0],
-          isIntersected = _ref5[1];
+          _useIntersection3 = _slicedToArray(_useIntersection2, 2),
+          setRef = _useIntersection3[0],
+          isIntersected = _useIntersection3[1];
 
         var isVisible = !isLazy || isIntersected;
         var wrapperStyle;
@@ -649,7 +623,7 @@
                       "aria-hidden": true,
                       role: "presentation",
                       src: "data:image/svg+xml;base64,".concat(
-                        (0, _toBase.toBase64)(sizerSvg)
+                        (0, _toBase64).toBase64(sizerSvg)
                       )
                     })
                   : null
@@ -690,16 +664,16 @@
                 setRef(img);
                 handleLoading(img, srcString, placeholder, onLoadingComplete);
               },
-              style: _objectSpread(_objectSpread({}, imgStyle), blurStyle)
+              style: _objectSpread({}, imgStyle, blurStyle)
             })
           ),
-          priority
-            ? /*#__PURE__*/
-              // Note how we omit the 
Post job cleanup.
[command]/usr/bin/git version
git version 2.32.0
[command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
[command]/usr/bin/git submodule foreach --recursive git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :
[command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
http.https://github.com/.extraheader
[command]/usr/bin/git config --local --unset-all http.https://github.com/.extraheader
[command]/usr/bin/git submodule foreach --recursive git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :
Cleaning up orphan processes
Commit: b6fb3e27c270e2803faa2ece8e14e9f5349394de

@kodiakhq kodiakhq bot merged commit c7e2a1d into canary Jul 28, 2021
@kodiakhq kodiakhq bot deleted the add/use-swc-for-next-core-client branch July 28, 2021 15:10
flybayer pushed a commit to blitz-js/next.js that referenced this pull request Aug 19, 2021
Replaces Babel with SWC for Next.js core client-side files.

## Bug

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

## Feature

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

## Documentation / Examples

- [ ] Make sure the linting passes
@vercel vercel locked as resolved and limited conversation to collaborators Jan 28, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants