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

Updates to with-apollo-auth #9274

Closed
wants to merge 4 commits into from
Closed

Updates to with-apollo-auth #9274

wants to merge 4 commits into from

Conversation

DevSpeak
Copy link
Contributor

@DevSpeak DevSpeak commented Nov 1, 2019

If wanted I can remove the usage of Photon, and use something more direct like pg

> Remove usage of graph.cool
> Setup apollo-micro-server for /api/graphql
> Setup Photon with Postgres backend for simple database
> Changes to files to make them work with the new changes
> Update dependencies to latest
@ijjk
Copy link
Member

ijjk commented Nov 1, 2019

Stats from current PR

Default Server Mode
General
zeit/next.js canary DevSpeak/next.js canary Change
buildDuration 13.2s 13.3s ⚠️ +56ms
nodeModulesSize 48.5 MB 48.5 MB
Client Bundles (main, webpack, commons)
zeit/next.js canary DevSpeak/next.js canary Change
main-HASH.js 16.6 kB 16.6 kB
main-HASH.js gzip 5.86 kB 5.86 kB
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
16b1a7225520..7459734ec.js 20.1 kB 20.1 kB
16b1a7225520..34ec.js gzip 7.38 kB 7.38 kB
4952ddcd88e7..bfe360fe6.js 10.5 kB 10.5 kB
4952ddcd88e7..0fe6.js gzip 4.06 kB 4.06 kB
commons.HASH.js 11.3 kB 11.3 kB
commons.HASH.js gzip 4.23 kB 4.23 kB
de003c3a9d30..9e9c1d310.js 28.6 kB 28.6 kB
de003c3a9d30..d310.js gzip 10.8 kB 10.8 kB
framework.1b..cdcfe1283.js 125 kB 125 kB
framework.1b..1283.js gzip 39.4 kB 39.4 kB
Overall change 214 kB 214 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary DevSpeak/next.js canary Change
main-HASH.module.js 14.1 kB 14.1 kB
main-HASH.module.js gzip 5.28 kB 5.28 kB
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH..dule.js gzip 746 B 746 B
16b1a7225520..0d.module.js 16.2 kB 16.2 kB
16b1a7225520..dule.js gzip 6.22 kB 6.22 kB
4952ddcd88e7..4a.module.js 12.8 kB 12.8 kB
4952ddcd88e7..dule.js gzip 4.75 kB 4.75 kB
de003c3a9d30..c0.module.js 22.1 kB 22.1 kB
de003c3a9d30..dule.js gzip 8.68 kB 8.68 kB
framework.5b..d3.module.js 125 kB 125 kB
framework.5b..dule.js gzip 39.4 kB 39.4 kB
Overall change 192 kB 192 kB
Client Pages
zeit/next.js canary DevSpeak/next.js canary Change
_app.js 1.63 kB 1.63 kB
_app.js gzip 788 B 788 B
_error.js 12.3 kB 12.3 kB
_error.js gzip 4.79 kB 4.79 kB
hooks.js 1.92 kB 1.92 kB
hooks.js gzip 941 B 941 B
index.js 318 B 318 B
index.js gzip 222 B 222 B
link.js 5.81 kB 5.81 kB
link.js gzip 2.56 kB 2.56 kB
routerDirect.js 413 B 413 B
routerDirect.js gzip 285 B 285 B
withRouter.js 423 B 423 B
withRouter.js gzip 284 B 284 B
Overall change 22.8 kB 22.8 kB
Client Pages Modern
zeit/next.js canary DevSpeak/next.js canary Change
_app.module.js 1.54 kB 1.54 kB
_app.module.js gzip 759 B 759 B
_error.module.js 10.5 kB 10.5 kB
_error.module.js gzip 4.26 kB 4.26 kB
hooks.module.js 1.52 kB 1.52 kB
hooks.module.js gzip 792 B 792 B
index.module.js 292 B 292 B
index.module.js gzip 223 B 223 B
link.module.js 5.49 kB 5.49 kB
link.module.js gzip 2.47 kB 2.47 kB
routerDirect.module.js 399 B 399 B
routerDirect..dule.js gzip 285 B 285 B
withRouter.module.js 409 B 409 B
withRouter.m..dule.js gzip 282 B 282 B
Overall change 20.2 kB 20.2 kB
Client Build Manifests
zeit/next.js canary DevSpeak/next.js canary Change
_buildManifest.js 244 B 244 B
_buildManifest.js gzip 201 B 201 B
_buildManifest.module.js 251 B 251 B
_buildManife..dule.js gzip 209 B 209 B
Overall change 495 B 495 B
Rendered Page Sizes
zeit/next.js canary DevSpeak/next.js canary Change
index.html 3.94 kB 3.94 kB
index.html gzip 1 kB 1 kB
link.html 4.47 kB 4.47 kB
link.html gzip 1.08 kB 1.08 kB
withRouter.html 4.47 kB 4.47 kB
withRouter.html gzip 1.07 kB 1.07 kB
Overall change 12.9 kB 12.9 kB

Serverless Mode
General
zeit/next.js canary DevSpeak/next.js canary Change
buildDuration 13.1s 13.3s ⚠️ +203ms
nodeModulesSize 48.5 MB 48.5 MB
Client Bundles (main, webpack, commons)
zeit/next.js canary DevSpeak/next.js canary Change
main-HASH.js 16.6 kB 16.6 kB
main-HASH.js gzip 5.86 kB 5.86 kB
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
16b1a7225520..7459734ec.js 20.1 kB 20.1 kB
16b1a7225520..34ec.js gzip 7.38 kB 7.38 kB
4952ddcd88e7..bfe360fe6.js 10.5 kB 10.5 kB
4952ddcd88e7..0fe6.js gzip 4.06 kB 4.06 kB
commons.HASH.js 11.3 kB 11.3 kB
commons.HASH.js gzip 4.23 kB 4.23 kB
de003c3a9d30..9e9c1d310.js 28.6 kB 28.6 kB
de003c3a9d30..d310.js gzip 10.8 kB 10.8 kB
framework.1b..cdcfe1283.js 125 kB 125 kB
framework.1b..1283.js gzip 39.4 kB 39.4 kB
Overall change 214 kB 214 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary DevSpeak/next.js canary Change
main-HASH.module.js 14.1 kB 14.1 kB
main-HASH.module.js gzip 5.28 kB 5.28 kB
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH..dule.js gzip 746 B 746 B
16b1a7225520..0d.module.js 16.2 kB 16.2 kB
16b1a7225520..dule.js gzip 6.22 kB 6.22 kB
4952ddcd88e7..4a.module.js 12.8 kB 12.8 kB
4952ddcd88e7..dule.js gzip 4.75 kB 4.75 kB
de003c3a9d30..c0.module.js 22.1 kB 22.1 kB
de003c3a9d30..dule.js gzip 8.68 kB 8.68 kB
framework.5b..d3.module.js 125 kB 125 kB
framework.5b..dule.js gzip 39.4 kB 39.4 kB
Overall change 192 kB 192 kB
Client Pages
zeit/next.js canary DevSpeak/next.js canary Change
_app.js 1.63 kB 1.63 kB
_app.js gzip 788 B 788 B
_error.js 12.3 kB 12.3 kB
_error.js gzip 4.79 kB 4.79 kB
hooks.js 1.92 kB 1.92 kB
hooks.js gzip 941 B 941 B
index.js 318 B 318 B
index.js gzip 222 B 222 B
link.js 5.81 kB 5.81 kB
link.js gzip 2.56 kB 2.56 kB
routerDirect.js 413 B 413 B
routerDirect.js gzip 285 B 285 B
withRouter.js 423 B 423 B
withRouter.js gzip 284 B 284 B
Overall change 22.8 kB 22.8 kB
Client Pages Modern
zeit/next.js canary DevSpeak/next.js canary Change
_app.module.js 1.54 kB 1.54 kB
_app.module.js gzip 759 B 759 B
_error.module.js 10.5 kB 10.5 kB
_error.module.js gzip 4.26 kB 4.26 kB
hooks.module.js 1.52 kB 1.52 kB
hooks.module.js gzip 792 B 792 B
index.module.js 292 B 292 B
index.module.js gzip 223 B 223 B
link.module.js 5.49 kB 5.49 kB
link.module.js gzip 2.47 kB 2.47 kB
routerDirect.module.js 399 B 399 B
routerDirect..dule.js gzip 285 B 285 B
withRouter.module.js 409 B 409 B
withRouter.m..dule.js gzip 282 B 282 B
Overall change 20.2 kB 20.2 kB
Client Build Manifests
zeit/next.js canary DevSpeak/next.js canary Change
_buildManifest.js 244 B 244 B
_buildManifest.js gzip 201 B 201 B
_buildManifest.module.js 251 B 251 B
_buildManife..dule.js gzip 209 B 209 B
Overall change 495 B 495 B
Serverless bundles
zeit/next.js canary DevSpeak/next.js canary Change
_error.js 241 kB 241 kB
_error.js gzip 64.4 kB 64.4 kB
hooks.html 4.08 kB 4.08 kB
hooks.html gzip 1.03 kB 1.03 kB
index.js 241 kB 241 kB
index.js gzip 64.5 kB 64.5 kB
link.js 274 kB 274 kB
link.js gzip 73.4 kB 73.4 kB
routerDirect.js 267 kB 267 kB
routerDirect.js gzip 71.5 kB 71.5 kB
withRouter.js 267 kB 267 kB
withRouter.js gzip 71.6 kB 71.6 kB
Overall change 1.29 MB 1.29 MB

Commit: 8540213


datasource db {
provider = "postgresql"
url = "postgresql://yevnnxduqfivsa:d91c5ef154ae01e7ef8e7add436065c15491dd2245e6a83149c01f0e4a85b1b0@ec2-54-235-163-246.compute-1.amazonaws.com/dd90ll8j0inem8?schema=next&sslmode=prefer"
Copy link
Member

Choose a reason for hiding this comment

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

This DB url seems unintended.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

It was actually intended for example use purpose.
Its just a free heroku instance of Postgres. That isn't used for anything.

@DevSpeak DevSpeak requested a review from Timer November 4, 2019 20:02
@johnpolacek
Copy link
Contributor

@DevSpeak The circleci linter doesn’t like a line in graphql.js Unexpected mix of '&&' and '||'

Proposed change:
const Authorization = req.headers && req.headers.authorization || ''

To:
const Authorization = req.headers && req.headers.authorization ? req.headers.authorization : ''

Change how a line is written
@DevSpeak
Copy link
Contributor Author

DevSpeak commented Nov 9, 2019

@johnpolacek thanks for the heads up :)

@ijjk
Copy link
Member

ijjk commented Nov 9, 2019

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall decrease ✓
zeit/next.js canary DevSpeak/next.js canary Change
buildDuration 13.5s 13.1s -378ms
nodeModulesSize 48.9 MB 48.9 MB -29.5 kB
Client Bundles (main, webpack, commons) Overall increase ⚠️
zeit/next.js canary DevSpeak/next.js canary Change
main-HASH.js 14.8 kB 16.6 kB ⚠️ +1.73 kB
main-HASH.js gzip 5.12 kB 5.86 kB ⚠️ +749 B
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
16b1a7225520..641cd3dea.js 19.8 kB N/A N/A
16b1a7225520..3dea.js gzip 7.28 kB N/A N/A
314e4c089430..de6eb480f.js 7.9 kB N/A N/A
314e4c089430..480f.js gzip 3.31 kB N/A N/A
commons.HASH.js 11.3 kB 11.3 kB
commons.HASH.js gzip 4.23 kB 4.23 kB
de003c3a9d30..39988e4af.js 33.1 kB N/A N/A
de003c3a9d30..e4af.js gzip 12.3 kB N/A N/A
framework.1b..cdcfe1283.js 125 kB 125 kB
framework.1b..1283.js gzip 39.4 kB 39.4 kB
16b1a7225520..7459734ec.js N/A 20.1 kB N/A
16b1a7225520..34ec.js gzip N/A 7.38 kB N/A
4952ddcd88e7..bfe360fe6.js N/A 10.5 kB N/A
4952ddcd88e7..0fe6.js gzip N/A 4.06 kB N/A
de003c3a9d30..9e9c1d310.js N/A 28.6 kB N/A
de003c3a9d30..d310.js gzip N/A 10.8 kB N/A
Overall change 214 kB 214 kB ⚠️ +1.73 kB
Client Bundles (main, webpack, commons) Modern Overall decrease ✓
zeit/next.js canary DevSpeak/next.js canary Change
main-HASH.module.js 14.1 kB 14.1 kB -24 B
main-HASH.module.js gzip 5.3 kB 5.28 kB -16 B
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH..dule.js gzip 746 B 746 B
16b1a7225520..68.module.js 16 kB N/A N/A
16b1a7225520..dule.js gzip 6.17 kB N/A N/A
4952ddcd88e7..4a.module.js 12.8 kB 12.8 kB
4952ddcd88e7..dule.js gzip 4.75 kB 4.75 kB
de003c3a9d30..36.module.js 22.2 kB N/A N/A
de003c3a9d30..dule.js gzip 8.71 kB N/A N/A
framework.5b..d3.module.js 125 kB 125 kB
framework.5b..dule.js gzip 39.4 kB 39.4 kB
16b1a7225520..0d.module.js N/A 16.2 kB N/A
16b1a7225520..dule.js gzip N/A 6.22 kB N/A
de003c3a9d30..c0.module.js N/A 22.1 kB N/A
de003c3a9d30..dule.js gzip N/A 8.68 kB N/A
Overall change 192 kB 192 kB -24 B
Client Pages Overall decrease ✓
zeit/next.js canary DevSpeak/next.js canary Change
_app.js 7.71 kB 1.63 kB -6.08 kB
_app.js gzip 3.22 kB 788 B -2.43 kB
_error.js 14.9 kB 12.3 kB -2.64 kB
_error.js gzip 5.57 kB 4.79 kB -783 B
hooks.js 1.92 kB 1.92 kB
hooks.js gzip 941 B 941 B
index.js 318 B 318 B
index.js gzip 222 B 222 B
link.js 4.05 kB 5.81 kB ⚠️ +1.76 kB
link.js gzip 1.81 kB 2.56 kB ⚠️ +755 B
routerDirect.js 411 B 413 B ⚠️ +2 B
routerDirect.js gzip 283 B 285 B ⚠️ +2 B
withRouter.js 421 B 423 B ⚠️ +2 B
withRouter.js gzip 282 B 284 B ⚠️ +2 B
Overall change 29.7 kB 22.8 kB -6.96 kB
Client Pages Modern
zeit/next.js canary DevSpeak/next.js canary Change
_app.module.js 1.54 kB 1.54 kB
_app.module.js gzip 759 B 759 B
_error.module.js 10.5 kB 10.5 kB
_error.module.js gzip 4.26 kB 4.26 kB
hooks.module.js 1.52 kB 1.52 kB
hooks.module.js gzip 792 B 792 B
index.module.js 292 B 292 B
index.module.js gzip 223 B 223 B
link.module.js 5.49 kB 5.49 kB
link.module.js gzip 2.47 kB 2.47 kB
routerDirect.module.js 399 B 399 B
routerDirect..dule.js gzip 285 B 285 B
withRouter.module.js 409 B 409 B
withRouter.m..dule.js gzip 282 B 282 B
Overall change 20.2 kB 20.2 kB
Client Build Manifests Overall decrease ✓
zeit/next.js canary DevSpeak/next.js canary Change
_buildManifest.js 353 B 244 B -109 B
_buildManifest.js gzip 260 B 201 B -59 B
_buildManifest.module.js 251 B 251 B
_buildManife..dule.js gzip 208 B 209 B ⚠️ +1 B
Overall change 604 B 495 B -109 B
Rendered Page Sizes Overall decrease ✓
zeit/next.js canary DevSpeak/next.js canary Change
index.html 3.9 kB 3.94 kB ⚠️ +39 B
index.html gzip 1.02 kB 1 kB -13 B
link.html 4.58 kB 4.47 kB -115 B
link.html gzip 1.14 kB 1.08 kB -58 B
withRouter.html 4.43 kB 4.47 kB ⚠️ +39 B
withRouter.html gzip 1.09 kB 1.07 kB -17 B
Overall change 12.9 kB 12.9 kB -37 B

Diffs

Diff for main-HASH.js
@@ -65,6 +65,22 @@ exports.DataManager = DataManager;
 
 /***/ }),
 
+/***/ "8iia":
+/***/ (function(module, exports, __webpack_require__) {
+
+// https://github.com/DavidBruant/Map-Set.prototype.toJSON
+var classof = __webpack_require__("QMMT");
+var from = __webpack_require__("RRc/");
+module.exports = function (NAME) {
+  return function toJSON() {
+    if (classof(this) != NAME) throw TypeError(NAME + "#toJSON isn't generic");
+    return from(this);
+  };
+};
+
+
+/***/ }),
+
 /***/ "BMP1":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -273,7 +289,7 @@ var _inherits = __webpack_require__("N9n2");
 
 var _slicedToArray = __webpack_require__("8+Nu");
 
-var _interopRequireWildcard3 = __webpack_require__("5Uuq");
+var _interopRequireWildcard = __webpack_require__("5Uuq");
 
 var _interopRequireDefault = __webpack_require__("KI45");
 
@@ -286,8 +302,6 @@ var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__("+oT+"));
 
 var _extends2 = _interopRequireDefault(__webpack_require__("htGi"));
 
-var _interopRequireWildcard2 = _interopRequireDefault(__webpack_require__("5Uuq"));
-
 var _promise = _interopRequireDefault(__webpack_require__("eVuF"));
 
 var _react = _interopRequireDefault(__webpack_require__("q1tI"));
@@ -304,7 +318,7 @@ var _utils = __webpack_require__("g/15");
 
 var _pageLoader = _interopRequireDefault(__webpack_require__("zmvN"));
 
-var envConfig = _interopRequireWildcard3(__webpack_require__("yLiY"));
+var envConfig = _interopRequireWildcard(__webpack_require__("yLiY"));
 
 var _headManagerContext = __webpack_require__("FYa8");
 
@@ -326,7 +340,7 @@ if (!window.Promise) {
 
 var data = JSON.parse(document.getElementById('__NEXT_DATA__').textContent);
 window.__NEXT_DATA__ = data;
-var version = "9.1.3";
+var version = "9.1.3-canary.1";
 exports.version = version;
 var props = data.props,
     err = data.err,
@@ -396,12 +410,9 @@ function (_react$default$Compon) {
   }, {
     key: "componentDidMount",
     value: function componentDidMount() {
-      this.scrollToHash();
-
-      if (false) {} // If page was exported and has a querystring
+      this.scrollToHash(); // If page was exported and has a querystring
       // If it's a dynamic route or has a querystring
 
-
       if (data.nextExport && ((0, _isDynamic.isDynamicRoute)(router.pathname) || location.search || data.skeleton)) {
         // update query on mount for exported pages
         router.replace(router.pathname + '?' + (0, _querystring.stringify)((0, _extends2["default"])({}, router.query, {}, (0, _querystring.parse)(location.search.substr(1)))), asPath, {
@@ -544,10 +555,7 @@ function () {
                   emitter: emitter
                 });
               }
-            }); // call init-client middleware
-
-            if (false) {}
-
+            });
             renderCtx = {
               App: App,
               Component: Component,
@@ -558,7 +566,7 @@ function () {
             render(renderCtx);
             return _context.abrupt("return", emitter);
 
-          case 31:
+          case 30:
           case "end":
             return _context.stop();
         }
@@ -651,14 +659,12 @@ function _renderError() {
             return _context3.abrupt("return", webpackHMR.reportRuntimeError(webpackHMR.prepareError(err)));
 
           case 3:
-            if (false) {} // Make sure we log the error to the console, otherwise users can't track down issues.
-
-
+            // Make sure we log the error to the console, otherwise users can't track down issues.
             console.error(err);
-            _context3.next = 7;
+            _context3.next = 6;
             return pageLoader.loadPage('/_error');
 
-          case 7:
+          case 6:
             exports.ErrorComponent = ErrorComponent = _context3.sent;
             // In production we do a normal render with the `ErrorComponent` as component.
             // If we've gotten here upon initial render, we can use the props from the server.
@@ -678,31 +684,31 @@ function _renderError() {
             };
 
             if (!props.props) {
-              _context3.next = 14;
+              _context3.next = 13;
               break;
             }
 
             _context3.t0 = props.props;
-            _context3.next = 17;
+            _context3.next = 16;
             break;
 
-          case 14:
-            _context3.next = 16;
+          case 13:
+            _context3.next = 15;
             return (0, _utils.loadGetInitialProps)(App, appCtx);
 
-          case 16:
+          case 15:
             _context3.t0 = _context3.sent;
 
-          case 17:
+          case 16:
             initProps = _context3.t0;
-            _context3.next = 20;
+            _context3.next = 19;
             return doRender((0, _extends2["default"])({}, props, {
               err: err,
               Component: ErrorComponent,
               props: initProps
             }));
 
-          case 20:
+          case 19:
           case "end":
             return _context3.stop();
         }
@@ -899,6 +905,20 @@ module.exports = __webpack_require__("UDep");
 
 /***/ }),
 
+/***/ "RRc/":
+/***/ (function(module, exports, __webpack_require__) {
+
+var forOf = __webpack_require__("oioR");
+
+module.exports = function (iter, ITERATOR) {
+  var result = [];
+  forOf(iter, false, result.push, result, ITERATOR);
+  return result;
+};
+
+
+/***/ }),
+
 /***/ "UDep":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -914,6 +934,158 @@ module.exports = __webpack_require__("WEpk").Map;
 
 /***/ }),
 
+/***/ "Wu5q":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+var dP = __webpack_require__("2faE").f;
+var create = __webpack_require__("oVml");
+var redefineAll = __webpack_require__("XJU/");
+var ctx = __webpack_require__("2GTP");
+var anInstance = __webpack_require__("EXMj");
+var forOf = __webpack_require__("oioR");
+var $iterDefine = __webpack_require__("MPFp");
+var step = __webpack_require__("UO39");
+var setSpecies = __webpack_require__("TJWN");
+var DESCRIPTORS = __webpack_require__("jmDH");
+var fastKey = __webpack_require__("6/1s").fastKey;
+var validate = __webpack_require__("n3ko");
+var SIZE = DESCRIPTORS ? '_s' : 'size';
+
+var getEntry = function (that, key) {
+  // fast case
+  var index = fastKey(key);
+  var entry;
+  if (index !== 'F') return that._i[index];
+  // frozen object case
+  for (entry = that._f; entry; entry = entry.n) {
+    if (entry.k == key) return entry;
+  }
+};
+
+module.exports = {
+  getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {
+    var C = wrapper(function (that, iterable) {
+      anInstance(that, C, NAME, '_i');
+      that._t = NAME;         // collection type
+      that._i = create(null); // index
+      that._f = undefined;    // first entry
+      that._l = undefined;    // last entry
+      that[SIZE] = 0;         // size
+      if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);
+    });
+    redefineAll(C.prototype, {
+      // 23.1.3.1 Map.prototype.clear()
+      // 23.2.3.2 Set.prototype.clear()
+      clear: function clear() {
+        for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) {
+          entry.r = true;
+          if (entry.p) entry.p = entry.p.n = undefined;
+          delete data[entry.i];
+        }
+        that._f = that._l = undefined;
+        that[SIZE] = 0;
+      },
+      // 23.1.3.3 Map.prototype.delete(key)
+      // 23.2.3.4 Set.prototype.delete(value)
+      'delete': function (key) {
+        var that = validate(this, NAME);
+        var entry = getEntry(that, key);
+        if (entry) {
+          var next = entry.n;
+          var prev = entry.p;
+          delete that._i[entry.i];
+          entry.r = true;
+          if (prev) prev.n = next;
+          if (next) next.p = prev;
+          if (that._f == entry) that._f = next;
+          if (that._l == entry) that._l = prev;
+          that[SIZE]--;
+        } return !!entry;
+      },
+      // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)
+      // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)
+      forEach: function forEach(callbackfn /* , that = undefined */) {
+        validate(this, NAME);
+        var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);
+        var entry;
+        while (entry = entry ? entry.n : this._f) {
+          f(entry.v, entry.k, this);
+          // revert to the last existing entry
+          while (entry && entry.r) entry = entry.p;
+        }
+      },
+      // 23.1.3.7 Map.prototype.has(key)
+      // 23.2.3.7 Set.prototype.has(value)
+      has: function has(key) {
+        return !!getEntry(validate(this, NAME), key);
+      }
+    });
+    if (DESCRIPTORS) dP(C.prototype, 'size', {
+      get: function () {
+        return validate(this, NAME)[SIZE];
+      }
+    });
+    return C;
+  },
+  def: function (that, key, value) {
+    var entry = getEntry(that, key);
+    var prev, index;
+    // change existing entry
+    if (entry) {
+      entry.v = value;
+    // create new entry
+    } else {
+      that._l = entry = {
+        i: index = fastKey(key, true), // <- index
+        k: key,                        // <- key
+        v: value,                      // <- value
+        p: prev = that._l,             // <- previous entry
+        n: undefined,                  // <- next entry
+        r: false                       // <- removed
+      };
+      if (!that._f) that._f = entry;
+      if (prev) prev.n = entry;
+      that[SIZE]++;
+      // add to index
+      if (index !== 'F') that._i[index] = entry;
+    } return that;
+  },
+  getEntry: getEntry,
+  setStrong: function (C, NAME, IS_MAP) {
+    // add .keys, .values, .entries, [@@iterator]
+    // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11
+    $iterDefine(C, NAME, function (iterated, kind) {
+      this._t = validate(iterated, NAME); // target
+      this._k = kind;                     // kind
+      this._l = undefined;                // previous
+    }, function () {
+      var that = this;
+      var kind = that._k;
+      var entry = that._l;
+      // revert to the last existing entry
+      while (entry && entry.r) entry = entry.p;
+      // get next entry
+      if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) {
+        // or finish the iteration
+        that._t = undefined;
+        return step(1);
+      }
+      // return step by kind
+      if (kind == 'keys') return step(0, entry.k);
+      if (kind == 'values') return step(0, entry.v);
+      return step(0, [entry.k, entry.v]);
+    }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);
+
+    // add [@@species], 23.1.2.2, 23.2.2.2
+    setSpecies(NAME);
+  }
+};
+
+
+/***/ }),
+
 /***/ "XLbu":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -1165,7 +1337,7 @@ function () {
           if (true) {
             _this3.getDependencies(route).then(function (deps) {
               deps.forEach(function (d) {
-                if (/\.js$/.test(d) && !document.querySelector("script[src^=\"" + d + "\"]")) {
+                if (!document.querySelector("script[src^=\"" + d + "\"]")) {
                   _this3.loadScript(d, route, false);
                 }
               });
Diff for main-HASH.module.js
@@ -288,7 +288,7 @@ exports.HeadManagerContext = React.createContext(null);
 "use strict";
 
 
-var _interopRequireWildcard3 = __webpack_require__("5Uuq");
+var _interopRequireWildcard = __webpack_require__("5Uuq");
 
 var _interopRequireDefault = __webpack_require__("KI45");
 
@@ -301,8 +301,6 @@ var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__("+oT+"));
 
 var _extends2 = _interopRequireDefault(__webpack_require__("htGi"));
 
-var _interopRequireWildcard2 = _interopRequireDefault(__webpack_require__("5Uuq"));
-
 var _promise = _interopRequireDefault(__webpack_require__("eVuF"));
 
 var _react = _interopRequireDefault(__webpack_require__("q1tI"));
@@ -319,7 +317,7 @@ var _utils = __webpack_require__("g/15");
 
 var _pageLoader = _interopRequireDefault(__webpack_require__("zmvN"));
 
-var envConfig = _interopRequireWildcard3(__webpack_require__("yLiY"));
+var envConfig = _interopRequireWildcard(__webpack_require__("yLiY"));
 
 var _headManagerContext = __webpack_require__("FYa8");
 
@@ -341,7 +339,7 @@ if (!window.Promise) {
 
 var data = JSON.parse(document.getElementById('__NEXT_DATA__').textContent);
 window.__NEXT_DATA__ = data;
-var version = "9.1.3";
+var version = "9.1.3-canary.1";
 exports.version = version;
 var {
   props,
@@ -397,12 +395,9 @@ class Container extends _react.default.Component {
   }
 
   componentDidMount() {
-    this.scrollToHash();
-
-    if (false) {} // If page was exported and has a querystring
+    this.scrollToHash(); // If page was exported and has a querystring
     // If it's a dynamic route or has a querystring
 
-
     if (data.nextExport && ((0, _isDynamic.isDynamicRoute)(router.pathname) || location.search || data.skeleton)) {
       // update query on mount for exported pages
       router.replace(router.pathname + '?' + (0, _querystring.stringify)((0, _extends2.default)({}, router.query, {}, (0, _querystring.parse)(location.search.substr(1)))), asPath, {
@@ -507,10 +502,7 @@ function () {
           emitter
         });
       }
-    }); // call init-client middleware
-
-    if (false) {}
-
+    });
     var renderCtx = {
       App,
       Component,
@@ -567,8 +559,6 @@ function _renderError() {
     } = props; // In development runtime errors are caught by react-error-overlay
     // In production we catch runtime errors using componentDidCatch which will trigger renderError
 
-    if (false) {}
-
     if (false) {} // Make sure we log the error to the console, otherwise users can't track down issues.
 
 
@@ -1177,7 +1167,7 @@ class PageLoader {
         if (true) {
           this.getDependencies(route).then(deps => {
             deps.forEach(d => {
-              if (/\.js$/.test(d) && !document.querySelector("script[src^=\"" + d + "\"]")) {
+              if (!document.querySelector("script[src^=\"" + d + "\"]")) {
                 this.loadScript(d, route, false);
               }
             });
Diff for _app.js
@@ -1,350 +1,5 @@
 (window["webpackJsonp"] = window["webpackJsonp"] || []).push([[6],{
 
-/***/ "+SFK":
-/***/ (function(module, exports, __webpack_require__) {
-
-__webpack_require__("AUvm");
-__webpack_require__("wgeU");
-__webpack_require__("adOz");
-__webpack_require__("dl0q");
-module.exports = __webpack_require__("WEpk").Symbol;
-
-
-/***/ }),
-
-/***/ "+plK":
-/***/ (function(module, exports, __webpack_require__) {
-
-__webpack_require__("ApPD");
-module.exports = __webpack_require__("WEpk").Object.getPrototypeOf;
-
-
-/***/ }),
-
-/***/ "/+P4":
-/***/ (function(module, exports, __webpack_require__) {
-
-var _Object$getPrototypeOf = __webpack_require__("Bhuq");
-
-var _Object$setPrototypeOf = __webpack_require__("TRZx");
-
-function _getPrototypeOf(o) {
-  module.exports = _getPrototypeOf = _Object$setPrototypeOf ? _Object$getPrototypeOf : function _getPrototypeOf(o) {
-    return o.__proto__ || _Object$getPrototypeOf(o);
-  };
-  return _getPrototypeOf(o);
-}
-
-module.exports = _getPrototypeOf;
-
-/***/ }),
-
-/***/ "2Nb0":
-/***/ (function(module, exports, __webpack_require__) {
-
-__webpack_require__("FlQf");
-__webpack_require__("bBy9");
-module.exports = __webpack_require__("zLkG").f('iterator');
-
-
-/***/ }),
-
-/***/ "A5Xg":
-/***/ (function(module, exports, __webpack_require__) {
-
-// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
-var toIObject = __webpack_require__("NsO/");
-var gOPN = __webpack_require__("ar/p").f;
-var toString = {}.toString;
-
-var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames
-  ? Object.getOwnPropertyNames(window) : [];
-
-var getWindowNames = function (it) {
-  try {
-    return gOPN(it);
-  } catch (e) {
-    return windowNames.slice();
-  }
-};
-
-module.exports.f = function getOwnPropertyNames(it) {
-  return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));
-};
-
-
-/***/ }),
-
-/***/ "AUvm":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-// ECMAScript 6 symbols shim
-var global = __webpack_require__("5T2Y");
-var has = __webpack_require__("B+OT");
-var DESCRIPTORS = __webpack_require__("jmDH");
-var $export = __webpack_require__("Y7ZC");
-var redefine = __webpack_require__("kTiW");
-var META = __webpack_require__("6/1s").KEY;
-var $fails = __webpack_require__("KUxP");
-var shared = __webpack_require__("29s/");
-var setToStringTag = __webpack_require__("RfKB");
-var uid = __webpack_require__("YqAc");
-var wks = __webpack_require__("UWiX");
-var wksExt = __webpack_require__("zLkG");
-var wksDefine = __webpack_require__("Zxgi");
-var enumKeys = __webpack_require__("R+7+");
-var isArray = __webpack_require__("kAMH");
-var anObject = __webpack_require__("5K7Z");
-var isObject = __webpack_require__("93I4");
-var toObject = __webpack_require__("JB68");
-var toIObject = __webpack_require__("NsO/");
-var toPrimitive = __webpack_require__("G8Mo");
-var createDesc = __webpack_require__("rr1i");
-var _create = __webpack_require__("oVml");
-var gOPNExt = __webpack_require__("A5Xg");
-var $GOPD = __webpack_require__("vwuL");
-var $GOPS = __webpack_require__("mqlF");
-var $DP = __webpack_require__("2faE");
-var $keys = __webpack_require__("w6GO");
-var gOPD = $GOPD.f;
-var dP = $DP.f;
-var gOPN = gOPNExt.f;
-var $Symbol = global.Symbol;
-var $JSON = global.JSON;
-var _stringify = $JSON && $JSON.stringify;
-var PROTOTYPE = 'prototype';
-var HIDDEN = wks('_hidden');
-var TO_PRIMITIVE = wks('toPrimitive');
-var isEnum = {}.propertyIsEnumerable;
-var SymbolRegistry = shared('symbol-registry');
-var AllSymbols = shared('symbols');
-var OPSymbols = shared('op-symbols');
-var ObjectProto = Object[PROTOTYPE];
-var USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;
-var QObject = global.QObject;
-// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173
-var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;
-
-// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687
-var setSymbolDesc = DESCRIPTORS && $fails(function () {
-  return _create(dP({}, 'a', {
-    get: function () { return dP(this, 'a', { value: 7 }).a; }
-  })).a != 7;
-}) ? function (it, key, D) {
-  var protoDesc = gOPD(ObjectProto, key);
-  if (protoDesc) delete ObjectProto[key];
-  dP(it, key, D);
-  if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);
-} : dP;
-
-var wrap = function (tag) {
-  var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);
-  sym._k = tag;
-  return sym;
-};
-
-var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {
-  return typeof it == 'symbol';
-} : function (it) {
-  return it instanceof $Symbol;
-};
-
-var $defineProperty = function defineProperty(it, key, D) {
-  if (it === ObjectProto) $defineProperty(OPSymbols, key, D);
-  anObject(it);
-  key = toPrimitive(key, true);
-  anObject(D);
-  if (has(AllSymbols, key)) {
-    if (!D.enumerable) {
-      if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));
-      it[HIDDEN][key] = true;
-    } else {
-      if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;
-      D = _create(D, { enumerable: createDesc(0, false) });
-    } return setSymbolDesc(it, key, D);
-  } return dP(it, key, D);
-};
-var $defineProperties = function defineProperties(it, P) {
-  anObject(it);
-  var keys = enumKeys(P = toIObject(P));
-  var i = 0;
-  var l = keys.length;
-  var key;
-  while (l > i) $defineProperty(it, key = keys[i++], P[key]);
-  return it;
-};
-var $create = function create(it, P) {
-  return P === undefined ? _create(it) : $defineProperties(_create(it), P);
-};
-var $propertyIsEnumerable = function propertyIsEnumerable(key) {
-  var E = isEnum.call(this, key = toPrimitive(key, true));
-  if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;
-  return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;
-};
-var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {
-  it = toIObject(it);
-  key = toPrimitive(key, true);
-  if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;
-  var D = gOPD(it, key);
-  if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;
-  return D;
-};
-var $getOwnPropertyNames = function getOwnPropertyNames(it) {
-  var names = gOPN(toIObject(it));
-  var result = [];
-  var i = 0;
-  var key;
-  while (names.length > i) {
-    if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);
-  } return result;
-};
-var $getOwnPropertySymbols = function getOwnPropertySymbols(it) {
-  var IS_OP = it === ObjectProto;
-  var names = gOPN(IS_OP ? OPSymbols : toIObject(it));
-  var result = [];
-  var i = 0;
-  var key;
-  while (names.length > i) {
-    if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);
-  } return result;
-};
-
-// 19.4.1.1 Symbol([description])
-if (!USE_NATIVE) {
-  $Symbol = function Symbol() {
-    if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');
-    var tag = uid(arguments.length > 0 ? arguments[0] : undefined);
-    var $set = function (value) {
-      if (this === ObjectProto) $set.call(OPSymbols, value);
-      if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;
-      setSymbolDesc(this, tag, createDesc(1, value));
-    };
-    if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });
-    return wrap(tag);
-  };
-  redefine($Symbol[PROTOTYPE], 'toString', function toString() {
-    return this._k;
-  });
-
-  $GOPD.f = $getOwnPropertyDescriptor;
-  $DP.f = $defineProperty;
-  __webpack_require__("ar/p").f = gOPNExt.f = $getOwnPropertyNames;
-  __webpack_require__("NV0k").f = $propertyIsEnumerable;
-  $GOPS.f = $getOwnPropertySymbols;
-
-  if (DESCRIPTORS && !__webpack_require__("uOPS")) {
-    redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);
-  }
-
-  wksExt.f = function (name) {
-    return wrap(wks(name));
-  };
-}
-
-$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });
-
-for (var es6Symbols = (
-  // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14
-  'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'
-).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);
-
-for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);
-
-$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {
-  // 19.4.2.1 Symbol.for(key)
-  'for': function (key) {
-    return has(SymbolRegistry, key += '')
-      ? SymbolRegistry[key]
-      : SymbolRegistry[key] = $Symbol(key);
-  },
-  // 19.4.2.5 Symbol.keyFor(sym)
-  keyFor: function keyFor(sym) {
-    if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');
-    for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;
-  },
-  useSetter: function () { setter = true; },
-  useSimple: function () { setter = false; }
-});
-
-$export($export.S + $export.F * !USE_NATIVE, 'Object', {
-  // 19.1.2.2 Object.create(O [, Properties])
-  create: $create,
-  // 19.1.2.4 Object.defineProperty(O, P, Attributes)
-  defineProperty: $defineProperty,
-  // 19.1.2.3 Object.defineProperties(O, Properties)
-  defineProperties: $defineProperties,
-  // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
-  getOwnPropertyDescriptor: $getOwnPropertyDescriptor,
-  // 19.1.2.7 Object.getOwnPropertyNames(O)
-  getOwnPropertyNames: $getOwnPropertyNames,
-  // 19.1.2.8 Object.getOwnPropertySymbols(O)
-  getOwnPropertySymbols: $getOwnPropertySymbols
-});
-
-// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives
-// https://bugs.chromium.org/p/v8/issues/detail?id=3443
-var FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });
-
-$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {
-  getOwnPropertySymbols: function getOwnPropertySymbols(it) {
-    return $GOPS.f(toObject(it));
-  }
-});
-
-// 24.3.2 JSON.stringify(value [, replacer [, space]])
-$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {
-  var S = $Symbol();
-  // MS Edge converts symbol values to JSON as {}
-  // WebKit converts symbol values to JSON as null
-  // V8 throws on boxed symbols
-  return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';
-})), 'JSON', {
-  stringify: function stringify(it) {
-    var args = [it];
-    var i = 1;
-    var replacer, $replacer;
-    while (arguments.length > i) args.push(arguments[i++]);
-    $replacer = replacer = args[1];
-    if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined
-    if (!isArray(replacer)) replacer = function (key, value) {
-      if (typeof $replacer == 'function') value = $replacer.call(this, key, value);
-      if (!isSymbol(value)) return value;
-    };
-    args[1] = replacer;
-    return _stringify.apply($JSON, args);
-  }
-});
-
-// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)
-$Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__("NegM")($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);
-// 19.4.3.5 Symbol.prototype[@@toStringTag]
-setToStringTag($Symbol, 'Symbol');
-// 20.2.1.9 Math[@@toStringTag]
-setToStringTag(Math, 'Math', true);
-// 24.3.3 JSON[@@toStringTag]
-setToStringTag(global.JSON, 'JSON', true);
-
-
-/***/ }),
-
-/***/ "ApPD":
-/***/ (function(module, exports, __webpack_require__) {
-
-// 19.1.2.9 Object.getPrototypeOf(O)
-var toObject = __webpack_require__("JB68");
-var $getPrototypeOf = __webpack_require__("U+KD");
-
-__webpack_require__("zn7N")('getPrototypeOf', function () {
-  return function getPrototypeOf(it) {
-    return $getPrototypeOf(toObject(it));
-  };
-});
-
-
-/***/ }),
-
 /***/ "B5Ud":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -517,155 +172,6 @@ function createUrl(router) {
 
 /***/ }),
 
-/***/ "Bhuq":
-/***/ (function(module, exports, __webpack_require__) {
-
-module.exports = __webpack_require__("+plK");
-
-/***/ }),
-
-/***/ "K47E":
-/***/ (function(module, exports) {
-
-function _assertThisInitialized(self) {
-  if (self === void 0) {
-    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
-  }
-
-  return self;
-}
-
-module.exports = _assertThisInitialized;
-
-/***/ }),
-
-/***/ "N9n2":
-/***/ (function(module, exports, __webpack_require__) {
-
-var _Object$create = __webpack_require__("SqZg");
-
-var setPrototypeOf = __webpack_require__("vjea");
-
-function _inherits(subClass, superClass) {
-  if (typeof superClass !== "function" && superClass !== null) {
-    throw new TypeError("Super expression must either be null or a function");
-  }
-
-  subClass.prototype = _Object$create(superClass && superClass.prototype, {
-    constructor: {
-      value: subClass,
-      writable: true,
-      configurable: true
-    }
-  });
-  if (superClass) setPrototypeOf(subClass, superClass);
-}
-
-module.exports = _inherits;
-
-/***/ }),
-
-/***/ "R+7+":
-/***/ (function(module, exports, __webpack_require__) {
-
-// all enumerable object keys, includes symbols
-var getKeys = __webpack_require__("w6GO");
-var gOPS = __webpack_require__("mqlF");
-var pIE = __webpack_require__("NV0k");
-module.exports = function (it) {
-  var result = getKeys(it);
-  var getSymbols = gOPS.f;
-  if (getSymbols) {
-    var symbols = getSymbols(it);
-    var isEnum = pIE.f;
-    var i = 0;
-    var key;
-    while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);
-  } return result;
-};
-
-
-/***/ }),
-
-/***/ "XVgq":
-/***/ (function(module, exports, __webpack_require__) {
-
-module.exports = __webpack_require__("2Nb0");
-
-/***/ }),
-
-/***/ "Z7t5":
-/***/ (function(module, exports, __webpack_require__) {
-
-module.exports = __webpack_require__("+SFK");
-
-/***/ }),
-
-/***/ "ZDA2":
-/***/ (function(module, exports, __webpack_require__) {
-
-var _typeof = __webpack_require__("iZP3");
-
-var assertThisInitialized = __webpack_require__("K47E");
-
-function _possibleConstructorReturn(self, call) {
-  if (call && (_typeof(call) === "object" || typeof call === "function")) {
-    return call;
-  }
-
-  return assertThisInitialized(self);
-}
-
-module.exports = _possibleConstructorReturn;
-
-/***/ }),
-
-/***/ "Zxgi":
-/***/ (function(module, exports, __webpack_require__) {
-
-var global = __webpack_require__("5T2Y");
-var core = __webpack_require__("WEpk");
-var LIBRARY = __webpack_require__("uOPS");
-var wksExt = __webpack_require__("zLkG");
-var defineProperty = __webpack_require__("2faE").f;
-module.exports = function (name) {
-  var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});
-  if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });
-};
-
-
-/***/ }),
-
-/***/ "adOz":
-/***/ (function(module, exports, __webpack_require__) {
-
-__webpack_require__("Zxgi")('asyncIterator');
-
-
-/***/ }),
-
-/***/ "ar/p":
-/***/ (function(module, exports, __webpack_require__) {
-
-// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)
-var $keys = __webpack_require__("5vMV");
-var hiddenKeys = __webpack_require__("FpHa").concat('length', 'prototype');
-
-exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
-  return $keys(O, hiddenKeys);
-};
-
-
-/***/ }),
-
-/***/ "dl0q":
-/***/ (function(module, exports, __webpack_require__) {
-
-__webpack_require__("Zxgi")('observable');
-
-
-/***/ }),
-
 /***/ "e9+W":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -677,41 +183,6 @@ __webpack_require__("Zxgi")('observable');
     }]);
   
 
-/***/ }),
-
-/***/ "iZP3":
-/***/ (function(module, exports, __webpack_require__) {
-
-var _Symbol$iterator = __webpack_require__("XVgq");
-
-var _Symbol = __webpack_require__("Z7t5");
-
-function _typeof2(obj) { if (typeof _Symbol === "function" && typeof _Symbol$iterator === "symbol") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof _Symbol === "function" && obj.constructor === _Symbol && obj !== _Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof2(obj); }
-
-function _typeof(obj) {
-  if (typeof _Symbol === "function" && _typeof2(_Symbol$iterator) === "symbol") {
-    module.exports = _typeof = function _typeof(obj) {
-      return _typeof2(obj);
-    };
-  } else {
-    module.exports = _typeof = function _typeof(obj) {
-      return obj && typeof _Symbol === "function" && obj.constructor === _Symbol && obj !== _Symbol.prototype ? "symbol" : _typeof2(obj);
-    };
-  }
-
-  return _typeof(obj);
-}
-
-module.exports = _typeof;
-
-/***/ }),
-
-/***/ "zLkG":
-/***/ (function(module, exports, __webpack_require__) {
-
-exports.f = __webpack_require__("UWiX");
-
-
 /***/ })
 
-},[["e9+W",0,2,1,3]]]);
\ No newline at end of file
+},[["e9+W",0,2,1,3,4]]]);
\ No newline at end of file
Diff for _error.js
@@ -60,19 +60,6 @@ exports.useAmp = useAmp;
 
 /***/ }),
 
-/***/ "/HRN":
-/***/ (function(module, exports) {
-
-function _classCallCheck(instance, Constructor) {
-  if (!(instance instanceof Constructor)) {
-    throw new TypeError("Cannot call a class as a function");
-  }
-}
-
-module.exports = _classCallCheck;
-
-/***/ }),
-
 /***/ "/a9y":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -229,110 +216,6 @@ module.exports = _nonIterableSpread;
 
 /***/ }),
 
-/***/ "3GJH":
-/***/ (function(module, exports, __webpack_require__) {
-
-__webpack_require__("lCc8");
-var $Object = __webpack_require__("WEpk").Object;
-module.exports = function create(P, D) {
-  return $Object.create(P, D);
-};
-
-
-/***/ }),
-
-/***/ "6/1s":
-/***/ (function(module, exports, __webpack_require__) {
-
-var META = __webpack_require__("YqAc")('meta');
-var isObject = __webpack_require__("93I4");
-var has = __webpack_require__("B+OT");
-var setDesc = __webpack_require__("2faE").f;
-var id = 0;
-var isExtensible = Object.isExtensible || function () {
-  return true;
-};
-var FREEZE = !__webpack_require__("KUxP")(function () {
-  return isExtensible(Object.preventExtensions({}));
-});
-var setMeta = function (it) {
-  setDesc(it, META, { value: {
-    i: 'O' + ++id, // object ID
-    w: {}          // weak collections IDs
-  } });
-};
-var fastKey = function (it, create) {
-  // return primitive with prefix
-  if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
-  if (!has(it, META)) {
-    // can't set metadata to uncaught frozen object
-    if (!isExtensible(it)) return 'F';
-    // not necessary to add metadata
-    if (!create) return 'E';
-    // add missing metadata
-    setMeta(it);
-  // return object ID
-  } return it[META].i;
-};
-var getWeak = function (it, create) {
-  if (!has(it, META)) {
-    // can't set metadata to uncaught frozen object
-    if (!isExtensible(it)) return true;
-    // not necessary to add metadata
-    if (!create) return false;
-    // add missing metadata
-    setMeta(it);
-  // return hash weak collections IDs
-  } return it[META].w;
-};
-// add metadata on freeze-family methods calling
-var onFreeze = function (it) {
-  if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);
-  return it;
-};
-var meta = module.exports = {
-  KEY: META,
-  NEED: false,
-  fastKey: fastKey,
-  getWeak: getWeak,
-  onFreeze: onFreeze
-};
-
-
-/***/ }),
-
-/***/ "6tYh":
-/***/ (function(module, exports, __webpack_require__) {
-
-// Works with __proto__ only. Old v8 can't work with null proto objects.
-/* eslint-disable no-proto */
-var isObject = __webpack_require__("93I4");
-var anObject = __webpack_require__("5K7Z");
-var check = function (O, proto) {
-  anObject(O);
-  if (!isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!");
-};
-module.exports = {
-  set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line
-    function (test, buggy, set) {
-      try {
-        set = __webpack_require__("2GTP")(Function.call, __webpack_require__("vwuL").f(Object.prototype, '__proto__').set, 2);
-        set(test, []);
-        buggy = !(test instanceof Array);
-      } catch (e) { buggy = true; }
-      return function setPrototypeOf(O, proto) {
-        check(O, proto);
-        if (buggy) O.__proto__ = proto;
-        else set(O, proto);
-        return O;
-      };
-    }({}, false) : undefined),
-  check: check
-};
-
-
-/***/ }),
-
 /***/ "8Kt/":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -499,6 +382,22 @@ exports["default"] = Head;
 
 /***/ }),
 
+/***/ "8iia":
+/***/ (function(module, exports, __webpack_require__) {
+
+// https://github.com/DavidBruant/Map-Set.prototype.toJSON
+var classof = __webpack_require__("QMMT");
+var from = __webpack_require__("RRc/");
+module.exports = function (NAME) {
+  return function toJSON() {
+    if (classof(this) != NAME) throw TypeError(NAME + "#toJSON isn't generic");
+    return from(this);
+  };
+};
+
+
+/***/ }),
+
 /***/ "9BDd":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -553,18 +452,6 @@ module.exports = function (original) {
 
 /***/ }),
 
-/***/ "EXMj":
-/***/ (function(module, exports) {
-
-module.exports = function (it, Constructor, name, forbiddenField) {
-  if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {
-    throw TypeError(name + ': incorrect invocation!');
-  } return it;
-};
-
-
-/***/ }),
-
 /***/ "FYa8":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -604,16 +491,6 @@ $export($export.S, 'Array', { isArray: __webpack_require__("kAMH") });
 
 /***/ }),
 
-/***/ "Hfiw":
-/***/ (function(module, exports, __webpack_require__) {
-
-// 19.1.3.19 Object.setPrototypeOf(O, proto)
-var $export = __webpack_require__("Y7ZC");
-$export($export.S, 'Object', { setPrototypeOf: __webpack_require__("6tYh").set });
-
-
-/***/ }),
-
 /***/ "IP1Z":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -630,51 +507,6 @@ module.exports = function (object, index, value) {
 
 /***/ }),
 
-/***/ "JbBM":
-/***/ (function(module, exports, __webpack_require__) {
-
-__webpack_require__("Hfiw");
-module.exports = __webpack_require__("WEpk").Object.setPrototypeOf;
-
-
-/***/ }),
-
-/***/ "KI45":
-/***/ (function(module, exports) {
-
-function _interopRequireDefault(obj) {
-  return obj && obj.__esModule ? obj : {
-    "default": obj
-  };
-}
-
-module.exports = _interopRequireDefault;
-
-/***/ }),
-
-/***/ "NV0k":
-/***/ (function(module, exports) {
-
-exports.f = {}.propertyIsEnumerable;
-
-
-/***/ }),
-
-/***/ "NwJ3":
-/***/ (function(module, exports, __webpack_require__) {
-
-// check on default Array iterator
-var Iterators = __webpack_require__("SBuE");
-var ITERATOR = __webpack_require__("UWiX")('iterator');
-var ArrayProto = Array.prototype;
-
-module.exports = function (it) {
-  return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);
-};
-
-
-/***/ }),
-
 /***/ "PQJW":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -690,64 +522,20 @@ module.exports = _iterableToArray;
 
 /***/ }),
 
-/***/ "RU/L":
-/***/ (function(module, exports, __webpack_require__) {
-
-__webpack_require__("Rqdy");
-var $Object = __webpack_require__("WEpk").Object;
-module.exports = function defineProperty(it, key, desc) {
-  return $Object.defineProperty(it, key, desc);
-};
-
-
-/***/ }),
-
-/***/ "Rqdy":
-/***/ (function(module, exports, __webpack_require__) {
-
-var $export = __webpack_require__("Y7ZC");
-// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)
-$export($export.S + $export.F * !__webpack_require__("jmDH"), 'Object', { defineProperty: __webpack_require__("2faE").f });
-
-
-/***/ }),
-
-/***/ "SqZg":
-/***/ (function(module, exports, __webpack_require__) {
-
-module.exports = __webpack_require__("3GJH");
-
-/***/ }),
-
-/***/ "TJWN":
+/***/ "RRc/":
 /***/ (function(module, exports, __webpack_require__) {
 
-"use strict";
-
-var global = __webpack_require__("5T2Y");
-var core = __webpack_require__("WEpk");
-var dP = __webpack_require__("2faE");
-var DESCRIPTORS = __webpack_require__("jmDH");
-var SPECIES = __webpack_require__("UWiX")('species');
+var forOf = __webpack_require__("oioR");
 
-module.exports = function (KEY) {
-  var C = typeof core[KEY] == 'function' ? core[KEY] : global[KEY];
-  if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {
-    configurable: true,
-    get: function () { return this; }
-  });
+module.exports = function (iter, ITERATOR) {
+  var result = [];
+  forOf(iter, false, result.push, result, ITERATOR);
+  return result;
 };
 
 
 /***/ }),
 
-/***/ "TRZx":
-/***/ (function(module, exports, __webpack_require__) {
-
-module.exports = __webpack_require__("JbBM");
-
-/***/ }),
-
 /***/ "TbGu":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -765,35 +553,6 @@ module.exports = _toConsumableArray;
 
 /***/ }),
 
-/***/ "TuGD":
-/***/ (function(module, exports, __webpack_require__) {
-
-var ITERATOR = __webpack_require__("UWiX")('iterator');
-var SAFE_CLOSING = false;
-
-try {
-  var riter = [7][ITERATOR]();
-  riter['return'] = function () { SAFE_CLOSING = true; };
-  // eslint-disable-next-line no-throw-literal
-  Array.from(riter, function () { throw 2; });
-} catch (e) { /* empty */ }
-
-module.exports = function (exec, skipClosing) {
-  if (!skipClosing && !SAFE_CLOSING) return false;
-  var safe = false;
-  try {
-    var arr = [7];
-    var iter = arr[ITERATOR]();
-    iter.next = function () { return { done: safe = true }; };
-    arr[ITERATOR] = function () { return iter; };
-    exec(arr);
-  } catch (e) { /* empty */ }
-  return safe;
-};
-
-
-/***/ }),
-
 /***/ "V+O7":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -909,41 +668,153 @@ module.exports = __webpack_require__("ldVq");
 
 /***/ }),
 
-/***/ "WaGi":
+/***/ "Wu5q":
 /***/ (function(module, exports, __webpack_require__) {
 
-var _Object$defineProperty = __webpack_require__("hfKm");
-
-function _defineProperties(target, props) {
-  for (var i = 0; i < props.length; i++) {
-    var descriptor = props[i];
-    descriptor.enumerable = descriptor.enumerable || false;
-    descriptor.configurable = true;
-    if ("value" in descriptor) descriptor.writable = true;
+"use strict";
 
-    _Object$defineProperty(target, descriptor.key, descriptor);
+var dP = __webpack_require__("2faE").f;
+var create = __webpack_require__("oVml");
+var redefineAll = __webpack_require__("XJU/");
+var ctx = __webpack_require__("2GTP");
+var anInstance = __webpack_require__("EXMj");
+var forOf = __webpack_require__("oioR");
+var $iterDefine = __webpack_require__("MPFp");
+var step = __webpack_require__("UO39");
+var setSpecies = __webpack_require__("TJWN");
+var DESCRIPTORS = __webpack_require__("jmDH");
+var fastKey = __webpack_require__("6/1s").fastKey;
+var validate = __webpack_require__("n3ko");
+var SIZE = DESCRIPTORS ? '_s' : 'size';
+
+var getEntry = function (that, key) {
+  // fast case
+  var index = fastKey(key);
+  var entry;
+  if (index !== 'F') return that._i[index];
+  // frozen object case
+  for (entry = that._f; entry; entry = entry.n) {
+    if (entry.k == key) return entry;
   }
-}
-
-function _createClass(Constructor, protoProps, staticProps) {
-  if (protoProps) _defineProperties(Constructor.prototype, protoProps);
-  if (staticProps) _defineProperties(Constructor, staticProps);
-  return Constructor;
-}
-
-module.exports = _createClass;
-
-/***/ }),
-
-/***/ "XJU/":
-/***/ (function(module, exports, __webpack_require__) {
+};
 
-var hide = __webpack_require__("NegM");
-module.exports = function (target, src, safe) {
-  for (var key in src) {
-    if (safe && target[key]) target[key] = src[key];
-    else hide(target, key, src[key]);
-  } return target;
+module.exports = {
+  getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {
+    var C = wrapper(function (that, iterable) {
+      anInstance(that, C, NAME, '_i');
+      that._t = NAME;         // collection type
+      that._i = create(null); // index
+      that._f = undefined;    // first entry
+      that._l = undefined;    // last entry
+      that[SIZE] = 0;         // size
+      if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);
+    });
+    redefineAll(C.prototype, {
+      // 23.1.3.1 Map.prototype.clear()
+      // 23.2.3.2 Set.prototype.clear()
+      clear: function clear() {
+        for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) {
+          entry.r = true;
+          if (entry.p) entry.p = entry.p.n = undefined;
+          delete data[entry.i];
+        }
+        that._f = that._l = undefined;
+        that[SIZE] = 0;
+      },
+      // 23.1.3.3 Map.prototype.delete(key)
+      // 23.2.3.4 Set.prototype.delete(value)
+      'delete': function (key) {
+        var that = validate(this, NAME);
+        var entry = getEntry(that, key);
+        if (entry) {
+          var next = entry.n;
+          var prev = entry.p;
+          delete that._i[entry.i];
+          entry.r = true;
+          if (prev) prev.n = next;
+          if (next) next.p = prev;
+          if (that._f == entry) that._f = next;
+          if (that._l == entry) that._l = prev;
+          that[SIZE]--;
+        } return !!entry;
+      },
+      // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)
+      // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)
+      forEach: function forEach(callbackfn /* , that = undefined */) {
+        validate(this, NAME);
+        var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);
+        var entry;
+        while (entry = entry ? entry.n : this._f) {
+          f(entry.v, entry.k, this);
+          // revert to the last existing entry
+          while (entry && entry.r) entry = entry.p;
+        }
+      },
+      // 23.1.3.7 Map.prototype.has(key)
+      // 23.2.3.7 Set.prototype.has(value)
+      has: function has(key) {
+        return !!getEntry(validate(this, NAME), key);
+      }
+    });
+    if (DESCRIPTORS) dP(C.prototype, 'size', {
+      get: function () {
+        return validate(this, NAME)[SIZE];
+      }
+    });
+    return C;
+  },
+  def: function (that, key, value) {
+    var entry = getEntry(that, key);
+    var prev, index;
+    // change existing entry
+    if (entry) {
+      entry.v = value;
+    // create new entry
+    } else {
+      that._l = entry = {
+        i: index = fastKey(key, true), // <- index
+        k: key,                        // <- key
+        v: value,                      // <- value
+        p: prev = that._l,             // <- previous entry
+        n: undefined,                  // <- next entry
+        r: false                       // <- removed
+      };
+      if (!that._f) that._f = entry;
+      if (prev) prev.n = entry;
+      that[SIZE]++;
+      // add to index
+      if (index !== 'F') that._i[index] = entry;
+    } return that;
+  },
+  getEntry: getEntry,
+  setStrong: function (C, NAME, IS_MAP) {
+    // add .keys, .values, .entries, [@@iterator]
+    // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11
+    $iterDefine(C, NAME, function (iterated, kind) {
+      this._t = validate(iterated, NAME); // target
+      this._k = kind;                     // kind
+      this._l = undefined;                // previous
+    }, function () {
+      var that = this;
+      var kind = that._k;
+      var entry = that._l;
+      // revert to the last existing entry
+      while (entry && entry.r) entry = entry.p;
+      // get next entry
+      if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) {
+        // or finish the iteration
+        that._t = undefined;
+        return step(1);
+      }
+      // return step by kind
+      if (kind == 'keys') return step(0, entry.k);
+      if (kind == 'values') return step(0, entry.v);
+      return step(0, [entry.k, entry.v]);
+    }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);
+
+    // add [@@species], 23.1.2.2, 23.2.2.2
+    setSpecies(NAME);
+  }
 };
 
 
@@ -1148,23 +1019,6 @@ module.exports = _arrayWithoutHoles;
 
 /***/ }),
 
-/***/ "hfKm":
-/***/ (function(module, exports, __webpack_require__) {
-
-module.exports = __webpack_require__("RU/L");
-
-/***/ }),
-
-/***/ "lCc8":
-/***/ (function(module, exports, __webpack_require__) {
-
-var $export = __webpack_require__("Y7ZC");
-// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
-$export($export.S, 'Object', { create: __webpack_require__("oVml") });
-
-
-/***/ }),
-
 /***/ "ldVq":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -1210,14 +1064,6 @@ exports.AmpStateContext = React.createContext({});
 
 /***/ }),
 
-/***/ "mqlF":
-/***/ (function(module, exports) {
-
-exports.f = Object.getOwnPropertySymbols;
-
-
-/***/ }),
-
 /***/ "n3ko":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -1230,38 +1076,6 @@ module.exports = function (it, TYPE) {
 
 /***/ }),
 
-/***/ "oioR":
-/***/ (function(module, exports, __webpack_require__) {
-
-var ctx = __webpack_require__("2GTP");
-var call = __webpack_require__("sNwI");
-var isArrayIter = __webpack_require__("NwJ3");
-var anObject = __webpack_require__("5K7Z");
-var toLength = __webpack_require__("tEej");
-var getIterFn = __webpack_require__("fNZA");
-var BREAK = {};
-var RETURN = {};
-var exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {
-  var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);
-  var f = ctx(fn, that, entries ? 2 : 1);
-  var index = 0;
-  var length, step, iterator, result;
-  if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');
-  // fast case for arrays with default iterator
-  if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {
-    result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);
-    if (result === BREAK || result === RETURN) return result;
-  } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {
-    result = call(iterator, f, step.value, entries);
-    if (result === BREAK || result === RETURN) return result;
-  }
-};
-exports.BREAK = BREAK;
-exports.RETURN = RETURN;
-
-
-/***/ }),
-
 /***/ "p0XB":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -1336,25 +1150,6 @@ module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {
 
 /***/ }),
 
-/***/ "sNwI":
-/***/ (function(module, exports, __webpack_require__) {
-
-// call something on iterator step with safe closing on error
-var anObject = __webpack_require__("5K7Z");
-module.exports = function (iterator, fn, value, entries) {
-  try {
-    return entries ? fn(anObject(value)[0], value[1]) : fn(value);
-  // 7.4.6 IteratorClose(iterator, completion)
-  } catch (e) {
-    var ret = iterator['return'];
-    if (ret !== undefined) anObject(ret.call(iterator));
-    throw e;
-  }
-};
-
-
-/***/ }),
-
 /***/ "ttDY":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -1375,54 +1170,6 @@ module.exports = function (original, length) {
 
 /***/ }),
 
-/***/ "vjea":
-/***/ (function(module, exports, __webpack_require__) {
-
-var _Object$setPrototypeOf = __webpack_require__("TRZx");
-
-function _setPrototypeOf(o, p) {
-  module.exports = _setPrototypeOf = _Object$setPrototypeOf || function _setPrototypeOf(o, p) {
-    o.__proto__ = p;
-    return o;
-  };
-
-  return _setPrototypeOf(o, p);
-}
-
-module.exports = _setPrototypeOf;
-
-/***/ }),
-
-/***/ "vwuL":
-/***/ (function(module, exports, __webpack_require__) {
-
-var pIE = __webpack_require__("NV0k");
-var createDesc = __webpack_require__("rr1i");
-var toIObject = __webpack_require__("NsO/");
-var toPrimitive = __webpack_require__("G8Mo");
-var has = __webpack_require__("B+OT");
-var IE8_DOM_DEFINE = __webpack_require__("eUtF");
-var gOPD = Object.getOwnPropertyDescriptor;
-
-exports.f = __webpack_require__("jmDH") ? gOPD : function getOwnPropertyDescriptor(O, P) {
-  O = toIObject(O);
-  P = toPrimitive(P, true);
-  if (IE8_DOM_DEFINE) try {
-    return gOPD(O, P);
-  } catch (e) { /* empty */ }
-  if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);
-};
-
-
-/***/ }),
-
-/***/ "wgeU":
-/***/ (function(module, exports) {
-
-
-
-/***/ }),
-
 /***/ "xvv9":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -1437,23 +1184,6 @@ __webpack_require__("cHUd")('Set');
 
 module.exports = __webpack_require__("VKFn");
 
-/***/ }),
-
-/***/ "zn7N":
-/***/ (function(module, exports, __webpack_require__) {
-
-// most Object methods by ES6 should accept primitives
-var $export = __webpack_require__("Y7ZC");
-var core = __webpack_require__("WEpk");
-var fails = __webpack_require__("KUxP");
-module.exports = function (KEY, exec) {
-  var fn = (core.Object || {})[KEY] || Object[KEY];
-  var exp = {};
-  exp[KEY] = exec(fn);
-  $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);
-};
-
-
 /***/ })
 
-},[["04ac",0,2,1,5]]]);
\ No newline at end of file
+},[["04ac",0,2,1,3]]]);
\ No newline at end of file
Diff for link.js
@@ -9,6 +9,22 @@ __webpack_require__("cHUd")('Map');
 
 /***/ }),
 
+/***/ "8iia":
+/***/ (function(module, exports, __webpack_require__) {
+
+// https://github.com/DavidBruant/Map-Set.prototype.toJSON
+var classof = __webpack_require__("QMMT");
+var from = __webpack_require__("RRc/");
+module.exports = function (NAME) {
+  return function toJSON() {
+    if (classof(this) != NAME) throw TypeError(NAME + "#toJSON isn't generic");
+    return from(this);
+  };
+};
+
+
+/***/ }),
+
 /***/ "LX0d":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -43,6 +59,20 @@ aLink.getInitialProps = function () {
 
 /***/ }),
 
+/***/ "RRc/":
+/***/ (function(module, exports, __webpack_require__) {
+
+var forOf = __webpack_require__("oioR");
+
+module.exports = function (iter, ITERATOR) {
+  var result = [];
+  forOf(iter, false, result.push, result, ITERATOR);
+  return result;
+};
+
+
+/***/ }),
+
 /***/ "UDep":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -71,6 +101,158 @@ module.exports = __webpack_require__("WEpk").Map;
 
 /***/ }),
 
+/***/ "Wu5q":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+var dP = __webpack_require__("2faE").f;
+var create = __webpack_require__("oVml");
+var redefineAll = __webpack_require__("XJU/");
+var ctx = __webpack_require__("2GTP");
+var anInstance = __webpack_require__("EXMj");
+var forOf = __webpack_require__("oioR");
+var $iterDefine = __webpack_require__("MPFp");
+var step = __webpack_require__("UO39");
+var setSpecies = __webpack_require__("TJWN");
+var DESCRIPTORS = __webpack_require__("jmDH");
+var fastKey = __webpack_require__("6/1s").fastKey;
+var validate = __webpack_require__("n3ko");
+var SIZE = DESCRIPTORS ? '_s' : 'size';
+
+var getEntry = function (that, key) {
+  // fast case
+  var index = fastKey(key);
+  var entry;
+  if (index !== 'F') return that._i[index];
+  // frozen object case
+  for (entry = that._f; entry; entry = entry.n) {
+    if (entry.k == key) return entry;
+  }
+};
+
+module.exports = {
+  getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {
+    var C = wrapper(function (that, iterable) {
+      anInstance(that, C, NAME, '_i');
+      that._t = NAME;         // collection type
+      that._i = create(null); // index
+      that._f = undefined;    // first entry
+      that._l = undefined;    // last entry
+      that[SIZE] = 0;         // size
+      if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);
+    });
+    redefineAll(C.prototype, {
+      // 23.1.3.1 Map.prototype.clear()
+      // 23.2.3.2 Set.prototype.clear()
+      clear: function clear() {
+        for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) {
+          entry.r = true;
+          if (entry.p) entry.p = entry.p.n = undefined;
+          delete data[entry.i];
+        }
+        that._f = that._l = undefined;
+        that[SIZE] = 0;
+      },
+      // 23.1.3.3 Map.prototype.delete(key)
+      // 23.2.3.4 Set.prototype.delete(value)
+      'delete': function (key) {
+        var that = validate(this, NAME);
+        var entry = getEntry(that, key);
+        if (entry) {
+          var next = entry.n;
+          var prev = entry.p;
+          delete that._i[entry.i];
+          entry.r = true;
+          if (prev) prev.n = next;
+          if (next) next.p = prev;
+          if (that._f == entry) that._f = next;
+          if (that._l == entry) that._l = prev;
+          that[SIZE]--;
+        } return !!entry;
+      },
+      // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)
+      // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)
+      forEach: function forEach(callbackfn /* , that = undefined */) {
+        validate(this, NAME);
+        var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);
+        var entry;
+        while (entry = entry ? entry.n : this._f) {
+          f(entry.v, entry.k, this);
+          // revert to the last existing entry
+          while (entry && entry.r) entry = entry.p;
+        }
+      },
+      // 23.1.3.7 Map.prototype.has(key)
+      // 23.2.3.7 Set.prototype.has(value)
+      has: function has(key) {
+        return !!getEntry(validate(this, NAME), key);
+      }
+    });
+    if (DESCRIPTORS) dP(C.prototype, 'size', {
+      get: function () {
+        return validate(this, NAME)[SIZE];
+      }
+    });
+    return C;
+  },
+  def: function (that, key, value) {
+    var entry = getEntry(that, key);
+    var prev, index;
+    // change existing entry
+    if (entry) {
+      entry.v = value;
+    // create new entry
+    } else {
+      that._l = entry = {
+        i: index = fastKey(key, true), // <- index
+        k: key,                        // <- key
+        v: value,                      // <- value
+        p: prev = that._l,             // <- previous entry
+        n: undefined,                  // <- next entry
+        r: false                       // <- removed
+      };
+      if (!that._f) that._f = entry;
+      if (prev) prev.n = entry;
+      that[SIZE]++;
+      // add to index
+      if (index !== 'F') that._i[index] = entry;
+    } return that;
+  },
+  getEntry: getEntry,
+  setStrong: function (C, NAME, IS_MAP) {
+    // add .keys, .values, .entries, [@@iterator]
+    // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11
+    $iterDefine(C, NAME, function (iterated, kind) {
+      this._t = validate(iterated, NAME); // target
+      this._k = kind;                     // kind
+      this._l = undefined;                // previous
+    }, function () {
+      var that = this;
+      var kind = that._k;
+      var entry = that._l;
+      // revert to the last existing entry
+      while (entry && entry.r) entry = entry.p;
+      // get next entry
+      if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) {
+        // or finish the iteration
+        that._t = undefined;
+        return step(1);
+      }
+      // return step by kind
+      if (kind == 'keys') return step(0, entry.k);
+      if (kind == 'values') return step(0, entry.v);
+      return step(0, [entry.k, entry.v]);
+    }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);
+
+    // add [@@species], 23.1.2.2, 23.2.2.2
+    setSpecies(NAME);
+  }
+};
+
+
+/***/ }),
+
 /***/ "XLbu":
 /***/ (function(module, exports, __webpack_require__) {
Diff for routerDirect.js
@@ -40,4 +40,4 @@ routerDirect.getInitialProps = function () {
 
 /***/ })
 
-},[["LtRI",0,2,1,3,4]]]);
\ No newline at end of file
+},[["LtRI",0,2,1,3,4,5]]]);
\ No newline at end of file
Diff for withRouter.js
@@ -38,4 +38,4 @@ useWithRouter.getInitialProps = function () {
 
 /***/ })
 
-},[["eThv",0,2,1,3,4]]]);
\ No newline at end of file
+},[["eThv",0,2,1,3,4,5]]]);
\ No newline at end of file
Diff for _buildManifest.js
@@ -1 +1 @@
-self.__BUILD_MANIFEST = (function(a,b){return {"/_error":[b],"/link":[a,b],"/routerDirect":[a],"/withRouter":[a]}}("static\u002Fchunks\u002F16b1a72255206b7853bf6603dc58ec83de39b142.c29872cbf1d93285c3d9.js","static\u002Fchunks\u002F314e4c089430eb8cdc865a8a097be397fffdf2f3.dabd6bf1b89781ecd750.js"));self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB()
\ No newline at end of file
+self.__BUILD_MANIFEST = (function(a){return {"/link":[a],"/routerDirect":[a],"/withRouter":[a]}}("static\u002Fchunks\u002F16b1a72255206b7853bf6603dc58ec83de39b142.a9e45275d81f65ce1b3a.js"));self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB()
\ No newline at end of file
Diff for _buildManifest.module.js
@@ -1 +1 @@
-self.__BUILD_MANIFEST = (function(a){return {"/link":[a],"/routerDirect":[a],"/withRouter":[a]}}("static\u002Fchunks\u002F16b1a72255206b7853bf6603dc58ec83de39b142.8fbe72179a6a785d9e96.module.js"));self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB()
\ No newline at end of file
+self.__BUILD_MANIFEST = (function(a){return {"/link":[a],"/routerDirect":[a],"/withRouter":[a]}}("static\u002Fchunks\u002F16b1a72255206b7853bf6603dc58ec83de39b142.13a61a2410d3fe9a0cb1.module.js"));self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB()
\ No newline at end of file
Diff for index.html
@@ -12,14 +12,14 @@
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/runtime/main-1cfe777cfca3f99f33b3.module.js"
+        <link rel="preload" href="/_next/static/runtime/main-dc4f7a3933a6ad83aa00.module.js"
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
-        as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.89ebf3e33b855a0478ce.module.js"
         as="script" crossorigin="anonymous" />
+        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.710f68a91537b45d6153.module.js"
+        as="script" crossorigin="anonymous" />
     </head>
     
     <body>
@@ -31,7 +31,6 @@
         <script crossorigin="anonymous" nomodule="">
             !function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
         </script>
-        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-46d78823406a20028351.js"></script>
         <script async="" data-next-page="/" src="/_next/static/BUILD_ID/pages/index.js"
         crossorigin="anonymous" nomodule=""></script>
         <script async="" data-next-page="/" src="/_next/static/BUILD_ID/pages/index.module.js"
@@ -44,9 +43,9 @@
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/runtime/main-aeb145aa3b20f0a133be.js"
+        <script src="/_next/static/runtime/main-2f720c24f7654598cf60.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/runtime/main-1cfe777cfca3f99f33b3.module.js"
+        <script src="/_next/static/runtime/main-dc4f7a3933a6ad83aa00.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/chunks/framework.219514909c9db8a9ff76.js"
         async="" crossorigin="anonymous" nomodule=""></script>
@@ -54,12 +53,14 @@
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/chunks/commons.ae25279399a9d28ee270.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.590e9c97bed24d8fff40.js"
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.cf0e4a968d6e5bfa6e29.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
-        async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.89ebf3e33b855a0478ce.module.js"
         async="" crossorigin="anonymous" type="module"></script>
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.4c2a53afddb0008e3250.js"
+        async="" crossorigin="anonymous" nomodule=""></script>
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.710f68a91537b45d6153.module.js"
+        async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/BUILD_ID/_buildManifest.js" async=""
         crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/BUILD_ID/_buildManifest.module.js"
Diff for link.html
@@ -14,13 +14,13 @@
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
+        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.89ebf3e33b855a0478ce.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.8fbe72179a6a785d9e96.module.js"
+        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.710f68a91537b45d6153.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.89ebf3e33b855a0478ce.module.js"
+        <link rel="preload" href="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.13a61a2410d3fe9a0cb1.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/runtime/main-1cfe777cfca3f99f33b3.module.js"
+        <link rel="preload" href="/_next/static/runtime/main-dc4f7a3933a6ad83aa00.module.js"
         as="script" crossorigin="anonymous" />
     </head>
     
@@ -36,7 +36,6 @@
         <script crossorigin="anonymous" nomodule="">
             !function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
         </script>
-        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-46d78823406a20028351.js"></script>
         <script async="" data-next-page="/link" src="/_next/static/BUILD_ID/pages/link.js"
         crossorigin="anonymous" nomodule=""></script>
         <script async="" data-next-page="/link" src="/_next/static/BUILD_ID/pages/link.module.js"
@@ -55,21 +54,21 @@
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/chunks/commons.ae25279399a9d28ee270.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.590e9c97bed24d8fff40.js"
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.cf0e4a968d6e5bfa6e29.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.89ebf3e33b855a0478ce.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.c29872cbf1d93285c3d9.js"
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.4c2a53afddb0008e3250.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.8fbe72179a6a785d9e96.module.js"
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.710f68a91537b45d6153.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/314e4c089430eb8cdc865a8a097be397fffdf2f3.dabd6bf1b89781ecd750.js"
+        <script src="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.a9e45275d81f65ce1b3a.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.89ebf3e33b855a0478ce.module.js"
+        <script src="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.13a61a2410d3fe9a0cb1.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/runtime/main-aeb145aa3b20f0a133be.js"
+        <script src="/_next/static/runtime/main-2f720c24f7654598cf60.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/runtime/main-1cfe777cfca3f99f33b3.module.js"
+        <script src="/_next/static/runtime/main-dc4f7a3933a6ad83aa00.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/BUILD_ID/_buildManifest.js" async=""
         crossorigin="anonymous" nomodule=""></script>
Diff for withRouter.html
@@ -14,13 +14,13 @@
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
+        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.89ebf3e33b855a0478ce.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.8fbe72179a6a785d9e96.module.js"
+        <link rel="preload" href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.710f68a91537b45d6153.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.89ebf3e33b855a0478ce.module.js"
+        <link rel="preload" href="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.13a61a2410d3fe9a0cb1.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/runtime/main-1cfe777cfca3f99f33b3.module.js"
+        <link rel="preload" href="/_next/static/runtime/main-dc4f7a3933a6ad83aa00.module.js"
         as="script" crossorigin="anonymous" />
     </head>
     
@@ -34,7 +34,6 @@
         <script crossorigin="anonymous" nomodule="">
             !function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
         </script>
-        <script crossorigin="anonymous" nomodule="" src="/_next/static/runtime/polyfills-46d78823406a20028351.js"></script>
         <script async="" data-next-page="/withRouter" src="/_next/static/BUILD_ID/pages/withRouter.js"
         crossorigin="anonymous" nomodule=""></script>
         <script async="" data-next-page="/withRouter" src="/_next/static/BUILD_ID/pages/withRouter.module.js"
@@ -53,19 +52,21 @@
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/chunks/commons.ae25279399a9d28ee270.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.590e9c97bed24d8fff40.js"
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.cf0e4a968d6e5bfa6e29.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.dda3a797bb804537ed85.module.js"
+        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.89ebf3e33b855a0478ce.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.c29872cbf1d93285c3d9.js"
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.4c2a53afddb0008e3250.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.8fbe72179a6a785d9e96.module.js"
+        <script src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.710f68a91537b45d6153.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.89ebf3e33b855a0478ce.module.js"
+        <script src="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.a9e45275d81f65ce1b3a.js"
+        async="" crossorigin="anonymous" nomodule=""></script>
+        <script src="/_next/static/chunks/16b1a72255206b7853bf6603dc58ec83de39b142.13a61a2410d3fe9a0cb1.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/runtime/main-aeb145aa3b20f0a133be.js"
+        <script src="/_next/static/runtime/main-2f720c24f7654598cf60.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/runtime/main-1cfe777cfca3f99f33b3.module.js"
+        <script src="/_next/static/runtime/main-dc4f7a3933a6ad83aa00.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/BUILD_ID/_buildManifest.js" async=""
         crossorigin="anonymous" nomodule=""></script>

Serverless Mode (Increase detected ⚠️)
General Overall decrease ✓
zeit/next.js canary DevSpeak/next.js canary Change
buildDuration 13.7s 13.2s -513ms
nodeModulesSize 48.9 MB 48.9 MB -29.5 kB
Client Bundles (main, webpack, commons) Overall increase ⚠️
zeit/next.js canary DevSpeak/next.js canary Change
main-HASH.js 14.8 kB 16.6 kB ⚠️ +1.73 kB
main-HASH.js gzip 5.12 kB 5.86 kB ⚠️ +749 B
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
16b1a7225520..641cd3dea.js 19.8 kB N/A N/A
16b1a7225520..3dea.js gzip 7.28 kB N/A N/A
314e4c089430..de6eb480f.js 7.9 kB N/A N/A
314e4c089430..480f.js gzip 3.31 kB N/A N/A
commons.HASH.js 11.3 kB 11.3 kB
commons.HASH.js gzip 4.23 kB 4.23 kB
de003c3a9d30..39988e4af.js 33.1 kB N/A N/A
de003c3a9d30..e4af.js gzip 12.3 kB N/A N/A
framework.1b..cdcfe1283.js 125 kB 125 kB
framework.1b..1283.js gzip 39.4 kB 39.4 kB
16b1a7225520..7459734ec.js N/A 20.1 kB N/A
16b1a7225520..34ec.js gzip N/A 7.38 kB N/A
4952ddcd88e7..bfe360fe6.js N/A 10.5 kB N/A
4952ddcd88e7..0fe6.js gzip N/A 4.06 kB N/A
de003c3a9d30..9e9c1d310.js N/A 28.6 kB N/A
de003c3a9d30..d310.js gzip N/A 10.8 kB N/A
Overall change 214 kB 214 kB ⚠️ +1.73 kB
Client Bundles (main, webpack, commons) Modern Overall decrease ✓
zeit/next.js canary DevSpeak/next.js canary Change
main-HASH.module.js 14.1 kB 14.1 kB -24 B
main-HASH.module.js gzip 5.3 kB 5.28 kB -16 B
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH..dule.js gzip 746 B 746 B
16b1a7225520..68.module.js 16 kB N/A N/A
16b1a7225520..dule.js gzip 6.17 kB N/A N/A
4952ddcd88e7..4a.module.js 12.8 kB 12.8 kB
4952ddcd88e7..dule.js gzip 4.75 kB 4.75 kB
de003c3a9d30..36.module.js 22.2 kB N/A N/A
de003c3a9d30..dule.js gzip 8.71 kB N/A N/A
framework.5b..d3.module.js 125 kB 125 kB
framework.5b..dule.js gzip 39.4 kB 39.4 kB
16b1a7225520..0d.module.js N/A 16.2 kB N/A
16b1a7225520..dule.js gzip N/A 6.22 kB N/A
de003c3a9d30..c0.module.js N/A 22.1 kB N/A
de003c3a9d30..dule.js gzip N/A 8.68 kB N/A
Overall change 192 kB 192 kB -24 B
Client Pages Overall decrease ✓
zeit/next.js canary DevSpeak/next.js canary Change
_app.js 7.71 kB 1.63 kB -6.08 kB
_app.js gzip 3.22 kB 788 B -2.43 kB
_error.js 14.9 kB 12.3 kB -2.64 kB
_error.js gzip 5.57 kB 4.79 kB -783 B
hooks.js 1.92 kB 1.92 kB
hooks.js gzip 941 B 941 B
index.js 318 B 318 B
index.js gzip 222 B 222 B
link.js 4.05 kB 5.81 kB ⚠️ +1.76 kB
link.js gzip 1.81 kB 2.56 kB ⚠️ +755 B
routerDirect.js 411 B 413 B ⚠️ +2 B
routerDirect.js gzip 283 B 285 B ⚠️ +2 B
withRouter.js 421 B 423 B ⚠️ +2 B
withRouter.js gzip 282 B 284 B ⚠️ +2 B
Overall change 29.7 kB 22.8 kB -6.96 kB
Client Pages Modern
zeit/next.js canary DevSpeak/next.js canary Change
_app.module.js 1.54 kB 1.54 kB
_app.module.js gzip 759 B 759 B
_error.module.js 10.5 kB 10.5 kB
_error.module.js gzip 4.26 kB 4.26 kB
hooks.module.js 1.52 kB 1.52 kB
hooks.module.js gzip 792 B 792 B
index.module.js 292 B 292 B
index.module.js gzip 223 B 223 B
link.module.js 5.49 kB 5.49 kB
link.module.js gzip 2.47 kB 2.47 kB
routerDirect.module.js 399 B 399 B
routerDirect..dule.js gzip 285 B 285 B
withRouter.module.js 409 B 409 B
withRouter.m..dule.js gzip 282 B 282 B
Overall change 20.2 kB 20.2 kB
Client Build Manifests Overall decrease ✓
zeit/next.js canary DevSpeak/next.js canary Change
_buildManifest.js 353 B 244 B -109 B
_buildManifest.js gzip 260 B 201 B -59 B
_buildManifest.module.js 251 B 251 B
_buildManife..dule.js gzip 208 B 209 B ⚠️ +1 B
Overall change 604 B 495 B -109 B
Serverless bundles Overall decrease ✓
zeit/next.js canary DevSpeak/next.js canary Change
_error.js 243 kB 241 kB -2.05 kB
_error.js gzip 64.8 kB 64.4 kB -409 B
hooks.html 4.04 kB 4.08 kB ⚠️ +39 B
hooks.html gzip 1.05 kB 1.03 kB -16 B
index.js 244 kB 241 kB -2.11 kB
index.js gzip 65 kB 64.5 kB -475 B
link.js 276 kB 274 kB -1.79 kB
link.js gzip 73.8 kB 73.4 kB -404 B
routerDirect.js 269 kB 267 kB -1.79 kB
routerDirect.js gzip 71.9 kB 71.5 kB -401 B
withRouter.js 269 kB 267 kB -1.79 kB
withRouter.js gzip 72 kB 71.6 kB -402 B
Overall change 1.3 MB 1.29 MB -9.49 kB

Commit: 725c7bd

// Already signed in? No need to continue.
// Throw them back to the main page
if (data.me) {
// If not signed in, send them somewhere more useful
Copy link
Member

Choose a reason for hiding this comment

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

It looks like registering accounts isn't working
Screen Shot 2019-11-10 at 23 41 44

To get this example running locally, you will need to create a graph.cool
account, and provide [the `project.graphcool` schema](https://github.com/zeit/next.js/blob/master/examples/with-apollo-auth/project.graphcool).
To get this example running locally, you will need to create a Postgres database, and database url in [the `schema.prisma` file](https://github.com/zeit/next.js/blob/master/examples/with-apollo-auth/prisma/schema.prisma).
Photon supports other databases if you don't wish to use Postgres see [Photon](https://photonjs.prisma.io/) for more information.

Copy link
Member

Choose a reason for hiding this comment

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

Might be good to add dummy login credentials if we're going to leave this database in the example 🤔

@Timer Timer added the examples Issue/PR related to examples label Nov 11, 2019

const photon = new Photon()

const JWT_SECRET = 'PleaseUseBetterStorageForThisSecret'
Copy link
Contributor

Choose a reason for hiding this comment

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

@DevSpeak why not stick this in env?

Query: {
async me (parent, args, context) {
const id = context.user
const user = await context.photon.users.findOne({ where: { id } }).then(user => user)
Copy link
Contributor

Choose a reason for hiding this comment

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

is the .then(user => user) necessary?

Copy link
Member

@Timer Timer left a comment

Choose a reason for hiding this comment

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

Hey, we really appreciate the PR but since the current example is completely broken we've decided to just remove it.

Since the new example requires a database, we think it'd be better suited for a list like Awesome Next.js:
https://github.com/unicodeveloper/awesome-nextjs

@Timer Timer added this to the 9.1.5 milestone Nov 25, 2019
@Timer Timer closed this in #9516 Nov 25, 2019
@zuqini
Copy link

zuqini commented Nov 27, 2019

@Timer Hi! I was just wondering if there's any plans to put a new with-apollo-auth example up in the future?

@johnpolacek
Copy link
Contributor

Serverless auth/accounts is the dream...

@Timer
Copy link
Member

Timer commented Dec 2, 2019

We'd be happy to accept an example that doesn't require a 3rd party database. A local docker-compose.yml or something would do.

@lifeiscontent
Copy link
Contributor

@Timer I'd be willing to put it together, is there a preferred DB binding the zeit community uses? e.g.

Mongo, Postgres, Knex, Photon, etc.

@lfades
Copy link
Member

lfades commented Dec 4, 2019

@lifeiscontent Whatever that fits better for an example, it should be easy to setup so users can focus in what's important (the auth with apollo)

@raduchiriac
Copy link

@lifeiscontent looking forward to see this take shape

@lifeiscontent
Copy link
Contributor

@raduchiriac I’ve been collecting learning materials so I can craft something nice for the community. Hopefully I’ll have a POC soonish

@lifeiscontent
Copy link
Contributor

Hey guys, I've implemented a PR here: #9913 feel free to leave comments.

CC: @raduchiriac @johnpolacek @zuqini @DevSpeak

@vercel vercel locked as resolved and limited conversation to collaborators Jan 31, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
examples Issue/PR related to examples
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

8 participants