From 67a84a9c587ae00fffd63a48a3cffe34b0c63a37 Mon Sep 17 00:00:00 2001 From: Jean Ouina Date: Wed, 3 Jun 2020 21:03:44 +0200 Subject: [PATCH] what am i doing --- BetterDiscordApp/js/main.js | 2 +- BetterDiscordApp/js/main.min.js | 2 +- BetterDiscordApp/src/ui/AccountInfos.jsx | 18 ++- BetterDiscordApp/webpack.config.js | 3 +- .../core/app/BetterDiscord/auth/index.css | 83 ++++++++++++++ .../core/app/BetterDiscord/auth/index.html | 25 +++++ .../core/app/BetterDiscord/auth/preload.js | 63 +++++++++++ .../core/app/BetterDiscord/index.js | 103 +++++++++++++++++- .../core/app/BetterDiscord/tokenLogin.js | 3 +- .../core/app/BetterDiscord/tokenLogin.jsx | 4 +- package-lock.json | 13 +++ package.json | 2 + 12 files changed, 305 insertions(+), 16 deletions(-) create mode 100644 modules/discord_desktop_core/core/app/BetterDiscord/auth/index.css create mode 100644 modules/discord_desktop_core/core/app/BetterDiscord/auth/index.html create mode 100644 modules/discord_desktop_core/core/app/BetterDiscord/auth/preload.js diff --git a/BetterDiscordApp/js/main.js b/BetterDiscordApp/js/main.js index 1cbd94b..342746e 100644 --- a/BetterDiscordApp/js/main.js +++ b/BetterDiscordApp/js/main.js @@ -479,7 +479,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) * /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return V2C_AccountInfos; });\n/* harmony import */ var _modules_v2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../modules/v2 */ \"./src/modules/v2.js\");\n/* harmony import */ var _settingsTitle__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./settingsTitle */ \"./src/ui/settingsTitle.js\");\n/* harmony import */ var _settingsGroup__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./settingsGroup */ \"./src/ui/settingsGroup.js\");\n/* harmony import */ var _modules_dataStore__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../modules/dataStore */ \"./src/modules/dataStore.js\");\n/* harmony import */ var _0globals__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../0globals */ \"./src/0globals.js\");\n/* harmony import */ var _modules_CustomRichPresence__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../modules/CustomRichPresence */ \"./src/modules/CustomRichPresence.js\");\n/* harmony import */ var _select__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./select */ \"./src/ui/select.jsx\");\n/* harmony import */ var _timestampRender__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./timestampRender */ \"./src/ui/timestampRender.js\");\n/* harmony import */ var _modules_domtools__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../modules/domtools */ \"./src/modules/domtools.js\");\n\n\n\n\n\n\n\n\n\n/**\r\n * @type {typeof import(\"react\")}\r\n */\n\nconst React = _modules_v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].React;\nlet contentModule = BDModules.get(e => e.contentColumn)[0];\nlet marginModule2 = BDModules.get(e => e.defaultMarginh5)[0];\nlet colorModule = BDModules.get(e => e.colorStandard)[0];\nlet sizeModule = BDModules.get(e => e.size32)[0];\nconst scrollbarModule1 = BDModules.get(e => e.scrollbarGhostHairline)[0];\nconst GuildModule = BDModules.get(e => e.default && e.default.getGuilds)[0].default;\nconst relationShipModule = BDModules.get(e => e.default && e.default.getRelationships)[0].default;\nconst sessionModule = BDModules.get(e => e.default && e.default.getSessions)[0].default;\nconst userModule = BDModules.get(e => e.default && e.default.getCurrentUser)[0].default;\nclass V2C_AccountInfos extends React.Component {\n constructor(props) {\n super(props);\n }\n\n render() {\n return React.createElement(\"div\", {\n className: contentModule.contentColumn + \" \" + contentModule.contentColumnDefault + \" content-column default\",\n style: {\n padding: \"60px 40px 0px\"\n }\n }, React.createElement(_settingsTitle__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n text: \"Account Infos\"\n }), React.createElement(\"div\", null, React.createElement(\"h5\", {\n className: colorModule.colorStandard + \" \" + sizeModule.size14 + \" \" + marginModule2.h5 + \" \" + marginModule2.defaultMarginh5\n }, \"Profile\"), React.createElement(CodeContent, {\n content: this.getProfileValue(),\n language: \"diff\"\n }), React.createElement(\"h5\", {\n className: colorModule.colorStandard + \" \" + sizeModule.size14 + \" \" + marginModule2.h5 + \" \" + marginModule2.defaultMarginh5\n }, \"Statistics\"), React.createElement(CodeContent, {\n content: this.getStatistics(),\n language: \"diff\"\n }), React.createElement(\"h5\", {\n className: colorModule.colorStandard + \" \" + sizeModule.size14 + \" \" + marginModule2.h5 + \" \" + marginModule2.defaultMarginh5\n }, \"Connected Sessions\"), React.createElement(CodeContent, {\n content: this.getSessionValue(),\n language: \"diff\"\n })), React.createElement(\"div\", {\n className: BDModules.get(e => e.marginBottom20)[0].marginBottom20\n }));\n }\n\n getSessionValue() {\n const sessionsRaw = sessionModule.getSessions();\n const sessions = Object.keys(sessionsRaw).filter(e => e !== \"all\").map(e => sessionsRaw[e]);\n if (sessions.length === 0) return \"- No session detected. Please try in a few seconds\";\n return sessions.map(e => {\n return `+ id: ${e.sessionId}\n+ os: ${e.clientInfo.os[0].toUpperCase() + e.clientInfo.os.slice(1)}\n+ client: ${e.clientInfo.client}\n+ status: ${e.status}\n+ active: ${e.active ? \"Yes\" : \"No\"}\n+ Activities: ${e.activities.length}`;\n }).join(\"\\n\" + \"-\".repeat(38) + \"\\n\");\n }\n\n getProfileValue() {\n const user = userModule.getCurrentUser();\n /**\r\n * @type {Date}\r\n */\n\n const createdAt = user.createdAt;\n return `+ Username: ${user.username}\n+ Discriminator: ${user.discriminator}\n+ Tag: ${user.tag}\n+ ID: ${user.id}\n+ Avatar: ${user.avatar}\n+ Avatar URL: https://cdn.discordapp.com/avatars/${user.id}/${user.avatar}.${user.avatar.startsWith(\"a_\") ? \"gif\" : \"png\"}?size=4096\n+ Creation Date: ${createdAt.getDate().toString().padStart(2, \"0\")}/${(createdAt.getMonth() + 1).toString().padStart(2, \"0\")}/${createdAt.getFullYear().toString().padStart(2, \"0\")} ${createdAt.getHours().toString().padStart(2, \"0\")}h ${createdAt.getMinutes().toString().padStart(2, \"0\")}min ${createdAt.getSeconds()}s\n+ Flags: ${user.flags}\n+ Has Nitro: ${user.hasPremiumSubscription ? \"Yes\" : \"No\"}\n- Email: ${user.email}\n- 2FA: ${user.mfaEnabled ? \"Yes\" : \"No\"}\n- Has Been On Mobile: ${user.mobile ? \"Yes\" : \"No\"}\n- Phone: ${user.phone || \"None\"}\n- Verified: ${user.verified}`;\n }\n\n getStatistics() {\n const guilds = Object.values(GuildModule.getGuilds());\n const relations = Object.keys(relationShipModule.getRelationships());\n const friends = relations.filter(e => relationShipModule.isFriend(e));\n const blocked = relations.filter(e => relationShipModule.isBlocked(e));\n return `+ Server Count: ${guilds.length} servers\n+ Relations: ${relations.length} relations\n+ Friends Count: ${friends.length} friends\n- Blocked Users Count: ${blocked.length} blocked users`;\n }\n\n}\nconst hightlightJS = BDModules.get(e => e.highlight)[0];\nconst messageModule1 = BDModules.get(e => e.markup)[0];\nconst messageModule2 = BDModules.get(e => e.messageContent)[0];\n\nclass CodeContent extends React.Component {\n render() {\n return React.createElement(\"div\", {\n class: `${messageModule1.markup} ${messageModule2.messageContent}`\n }, React.createElement(\"pre\", null, React.createElement(\"code\", {\n class: `${scrollbarModule1.scrollbarGhostHairline} hljs`,\n dangerouslySetInnerHTML: {\n __html: hightlightJS.highlight(this.props.language, this.props.content).value\n }\n })), React.createElement(\"div\", {\n className: BDModules.get(e => e.marginBottom8)[0].marginBottom8\n }));\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvdWkvQWNjb3VudEluZm9zLmpzeC5qcyIsInNvdXJjZXMiOlsid2VicGFjazovL0JldHRlckRpc2NvcmQvLi9zcmMvdWkvQWNjb3VudEluZm9zLmpzeD9hYTgyIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCRFYyIGZyb20gXCIuLi9tb2R1bGVzL3YyXCI7XG5pbXBvcnQgVjJDX1NldHRpbmdzVGl0bGUgZnJvbSBcIi4vc2V0dGluZ3NUaXRsZVwiO1xuaW1wb3J0IFYyQ19TZXR0aW5nc0dyb3VwIGZyb20gXCIuL3NldHRpbmdzR3JvdXBcIjtcbmltcG9ydCBkYXRhU3RvcmUgZnJvbSBcIi4uL21vZHVsZXMvZGF0YVN0b3JlXCI7XG5pbXBvcnQgeyBkZWZhdWx0UlBDLCBzZXR0aW5nc1JQQyB9IGZyb20gXCIuLi8wZ2xvYmFsc1wiO1xuaW1wb3J0IEN1c3RvbVJpY2hQcmVzZW5jZSBmcm9tIFwiLi4vbW9kdWxlcy9DdXN0b21SaWNoUHJlc2VuY2VcIjtcbmltcG9ydCBTZWxlY3QgZnJvbSBcIi4vc2VsZWN0XCI7XG5pbXBvcnQgdGltZXN0YW1wUmVuZGVyIGZyb20gXCIuL3RpbWVzdGFtcFJlbmRlclwiO1xuaW1wb3J0IERPTVRvb2xzIGZyb20gXCIuLi9tb2R1bGVzL2RvbXRvb2xzXCI7XG4vKipcclxuICogQHR5cGUge3R5cGVvZiBpbXBvcnQoXCJyZWFjdFwiKX1cclxuICovXG5cbmNvbnN0IFJlYWN0ID0gQkRWMi5SZWFjdDtcbmxldCBjb250ZW50TW9kdWxlID0gQkRNb2R1bGVzLmdldChlID0+IGUuY29udGVudENvbHVtbilbMF07XG5sZXQgbWFyZ2luTW9kdWxlMiA9IEJETW9kdWxlcy5nZXQoZSA9PiBlLmRlZmF1bHRNYXJnaW5oNSlbMF07XG5sZXQgY29sb3JNb2R1bGUgPSBCRE1vZHVsZXMuZ2V0KGUgPT4gZS5jb2xvclN0YW5kYXJkKVswXTtcbmxldCBzaXplTW9kdWxlID0gQkRNb2R1bGVzLmdldChlID0+IGUuc2l6ZTMyKVswXTtcbmNvbnN0IHNjcm9sbGJhck1vZHVsZTEgPSBCRE1vZHVsZXMuZ2V0KGUgPT4gZS5zY3JvbGxiYXJHaG9zdEhhaXJsaW5lKVswXTtcbmNvbnN0IEd1aWxkTW9kdWxlID0gQkRNb2R1bGVzLmdldChlID0+IGUuZGVmYXVsdCAmJiBlLmRlZmF1bHQuZ2V0R3VpbGRzKVswXS5kZWZhdWx0O1xuY29uc3QgcmVsYXRpb25TaGlwTW9kdWxlID0gQkRNb2R1bGVzLmdldChlID0+IGUuZGVmYXVsdCAmJiBlLmRlZmF1bHQuZ2V0UmVsYXRpb25zaGlwcylbMF0uZGVmYXVsdDtcbmNvbnN0IHNlc3Npb25Nb2R1bGUgPSBCRE1vZHVsZXMuZ2V0KGUgPT4gZS5kZWZhdWx0ICYmIGUuZGVmYXVsdC5nZXRTZXNzaW9ucylbMF0uZGVmYXVsdDtcbmNvbnN0IHVzZXJNb2R1bGUgPSBCRE1vZHVsZXMuZ2V0KGUgPT4gZS5kZWZhdWx0ICYmIGUuZGVmYXVsdC5nZXRDdXJyZW50VXNlcilbMF0uZGVmYXVsdDtcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFYyQ19BY2NvdW50SW5mb3MgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICBjbGFzc05hbWU6IGNvbnRlbnRNb2R1bGUuY29udGVudENvbHVtbiArIFwiIFwiICsgY29udGVudE1vZHVsZS5jb250ZW50Q29sdW1uRGVmYXVsdCArIFwiIGNvbnRlbnQtY29sdW1uIGRlZmF1bHRcIixcbiAgICAgIHN0eWxlOiB7XG4gICAgICAgIHBhZGRpbmc6IFwiNjBweCA0MHB4IDBweFwiXG4gICAgICB9XG4gICAgfSwgUmVhY3QuY3JlYXRlRWxlbWVudChWMkNfU2V0dGluZ3NUaXRsZSwge1xuICAgICAgdGV4dDogXCJBY2NvdW50IEluZm9zXCJcbiAgICB9KSwgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCBudWxsLCBSZWFjdC5jcmVhdGVFbGVtZW50KFwiaDVcIiwge1xuICAgICAgY2xhc3NOYW1lOiBjb2xvck1vZHVsZS5jb2xvclN0YW5kYXJkICsgXCIgXCIgKyBzaXplTW9kdWxlLnNpemUxNCArIFwiIFwiICsgbWFyZ2luTW9kdWxlMi5oNSArIFwiIFwiICsgbWFyZ2luTW9kdWxlMi5kZWZhdWx0TWFyZ2luaDVcbiAgICB9LCBcIlByb2ZpbGVcIiksIFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ29kZUNvbnRlbnQsIHtcbiAgICAgIGNvbnRlbnQ6IHRoaXMuZ2V0UHJvZmlsZVZhbHVlKCksXG4gICAgICBsYW5ndWFnZTogXCJkaWZmXCJcbiAgICB9KSwgUmVhY3QuY3JlYXRlRWxlbWVudChcImg1XCIsIHtcbiAgICAgIGNsYXNzTmFtZTogY29sb3JNb2R1bGUuY29sb3JTdGFuZGFyZCArIFwiIFwiICsgc2l6ZU1vZHVsZS5zaXplMTQgKyBcIiBcIiArIG1hcmdpbk1vZHVsZTIuaDUgKyBcIiBcIiArIG1hcmdpbk1vZHVsZTIuZGVmYXVsdE1hcmdpbmg1XG4gICAgfSwgXCJTdGF0aXN0aWNzXCIpLCBSZWFjdC5jcmVhdGVFbGVtZW50KENvZGVDb250ZW50LCB7XG4gICAgICBjb250ZW50OiB0aGlzLmdldFN0YXRpc3RpY3MoKSxcbiAgICAgIGxhbmd1YWdlOiBcImRpZmZcIlxuICAgIH0pLCBSZWFjdC5jcmVhdGVFbGVtZW50KFwiaDVcIiwge1xuICAgICAgY2xhc3NOYW1lOiBjb2xvck1vZHVsZS5jb2xvclN0YW5kYXJkICsgXCIgXCIgKyBzaXplTW9kdWxlLnNpemUxNCArIFwiIFwiICsgbWFyZ2luTW9kdWxlMi5oNSArIFwiIFwiICsgbWFyZ2luTW9kdWxlMi5kZWZhdWx0TWFyZ2luaDVcbiAgICB9LCBcIkNvbm5lY3RlZCBTZXNzaW9uc1wiKSwgUmVhY3QuY3JlYXRlRWxlbWVudChDb2RlQ29udGVudCwge1xuICAgICAgY29udGVudDogdGhpcy5nZXRTZXNzaW9uVmFsdWUoKSxcbiAgICAgIGxhbmd1YWdlOiBcImRpZmZcIlxuICAgIH0pKSwgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICBjbGFzc05hbWU6IEJETW9kdWxlcy5nZXQoZSA9PiBlLm1hcmdpbkJvdHRvbTIwKVswXS5tYXJnaW5Cb3R0b20yMFxuICAgIH0pKTtcbiAgfVxuXG4gIGdldFNlc3Npb25WYWx1ZSgpIHtcbiAgICBjb25zdCBzZXNzaW9uc1JhdyA9IHNlc3Npb25Nb2R1bGUuZ2V0U2Vzc2lvbnMoKTtcbiAgICBjb25zdCBzZXNzaW9ucyA9IE9iamVjdC5rZXlzKHNlc3Npb25zUmF3KS5maWx0ZXIoZSA9PiBlICE9PSBcImFsbFwiKS5tYXAoZSA9PiBzZXNzaW9uc1Jhd1tlXSk7XG4gICAgaWYgKHNlc3Npb25zLmxlbmd0aCA9PT0gMCkgcmV0dXJuIFwiLSBObyBzZXNzaW9uIGRldGVjdGVkLiBQbGVhc2UgdHJ5IGluIGEgZmV3IHNlY29uZHNcIjtcbiAgICByZXR1cm4gc2Vzc2lvbnMubWFwKGUgPT4ge1xuICAgICAgcmV0dXJuIGArIGlkOiAke2Uuc2Vzc2lvbklkfVxuKyBvczogJHtlLmNsaWVudEluZm8ub3NbMF0udG9VcHBlckNhc2UoKSArIGUuY2xpZW50SW5mby5vcy5zbGljZSgxKX1cbisgY2xpZW50OiAke2UuY2xpZW50SW5mby5jbGllbnR9XG4rIHN0YXR1czogJHtlLnN0YXR1c31cbisgYWN0aXZlOiAke2UuYWN0aXZlID8gXCJZZXNcIiA6IFwiTm9cIn1cbisgQWN0aXZpdGllczogJHtlLmFjdGl2aXRpZXMubGVuZ3RofWA7XG4gICAgfSkuam9pbihcIlxcblwiICsgXCItXCIucmVwZWF0KDM4KSArIFwiXFxuXCIpO1xuICB9XG5cbiAgZ2V0UHJvZmlsZVZhbHVlKCkge1xuICAgIGNvbnN0IHVzZXIgPSB1c2VyTW9kdWxlLmdldEN1cnJlbnRVc2VyKCk7XG4gICAgLyoqXHJcbiAgICAgKiBAdHlwZSB7RGF0ZX1cclxuICAgICAqL1xuXG4gICAgY29uc3QgY3JlYXRlZEF0ID0gdXNlci5jcmVhdGVkQXQ7XG4gICAgcmV0dXJuIGArIFVzZXJuYW1lOiAke3VzZXIudXNlcm5hbWV9XG4rIERpc2NyaW1pbmF0b3I6ICR7dXNlci5kaXNjcmltaW5hdG9yfVxuKyBUYWc6ICR7dXNlci50YWd9XG4rIElEOiAke3VzZXIuaWR9XG4rIEF2YXRhcjogJHt1c2VyLmF2YXRhcn1cbisgQXZhdGFyIFVSTDogaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vYXZhdGFycy8ke3VzZXIuaWR9LyR7dXNlci5hdmF0YXJ9LiR7dXNlci5hdmF0YXIuc3RhcnRzV2l0aChcImFfXCIpID8gXCJnaWZcIiA6IFwicG5nXCJ9P3NpemU9NDA5NlxuKyBDcmVhdGlvbiBEYXRlOiAke2NyZWF0ZWRBdC5nZXREYXRlKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCBcIjBcIil9LyR7KGNyZWF0ZWRBdC5nZXRNb250aCgpICsgMSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCBcIjBcIil9LyR7Y3JlYXRlZEF0LmdldEZ1bGxZZWFyKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCBcIjBcIil9ICR7Y3JlYXRlZEF0LmdldEhvdXJzKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCBcIjBcIil9aCAke2NyZWF0ZWRBdC5nZXRNaW51dGVzKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCBcIjBcIil9bWluICR7Y3JlYXRlZEF0LmdldFNlY29uZHMoKX1zXG4rIEZsYWdzOiAke3VzZXIuZmxhZ3N9XG4rIEhhcyBOaXRybzogJHt1c2VyLmhhc1ByZW1pdW1TdWJzY3JpcHRpb24gPyBcIlllc1wiIDogXCJOb1wifVxuLSBFbWFpbDogJHt1c2VyLmVtYWlsfVxuLSAyRkE6ICR7dXNlci5tZmFFbmFibGVkID8gXCJZZXNcIiA6IFwiTm9cIn1cbi0gSGFzIEJlZW4gT24gTW9iaWxlOiAke3VzZXIubW9iaWxlID8gXCJZZXNcIiA6IFwiTm9cIn1cbi0gUGhvbmU6ICR7dXNlci5waG9uZSB8fCBcIk5vbmVcIn1cbi0gVmVyaWZpZWQ6ICR7dXNlci52ZXJpZmllZH1gO1xuICB9XG5cbiAgZ2V0U3RhdGlzdGljcygpIHtcbiAgICBjb25zdCBndWlsZHMgPSBPYmplY3QudmFsdWVzKEd1aWxkTW9kdWxlLmdldEd1aWxkcygpKTtcbiAgICBjb25zdCByZWxhdGlvbnMgPSBPYmplY3Qua2V5cyhyZWxhdGlvblNoaXBNb2R1bGUuZ2V0UmVsYXRpb25zaGlwcygpKTtcbiAgICBjb25zdCBmcmllbmRzID0gcmVsYXRpb25zLmZpbHRlcihlID0+IHJlbGF0aW9uU2hpcE1vZHVsZS5pc0ZyaWVuZChlKSk7XG4gICAgY29uc3QgYmxvY2tlZCA9IHJlbGF0aW9ucy5maWx0ZXIoZSA9PiByZWxhdGlvblNoaXBNb2R1bGUuaXNCbG9ja2VkKGUpKTtcbiAgICByZXR1cm4gYCsgU2VydmVyIENvdW50OiAke2d1aWxkcy5sZW5ndGh9IHNlcnZlcnNcbisgUmVsYXRpb25zOiAke3JlbGF0aW9ucy5sZW5ndGh9IHJlbGF0aW9uc1xuKyBGcmllbmRzIENvdW50OiAke2ZyaWVuZHMubGVuZ3RofSBmcmllbmRzXG4tIEJsb2NrZWQgVXNlcnMgQ291bnQ6ICR7YmxvY2tlZC5sZW5ndGh9IGJsb2NrZWQgdXNlcnNgO1xuICB9XG5cbn1cbmNvbnN0IGhpZ2h0bGlnaHRKUyA9IEJETW9kdWxlcy5nZXQoZSA9PiBlLmhpZ2hsaWdodClbMF07XG5jb25zdCBtZXNzYWdlTW9kdWxlMSA9IEJETW9kdWxlcy5nZXQoZSA9PiBlLm1hcmt1cClbMF07XG5jb25zdCBtZXNzYWdlTW9kdWxlMiA9IEJETW9kdWxlcy5nZXQoZSA9PiBlLm1lc3NhZ2VDb250ZW50KVswXTtcblxuY2xhc3MgQ29kZUNvbnRlbnQgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICByZW5kZXIoKSB7XG4gICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgY2xhc3M6IGAke21lc3NhZ2VNb2R1bGUxLm1hcmt1cH0gJHttZXNzYWdlTW9kdWxlMi5tZXNzYWdlQ29udGVudH1gXG4gICAgfSwgUmVhY3QuY3JlYXRlRWxlbWVudChcInByZVwiLCBudWxsLCBSZWFjdC5jcmVhdGVFbGVtZW50KFwiY29kZVwiLCB7XG4gICAgICBjbGFzczogYCR7c2Nyb2xsYmFyTW9kdWxlMS5zY3JvbGxiYXJHaG9zdEhhaXJsaW5lfSBobGpzYCxcbiAgICAgIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MOiB7XG4gICAgICAgIF9faHRtbDogaGlnaHRsaWdodEpTLmhpZ2hsaWdodCh0aGlzLnByb3BzLmxhbmd1YWdlLCB0aGlzLnByb3BzLmNvbnRlbnQpLnZhbHVlXG4gICAgICB9XG4gICAgfSkpLCBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICAgIGNsYXNzTmFtZTogQkRNb2R1bGVzLmdldChlID0+IGUubWFyZ2luQm90dG9tOClbMF0ubWFyZ2luQm90dG9tOFxuICAgIH0pKTtcbiAgfVxuXG59Il0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/ui/AccountInfos.jsx\n"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return V2C_AccountInfos; });\n/* harmony import */ var _modules_v2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../modules/v2 */ \"./src/modules/v2.js\");\n/* harmony import */ var _settingsTitle__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./settingsTitle */ \"./src/ui/settingsTitle.js\");\n/* harmony import */ var _settingsGroup__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./settingsGroup */ \"./src/ui/settingsGroup.js\");\n/* harmony import */ var _modules_dataStore__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../modules/dataStore */ \"./src/modules/dataStore.js\");\n/* harmony import */ var _0globals__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../0globals */ \"./src/0globals.js\");\n/* harmony import */ var _modules_CustomRichPresence__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../modules/CustomRichPresence */ \"./src/modules/CustomRichPresence.js\");\n/* harmony import */ var _select__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./select */ \"./src/ui/select.jsx\");\n/* harmony import */ var _timestampRender__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./timestampRender */ \"./src/ui/timestampRender.js\");\n/* harmony import */ var _modules_domtools__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../modules/domtools */ \"./src/modules/domtools.js\");\n\n\n\n\n\n\n\n\n\n/**\r\n * @type {typeof import(\"react\")}\r\n */\n\nconst React = _modules_v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].React;\nlet contentModule = BDModules.get(e => e.contentColumn)[0];\nlet marginModule2 = BDModules.get(e => e.defaultMarginh5)[0];\nlet colorModule = BDModules.get(e => e.colorStandard)[0];\nlet sizeModule = BDModules.get(e => e.size32)[0];\nlet scrollbarModule1 = BDModules.get(e => e.scrollbarGhostHairline)[0];\nconst GuildModule = BDModules.get(e => e.default && e.default.getGuilds)[0].default;\nconst relationShipModule = BDModules.get(e => e.default && e.default.getRelationships)[0].default;\nconst sessionModule = BDModules.get(e => e.default && e.default.getSessions)[0].default;\nconst userModule = BDModules.get(e => e.default && e.default.getCurrentUser)[0].default;\nclass V2C_AccountInfos extends React.Component {\n constructor(props) {\n super(props);\n }\n\n render() {\n if (!contentModule) contentModule = BDModules.get(e => e.contentColumn)[0];\n if (!marginModule2) marginModule2 = BDModules.get(e => e.defaultMarginh5)[0];\n if (!colorModule) colorModule = BDModules.get(e => e.colorStandard)[0];\n if (!sizeModule) sizeModule = BDModules.get(e => e.size32)[0];\n return React.createElement(\"div\", {\n className: contentModule.contentColumn + \" \" + contentModule.contentColumnDefault + \" content-column default\",\n style: {\n padding: \"60px 40px 0px\"\n }\n }, React.createElement(_settingsTitle__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n text: \"Account Infos\"\n }), React.createElement(\"div\", null, React.createElement(\"h5\", {\n className: colorModule.colorStandard + \" \" + sizeModule.size14 + \" \" + marginModule2.h5 + \" \" + marginModule2.defaultMarginh5\n }, \"Profile\"), React.createElement(CodeContent, {\n content: this.getProfileValue(),\n language: \"diff\"\n }), React.createElement(\"h5\", {\n className: colorModule.colorStandard + \" \" + sizeModule.size14 + \" \" + marginModule2.h5 + \" \" + marginModule2.defaultMarginh5\n }, \"Statistics\"), React.createElement(CodeContent, {\n content: this.getStatistics(),\n language: \"diff\"\n }), React.createElement(\"h5\", {\n className: colorModule.colorStandard + \" \" + sizeModule.size14 + \" \" + marginModule2.h5 + \" \" + marginModule2.defaultMarginh5\n }, \"Connected Sessions\"), React.createElement(CodeContent, {\n content: this.getSessionValue(),\n language: \"diff\"\n })), React.createElement(\"div\", {\n className: BDModules.get(e => e.marginBottom20)[0].marginBottom20\n }));\n }\n\n getSessionValue() {\n const sessionsRaw = sessionModule.getSessions();\n const sessions = Object.keys(sessionsRaw).filter(e => e !== \"all\").map(e => sessionsRaw[e]);\n if (sessions.length === 0) return \"- No session detected. Please try in a few seconds\";\n return sessions.map(e => {\n return `+ id: ${e.sessionId}\n+ os: ${e.clientInfo.os[0].toUpperCase() + e.clientInfo.os.slice(1)}\n+ client: ${e.clientInfo.client}\n+ status: ${e.status}\n+ active: ${e.active ? \"Yes\" : \"No\"}\n+ Activities: ${e.activities.length}`;\n }).join(\"\\n\" + \"-\".repeat(38) + \"\\n\");\n }\n\n getProfileValue() {\n const user = userModule.getCurrentUser();\n /**\r\n * @type {Date}\r\n */\n\n const createdAt = user.createdAt;\n return `+ Username: ${user.username}\n+ Discriminator: ${user.discriminator}\n+ Tag: ${user.tag}\n+ ID: ${user.id}\n+ Avatar: ${user.avatar}\n+ Avatar URL: https://cdn.discordapp.com/avatars/${user.id}/${user.avatar}.${user.avatar.startsWith(\"a_\") ? \"gif\" : \"png\"}?size=4096\n+ Creation Date: ${createdAt.getDate().toString().padStart(2, \"0\")}/${(createdAt.getMonth() + 1).toString().padStart(2, \"0\")}/${createdAt.getFullYear().toString().padStart(2, \"0\")} ${createdAt.getHours().toString().padStart(2, \"0\")}h ${createdAt.getMinutes().toString().padStart(2, \"0\")}min ${createdAt.getSeconds()}s\n+ Flags: ${user.flags}\n+ Has Nitro: ${user.hasPremiumSubscription ? \"Yes\" : \"No\"}\n- Email: ${user.email}\n- 2FA: ${user.mfaEnabled ? \"Yes\" : \"No\"}\n- Has Been On Mobile: ${user.mobile ? \"Yes\" : \"No\"}\n- Phone: ${user.phone || \"None\"}\n- Verified: ${user.verified}`;\n }\n\n getStatistics() {\n const guilds = Object.values(GuildModule.getGuilds());\n const relations = Object.keys(relationShipModule.getRelationships());\n const friends = relations.filter(e => relationShipModule.isFriend(e));\n const blocked = relations.filter(e => relationShipModule.isBlocked(e));\n return `+ Server Count: ${guilds.length} servers\n+ Relations: ${relations.length} relations\n+ Friends Count: ${friends.length} friends\n- Blocked Users Count: ${blocked.length} blocked users`;\n }\n\n}\nlet hightlightJS = BDModules.get(e => e.highlight)[0];\nlet messageModule1 = BDModules.get(e => e.markup)[0];\nlet messageModule2 = BDModules.get(e => e.messageContent)[0];\n\nclass CodeContent extends React.Component {\n render() {\n if (!messageModule1) messageModule1 = BDModules.get(e => e.markup)[0];\n if (!messageModule2) messageModule2 = BDModules.get(e => e.messageContent)[0];\n if (!scrollbarModule1) scrollbarModule1 = BDModules.get(e => e.scrollbarGhostHairline)[0];\n if (!hightlightJS) hightlightJS = BDModules.get(e => e.highlight)[0];\n return React.createElement(\"div\", {\n class: `${messageModule1.markup} ${messageModule2.messageContent}`\n }, React.createElement(\"pre\", null, React.createElement(\"code\", {\n class: `${scrollbarModule1.scrollbarGhostHairline} hljs`,\n dangerouslySetInnerHTML: {\n __html: hightlightJS.highlight(this.props.language, this.props.content).value\n }\n })), React.createElement(\"div\", {\n className: BDModules.get(e => e.marginBottom8)[0].marginBottom8\n }));\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvdWkvQWNjb3VudEluZm9zLmpzeC5qcyIsInNvdXJjZXMiOlsid2VicGFjazovL0JldHRlckRpc2NvcmQvLi9zcmMvdWkvQWNjb3VudEluZm9zLmpzeD9hYTgyIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCRFYyIGZyb20gXCIuLi9tb2R1bGVzL3YyXCI7XG5pbXBvcnQgVjJDX1NldHRpbmdzVGl0bGUgZnJvbSBcIi4vc2V0dGluZ3NUaXRsZVwiO1xuaW1wb3J0IFYyQ19TZXR0aW5nc0dyb3VwIGZyb20gXCIuL3NldHRpbmdzR3JvdXBcIjtcbmltcG9ydCBkYXRhU3RvcmUgZnJvbSBcIi4uL21vZHVsZXMvZGF0YVN0b3JlXCI7XG5pbXBvcnQgeyBkZWZhdWx0UlBDLCBzZXR0aW5nc1JQQyB9IGZyb20gXCIuLi8wZ2xvYmFsc1wiO1xuaW1wb3J0IEN1c3RvbVJpY2hQcmVzZW5jZSBmcm9tIFwiLi4vbW9kdWxlcy9DdXN0b21SaWNoUHJlc2VuY2VcIjtcbmltcG9ydCBTZWxlY3QgZnJvbSBcIi4vc2VsZWN0XCI7XG5pbXBvcnQgdGltZXN0YW1wUmVuZGVyIGZyb20gXCIuL3RpbWVzdGFtcFJlbmRlclwiO1xuaW1wb3J0IERPTVRvb2xzIGZyb20gXCIuLi9tb2R1bGVzL2RvbXRvb2xzXCI7XG4vKipcclxuICogQHR5cGUge3R5cGVvZiBpbXBvcnQoXCJyZWFjdFwiKX1cclxuICovXG5cbmNvbnN0IFJlYWN0ID0gQkRWMi5SZWFjdDtcbmxldCBjb250ZW50TW9kdWxlID0gQkRNb2R1bGVzLmdldChlID0+IGUuY29udGVudENvbHVtbilbMF07XG5sZXQgbWFyZ2luTW9kdWxlMiA9IEJETW9kdWxlcy5nZXQoZSA9PiBlLmRlZmF1bHRNYXJnaW5oNSlbMF07XG5sZXQgY29sb3JNb2R1bGUgPSBCRE1vZHVsZXMuZ2V0KGUgPT4gZS5jb2xvclN0YW5kYXJkKVswXTtcbmxldCBzaXplTW9kdWxlID0gQkRNb2R1bGVzLmdldChlID0+IGUuc2l6ZTMyKVswXTtcbmxldCBzY3JvbGxiYXJNb2R1bGUxID0gQkRNb2R1bGVzLmdldChlID0+IGUuc2Nyb2xsYmFyR2hvc3RIYWlybGluZSlbMF07XG5jb25zdCBHdWlsZE1vZHVsZSA9IEJETW9kdWxlcy5nZXQoZSA9PiBlLmRlZmF1bHQgJiYgZS5kZWZhdWx0LmdldEd1aWxkcylbMF0uZGVmYXVsdDtcbmNvbnN0IHJlbGF0aW9uU2hpcE1vZHVsZSA9IEJETW9kdWxlcy5nZXQoZSA9PiBlLmRlZmF1bHQgJiYgZS5kZWZhdWx0LmdldFJlbGF0aW9uc2hpcHMpWzBdLmRlZmF1bHQ7XG5jb25zdCBzZXNzaW9uTW9kdWxlID0gQkRNb2R1bGVzLmdldChlID0+IGUuZGVmYXVsdCAmJiBlLmRlZmF1bHQuZ2V0U2Vzc2lvbnMpWzBdLmRlZmF1bHQ7XG5jb25zdCB1c2VyTW9kdWxlID0gQkRNb2R1bGVzLmdldChlID0+IGUuZGVmYXVsdCAmJiBlLmRlZmF1bHQuZ2V0Q3VycmVudFVzZXIpWzBdLmRlZmF1bHQ7XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWMkNfQWNjb3VudEluZm9zIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgaWYgKCFjb250ZW50TW9kdWxlKSBjb250ZW50TW9kdWxlID0gQkRNb2R1bGVzLmdldChlID0+IGUuY29udGVudENvbHVtbilbMF07XG4gICAgaWYgKCFtYXJnaW5Nb2R1bGUyKSBtYXJnaW5Nb2R1bGUyID0gQkRNb2R1bGVzLmdldChlID0+IGUuZGVmYXVsdE1hcmdpbmg1KVswXTtcbiAgICBpZiAoIWNvbG9yTW9kdWxlKSBjb2xvck1vZHVsZSA9IEJETW9kdWxlcy5nZXQoZSA9PiBlLmNvbG9yU3RhbmRhcmQpWzBdO1xuICAgIGlmICghc2l6ZU1vZHVsZSkgc2l6ZU1vZHVsZSA9IEJETW9kdWxlcy5nZXQoZSA9PiBlLnNpemUzMilbMF07XG4gICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgY2xhc3NOYW1lOiBjb250ZW50TW9kdWxlLmNvbnRlbnRDb2x1bW4gKyBcIiBcIiArIGNvbnRlbnRNb2R1bGUuY29udGVudENvbHVtbkRlZmF1bHQgKyBcIiBjb250ZW50LWNvbHVtbiBkZWZhdWx0XCIsXG4gICAgICBzdHlsZToge1xuICAgICAgICBwYWRkaW5nOiBcIjYwcHggNDBweCAwcHhcIlxuICAgICAgfVxuICAgIH0sIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVjJDX1NldHRpbmdzVGl0bGUsIHtcbiAgICAgIHRleHQ6IFwiQWNjb3VudCBJbmZvc1wiXG4gICAgfSksIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgbnVsbCwgUmVhY3QuY3JlYXRlRWxlbWVudChcImg1XCIsIHtcbiAgICAgIGNsYXNzTmFtZTogY29sb3JNb2R1bGUuY29sb3JTdGFuZGFyZCArIFwiIFwiICsgc2l6ZU1vZHVsZS5zaXplMTQgKyBcIiBcIiArIG1hcmdpbk1vZHVsZTIuaDUgKyBcIiBcIiArIG1hcmdpbk1vZHVsZTIuZGVmYXVsdE1hcmdpbmg1XG4gICAgfSwgXCJQcm9maWxlXCIpLCBSZWFjdC5jcmVhdGVFbGVtZW50KENvZGVDb250ZW50LCB7XG4gICAgICBjb250ZW50OiB0aGlzLmdldFByb2ZpbGVWYWx1ZSgpLFxuICAgICAgbGFuZ3VhZ2U6IFwiZGlmZlwiXG4gICAgfSksIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJoNVwiLCB7XG4gICAgICBjbGFzc05hbWU6IGNvbG9yTW9kdWxlLmNvbG9yU3RhbmRhcmQgKyBcIiBcIiArIHNpemVNb2R1bGUuc2l6ZTE0ICsgXCIgXCIgKyBtYXJnaW5Nb2R1bGUyLmg1ICsgXCIgXCIgKyBtYXJnaW5Nb2R1bGUyLmRlZmF1bHRNYXJnaW5oNVxuICAgIH0sIFwiU3RhdGlzdGljc1wiKSwgUmVhY3QuY3JlYXRlRWxlbWVudChDb2RlQ29udGVudCwge1xuICAgICAgY29udGVudDogdGhpcy5nZXRTdGF0aXN0aWNzKCksXG4gICAgICBsYW5ndWFnZTogXCJkaWZmXCJcbiAgICB9KSwgUmVhY3QuY3JlYXRlRWxlbWVudChcImg1XCIsIHtcbiAgICAgIGNsYXNzTmFtZTogY29sb3JNb2R1bGUuY29sb3JTdGFuZGFyZCArIFwiIFwiICsgc2l6ZU1vZHVsZS5zaXplMTQgKyBcIiBcIiArIG1hcmdpbk1vZHVsZTIuaDUgKyBcIiBcIiArIG1hcmdpbk1vZHVsZTIuZGVmYXVsdE1hcmdpbmg1XG4gICAgfSwgXCJDb25uZWN0ZWQgU2Vzc2lvbnNcIiksIFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ29kZUNvbnRlbnQsIHtcbiAgICAgIGNvbnRlbnQ6IHRoaXMuZ2V0U2Vzc2lvblZhbHVlKCksXG4gICAgICBsYW5ndWFnZTogXCJkaWZmXCJcbiAgICB9KSksIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgY2xhc3NOYW1lOiBCRE1vZHVsZXMuZ2V0KGUgPT4gZS5tYXJnaW5Cb3R0b20yMClbMF0ubWFyZ2luQm90dG9tMjBcbiAgICB9KSk7XG4gIH1cblxuICBnZXRTZXNzaW9uVmFsdWUoKSB7XG4gICAgY29uc3Qgc2Vzc2lvbnNSYXcgPSBzZXNzaW9uTW9kdWxlLmdldFNlc3Npb25zKCk7XG4gICAgY29uc3Qgc2Vzc2lvbnMgPSBPYmplY3Qua2V5cyhzZXNzaW9uc1JhdykuZmlsdGVyKGUgPT4gZSAhPT0gXCJhbGxcIikubWFwKGUgPT4gc2Vzc2lvbnNSYXdbZV0pO1xuICAgIGlmIChzZXNzaW9ucy5sZW5ndGggPT09IDApIHJldHVybiBcIi0gTm8gc2Vzc2lvbiBkZXRlY3RlZC4gUGxlYXNlIHRyeSBpbiBhIGZldyBzZWNvbmRzXCI7XG4gICAgcmV0dXJuIHNlc3Npb25zLm1hcChlID0+IHtcbiAgICAgIHJldHVybiBgKyBpZDogJHtlLnNlc3Npb25JZH1cbisgb3M6ICR7ZS5jbGllbnRJbmZvLm9zWzBdLnRvVXBwZXJDYXNlKCkgKyBlLmNsaWVudEluZm8ub3Muc2xpY2UoMSl9XG4rIGNsaWVudDogJHtlLmNsaWVudEluZm8uY2xpZW50fVxuKyBzdGF0dXM6ICR7ZS5zdGF0dXN9XG4rIGFjdGl2ZTogJHtlLmFjdGl2ZSA/IFwiWWVzXCIgOiBcIk5vXCJ9XG4rIEFjdGl2aXRpZXM6ICR7ZS5hY3Rpdml0aWVzLmxlbmd0aH1gO1xuICAgIH0pLmpvaW4oXCJcXG5cIiArIFwiLVwiLnJlcGVhdCgzOCkgKyBcIlxcblwiKTtcbiAgfVxuXG4gIGdldFByb2ZpbGVWYWx1ZSgpIHtcbiAgICBjb25zdCB1c2VyID0gdXNlck1vZHVsZS5nZXRDdXJyZW50VXNlcigpO1xuICAgIC8qKlxyXG4gICAgICogQHR5cGUge0RhdGV9XHJcbiAgICAgKi9cblxuICAgIGNvbnN0IGNyZWF0ZWRBdCA9IHVzZXIuY3JlYXRlZEF0O1xuICAgIHJldHVybiBgKyBVc2VybmFtZTogJHt1c2VyLnVzZXJuYW1lfVxuKyBEaXNjcmltaW5hdG9yOiAke3VzZXIuZGlzY3JpbWluYXRvcn1cbisgVGFnOiAke3VzZXIudGFnfVxuKyBJRDogJHt1c2VyLmlkfVxuKyBBdmF0YXI6ICR7dXNlci5hdmF0YXJ9XG4rIEF2YXRhciBVUkw6IGh0dHBzOi8vY2RuLmRpc2NvcmRhcHAuY29tL2F2YXRhcnMvJHt1c2VyLmlkfS8ke3VzZXIuYXZhdGFyfS4ke3VzZXIuYXZhdGFyLnN0YXJ0c1dpdGgoXCJhX1wiKSA/IFwiZ2lmXCIgOiBcInBuZ1wifT9zaXplPTQwOTZcbisgQ3JlYXRpb24gRGF0ZTogJHtjcmVhdGVkQXQuZ2V0RGF0ZSgpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgXCIwXCIpfS8keyhjcmVhdGVkQXQuZ2V0TW9udGgoKSArIDEpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgXCIwXCIpfS8ke2NyZWF0ZWRBdC5nZXRGdWxsWWVhcigpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgXCIwXCIpfSAke2NyZWF0ZWRBdC5nZXRIb3VycygpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgXCIwXCIpfWggJHtjcmVhdGVkQXQuZ2V0TWludXRlcygpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgXCIwXCIpfW1pbiAke2NyZWF0ZWRBdC5nZXRTZWNvbmRzKCl9c1xuKyBGbGFnczogJHt1c2VyLmZsYWdzfVxuKyBIYXMgTml0cm86ICR7dXNlci5oYXNQcmVtaXVtU3Vic2NyaXB0aW9uID8gXCJZZXNcIiA6IFwiTm9cIn1cbi0gRW1haWw6ICR7dXNlci5lbWFpbH1cbi0gMkZBOiAke3VzZXIubWZhRW5hYmxlZCA/IFwiWWVzXCIgOiBcIk5vXCJ9XG4tIEhhcyBCZWVuIE9uIE1vYmlsZTogJHt1c2VyLm1vYmlsZSA/IFwiWWVzXCIgOiBcIk5vXCJ9XG4tIFBob25lOiAke3VzZXIucGhvbmUgfHwgXCJOb25lXCJ9XG4tIFZlcmlmaWVkOiAke3VzZXIudmVyaWZpZWR9YDtcbiAgfVxuXG4gIGdldFN0YXRpc3RpY3MoKSB7XG4gICAgY29uc3QgZ3VpbGRzID0gT2JqZWN0LnZhbHVlcyhHdWlsZE1vZHVsZS5nZXRHdWlsZHMoKSk7XG4gICAgY29uc3QgcmVsYXRpb25zID0gT2JqZWN0LmtleXMocmVsYXRpb25TaGlwTW9kdWxlLmdldFJlbGF0aW9uc2hpcHMoKSk7XG4gICAgY29uc3QgZnJpZW5kcyA9IHJlbGF0aW9ucy5maWx0ZXIoZSA9PiByZWxhdGlvblNoaXBNb2R1bGUuaXNGcmllbmQoZSkpO1xuICAgIGNvbnN0IGJsb2NrZWQgPSByZWxhdGlvbnMuZmlsdGVyKGUgPT4gcmVsYXRpb25TaGlwTW9kdWxlLmlzQmxvY2tlZChlKSk7XG4gICAgcmV0dXJuIGArIFNlcnZlciBDb3VudDogJHtndWlsZHMubGVuZ3RofSBzZXJ2ZXJzXG4rIFJlbGF0aW9uczogJHtyZWxhdGlvbnMubGVuZ3RofSByZWxhdGlvbnNcbisgRnJpZW5kcyBDb3VudDogJHtmcmllbmRzLmxlbmd0aH0gZnJpZW5kc1xuLSBCbG9ja2VkIFVzZXJzIENvdW50OiAke2Jsb2NrZWQubGVuZ3RofSBibG9ja2VkIHVzZXJzYDtcbiAgfVxuXG59XG5sZXQgaGlnaHRsaWdodEpTID0gQkRNb2R1bGVzLmdldChlID0+IGUuaGlnaGxpZ2h0KVswXTtcbmxldCBtZXNzYWdlTW9kdWxlMSA9IEJETW9kdWxlcy5nZXQoZSA9PiBlLm1hcmt1cClbMF07XG5sZXQgbWVzc2FnZU1vZHVsZTIgPSBCRE1vZHVsZXMuZ2V0KGUgPT4gZS5tZXNzYWdlQ29udGVudClbMF07XG5cbmNsYXNzIENvZGVDb250ZW50IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgcmVuZGVyKCkge1xuICAgIGlmICghbWVzc2FnZU1vZHVsZTEpIG1lc3NhZ2VNb2R1bGUxID0gQkRNb2R1bGVzLmdldChlID0+IGUubWFya3VwKVswXTtcbiAgICBpZiAoIW1lc3NhZ2VNb2R1bGUyKSBtZXNzYWdlTW9kdWxlMiA9IEJETW9kdWxlcy5nZXQoZSA9PiBlLm1lc3NhZ2VDb250ZW50KVswXTtcbiAgICBpZiAoIXNjcm9sbGJhck1vZHVsZTEpIHNjcm9sbGJhck1vZHVsZTEgPSBCRE1vZHVsZXMuZ2V0KGUgPT4gZS5zY3JvbGxiYXJHaG9zdEhhaXJsaW5lKVswXTtcbiAgICBpZiAoIWhpZ2h0bGlnaHRKUykgaGlnaHRsaWdodEpTID0gQkRNb2R1bGVzLmdldChlID0+IGUuaGlnaGxpZ2h0KVswXTtcbiAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICBjbGFzczogYCR7bWVzc2FnZU1vZHVsZTEubWFya3VwfSAke21lc3NhZ2VNb2R1bGUyLm1lc3NhZ2VDb250ZW50fWBcbiAgICB9LCBSZWFjdC5jcmVhdGVFbGVtZW50KFwicHJlXCIsIG51bGwsIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJjb2RlXCIsIHtcbiAgICAgIGNsYXNzOiBgJHtzY3JvbGxiYXJNb2R1bGUxLnNjcm9sbGJhckdob3N0SGFpcmxpbmV9IGhsanNgLFxuICAgICAgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw6IHtcbiAgICAgICAgX19odG1sOiBoaWdodGxpZ2h0SlMuaGlnaGxpZ2h0KHRoaXMucHJvcHMubGFuZ3VhZ2UsIHRoaXMucHJvcHMuY29udGVudCkudmFsdWVcbiAgICAgIH1cbiAgICB9KSksIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgY2xhc3NOYW1lOiBCRE1vZHVsZXMuZ2V0KGUgPT4gZS5tYXJnaW5Cb3R0b204KVswXS5tYXJnaW5Cb3R0b204XG4gICAgfSkpO1xuICB9XG5cbn0iXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/ui/AccountInfos.jsx\n"); /***/ }), diff --git a/BetterDiscordApp/js/main.min.js b/BetterDiscordApp/js/main.min.js index 44e383a..f0c5b34 100644 --- a/BetterDiscordApp/js/main.min.js +++ b/BetterDiscordApp/js/main.min.js @@ -64,7 +64,7 @@ module.exports=function(e){function t(I){if(l[I])return l[I].exports;var c=l[I]= !*** ./src/svg/lightcord.jsx ***! \*******************************/ /*! exports provided: default */function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return LightcordLogo; });\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nclass LightcordLogo extends React.Component {\n render() {\n const props = this.props;\n return React.createElement(\"svg\", _extends({\n viewBox: \"0 0 168 168.69\"\n }, props, {\n height: \"100%\",\n width: props.size\n }), React.createElement(\"defs\", null, React.createElement(\"linearGradient\", {\n id: \"prefix__a\",\n x1: 66.7,\n y1: -487.7,\n x2: 66.7,\n y2: -508.73,\n gradientTransform: \"matrix(1 0 0 -1 0 -408)\",\n gradientUnits: \"userSpaceOnUse\"\n }, React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#e30613\"\n }), React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#731a14\"\n })), React.createElement(\"linearGradient\", {\n id: \"prefix__b\",\n x1: 101.7,\n y1: -487.7,\n x2: 101.7,\n y2: -508.73,\n gradientTransform: \"matrix(1 0 0 -1 0 -408)\",\n gradientUnits: \"userSpaceOnUse\"\n }, React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#e20613\"\n }), React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#731a13\"\n })), React.createElement(\"linearGradient\", {\n id: \"prefix__c\",\n x1: 84,\n y1: -408,\n x2: 84,\n y2: -576.69,\n gradientTransform: \"matrix(1 0 0 -1 0 -408)\",\n gradientUnits: \"userSpaceOnUse\"\n }, React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#e30613\"\n }), React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#731a13\"\n }))), React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M14.9 35.3h139.2V133H14.9z\"\n }), React.createElement(\"path\", {\n d: \"M66.7 79.7c-5.4 0-9.8 4.7-9.8 10.5s4.4 10.5 9.8 10.5 9.8-4.7 9.8-10.5-4.4-10.5-9.8-10.5z\",\n fill: \"url(#prefix__a)\"\n }), React.createElement(\"path\", {\n d: \"M101.7 79.7c-5.4 0-9.8 4.7-9.8 10.5s4.4 10.5 9.8 10.5 9.8-4.7 9.8-10.5-4.4-10.5-9.8-10.5z\",\n fill: \"url(#prefix__b)\"\n }), React.createElement(\"path\", {\n d: \"M0 0v168l168 .69V0zm111.3 124.1s-3.4-4.1-6.3-7.7c12.6-3.5 17.4-11.3 17.4-11.3a52.52 52.52 0 01-11.1 5.6 68.63 68.63 0 01-38.9 4 70.12 70.12 0 01-14.1-4.1 48.88 48.88 0 01-7.1-3.3c-.3-.2-.6-.3-.9-.5a.76.76 0 00-.4-.2c-1.7-1-2.6-1.6-2.6-1.6s4.6 7.6 16.8 11.2c-2.9 3.6-6.4 7.9-6.4 7.9-21.2-.6-29.3-14.5-29.3-14.5 0-30.6 13.8-55.4 13.8-55.4 13.8-10.3 26.9-10 26.9-10l1 1.1C52.8 50.3 45 57.9 45 57.9a56.2 56.2 0 015.7-2.7 72.19 72.19 0 0121.8-6 8.75 8.75 0 011.6-.2 89.1 89.1 0 0119.4-.2 78.45 78.45 0 0128.9 9.1s-7.5-7.2-23.9-12.1l1.3-1.5s13.1-.3 26.9 10c0 0 13.8 24.8 13.8 55.4.1-.1-8 13.8-29.2 14.4z\",\n fill: \"url(#prefix__c)\"\n }));\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvc3ZnL2xpZ2h0Y29yZC5qc3guanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9CZXR0ZXJEaXNjb3JkLy4vc3JjL3N2Zy9saWdodGNvcmQuanN4P2E1ZTciXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX2V4dGVuZHMoKSB7IF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTsgcmV0dXJuIF9leHRlbmRzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTGlnaHRjb3JkTG9nbyBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCBwcm9wcyA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdmdcIiwgX2V4dGVuZHMoe1xuICAgICAgdmlld0JveDogXCIwIDAgMTY4IDE2OC42OVwiXG4gICAgfSwgcHJvcHMsIHtcbiAgICAgIGhlaWdodDogXCIxMDAlXCIsXG4gICAgICB3aWR0aDogcHJvcHMuc2l6ZVxuICAgIH0pLCBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGVmc1wiLCBudWxsLCBSZWFjdC5jcmVhdGVFbGVtZW50KFwibGluZWFyR3JhZGllbnRcIiwge1xuICAgICAgaWQ6IFwicHJlZml4X19hXCIsXG4gICAgICB4MTogNjYuNyxcbiAgICAgIHkxOiAtNDg3LjcsXG4gICAgICB4MjogNjYuNyxcbiAgICAgIHkyOiAtNTA4LjczLFxuICAgICAgZ3JhZGllbnRUcmFuc2Zvcm06IFwibWF0cml4KDEgMCAwIC0xIDAgLTQwOClcIixcbiAgICAgIGdyYWRpZW50VW5pdHM6IFwidXNlclNwYWNlT25Vc2VcIlxuICAgIH0sIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdG9wXCIsIHtcbiAgICAgIG9mZnNldDogMCxcbiAgICAgIHN0b3BDb2xvcjogXCIjZTMwNjEzXCJcbiAgICB9KSwgUmVhY3QuY3JlYXRlRWxlbWVudChcInN0b3BcIiwge1xuICAgICAgb2Zmc2V0OiAxLFxuICAgICAgc3RvcENvbG9yOiBcIiM3MzFhMTRcIlxuICAgIH0pKSwgUmVhY3QuY3JlYXRlRWxlbWVudChcImxpbmVhckdyYWRpZW50XCIsIHtcbiAgICAgIGlkOiBcInByZWZpeF9fYlwiLFxuICAgICAgeDE6IDEwMS43LFxuICAgICAgeTE6IC00ODcuNyxcbiAgICAgIHgyOiAxMDEuNyxcbiAgICAgIHkyOiAtNTA4LjczLFxuICAgICAgZ3JhZGllbnRUcmFuc2Zvcm06IFwibWF0cml4KDEgMCAwIC0xIDAgLTQwOClcIixcbiAgICAgIGdyYWRpZW50VW5pdHM6IFwidXNlclNwYWNlT25Vc2VcIlxuICAgIH0sIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdG9wXCIsIHtcbiAgICAgIG9mZnNldDogMCxcbiAgICAgIHN0b3BDb2xvcjogXCIjZTIwNjEzXCJcbiAgICB9KSwgUmVhY3QuY3JlYXRlRWxlbWVudChcInN0b3BcIiwge1xuICAgICAgb2Zmc2V0OiAxLFxuICAgICAgc3RvcENvbG9yOiBcIiM3MzFhMTNcIlxuICAgIH0pKSwgUmVhY3QuY3JlYXRlRWxlbWVudChcImxpbmVhckdyYWRpZW50XCIsIHtcbiAgICAgIGlkOiBcInByZWZpeF9fY1wiLFxuICAgICAgeDE6IDg0LFxuICAgICAgeTE6IC00MDgsXG4gICAgICB4MjogODQsXG4gICAgICB5MjogLTU3Ni42OSxcbiAgICAgIGdyYWRpZW50VHJhbnNmb3JtOiBcIm1hdHJpeCgxIDAgMCAtMSAwIC00MDgpXCIsXG4gICAgICBncmFkaWVudFVuaXRzOiBcInVzZXJTcGFjZU9uVXNlXCJcbiAgICB9LCBSZWFjdC5jcmVhdGVFbGVtZW50KFwic3RvcFwiLCB7XG4gICAgICBvZmZzZXQ6IDAsXG4gICAgICBzdG9wQ29sb3I6IFwiI2UzMDYxM1wiXG4gICAgfSksIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdG9wXCIsIHtcbiAgICAgIG9mZnNldDogMSxcbiAgICAgIHN0b3BDb2xvcjogXCIjNzMxYTEzXCJcbiAgICB9KSkpLCBSZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7XG4gICAgICBmaWxsOiBcIiNmZmZcIixcbiAgICAgIGQ6IFwiTTE0LjkgMzUuM2gxMzkuMlYxMzNIMTQuOXpcIlxuICAgIH0pLCBSZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7XG4gICAgICBkOiBcIk02Ni43IDc5LjdjLTUuNCAwLTkuOCA0LjctOS44IDEwLjVzNC40IDEwLjUgOS44IDEwLjUgOS44LTQuNyA5LjgtMTAuNS00LjQtMTAuNS05LjgtMTAuNXpcIixcbiAgICAgIGZpbGw6IFwidXJsKCNwcmVmaXhfX2EpXCJcbiAgICB9KSwgUmVhY3QuY3JlYXRlRWxlbWVudChcInBhdGhcIiwge1xuICAgICAgZDogXCJNMTAxLjcgNzkuN2MtNS40IDAtOS44IDQuNy05LjggMTAuNXM0LjQgMTAuNSA5LjggMTAuNSA5LjgtNC43IDkuOC0xMC41LTQuNC0xMC41LTkuOC0xMC41elwiLFxuICAgICAgZmlsbDogXCJ1cmwoI3ByZWZpeF9fYilcIlxuICAgIH0pLCBSZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7XG4gICAgICBkOiBcIk0wIDB2MTY4bDE2OCAuNjlWMHptMTExLjMgMTI0LjFzLTMuNC00LjEtNi4zLTcuN2MxMi42LTMuNSAxNy40LTExLjMgMTcuNC0xMS4zYTUyLjUyIDUyLjUyIDAgMDEtMTEuMSA1LjYgNjguNjMgNjguNjMgMCAwMS0zOC45IDQgNzAuMTIgNzAuMTIgMCAwMS0xNC4xLTQuMSA0OC44OCA0OC44OCAwIDAxLTcuMS0zLjNjLS4zLS4yLS42LS4zLS45LS41YS43Ni43NiAwIDAwLS40LS4yYy0xLjctMS0yLjYtMS42LTIuNi0xLjZzNC42IDcuNiAxNi44IDExLjJjLTIuOSAzLjYtNi40IDcuOS02LjQgNy45LTIxLjItLjYtMjkuMy0xNC41LTI5LjMtMTQuNSAwLTMwLjYgMTMuOC01NS40IDEzLjgtNTUuNCAxMy44LTEwLjMgMjYuOS0xMCAyNi45LTEwbDEgMS4xQzUyLjggNTAuMyA0NSA1Ny45IDQ1IDU3LjlhNTYuMiA1Ni4yIDAgMDE1LjctMi43IDcyLjE5IDcyLjE5IDAgMDEyMS44LTYgOC43NSA4Ljc1IDAgMDExLjYtLjIgODkuMSA4OS4xIDAgMDExOS40LS4yIDc4LjQ1IDc4LjQ1IDAgMDEyOC45IDkuMXMtNy41LTcuMi0yMy45LTEyLjFsMS4zLTEuNXMxMy4xLS4zIDI2LjkgMTBjMCAwIDEzLjggMjQuOCAxMy44IDU1LjQuMS0uMS04IDEzLjgtMjkuMiAxNC40elwiLFxuICAgICAgZmlsbDogXCJ1cmwoI3ByZWZpeF9fYylcIlxuICAgIH0pKTtcbiAgfVxuXG59Il0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/svg/lightcord.jsx\n")},"./src/ui/AccountInfos.jsx":/*!*********************************!*\ !*** ./src/ui/AccountInfos.jsx ***! - \*********************************/ /*! exports provided: default */function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return V2C_AccountInfos; });\n/* harmony import */ var _modules_v2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../modules/v2 */ \"./src/modules/v2.js\");\n/* harmony import */ var _settingsTitle__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./settingsTitle */ \"./src/ui/settingsTitle.js\");\n/* harmony import */ var _settingsGroup__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./settingsGroup */ \"./src/ui/settingsGroup.js\");\n/* harmony import */ var _modules_dataStore__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../modules/dataStore */ \"./src/modules/dataStore.js\");\n/* harmony import */ var _0globals__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../0globals */ \"./src/0globals.js\");\n/* harmony import */ var _modules_CustomRichPresence__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../modules/CustomRichPresence */ \"./src/modules/CustomRichPresence.js\");\n/* harmony import */ var _select__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./select */ \"./src/ui/select.jsx\");\n/* harmony import */ var _timestampRender__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./timestampRender */ \"./src/ui/timestampRender.js\");\n/* harmony import */ var _modules_domtools__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../modules/domtools */ \"./src/modules/domtools.js\");\n\n\n\n\n\n\n\n\n\n/**\r\n * @type {typeof import(\"react\")}\r\n */\n\nconst React = _modules_v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].React;\nlet contentModule = BDModules.get(e => e.contentColumn)[0];\nlet marginModule2 = BDModules.get(e => e.defaultMarginh5)[0];\nlet colorModule = BDModules.get(e => e.colorStandard)[0];\nlet sizeModule = BDModules.get(e => e.size32)[0];\nconst scrollbarModule1 = BDModules.get(e => e.scrollbarGhostHairline)[0];\nconst GuildModule = BDModules.get(e => e.default && e.default.getGuilds)[0].default;\nconst relationShipModule = BDModules.get(e => e.default && e.default.getRelationships)[0].default;\nconst sessionModule = BDModules.get(e => e.default && e.default.getSessions)[0].default;\nconst userModule = BDModules.get(e => e.default && e.default.getCurrentUser)[0].default;\nclass V2C_AccountInfos extends React.Component {\n constructor(props) {\n super(props);\n }\n\n render() {\n return React.createElement(\"div\", {\n className: contentModule.contentColumn + \" \" + contentModule.contentColumnDefault + \" content-column default\",\n style: {\n padding: \"60px 40px 0px\"\n }\n }, React.createElement(_settingsTitle__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n text: \"Account Infos\"\n }), React.createElement(\"div\", null, React.createElement(\"h5\", {\n className: colorModule.colorStandard + \" \" + sizeModule.size14 + \" \" + marginModule2.h5 + \" \" + marginModule2.defaultMarginh5\n }, \"Profile\"), React.createElement(CodeContent, {\n content: this.getProfileValue(),\n language: \"diff\"\n }), React.createElement(\"h5\", {\n className: colorModule.colorStandard + \" \" + sizeModule.size14 + \" \" + marginModule2.h5 + \" \" + marginModule2.defaultMarginh5\n }, \"Statistics\"), React.createElement(CodeContent, {\n content: this.getStatistics(),\n language: \"diff\"\n }), React.createElement(\"h5\", {\n className: colorModule.colorStandard + \" \" + sizeModule.size14 + \" \" + marginModule2.h5 + \" \" + marginModule2.defaultMarginh5\n }, \"Connected Sessions\"), React.createElement(CodeContent, {\n content: this.getSessionValue(),\n language: \"diff\"\n })), React.createElement(\"div\", {\n className: BDModules.get(e => e.marginBottom20)[0].marginBottom20\n }));\n }\n\n getSessionValue() {\n const sessionsRaw = sessionModule.getSessions();\n const sessions = Object.keys(sessionsRaw).filter(e => e !== \"all\").map(e => sessionsRaw[e]);\n if (sessions.length === 0) return \"- No session detected. Please try in a few seconds\";\n return sessions.map(e => {\n return `+ id: ${e.sessionId}\n+ os: ${e.clientInfo.os[0].toUpperCase() + e.clientInfo.os.slice(1)}\n+ client: ${e.clientInfo.client}\n+ status: ${e.status}\n+ active: ${e.active ? \"Yes\" : \"No\"}\n+ Activities: ${e.activities.length}`;\n }).join(\"\\n\" + \"-\".repeat(38) + \"\\n\");\n }\n\n getProfileValue() {\n const user = userModule.getCurrentUser();\n /**\r\n * @type {Date}\r\n */\n\n const createdAt = user.createdAt;\n return `+ Username: ${user.username}\n+ Discriminator: ${user.discriminator}\n+ Tag: ${user.tag}\n+ ID: ${user.id}\n+ Avatar: ${user.avatar}\n+ Avatar URL: https://cdn.discordapp.com/avatars/${user.id}/${user.avatar}.${user.avatar.startsWith(\"a_\") ? \"gif\" : \"png\"}?size=4096\n+ Creation Date: ${createdAt.getDate().toString().padStart(2, \"0\")}/${(createdAt.getMonth() + 1).toString().padStart(2, \"0\")}/${createdAt.getFullYear().toString().padStart(2, \"0\")} ${createdAt.getHours().toString().padStart(2, \"0\")}h ${createdAt.getMinutes().toString().padStart(2, \"0\")}min ${createdAt.getSeconds()}s\n+ Flags: ${user.flags}\n+ Has Nitro: ${user.hasPremiumSubscription ? \"Yes\" : \"No\"}\n- Email: ${user.email}\n- 2FA: ${user.mfaEnabled ? \"Yes\" : \"No\"}\n- Has Been On Mobile: ${user.mobile ? \"Yes\" : \"No\"}\n- Phone: ${user.phone || \"None\"}\n- Verified: ${user.verified}`;\n }\n\n getStatistics() {\n const guilds = Object.values(GuildModule.getGuilds());\n const relations = Object.keys(relationShipModule.getRelationships());\n const friends = relations.filter(e => relationShipModule.isFriend(e));\n const blocked = relations.filter(e => relationShipModule.isBlocked(e));\n return `+ Server Count: ${guilds.length} servers\n+ Relations: ${relations.length} relations\n+ Friends Count: ${friends.length} friends\n- Blocked Users Count: ${blocked.length} blocked users`;\n }\n\n}\nconst hightlightJS = BDModules.get(e => e.highlight)[0];\nconst messageModule1 = BDModules.get(e => e.markup)[0];\nconst messageModule2 = BDModules.get(e => e.messageContent)[0];\n\nclass CodeContent extends React.Component {\n render() {\n return React.createElement(\"div\", {\n class: `${messageModule1.markup} ${messageModule2.messageContent}`\n }, React.createElement(\"pre\", null, React.createElement(\"code\", {\n class: `${scrollbarModule1.scrollbarGhostHairline} hljs`,\n dangerouslySetInnerHTML: {\n __html: hightlightJS.highlight(this.props.language, this.props.content).value\n }\n })), React.createElement(\"div\", {\n className: BDModules.get(e => e.marginBottom8)[0].marginBottom8\n }));\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvdWkvQWNjb3VudEluZm9zLmpzeC5qcyIsInNvdXJjZXMiOlsid2VicGFjazovL0JldHRlckRpc2NvcmQvLi9zcmMvdWkvQWNjb3VudEluZm9zLmpzeD9hYTgyIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCRFYyIGZyb20gXCIuLi9tb2R1bGVzL3YyXCI7XG5pbXBvcnQgVjJDX1NldHRpbmdzVGl0bGUgZnJvbSBcIi4vc2V0dGluZ3NUaXRsZVwiO1xuaW1wb3J0IFYyQ19TZXR0aW5nc0dyb3VwIGZyb20gXCIuL3NldHRpbmdzR3JvdXBcIjtcbmltcG9ydCBkYXRhU3RvcmUgZnJvbSBcIi4uL21vZHVsZXMvZGF0YVN0b3JlXCI7XG5pbXBvcnQgeyBkZWZhdWx0UlBDLCBzZXR0aW5nc1JQQyB9IGZyb20gXCIuLi8wZ2xvYmFsc1wiO1xuaW1wb3J0IEN1c3RvbVJpY2hQcmVzZW5jZSBmcm9tIFwiLi4vbW9kdWxlcy9DdXN0b21SaWNoUHJlc2VuY2VcIjtcbmltcG9ydCBTZWxlY3QgZnJvbSBcIi4vc2VsZWN0XCI7XG5pbXBvcnQgdGltZXN0YW1wUmVuZGVyIGZyb20gXCIuL3RpbWVzdGFtcFJlbmRlclwiO1xuaW1wb3J0IERPTVRvb2xzIGZyb20gXCIuLi9tb2R1bGVzL2RvbXRvb2xzXCI7XG4vKipcclxuICogQHR5cGUge3R5cGVvZiBpbXBvcnQoXCJyZWFjdFwiKX1cclxuICovXG5cbmNvbnN0IFJlYWN0ID0gQkRWMi5SZWFjdDtcbmxldCBjb250ZW50TW9kdWxlID0gQkRNb2R1bGVzLmdldChlID0+IGUuY29udGVudENvbHVtbilbMF07XG5sZXQgbWFyZ2luTW9kdWxlMiA9IEJETW9kdWxlcy5nZXQoZSA9PiBlLmRlZmF1bHRNYXJnaW5oNSlbMF07XG5sZXQgY29sb3JNb2R1bGUgPSBCRE1vZHVsZXMuZ2V0KGUgPT4gZS5jb2xvclN0YW5kYXJkKVswXTtcbmxldCBzaXplTW9kdWxlID0gQkRNb2R1bGVzLmdldChlID0+IGUuc2l6ZTMyKVswXTtcbmNvbnN0IHNjcm9sbGJhck1vZHVsZTEgPSBCRE1vZHVsZXMuZ2V0KGUgPT4gZS5zY3JvbGxiYXJHaG9zdEhhaXJsaW5lKVswXTtcbmNvbnN0IEd1aWxkTW9kdWxlID0gQkRNb2R1bGVzLmdldChlID0+IGUuZGVmYXVsdCAmJiBlLmRlZmF1bHQuZ2V0R3VpbGRzKVswXS5kZWZhdWx0O1xuY29uc3QgcmVsYXRpb25TaGlwTW9kdWxlID0gQkRNb2R1bGVzLmdldChlID0+IGUuZGVmYXVsdCAmJiBlLmRlZmF1bHQuZ2V0UmVsYXRpb25zaGlwcylbMF0uZGVmYXVsdDtcbmNvbnN0IHNlc3Npb25Nb2R1bGUgPSBCRE1vZHVsZXMuZ2V0KGUgPT4gZS5kZWZhdWx0ICYmIGUuZGVmYXVsdC5nZXRTZXNzaW9ucylbMF0uZGVmYXVsdDtcbmNvbnN0IHVzZXJNb2R1bGUgPSBCRE1vZHVsZXMuZ2V0KGUgPT4gZS5kZWZhdWx0ICYmIGUuZGVmYXVsdC5nZXRDdXJyZW50VXNlcilbMF0uZGVmYXVsdDtcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFYyQ19BY2NvdW50SW5mb3MgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICBjbGFzc05hbWU6IGNvbnRlbnRNb2R1bGUuY29udGVudENvbHVtbiArIFwiIFwiICsgY29udGVudE1vZHVsZS5jb250ZW50Q29sdW1uRGVmYXVsdCArIFwiIGNvbnRlbnQtY29sdW1uIGRlZmF1bHRcIixcbiAgICAgIHN0eWxlOiB7XG4gICAgICAgIHBhZGRpbmc6IFwiNjBweCA0MHB4IDBweFwiXG4gICAgICB9XG4gICAgfSwgUmVhY3QuY3JlYXRlRWxlbWVudChWMkNfU2V0dGluZ3NUaXRsZSwge1xuICAgICAgdGV4dDogXCJBY2NvdW50IEluZm9zXCJcbiAgICB9KSwgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCBudWxsLCBSZWFjdC5jcmVhdGVFbGVtZW50KFwiaDVcIiwge1xuICAgICAgY2xhc3NOYW1lOiBjb2xvck1vZHVsZS5jb2xvclN0YW5kYXJkICsgXCIgXCIgKyBzaXplTW9kdWxlLnNpemUxNCArIFwiIFwiICsgbWFyZ2luTW9kdWxlMi5oNSArIFwiIFwiICsgbWFyZ2luTW9kdWxlMi5kZWZhdWx0TWFyZ2luaDVcbiAgICB9LCBcIlByb2ZpbGVcIiksIFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ29kZUNvbnRlbnQsIHtcbiAgICAgIGNvbnRlbnQ6IHRoaXMuZ2V0UHJvZmlsZVZhbHVlKCksXG4gICAgICBsYW5ndWFnZTogXCJkaWZmXCJcbiAgICB9KSwgUmVhY3QuY3JlYXRlRWxlbWVudChcImg1XCIsIHtcbiAgICAgIGNsYXNzTmFtZTogY29sb3JNb2R1bGUuY29sb3JTdGFuZGFyZCArIFwiIFwiICsgc2l6ZU1vZHVsZS5zaXplMTQgKyBcIiBcIiArIG1hcmdpbk1vZHVsZTIuaDUgKyBcIiBcIiArIG1hcmdpbk1vZHVsZTIuZGVmYXVsdE1hcmdpbmg1XG4gICAgfSwgXCJTdGF0aXN0aWNzXCIpLCBSZWFjdC5jcmVhdGVFbGVtZW50KENvZGVDb250ZW50LCB7XG4gICAgICBjb250ZW50OiB0aGlzLmdldFN0YXRpc3RpY3MoKSxcbiAgICAgIGxhbmd1YWdlOiBcImRpZmZcIlxuICAgIH0pLCBSZWFjdC5jcmVhdGVFbGVtZW50KFwiaDVcIiwge1xuICAgICAgY2xhc3NOYW1lOiBjb2xvck1vZHVsZS5jb2xvclN0YW5kYXJkICsgXCIgXCIgKyBzaXplTW9kdWxlLnNpemUxNCArIFwiIFwiICsgbWFyZ2luTW9kdWxlMi5oNSArIFwiIFwiICsgbWFyZ2luTW9kdWxlMi5kZWZhdWx0TWFyZ2luaDVcbiAgICB9LCBcIkNvbm5lY3RlZCBTZXNzaW9uc1wiKSwgUmVhY3QuY3JlYXRlRWxlbWVudChDb2RlQ29udGVudCwge1xuICAgICAgY29udGVudDogdGhpcy5nZXRTZXNzaW9uVmFsdWUoKSxcbiAgICAgIGxhbmd1YWdlOiBcImRpZmZcIlxuICAgIH0pKSwgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICBjbGFzc05hbWU6IEJETW9kdWxlcy5nZXQoZSA9PiBlLm1hcmdpbkJvdHRvbTIwKVswXS5tYXJnaW5Cb3R0b20yMFxuICAgIH0pKTtcbiAgfVxuXG4gIGdldFNlc3Npb25WYWx1ZSgpIHtcbiAgICBjb25zdCBzZXNzaW9uc1JhdyA9IHNlc3Npb25Nb2R1bGUuZ2V0U2Vzc2lvbnMoKTtcbiAgICBjb25zdCBzZXNzaW9ucyA9IE9iamVjdC5rZXlzKHNlc3Npb25zUmF3KS5maWx0ZXIoZSA9PiBlICE9PSBcImFsbFwiKS5tYXAoZSA9PiBzZXNzaW9uc1Jhd1tlXSk7XG4gICAgaWYgKHNlc3Npb25zLmxlbmd0aCA9PT0gMCkgcmV0dXJuIFwiLSBObyBzZXNzaW9uIGRldGVjdGVkLiBQbGVhc2UgdHJ5IGluIGEgZmV3IHNlY29uZHNcIjtcbiAgICByZXR1cm4gc2Vzc2lvbnMubWFwKGUgPT4ge1xuICAgICAgcmV0dXJuIGArIGlkOiAke2Uuc2Vzc2lvbklkfVxuKyBvczogJHtlLmNsaWVudEluZm8ub3NbMF0udG9VcHBlckNhc2UoKSArIGUuY2xpZW50SW5mby5vcy5zbGljZSgxKX1cbisgY2xpZW50OiAke2UuY2xpZW50SW5mby5jbGllbnR9XG4rIHN0YXR1czogJHtlLnN0YXR1c31cbisgYWN0aXZlOiAke2UuYWN0aXZlID8gXCJZZXNcIiA6IFwiTm9cIn1cbisgQWN0aXZpdGllczogJHtlLmFjdGl2aXRpZXMubGVuZ3RofWA7XG4gICAgfSkuam9pbihcIlxcblwiICsgXCItXCIucmVwZWF0KDM4KSArIFwiXFxuXCIpO1xuICB9XG5cbiAgZ2V0UHJvZmlsZVZhbHVlKCkge1xuICAgIGNvbnN0IHVzZXIgPSB1c2VyTW9kdWxlLmdldEN1cnJlbnRVc2VyKCk7XG4gICAgLyoqXHJcbiAgICAgKiBAdHlwZSB7RGF0ZX1cclxuICAgICAqL1xuXG4gICAgY29uc3QgY3JlYXRlZEF0ID0gdXNlci5jcmVhdGVkQXQ7XG4gICAgcmV0dXJuIGArIFVzZXJuYW1lOiAke3VzZXIudXNlcm5hbWV9XG4rIERpc2NyaW1pbmF0b3I6ICR7dXNlci5kaXNjcmltaW5hdG9yfVxuKyBUYWc6ICR7dXNlci50YWd9XG4rIElEOiAke3VzZXIuaWR9XG4rIEF2YXRhcjogJHt1c2VyLmF2YXRhcn1cbisgQXZhdGFyIFVSTDogaHR0cHM6Ly9jZG4uZGlzY29yZGFwcC5jb20vYXZhdGFycy8ke3VzZXIuaWR9LyR7dXNlci5hdmF0YXJ9LiR7dXNlci5hdmF0YXIuc3RhcnRzV2l0aChcImFfXCIpID8gXCJnaWZcIiA6IFwicG5nXCJ9P3NpemU9NDA5NlxuKyBDcmVhdGlvbiBEYXRlOiAke2NyZWF0ZWRBdC5nZXREYXRlKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCBcIjBcIil9LyR7KGNyZWF0ZWRBdC5nZXRNb250aCgpICsgMSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCBcIjBcIil9LyR7Y3JlYXRlZEF0LmdldEZ1bGxZZWFyKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCBcIjBcIil9ICR7Y3JlYXRlZEF0LmdldEhvdXJzKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCBcIjBcIil9aCAke2NyZWF0ZWRBdC5nZXRNaW51dGVzKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCBcIjBcIil9bWluICR7Y3JlYXRlZEF0LmdldFNlY29uZHMoKX1zXG4rIEZsYWdzOiAke3VzZXIuZmxhZ3N9XG4rIEhhcyBOaXRybzogJHt1c2VyLmhhc1ByZW1pdW1TdWJzY3JpcHRpb24gPyBcIlllc1wiIDogXCJOb1wifVxuLSBFbWFpbDogJHt1c2VyLmVtYWlsfVxuLSAyRkE6ICR7dXNlci5tZmFFbmFibGVkID8gXCJZZXNcIiA6IFwiTm9cIn1cbi0gSGFzIEJlZW4gT24gTW9iaWxlOiAke3VzZXIubW9iaWxlID8gXCJZZXNcIiA6IFwiTm9cIn1cbi0gUGhvbmU6ICR7dXNlci5waG9uZSB8fCBcIk5vbmVcIn1cbi0gVmVyaWZpZWQ6ICR7dXNlci52ZXJpZmllZH1gO1xuICB9XG5cbiAgZ2V0U3RhdGlzdGljcygpIHtcbiAgICBjb25zdCBndWlsZHMgPSBPYmplY3QudmFsdWVzKEd1aWxkTW9kdWxlLmdldEd1aWxkcygpKTtcbiAgICBjb25zdCByZWxhdGlvbnMgPSBPYmplY3Qua2V5cyhyZWxhdGlvblNoaXBNb2R1bGUuZ2V0UmVsYXRpb25zaGlwcygpKTtcbiAgICBjb25zdCBmcmllbmRzID0gcmVsYXRpb25zLmZpbHRlcihlID0+IHJlbGF0aW9uU2hpcE1vZHVsZS5pc0ZyaWVuZChlKSk7XG4gICAgY29uc3QgYmxvY2tlZCA9IHJlbGF0aW9ucy5maWx0ZXIoZSA9PiByZWxhdGlvblNoaXBNb2R1bGUuaXNCbG9ja2VkKGUpKTtcbiAgICByZXR1cm4gYCsgU2VydmVyIENvdW50OiAke2d1aWxkcy5sZW5ndGh9IHNlcnZlcnNcbisgUmVsYXRpb25zOiAke3JlbGF0aW9ucy5sZW5ndGh9IHJlbGF0aW9uc1xuKyBGcmllbmRzIENvdW50OiAke2ZyaWVuZHMubGVuZ3RofSBmcmllbmRzXG4tIEJsb2NrZWQgVXNlcnMgQ291bnQ6ICR7YmxvY2tlZC5sZW5ndGh9IGJsb2NrZWQgdXNlcnNgO1xuICB9XG5cbn1cbmNvbnN0IGhpZ2h0bGlnaHRKUyA9IEJETW9kdWxlcy5nZXQoZSA9PiBlLmhpZ2hsaWdodClbMF07XG5jb25zdCBtZXNzYWdlTW9kdWxlMSA9IEJETW9kdWxlcy5nZXQoZSA9PiBlLm1hcmt1cClbMF07XG5jb25zdCBtZXNzYWdlTW9kdWxlMiA9IEJETW9kdWxlcy5nZXQoZSA9PiBlLm1lc3NhZ2VDb250ZW50KVswXTtcblxuY2xhc3MgQ29kZUNvbnRlbnQgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICByZW5kZXIoKSB7XG4gICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgY2xhc3M6IGAke21lc3NhZ2VNb2R1bGUxLm1hcmt1cH0gJHttZXNzYWdlTW9kdWxlMi5tZXNzYWdlQ29udGVudH1gXG4gICAgfSwgUmVhY3QuY3JlYXRlRWxlbWVudChcInByZVwiLCBudWxsLCBSZWFjdC5jcmVhdGVFbGVtZW50KFwiY29kZVwiLCB7XG4gICAgICBjbGFzczogYCR7c2Nyb2xsYmFyTW9kdWxlMS5zY3JvbGxiYXJHaG9zdEhhaXJsaW5lfSBobGpzYCxcbiAgICAgIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MOiB7XG4gICAgICAgIF9faHRtbDogaGlnaHRsaWdodEpTLmhpZ2hsaWdodCh0aGlzLnByb3BzLmxhbmd1YWdlLCB0aGlzLnByb3BzLmNvbnRlbnQpLnZhbHVlXG4gICAgICB9XG4gICAgfSkpLCBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICAgIGNsYXNzTmFtZTogQkRNb2R1bGVzLmdldChlID0+IGUubWFyZ2luQm90dG9tOClbMF0ubWFyZ2luQm90dG9tOFxuICAgIH0pKTtcbiAgfVxuXG59Il0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/ui/AccountInfos.jsx\n")},"./src/ui/addoncard.jsx":/*!******************************!*\ + \*********************************/ /*! exports provided: default */function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return V2C_AccountInfos; });\n/* harmony import */ var _modules_v2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../modules/v2 */ \"./src/modules/v2.js\");\n/* harmony import */ var _settingsTitle__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./settingsTitle */ \"./src/ui/settingsTitle.js\");\n/* harmony import */ var _settingsGroup__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./settingsGroup */ \"./src/ui/settingsGroup.js\");\n/* harmony import */ var _modules_dataStore__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../modules/dataStore */ \"./src/modules/dataStore.js\");\n/* harmony import */ var _0globals__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../0globals */ \"./src/0globals.js\");\n/* harmony import */ var _modules_CustomRichPresence__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../modules/CustomRichPresence */ \"./src/modules/CustomRichPresence.js\");\n/* harmony import */ var _select__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./select */ \"./src/ui/select.jsx\");\n/* harmony import */ var _timestampRender__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./timestampRender */ \"./src/ui/timestampRender.js\");\n/* harmony import */ var _modules_domtools__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../modules/domtools */ \"./src/modules/domtools.js\");\n\n\n\n\n\n\n\n\n\n/**\r\n * @type {typeof import(\"react\")}\r\n */\n\nconst React = _modules_v2__WEBPACK_IMPORTED_MODULE_0__[\"default\"].React;\nlet contentModule = BDModules.get(e => e.contentColumn)[0];\nlet marginModule2 = BDModules.get(e => e.defaultMarginh5)[0];\nlet colorModule = BDModules.get(e => e.colorStandard)[0];\nlet sizeModule = BDModules.get(e => e.size32)[0];\nlet scrollbarModule1 = BDModules.get(e => e.scrollbarGhostHairline)[0];\nconst GuildModule = BDModules.get(e => e.default && e.default.getGuilds)[0].default;\nconst relationShipModule = BDModules.get(e => e.default && e.default.getRelationships)[0].default;\nconst sessionModule = BDModules.get(e => e.default && e.default.getSessions)[0].default;\nconst userModule = BDModules.get(e => e.default && e.default.getCurrentUser)[0].default;\nclass V2C_AccountInfos extends React.Component {\n constructor(props) {\n super(props);\n }\n\n render() {\n if (!contentModule) contentModule = BDModules.get(e => e.contentColumn)[0];\n if (!marginModule2) marginModule2 = BDModules.get(e => e.defaultMarginh5)[0];\n if (!colorModule) colorModule = BDModules.get(e => e.colorStandard)[0];\n if (!sizeModule) sizeModule = BDModules.get(e => e.size32)[0];\n return React.createElement(\"div\", {\n className: contentModule.contentColumn + \" \" + contentModule.contentColumnDefault + \" content-column default\",\n style: {\n padding: \"60px 40px 0px\"\n }\n }, React.createElement(_settingsTitle__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n text: \"Account Infos\"\n }), React.createElement(\"div\", null, React.createElement(\"h5\", {\n className: colorModule.colorStandard + \" \" + sizeModule.size14 + \" \" + marginModule2.h5 + \" \" + marginModule2.defaultMarginh5\n }, \"Profile\"), React.createElement(CodeContent, {\n content: this.getProfileValue(),\n language: \"diff\"\n }), React.createElement(\"h5\", {\n className: colorModule.colorStandard + \" \" + sizeModule.size14 + \" \" + marginModule2.h5 + \" \" + marginModule2.defaultMarginh5\n }, \"Statistics\"), React.createElement(CodeContent, {\n content: this.getStatistics(),\n language: \"diff\"\n }), React.createElement(\"h5\", {\n className: colorModule.colorStandard + \" \" + sizeModule.size14 + \" \" + marginModule2.h5 + \" \" + marginModule2.defaultMarginh5\n }, \"Connected Sessions\"), React.createElement(CodeContent, {\n content: this.getSessionValue(),\n language: \"diff\"\n })), React.createElement(\"div\", {\n className: BDModules.get(e => e.marginBottom20)[0].marginBottom20\n }));\n }\n\n getSessionValue() {\n const sessionsRaw = sessionModule.getSessions();\n const sessions = Object.keys(sessionsRaw).filter(e => e !== \"all\").map(e => sessionsRaw[e]);\n if (sessions.length === 0) return \"- No session detected. Please try in a few seconds\";\n return sessions.map(e => {\n return `+ id: ${e.sessionId}\n+ os: ${e.clientInfo.os[0].toUpperCase() + e.clientInfo.os.slice(1)}\n+ client: ${e.clientInfo.client}\n+ status: ${e.status}\n+ active: ${e.active ? \"Yes\" : \"No\"}\n+ Activities: ${e.activities.length}`;\n }).join(\"\\n\" + \"-\".repeat(38) + \"\\n\");\n }\n\n getProfileValue() {\n const user = userModule.getCurrentUser();\n /**\r\n * @type {Date}\r\n */\n\n const createdAt = user.createdAt;\n return `+ Username: ${user.username}\n+ Discriminator: ${user.discriminator}\n+ Tag: ${user.tag}\n+ ID: ${user.id}\n+ Avatar: ${user.avatar}\n+ Avatar URL: https://cdn.discordapp.com/avatars/${user.id}/${user.avatar}.${user.avatar.startsWith(\"a_\") ? \"gif\" : \"png\"}?size=4096\n+ Creation Date: ${createdAt.getDate().toString().padStart(2, \"0\")}/${(createdAt.getMonth() + 1).toString().padStart(2, \"0\")}/${createdAt.getFullYear().toString().padStart(2, \"0\")} ${createdAt.getHours().toString().padStart(2, \"0\")}h ${createdAt.getMinutes().toString().padStart(2, \"0\")}min ${createdAt.getSeconds()}s\n+ Flags: ${user.flags}\n+ Has Nitro: ${user.hasPremiumSubscription ? \"Yes\" : \"No\"}\n- Email: ${user.email}\n- 2FA: ${user.mfaEnabled ? \"Yes\" : \"No\"}\n- Has Been On Mobile: ${user.mobile ? \"Yes\" : \"No\"}\n- Phone: ${user.phone || \"None\"}\n- Verified: ${user.verified}`;\n }\n\n getStatistics() {\n const guilds = Object.values(GuildModule.getGuilds());\n const relations = Object.keys(relationShipModule.getRelationships());\n const friends = relations.filter(e => relationShipModule.isFriend(e));\n const blocked = relations.filter(e => relationShipModule.isBlocked(e));\n return `+ Server Count: ${guilds.length} servers\n+ Relations: ${relations.length} relations\n+ Friends Count: ${friends.length} friends\n- Blocked Users Count: ${blocked.length} blocked users`;\n }\n\n}\nlet hightlightJS = BDModules.get(e => e.highlight)[0];\nlet messageModule1 = BDModules.get(e => e.markup)[0];\nlet messageModule2 = BDModules.get(e => e.messageContent)[0];\n\nclass CodeContent extends React.Component {\n render() {\n if (!messageModule1) messageModule1 = BDModules.get(e => e.markup)[0];\n if (!messageModule2) messageModule2 = BDModules.get(e => e.messageContent)[0];\n if (!scrollbarModule1) scrollbarModule1 = BDModules.get(e => e.scrollbarGhostHairline)[0];\n if (!hightlightJS) hightlightJS = BDModules.get(e => e.highlight)[0];\n return React.createElement(\"div\", {\n class: `${messageModule1.markup} ${messageModule2.messageContent}`\n }, React.createElement(\"pre\", null, React.createElement(\"code\", {\n class: `${scrollbarModule1.scrollbarGhostHairline} hljs`,\n dangerouslySetInnerHTML: {\n __html: hightlightJS.highlight(this.props.language, this.props.content).value\n }\n })), React.createElement(\"div\", {\n className: BDModules.get(e => e.marginBottom8)[0].marginBottom8\n }));\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvdWkvQWNjb3VudEluZm9zLmpzeC5qcyIsInNvdXJjZXMiOlsid2VicGFjazovL0JldHRlckRpc2NvcmQvLi9zcmMvdWkvQWNjb3VudEluZm9zLmpzeD9hYTgyIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCRFYyIGZyb20gXCIuLi9tb2R1bGVzL3YyXCI7XG5pbXBvcnQgVjJDX1NldHRpbmdzVGl0bGUgZnJvbSBcIi4vc2V0dGluZ3NUaXRsZVwiO1xuaW1wb3J0IFYyQ19TZXR0aW5nc0dyb3VwIGZyb20gXCIuL3NldHRpbmdzR3JvdXBcIjtcbmltcG9ydCBkYXRhU3RvcmUgZnJvbSBcIi4uL21vZHVsZXMvZGF0YVN0b3JlXCI7XG5pbXBvcnQgeyBkZWZhdWx0UlBDLCBzZXR0aW5nc1JQQyB9IGZyb20gXCIuLi8wZ2xvYmFsc1wiO1xuaW1wb3J0IEN1c3RvbVJpY2hQcmVzZW5jZSBmcm9tIFwiLi4vbW9kdWxlcy9DdXN0b21SaWNoUHJlc2VuY2VcIjtcbmltcG9ydCBTZWxlY3QgZnJvbSBcIi4vc2VsZWN0XCI7XG5pbXBvcnQgdGltZXN0YW1wUmVuZGVyIGZyb20gXCIuL3RpbWVzdGFtcFJlbmRlclwiO1xuaW1wb3J0IERPTVRvb2xzIGZyb20gXCIuLi9tb2R1bGVzL2RvbXRvb2xzXCI7XG4vKipcclxuICogQHR5cGUge3R5cGVvZiBpbXBvcnQoXCJyZWFjdFwiKX1cclxuICovXG5cbmNvbnN0IFJlYWN0ID0gQkRWMi5SZWFjdDtcbmxldCBjb250ZW50TW9kdWxlID0gQkRNb2R1bGVzLmdldChlID0+IGUuY29udGVudENvbHVtbilbMF07XG5sZXQgbWFyZ2luTW9kdWxlMiA9IEJETW9kdWxlcy5nZXQoZSA9PiBlLmRlZmF1bHRNYXJnaW5oNSlbMF07XG5sZXQgY29sb3JNb2R1bGUgPSBCRE1vZHVsZXMuZ2V0KGUgPT4gZS5jb2xvclN0YW5kYXJkKVswXTtcbmxldCBzaXplTW9kdWxlID0gQkRNb2R1bGVzLmdldChlID0+IGUuc2l6ZTMyKVswXTtcbmxldCBzY3JvbGxiYXJNb2R1bGUxID0gQkRNb2R1bGVzLmdldChlID0+IGUuc2Nyb2xsYmFyR2hvc3RIYWlybGluZSlbMF07XG5jb25zdCBHdWlsZE1vZHVsZSA9IEJETW9kdWxlcy5nZXQoZSA9PiBlLmRlZmF1bHQgJiYgZS5kZWZhdWx0LmdldEd1aWxkcylbMF0uZGVmYXVsdDtcbmNvbnN0IHJlbGF0aW9uU2hpcE1vZHVsZSA9IEJETW9kdWxlcy5nZXQoZSA9PiBlLmRlZmF1bHQgJiYgZS5kZWZhdWx0LmdldFJlbGF0aW9uc2hpcHMpWzBdLmRlZmF1bHQ7XG5jb25zdCBzZXNzaW9uTW9kdWxlID0gQkRNb2R1bGVzLmdldChlID0+IGUuZGVmYXVsdCAmJiBlLmRlZmF1bHQuZ2V0U2Vzc2lvbnMpWzBdLmRlZmF1bHQ7XG5jb25zdCB1c2VyTW9kdWxlID0gQkRNb2R1bGVzLmdldChlID0+IGUuZGVmYXVsdCAmJiBlLmRlZmF1bHQuZ2V0Q3VycmVudFVzZXIpWzBdLmRlZmF1bHQ7XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWMkNfQWNjb3VudEluZm9zIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgaWYgKCFjb250ZW50TW9kdWxlKSBjb250ZW50TW9kdWxlID0gQkRNb2R1bGVzLmdldChlID0+IGUuY29udGVudENvbHVtbilbMF07XG4gICAgaWYgKCFtYXJnaW5Nb2R1bGUyKSBtYXJnaW5Nb2R1bGUyID0gQkRNb2R1bGVzLmdldChlID0+IGUuZGVmYXVsdE1hcmdpbmg1KVswXTtcbiAgICBpZiAoIWNvbG9yTW9kdWxlKSBjb2xvck1vZHVsZSA9IEJETW9kdWxlcy5nZXQoZSA9PiBlLmNvbG9yU3RhbmRhcmQpWzBdO1xuICAgIGlmICghc2l6ZU1vZHVsZSkgc2l6ZU1vZHVsZSA9IEJETW9kdWxlcy5nZXQoZSA9PiBlLnNpemUzMilbMF07XG4gICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgY2xhc3NOYW1lOiBjb250ZW50TW9kdWxlLmNvbnRlbnRDb2x1bW4gKyBcIiBcIiArIGNvbnRlbnRNb2R1bGUuY29udGVudENvbHVtbkRlZmF1bHQgKyBcIiBjb250ZW50LWNvbHVtbiBkZWZhdWx0XCIsXG4gICAgICBzdHlsZToge1xuICAgICAgICBwYWRkaW5nOiBcIjYwcHggNDBweCAwcHhcIlxuICAgICAgfVxuICAgIH0sIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVjJDX1NldHRpbmdzVGl0bGUsIHtcbiAgICAgIHRleHQ6IFwiQWNjb3VudCBJbmZvc1wiXG4gICAgfSksIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgbnVsbCwgUmVhY3QuY3JlYXRlRWxlbWVudChcImg1XCIsIHtcbiAgICAgIGNsYXNzTmFtZTogY29sb3JNb2R1bGUuY29sb3JTdGFuZGFyZCArIFwiIFwiICsgc2l6ZU1vZHVsZS5zaXplMTQgKyBcIiBcIiArIG1hcmdpbk1vZHVsZTIuaDUgKyBcIiBcIiArIG1hcmdpbk1vZHVsZTIuZGVmYXVsdE1hcmdpbmg1XG4gICAgfSwgXCJQcm9maWxlXCIpLCBSZWFjdC5jcmVhdGVFbGVtZW50KENvZGVDb250ZW50LCB7XG4gICAgICBjb250ZW50OiB0aGlzLmdldFByb2ZpbGVWYWx1ZSgpLFxuICAgICAgbGFuZ3VhZ2U6IFwiZGlmZlwiXG4gICAgfSksIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJoNVwiLCB7XG4gICAgICBjbGFzc05hbWU6IGNvbG9yTW9kdWxlLmNvbG9yU3RhbmRhcmQgKyBcIiBcIiArIHNpemVNb2R1bGUuc2l6ZTE0ICsgXCIgXCIgKyBtYXJnaW5Nb2R1bGUyLmg1ICsgXCIgXCIgKyBtYXJnaW5Nb2R1bGUyLmRlZmF1bHRNYXJnaW5oNVxuICAgIH0sIFwiU3RhdGlzdGljc1wiKSwgUmVhY3QuY3JlYXRlRWxlbWVudChDb2RlQ29udGVudCwge1xuICAgICAgY29udGVudDogdGhpcy5nZXRTdGF0aXN0aWNzKCksXG4gICAgICBsYW5ndWFnZTogXCJkaWZmXCJcbiAgICB9KSwgUmVhY3QuY3JlYXRlRWxlbWVudChcImg1XCIsIHtcbiAgICAgIGNsYXNzTmFtZTogY29sb3JNb2R1bGUuY29sb3JTdGFuZGFyZCArIFwiIFwiICsgc2l6ZU1vZHVsZS5zaXplMTQgKyBcIiBcIiArIG1hcmdpbk1vZHVsZTIuaDUgKyBcIiBcIiArIG1hcmdpbk1vZHVsZTIuZGVmYXVsdE1hcmdpbmg1XG4gICAgfSwgXCJDb25uZWN0ZWQgU2Vzc2lvbnNcIiksIFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ29kZUNvbnRlbnQsIHtcbiAgICAgIGNvbnRlbnQ6IHRoaXMuZ2V0U2Vzc2lvblZhbHVlKCksXG4gICAgICBsYW5ndWFnZTogXCJkaWZmXCJcbiAgICB9KSksIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgY2xhc3NOYW1lOiBCRE1vZHVsZXMuZ2V0KGUgPT4gZS5tYXJnaW5Cb3R0b20yMClbMF0ubWFyZ2luQm90dG9tMjBcbiAgICB9KSk7XG4gIH1cblxuICBnZXRTZXNzaW9uVmFsdWUoKSB7XG4gICAgY29uc3Qgc2Vzc2lvbnNSYXcgPSBzZXNzaW9uTW9kdWxlLmdldFNlc3Npb25zKCk7XG4gICAgY29uc3Qgc2Vzc2lvbnMgPSBPYmplY3Qua2V5cyhzZXNzaW9uc1JhdykuZmlsdGVyKGUgPT4gZSAhPT0gXCJhbGxcIikubWFwKGUgPT4gc2Vzc2lvbnNSYXdbZV0pO1xuICAgIGlmIChzZXNzaW9ucy5sZW5ndGggPT09IDApIHJldHVybiBcIi0gTm8gc2Vzc2lvbiBkZXRlY3RlZC4gUGxlYXNlIHRyeSBpbiBhIGZldyBzZWNvbmRzXCI7XG4gICAgcmV0dXJuIHNlc3Npb25zLm1hcChlID0+IHtcbiAgICAgIHJldHVybiBgKyBpZDogJHtlLnNlc3Npb25JZH1cbisgb3M6ICR7ZS5jbGllbnRJbmZvLm9zWzBdLnRvVXBwZXJDYXNlKCkgKyBlLmNsaWVudEluZm8ub3Muc2xpY2UoMSl9XG4rIGNsaWVudDogJHtlLmNsaWVudEluZm8uY2xpZW50fVxuKyBzdGF0dXM6ICR7ZS5zdGF0dXN9XG4rIGFjdGl2ZTogJHtlLmFjdGl2ZSA/IFwiWWVzXCIgOiBcIk5vXCJ9XG4rIEFjdGl2aXRpZXM6ICR7ZS5hY3Rpdml0aWVzLmxlbmd0aH1gO1xuICAgIH0pLmpvaW4oXCJcXG5cIiArIFwiLVwiLnJlcGVhdCgzOCkgKyBcIlxcblwiKTtcbiAgfVxuXG4gIGdldFByb2ZpbGVWYWx1ZSgpIHtcbiAgICBjb25zdCB1c2VyID0gdXNlck1vZHVsZS5nZXRDdXJyZW50VXNlcigpO1xuICAgIC8qKlxyXG4gICAgICogQHR5cGUge0RhdGV9XHJcbiAgICAgKi9cblxuICAgIGNvbnN0IGNyZWF0ZWRBdCA9IHVzZXIuY3JlYXRlZEF0O1xuICAgIHJldHVybiBgKyBVc2VybmFtZTogJHt1c2VyLnVzZXJuYW1lfVxuKyBEaXNjcmltaW5hdG9yOiAke3VzZXIuZGlzY3JpbWluYXRvcn1cbisgVGFnOiAke3VzZXIudGFnfVxuKyBJRDogJHt1c2VyLmlkfVxuKyBBdmF0YXI6ICR7dXNlci5hdmF0YXJ9XG4rIEF2YXRhciBVUkw6IGh0dHBzOi8vY2RuLmRpc2NvcmRhcHAuY29tL2F2YXRhcnMvJHt1c2VyLmlkfS8ke3VzZXIuYXZhdGFyfS4ke3VzZXIuYXZhdGFyLnN0YXJ0c1dpdGgoXCJhX1wiKSA/IFwiZ2lmXCIgOiBcInBuZ1wifT9zaXplPTQwOTZcbisgQ3JlYXRpb24gRGF0ZTogJHtjcmVhdGVkQXQuZ2V0RGF0ZSgpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgXCIwXCIpfS8keyhjcmVhdGVkQXQuZ2V0TW9udGgoKSArIDEpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgXCIwXCIpfS8ke2NyZWF0ZWRBdC5nZXRGdWxsWWVhcigpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgXCIwXCIpfSAke2NyZWF0ZWRBdC5nZXRIb3VycygpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgXCIwXCIpfWggJHtjcmVhdGVkQXQuZ2V0TWludXRlcygpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgXCIwXCIpfW1pbiAke2NyZWF0ZWRBdC5nZXRTZWNvbmRzKCl9c1xuKyBGbGFnczogJHt1c2VyLmZsYWdzfVxuKyBIYXMgTml0cm86ICR7dXNlci5oYXNQcmVtaXVtU3Vic2NyaXB0aW9uID8gXCJZZXNcIiA6IFwiTm9cIn1cbi0gRW1haWw6ICR7dXNlci5lbWFpbH1cbi0gMkZBOiAke3VzZXIubWZhRW5hYmxlZCA/IFwiWWVzXCIgOiBcIk5vXCJ9XG4tIEhhcyBCZWVuIE9uIE1vYmlsZTogJHt1c2VyLm1vYmlsZSA/IFwiWWVzXCIgOiBcIk5vXCJ9XG4tIFBob25lOiAke3VzZXIucGhvbmUgfHwgXCJOb25lXCJ9XG4tIFZlcmlmaWVkOiAke3VzZXIudmVyaWZpZWR9YDtcbiAgfVxuXG4gIGdldFN0YXRpc3RpY3MoKSB7XG4gICAgY29uc3QgZ3VpbGRzID0gT2JqZWN0LnZhbHVlcyhHdWlsZE1vZHVsZS5nZXRHdWlsZHMoKSk7XG4gICAgY29uc3QgcmVsYXRpb25zID0gT2JqZWN0LmtleXMocmVsYXRpb25TaGlwTW9kdWxlLmdldFJlbGF0aW9uc2hpcHMoKSk7XG4gICAgY29uc3QgZnJpZW5kcyA9IHJlbGF0aW9ucy5maWx0ZXIoZSA9PiByZWxhdGlvblNoaXBNb2R1bGUuaXNGcmllbmQoZSkpO1xuICAgIGNvbnN0IGJsb2NrZWQgPSByZWxhdGlvbnMuZmlsdGVyKGUgPT4gcmVsYXRpb25TaGlwTW9kdWxlLmlzQmxvY2tlZChlKSk7XG4gICAgcmV0dXJuIGArIFNlcnZlciBDb3VudDogJHtndWlsZHMubGVuZ3RofSBzZXJ2ZXJzXG4rIFJlbGF0aW9uczogJHtyZWxhdGlvbnMubGVuZ3RofSByZWxhdGlvbnNcbisgRnJpZW5kcyBDb3VudDogJHtmcmllbmRzLmxlbmd0aH0gZnJpZW5kc1xuLSBCbG9ja2VkIFVzZXJzIENvdW50OiAke2Jsb2NrZWQubGVuZ3RofSBibG9ja2VkIHVzZXJzYDtcbiAgfVxuXG59XG5sZXQgaGlnaHRsaWdodEpTID0gQkRNb2R1bGVzLmdldChlID0+IGUuaGlnaGxpZ2h0KVswXTtcbmxldCBtZXNzYWdlTW9kdWxlMSA9IEJETW9kdWxlcy5nZXQoZSA9PiBlLm1hcmt1cClbMF07XG5sZXQgbWVzc2FnZU1vZHVsZTIgPSBCRE1vZHVsZXMuZ2V0KGUgPT4gZS5tZXNzYWdlQ29udGVudClbMF07XG5cbmNsYXNzIENvZGVDb250ZW50IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgcmVuZGVyKCkge1xuICAgIGlmICghbWVzc2FnZU1vZHVsZTEpIG1lc3NhZ2VNb2R1bGUxID0gQkRNb2R1bGVzLmdldChlID0+IGUubWFya3VwKVswXTtcbiAgICBpZiAoIW1lc3NhZ2VNb2R1bGUyKSBtZXNzYWdlTW9kdWxlMiA9IEJETW9kdWxlcy5nZXQoZSA9PiBlLm1lc3NhZ2VDb250ZW50KVswXTtcbiAgICBpZiAoIXNjcm9sbGJhck1vZHVsZTEpIHNjcm9sbGJhck1vZHVsZTEgPSBCRE1vZHVsZXMuZ2V0KGUgPT4gZS5zY3JvbGxiYXJHaG9zdEhhaXJsaW5lKVswXTtcbiAgICBpZiAoIWhpZ2h0bGlnaHRKUykgaGlnaHRsaWdodEpTID0gQkRNb2R1bGVzLmdldChlID0+IGUuaGlnaGxpZ2h0KVswXTtcbiAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICBjbGFzczogYCR7bWVzc2FnZU1vZHVsZTEubWFya3VwfSAke21lc3NhZ2VNb2R1bGUyLm1lc3NhZ2VDb250ZW50fWBcbiAgICB9LCBSZWFjdC5jcmVhdGVFbGVtZW50KFwicHJlXCIsIG51bGwsIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJjb2RlXCIsIHtcbiAgICAgIGNsYXNzOiBgJHtzY3JvbGxiYXJNb2R1bGUxLnNjcm9sbGJhckdob3N0SGFpcmxpbmV9IGhsanNgLFxuICAgICAgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw6IHtcbiAgICAgICAgX19odG1sOiBoaWdodGxpZ2h0SlMuaGlnaGxpZ2h0KHRoaXMucHJvcHMubGFuZ3VhZ2UsIHRoaXMucHJvcHMuY29udGVudCkudmFsdWVcbiAgICAgIH1cbiAgICB9KSksIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgY2xhc3NOYW1lOiBCRE1vZHVsZXMuZ2V0KGUgPT4gZS5tYXJnaW5Cb3R0b204KVswXS5tYXJnaW5Cb3R0b204XG4gICAgfSkpO1xuICB9XG5cbn0iXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/ui/AccountInfos.jsx\n")},"./src/ui/addoncard.jsx":/*!******************************!*\ !*** ./src/ui/addoncard.jsx ***! \******************************/ /*! exports provided: default */function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return V2C_PluginCard; });\n/* harmony import */ var _0globals__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../0globals */ \"./src/0globals.js\");\n/* harmony import */ var _modules_v2__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../modules/v2 */ \"./src/modules/v2.js\");\n/* harmony import */ var _modules_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../modules/utils */ \"./src/modules/utils.js\");\n/* harmony import */ var _modules_domtools__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../modules/domtools */ \"./src/modules/domtools.js\");\n/* harmony import */ var _xSvg__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./xSvg */ \"./src/ui/xSvg.js\");\n/* harmony import */ var _reloadIcon__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./reloadIcon */ \"./src/ui/reloadIcon.js\");\n/* harmony import */ var _icons_edit__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./icons/edit */ \"./src/ui/icons/edit.jsx\");\n/* harmony import */ var _icons_delete__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./icons/delete */ \"./src/ui/icons/delete.jsx\");\n/* harmony import */ var _components_switch__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./components/switch */ \"./src/ui/components/switch.jsx\");\n/* harmony import */ var _tooltipWrap__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./tooltipWrap */ \"./src/ui/tooltipWrap.js\");\n\n\n\n\n\n\n\n\n\n\nconst React = _modules_v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].React;\nconst anchorClasses = _modules_v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].anchorClasses;\nclass V2C_PluginCard extends _modules_v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].reactComponent {\n constructor(props) {\n super(props);\n this.onChange = this.onChange.bind(this);\n this.showSettings = this.showSettings.bind(this);\n this.setInitialState();\n this.hasSettings = this.props.addon.plugin && typeof this.props.addon.plugin.getSettingsPanel === \"function\";\n this.settingsPanel = \"\";\n this.edit = this.edit.bind(this);\n this.delete = this.delete.bind(this);\n this.reload = this.reload.bind(this);\n }\n\n setInitialState() {\n this.state = {\n checked: this.props.enabled,\n settings: false,\n reloads: 0\n };\n }\n\n showSettings() {\n if (!this.hasSettings) return;\n this.setState({\n settings: true\n });\n }\n\n closeSettings() {\n this.panelRef.current.innerHTML = \"\";\n this.setState({\n settingsOpen: false\n });\n }\n\n componentDidUpdate() {\n if (!this.state.settings) return;\n\n if (typeof this.settingsPanel === \"object\") {\n this.refs.settingspanel.appendChild(this.settingsPanel);\n }\n\n if (!_0globals__WEBPACK_IMPORTED_MODULE_0__[\"settingsCookie\"][\"fork-ps-3\"]) return;\n setImmediate(() => {\n const isHidden = (container, element) => {\n const cTop = container.scrollTop;\n const cBottom = cTop + container.clientHeight;\n const eTop = element.offsetTop;\n const eBottom = eTop + element.clientHeight;\n return eTop < cTop || eBottom > cBottom;\n };\n\n const thisNode = this.refs.cardNode;\n const container = thisNode.closest(\".scroller\");\n if (!isHidden(container, thisNode)) return;\n const thisNodeOffset = _modules_domtools__WEBPACK_IMPORTED_MODULE_3__[\"default\"].offset(thisNode);\n const containerOffset = _modules_domtools__WEBPACK_IMPORTED_MODULE_3__[\"default\"].offset(container);\n const original = container.scrollTop;\n const endPoint = thisNodeOffset.top - containerOffset.top + container.scrollTop - 30;\n _modules_domtools__WEBPACK_IMPORTED_MODULE_3__[\"default\"].animate({\n duration: 300,\n update: function (progress) {\n if (endPoint > original) container.scrollTop = original + progress * (endPoint - original);else container.scrollTop = original - progress * (original - endPoint);\n }\n });\n });\n }\n\n getString(value) {\n if (!value) return \"???\";\n return typeof value == \"string\" ? value : value.toString();\n }\n\n get settingsComponent() {\n try {\n this.settingsPanel = this.props.addon.plugin.getSettingsPanel();\n } catch (err) {\n _modules_utils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].err(\"Plugins\", \"Unable to get settings panel for \" + this.name + \".\", err);\n }\n\n return _modules_v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].react.createElement(\"div\", {\n className: \"bd-card bd-addon-card settings-open ui-switch-item\",\n ref: \"cardNode\"\n }, _modules_v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].react.createElement(\"div\", {\n style: {\n \"float\": \"right\",\n \"cursor\": \"pointer\"\n },\n onClick: () => {\n this.refs.settingspanel.innerHTML = \"\";\n this.setState({\n settings: false\n });\n }\n }, _modules_v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].react.createElement(_xSvg__WEBPACK_IMPORTED_MODULE_4__[\"default\"], null)), typeof this.settingsPanel === \"object\" && _modules_v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].react.createElement(\"div\", {\n id: `plugin-settings-${this.name}`,\n className: \"plugin-settings\",\n ref: \"settingspanel\"\n }), typeof this.settingsPanel !== \"object\" && _modules_v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].react.createElement(\"div\", {\n id: `plugin-settings-${this.name}`,\n className: \"plugin-settings\",\n ref: \"settingspanel\",\n dangerouslySetInnerHTML: {\n __html: this.settingsPanel\n }\n }));\n }\n\n buildTitle(name, version, author) {\n const title = \"{{name}} v{{version}} by {{author}}\".split(/({{[A-Za-z]+}})/);\n const nameIndex = title.findIndex(s => s == \"{{name}}\");\n if (nameIndex) title[nameIndex] = React.createElement(\"span\", {\n className: \"name bda-name\"\n }, name);\n const versionIndex = title.findIndex(s => s == \"{{version}}\");\n if (nameIndex) title[versionIndex] = React.createElement(\"span\", {\n className: \"version bda-version\"\n }, version);\n const authorIndex = title.findIndex(s => s == \"{{author}}\");\n\n if (nameIndex) {\n const props = {\n className: \"author bda-author\"\n };\n\n if (author.link || author.id) {\n props.className += ` ${anchorClasses.anchor} ${anchorClasses.anchorUnderlineOnHover}`;\n props.target = \"_blank\";\n if (author.link) props.href = author.link;\n if (author.id) props.onClick = () => {\n _modules_v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].LayerStack.popLayer();\n _modules_v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].openDM(author.id);\n };\n }\n\n title[authorIndex] = React.createElement(author.link || author.id ? \"a\" : \"span\", props, author.name);\n }\n\n return title.flat();\n }\n\n makeLink(title, url) {\n const props = {\n className: \"bda-link bda-link-website\",\n target: \"_blank\"\n };\n if (typeof url == \"string\") props.href = url;\n if (typeof url == \"function\") props.onClick = event => {\n event.preventDefault();\n event.stopPropagation();\n url();\n };\n return _modules_v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].react.createElement(\"a\", props, title);\n }\n\n makeButton(title, children, action) {\n return React.createElement(_tooltipWrap__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n color: \"black\",\n side: \"top\",\n text: title\n }, React.createElement(\"div\", {\n className: \"bd-addon-button\",\n onClick: action\n }, children));\n }\n\n get links() {\n const links = [];\n const addon = this.props.addon;\n if (addon.website) links.push(this.makeLink(\"Website\", addon.website));\n if (addon.source) links.push(this.makeLink(\"Source\", addon.source));\n\n if (addon.invite) {\n links.push(this.makeLink(\"Support Server\", () => {\n const tester = /\\.gg\\/(.*)$/;\n let code = addon.invite;\n if (tester.test(code)) code = code.match(tester)[1];\n _modules_v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].LayerStack.popLayer();\n _modules_v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].InviteActions.acceptInviteAndTransitionToInviteChannel(code);\n }));\n }\n\n if (addon.donate) links.push(this.makeLink(\"Donate\", addon.donate));\n if (addon.patreon) links.push(this.makeLink(\"Patreon\", addon.patreon));\n return links;\n }\n\n get footer() {\n const links = this.links;\n return (links.length || this.hasSettings) && _modules_v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].react.createElement(\"div\", {\n className: \"bd-card-footer bda-footer\"\n }, _modules_v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].react.createElement(\"span\", {\n className: \"bd-addon-links bda-links\"\n }, ...links.map((element, index) => index < links.length - 1 ? [element, \" | \"] : element).flat()), this.hasSettings && _modules_v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].react.createElement(\"button\", {\n onClick: this.showSettings,\n className: \"bd-button bda-settings-button\",\n disabled: !this.state.checked\n }, \"Settings\"));\n }\n\n onChange() {\n this.props.toggle && this.props.toggle(this.name);\n this.setState({\n checked: !this.state.checked\n });\n }\n\n edit() {\n this.props.edit(this.name);\n }\n\n delete() {\n this.props.remove(this.name);\n }\n\n reload() {\n this.props.reload(this.name);\n }\n\n get name() {\n return this.getString(this.props.addon.plugin ? this.props.addon.plugin.getName() : this.props.addon.name);\n }\n\n get author() {\n return this.getString(this.props.addon.plugin ? this.props.addon.plugin.getAuthor() : this.props.addon.author);\n }\n\n get description() {\n return this.getString(this.props.addon.plugin ? this.props.addon.plugin.getDescription() : this.props.addon.description);\n }\n\n get version() {\n return this.getString(this.props.addon.plugin ? this.props.addon.plugin.getVersion() : this.props.addon.version);\n }\n\n render() {\n if (this.state.settings) return this.settingsComponent;\n const {\n authorId,\n authorLink\n } = this.props.addon;\n return _modules_v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].react.createElement(\"div\", {\n className: \"bd-card bd-addon-card settings-closed ui-switch-item\"\n }, _modules_v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].react.createElement(\"div\", {\n className: \"bd-addon-header bda-header\"\n }, _modules_v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].react.createElement(\"div\", {\n className: \"bd-card-title bda-header-title\"\n }, this.buildTitle(this.name, this.version, {\n name: this.author,\n id: authorId,\n link: authorLink\n })), _modules_v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].react.createElement(\"div\", {\n className: \"bd-addon-controls bda-controls\"\n }, this.props.edit && this.makeButton(\"Edit\", React.createElement(_icons_edit__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n className: \"bd-icon\"\n }), this.edit), this.props.remove && this.makeButton(\"Delete\", React.createElement(_icons_delete__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n className: \"bd-icon\"\n }), this.delete), this.props.reload && this.makeButton(\"Reload\", React.createElement(_reloadIcon__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n className: \"bd-icon\"\n }), this.reload), React.createElement(_components_switch__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n onChange: this.onChange,\n checked: this.state.checked\n }))), _modules_v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].react.createElement(\"div\", {\n className: \"bd-scroller-wrap bda-description-wrap scroller-wrap fade\"\n }, _modules_v2__WEBPACK_IMPORTED_MODULE_1__[\"default\"].react.createElement(\"div\", {\n className: \"bd-scroller bd-addon-description bda-description scroller\"\n }, this.description)), this.footer);\n }\n\n}\nconst originalRender = V2C_PluginCard.prototype.render;\nObject.defineProperty(V2C_PluginCard.prototype, \"render\", {\n enumerable: false,\n configurable: false,\n set: function () {\n console.warn(\"Addon policy for plugins #5 https://github.com/rauenzi/BetterDiscordApp/wiki/Addon-Policies#plugins\");\n },\n get: () => originalRender\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvdWkvYWRkb25jYXJkLmpzeC5qcyIsInNvdXJjZXMiOlsid2VicGFjazovL0JldHRlckRpc2NvcmQvLi9zcmMvdWkvYWRkb25jYXJkLmpzeD9lYTY4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNldHRpbmdzQ29va2llIH0gZnJvbSBcIi4uLzBnbG9iYWxzXCI7XG5pbXBvcnQgQkRWMiBmcm9tIFwiLi4vbW9kdWxlcy92MlwiO1xuaW1wb3J0IFV0aWxzIGZyb20gXCIuLi9tb2R1bGVzL3V0aWxzXCI7XG5pbXBvcnQgRE9NIGZyb20gXCIuLi9tb2R1bGVzL2RvbXRvb2xzXCI7XG5pbXBvcnQgWFN2ZyBmcm9tIFwiLi94U3ZnXCI7XG5pbXBvcnQgUmVsb2FkSWNvbiBmcm9tIFwiLi9yZWxvYWRJY29uXCI7XG5pbXBvcnQgRWRpdEljb24gZnJvbSBcIi4vaWNvbnMvZWRpdFwiO1xuaW1wb3J0IERlbGV0ZUljb24gZnJvbSBcIi4vaWNvbnMvZGVsZXRlXCI7XG5pbXBvcnQgU3dpdGNoIGZyb20gXCIuL2NvbXBvbmVudHMvc3dpdGNoXCI7XG5pbXBvcnQgVG9vbHRpcFdyYXAgZnJvbSBcIi4vdG9vbHRpcFdyYXBcIjtcbmNvbnN0IFJlYWN0ID0gQkRWMi5SZWFjdDtcbmNvbnN0IGFuY2hvckNsYXNzZXMgPSBCRFYyLmFuY2hvckNsYXNzZXM7XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWMkNfUGx1Z2luQ2FyZCBleHRlbmRzIEJEVjIucmVhY3RDb21wb25lbnQge1xuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcbiAgICB0aGlzLm9uQ2hhbmdlID0gdGhpcy5vbkNoYW5nZS5iaW5kKHRoaXMpO1xuICAgIHRoaXMuc2hvd1NldHRpbmdzID0gdGhpcy5zaG93U2V0dGluZ3MuYmluZCh0aGlzKTtcbiAgICB0aGlzLnNldEluaXRpYWxTdGF0ZSgpO1xuICAgIHRoaXMuaGFzU2V0dGluZ3MgPSB0aGlzLnByb3BzLmFkZG9uLnBsdWdpbiAmJiB0eXBlb2YgdGhpcy5wcm9wcy5hZGRvbi5wbHVnaW4uZ2V0U2V0dGluZ3NQYW5lbCA9PT0gXCJmdW5jdGlvblwiO1xuICAgIHRoaXMuc2V0dGluZ3NQYW5lbCA9IFwiXCI7XG4gICAgdGhpcy5lZGl0ID0gdGhpcy5lZGl0LmJpbmQodGhpcyk7XG4gICAgdGhpcy5kZWxldGUgPSB0aGlzLmRlbGV0ZS5iaW5kKHRoaXMpO1xuICAgIHRoaXMucmVsb2FkID0gdGhpcy5yZWxvYWQuYmluZCh0aGlzKTtcbiAgfVxuXG4gIHNldEluaXRpYWxTdGF0ZSgpIHtcbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgY2hlY2tlZDogdGhpcy5wcm9wcy5lbmFibGVkLFxuICAgICAgc2V0dGluZ3M6IGZhbHNlLFxuICAgICAgcmVsb2FkczogMFxuICAgIH07XG4gIH1cblxuICBzaG93U2V0dGluZ3MoKSB7XG4gICAgaWYgKCF0aGlzLmhhc1NldHRpbmdzKSByZXR1cm47XG4gICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICBzZXR0aW5nczogdHJ1ZVxuICAgIH0pO1xuICB9XG5cbiAgY2xvc2VTZXR0aW5ncygpIHtcbiAgICB0aGlzLnBhbmVsUmVmLmN1cnJlbnQuaW5uZXJIVE1MID0gXCJcIjtcbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIHNldHRpbmdzT3BlbjogZmFsc2VcbiAgICB9KTtcbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZSgpIHtcbiAgICBpZiAoIXRoaXMuc3RhdGUuc2V0dGluZ3MpIHJldHVybjtcblxuICAgIGlmICh0eXBlb2YgdGhpcy5zZXR0aW5nc1BhbmVsID09PSBcIm9iamVjdFwiKSB7XG4gICAgICB0aGlzLnJlZnMuc2V0dGluZ3NwYW5lbC5hcHBlbmRDaGlsZCh0aGlzLnNldHRpbmdzUGFuZWwpO1xuICAgIH1cblxuICAgIGlmICghc2V0dGluZ3NDb29raWVbXCJmb3JrLXBzLTNcIl0pIHJldHVybjtcbiAgICBzZXRJbW1lZGlhdGUoKCkgPT4ge1xuICAgICAgY29uc3QgaXNIaWRkZW4gPSAoY29udGFpbmVyLCBlbGVtZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IGNUb3AgPSBjb250YWluZXIuc2Nyb2xsVG9wO1xuICAgICAgICBjb25zdCBjQm90dG9tID0gY1RvcCArIGNvbnRhaW5lci5jbGllbnRIZWlnaHQ7XG4gICAgICAgIGNvbnN0IGVUb3AgPSBlbGVtZW50Lm9mZnNldFRvcDtcbiAgICAgICAgY29uc3QgZUJvdHRvbSA9IGVUb3AgKyBlbGVtZW50LmNsaWVudEhlaWdodDtcbiAgICAgICAgcmV0dXJuIGVUb3AgPCBjVG9wIHx8IGVCb3R0b20gPiBjQm90dG9tO1xuICAgICAgfTtcblxuICAgICAgY29uc3QgdGhpc05vZGUgPSB0aGlzLnJlZnMuY2FyZE5vZGU7XG4gICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzTm9kZS5jbG9zZXN0KFwiLnNjcm9sbGVyXCIpO1xuICAgICAgaWYgKCFpc0hpZGRlbihjb250YWluZXIsIHRoaXNOb2RlKSkgcmV0dXJuO1xuICAgICAgY29uc3QgdGhpc05vZGVPZmZzZXQgPSBET00ub2Zmc2V0KHRoaXNOb2RlKTtcbiAgICAgIGNvbnN0IGNvbnRhaW5lck9mZnNldCA9IERPTS5vZmZzZXQoY29udGFpbmVyKTtcbiAgICAgIGNvbnN0IG9yaWdpbmFsID0gY29udGFpbmVyLnNjcm9sbFRvcDtcbiAgICAgIGNvbnN0IGVuZFBvaW50ID0gdGhpc05vZGVPZmZzZXQudG9wIC0gY29udGFpbmVyT2Zmc2V0LnRvcCArIGNvbnRhaW5lci5zY3JvbGxUb3AgLSAzMDtcbiAgICAgIERPTS5hbmltYXRlKHtcbiAgICAgICAgZHVyYXRpb246IDMwMCxcbiAgICAgICAgdXBkYXRlOiBmdW5jdGlvbiAocHJvZ3Jlc3MpIHtcbiAgICAgICAgICBpZiAoZW5kUG9pbnQgPiBvcmlnaW5hbCkgY29udGFpbmVyLnNjcm9sbFRvcCA9IG9yaWdpbmFsICsgcHJvZ3Jlc3MgKiAoZW5kUG9pbnQgLSBvcmlnaW5hbCk7ZWxzZSBjb250YWluZXIuc2Nyb2xsVG9wID0gb3JpZ2luYWwgLSBwcm9ncmVzcyAqIChvcmlnaW5hbCAtIGVuZFBvaW50KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBnZXRTdHJpbmcodmFsdWUpIHtcbiAgICBpZiAoIXZhbHVlKSByZXR1cm4gXCI/Pz9cIjtcbiAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09IFwic3RyaW5nXCIgPyB2YWx1ZSA6IHZhbHVlLnRvU3RyaW5nKCk7XG4gIH1cblxuICBnZXQgc2V0dGluZ3NDb21wb25lbnQoKSB7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuc2V0dGluZ3NQYW5lbCA9IHRoaXMucHJvcHMuYWRkb24ucGx1Z2luLmdldFNldHRpbmdzUGFuZWwoKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIFV0aWxzLmVycihcIlBsdWdpbnNcIiwgXCJVbmFibGUgdG8gZ2V0IHNldHRpbmdzIHBhbmVsIGZvciBcIiArIHRoaXMubmFtZSArIFwiLlwiLCBlcnIpO1xuICAgIH1cblxuICAgIHJldHVybiBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgY2xhc3NOYW1lOiBcImJkLWNhcmQgYmQtYWRkb24tY2FyZCBzZXR0aW5ncy1vcGVuIHVpLXN3aXRjaC1pdGVtXCIsXG4gICAgICByZWY6IFwiY2FyZE5vZGVcIlxuICAgIH0sIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICBzdHlsZToge1xuICAgICAgICBcImZsb2F0XCI6IFwicmlnaHRcIixcbiAgICAgICAgXCJjdXJzb3JcIjogXCJwb2ludGVyXCJcbiAgICAgIH0sXG4gICAgICBvbkNsaWNrOiAoKSA9PiB7XG4gICAgICAgIHRoaXMucmVmcy5zZXR0aW5nc3BhbmVsLmlubmVySFRNTCA9IFwiXCI7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgIHNldHRpbmdzOiBmYWxzZVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9LCBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoWFN2ZywgbnVsbCkpLCB0eXBlb2YgdGhpcy5zZXR0aW5nc1BhbmVsID09PSBcIm9iamVjdFwiICYmIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICBpZDogYHBsdWdpbi1zZXR0aW5ncy0ke3RoaXMubmFtZX1gLFxuICAgICAgY2xhc3NOYW1lOiBcInBsdWdpbi1zZXR0aW5nc1wiLFxuICAgICAgcmVmOiBcInNldHRpbmdzcGFuZWxcIlxuICAgIH0pLCB0eXBlb2YgdGhpcy5zZXR0aW5nc1BhbmVsICE9PSBcIm9iamVjdFwiICYmIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICBpZDogYHBsdWdpbi1zZXR0aW5ncy0ke3RoaXMubmFtZX1gLFxuICAgICAgY2xhc3NOYW1lOiBcInBsdWdpbi1zZXR0aW5nc1wiLFxuICAgICAgcmVmOiBcInNldHRpbmdzcGFuZWxcIixcbiAgICAgIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MOiB7XG4gICAgICAgIF9faHRtbDogdGhpcy5zZXR0aW5nc1BhbmVsXG4gICAgICB9XG4gICAgfSkpO1xuICB9XG5cbiAgYnVpbGRUaXRsZShuYW1lLCB2ZXJzaW9uLCBhdXRob3IpIHtcbiAgICBjb25zdCB0aXRsZSA9IFwie3tuYW1lfX0gdnt7dmVyc2lvbn19IGJ5IHt7YXV0aG9yfX1cIi5zcGxpdCgvKHt7W0EtWmEtel0rfX0pLyk7XG4gICAgY29uc3QgbmFtZUluZGV4ID0gdGl0bGUuZmluZEluZGV4KHMgPT4gcyA9PSBcInt7bmFtZX19XCIpO1xuICAgIGlmIChuYW1lSW5kZXgpIHRpdGxlW25hbWVJbmRleF0gPSBSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7XG4gICAgICBjbGFzc05hbWU6IFwibmFtZSBiZGEtbmFtZVwiXG4gICAgfSwgbmFtZSk7XG4gICAgY29uc3QgdmVyc2lvbkluZGV4ID0gdGl0bGUuZmluZEluZGV4KHMgPT4gcyA9PSBcInt7dmVyc2lvbn19XCIpO1xuICAgIGlmIChuYW1lSW5kZXgpIHRpdGxlW3ZlcnNpb25JbmRleF0gPSBSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7XG4gICAgICBjbGFzc05hbWU6IFwidmVyc2lvbiBiZGEtdmVyc2lvblwiXG4gICAgfSwgdmVyc2lvbik7XG4gICAgY29uc3QgYXV0aG9ySW5kZXggPSB0aXRsZS5maW5kSW5kZXgocyA9PiBzID09IFwie3thdXRob3J9fVwiKTtcblxuICAgIGlmIChuYW1lSW5kZXgpIHtcbiAgICAgIGNvbnN0IHByb3BzID0ge1xuICAgICAgICBjbGFzc05hbWU6IFwiYXV0aG9yIGJkYS1hdXRob3JcIlxuICAgICAgfTtcblxuICAgICAgaWYgKGF1dGhvci5saW5rIHx8IGF1dGhvci5pZCkge1xuICAgICAgICBwcm9wcy5jbGFzc05hbWUgKz0gYCAke2FuY2hvckNsYXNzZXMuYW5jaG9yfSAke2FuY2hvckNsYXNzZXMuYW5jaG9yVW5kZXJsaW5lT25Ib3Zlcn1gO1xuICAgICAgICBwcm9wcy50YXJnZXQgPSBcIl9ibGFua1wiO1xuICAgICAgICBpZiAoYXV0aG9yLmxpbmspIHByb3BzLmhyZWYgPSBhdXRob3IubGluaztcbiAgICAgICAgaWYgKGF1dGhvci5pZCkgcHJvcHMub25DbGljayA9ICgpID0+IHtcbiAgICAgICAgICBCRFYyLkxheWVyU3RhY2sucG9wTGF5ZXIoKTtcbiAgICAgICAgICBCRFYyLm9wZW5ETShhdXRob3IuaWQpO1xuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICB0aXRsZVthdXRob3JJbmRleF0gPSBSZWFjdC5jcmVhdGVFbGVtZW50KGF1dGhvci5saW5rIHx8IGF1dGhvci5pZCA/IFwiYVwiIDogXCJzcGFuXCIsIHByb3BzLCBhdXRob3IubmFtZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRpdGxlLmZsYXQoKTtcbiAgfVxuXG4gIG1ha2VMaW5rKHRpdGxlLCB1cmwpIHtcbiAgICBjb25zdCBwcm9wcyA9IHtcbiAgICAgIGNsYXNzTmFtZTogXCJiZGEtbGluayBiZGEtbGluay13ZWJzaXRlXCIsXG4gICAgICB0YXJnZXQ6IFwiX2JsYW5rXCJcbiAgICB9O1xuICAgIGlmICh0eXBlb2YgdXJsID09IFwic3RyaW5nXCIpIHByb3BzLmhyZWYgPSB1cmw7XG4gICAgaWYgKHR5cGVvZiB1cmwgPT0gXCJmdW5jdGlvblwiKSBwcm9wcy5vbkNsaWNrID0gZXZlbnQgPT4ge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgdXJsKCk7XG4gICAgfTtcbiAgICByZXR1cm4gQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFwiYVwiLCBwcm9wcywgdGl0bGUpO1xuICB9XG5cbiAgbWFrZUJ1dHRvbih0aXRsZSwgY2hpbGRyZW4sIGFjdGlvbikge1xuICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFRvb2x0aXBXcmFwLCB7XG4gICAgICBjb2xvcjogXCJibGFja1wiLFxuICAgICAgc2lkZTogXCJ0b3BcIixcbiAgICAgIHRleHQ6IHRpdGxlXG4gICAgfSwgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICBjbGFzc05hbWU6IFwiYmQtYWRkb24tYnV0dG9uXCIsXG4gICAgICBvbkNsaWNrOiBhY3Rpb25cbiAgICB9LCBjaGlsZHJlbikpO1xuICB9XG5cbiAgZ2V0IGxpbmtzKCkge1xuICAgIGNvbnN0IGxpbmtzID0gW107XG4gICAgY29uc3QgYWRkb24gPSB0aGlzLnByb3BzLmFkZG9uO1xuICAgIGlmIChhZGRvbi53ZWJzaXRlKSBsaW5rcy5wdXNoKHRoaXMubWFrZUxpbmsoXCJXZWJzaXRlXCIsIGFkZG9uLndlYnNpdGUpKTtcbiAgICBpZiAoYWRkb24uc291cmNlKSBsaW5rcy5wdXNoKHRoaXMubWFrZUxpbmsoXCJTb3VyY2VcIiwgYWRkb24uc291cmNlKSk7XG5cbiAgICBpZiAoYWRkb24uaW52aXRlKSB7XG4gICAgICBsaW5rcy5wdXNoKHRoaXMubWFrZUxpbmsoXCJTdXBwb3J0IFNlcnZlclwiLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHRlc3RlciA9IC9cXC5nZ1xcLyguKikkLztcbiAgICAgICAgbGV0IGNvZGUgPSBhZGRvbi5pbnZpdGU7XG4gICAgICAgIGlmICh0ZXN0ZXIudGVzdChjb2RlKSkgY29kZSA9IGNvZGUubWF0Y2godGVzdGVyKVsxXTtcbiAgICAgICAgQkRWMi5MYXllclN0YWNrLnBvcExheWVyKCk7XG4gICAgICAgIEJEVjIuSW52aXRlQWN0aW9ucy5hY2NlcHRJbnZpdGVBbmRUcmFuc2l0aW9uVG9JbnZpdGVDaGFubmVsKGNvZGUpO1xuICAgICAgfSkpO1xuICAgIH1cblxuICAgIGlmIChhZGRvbi5kb25hdGUpIGxpbmtzLnB1c2godGhpcy5tYWtlTGluayhcIkRvbmF0ZVwiLCBhZGRvbi5kb25hdGUpKTtcbiAgICBpZiAoYWRkb24ucGF0cmVvbikgbGlua3MucHVzaCh0aGlzLm1ha2VMaW5rKFwiUGF0cmVvblwiLCBhZGRvbi5wYXRyZW9uKSk7XG4gICAgcmV0dXJuIGxpbmtzO1xuICB9XG5cbiAgZ2V0IGZvb3RlcigpIHtcbiAgICBjb25zdCBsaW5rcyA9IHRoaXMubGlua3M7XG4gICAgcmV0dXJuIChsaW5rcy5sZW5ndGggfHwgdGhpcy5oYXNTZXR0aW5ncykgJiYgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICAgIGNsYXNzTmFtZTogXCJiZC1jYXJkLWZvb3RlciBiZGEtZm9vdGVyXCJcbiAgICB9LCBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtcbiAgICAgIGNsYXNzTmFtZTogXCJiZC1hZGRvbi1saW5rcyBiZGEtbGlua3NcIlxuICAgIH0sIC4uLmxpbmtzLm1hcCgoZWxlbWVudCwgaW5kZXgpID0+IGluZGV4IDwgbGlua3MubGVuZ3RoIC0gMSA/IFtlbGVtZW50LCBcIiB8IFwiXSA6IGVsZW1lbnQpLmZsYXQoKSksIHRoaXMuaGFzU2V0dGluZ3MgJiYgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFwiYnV0dG9uXCIsIHtcbiAgICAgIG9uQ2xpY2s6IHRoaXMuc2hvd1NldHRpbmdzLFxuICAgICAgY2xhc3NOYW1lOiBcImJkLWJ1dHRvbiBiZGEtc2V0dGluZ3MtYnV0dG9uXCIsXG4gICAgICBkaXNhYmxlZDogIXRoaXMuc3RhdGUuY2hlY2tlZFxuICAgIH0sIFwiU2V0dGluZ3NcIikpO1xuICB9XG5cbiAgb25DaGFuZ2UoKSB7XG4gICAgdGhpcy5wcm9wcy50b2dnbGUgJiYgdGhpcy5wcm9wcy50b2dnbGUodGhpcy5uYW1lKTtcbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIGNoZWNrZWQ6ICF0aGlzLnN0YXRlLmNoZWNrZWRcbiAgICB9KTtcbiAgfVxuXG4gIGVkaXQoKSB7XG4gICAgdGhpcy5wcm9wcy5lZGl0KHRoaXMubmFtZSk7XG4gIH1cblxuICBkZWxldGUoKSB7XG4gICAgdGhpcy5wcm9wcy5yZW1vdmUodGhpcy5uYW1lKTtcbiAgfVxuXG4gIHJlbG9hZCgpIHtcbiAgICB0aGlzLnByb3BzLnJlbG9hZCh0aGlzLm5hbWUpO1xuICB9XG5cbiAgZ2V0IG5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0U3RyaW5nKHRoaXMucHJvcHMuYWRkb24ucGx1Z2luID8gdGhpcy5wcm9wcy5hZGRvbi5wbHVnaW4uZ2V0TmFtZSgpIDogdGhpcy5wcm9wcy5hZGRvbi5uYW1lKTtcbiAgfVxuXG4gIGdldCBhdXRob3IoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0U3RyaW5nKHRoaXMucHJvcHMuYWRkb24ucGx1Z2luID8gdGhpcy5wcm9wcy5hZGRvbi5wbHVnaW4uZ2V0QXV0aG9yKCkgOiB0aGlzLnByb3BzLmFkZG9uLmF1dGhvcik7XG4gIH1cblxuICBnZXQgZGVzY3JpcHRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0U3RyaW5nKHRoaXMucHJvcHMuYWRkb24ucGx1Z2luID8gdGhpcy5wcm9wcy5hZGRvbi5wbHVnaW4uZ2V0RGVzY3JpcHRpb24oKSA6IHRoaXMucHJvcHMuYWRkb24uZGVzY3JpcHRpb24pO1xuICB9XG5cbiAgZ2V0IHZlcnNpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0U3RyaW5nKHRoaXMucHJvcHMuYWRkb24ucGx1Z2luID8gdGhpcy5wcm9wcy5hZGRvbi5wbHVnaW4uZ2V0VmVyc2lvbigpIDogdGhpcy5wcm9wcy5hZGRvbi52ZXJzaW9uKTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBpZiAodGhpcy5zdGF0ZS5zZXR0aW5ncykgcmV0dXJuIHRoaXMuc2V0dGluZ3NDb21wb25lbnQ7XG4gICAgY29uc3Qge1xuICAgICAgYXV0aG9ySWQsXG4gICAgICBhdXRob3JMaW5rXG4gICAgfSA9IHRoaXMucHJvcHMuYWRkb247XG4gICAgcmV0dXJuIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICBjbGFzc05hbWU6IFwiYmQtY2FyZCBiZC1hZGRvbi1jYXJkIHNldHRpbmdzLWNsb3NlZCB1aS1zd2l0Y2gtaXRlbVwiXG4gICAgfSwgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICAgIGNsYXNzTmFtZTogXCJiZC1hZGRvbi1oZWFkZXIgYmRhLWhlYWRlclwiXG4gICAgfSwgQkRWMi5yZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICAgIGNsYXNzTmFtZTogXCJiZC1jYXJkLXRpdGxlIGJkYS1oZWFkZXItdGl0bGVcIlxuICAgIH0sIHRoaXMuYnVpbGRUaXRsZSh0aGlzLm5hbWUsIHRoaXMudmVyc2lvbiwge1xuICAgICAgbmFtZTogdGhpcy5hdXRob3IsXG4gICAgICBpZDogYXV0aG9ySWQsXG4gICAgICBsaW5rOiBhdXRob3JMaW5rXG4gICAgfSkpLCBCRFYyLnJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgY2xhc3NOYW1lOiBcImJkLWFkZG9uLWNvbnRyb2xzIGJkYS1jb250cm9sc1wiXG4gICAgfSwgdGhpcy5wcm9wcy5lZGl0ICYmIHRoaXMubWFrZUJ1dHRvbihcIkVkaXRcIiwgUmVhY3QuY3JlYXRlRWxlbWVudChFZGl0SWNvbiwge1xuICAgICAgY2xhc3NOYW1lOiBcImJkLWljb25cIlxuICAgIH0pLCB0aGlzLmVkaXQpLCB0aGlzLnByb3BzLnJlbW92ZSAmJiB0aGlzLm1ha2VCdXR0b24oXCJEZWxldGVcIiwgUmVhY3QuY3JlYXRlRWxlbWVudChEZWxldGVJY29uLCB7XG4gICAgICBjbGFzc05hbWU6IFwiYmQtaWNvblwiXG4gICAgfSksIHRoaXMuZGVsZXRlKSwgdGhpcy5wcm9wcy5yZWxvYWQgJiYgdGhpcy5tYWtlQnV0dG9uKFwiUmVsb2FkXCIsIFJlYWN0LmNyZWF0ZUVsZW1lbnQoUmVsb2FkSWNvbiwge1xuICAgICAgY2xhc3NOYW1lOiBcImJkLWljb25cIlxuICAgIH0pLCB0aGlzLnJlbG9hZCksIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3dpdGNoLCB7XG4gICAgICBvbkNoYW5nZTogdGhpcy5vbkNoYW5nZSxcbiAgICAgIGNoZWNrZWQ6IHRoaXMuc3RhdGUuY2hlY2tlZFxuICAgIH0pKSksIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICBjbGFzc05hbWU6IFwiYmQtc2Nyb2xsZXItd3JhcCBiZGEtZGVzY3JpcHRpb24td3JhcCBzY3JvbGxlci13cmFwIGZhZGVcIlxuICAgIH0sIEJEVjIucmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICBjbGFzc05hbWU6IFwiYmQtc2Nyb2xsZXIgYmQtYWRkb24tZGVzY3JpcHRpb24gYmRhLWRlc2NyaXB0aW9uIHNjcm9sbGVyXCJcbiAgICB9LCB0aGlzLmRlc2NyaXB0aW9uKSksIHRoaXMuZm9vdGVyKTtcbiAgfVxuXG59XG5jb25zdCBvcmlnaW5hbFJlbmRlciA9IFYyQ19QbHVnaW5DYXJkLnByb3RvdHlwZS5yZW5kZXI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoVjJDX1BsdWdpbkNhcmQucHJvdG90eXBlLCBcInJlbmRlclwiLCB7XG4gIGVudW1lcmFibGU6IGZhbHNlLFxuICBjb25maWd1cmFibGU6IGZhbHNlLFxuICBzZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICBjb25zb2xlLndhcm4oXCJBZGRvbiBwb2xpY3kgZm9yIHBsdWdpbnMgIzUgaHR0cHM6Ly9naXRodWIuY29tL3JhdWVuemkvQmV0dGVyRGlzY29yZEFwcC93aWtpL0FkZG9uLVBvbGljaWVzI3BsdWdpbnNcIik7XG4gIH0sXG4gIGdldDogKCkgPT4gb3JpZ2luYWxSZW5kZXJcbn0pOyJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/ui/addoncard.jsx\n")},"./src/ui/addonlist.jsx":/*!******************************!*\ !*** ./src/ui/addonlist.jsx ***! diff --git a/BetterDiscordApp/src/ui/AccountInfos.jsx b/BetterDiscordApp/src/ui/AccountInfos.jsx index 3193f37..85dd82c 100644 --- a/BetterDiscordApp/src/ui/AccountInfos.jsx +++ b/BetterDiscordApp/src/ui/AccountInfos.jsx @@ -17,7 +17,7 @@ let contentModule = BDModules.get(e => e.contentColumn)[0] let marginModule2 = BDModules.get(e => e.defaultMarginh5)[0] let colorModule = BDModules.get(e => e.colorStandard)[0] let sizeModule = BDModules.get(e => e.size32)[0] -const scrollbarModule1 = BDModules.get(e => e.scrollbarGhostHairline)[0] +let scrollbarModule1 = BDModules.get(e => e.scrollbarGhostHairline)[0] const GuildModule = BDModules.get(e => e.default && e.default.getGuilds)[0].default const relationShipModule = BDModules.get(e => e.default && e.default.getRelationships)[0].default const sessionModule = BDModules.get(e => e.default && e.default.getSessions)[0].default @@ -29,7 +29,10 @@ export default class V2C_AccountInfos extends React.Component { } render() { - + if(!contentModule)contentModule = BDModules.get(e => e.contentColumn)[0] + if(!marginModule2)marginModule2 = BDModules.get(e => e.defaultMarginh5)[0] + if(!colorModule)colorModule = BDModules.get(e => e.colorStandard)[0] + if(!sizeModule)sizeModule = BDModules.get(e => e.size32)[0] return (
@@ -105,13 +108,16 @@ export default class V2C_AccountInfos extends React.Component { } -const hightlightJS = BDModules.get(e => e.highlight)[0] -const messageModule1 = BDModules.get(e => e.markup)[0] -const messageModule2 = BDModules.get(e => e.messageContent)[0] +let hightlightJS = BDModules.get(e => e.highlight)[0] +let messageModule1 = BDModules.get(e => e.markup)[0] +let messageModule2 = BDModules.get(e => e.messageContent)[0] class CodeContent extends React.Component { render(){ - + if(!messageModule1)messageModule1 = BDModules.get(e => e.markup)[0] + if(!messageModule2)messageModule2 = BDModules.get(e => e.messageContent)[0] + if(!scrollbarModule1)scrollbarModule1 = BDModules.get(e => e.scrollbarGhostHairline)[0] + if(!hightlightJS)hightlightJS = BDModules.get(e => e.highlight)[0] return (
                 
diff --git a/BetterDiscordApp/webpack.config.js b/BetterDiscordApp/webpack.config.js
index c2298cf..f846215 100644
--- a/BetterDiscordApp/webpack.config.js
+++ b/BetterDiscordApp/webpack.config.js
@@ -38,7 +38,7 @@ module.exports = {
   module: {
     rules: [
       {
-        test: /.jsx?$/,
+        test: /\.jsx?$/,
         loader: "babel-loader",
         exclude: /node_modules/,
         query: {
@@ -71,5 +71,4 @@ module.exports = {
       })
     ]
   }
-
 };
\ No newline at end of file
diff --git a/modules/discord_desktop_core/core/app/BetterDiscord/auth/index.css b/modules/discord_desktop_core/core/app/BetterDiscord/auth/index.css
new file mode 100644
index 0000000..d005961
--- /dev/null
+++ b/modules/discord_desktop_core/core/app/BetterDiscord/auth/index.css
@@ -0,0 +1,83 @@
+.theme-dark {
+    --header-primary: #fff;
+    --header-secondary: #b9bbbe;
+    --text-normal: #dcddde;
+    --text-muted: #72767d;
+    --text-link: #00b0f4;
+    --channels-default: #8e9297;
+    --interactive-normal: #b9bbbe;
+    --interactive-hover: #dcddde;
+    --interactive-active: #fff;
+    --interactive-muted: #4f545c;
+    --background-primary: #36393f;
+    --background-secondary: #2f3136;
+    --background-secondary-alt: #292b2f;
+    --background-tertiary: #202225;
+    --background-accent: #4f545c;
+    --background-floating: #18191c;
+    --background-mobile-primary: #36393f;
+    --background-mobile-secondary: #2f3136;
+    --background-modifier-hover: rgba(79,84,92,0.16);
+    --background-modifier-active: rgba(79,84,92,0.24);
+    --background-modifier-selected: rgba(79,84,92,0.32);
+    --background-modifier-accent: hsla(0,0%,100%,0.06);
+    --background-mentioned: rgba(250,166,26,0.05);
+    --background-mentioned-hover: rgba(250,166,26,0.08);
+    --background-message-hover: rgba(4,4,5,0.07);
+    --elevation-stroke: 0 0 0 1px rgba(4,4,5,0.15);
+    --elevation-low: 0 1px 0 rgba(4,4,5,0.2),0 1.5px 0 rgba(6,6,7,0.05),0 2px 0 rgba(4,4,5,0.05);
+    --elevation-medium: 0 4px 4px rgba(0,0,0,0.16);
+    --elevation-high: 0 8px 16px rgba(0,0,0,0.24);
+    --logo-primary: #fff;
+    --focus-primary: #00b0f4;
+    --guild-header-text-shadow: 0 1px 1px rgba(0,0,0,0.4);
+    --channeltextarea-background: #40444b;
+    --activity-card-background: #202225;
+    --textbox-markdown-syntax: #8e9297;
+    --deprecated-card-bg: rgba(32,34,37,0.6);
+    --deprecated-card-editable-bg: rgba(32,34,37,0.3);
+    --deprecated-store-bg: #36393f;
+    --deprecated-quickswitcher-input-background: #72767d;
+    --deprecated-quickswitcher-input-placeholder: hsla(0,0%,100%,0.3);
+    --deprecated-text-input-bg: rgba(0,0,0,0.1);
+    --deprecated-text-input-border: rgba(0,0,0,0.3);
+    --deprecated-text-input-border-hover: #040405;
+    --deprecated-text-input-border-disabled: #202225;
+    --deprecated-text-input-prefix: #dcddde;
+}
+
+::placeholder, body, button, input, select, textarea {
+    font-family: Whitney,Helvetica Neue,Helvetica,Arial,sans-serif;
+    text-rendering: optimizeLegibility;
+}.appMount, body {
+    background-color: var(--background-tertiary);
+    text-rendering: optimizeLegibility;
+}body{
+    color: var(--text-normal)
+}.center{
+    text-align: center;
+}.marginBottom20{
+    margin-bottom: 20px;
+}.button {
+    position: absolute;
+    top: 200px;
+    padding-right: 12.5px;
+    padding-top: 14px;
+    background-color: #7289da;
+    color: #fff;
+    font-size: 20px;
+    font-weight: 600;
+    border-radius: 3px;
+    justify-content: center;
+    align-items: center;
+    padding-bottom: 14px;
+    padding-left: 12.5px;
+    display: inline;
+}.button:hover{
+    background-color: #697ec4;
+    cursor: pointer;
+}.button-yes{
+    left: 100px;
+}.button-no{
+    left: 300px;
+}
\ No newline at end of file
diff --git a/modules/discord_desktop_core/core/app/BetterDiscord/auth/index.html b/modules/discord_desktop_core/core/app/BetterDiscord/auth/index.html
new file mode 100644
index 0000000..5ec9426
--- /dev/null
+++ b/modules/discord_desktop_core/core/app/BetterDiscord/auth/index.html
@@ -0,0 +1,25 @@
+
+
+
+    
+    
+    
+    
+
+
+    
+
+ +
+

+ Would you like to use Lightcord's network features ? +

+
+
+
+
Yes I do !
+
No, thanks
+
+
+ + \ No newline at end of file diff --git a/modules/discord_desktop_core/core/app/BetterDiscord/auth/preload.js b/modules/discord_desktop_core/core/app/BetterDiscord/auth/preload.js new file mode 100644 index 0000000..b444da9 --- /dev/null +++ b/modules/discord_desktop_core/core/app/BetterDiscord/auth/preload.js @@ -0,0 +1,63 @@ +const electron = require("electron").remote +const fetch = require("node-fetch").default + +const currentWindow = electron.getCurrentWindow() + + +currentWindow.webContents.on("dom-ready", () => { + const customTitlebar = require('custom-electron-titlebar') + + new customTitlebar.Titlebar({ + backgroundColor: customTitlebar.Color.fromHex('#2f3136'), + "drag": true, + minimizable: false, + maximizable: false, + closeable: true, + menu: electron.Menu.buildFromTemplate([]) + }); + function resetAppMount(){ + document.querySelector("body > div.container-after-titlebar > div").remove() + const appMount = document.createElement("div") + appMount.className = "appMount" + document.querySelector("body > div.container-after-titlebar").appendChild(appMount) + } + document.querySelector("body > div.container-after-titlebar > div > div.buttonContainer > div.button.button-yes").addEventListener("click", (ev) => {// should we move location ? or go trough a webview ? + resetAppMount() + const webview = document.createElement("webview") + webview.id = "discordauth" + webview.src = "https://discord.com/api/oauth2/authorize?client_id=711416957718757418&redirect_uri=http%3A%2F%2Flightcord.electron%2Flogin%2Fcallback&response_type=code&scope=identify" + webview.style.width = "500ox" + webview.style.height = "520px" + webview.addEventListener('did-stop-loading', () => { + console.log("Webview loaded") + electron.webContents.fromId(webview.getWebContentsId()).on("will-navigate", (e, url) => { + console.log(url) + if(url.startsWith("http://lightcord.electron/login/callback?error=")){ // used denied / error. + e.preventDefault() + currentWindow.close() + return + }else if(url.startsWith("http://lightcord.electron/login/callback?code=")){ // yay we got the code + const query = url.split("?")[1] + e.preventDefault() + webview.remove() + resetAppMount() + document.querySelector("body > div.container-after-titlebar > div").innerHTML = '

Loading...

' + fetch("https://lightcord.deroku.xyz/auth/callback?"+query) + .then(async res => { + if(res.status !== 200){ // error + currentWindow.close() + return + } + const resp = await res.text() + console.debug(resp) + window.location.href = "lightcord://login/callback?auth="+resp + }) + } + }) + }) + document.querySelector("body > div.container-after-titlebar > div").appendChild(webview) + }) + document.querySelector("body > div.container-after-titlebar > div > div.buttonContainer > div.button.button-no").addEventListener("click", (ev) => { + currentWindow.close() + }) +}) \ No newline at end of file diff --git a/modules/discord_desktop_core/core/app/BetterDiscord/index.js b/modules/discord_desktop_core/core/app/BetterDiscord/index.js index db29712..e237021 100644 --- a/modules/discord_desktop_core/core/app/BetterDiscord/index.js +++ b/modules/discord_desktop_core/core/app/BetterDiscord/index.js @@ -1,3 +1,7 @@ +const options = { + loadCompressed: true +} + const ModuleLoader = require("./loaders/modules") const { EventEmitter } = require("events") const Logger = require("./Logger") @@ -151,7 +155,14 @@ async function privateInit(){ } const appSettings = electron.remote.getGlobal("appSettings") - let Authorization = appSettings.get("LIGHTCORD_AUTH", null) + let Authorization = appSettings.get("LIGHTCORD_AUTH", false) + let shouldShowPrompt = Authorization === false + + if(typeof Authorization !== "string"){ + Authorization = null + appSettings.set("LIGHTCORD_AUTH", null) + appSettings.save() + } window.Lightcord = { DiscordModules: { @@ -176,11 +187,83 @@ async function privateInit(){ } } - const BetterDiscord = window.BetterDiscord = window.mainCore = new(require("../../../../../BetterDiscordApp/js/main").default)(BetterDiscordConfig) + + if(shouldShowPrompt){ + let onConn = (ev) => { + console.log(`Showing auth window.`, ev) + shouldShowPrompt = false + dispatcher.unsubscribe(constants.ActionTypes.CONNECTION_OPEN || "CONNECTION_OPEN", onConn) + + const options = { + width: 500, + height: 550, + backgroundColor: "#202225", + show: true, + resizable: false, + maximizable: false, + minimizable: false, + frame: false, + center: false, + webPreferences: { + nodeIntegration: false, + preload: path.join(__dirname, "auth", "preload.js"), + webviewTag: true + }, + parent: electron.remote.getCurrentWindow() + }; + options.x = Math.round(window.screenX + window.innerWidth / 2 - options.width / 2); + options.y = Math.round(window.screenY + window.innerHeight / 2 - options.height / 2); + + const authWindow = new electron.remote.BrowserWindow(options) + + authWindow.webContents.session.protocol.registerFileProtocol("lightcord", (req, callback) => { + const parsedURL = new URL("http://lightcord.xyz/"+req.url.split("://")[1]) + + let file + if(req.method !== "GET"){ + file = "404.html" + }else{ + if(parsedURL.pathname === "/index.html"){ + file = "index.html" + }else if(parsedURL.pathname === "/index.css"){ + file = "index.css" + }else if(parsedURL.pathname === "/login/callback"){ + authWindow.close() + console.log(parsedURL.searchParams) + Authorization = parsedURL.searchParams.get("auth") + authWindow = null + return + } + } + + if(!file){ + file = "404.html" + } + + callback(path.join(__dirname, "auth", file)) + }, (err) => { + if(err)console.error(err) + }) + + electron.remote.getCurrentWindow().webContents.on("devtools-reload-page", () => { + electron.remote.protocol.unregisterProtocol("lightcord") + }) + + authWindow.on("close", () => { + electron.remote.protocol.unregisterProtocol("lightcord") + }) + + authWindow.loadURL("lightcord://index.html") + } + dispatcher.subscribe(constants.ActionTypes.CONNECTION_OPEN || "CONNECTION_OPEN", onConn) + } + + const BetterDiscord = window.BetterDiscord = window.mainCore = new(require("../../../../../BetterDiscordApp/js/main.min.jsbr").default)(BetterDiscordConfig) const Utils = window.Lightcord.BetterDiscord.Utils - - delete window.Lightcord.BetterDiscord.Utils // security delete + // security delete + delete window.Lightcord.BetterDiscord.Utils + delete window.Lightcord.BetterDiscord.Utils await ensureExported(e => e.default && e.default.displayName == "AuthBox") @@ -214,6 +297,18 @@ require.extensions[".css"] = (m, filename) => { return m.exports } +let zlib = require("zlib") +let tmp = require("tmp") + +require.extensions[".jsbr"] = (m, filename) => { + if(!zlib)zlib = require("zlib") + if(!tmp)tmp = require("tmp") + let tmpFile = tmp.fileSync() + + fs.writeFileSync(tmpFile.name+".js", zlib.brotliDecompressSync(fs.readFileSync(filename))) + return require.extensions[".js"](m, tmpFile.name+".js") +} + const LightcordBDFolder = path.join(electron.remote.app.getPath("appData"), "Lightcord_BD") const BetterDiscordConfig = window.BetterDiscordConfig = { diff --git a/modules/discord_desktop_core/core/app/BetterDiscord/tokenLogin.js b/modules/discord_desktop_core/core/app/BetterDiscord/tokenLogin.js index 2ef2f4e..1c740c2 100644 --- a/modules/discord_desktop_core/core/app/BetterDiscord/tokenLogin.js +++ b/modules/discord_desktop_core/core/app/BetterDiscord/tokenLogin.js @@ -15,7 +15,7 @@ const contentModule = BDModules.get(e => e.contents)[0]; const verticalSeparatorModule = BDModules.get(e => e.verticalSeparator)[0]; const loginModule = BDModules.get(e => e.default && e.default.loginToken)[0].default; -class TokenLogin extends React.Component { +class TokenLogin extends React.PureComponent { constructor(props) { super(props); this.state = { @@ -66,6 +66,7 @@ class TokenLogin extends React.Component { this.setState({ error: "This field is necessary" }); + this.forceUpdate(); return; } diff --git a/modules/discord_desktop_core/core/app/BetterDiscord/tokenLogin.jsx b/modules/discord_desktop_core/core/app/BetterDiscord/tokenLogin.jsx index bfa4044..e597f93 100644 --- a/modules/discord_desktop_core/core/app/BetterDiscord/tokenLogin.jsx +++ b/modules/discord_desktop_core/core/app/BetterDiscord/tokenLogin.jsx @@ -10,7 +10,7 @@ const verticalSeparatorModule = BDModules.get(e => e.verticalSeparator)[0] const loginModule = BDModules.get(e => e.default && e.default.loginToken)[0].default -export default class TokenLogin extends React.Component { +export default class TokenLogin extends React.PureComponent { constructor(props){ super(props) @@ -41,6 +41,7 @@ export default class TokenLogin extends React.Component {
{ this.state.value = ev.target.value + this.forceUpdate() }}/>
@@ -49,6 +50,7 @@ export default class TokenLogin extends React.Component { this.setState({ error: "This field is necessary" }) + this.forceUpdate() return } diff --git a/package-lock.json b/package-lock.json index 32de16a..0ab57eb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -277,6 +277,11 @@ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, + "custom-electron-titlebar": { + "version": "3.2.2-hotfix62", + "resolved": "https://registry.npmjs.org/custom-electron-titlebar/-/custom-electron-titlebar-3.2.2-hotfix62.tgz", + "integrity": "sha512-Kh86xAolkCpqj4AD/H4HcR2pEtxUyIHzMzqwkxqZkSqE7R9tRfN8G3fVpiiNIAJlX8rbN3VwxaoHi1B1sSMn/Q==" + }, "dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", @@ -1091,6 +1096,14 @@ "source-map-support": "~0.5.12" } }, + "tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "requires": { + "rimraf": "^3.0.0" + } + }, "to-readable-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", diff --git a/package.json b/package.json index 7afd766..b7a1cb4 100644 --- a/package.json +++ b/package.json @@ -13,11 +13,13 @@ "license": "ISC", "dependencies": { "bytenode": "^1.1.6", + "custom-electron-titlebar": "^3.2.2-hotfix62", "glasstron": "0.0.3", "mkdirp": "^1.0.4", "node-fetch": "^2.6.0", "request": "^2.88.2", "rimraf": "^3.0.2", + "tmp": "^0.2.1", "yauzl": "^2.10.0" }, "private": true,