Skip to content

Commit

Permalink
v12.0.11-canary.20
Browse files Browse the repository at this point in the history
  • Loading branch information
ijjk committed Feb 16, 2022
1 parent 2264d35 commit 49da8c0
Show file tree
Hide file tree
Showing 15 changed files with 22 additions and 22 deletions.
2 changes: 1 addition & 1 deletion lerna.json
Expand Up @@ -16,5 +16,5 @@
"registry": "https://registry.npmjs.org/"
}
},
"version": "12.0.11-canary.19"
"version": "12.0.11-canary.20"
}
2 changes: 1 addition & 1 deletion packages/create-next-app/package.json
@@ -1,6 +1,6 @@
{
"name": "create-next-app",
"version": "12.0.11-canary.19",
"version": "12.0.11-canary.20",
"keywords": [
"react",
"next",
Expand Down
4 changes: 2 additions & 2 deletions packages/eslint-config-next/package.json
@@ -1,6 +1,6 @@
{
"name": "eslint-config-next",
"version": "12.0.11-canary.19",
"version": "12.0.11-canary.20",
"description": "ESLint configuration used by NextJS.",
"main": "index.js",
"license": "MIT",
Expand All @@ -9,7 +9,7 @@
"directory": "packages/eslint-config-next"
},
"dependencies": {
"@next/eslint-plugin-next": "12.0.11-canary.19",
"@next/eslint-plugin-next": "12.0.11-canary.20",
"@rushstack/eslint-patch": "^1.0.8",
"@typescript-eslint/parser": "^5.0.0",
"eslint-import-resolver-node": "^0.3.4",
Expand Down
2 changes: 1 addition & 1 deletion packages/eslint-plugin-next/package.json
@@ -1,6 +1,6 @@
{
"name": "@next/eslint-plugin-next",
"version": "12.0.11-canary.19",
"version": "12.0.11-canary.20",
"description": "ESLint plugin for NextJS.",
"main": "lib/index.js",
"license": "MIT",
Expand Down
2 changes: 1 addition & 1 deletion packages/next-bundle-analyzer/package.json
@@ -1,6 +1,6 @@
{
"name": "@next/bundle-analyzer",
"version": "12.0.11-canary.19",
"version": "12.0.11-canary.20",
"main": "index.js",
"license": "MIT",
"repository": {
Expand Down
2 changes: 1 addition & 1 deletion packages/next-codemod/package.json
@@ -1,6 +1,6 @@
{
"name": "@next/codemod",
"version": "12.0.11-canary.19",
"version": "12.0.11-canary.20",
"license": "MIT",
"dependencies": {
"chalk": "4.1.0",
Expand Down
2 changes: 1 addition & 1 deletion packages/next-env/package.json
@@ -1,6 +1,6 @@
{
"name": "@next/env",
"version": "12.0.11-canary.19",
"version": "12.0.11-canary.20",
"keywords": [
"react",
"next",
Expand Down
2 changes: 1 addition & 1 deletion packages/next-mdx/package.json
@@ -1,6 +1,6 @@
{
"name": "@next/mdx",
"version": "12.0.11-canary.19",
"version": "12.0.11-canary.20",
"main": "index.js",
"license": "MIT",
"repository": {
Expand Down
2 changes: 1 addition & 1 deletion packages/next-plugin-storybook/package.json
@@ -1,6 +1,6 @@
{
"name": "@next/plugin-storybook",
"version": "12.0.11-canary.19",
"version": "12.0.11-canary.20",
"repository": {
"url": "vercel/next.js",
"directory": "packages/next-plugin-storybook"
Expand Down
2 changes: 1 addition & 1 deletion packages/next-polyfill-module/package.json
@@ -1,6 +1,6 @@
{
"name": "@next/polyfill-module",
"version": "12.0.11-canary.19",
"version": "12.0.11-canary.20",
"description": "A standard library polyfill for ES Modules supporting browsers (Edge 16+, Firefox 60+, Chrome 61+, Safari 10.1+)",
"main": "dist/polyfill-module.js",
"license": "MIT",
Expand Down
2 changes: 1 addition & 1 deletion packages/next-polyfill-nomodule/package.json
@@ -1,6 +1,6 @@
{
"name": "@next/polyfill-nomodule",
"version": "12.0.11-canary.19",
"version": "12.0.11-canary.20",
"description": "A polyfill for non-dead, nomodule browsers.",
"main": "dist/polyfill-nomodule.js",
"license": "MIT",
Expand Down
2 changes: 1 addition & 1 deletion packages/next-swc/package.json
@@ -1,6 +1,6 @@
{
"name": "@next/swc",
"version": "12.0.11-canary.19",
"version": "12.0.11-canary.20",
"private": true,
"scripts": {
"build-native": "napi build --platform --cargo-name next_swc_napi native",
Expand Down
14 changes: 7 additions & 7 deletions packages/next/package.json
@@ -1,6 +1,6 @@
{
"name": "next",
"version": "12.0.11-canary.19",
"version": "12.0.11-canary.20",
"description": "The React Framework",
"main": "./dist/server/next.js",
"license": "MIT",
Expand Down Expand Up @@ -69,7 +69,7 @@
]
},
"dependencies": {
"@next/env": "12.0.11-canary.19",
"@next/env": "12.0.11-canary.20",
"caniuse-lite": "^1.0.30001283",
"postcss": "8.4.5",
"styled-jsx": "5.0.0",
Expand Down Expand Up @@ -117,11 +117,11 @@
"@hapi/accept": "5.0.2",
"@napi-rs/cli": "1.2.1",
"@napi-rs/triples": "1.0.3",
"@next/polyfill-module": "12.0.11-canary.19",
"@next/polyfill-nomodule": "12.0.11-canary.19",
"@next/react-dev-overlay": "12.0.11-canary.19",
"@next/react-refresh-utils": "12.0.11-canary.19",
"@next/swc": "12.0.11-canary.19",
"@next/polyfill-module": "12.0.11-canary.20",
"@next/polyfill-nomodule": "12.0.11-canary.20",
"@next/react-dev-overlay": "12.0.11-canary.20",
"@next/react-refresh-utils": "12.0.11-canary.20",
"@next/swc": "12.0.11-canary.20",
"@peculiar/webcrypto": "1.1.7",
"@taskr/clear": "1.1.0",
"@taskr/esnext": "1.1.0",
Expand Down
2 changes: 1 addition & 1 deletion packages/react-dev-overlay/package.json
@@ -1,6 +1,6 @@
{
"name": "@next/react-dev-overlay",
"version": "12.0.11-canary.19",
"version": "12.0.11-canary.20",
"description": "A development-only overlay for developing React applications.",
"repository": {
"url": "vercel/next.js",
Expand Down
2 changes: 1 addition & 1 deletion packages/react-refresh-utils/package.json
@@ -1,6 +1,6 @@
{
"name": "@next/react-refresh-utils",
"version": "12.0.11-canary.19",
"version": "12.0.11-canary.20",
"description": "An experimental package providing utilities for React Refresh.",
"repository": {
"url": "vercel/next.js",
Expand Down

1 comment on commit 49da8c0

@ijjk
Copy link
Member Author

@ijjk ijjk commented on 49da8c0 Feb 17, 2022

Choose a reason for hiding this comment

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

Stats from current release

Default Build (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary v12.0.10 vercel/next.js refs/heads/canary Change
buildDuration 14.9s 18.8s ⚠️ +3.9s
buildDurationCached 3.5s 6.9s ⚠️ +3.4s
nodeModulesSize 359 MB 359 MB ⚠️ +112 kB
Page Load Tests Overall decrease ⚠️
vercel/next.js canary v12.0.10 vercel/next.js refs/heads/canary Change
/ failed reqs 0 0
/ total time (seconds) 3.821 4.021 ⚠️ +0.2
/ avg req/sec 654.26 621.7 ⚠️ -32.56
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.952 2.036 ⚠️ +0.08
/error-in-render avg req/sec 1280.59 1228.09 ⚠️ -52.5
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary v12.0.10 vercel/next.js refs/heads/canary Change
450.HASH.js gzip 179 B 179 B
framework-HASH.js gzip 42.2 kB 42 kB -186 B
main-HASH.js gzip 27.2 kB 27.9 kB ⚠️ +743 B
webpack-HASH.js gzip 1.44 kB 1.44 kB
Overall change 71 kB 71.6 kB ⚠️ +557 B
Legacy Client Bundles (polyfills)
vercel/next.js canary v12.0.10 vercel/next.js refs/heads/canary Change
polyfills-HASH.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages Overall increase ⚠️
vercel/next.js canary v12.0.10 vercel/next.js refs/heads/canary Change
_app-HASH.js gzip 1.37 kB 1.36 kB -2 B
_error-HASH.js gzip 194 B 194 B
amp-HASH.js gzip 312 B 312 B
css-HASH.js gzip 326 B 326 B
dynamic-HASH.js gzip 2.37 kB 2.57 kB ⚠️ +200 B
head-HASH.js gzip 350 B 350 B
hooks-HASH.js gzip 919 B 919 B
image-HASH.js gzip 4.94 kB 5.05 kB ⚠️ +109 B
index-HASH.js gzip 263 B 263 B
link-HASH.js gzip 2.19 kB 2.26 kB ⚠️ +72 B
routerDirect..HASH.js gzip 321 B 321 B
script-HASH.js gzip 383 B 383 B
withRouter-HASH.js gzip 318 B 318 B
85e02e95b279..7e3.css gzip 107 B 107 B
Overall change 14.4 kB 14.7 kB ⚠️ +379 B
Client Build Manifests Overall increase ⚠️
vercel/next.js canary v12.0.10 vercel/next.js refs/heads/canary Change
_buildManifest.js gzip 459 B 460 B ⚠️ +1 B
Overall change 459 B 460 B ⚠️ +1 B
Rendered Page Sizes Overall increase ⚠️
vercel/next.js canary v12.0.10 vercel/next.js refs/heads/canary Change
index.html gzip 530 B 531 B ⚠️ +1 B
link.html gzip 543 B 544 B ⚠️ +1 B
withRouter.html gzip 525 B 526 B ⚠️ +1 B
Overall change 1.6 kB 1.6 kB ⚠️ +3 B

Diffs

Diff for _buildManifest.js
@@ -8,12 +8,12 @@ self.__BUILD_MANIFEST = {
     "static\u002Fchunks\u002Fpages\u002Fcss-97182c5b8324021a.js"
   ],
   "/dynamic": [
-    "static\u002Fchunks\u002Fpages\u002Fdynamic-9b7afaaa04b653ed.js"
+    "static\u002Fchunks\u002Fpages\u002Fdynamic-d871c798afae7091.js"
   ],
   "/head": ["static\u002Fchunks\u002Fpages\u002Fhead-7100d3b2a548f0e4.js"],
   "/hooks": ["static\u002Fchunks\u002Fpages\u002Fhooks-538d621a0e670391.js"],
-  "/image": ["static\u002Fchunks\u002Fpages\u002Fimage-53463827ccaef972.js"],
-  "/link": ["static\u002Fchunks\u002Fpages\u002Flink-f0a2c3bb0706d8b2.js"],
+  "/image": ["static\u002Fchunks\u002Fpages\u002Fimage-39f3ab40e378fe36.js"],
+  "/link": ["static\u002Fchunks\u002Fpages\u002Flink-b932c7479a7c37ca.js"],
   "/routerDirect": [
     "static\u002Fchunks\u002Fpages\u002FrouterDirect-76232dd6bc335a24.js"
   ],
Diff for dynamic-HASH.js
@@ -375,7 +375,11 @@
         }
         // Client only
         if (!initialized && "object" !== "undefined" && !opts.suspense) {
-          var moduleIds = opts.webpack ? opts.webpack() : opts.modules;
+          // require.resolveWeak check is needed for environments that don't have it available like Jest
+          var moduleIds =
+            opts.webpack && "function" === "function"
+              ? opts.webpack()
+              : opts.modules;
           if (moduleIds) {
             READY_INITIALIZERS.push(function(ids) {
               var _iteratorNormalCompletion = true,
@@ -633,6 +637,79 @@
     ) {
       module.exports = __webpack_require__(638);
 
+      /***/
+    },
+
+    /***/ 8217: /***/ function(
+      __unused_webpack_module,
+      exports,
+      __webpack_require__
+    ) {
+      "use strict";
+      /** @license React vundefined
+       * use-subscription.production.min.js
+       *
+       * Copyright (c) Facebook, Inc. and its affiliates.
+       *
+       * This source code is licensed under the MIT license found in the
+       * LICENSE file in the root directory of this source tree.
+       */
+      var e = __webpack_require__(6086),
+        g = __webpack_require__(7294);
+      exports.useSubscription = function(a) {
+        var c = a.getCurrentValue,
+          d = a.subscribe,
+          b = g.useState(function() {
+            return { getCurrentValue: c, subscribe: d, value: c() };
+          });
+        a = b[0];
+        var f = b[1];
+        b = a.value;
+        if (a.getCurrentValue !== c || a.subscribe !== d)
+          (b = c()), f({ getCurrentValue: c, subscribe: d, value: b });
+        g.useDebugValue(b);
+        g.useEffect(
+          function() {
+            function b() {
+              if (!a) {
+                var b = c();
+                f(function(a) {
+                  return a.getCurrentValue !== c ||
+                    a.subscribe !== d ||
+                    a.value === b
+                    ? a
+                    : e({}, a, { value: b });
+                });
+              }
+            }
+            var a = !1,
+              h = d(b);
+            b();
+            return function() {
+              a = !0;
+              h();
+            };
+          },
+          [c, d]
+        );
+        return b;
+      };
+
+      /***/
+    },
+
+    /***/ 7161: /***/ function(
+      module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) {
+      "use strict";
+
+      if (true) {
+        module.exports = __webpack_require__(8217);
+      } else {
+      }
+
       /***/
     }
   },
Diff for image-HASH.js
@@ -9,7 +9,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/image",
         function() {
-          return __webpack_require__(5924);
+          return __webpack_require__(3155);
         }
       ]);
       if (false) {
@@ -131,6 +131,7 @@
       var _head = _interopRequireDefault(__webpack_require__(5443));
       var _imageConfig = __webpack_require__(5809);
       var _useIntersection = __webpack_require__(7190);
+      var _imageConfigContext = __webpack_require__(9977);
       function _defineProperty1(obj, key, value) {
         if (key in obj) {
           Object.defineProperty(obj, key, {
@@ -225,6 +226,12 @@
         }
         return target;
       }
+      var configEnv = {
+        deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840],
+        imageSizes: [16, 32, 48, 64, 96, 128, 256, 384],
+        path: "/_next/image",
+        loader: "default"
+      };
       var loadedImageURLs = new Set();
       var allImgs = new Map();
       var perfObserver;
@@ -263,29 +270,9 @@
           (isStaticRequire(src) || isStaticImageData(src))
         );
       }
-      var ref =
-          {
-            deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840],
-            imageSizes: [16, 32, 48, 64, 96, 128, 256, 384],
-            path: "/_next/image",
-            loader: "default"
-          } || _imageConfig.imageConfigDefault,
-        configDeviceSizes = ref.deviceSizes,
-        configImageSizes = ref.imageSizes,
-        configLoader = ref.loader,
-        configPath = ref.path,
-        configDomains = ref.domains;
-      // sort smallest to largest
-      var allSizes = _toConsumableArray(configDeviceSizes).concat(
-        _toConsumableArray(configImageSizes)
-      );
-      configDeviceSizes.sort(function(a, b) {
-        return a - b;
-      });
-      allSizes.sort(function(a, b) {
-        return a - b;
-      });
-      function getWidths(width, layout, sizes) {
+      function getWidths(param, width, layout, sizes) {
+        var deviceSizes = param.deviceSizes,
+          allSizes = param.allSizes;
         if (sizes && (layout === "fill" || layout === "responsive")) {
           // Find all the "vw" percent sizes used in the sizes prop
           var viewportWidthRe = /(^|\s)(1?\d?\d)vw/g;
@@ -302,7 +289,7 @@
               ) * 0.01;
             return {
               widths: allSizes.filter(function(s) {
-                return s >= configDeviceSizes[0] * smallestRatio;
+                return s >= deviceSizes[0] * smallestRatio;
               }),
               kind: "w"
             };
@@ -318,7 +305,7 @@
           layout === "responsive"
         ) {
           return {
-            widths: configDeviceSizes,
+            widths: deviceSizes,
             kind: "w"
           };
         }
@@ -345,7 +332,8 @@
         };
       }
       function generateImgAttrs(param) {
-        var src = param.src,
+        var config = param.config,
+          src = param.src,
           unoptimized = param.unoptimized,
           layout = param.layout,
           width = param.width,
@@ -359,9 +347,9 @@
             sizes: undefined
           };
         }
-        var ref1 = getWidths(width, layout, sizes),
-          widths = ref1.widths,
-          kind = ref1.kind;
+        var ref = getWidths(config, width, layout, sizes),
+          widths = ref.widths,
+          kind = ref.kind;
         var last = widths.length - 1;
         return {
           sizes: !sizes && kind === "w" ? "100vw" : sizes,
@@ -370,6 +358,7 @@
               return ""
                 .concat(
                   loader({
+                    config: config,
                     src: src,
                     quality: quality,
                     width: w
@@ -387,6 +376,7 @@
           // and `sizes` are defined.
           // This bug cannot be reproduced in Chrome or Firefox.
           src: loader({
+            config: config,
             src: src,
             quality: quality,
             width: widths[last]
@@ -403,21 +393,19 @@
         return undefined;
       }
       function defaultImageLoader(loaderProps) {
-        var load = loaders.get(configLoader);
+        var ref;
+        var loaderKey =
+          ((ref = loaderProps.config) === null || ref === void 0
+            ? void 0
+            : ref.loader) || "default";
+        var load = loaders.get(loaderKey);
         if (load) {
-          return load(
-            _objectSpread(
-              {
-                root: configPath
-              },
-              loaderProps
-            )
-          );
+          return load(loaderProps);
         }
         throw new Error(
           'Unknown "loader" found in "next.config.js". Expected: '
             .concat(_imageConfig.VALID_LOADERS.join(", "), ". Received: ")
-            .concat(configLoader)
+            .concat(loaderKey)
         );
       }
       // See https://stackoverflow.com/q/39777833/266535 for why we use this ref
@@ -458,7 +446,7 @@
                 });
               }
               if (false) {
-                var parent, ref2;
+                var parent, ref;
               }
             });
           }
@@ -518,6 +506,28 @@
             "blurDataURL"
           ]);
         var imgRef = (0, _react).useRef(null);
+        var configContext = (0, _react).useContext(
+          _imageConfigContext.ImageConfigContext
+        );
+        var config = (0, _react).useMemo(
+          function() {
+            var c =
+              configEnv || configContext || _imageConfig.imageConfigDefault;
+            var allSizes = _toConsumableArray(c.deviceSizes)
+              .concat(_toConsumableArray(c.imageSizes))
+              .sort(function(a, b) {
+                return a - b;
+              });
+            var deviceSizes = c.deviceSizes.sort(function(a, b) {
+              return a - b;
+            });
+            return _objectSpread({}, c, {
+              allSizes: allSizes,
+              deviceSizes: deviceSizes
+            });
+          },
+          [configContext]
+        );
         var rest = all;
         var layout = sizes ? "responsive" : "intrinsic";
         if ("layout" in rest) {
@@ -567,7 +577,7 @@
         if (false) {
           var url, urlStr, VALID_BLUR_EXT;
         }
-        var ref3 = _slicedToArray(
+        var ref1 = _slicedToArray(
             (0, _useIntersection).useIntersection({
               rootRef: lazyRoot,
               rootMargin: lazyBoundary,
@@ -575,8 +585,8 @@
             }),
             2
           ),
-          setIntersection = ref3[0],
-          isIntersected = ref3[1];
+          setIntersection = ref1[0],
+          isIntersected = ref1[1];
         var isVisible = !isLazy || isIntersected;
         var wrapperStyle = {
           boxSizing: "border-box",
@@ -684,6 +694,7 @@
         };
         if (isVisible) {
           imgAttributes = generateImgAttrs({
+            config: config,
             src: src,
             unoptimized: unoptimized,
             layout: layout,
@@ -784,6 +795,7 @@
                   {},
                   rest,
                   generateImgAttrs({
+                    config: config,
                     src: src,
                     unoptimized: unoptimized,
                     layout: layout,
@@ -834,12 +846,12 @@
         return src[0] === "/" ? src.slice(1) : src;
       }
       function imgixLoader(param) {
-        var root = param.root,
+        var config = param.config,
           src = param.src,
           width = param.width,
           quality = param.quality;
         // Demo: https://static.imgix.net/daisy.png?auto=format&fit=max&w=300
-        var url = new URL("".concat(root).concat(normalizeSrc(src)));
+        var url = new URL("".concat(config.path).concat(normalizeSrc(src)));
         var params = url.searchParams;
         params.set("auto", params.get("auto") || "format");
         params.set("fit", params.get("fit") || "max");
@@ -850,16 +862,16 @@
         return url.href;
       }
       function akamaiLoader(param) {
-        var root = param.root,
+        var config = param.config,
           src = param.src,
           width = param.width;
         return ""
-          .concat(root)
+          .concat(config.path)
           .concat(normalizeSrc(src), "?imwidth=")
           .concat(width);
       }
       function cloudinaryLoader(param) {
-        var root = param.root,
+        var config = param.config,
           src = param.src,
           width = param.width,
           quality = param.quality;
@@ -872,7 +884,7 @@
         ];
         var paramsString = params.join(",") + "/";
         return ""
-          .concat(root)
+          .concat(config.path)
           .concat(paramsString)
           .concat(normalizeSrc(src));
       }
@@ -884,15 +896,20 @@
         );
       }
       function defaultLoader(param) {
-        var root = param.root,
+        var config = param.config,
           src = param.src,
           width = param.width,
           quality = param.quality;
         if (false) {
           var parsedSrc, missingValues;
         }
+        if (src.endsWith(".svg") && !config.dangerouslyAllowSVG) {
+          // Special case to make svg serve as-is to avoid proxying
+          // through the built-in Image Optimization API.
+          return src;
+        }
         return ""
-          .concat(root, "?url=")
+          .concat(config.path, "?url=")
           .concat(encodeURIComponent(src), "&w=")
           .concat(width, "&q=")
           .concat(quality || 75);
@@ -1053,13 +1070,32 @@
           if (elements.size === 0) {
             observer.disconnect();
             observers.delete(id);
+            var index = idList.findIndex(function(obj) {
+              return obj.root === id.root && obj.margin === id.margin;
+            });
+            if (index > -1) {
+              idList.splice(index, 1);
+            }
           }
         };
       }
       var observers = new Map();
+      var idList = [];
       function createObserver(options) {
-        var id = options.rootMargin || "";
-        var instance = observers.get(id);
+        var id = {
+          root: options.root || null,
+          margin: options.rootMargin || ""
+        };
+        var existing = idList.find(function(obj) {
+          return obj.root === id.root && obj.margin === id.margin;
+        });
+        var instance;
+        if (existing) {
+          instance = observers.get(existing);
+        } else {
+          instance = observers.get(id);
+          idList.push(id);
+        }
         if (instance) {
           return instance;
         }
@@ -1087,7 +1123,7 @@
       /***/
     },
 
-    /***/ 5924: /***/ function(
+    /***/ 3155: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -1136,38 +1172,6 @@
       /***/
     },
 
-    /***/ 5809: /***/ function(__unused_webpack_module, exports) {
-      "use strict";
-
-      Object.defineProperty(exports, "__esModule", {
-        value: true
-      });
-      exports.imageConfigDefault = exports.VALID_LOADERS = void 0;
-      const VALID_LOADERS = [
-        "default",
-        "imgix",
-        "cloudinary",
-        "akamai",
-        "custom"
-      ];
-      exports.VALID_LOADERS = VALID_LOADERS;
-      const imageConfigDefault = {
-        deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840],
-        imageSizes: [16, 32, 48, 64, 96, 128, 256, 384],
-        path: "/_next/image",
-        loader: "default",
-        domains: [],
-        disableStaticImages: false,
-        minimumCacheTTL: 60,
-        formats: ["image/webp"]
-      };
-      exports.imageConfigDefault = imageConfigDefault;
-
-      //# sourceMappingURL=image-config.js.map
-
-      /***/
-    },
-
     /***/ 5675: /***/ function(
       module,
       __unused_webpack_exports,
Diff for link-HASH.js
@@ -151,18 +151,16 @@
         locale
       ) {
         var nodeName = e.currentTarget.nodeName;
+        // anchors inside an svg have a lowercase nodeName
+        var isAnchorNodeName = nodeName.toUpperCase() === "A";
         if (
-          nodeName === "A" &&
+          isAnchorNodeName &&
           (isModifiedEvent(e) || !(0, _router).isLocalURL(href))
         ) {
           // ignore click for browser’s default behavior
           return;
         }
         e.preventDefault();
-        //  avoid scroll for urls with anchor refs
-        if (scroll == null && as.indexOf("#") >= 0) {
-          scroll = false;
-        }
         // replace state instead of push if prop is present
         router[replace ? "replace" : "push"](href, as, {
           shallow: shallow,
@@ -258,6 +256,8 @@
         var childProps = {
           ref: setRef,
           onClick: function(e) {
+            if (false) {
+            }
             if (child.props && typeof child.props.onClick === "function") {
               child.props.onClick(e);
             }
@@ -474,13 +474,32 @@
           if (elements.size === 0) {
             observer.disconnect();
             observers.delete(id);
+            var index = idList.findIndex(function(obj) {
+              return obj.root === id.root && obj.margin === id.margin;
+            });
+            if (index > -1) {
+              idList.splice(index, 1);
+            }
           }
         };
       }
       var observers = new Map();
+      var idList = [];
       function createObserver(options) {
-        var id = options.rootMargin || "";
-        var instance = observers.get(id);
+        var id = {
+          root: options.root || null,
+          margin: options.rootMargin || ""
+        };
+        var existing = idList.find(function(obj) {
+          return obj.root === id.root && obj.margin === id.margin;
+        });
+        var instance;
+        if (existing) {
+          instance = observers.get(existing);
+        } else {
+          instance = observers.get(id);
+          idList.push(id);
+        }
         if (instance) {
           return instance;
         }
Diff for framework-HASH.js
@@ -8688,76 +8688,6 @@
       } else {
       }
 
-      /***/
-    },
-
-    /***/ 8217: /***/ function(
-      __unused_webpack_module,
-      exports,
-      __webpack_require__
-    ) {
-      /** @license React vundefined
-       * use-subscription.production.min.js
-       *
-       * Copyright (c) Facebook, Inc. and its affiliates.
-       *
-       * This source code is licensed under the MIT license found in the
-       * LICENSE file in the root directory of this source tree.
-       */
-      var e = __webpack_require__(6086),
-        g = __webpack_require__(7294);
-      exports.useSubscription = function(a) {
-        var c = a.getCurrentValue,
-          d = a.subscribe,
-          b = g.useState(function() {
-            return { getCurrentValue: c, subscribe: d, value: c() };
-          });
-        a = b[0];
-        var f = b[1];
-        b = a.value;
-        if (a.getCurrentValue !== c || a.subscribe !== d)
-          (b = c()), f({ getCurrentValue: c, subscribe: d, value: b });
-        g.useDebugValue(b);
-        g.useEffect(
-          function() {
-            function b() {
-              if (!a) {
-                var b = c();
-                f(function(a) {
-                  return a.getCurrentValue !== c ||
-                    a.subscribe !== d ||
-                    a.value === b
-                    ? a
-                    : e({}, a, { value: b });
-                });
-              }
-            }
-            var a = !1,
-              h = d(b);
-            b();
-            return function() {
-              a = !0;
-              h();
-            };
-          },
-          [c, d]
-        );
-        return b;
-      };
-
-      /***/
-    },
-
-    /***/ 7161: /***/ function(
-      module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) {
-      if (true) {
-        module.exports = __webpack_require__(8217);
-      } else {
-      }
-
       /***/
     }
   }
Diff for main-HASH.js

Diff too large to display

Diff for index.html
@@ -15,11 +15,11 @@
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/framework-535325b9235a831f.js"
+      src="/_next/static/chunks/framework-287ad9396a03b869.js"
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/main-c6fc133fe313f8ea.js"
+      src="/_next/static/chunks/main-83f98654d619b546.js"
       defer=""
     ></script>
     <script
Diff for link.html
@@ -15,11 +15,11 @@
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/framework-535325b9235a831f.js"
+      src="/_next/static/chunks/framework-287ad9396a03b869.js"
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/main-c6fc133fe313f8ea.js"
+      src="/_next/static/chunks/main-83f98654d619b546.js"
       defer=""
     ></script>
     <script
@@ -27,7 +27,7 @@
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/pages/link-f0a2c3bb0706d8b2.js"
+      src="/_next/static/chunks/pages/link-b932c7479a7c37ca.js"
       defer=""
     ></script>
     <script src="/_next/static/BUILD_ID/_buildManifest.js" defer=""></script>
Diff for withRouter.html
@@ -15,11 +15,11 @@
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/framework-535325b9235a831f.js"
+      src="/_next/static/chunks/framework-287ad9396a03b869.js"
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/main-c6fc133fe313f8ea.js"
+      src="/_next/static/chunks/main-83f98654d619b546.js"
       defer=""
     ></script>
     <script

Default Build with SWC (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary v12.0.10 vercel/next.js refs/heads/canary Change
buildDuration 18.9s 23.1s ⚠️ +4.2s
buildDurationCached 3.7s 7s ⚠️ +3.2s
nodeModulesSize 359 MB 359 MB ⚠️ +112 kB
Page Load Tests Overall decrease ⚠️
vercel/next.js canary v12.0.10 vercel/next.js refs/heads/canary Change
/ failed reqs 0 0
/ total time (seconds) 3.687 4.064 ⚠️ +0.38
/ avg req/sec 678.11 615.09 ⚠️ -63.02
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.983 1.988 0
/error-in-render avg req/sec 1261.01 1257.6 ⚠️ -3.41
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary v12.0.10 vercel/next.js refs/heads/canary Change
450.HASH.js gzip 179 B 179 B
framework-HASH.js gzip 42.3 kB 42.1 kB -190 B
main-HASH.js gzip 27.3 kB 28 kB ⚠️ +704 B
webpack-HASH.js gzip 1.44 kB 1.44 kB
Overall change 71.2 kB 71.7 kB ⚠️ +514 B
Legacy Client Bundles (polyfills)
vercel/next.js canary v12.0.10 vercel/next.js refs/heads/canary Change
polyfills-HASH.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages Overall increase ⚠️
vercel/next.js canary v12.0.10 vercel/next.js refs/heads/canary Change
_app-HASH.js gzip 1.35 kB 1.35 kB
_error-HASH.js gzip 180 B 180 B
amp-HASH.js gzip 305 B 305 B
css-HASH.js gzip 321 B 321 B
dynamic-HASH.js gzip 2.36 kB 2.56 kB ⚠️ +196 B
head-HASH.js gzip 342 B 342 B
hooks-HASH.js gzip 911 B 911 B
image-HASH.js gzip 4.98 kB 5.08 kB ⚠️ +105 B
index-HASH.js gzip 256 B 256 B
link-HASH.js gzip 2.21 kB 2.28 kB ⚠️ +70 B
routerDirect..HASH.js gzip 314 B 314 B
script-HASH.js gzip 375 B 375 B
withRouter-HASH.js gzip 309 B 309 B
85e02e95b279..7e3.css gzip 107 B 107 B
Overall change 14.3 kB 14.7 kB ⚠️ +371 B
Client Build Manifests
vercel/next.js canary v12.0.10 vercel/next.js refs/heads/canary Change
_buildManifest.js gzip 459 B 459 B
Overall change 459 B 459 B
Rendered Page Sizes Overall increase ⚠️
vercel/next.js canary v12.0.10 vercel/next.js refs/heads/canary Change
index.html gzip 532 B 534 B ⚠️ +2 B
link.html gzip 546 B 547 B ⚠️ +1 B
withRouter.html gzip 527 B 528 B ⚠️ +1 B
Overall change 1.6 kB 1.61 kB ⚠️ +4 B

Diffs

Diff for _buildManifest.js
@@ -8,12 +8,12 @@ self.__BUILD_MANIFEST = {
     "static\u002Fchunks\u002Fpages\u002Fcss-97182c5b8324021a.js"
   ],
   "/dynamic": [
-    "static\u002Fchunks\u002Fpages\u002Fdynamic-9b7afaaa04b653ed.js"
+    "static\u002Fchunks\u002Fpages\u002Fdynamic-d871c798afae7091.js"
   ],
   "/head": ["static\u002Fchunks\u002Fpages\u002Fhead-7100d3b2a548f0e4.js"],
   "/hooks": ["static\u002Fchunks\u002Fpages\u002Fhooks-538d621a0e670391.js"],
-  "/image": ["static\u002Fchunks\u002Fpages\u002Fimage-53463827ccaef972.js"],
-  "/link": ["static\u002Fchunks\u002Fpages\u002Flink-f0a2c3bb0706d8b2.js"],
+  "/image": ["static\u002Fchunks\u002Fpages\u002Fimage-39f3ab40e378fe36.js"],
+  "/link": ["static\u002Fchunks\u002Fpages\u002Flink-b932c7479a7c37ca.js"],
   "/routerDirect": [
     "static\u002Fchunks\u002Fpages\u002FrouterDirect-76232dd6bc335a24.js"
   ],
Diff for dynamic-HASH.js
@@ -375,7 +375,11 @@
         }
         // Client only
         if (!initialized && "object" !== "undefined" && !opts.suspense) {
-          var moduleIds = opts.webpack ? opts.webpack() : opts.modules;
+          // require.resolveWeak check is needed for environments that don't have it available like Jest
+          var moduleIds =
+            opts.webpack && "function" === "function"
+              ? opts.webpack()
+              : opts.modules;
           if (moduleIds) {
             READY_INITIALIZERS.push(function(ids) {
               var _iteratorNormalCompletion = true,
@@ -633,6 +637,79 @@
     ) {
       module.exports = __webpack_require__(638);
 
+      /***/
+    },
+
+    /***/ 8217: /***/ function(
+      __unused_webpack_module,
+      exports,
+      __webpack_require__
+    ) {
+      "use strict";
+      /** @license React vundefined
+       * use-subscription.production.min.js
+       *
+       * Copyright (c) Facebook, Inc. and its affiliates.
+       *
+       * This source code is licensed under the MIT license found in the
+       * LICENSE file in the root directory of this source tree.
+       */
+      var e = __webpack_require__(6086),
+        g = __webpack_require__(7294);
+      exports.useSubscription = function(a) {
+        var c = a.getCurrentValue,
+          d = a.subscribe,
+          b = g.useState(function() {
+            return { getCurrentValue: c, subscribe: d, value: c() };
+          });
+        a = b[0];
+        var f = b[1];
+        b = a.value;
+        if (a.getCurrentValue !== c || a.subscribe !== d)
+          (b = c()), f({ getCurrentValue: c, subscribe: d, value: b });
+        g.useDebugValue(b);
+        g.useEffect(
+          function() {
+            function b() {
+              if (!a) {
+                var b = c();
+                f(function(a) {
+                  return a.getCurrentValue !== c ||
+                    a.subscribe !== d ||
+                    a.value === b
+                    ? a
+                    : e({}, a, { value: b });
+                });
+              }
+            }
+            var a = !1,
+              h = d(b);
+            b();
+            return function() {
+              a = !0;
+              h();
+            };
+          },
+          [c, d]
+        );
+        return b;
+      };
+
+      /***/
+    },
+
+    /***/ 7161: /***/ function(
+      module,
+      __unused_webpack_exports,
+      __webpack_require__
+    ) {
+      "use strict";
+
+      if (true) {
+        module.exports = __webpack_require__(8217);
+      } else {
+      }
+
       /***/
     }
   },
Diff for image-HASH.js
@@ -9,7 +9,7 @@
       (window.__NEXT_P = window.__NEXT_P || []).push([
         "/image",
         function() {
-          return __webpack_require__(5924);
+          return __webpack_require__(3155);
         }
       ]);
       if (false) {
@@ -131,6 +131,7 @@
       var _head = _interopRequireDefault(__webpack_require__(5443));
       var _imageConfig = __webpack_require__(5809);
       var _useIntersection = __webpack_require__(7190);
+      var _imageConfigContext = __webpack_require__(9977);
       function _defineProperty1(obj, key, value) {
         if (key in obj) {
           Object.defineProperty(obj, key, {
@@ -225,6 +226,12 @@
         }
         return target;
       }
+      var configEnv = {
+        deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840],
+        imageSizes: [16, 32, 48, 64, 96, 128, 256, 384],
+        path: "/_next/image",
+        loader: "default"
+      };
       var loadedImageURLs = new Set();
       var allImgs = new Map();
       var perfObserver;
@@ -263,29 +270,9 @@
           (isStaticRequire(src) || isStaticImageData(src))
         );
       }
-      var ref =
-          {
-            deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840],
-            imageSizes: [16, 32, 48, 64, 96, 128, 256, 384],
-            path: "/_next/image",
-            loader: "default"
-          } || _imageConfig.imageConfigDefault,
-        configDeviceSizes = ref.deviceSizes,
-        configImageSizes = ref.imageSizes,
-        configLoader = ref.loader,
-        configPath = ref.path,
-        configDomains = ref.domains;
-      // sort smallest to largest
-      var allSizes = _toConsumableArray(configDeviceSizes).concat(
-        _toConsumableArray(configImageSizes)
-      );
-      configDeviceSizes.sort(function(a, b) {
-        return a - b;
-      });
-      allSizes.sort(function(a, b) {
-        return a - b;
-      });
-      function getWidths(width, layout, sizes) {
+      function getWidths(param, width, layout, sizes) {
+        var deviceSizes = param.deviceSizes,
+          allSizes = param.allSizes;
         if (sizes && (layout === "fill" || layout === "responsive")) {
           // Find all the "vw" percent sizes used in the sizes prop
           var viewportWidthRe = /(^|\s)(1?\d?\d)vw/g;
@@ -302,7 +289,7 @@
               ) * 0.01;
             return {
               widths: allSizes.filter(function(s) {
-                return s >= configDeviceSizes[0] * smallestRatio;
+                return s >= deviceSizes[0] * smallestRatio;
               }),
               kind: "w"
             };
@@ -318,7 +305,7 @@
           layout === "responsive"
         ) {
           return {
-            widths: configDeviceSizes,
+            widths: deviceSizes,
             kind: "w"
           };
         }
@@ -345,7 +332,8 @@
         };
       }
       function generateImgAttrs(param) {
-        var src = param.src,
+        var config = param.config,
+          src = param.src,
           unoptimized = param.unoptimized,
           layout = param.layout,
           width = param.width,
@@ -359,9 +347,9 @@
             sizes: undefined
           };
         }
-        var ref1 = getWidths(width, layout, sizes),
-          widths = ref1.widths,
-          kind = ref1.kind;
+        var ref = getWidths(config, width, layout, sizes),
+          widths = ref.widths,
+          kind = ref.kind;
         var last = widths.length - 1;
         return {
           sizes: !sizes && kind === "w" ? "100vw" : sizes,
@@ -370,6 +358,7 @@
               return ""
                 .concat(
                   loader({
+                    config: config,
                     src: src,
                     quality: quality,
                     width: w
@@ -387,6 +376,7 @@
           // and `sizes` are defined.
           // This bug cannot be reproduced in Chrome or Firefox.
           src: loader({
+            config: config,
             src: src,
             quality: quality,
             width: widths[last]
@@ -403,21 +393,19 @@
         return undefined;
       }
       function defaultImageLoader(loaderProps) {
-        var load = loaders.get(configLoader);
+        var ref;
+        var loaderKey =
+          ((ref = loaderProps.config) === null || ref === void 0
+            ? void 0
+            : ref.loader) || "default";
+        var load = loaders.get(loaderKey);
         if (load) {
-          return load(
-            _objectSpread(
-              {
-                root: configPath
-              },
-              loaderProps
-            )
-          );
+          return load(loaderProps);
         }
         throw new Error(
           'Unknown "loader" found in "next.config.js". Expected: '
             .concat(_imageConfig.VALID_LOADERS.join(", "), ". Received: ")
-            .concat(configLoader)
+            .concat(loaderKey)
         );
       }
       // See https://stackoverflow.com/q/39777833/266535 for why we use this ref
@@ -458,7 +446,7 @@
                 });
               }
               if (false) {
-                var parent, ref2;
+                var parent, ref;
               }
             });
           }
@@ -518,6 +506,28 @@
             "blurDataURL"
           ]);
         var imgRef = (0, _react).useRef(null);
+        var configContext = (0, _react).useContext(
+          _imageConfigContext.ImageConfigContext
+        );
+        var config = (0, _react).useMemo(
+          function() {
+            var c =
+              configEnv || configContext || _imageConfig.imageConfigDefault;
+            var allSizes = _toConsumableArray(c.deviceSizes)
+              .concat(_toConsumableArray(c.imageSizes))
+              .sort(function(a, b) {
+                return a - b;
+              });
+            var deviceSizes = c.deviceSizes.sort(function(a, b) {
+              return a - b;
+            });
+            return _objectSpread({}, c, {
+              allSizes: allSizes,
+              deviceSizes: deviceSizes
+            });
+          },
+          [configContext]
+        );
         var rest = all;
         var layout = sizes ? "responsive" : "intrinsic";
         if ("layout" in rest) {
@@ -567,7 +577,7 @@
         if (false) {
           var url, urlStr, VALID_BLUR_EXT;
         }
-        var ref3 = _slicedToArray(
+        var ref1 = _slicedToArray(
             (0, _useIntersection).useIntersection({
               rootRef: lazyRoot,
               rootMargin: lazyBoundary,
@@ -575,8 +585,8 @@
             }),
             2
           ),
-          setIntersection = ref3[0],
-          isIntersected = ref3[1];
+          setIntersection = ref1[0],
+          isIntersected = ref1[1];
         var isVisible = !isLazy || isIntersected;
         var wrapperStyle = {
           boxSizing: "border-box",
@@ -684,6 +694,7 @@
         };
         if (isVisible) {
           imgAttributes = generateImgAttrs({
+            config: config,
             src: src,
             unoptimized: unoptimized,
             layout: layout,
@@ -784,6 +795,7 @@
                   {},
                   rest,
                   generateImgAttrs({
+                    config: config,
                     src: src,
                     unoptimized: unoptimized,
                     layout: layout,
@@ -834,12 +846,12 @@
         return src[0] === "/" ? src.slice(1) : src;
       }
       function imgixLoader(param) {
-        var root = param.root,
+        var config = param.config,
           src = param.src,
           width = param.width,
           quality = param.quality;
         // Demo: https://static.imgix.net/daisy.png?auto=format&fit=max&w=300
-        var url = new URL("".concat(root).concat(normalizeSrc(src)));
+        var url = new URL("".concat(config.path).concat(normalizeSrc(src)));
         var params = url.searchParams;
         params.set("auto", params.get("auto") || "format");
         params.set("fit", params.get("fit") || "max");
@@ -850,16 +862,16 @@
         return url.href;
       }
       function akamaiLoader(param) {
-        var root = param.root,
+        var config = param.config,
           src = param.src,
           width = param.width;
         return ""
-          .concat(root)
+          .concat(config.path)
           .concat(normalizeSrc(src), "?imwidth=")
           .concat(width);
       }
       function cloudinaryLoader(param) {
-        var root = param.root,
+        var config = param.config,
           src = param.src,
           width = param.width,
           quality = param.quality;
@@ -872,7 +884,7 @@
         ];
         var paramsString = params.join(",") + "/";
         return ""
-          .concat(root)
+          .concat(config.path)
           .concat(paramsString)
           .concat(normalizeSrc(src));
       }
@@ -884,15 +896,20 @@
         );
       }
       function defaultLoader(param) {
-        var root = param.root,
+        var config = param.config,
           src = param.src,
           width = param.width,
           quality = param.quality;
         if (false) {
           var parsedSrc, missingValues;
         }
+        if (src.endsWith(".svg") && !config.dangerouslyAllowSVG) {
+          // Special case to make svg serve as-is to avoid proxying
+          // through the built-in Image Optimization API.
+          return src;
+        }
         return ""
-          .concat(root, "?url=")
+          .concat(config.path, "?url=")
           .concat(encodeURIComponent(src), "&w=")
           .concat(width, "&q=")
           .concat(quality || 75);
@@ -1053,13 +1070,32 @@
           if (elements.size === 0) {
             observer.disconnect();
             observers.delete(id);
+            var index = idList.findIndex(function(obj) {
+              return obj.root === id.root && obj.margin === id.margin;
+            });
+            if (index > -1) {
+              idList.splice(index, 1);
+            }
           }
         };
       }
       var observers = new Map();
+      var idList = [];
       function createObserver(options) {
-        var id = options.rootMargin || "";
-        var instance = observers.get(id);
+        var id = {
+          root: options.root || null,
+          margin: options.rootMargin || ""
+        };
+        var existing = idList.find(function(obj) {
+          return obj.root === id.root && obj.margin === id.margin;
+        });
+        var instance;
+        if (existing) {
+          instance = observers.get(existing);
+        } else {
+          instance = observers.get(id);
+          idList.push(id);
+        }
         if (instance) {
           return instance;
         }
@@ -1087,7 +1123,7 @@
       /***/
     },
 
-    /***/ 5924: /***/ function(
+    /***/ 3155: /***/ function(
       __unused_webpack_module,
       __webpack_exports__,
       __webpack_require__
@@ -1136,38 +1172,6 @@
       /***/
     },
 
-    /***/ 5809: /***/ function(__unused_webpack_module, exports) {
-      "use strict";
-
-      Object.defineProperty(exports, "__esModule", {
-        value: true
-      });
-      exports.imageConfigDefault = exports.VALID_LOADERS = void 0;
-      const VALID_LOADERS = [
-        "default",
-        "imgix",
-        "cloudinary",
-        "akamai",
-        "custom"
-      ];
-      exports.VALID_LOADERS = VALID_LOADERS;
-      const imageConfigDefault = {
-        deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840],
-        imageSizes: [16, 32, 48, 64, 96, 128, 256, 384],
-        path: "/_next/image",
-        loader: "default",
-        domains: [],
-        disableStaticImages: false,
-        minimumCacheTTL: 60,
-        formats: ["image/webp"]
-      };
-      exports.imageConfigDefault = imageConfigDefault;
-
-      //# sourceMappingURL=image-config.js.map
-
-      /***/
-    },
-
     /***/ 5675: /***/ function(
       module,
       __unused_webpack_exports,
Diff for link-HASH.js
@@ -151,18 +151,16 @@
         locale
       ) {
         var nodeName = e.currentTarget.nodeName;
+        // anchors inside an svg have a lowercase nodeName
+        var isAnchorNodeName = nodeName.toUpperCase() === "A";
         if (
-          nodeName === "A" &&
+          isAnchorNodeName &&
           (isModifiedEvent(e) || !(0, _router).isLocalURL(href))
         ) {
           // ignore click for browser’s default behavior
           return;
         }
         e.preventDefault();
-        //  avoid scroll for urls with anchor refs
-        if (scroll == null && as.indexOf("#") >= 0) {
-          scroll = false;
-        }
         // replace state instead of push if prop is present
         router[replace ? "replace" : "push"](href, as, {
           shallow: shallow,
@@ -258,6 +256,8 @@
         var childProps = {
           ref: setRef,
           onClick: function(e) {
+            if (false) {
+            }
             if (child.props && typeof child.props.onClick === "function") {
               child.props.onClick(e);
             }
@@ -474,13 +474,32 @@
           if (elements.size === 0) {
             observer.disconnect();
             observers.delete(id);
+            var index = idList.findIndex(function(obj) {
+              return obj.root === id.root && obj.margin === id.margin;
+            });
+            if (index > -1) {
+              idList.splice(index, 1);
+            }
           }
         };
       }
       var observers = new Map();
+      var idList = [];
       function createObserver(options) {
-        var id = options.rootMargin || "";
-        var instance = observers.get(id);
+        var id = {
+          root: options.root || null,
+          margin: options.rootMargin || ""
+        };
+        var existing = idList.find(function(obj) {
+          return obj.root === id.root && obj.margin === id.margin;
+        });
+        var instance;
+        if (existing) {
+          instance = observers.get(existing);
+        } else {
+          instance = observers.get(id);
+          idList.push(id);
+        }
         if (instance) {
           return instance;
         }
Diff for framework-HASH.js
@@ -8688,76 +8688,6 @@
       } else {
       }
 
-      /***/
-    },
-
-    /***/ 8217: /***/ function(
-      __unused_webpack_module,
-      exports,
-      __webpack_require__
-    ) {
-      /** @license React vundefined
-       * use-subscription.production.min.js
-       *
-       * Copyright (c) Facebook, Inc. and its affiliates.
-       *
-       * This source code is licensed under the MIT license found in the
-       * LICENSE file in the root directory of this source tree.
-       */
-      var e = __webpack_require__(6086),
-        g = __webpack_require__(7294);
-      exports.useSubscription = function(a) {
-        var c = a.getCurrentValue,
-          d = a.subscribe,
-          b = g.useState(function() {
-            return { getCurrentValue: c, subscribe: d, value: c() };
-          });
-        a = b[0];
-        var f = b[1];
-        b = a.value;
-        if (a.getCurrentValue !== c || a.subscribe !== d)
-          (b = c()), f({ getCurrentValue: c, subscribe: d, value: b });
-        g.useDebugValue(b);
-        g.useEffect(
-          function() {
-            function b() {
-              if (!a) {
-                var b = c();
-                f(function(a) {
-                  return a.getCurrentValue !== c ||
-                    a.subscribe !== d ||
-                    a.value === b
-                    ? a
-                    : e({}, a, { value: b });
-                });
-              }
-            }
-            var a = !1,
-              h = d(b);
-            b();
-            return function() {
-              a = !0;
-              h();
-            };
-          },
-          [c, d]
-        );
-        return b;
-      };
-
-      /***/
-    },
-
-    /***/ 7161: /***/ function(
-      module,
-      __unused_webpack_exports,
-      __webpack_require__
-    ) {
-      if (true) {
-        module.exports = __webpack_require__(8217);
-      } else {
-      }
-
       /***/
     }
   }
Diff for main-HASH.js

Diff too large to display

Diff for index.html
@@ -15,11 +15,11 @@
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/framework-535325b9235a831f.js"
+      src="/_next/static/chunks/framework-287ad9396a03b869.js"
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/main-c6fc133fe313f8ea.js"
+      src="/_next/static/chunks/main-83f98654d619b546.js"
       defer=""
     ></script>
     <script
Diff for link.html
@@ -15,11 +15,11 @@
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/framework-535325b9235a831f.js"
+      src="/_next/static/chunks/framework-287ad9396a03b869.js"
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/main-c6fc133fe313f8ea.js"
+      src="/_next/static/chunks/main-83f98654d619b546.js"
       defer=""
     ></script>
     <script
@@ -27,7 +27,7 @@
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/pages/link-f0a2c3bb0706d8b2.js"
+      src="/_next/static/chunks/pages/link-b932c7479a7c37ca.js"
       defer=""
     ></script>
     <script src="/_next/static/BUILD_ID/_buildManifest.js" defer=""></script>
Diff for withRouter.html
@@ -15,11 +15,11 @@
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/framework-535325b9235a831f.js"
+      src="/_next/static/chunks/framework-287ad9396a03b869.js"
       defer=""
     ></script>
     <script
-      src="/_next/static/chunks/main-c6fc133fe313f8ea.js"
+      src="/_next/static/chunks/main-83f98654d619b546.js"
       defer=""
     ></script>
     <script

Please sign in to comment.