UNPKG

moose-remote-components

Version:

Figuring out how to export components onto npm, to be used in other projects

294 lines (239 loc) 24.5 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = exports.AuthController = void 0; var _react = _interopRequireWildcard(require("react")); var _MyNavbar = _interopRequireDefault(require("./MyNavbar")); var _LoginModal = _interopRequireDefault(require("../../modals/LoginModal")); var _RegisterModal = _interopRequireDefault(require("../../modals/RegisterModal")); var _UserModal = _interopRequireDefault(require("../../modals/UserModal")); var _auth = _interopRequireDefault(require("../../utils/auth")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj["default"] = obj; return newObj; } } function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 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; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } 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); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } /* PROPS --------------------------------- * ShowNavbar (True or False value. If True a navbar is rendered. *default false*) * The corresponding props for the navbar must be provided if shown: * history (React router's history obj) */ var AuthController = /*#__PURE__*/ function (_Component) { _inherits(AuthController, _Component); function AuthController() { var _getPrototypeOf2; var _this; _classCallCheck(this, AuthController); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(AuthController)).call.apply(_getPrototypeOf2, [this].concat(args))); _defineProperty(_assertThisInitialized(_this), "state", { display_login_modal: false, display_register_modal: false, display_user_modal: false, login_error: "", register_error: "", register_invalid_fields: [], register_success: "" }); _defineProperty(_assertThisInitialized(_this), "login", function (user_credentials) { _auth["default"].login(user_credentials, function (res) { _this.setState({ display_login_modal: false }); _this.setState({ login_error: "" }); }, function (err) { _this.setState({ login_error: "Invalid email/password combination!" }); }); }); _defineProperty(_assertThisInitialized(_this), "register", function (user_credentials) { _auth["default"].register(user_credentials, function (res) { console.log(res); _this.setState({ register_error: "" }); _this.setState({ register_success: "You've been successfully registered!" }); }, function (err) { if (err.msg === "invalid fields") { _this.setState({ register_error: "Please fix the following: " }); _this.setState({ register_invalid_fields: err.invalid_fields }); } if (err.msg === "duplicate fields") { var str = ""; err.duplicate_fields.forEach(function (field) { console.log(field); str += field + ", "; }); str = str.substring(0, str.length - 2); str += ' is already in use!'; _this.setState({ register_error: str }); _this.setState({ register_invalid_fields: null }); } }); }); _defineProperty(_assertThisInitialized(_this), "logout", function () { _auth["default"].logout(); _this.forceUpdate(); }); _defineProperty(_assertThisInitialized(_this), "render_navbar", function () { if (!_this.props.ShowNavbar) return null; return _react["default"].createElement(_MyNavbar["default"], { Variant: _this.props.Variant, BrandName: _this.props.BrandName, OnBrandNameClick: function OnBrandNameClick() { return _this.props.history.push('/'); }, authenticated: _auth["default"].isAuthenticated(), OnLoginClick: function OnLoginClick() { return _this.open_modal("login"); }, user: _auth["default"].getCachedUser(), OnUserTagClick: function OnUserTagClick() { return _this.open_modal("user"); }, CustomLinks: _this.props.CustomLinks, history: _this.props.history }); }); _defineProperty(_assertThisInitialized(_this), "render_login_modal", function () { return _react["default"].createElement(_LoginModal["default"], { Variant: _this.props.Variant, hidden: _auth["default"].isAuthenticated(), show: _this.state.display_login_modal, onHide: _this.close_all_modals, login: _this.login, register: function register() { return _this.open_modal("register"); }, error: _this.state.login_error }); }); _defineProperty(_assertThisInitialized(_this), "render_register_modal", function () { return _react["default"].createElement(_RegisterModal["default"], { Variant: _this.props.Variant, hidden: _auth["default"].isAuthenticated(), show: _this.state.display_register_modal, onHide: _this.close_all_modals, login: function login() { return _this.open_modal("login"); }, register: _this.register, error: _this.state.register_error, invalid_fields: _this.state.register_invalid_fields, success: _this.state.register_success }); }); _defineProperty(_assertThisInitialized(_this), "render_user_modal", function () { return _react["default"].createElement(_UserModal["default"], { Variant: _this.props.Variant, hidden: !_auth["default"].isAuthenticated(), show: _this.state.display_user_modal, onHide: _this.close_all_modals, history: _this.props.history, logout: _this.logout }); }); _defineProperty(_assertThisInitialized(_this), "close_all_modals", /*#__PURE__*/ _asyncToGenerator( /*#__PURE__*/ regeneratorRuntime.mark(function _callee() { return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.next = 2; return _this.setState({ display_login_modal: false }); case 2: _context.next = 4; return _this.setState({ display_register_modal: false }); case 4: _context.next = 6; return _this.setState({ display_user_modal: false }); case 6: case "end": return _context.stop(); } } }, _callee); }))); _defineProperty(_assertThisInitialized(_this), "open_modal", /*#__PURE__*/ function () { var _ref2 = _asyncToGenerator( /*#__PURE__*/ regeneratorRuntime.mark(function _callee2(type) { return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: _context2.next = 2; return _this.close_all_modals(); case 2: if (type === "login") _this.setState({ display_login_modal: true });else if (type === "register") _this.setState({ display_register_modal: true });else if (type === "user") _this.setState({ display_user_modal: true }); case 3: case "end": return _context2.stop(); } } }, _callee2); })); return function (_x) { return _ref2.apply(this, arguments); }; }()); return _this; } _createClass(AuthController, [{ key: "render", value: function render() { return _react["default"].createElement("div", null, this.render_navbar(), this.render_login_modal(), this.render_register_modal(), this.render_user_modal()); } }]); return AuthController; }(_react.Component); exports.AuthController = AuthController; var _default = AuthController; exports["default"] = _default; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0F1dGgvQXV0aENvbnRyb2xsZXIuanMiXSwibmFtZXMiOlsiQXV0aENvbnRyb2xsZXIiLCJkaXNwbGF5X2xvZ2luX21vZGFsIiwiZGlzcGxheV9yZWdpc3Rlcl9tb2RhbCIsImRpc3BsYXlfdXNlcl9tb2RhbCIsImxvZ2luX2Vycm9yIiwicmVnaXN0ZXJfZXJyb3IiLCJyZWdpc3Rlcl9pbnZhbGlkX2ZpZWxkcyIsInJlZ2lzdGVyX3N1Y2Nlc3MiLCJ1c2VyX2NyZWRlbnRpYWxzIiwiYXV0aCIsImxvZ2luIiwicmVzIiwic2V0U3RhdGUiLCJlcnIiLCJyZWdpc3RlciIsImNvbnNvbGUiLCJsb2ciLCJtc2ciLCJpbnZhbGlkX2ZpZWxkcyIsInN0ciIsImR1cGxpY2F0ZV9maWVsZHMiLCJmb3JFYWNoIiwiZmllbGQiLCJzdWJzdHJpbmciLCJsZW5ndGgiLCJsb2dvdXQiLCJmb3JjZVVwZGF0ZSIsInByb3BzIiwiU2hvd05hdmJhciIsIlZhcmlhbnQiLCJCcmFuZE5hbWUiLCJoaXN0b3J5IiwicHVzaCIsImlzQXV0aGVudGljYXRlZCIsIm9wZW5fbW9kYWwiLCJnZXRDYWNoZWRVc2VyIiwiQ3VzdG9tTGlua3MiLCJzdGF0ZSIsImNsb3NlX2FsbF9tb2RhbHMiLCJ0eXBlIiwicmVuZGVyX25hdmJhciIsInJlbmRlcl9sb2dpbl9tb2RhbCIsInJlbmRlcl9yZWdpc3Rlcl9tb2RhbCIsInJlbmRlcl91c2VyX21vZGFsIiwiQ29tcG9uZW50Il0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBOzs7Ozs7O0lBUWFBLGM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs0REFFSjtBQUNQQyxNQUFBQSxtQkFBbUIsRUFBRSxLQURkO0FBRVBDLE1BQUFBLHNCQUFzQixFQUFFLEtBRmpCO0FBR1BDLE1BQUFBLGtCQUFrQixFQUFFLEtBSGI7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c0IsRUFBRTtBQUF6QixpQkFBZCxFQUF6QixLQUNBLElBQUlxQyxJQUFJLEtBQUssTUFBYixFQUFxQixNQUFLM0IsUUFBTCxDQUFjO0FBQUNULGtCQUFBQSxrQkFBa0IsRUFBRTtBQUFyQixpQkFBZDs7QUFKZDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxPOzs7Ozs7Ozs7Ozs7NkJBT0o7QUFDUixhQUNDLDZDQUNFLEtBQUtxQyxhQUFMLEVBREYsRUFFRSxLQUFLQyxrQkFBTCxFQUZGLEVBR0UsS0FBS0MscUJBQUwsRUFIRixFQUlFLEtBQUtDLGlCQUFMLEVBSkYsQ0FERDtBQVFBOzs7O0VBeklrQ0MsZ0I7OztlQTRJckI1QyxjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IENvbXBvbmVudCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBNeU5hdmJhciBmcm9tICcuL015TmF2YmFyJztcbmltcG9ydCBMb2dpbk1vZGFsIGZyb20gJy4uLy4uL21vZGFscy9Mb2dpbk1vZGFsJztcbmltcG9ydCBSZWdpc3Rlck1vZGFsIGZyb20gJy4uLy4uL21vZGFscy9SZWdpc3Rlck1vZGFsJztcbmltcG9ydCBVc2VyTW9kYWwgZnJvbSAnLi4vLi4vbW9kYWxzL1VzZXJNb2RhbCc7XG5pbXBvcnQgYXV0aCBmcm9tICcuLi8uLi91dGlscy9hdXRoJztcblxuLypcblx0UFJPUFNcblx0LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdCogU2hvd05hdmJhciAoVHJ1ZSBvciBGYWxzZSB2YWx1ZS4gSWYgVHJ1ZSBhIG5hdmJhciBpcyByZW5kZXJlZC4gKmRlZmF1bHQgZmFsc2UqKVxuXHRcdCogVGhlIGNvcnJlc3BvbmRpbmcgcHJvcHMgZm9yIHRoZSBuYXZiYXIgbXVzdCBiZSBwcm92aWRlZCBpZiBzaG93bjpcblx0KiBoaXN0b3J5IChSZWFjdCByb3V0ZXIncyBoaXN0b3J5IG9iailcbiovXG5cbmV4cG9ydCBjbGFzcyBBdXRoQ29udHJvbGxlciBleHRlbmRzIENvbXBvbmVudCB7XG5cblx0c3RhdGUgPSB7XG5cdFx0ZGlzcGxheV9sb2dpbl9tb2RhbDogZmFsc2UsXG5cdFx0ZGlzcGxheV9yZWdpc3Rlcl9tb2RhbDogZmFsc2UsXG5cdFx0ZGlzcGxheV91c2VyX21vZGFsOiBmYWxzZSxcblx0XHRsb2dpbl9lcnJvcjogXCJcIixcblx0XHRyZWdpc3Rlcl9lcnJvcjogXCJcIixcblx0XHRyZWdpc3Rlcl9pbnZhbGlkX2ZpZWxkczogW10sXG5cdFx0cmVnaXN0ZXJfc3VjY2VzczogXCJcIixcblx0fVxuXG5cdGxvZ2luID0gdXNlcl9jcmVkZW50aWFscyA9PiB7XG5cdFx0YXV0aC5sb2dpbihcblx0XHRcdHVzZXJfY3JlZGVudGlhbHMsXG5cdFx0XHRyZXMgPT4ge1xuXHRcdFx0XHR0aGlzLnNldFN0YXRlKHtkaXNwbGF5X2xvZ2luX21vZGFsOiBmYWxzZX0pO1xuXHRcdFx0XHR0aGlzLnNldFN0YXRlKHtsb2dpbl9lcnJvcjogXCJcIn0pO1xuXHRcdFx0fSxcblx0XHRcdGVyciA9PiB7XG5cdFx0XHRcdHRoaXMuc2V0U3RhdGUoe2xvZ2luX2Vycm9yOiBcIkludmFsaWQgZW1haWwvcGFzc3dvcmQgY29tYmluYXRpb24hXCJ9KTtcblx0XHRcdH1cblx0XHQpXG5cdH1cblx0cmVnaXN0ZXIgPSB1c2VyX2NyZWRlbnRpYWxzID0+IHtcblx0XHRhdXRoLnJlZ2lzdGVyKFxuXHRcdFx0dXNlcl9jcmVkZW50aWFscyxcblx0XHRcdHJlcyA9PiB7XG5cdFx0XHRcdGNvbnNvbGUubG9nKHJlcyk7XG5cdFx0XHRcdHRoaXMuc2V0U3RhdGUoe3JlZ2lzdGVyX2Vycm9yOiBcIlwifSk7XG5cdFx0XHRcdHRoaXMuc2V0U3RhdGUoe3JlZ2lzdGVyX3N1Y2Nlc3M6IFwiWW91J3ZlIGJlZW4gc3VjY2Vzc2Z1bGx5IHJlZ2lzdGVyZWQhXCJ9KTtcblx0XHRcdH0sXG5cdFx0XHRlcnIgPT4ge1xuXHRcdFx0XHRpZiAoZXJyLm1zZyA9PT0gXCJpbnZhbGlkIGZpZWxkc1wiKSB7XG5cdFx0XHRcdFx0dGhpcy5zZXRTdGF0ZSh7IHJlZ2lzdGVyX2Vycm9yOiBcIlBsZWFzZSBmaXggdGhlIGZvbGxvd2luZzogXCIgfSk7XG5cdFx0XHRcdFx0dGhpcy5zZXRTdGF0ZSh7IHJlZ2lzdGVyX2ludmFsaWRfZmllbGRzOiBlcnIuaW52YWxpZF9maWVsZHMgfSk7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKGVyci5tc2cgPT09IFwiZHVwbGljYXRlIGZpZWxkc1wiKSB7XG5cdFx0XHRcdFx0bGV0IHN0ciA9IFwiXCI7XG5cdFx0XHRcdFx0ZXJyLmR1cGxpY2F0ZV9maWVsZHMuZm9yRWFjaCgoZmllbGQpID0+IHtcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKGZpZWxkKVxuXHRcdFx0XHRcdFx0c3RyICs9IGZpZWxkICsgXCIsIFwiO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdHN0ciA9IHN0ci5zdWJzdHJpbmcoMCwgc3RyLmxlbmd0aCAtIDIpO1xuXHRcdFx0XHRcdHN0ciArPSAnIGlzIGFscmVhZHkgaW4gdXNlISc7XG5cdFx0XHRcdFx0dGhpcy5zZXRTdGF0ZSh7IHJlZ2lzdGVyX2Vycm9yOiBzdHIgfSk7XG5cdFx0XHRcdFx0dGhpcy5zZXRTdGF0ZSh7IHJlZ2lzdGVyX2ludmFsaWRfZmllbGRzOiBudWxsIH0pO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0KVxuXHR9XG5cdGxvZ291dCA9ICgpID0+IHtcblx0XHRhdXRoLmxvZ291dCgpXG5cdFx0dGhpcy5mb3JjZVVwZGF0ZSgpO1xuXHR9XG5cblx0cmVuZGVyX25hdmJhciA9ICgpID0+IHtcblx0XHRpZiAoIXRoaXMucHJvcHMuU2hvd05hdmJhcikgcmV0dXJuIG51bGw7XG5cdFx0cmV0dXJuIChcblx0XHRcdDxNeU5hdmJhciBcblx0XHRcdFx0VmFyaWFudD17dGhpcy5wcm9wcy5WYXJpYW50fVxuXHRcdFx0XHRCcmFuZE5hbWU9e3RoaXMucHJvcHMuQnJhbmROYW1lfVxuXHRcdFx0XHRPbkJyYW5kTmFtZUNsaWNrPXsoKSA9PiB0aGlzLnByb3BzLmhpc3RvcnkucHVzaCgnLycpfVxuXHRcdFx0XHRhdXRoZW50aWNhdGVkPXthdXRoLmlzQXV0aGVudGljYXRlZCgpfVxuXHRcdFx0XHRPbkxvZ2luQ2xpY2s9eygpID0+IHRoaXMub3Blbl9tb2RhbChcImxvZ2luXCIpfVxuXHRcdFx0XHR1c2VyPXthdXRoLmdldENhY2hlZFVzZXIoKX1cblx0XHRcdFx0T25Vc2VyVGFnQ2xpY2s9eygpID0+IHRoaXMub3Blbl9tb2RhbChcInVzZXJcIil9XG5cdFx0XHRcdEN1c3RvbUxpbmtzPXt0aGlzLnByb3BzLkN1c3RvbUxpbmtzfVxuXHRcdFx0XHRoaXN0b3J5PXt0aGlzLnByb3BzLmhpc3Rvcnl9XG5cdFx0XHQvPlxuXHRcdClcblx0fVxuXG5cdHJlbmRlcl9sb2dpbl9tb2RhbCA9ICgpID0+IHtcblx0XHRyZXR1cm4gKFxuXHRcdFx0PExvZ2luTW9kYWxcblx0XHRcdFx0VmFyaWFudD17dGhpcy5wcm9wcy5WYXJpYW50fVxuXHRcdFx0XHRoaWRkZW49e2F1dGguaXNBdXRoZW50aWNhdGVkKCl9XG5cdFx0XHRcdHNob3c9e3RoaXMuc3RhdGUuZGlzcGxheV9sb2dpbl9tb2RhbH1cblx0XHRcdFx0b25IaWRlPXt0aGlzLmNsb3NlX2FsbF9tb2RhbHN9XG5cdFx0XHRcdGxvZ2luPXt0aGlzLmxvZ2lufVxuXHRcdFx0XHRyZWdpc3Rlcj17KCkgPT4gdGhpcy5vcGVuX21vZGFsKFwicmVnaXN0ZXJcIil9XG5cdFx0XHRcdGVycm9yPXt0aGlzLnN0YXRlLmxvZ2luX2Vycm9yfSBcblx0XHRcdC8+XG5cdFx0KVxuXHR9XG5cblx0cmVuZGVyX3JlZ2lzdGVyX21vZGFsID0gKCkgPT4ge1xuXHRcdHJldHVybiAoXG5cdFx0XHQ8UmVnaXN0ZXJNb2RhbCBcblx0XHRcdFx0VmFyaWFudD17dGhpcy5wcm9wcy5WYXJpYW50fVxuXHRcdFx0XHRoaWRkZW49e2F1dGguaXNBdXRoZW50aWNhdGVkKCl9IFxuXHRcdFx0XHRzaG93PXt0aGlzLnN0YXRlLmRpc3BsYXlfcmVnaXN0ZXJfbW9kYWx9IFxuXHRcdFx0XHRvbkhpZGU9e3RoaXMuY2xvc2VfYWxsX21vZGFsc30gXG5cdFx0XHRcdGxvZ2luPXsoKSA9PiB0aGlzLm9wZW5fbW9kYWwoXCJsb2dpblwiKX0gXG5cdFx0XHRcdHJlZ2lzdGVyPXt0aGlzLnJlZ2lzdGVyfSBcblx0XHRcdFx0ZXJyb3I9e3RoaXMuc3RhdGUucmVnaXN0ZXJfZXJyb3J9IFxuXHRcdFx0XHRpbnZhbGlkX2ZpZWxkcz17dGhpcy5zdGF0ZS5yZWdpc3Rlcl9pbnZhbGlkX2ZpZWxkc30gXG5cdFx0XHRcdHN1Y2Nlc3M9e3RoaXMuc3RhdGUucmVnaXN0ZXJfc3VjY2Vzc31cblx0XHRcdC8+XG5cdFx0KVxuXHR9XG5cblx0cmVuZGVyX3VzZXJfbW9kYWwgPSAoKSA9PiB7XG5cdFx0cmV0dXJuIChcblx0XHRcdDxVc2VyTW9kYWwgXG5cdFx0XHRcdFZhcmlhbnQ9e3RoaXMucHJvcHMuVmFyaWFudH1cblx0XHRcdFx0aGlkZGVuPXshYXV0aC5pc0F1dGhlbnRpY2F0ZWQoKX0gXG5cdFx0XHRcdHNob3c9e3RoaXMuc3RhdGUuZGlzcGxheV91c2VyX21vZGFsfSBcblx0XHRcdFx0b25IaWRlPXt0aGlzLmNsb3NlX2FsbF9tb2RhbHN9XG5cdFx0XHRcdGhpc3Rvcnk9e3RoaXMucHJvcHMuaGlzdG9yeX0gXG5cdFx0XHRcdGxvZ291dD17dGhpcy5sb2dvdXR9IFxuXHRcdFx0Lz5cblx0XHQpXG5cdH1cblxuXHRjbG9zZV9hbGxfbW9kYWxzID0gYXN5bmMgKCkgPT4ge1xuXHRcdGF3YWl0IHRoaXMuc2V0U3RhdGUoe2Rpc3BsYXlfbG9naW5fbW9kYWw6IGZhbHNlfSk7XG5cdFx0YXdhaXQgdGhpcy5zZXRTdGF0ZSh7ZGlzcGxheV9yZWdpc3Rlcl9tb2RhbDogZmFsc2V9KTtcblx0XHRhd2FpdCB0aGlzLnNldFN0YXRlKHtkaXNwbGF5X3VzZXJfbW9kYWw6IGZhbHNlfSk7XG5cdH1cblx0b3Blbl9tb2RhbCA9IGFzeW5jICh0eXBlKSA9PiB7XG5cdFx0YXdhaXQgdGhpcy5jbG9zZV9hbGxfbW9kYWxzKCk7XG5cdFx0aWYgKHR5cGUgPT09IFwibG9naW5cIikgdGhpcy5zZXRTdGF0ZSh7ZGlzcGxheV9sb2dpbl9tb2RhbDogdHJ1ZX0pO1xuXHRcdGVsc2UgaWYgKHR5cGUgPT09IFwicmVnaXN0ZXJcIikgdGhpcy5zZXRTdGF0ZSh7ZGlzcGxheV9yZWdpc3Rlcl9tb2RhbDogdHJ1ZX0pO1xuXHRcdGVsc2UgaWYgKHR5cGUgPT09IFwidXNlclwiKSB0aGlzLnNldFN0YXRlKHtkaXNwbGF5X3VzZXJfbW9kYWw6IHRydWV9KTtcblx0fVxuXG5cdHJlbmRlcigpIHtcblx0XHRyZXR1cm4gKFxuXHRcdFx0PGRpdj5cblx0XHRcdFx0e3RoaXMucmVuZGVyX25hdmJhcigpfVxuXHRcdFx0XHR7dGhpcy5yZW5kZXJfbG9naW5fbW9kYWwoKX1cblx0XHRcdFx0e3RoaXMucmVuZGVyX3JlZ2lzdGVyX21vZGFsKCl9XG5cdFx0XHRcdHt0aGlzLnJlbmRlcl91c2VyX21vZGFsKCl9XG5cdFx0XHQ8L2Rpdj5cblx0XHQpXG5cdH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgQXV0aENvbnRyb2xsZXI7Il19