{"version":3,"sources":["routes/main/Main.tsx","components/info/Info.tsx","components/def-avatar/DefAvatar.tsx","img/member.svg","components/guild-tile/GuildTile.tsx","img/close.svg","components/guild-info-modal/GuildInfoModal.tsx","routes/guilds/Guilds.tsx","img/logo-wide.svg","components/header/Header.tsx","routes/about/About.tsx","App.tsx","api/ws.ts","index.tsx"],"names":["VALIDITY","Info","className","src","this","props","data","avatar","alt","nameTag","id","guilds","username","discriminator","Component","MainRoute","state","tokenInput","valid","UNSET","loading","showInvalid","tokenData","redirect","unmounts","push","wsapi","on","token","length","setState","onCheckSubmit","setValidity","INVALID","VALID","onerror","forEach","u","type","value","onChange","onTokenChange","bind","style","backgroundColor","stateColor","to","onClick","event","inpt","target","trim","setTimeout","send","setInputInvalid","COLORS","DefAvatar","isError","img","width","height","onError","character","c","charCodeAt","text","substr","toUpperCase","color","lineHeight","fontSize","Math","round","_extends","Object","assign","i","arguments","source","key","prototype","hasOwnProperty","call","apply","_objectWithoutProperties","excluded","sourceKeys","keys","indexOf","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","defaultProps","_ref","svgRef","title","createElement","viewBox","fillRule","clipRule","strokeLinejoin","strokeMiterlimit","ref","cx","cy","r","fill","d","ForwardRef","forwardRef","GuildTile","guild","href","guildIcon","name","members","icon","GuildInfoModal","owner","onopen","onBgClick","onClose","e","preventDefault","stopPropagation","GuildsRoute","showGuild","map","g","Header","AboutRoute","App","exact","path","render","match","params","WebSocketAPI","url","ws","handlers","open","_cid","WebSocket","onmessage","response","JSON","parse","emit","cid","err","error","handler","splice","rawData","stringify","h","window","location","origin","replace","startsWith","ReactDOM","StrictMode","document","getElementById"],"mappings":"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","file":"static/js/main.32f95d75.chunk.js","sourcesContent":["/** @format */\n\nimport React, { Component, FormEvent } from 'react';\nimport WebSocketAPI, { EventHandlerRemover } from '../../api/ws';\nimport { Redirect, Link } from 'react-router-dom';\nimport { WSTokenValid } from '../../api/model';\nimport Info from '../../components/info/Info';\n\nimport './Main.scss';\n\nenum VALIDITY {\n UNSET,\n VALID,\n INVALID,\n}\n\nexport default class MainRoute extends Component<{\n wsapi: WebSocketAPI;\n token: string;\n}> {\n public state = {\n tokenInput: '',\n valid: VALIDITY.UNSET,\n loading: false,\n showInvalid: false,\n tokenData: (null as any) as WSTokenValid,\n redirect: false,\n };\n\n private unmounts: EventHandlerRemover[] = [];\n\n public componentDidMount() {\n this.unmounts.push(\n this.props.wsapi.on('open', () => {\n const token = this.props.token;\n if (token.length > 10) {\n this.setState({ tokenInput: token });\n this.onCheckSubmit();\n }\n })\n );\n\n this.unmounts.push(\n this.props.wsapi.on('invalid', () => {\n this.setValidity(VALIDITY.INVALID);\n })\n );\n\n this.unmounts.push(\n this.props.wsapi.on('valid', (data: WSTokenValid) => {\n this.setValidity(VALIDITY.VALID);\n this.setState({ tokenData: data });\n })\n );\n\n this.unmounts.push(\n this.props.wsapi.onerror(() => {\n this.setValidity(VALIDITY.UNSET);\n })\n );\n }\n\n public componentWillUnmount() {\n this.unmounts.forEach((u) => u());\n }\n\n public render() {\n return (\n
\n
\n
\n \n
\n {this.state.tokenData && (\n
\n \n \n \n
\n )}\n
\n \n CHECK\n \n
\n
\n
\n\n {this.state.redirect && (\n \n )}\n \n );\n }\n\n private onTokenChange(event: FormEvent) {\n const inpt = (event.target as HTMLInputElement).value.trim();\n\n if (inpt.length === 0) {\n this.setState({\n tokenInput: inpt,\n valid: VALIDITY.UNSET,\n tokenData: null,\n });\n } else {\n this.setState({\n tokenInput: inpt,\n });\n }\n }\n\n private onCheckSubmit() {\n const inpt = this.state.tokenInput.trim();\n\n if (inpt.length === 0) {\n this.setInputInvalid();\n return;\n }\n\n this.setValidity(VALIDITY.UNSET, true);\n\n if (inpt.length <= 40) {\n setTimeout(() => this.setValidity(VALIDITY.INVALID), 500);\n } else {\n this.props.wsapi.send('init', inpt);\n setTimeout(() => this.props.wsapi.send('check'), 100);\n this.setState({ redirect: true });\n }\n }\n\n private setValidity(valid: VALIDITY, loading: boolean = false) {\n this.setState({ valid, loading });\n }\n\n private setInputInvalid() {\n this.setState({ showInvalid: true });\n setTimeout(() => this.setState({ showInvalid: false }), 1000);\n }\n\n private get stateColor(): string {\n switch (this.state.valid) {\n case VALIDITY.VALID:\n return '#CDDC39';\n case VALIDITY.INVALID:\n return '#f44336';\n }\n\n return '#00000000';\n }\n}\n","/** @format */\n\nimport React, { Component } from 'react';\nimport { WSTokenValid } from '../../api/model';\n\nimport './Info.scss';\n\nexport default class Info extends Component<{ data: WSTokenValid }> {\n public render() {\n return (\n
\n \"account\n

{this.nameTag}

\n

{this.props.data.id}

\n {this.props.data.guilds} GUILDS\n
\n );\n }\n\n private get nameTag(): string {\n return `${this.props.data.username}#${this.props.data.discriminator}`;\n }\n}\n","/** @format */\n\nimport React, { Component, CSSProperties } from 'react';\n\nimport './DefAvatar.scss';\n\nconst COLORS = [\n '#e57373',\n '#F06292',\n '#BA68C8',\n '#9575CD',\n '#7986CB',\n '#64B5F6',\n '#4FC3F7',\n '#4DD0E1',\n '#4DB6AC',\n '#81C784',\n '#AED581',\n '#DCE775',\n '#FFD54F',\n '#FFB74D',\n '#FF8A65',\n '#A1887F',\n];\n\nexport interface Props {\n src: string;\n alt: string;\n text: string;\n width: number;\n height: number;\n}\n\nexport default class DefAvatar extends Component {\n public state = {\n isError: false,\n };\n\n public static defaultProps = {\n alt: '',\n text: null,\n };\n\n public render() {\n const img = (\n \n );\n const alt =
{this.character}
;\n\n return this.state.isError ? alt : img;\n }\n\n private onError() {\n this.setState({ isError: true });\n }\n\n private get color(): string {\n const c = this.character.charCodeAt(0) - 65;\n return COLORS[c % COLORS.length];\n }\n\n private get character(): string {\n const text = this.props.text ?? this.props.alt;\n return text.substr(0, 1).toUpperCase();\n }\n\n private get style(): CSSProperties {\n return {\n backgroundColor: this.color,\n width: this.props.width,\n height: this.props.height,\n lineHeight: this.props.height + 'px',\n fontSize: Math.round((this.props.height + this.props.width) / 4),\n };\n }\n}\n","function _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\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgMember = function SvgMember(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 40,\n height: 40,\n viewBox: \"0 0 40 40\",\n style: {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 2\n },\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 20.026,\n cy: 11.371,\n r: 11.371,\n style: {\n fill: \"#fff\"\n }\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M39.018,40l-38.036,0l0,-12.065l7.673,-6.067c0,0 11.637,11.036 22.742,-0.068l7.621,6.135l0,12.065Z\",\n style: {\n fill: \"#fff\"\n }\n }));\n};\n\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgMember, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/member.f66b24c5.svg\";\nexport { ForwardRef as ReactComponent };","/** @format */\n\nimport React, { Component } from 'react';\nimport { WSGuild } from '../../api/model';\nimport DefAvatar from '../def-avatar/DefAvatar';\n\nimport { ReactComponent as MemberIcon } from '../../img/member.svg';\nimport './GuildTile.scss';\n\nexport default class GuildTile extends Component<{\n guild: WSGuild;\n onClick: () => void;\n}> {\n public render() {\n const guild = this.props.guild;\n return (\n \n \n

{guild.name}

\n

{guild.id}

\n
\n \n {guild.members}\n
\n
\n );\n }\n\n private get guildIcon(): string {\n const guild = this.props.guild;\n return `https://cdn.discordapp.com/icons/${guild.id}/${guild.icon}.png`;\n }\n}\n","function _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\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgClose = function SvgClose(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 40,\n height: 40,\n viewBox: \"0 0 40 40\",\n style: {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 2\n },\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.735,0l-3.735,3.735l36.265,36.265l3.735,-3.735l-36.265,-36.265Z\",\n style: {\n fill: \"#e8e8e8\"\n }\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0,36.265l3.735,3.735l36.265,-36.265l-3.735,-3.735l-36.265,36.265Z\",\n style: {\n fill: \"#e8e8e8\"\n }\n }));\n};\n\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgClose, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/close.348f86e9.svg\";\nexport { ForwardRef as ReactComponent };","/** @format */\n\nimport React, { Component } from 'react';\nimport WebSocketAPI, { EventHandlerRemover } from '../../api/ws';\nimport { WSGuild, WSUser } from '../../api/model';\nimport { ReactComponent as CloseIcon } from '../../img/close.svg';\n\nimport './GuildInfoModal.scss';\nimport DefAvatar from '../def-avatar/DefAvatar';\n\nexport default class GuildInfoModal extends Component<{\n wsapi: WebSocketAPI;\n guild: WSGuild;\n onClose: () => void;\n}> {\n public state = {\n owner: (null as any) as WSUser,\n };\n\n public static defaultProps = {\n onClose: () => {},\n };\n\n private unmounts: EventHandlerRemover[] = [];\n\n public componentDidMount() {\n this.unmounts.push(\n this.props.wsapi.on('userinfo', (data: WSUser) => {\n this.setState({ owner: data });\n })\n );\n\n this.unmounts.push(\n this.props.wsapi.onopen(() => {\n this.props.wsapi.send('userinfo', this.props.guild.owner);\n })\n );\n }\n\n public componentWillUnmount() {\n this.unmounts.forEach((u) => u());\n }\n\n public render() {\n const guild = this.props.guild;\n const owner = this.state.owner;\n\n return (\n
\n
\n
\n

{guild.name}

\n \n \n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n
Guild ID{guild.id}
Members{guild.members}
\n
\n {owner && (\n
\n \n

\n {owner.username}#{owner.discriminator}\n

\n

{owner.id}

\n
\n )}\n
\n
\n );\n }\n\n private onBgClick(e: React.MouseEvent) {\n e.preventDefault();\n e.stopPropagation();\n\n const target = e.target as HTMLDivElement;\n if (target.id === 'modal-wrapper') {\n this.props.onClose();\n }\n }\n}\n","/** @format */\n\nimport React, { Component } from 'react';\nimport WebSocketAPI, { EventHandlerRemover } from '../../api/ws';\nimport { WSGuilds, WSGuild } from '../../api/model';\nimport GuildTile from '../../components/guild-tile/GuildTile';\n\nimport './Guilds.scss';\nimport GuildInfoModal from '../../components/guild-info-modal/GuildInfoModal';\n\nexport default class GuildsRoute extends Component<{\n wsapi: WebSocketAPI;\n token: string;\n}> {\n public state = {\n guilds: [] as WSGuilds,\n showGuild: (null as any) as WSGuild,\n };\n\n private unmounts: EventHandlerRemover[] = [];\n\n public componentDidMount() {\n this.unmounts.push(\n this.props.wsapi.onopen(() => {\n this.props.wsapi.send('init', this.props.token);\n setTimeout(() => this.props.wsapi.send('guildinfo'), 100);\n })\n );\n\n this.unmounts.push(\n this.props.wsapi.on('guildinfo', (data: any) => {\n this.state.guilds.push(data.guild);\n this.setState({});\n })\n );\n }\n\n public componentWillUnmount() {\n this.unmounts.forEach((u) => u());\n }\n\n public render() {\n const guilds = this.state.guilds.map((g) => (\n this.setState({ showGuild: g })}\n key={'g_' + g.id}\n />\n ));\n return (\n
\n {this.state.showGuild && (\n this.setState({ showGuild: null })}\n wsapi={this.props.wsapi}\n guild={this.state.showGuild}\n />\n )}\n
{guilds}
\n
\n );\n }\n}\n","function _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\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgLogoWide = function SvgLogoWide(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 283,\n height: 40,\n viewBox: \"0 0 283 40\",\n style: {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 2\n },\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M73.07,12.388c0.899,0 1.348,0.379 1.348,1.174c0,1.311 -0.726,2.002 -1.935,2.002l-5.804,0l-3.558,20.191c-0.208,1.07 -0.795,1.587 -1.866,1.587c-0.898,0 -1.347,-0.345 -1.347,-1.138c0,-0.208 0,-0.311 0.069,-0.449l3.524,-20.191l-5.286,0c-0.863,0 -1.312,-0.415 -1.312,-1.14c0,-1.38 0.691,-2.036 1.9,-2.036l14.267,0Z\",\n style: {\n fill: \"#fff\",\n fillRule: \"nonzero\"\n }\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M86.819,34.132l3.247,-18.569l-9.673,0l-3.317,18.569l9.743,0Zm3.213,0.38c-0.312,1.622 -1.762,2.796 -3.386,2.796l-10.468,0c-1.313,0 -2.315,-0.932 -2.315,-2.278l0,-0.518l3.421,-19.363c0.31,-1.829 1.312,-2.76 3.316,-2.76l10.433,0c1.486,0 2.418,0.862 2.418,2.208c0,0.276 0,0.483 -0.033,0.552l-3.386,19.363Z\",\n style: {\n fill: \"#fff\",\n fillRule: \"nonzero\"\n }\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M100.187,13.561c0,0.173 0,0.277 -0.035,0.414l-1.624,9.147l1.003,0l10.916,-10.113c0.414,-0.414 0.726,-0.621 1.313,-0.621c0.76,0 1.347,0.621 1.347,1.346c0,0.553 -0.207,0.898 -0.587,1.277l-8.775,8.111l5.251,0c1.659,0 2.868,1.208 2.868,2.83c0,0.242 -0.035,0.449 -0.07,0.691l-1.589,9.077c-0.207,1.07 -0.829,1.588 -1.831,1.588c-0.932,0 -1.382,-0.38 -1.382,-1.139c0,-0.173 0,-0.311 0.035,-0.449l1.589,-9.077c0,-0.242 -0.069,-0.345 -0.173,-0.345l-10.467,0l-1.658,9.422c-0.208,1.07 -0.829,1.588 -1.866,1.588c-0.898,0 -1.347,-0.38 -1.347,-1.139c0,-0.173 0,-0.311 0.034,-0.449l3.835,-21.745c0.207,-1.069 0.829,-1.587 1.865,-1.587c0.898,0 1.348,0.379 1.348,1.173\",\n style: {\n fill: \"#fff\",\n fillRule: \"nonzero\"\n }\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M131.899,12.388c0.898,0 1.348,0.379 1.348,1.174c0,1.311 -0.76,2.002 -1.935,2.002l-11.366,0l-1.243,7.144l7.289,0c0.864,0 1.312,0.38 1.312,1.139c0,1.347 -0.725,2.036 -1.899,2.036l-7.256,0l-1.485,8.249l12.023,0c0.897,0 1.347,0.381 1.347,1.174c0,1.312 -0.726,2.002 -1.9,2.002l-13.577,0c-0.83,0 -1.348,-0.552 -1.348,-1.312l0,-0.275l3.87,-21.746c0.138,-0.827 0.933,-1.587 1.865,-1.587l12.955,0Z\",\n style: {\n fill: \"#fff\",\n fillRule: \"nonzero\"\n }\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M150.933,13.975c-1.036,5.903 -2.072,11.805 -3.109,17.707c-2.28,-5.983 -4.56,-11.965 -6.84,-17.948c-0.381,-0.897 -1.002,-1.345 -1.935,-1.345c-1.313,0 -2.246,0.931 -2.487,2.139c-1.244,7.064 -2.488,14.128 -3.731,21.193c-0.07,0.137 -0.07,0.275 -0.07,0.448c0,0.759 0.449,1.139 1.383,1.139c1.07,0 1.623,-0.518 1.83,-1.587c1.06,-6.006 2.12,-12.012 3.179,-18.018c2.268,6.017 4.537,12.034 6.805,18.052c0.38,1.035 1.071,1.553 2.004,1.553c1.244,0 2.142,-1.07 2.418,-2.313c1.244,-7.006 2.487,-14.013 3.731,-21.02c0.035,-0.137 0.035,-0.241 0.035,-0.413c0,-0.795 -0.449,-1.173 -1.347,-1.173c-1.071,0 -1.658,0.517 -1.866,1.586Z\",\n style: {\n fill: \"#fff\",\n fillRule: \"nonzero\"\n }\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M183.413,12.388c0.898,0 1.347,0.379 1.347,1.174c0,1.311 -0.725,2.002 -1.935,2.002l-5.804,0l-3.558,20.191c-0.207,1.07 -0.795,1.587 -1.865,1.587c-0.899,0 -1.348,-0.345 -1.348,-1.138c0,-0.208 0,-0.311 0.07,-0.449l3.524,-20.191l-5.286,0c-0.864,0 -1.313,-0.415 -1.313,-1.14c0,-1.38 0.691,-2.036 1.9,-2.036l14.268,0Z\",\n style: {\n fill: \"#fff\",\n fillRule: \"nonzero\"\n }\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M197.161,34.132l3.247,-18.569l-9.673,0l-3.316,18.569l9.742,0Zm3.213,0.38c-0.312,1.622 -1.762,2.796 -3.385,2.796l-10.468,0c-1.313,0 -2.315,-0.932 -2.315,-2.278l0,-0.518l3.421,-19.363c0.31,-1.829 1.312,-2.76 3.316,-2.76l10.433,0c1.485,0 2.418,0.862 2.418,2.208c0,0.276 0,0.483 -0.034,0.552l-3.386,19.363Z\",\n style: {\n fill: \"#fff\",\n fillRule: \"nonzero\"\n }\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M217.093,34.132l3.247,-18.569l-9.672,0l-3.317,18.569l9.742,0Zm3.213,0.38c-0.311,1.622 -1.762,2.796 -3.386,2.796l-10.467,0c-1.313,0 -2.315,-0.932 -2.315,-2.278l0,-0.518l3.421,-19.363c0.31,-1.829 1.312,-2.76 3.316,-2.76l10.433,0c1.485,0 2.418,0.862 2.418,2.208c0,0.276 0,0.483 -0.034,0.552l-3.386,19.363Z\",\n style: {\n fill: \"#fff\",\n fillRule: \"nonzero\"\n }\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M230.461,13.561c0,0.173 0,0.277 -0.034,0.414l-3.594,20.158l12.3,0c0.897,0 1.347,0.379 1.347,1.173c0,1.311 -0.726,2.002 -1.865,2.002l-13.889,0c-0.691,0 -1.347,-0.552 -1.347,-1.312c0,-0.103 0,-0.241 0.035,-0.276l3.834,-21.745c0.208,-1.069 0.829,-1.587 1.866,-1.587c0.898,0 1.347,0.379 1.347,1.173\",\n style: {\n fill: \"#fff\",\n fillRule: \"nonzero\"\n }\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M262.416,12.388c0.932,0 1.347,0.76 1.347,1.587l-0.449,2.487c-0.207,1.035 -0.864,1.587 -1.901,1.587c-0.897,0 -1.312,-0.38 -1.312,-1.139c0,-0.207 0,-0.346 0.034,-0.448l0.104,-0.898l-9.57,0l-1.312,7.524l11.159,0c0.967,0 1.312,0.794 1.312,1.588l-1.934,11.045c-0.173,0.862 -1.002,1.587 -1.831,1.587l-12.852,0c-0.794,0 -1.347,-0.552 -1.347,-1.312c0,-0.103 0,-0.207 0.034,-0.275l0.519,-3.038c0.172,-1.07 0.794,-1.588 1.865,-1.588c0.864,0 1.278,0.483 1.278,1.416c0,0.413 -0.137,1.069 -0.241,1.621l9.672,0l1.383,-7.869l-11.193,0c-0.761,0 -1.313,-0.586 -1.313,-1.311c0,-0.139 0,-0.207 0.069,-0.276l1.865,-10.701c0.139,-0.827 0.933,-1.587 1.866,-1.587l12.748,0Z\",\n style: {\n fill: \"#fff\",\n fillRule: \"nonzero\"\n }\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M280.098,28.942l0.808,-4.7l-5.989,0l-0.809,4.7l5.99,0Zm2.115,-6.606c0.58,0 0.787,0.415 0.787,0.953l-1.16,6.606c-0.104,0.517 -0.622,0.952 -1.12,0.952l-0.788,0l0.974,5.239c0.021,0.062 0.021,0.124 0.021,0.27c-0.062,0.538 -0.414,0.952 -0.953,0.952c-0.538,0 -0.766,-0.187 -0.85,-0.58l-1.243,-5.881l-4.125,0l-0.974,5.467c-0.104,0.642 -0.497,0.952 -1.099,0.952c-0.538,0 -0.808,-0.228 -0.808,-0.683l0,-0.269l2.322,-13.025c0.124,-0.62 0.58,-0.953 1.119,-0.953l7.897,0Z\",\n style: {\n fill: \"#fff\",\n fillRule: \"nonzero\"\n }\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0.854,28.722l42.102,0c0.484,-1.68 0.758,-3.399 0.829,-5.116l-43.763,0c0.074,1.732 0.351,3.452 0.832,5.116\",\n style: {\n fill: \"#fff\",\n fillRule: \"nonzero\"\n }\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.253,39.741c0.126,0.09 0.25,0.176 0.376,0.259l24.555,0c1.459,-0.983 2.813,-2.157 4.022,-3.513l-32.614,0c1.073,1.196 2.295,2.29 3.661,3.254\",\n style: {\n fill: \"#fff\",\n fillRule: \"nonzero\"\n }\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.636,34.761l36.522,0c0.919,-1.377 1.656,-2.825 2.224,-4.314l-40.954,0c0.568,1.507 1.305,2.952 2.208,4.314\",\n style: {\n fill: \"#fff\",\n fillRule: \"nonzero\"\n }\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M34.551,4.021c-9.873,-6.98 -23.54,-4.641 -30.526,5.223c-2.72,3.842 -4.028,8.261 -4.025,12.637l43.804,0c-0.006,-6.853 -3.226,-13.599 -9.253,-17.86\",\n style: {\n fill: \"#fff\",\n fillRule: \"nonzero\"\n }\n }));\n};\n\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgLogoWide, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/logo-wide.1e000def.svg\";\nexport { ForwardRef as ReactComponent };","/** @format */\n\nimport React, { Component } from 'react';\nimport { Link } from 'react-router-dom';\n\nimport { ReactComponent as Logo } from '../../img/logo-wide.svg';\nimport './Header.scss';\n\nexport default class Header extends Component {\n public render() {\n return (\n
\n \n \n \n \n GITHUB\n \n \n ABOUT\n \n
\n );\n }\n}\n","/** @format */\n\nimport React, { Component } from 'react';\n\nimport { ReactComponent as Logo } from '../../img/logo-wide.svg';\nimport './About.scss';\n\nexport default class AboutRoute extends Component {\n public render() {\n return (\n
\n
\n \n
\n TokenTools R  (the R is, on the one\n side, for \n Rewrite and on the other for \n React)   is a tool Discord Bot\n developers can use to validate the state and get informations about\n their Bot API tokens.\n
\n
\n \n This tool is not ment to be used for validating tokens found in public\n domains to abuse them! Please report found and valid tokens to the\n authors of the project!\n \n

Credits

\n Thanks to Subby (Subby#8883 on Discord)\n for creating the Logo for this application.\n
\n
\n All other used icons are created by Ringo Hoffmann (zekro).\n
\n
\n Used fonts are \n \n Larabie Font\n \n  (Logo) and \n \n Barlow\n \n  (UI).\n

Techniques

\n The back end of TokenTools R is created with \n \n Go\n \n , \n \n gorilla/mux\n \n  as router and \n \n gorilla/websocket\n \n  as web socket server wrapper.\n
\n
\n \n React\n \n  is used to create the front end in combination with \n \n React Router\n \n  for SPA routing.\n

Copyright & Licence

\n Created and maintained by Ringo Hoffmann (zekro Development). Covered by\n the \n \n MIT Licence\n \n .\n
\n
© 2020 Ringo Hoffmann (zekro Development).\n
\n );\n }\n}\n","/** @format */\n\nimport React, { Component } from 'react';\nimport { BrowserRouter as Router, Route, Redirect } from 'react-router-dom';\nimport WebSocketAPI from './api/ws';\nimport MainRoute from './routes/main/Main';\nimport GuildsRoute from './routes/guilds/Guilds';\nimport Header from './components/header/Header';\n\nimport './App.scss';\nimport AboutRoute from './routes/about/About';\n\nexport default class App extends Component<{ wsapi: WebSocketAPI }> {\n public render() {\n return (\n \n
\n\n (\n \n )}\n />\n (\n \n )}\n />\n } />\n\n } />\n } />\n \n );\n }\n}\n","/** @format */\n\nimport { WSMessage } from './model';\n\nexport type EventHandler = (data: any, cid: number) => void;\nexport type EventHandlerRemover = () => void;\n\nexport default class WebSocketAPI {\n private ws: WebSocket;\n private handlers: { [key: string]: EventHandler[] } = {};\n private open = false;\n private _cid = 0;\n\n constructor(url: string) {\n this.ws = new WebSocket(url);\n\n this.ws.onmessage = (response) => {\n try {\n const data = JSON.parse(response.data) as WSMessage;\n if (data) {\n this.emit(data.event, data.data, data.cid);\n }\n } catch (err) {\n this.emit('error', err);\n }\n };\n\n this.ws.onerror = (error) => {\n this.emit('error', error);\n };\n\n this.ws.onopen = (event) => {\n this.open = true;\n this.emit('open', event);\n };\n }\n\n public on(event: string, handler: EventHandler): EventHandlerRemover {\n if (!this.handlers[event]) {\n this.handlers[event] = [];\n }\n\n this.handlers[event].push(handler);\n\n return () => {\n const i = this.handlers[event].indexOf(handler);\n this.handlers[event].splice(i, 1);\n };\n }\n\n public onerror(handler: EventHandler): EventHandlerRemover {\n return this.on('error', handler);\n }\n\n public onopen(handler: EventHandler): EventHandlerRemover {\n if (this.open) {\n handler(null, -1);\n return () => {};\n }\n\n return this.on('open', handler);\n }\n\n public send(event: string, data?: any, cid?: number): number {\n cid = cid ?? this.cid;\n\n const rawData = JSON.stringify({\n event,\n cid,\n data,\n } as WSMessage);\n\n this.ws.send(rawData);\n\n return cid;\n }\n\n public get isOpen(): boolean {\n return this.open;\n }\n\n private emit(event: string, data: any, cid: number = -1) {\n if (this.handlers[event]) {\n this.handlers[event].forEach((h) => {\n if (h) h(data, cid);\n });\n }\n }\n\n private get cid(): number {\n return this._cid++;\n }\n}\n","/** @format */\n\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport App from './App';\nimport WebSocketAPI from './api/ws';\n\nimport './index.scss';\n\nconst wsuri =\n process.env.NODE_ENV === 'development'\n ? 'ws://localhost:8081/ws'\n : window.location.origin.replace(\n /((http)|(https)):\\/\\//gm,\n window.location.origin.startsWith('http://') ? 'ws://' : 'wss://'\n ) + '/ws';\n\nconst wsapi = new WebSocketAPI(wsuri);\n\nReactDOM.render(\n \n \n ,\n document.getElementById('root')\n);\n"],"sourceRoot":""}