{"version":3,"sources":["serviceWorker.js","history.js","data/Api.js","data/AuthbookContext.js","dialogs/AddAccountDialog.js","dialogs/SetEncryptionKeyDialog.js","data/Crypto.js","dialogs/EditAccountDialog.js","dialogs/EmailVerifyDialog.js","dialogs/DetailsDialog.js","Home.js","dialogs/ChangePasswordDialog.js","dialogs/ChangeEncryptionKeyDialog.js","dialogs/CloseAccountDialog.js","Settings.js","App.js","dialogs/SignupDialog.js","dialogs/PasswordRecoverDialog.js","auth/Login.js","data/i18n/enUS.js","data/i18n/koKR.js","data/i18n/i18n.js","index.js","logo.svg"],"names":["Boolean","window","location","hostname","match","createBrowserHistory","Api","url","setUrl","this","signup","username","displayName","email","password","passwordCheck","fetch","concat","method","headers","Content-Type","body","JSON","stringify","toString","login","logout","session","localStorage","getItem","SESSION","closeAccount","encryptionKey","seedKey","changePassword","currentPassword","newPassword","newPasswordCheck","fetchUserInfo","reqPasswordRecovery","recoverPassword","verificationCode","changeEncryptionKey","currentKey","newKey","newKeyCheck","changeEmail","newEmail","verifyEmail","getAccounts","addAccount","name","info","seed","key","seedName","accountUserName","seedInfo","seedValue","updateAccount","id","deleteAccount","setEncryptionKey","keyCheck","seedKeyCheck","ContextDefaults","userinfo","encryptionKeySet","isEmailVerified","accounts","resetStates","setUserinfo","setAccounts","AuthbookContext","React","createContext","AuthbookContextProvider","_Component","props","_this","Object","classCallCheck","possibleConstructorReturn","getPrototypeOf","call","state","objectSpread","bind","assertThisInitialized","inherits","createClass","value","setState","data","toConsumableArray","index","tmp","otpKey","tmpArr","splice","react_default","a","createElement","Provider","children","Component","initState","loading","message","isOpen","AddAccountDialog","_this2","react_linear_progress_dist_default","indeterminate","react_dialog_dist_default","open","onClose","scrimClickAction","escapeKeyAction","react_dialog_dist","t","react_text_field_dist_default","label","react_text_field_dist","disabled","onChange","e","target","textarea","type","onClick","asyncToGenerator","regenerator_default","mark","_callee","wrap","_context","prev","next","abrupt","stop","isDefault","_callee2","res","result","_context2","sent","json","ok","console","log","context","afterSubmit","contextType","withTranslation","withRef","SetEncryptionKeyDialog","action","mseeage","Crypto","encryptedContent","Promise","resolve","reject","salt","CryptoJS","enc","Hex","parse","slice","iv","content","length","secretKey","PBKDF2","keySize","iterations","hasher","algo","SHA512","mode","CBC","padding","pad","Pkcs7","AES","decrypt","ciphertext","Utf8","formData","editIndex","EditAccountDialog","initData","closeForm","helperText","newItem","EmailVerifyDialog","step","INIT","REQUEST","REQUESTED","VERIFY","DONE","arguments","undefined","t0","porps","DetailsDialog","Home","isOpened","isSetKeyDialogVisible","encryptionKeyInput","ticker","emailVerify","createRef","editAccount","details","authenticator","userdata","isSeedKeySet","loadAccounts","setupTimer","current","openForm","clearInterval","otpTimer","msg","toast","className","css","background","border-radius","progressClassName","item","encryptedSeed","otp","generate","timeUsed","timeLeft","timeRemaining","setInterval","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","Symbol","iterator","done","err","return","_this3","decryptPrompt","class","react_button_dist_default","raised","_callee3","_context3","react_layout_grid_dist","Consumer","_ref2","map","i","desktopColumns","phoneColumns","tabletColumns","react_card_dist_default","react_card_dist","progress","bufferingDots","react_icon_button_dist_default","react_material_icon_dist_default","icon","react_copy_to_clipboard_lib","text","onCopy","notify","react_fab_dist","textLabel","dialogs_AddAccountDialog","ref","dialogs_SetEncryptionKeyDialog","dialogs_EditAccountDialog","dialogs_EmailVerifyDialog","dialogs_DetailsDialog","react_toastify","success","ChangePasswordDialog","ChangeEncryptionKeyDialog","CloseAccountDialog","clear","history","push","Settings","serverUrl","changeKey","listItems","title","desc","react_list_dist","tag","react_list_dist_default","twoLine","_ref","primaryText","secondaryText","ChangePasswordDialog_ChangePasswordDialog","ChangeEncryptionKeyDialog_ChangeEncryptionKeyDialog","CloseAccountDialog_CloseAccountDialog","App","selectedIndex","react_drawer_dist_default","modal","react_drawer_dist","singleSelection","graphic","dist_default","dist","align","navIcon","tabIndex","hasRipple","react_router","exact","path","component","SignupDialog","PasswordRecoverDialog","requestRecover","Login","pwRecover","setItem","get","src","logo","alt","react_chips_dist","dialogs_SignupDialog","dialogs_PasswordRecoverDialog","i18nEnUS","translation","common","yes","no","submit","cancel","close","delete","pwcheck","serverurl","ver_code","dspname","configure","enckey","enckey_check","acc_name","otpkey","menu","settings","about","signup_done","signup_done_msg","forgot","recover","recover_init","recover_request","recover_requested","recover_verify","recover_verified","new_pw","new_pw_chk","server_config","server_config_desc","home","decrypt_desc","add","enc_done","added","updated","deleted","copied","addnew","acc_details","acc_edit","acc_edit_otpkey_desc","conf_enckey","conf_enckey_desc","init","request","requested","verify","new","acc_info","acc_settings","change_email","change_email_desc","change_pw","change_pw_desc","change_enckey","change_enckey_desc","close_acc","close_acc_desc","i18nKoKR","i18n","use","LanguageDetector","initReactI18next","fallbackLng","debug","detection","order","resources","en-US","ko-KR","interpolation","escapeValue","ReactDOM","render","AuthbookContext_AuthbookContextProvider","to","document","getElementById","navigator","serviceWorker","ready","then","registration","unregister","module","exports","__webpack_require__","p"],"mappings":"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","file":"static/js/main.b51beabe.chunk.js","sourcesContent":["// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read http://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit http://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then((registration) => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See http://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch((error) => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then((response) => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then((registration) => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then((registration) => {\n registration.unregister();\n });\n }\n}\n","import {createBrowserHistory} from 'history';\n\nexport default createBrowserHistory();\n","const Api = {\n url: 'https://authbook.herokuapp.com',\n\n setUrl(url) {\n this.url = url;\n },\n\n signup(username, displayName, email, password, passwordCheck) {\n return fetch(`${this.url}/auth/signup`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n username: username.toString(),\n email: email.toString(),\n displayName: displayName.toString(),\n password: password.toString(),\n passwordCheck: passwordCheck.toString(),\n }),\n });\n },\n\n login(username, password) {\n return fetch(`${this.url}/auth/login`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n username: username.toString(),\n password: password.toString(),\n }),\n });\n },\n\n logout() {\n const session = localStorage.getItem('session');\n return fetch(`${this.url}/auth/logout`, {\n method: 'GET',\n headers: {\n 'SESSION': session,\n },\n });\n },\n\n closeAccount(password, encryptionKey) {\n const session = localStorage.getItem('session');\n return fetch(`${this.url}/auth/close_account`, {\n method: 'DELETE',\n headers: {\n 'SESSION': session,\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n password: password.toString(),\n seedKey: encryptionKey.toString(),\n }),\n });\n },\n\n changePassword(currentPassword, newPassword, newPasswordCheck) {\n const session = localStorage.getItem('session');\n return fetch(`${this.url}/auth/change_password`, {\n method: 'PUT',\n headers: {\n 'SESSION': session,\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n currentPassword: currentPassword.toString(),\n newPassword: newPassword.toString(),\n newPasswordCheck: newPasswordCheck.toString(),\n }),\n });\n },\n\n fetchUserInfo() {\n const session = localStorage.getItem('session');\n return fetch(`${this.url}/auth/userinfo`, {\n method: 'GET',\n headers: {\n 'SESSION': session,\n },\n });\n },\n\n reqPasswordRecovery(email) {\n return fetch(`${this.url}/auth/request_recover`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n email: email.toString(),\n }),\n });\n },\n\n recoverPassword(username, verificationCode, newPassword, newPasswordCheck) {\n return fetch(`${this.url}/auth/recover`, {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n username: username.toString(),\n verificationCode: verificationCode.toString(),\n newPassword: newPassword.toString(),\n newPasswordCheck: newPasswordCheck.toString(),\n }),\n });\n },\n\n changeEncryptionKey(currentKey, newKey, newKeyCheck) {\n const session = localStorage.getItem('session');\n return fetch(`${this.url}/seeds/change_seedkey`, {\n method: 'PUT',\n headers: {\n 'SESSION': session,\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n currentPassword: currentKey.toString(),\n newPassword: newKey.toString(),\n newPasswordCheck: newKeyCheck.toString(),\n }),\n });\n },\n\n changeEmail(newEmail) {\n const session = localStorage.getItem('session');\n return fetch(`${this.url}/auth/change_email`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'SESSION': session,\n },\n body: JSON.stringify({\n email: newEmail.toString(),\n }),\n });\n },\n\n verifyEmail(verificationCode) {\n const session = localStorage.getItem('session');\n return fetch(`${this.url}/auth/verify`, {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/json',\n 'SESSION': session,\n },\n body: JSON.stringify({\n verificationCode: verificationCode.toString(),\n }),\n });\n },\n\n getAccounts() {\n const session = localStorage.getItem('session');\n return fetch(`${this.url}/seeds/all`, {\n method: 'GET',\n headers: {\n 'SESSION': session,\n },\n });\n },\n\n addAccount(name, url, username, info, seed, key) {\n const session = localStorage.getItem('session');\n return fetch(`${this.url}/seeds/add`, {\n method: 'POST',\n headers: {\n 'SESSION': session,\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n seedName: name,\n url: url,\n accountUserName: username,\n seedInfo: info,\n seedValue: seed,\n seedKey: key,\n }),\n });\n },\n\n updateAccount(id, name, url, username, info, seed, key) {\n const session = localStorage.getItem('session');\n return fetch(`${this.url}/seeds/edit`, {\n method: 'PUT',\n headers: {\n 'SESSION': session,\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n id: id,\n seedName: name,\n url: url,\n accountUserName: username,\n seedInfo: info,\n seedValue: seed,\n seedKey: key,\n }),\n });\n },\n\n deleteAccount(id) {\n const session = localStorage.getItem('session');\n return fetch(`${this.url}/seeds/delete`, {\n method: 'DELETE',\n headers: {\n 'SESSION': session,\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n id: id,\n }),\n });\n },\n\n setEncryptionKey(key, keyCheck) {\n const session = localStorage.getItem('session');\n return fetch(`${this.url}/seeds/set_seedkey`, {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/json',\n 'SESSION': session,\n },\n body: JSON.stringify({\n seedKey: key,\n seedKeyCheck: keyCheck,\n }),\n });\n },\n};\n\nexport default Api;\n","import React, {Component} from 'react';\n\nexport const ContextDefaults = {\n userinfo: {\n displayName: '',\n username: '',\n email: '',\n encryptionKeySet: false,\n isEmailVerified: false,\n },\n\n accounts: [],\n encryptionKey: '',\n\n resetStates: () => {},\n setUserinfo: () => {},\n setEncryptionKey: () => {},\n setAccounts: () => {},\n addAccount: () => {},\n updateAccount: () => {},\n deleteAccount: () => {},\n\n};\n\nexport const AuthbookContext = React.createContext(ContextDefaults);\n\nexport class AuthbookContextProvider extends Component {\n constructor(props) {\n super(props);\n this.state = {\n ...ContextDefaults,\n resetStates: this.resetStates.bind(this),\n setUserinfo: this.setUserinfo.bind(this),\n setEncryptionKey: this.setEncryptionKey.bind(this),\n setAccounts: this.setAccounts.bind(this),\n addAccount: this.addAccount.bind(this),\n updateAccount: this.updateAccount.bind(this),\n deleteAccount: this.deleteAccount.bind(this),\n };\n }\n\n resetStates() {\n this.setState({\n ...ContextDefaults,\n resetStates: this.resetStates.bind(this),\n setUserinfo: this.setUserinfo.bind(this),\n setEncryptionKey: this.setEncryptionKey.bind(this),\n setAccounts: this.setAccounts.bind(this),\n addAccount: this.addAccount.bind(this),\n updateAccount: this.updateAccount.bind(this),\n deleteAccount: this.deleteAccount.bind(this),\n });\n }\n\n setUserinfo(data) {\n this.setState({userinfo: data});\n }\n\n setEncryptionKey(data) {\n this.setState({encryptionKey: data});\n }\n\n setAccounts(data) {\n this.setState({accounts: data});\n }\n\n addAccount(data) {\n this.setState({\n accounts: [...this.state.accounts, data],\n });\n }\n\n updateAccount(index, data) {\n const tmp = this.state.accounts;\n tmp[index] = {\n ...tmp[index],\n seedName: data.seedName,\n url: data.url,\n accountUserName: data.accountUserName,\n seedInfo: data.seedInfo,\n };\n if (data.otpKey) tmp[index].otpKey = data.otpKey;\n this.setState({accounts: tmp});\n }\n\n deleteAccount(index) {\n const tmpArr = this.state.accounts;\n tmpArr.splice(index, 1);\n this.setState({accounts: tmpArr});\n }\n\n render() {\n return (\n \n {this.props.children}\n \n );\n }\n}\n","import React, { Component } from 'react';\nimport '../themeing.scss';\nimport './DialogInputStyle.css';\n\nimport TextField, {HelperText, Input} from '@material/react-text-field';\nimport LinearProgress from '@material/react-linear-progress';\nimport Api from '../data/Api';\nimport Dialog, {\n DialogTitle,\n DialogContent,\n DialogFooter,\n DialogButton,\n} from '@material/react-dialog';\nimport {AuthbookContext} from '../data/AuthbookContext';\nimport {withTranslation} from 'react-i18next';\n\nconst initState = {\n name: \"\",\n url: \"\",\n username: \"\",\n info: \"\",\n seed: \"\",\n key: \"\",\n loading: false,\n message: \"\",\n isOpen: false\n };\n\nclass AddAccountDialog extends Component{\n static contextType = AuthbookContext;\n constructor(props) {\n super(props);\n this.state = initState;\n }\n \n openForm(){\n this.setState({\n isOpen: true\n });\n }\n \n onClose(){\n this.setState(initState);\n }\n \n render(){\n const loading = this.state.loading ? () : (
);\n return(\n \n {this.props.t('home.addnew')}\n \n \n this.setState({name: e.target.value})}/>\n \n \n this.setState({url: e.target.value})}/>\n \n \n this.setState({username: e.target.value})}/>\n \n \n this.setState({info: e.target.value})}/>\n \n \n this.setState({seed: e.target.value})}/>\n \n \n this.setState({key: e.target.value})}/>\n \n

{this.state.message}

\n
\n {loading}\n \n this.onClose()}>{this.props.t('common.cancel')}\n {\n this.setState({loading: true})\n const res = await Api.addAccount(\n this.state.name,\n this.state.url,\n this.state.username,\n this.state.info,\n this.state.seed,\n this.state.key)\n const result = await res.json();\n if(res.ok){\n console.log(result);\n this.context.addAccount({\n ...result,\n otpKey: this.state.seed\n });\n this.onClose();\n this.props.afterSubmit();\n }else{\n this.setState({loading: false, message: result.message});\n }\n }}>{this.props.t('common.submit')}\n \n
\n )\n }\n}\n\n\nexport default withTranslation(null, {withRef: true})(AddAccountDialog);","import React, {Component} from 'react';\nimport '../themeing.scss';\nimport './DialogInputStyle.css';\n\nimport TextField, {HelperText, Input} from '@material/react-text-field';\nimport LinearProgress from '@material/react-linear-progress';\nimport Api from '../data/Api';\nimport Dialog, {\n DialogTitle,\n DialogContent,\n DialogFooter,\n DialogButton,\n} from '@material/react-dialog';\nimport {withTranslation} from 'react-i18next';\n\nclass SetEncryptionKeyDialog extends Component {\n constructor(props) {\n super(props);\n this.state = {\n key: '',\n keyCheck: '',\n loading: false,\n message: '',\n };\n }\n\n render() {\n const loading = this.state.loading ? () : (
);\n return (\n \n {this.props.t('home.conf_enckey')}\n \n

{this.props.t('home.conf_enckey_desc')}

\n \n this.setState({key: e.target.value})}/>\n \n \n this.setState({keyCheck: e.target.value})}/>\n \n\n

{this.state.message}

\n
\n {loading}\n \n {this.props.t('common.cancel')}\n {\n this.setState({loading: true});\n const res = await Api.setEncryptionKey(this.state.key, this.state.keyCheck);\n if (res.ok) {\n this.setState({loading: false});\n this.props.afterSubmit();\n } else {\n const result = await res.json();\n this.setState({loading: false, mseeage: result.message});\n }\n }}>{this.props.t('common.submit')}\n \n
\n );\n }\n}\n\nexport default withTranslation(null, {withRef: true})(SetEncryptionKeyDialog);","// import aesjs from 'aes-js';\n// import pbkdf2 from 'pbkdf2';\nimport CryptoJS from 'crypto-js';\n\n// https://github.com/digitalbazaar/forge\n// https://en.wikipedia.org/wiki/PBKDF2\n// https://cryptojs.gitbook.io/docs/\nexport default class Crypto {\n static async decrypt(password, encryptedContent) {\n return new Promise((resolve, reject)=>{\n const salt = CryptoJS.enc.Hex.parse(encryptedContent.slice(0, 32));\n const iv = CryptoJS.enc.Hex.parse(encryptedContent.slice(32, 64));\n // const content = Buffer.from(encryptedContent.slice(64, encryptedContent.length), 'hex').toString('base64');\n const content = CryptoJS.enc.Hex.parse(encryptedContent.slice(64, encryptedContent.length));\n const secretKey = CryptoJS.PBKDF2(password, salt, {\n keySize: 256 / 32, iterations: 20000,\n hasher: CryptoJS.algo.SHA512,\n mode: CryptoJS.mode.CBC,\n padding: CryptoJS.pad.Pkcs7,\n });\n\n const decrypted = CryptoJS.AES.decrypt({ciphertext: content}, secretKey, {iv: iv});\n resolve(decrypted.toString(CryptoJS.enc.Utf8));\n });\n }\n}\n","import React, { Component } from 'react';\nimport '../themeing.scss';\nimport './DialogInputStyle.css';\nimport TextField, {HelperText, Input} from '@material/react-text-field';\nimport LinearProgress from '@material/react-linear-progress';\nimport Api from '../data/Api';\nimport Dialog, {\n DialogTitle,\n DialogContent,\n DialogFooter,\n DialogButton,\n} from '@material/react-dialog';\nimport {AuthbookContext} from '../data/AuthbookContext';\nimport {withTranslation} from 'react-i18next';\n\nconst initState = {\n formData: {\n id: 0,\n seedName: \"\",\n url: \"\",\n accountUserName: \"\",\n seed: \"\",\n key: \"\",\n seedInfo: \"\"\n },\n isOpen: false,\n message: \"\",\n loading: false,\n editIndex: 0\n};\n\nclass EditAccountDialog extends Component{\n static contextType = AuthbookContext;\n constructor(props) {\n super(props);\n this.state = initState;\n }\n \n openForm(index, initData){\n this.setState({\n formData: initData, \n isOpen: true,\n editIndex: index});\n }\n \n closeForm(){\n this.setState(initState);\n }\n \n render(){\n const loading = this.state.loading ? () : (
);\n return(\n \n {this.props.t('home.acc_edit')}\n \n \n this.setState({\n formData:{...this.state.formData, seedName: e.target.value}\n })}/>\n \n \n this.setState({\n formData:{...this.state.formData, url: e.target.value}\n })}/>\n \n \n this.setState({\n formData:{...this.state.formData, accountUserName: e.target.value}\n })}/>\n \n \n this.setState({\n formData:{...this.state.formData, seedInfo: e.target.value}\n })}/>\n \n {this.props.t('home.acc_edit_otpkey_desc')}}>\n this.setState({seed: e.target.value})}/>\n \n \n this.setState({key: e.target.value})}/>\n \n

{this.state.message}

\n
\n {loading}\n \n {\n this.setState({loading: true});\n const res = await Api.deleteAccount(this.state.formData.id);\n if(res.ok){\n this.setState({loading: false});\n this.context.deleteAccount(this.state.editIndex);\n this.props.afterSubmit(1);\n this.closeForm();\n }else{\n const result = await res.json();\n this.setState({loading: false, message: result.message});\n }\n }}>{this.props.t('common.delete')}\n {\n this.setState({loading: true});\n const res = await Api.updateAccount(\n this.state.formData.id,\n this.state.formData.seedName,\n this.state.formData.url,\n this.state.formData.accountUserName,\n this.state.formData.seedInfo,\n this.state.seed,\n this.state.key);\n if(res.ok){\n this.setState({loading: false});\n \n let newItem = {\n seedName: this.state.formData.seedName,\n url: this.state.formData.url,\n accountUserName: this.state.formData.accountUserName,\n seedInfo: this.state.formData.seedInfo\n };\n \n if(this.state.formData.seed != \"\") newItem.otpKey = this.state.formData.seed;\n this.context.updateAccount(this.editIndex, newItem);\n this.props.afterSubmit(0);\n this.closeForm();\n }else{\n const result = await res.json();\n this.setState({loading: false, message: result.message});\n }\n }}>{this.props.t('common.submit')}\n \n
\n )\n }\n}\n\nexport default withTranslation(null, {withRef: true})(EditAccountDialog);","import React, { Component } from 'react';\nimport { Router, Route, NavLink } from \"react-router-dom\";\nimport '../themeing.scss';\nimport './DialogInputStyle.css';\nimport TextField, {HelperText, Input} from '@material/react-text-field';\nimport LinearProgress from '@material/react-linear-progress';\nimport Api from '../data/Api';\nimport Dialog, {\n DialogTitle,\n DialogContent,\n DialogFooter,\n DialogButton,\n} from '@material/react-dialog';\nimport {withTranslation} from 'react-i18next';\n\nclass EmailVerifyDialog extends Component{\n \n step = {\n INIT: 0,\n REQUEST: 1,\n REQUESTED: 2,\n VERIFY: 3,\n DONE: 4\n };\n \n constructor(props) {\n super(props);\n this.state = {\n isOpen: false,\n step: this.step.INIT,\n email: \"\",\n verificationCode: \"\",\n loading: false,\n message: \"\"\n };\n }\n \n openForm(step=this.step.INIT){\n this.setState({isOpen: true, step: step});\n }\n\n onClose(){\n this.setState({\n isOpen: false,\n step: this.step.INIT,\n email: \"\",\n verificationCode: \"\",\n loading: false,\n message: \"\"\n });\n }\n \n async changeEmail(){\n this.setState({loading: true});\n try{\n let res = await Api.changeEmail(this.state.email);\n if(res.ok){\n this.setState({loading: false, step: this.step.REQUESTED});\n }else{\n const result = await res.json();\n this.setState({loading: false, message: result.message});\n }\n }catch(error){\n console.log(error);\n this.setState({loading: false, message: error});\n }\n }\n\n async verifyEmail(){\n this.setState({loading: true});\n try{\n let res = await Api.verifyEmail(this.state.verificationCode);\n if(res.ok){\n this.setState({loading: false, step: this.step.DONE});\n }else{\n const result = await res.json();\n this.setState({loading: false, message: result.message});\n }\n }catch(error){\n console.log(error);\n this.setState({loading: false, message: error});\n }\n }\n \n render(){\n const loading = this.state.loading ? () : (
);\n let content;\n switch(this.state.step){\n case this.step.INIT:\n content = (
\n \n

{this.props.t('email.init')}

\n
\n \n this.onClose()}>{this.props.t('common.cancel')}\n { \n this.setState({step: this.step.REQUEST})\n }}>{this.props.t('common.no')}\n { \n this.setState({step: this.step.VERIFY})\n }}>{this.props.t('common.yes')}\n \n
);\n break;\n case this.step.REQUEST:\n content = (
\n \n

{this.props.t('email.request')}

\n \n this.setState({email: e.target.value})}/>\n \n

{this.state.message}

\n
\n {loading}\n \n {this.props.t('common.submit')}\n \n
);\n break;\n case this.step.REQUESTED:\n content = (
\n \n

{this.props.t('email.requested')}

\n
\n \n { \n this.setState({step: this.step.REQUEST})\n }}>{this.props.t('common.prev')}\n { \n this.setState({step: this.step.VERIFY})\n }}>{this.props.t('common.next')}\n \n
);\n break;\n case this.step.VERIFY:\n content = (
\n \n

{this.props.t('email.verify')}

\n \n this.setState({verificationCode: e.target.value})}/>\n \n

{this.state.message}

\n
\n {loading}\n \n {this.props.t('common.submit')}\n \n
);\n break;\n case this.step.DONE:\n content = (
\n \n

{this.props.t('email.done')}

\n
\n \n this.onClose()}>{this.porps.t('common.ok')}\n \n
);\n break;\n }\n return(\n this.onClose()}>\n {this.props.t('email.title')}\n {content}\n \n )\n }\n}\n\nexport default withTranslation(null, {withRef: null})(EmailVerifyDialog);","import React, {Component} from 'react';\nimport '../themeing.scss';\nimport './DialogInputStyle.css';\nimport Dialog, {\n DialogTitle,\n DialogContent,\n DialogFooter,\n DialogButton,\n} from '@material/react-dialog';\nimport {withTranslation} from 'react-i18next';\n\nconst initState = {\n formData: {\n id: 0,\n seedName: '',\n url: '',\n accountUserName: '',\n seed: '',\n key: '',\n seedInfo: '',\n },\n isOpen: false,\n};\n\nclass DetailsDialog extends Component {\n constructor(props) {\n super(props);\n this.state = initState;\n }\n\n openForm(initData) {\n this.setState({\n formData: initData,\n isOpen: true});\n }\n\n closeForm() {\n this.setState(initState);\n }\n\n render() {\n return (\n \n {this.props.t('home.acc_details')}\n \n

{this.state.formData.seedName}

\n

{this.props.t('common.url')} {this.state.formData.url}

\n

{this.props.t('common.username')} {this.state.formData.accountUserName}

\n

{this.props.t('common.info')}
{this.state.formData.seedInfo}

\n
\n \n {this.props.t('common.close')}\n \n
\n );\n }\n}\n\nexport default withTranslation(null, {withRef: true})(DetailsDialog);","import React, { Component } from 'react';\nimport { Router, Route, NavLink } from \"react-router-dom\";\nimport history from './history';\nimport './App.css';\nimport './themeing.scss';\nimport 'react-toastify/dist/ReactToastify.css';\n\n\nimport MaterialIcon from '@material/react-material-icon';\nimport TextField, {HelperText, Input} from '@material/react-text-field';\nimport IconButton from '@material/react-icon-button';\nimport Card, {\n CardPrimaryContent,\n CardMedia,\n CardActions,\n CardActionButtons,\n CardActionIcons\n} from \"@material/react-card\";\nimport {Cell, Grid, Row} from '@material/react-layout-grid';\nimport LinearProgress from '@material/react-linear-progress';\nimport {Fab} from '@material/react-fab';\nimport Api from './data/Api';\nimport AddAccountDialog from './dialogs/AddAccountDialog';\nimport SetEncryptionKeyDialog from './dialogs/SetEncryptionKeyDialog';\nimport { ToastContainer, toast } from 'react-toastify';\nimport { css } from 'glamor';\nimport Crypto from './data/Crypto';\nimport Button from '@material/react-button';\nimport {authenticator} from 'otplib/otplib-browser';\nimport EditAccountDialog from './dialogs/EditAccountDialog';\nimport {CopyToClipboard} from 'react-copy-to-clipboard';\nimport EmailVerifyDialog from './dialogs/EmailVerifyDialog';\nimport DetailsDialog from './dialogs/DetailsDialog';\nimport {AuthbookContext} from './data/AuthbookContext';\nimport {withTranslation} from 'react-i18next';\n\nclass Home extends Component {\n static contextType = AuthbookContext;\n constructor(props) {\n super(props);\n this.state = {\n isOpened: false,\n accounts: [],\n isSetKeyDialogVisible: false,\n encryptionKeyInput: \"\",\n loading: false,\n ticker: true,\n userinfo: this.context\n };\n this.emailVerify = React.createRef();\n this.addAccount = React.createRef();\n this.editAccount = React.createRef();\n this.details = React.createRef();\n this.authenticator = authenticator;\n }\n \n async componentDidMount(){\n console.log(\"mount\");\n const result = await Api.fetchUserInfo();\n if(result.ok){\n const userdata = await result.json();\n this.context.setUserinfo({ displayName: userdata.displayName,\n username: userdata.username,\n email: userdata.email, \n encryptionKeySet: userdata.isSeedKeySet,\n isEmailVerified: userdata.isEmailVerified });\n }\n if(!this.context.userinfo.encryptionKeySet){\n this.setState({isSetKeyDialogVisible: true});\n }else if(!this.context.userinfo.isEmailVerified){\n this.emailVerify.current.openForm(\n this.emailVerify.current.step.VERIFY);\n }else if(this.state.encryptionKey){\n this.loadAccounts();\n }else if(this.context.encryptionKey){\n this.setupTimer();\n }\n }\n \n componentWillUnmount(){\n clearInterval(this.otpTimer);\n }\n \n notify(msg){\n toast(msg, {\n className: css({\n background: '#333',\n \"border-radius\": \"8px\"\n }),\n progressClassName: css({\n background: \"white\"\n })\n });\n }\n \n async loadAccounts(){\n console.log(\"loading./..\");\n if(this.otpTimer){\n clearInterval(this.otpTimer);\n }\n this.setState({loading: true});\n let res = await Api.getAccounts();\n if(res.ok){\n let accounts = await res.json();\n for(let item of accounts){\n item.otpKey = await Crypto.decrypt(this.context.encryptionKey, item.encryptedSeed);\n item.otp = this.authenticator.generate(item.otpKey);\n \n const timeUsed = this.authenticator.timeUsed();\n const timeLeft = this.authenticator.timeRemaining();\n item.timeLeft = timeLeft / (timeUsed + timeLeft);\n }\n this.context.setAccounts(accounts);\n this.setState({loading: false});\n }\n \n this.setupTimer();\n }\n \n setupTimer(){\n this.otpTimer = setInterval(()=>{\n let tmp = this.context.accounts;\n for(let item of tmp){\n item.otp = this.authenticator.generate(item.otpKey);\n const timeUsed = this.authenticator.timeUsed();\n const timeLeft = this.authenticator.timeRemaining();\n item.timeLeft = timeLeft / (timeUsed + timeLeft);\n }\n this.context.setAccounts(tmp);\n this.setState({ticker: !this.state.ticker});\n }, 1000);\n }\n \n render() {\n const loading = this.state.loading ? () : (
);\n const decryptPrompt = (\n
\n

{this.props.t(\"home.decrypt_desc\")}

\n \n this.setState({encryptionKeyInput: e.target.value})}/>\n

\n
\n
\n );\n \n const accounts = (\n
\n \n \n \n {({accounts}) => \n accounts.map((item, i)=>{\n return(\n \n \n \n
\n {item.otp}
\n {item.seedName} - {item.url}
\n {item.accountUserName}\n
\n
\n \n \n \n {\n this.details.current.openForm(item);\n }}>\n \n \n this.notify(this.props.t('home.copied'))}>\n \n \n \n {\n this.notify(\"Copied!\");\n window.open(item.url, \"_blank\");\n }}>\n \n \n \n \n {\n this.editAccount.current.openForm(i, item);\n }}>\n \n \n \n \n
\n
\n )\n })\n }\n
\n
\n
\n } textLabel={this.props.t('home.add')}\n disabled={this.state.loading} onClick={()=>this.addAccount.current.openForm()}/>\n
\n );\n \n const content = this.context.encryptionKey != \"\" ? accounts : decryptPrompt;\n return (\n
\n {loading}\n {content}\n this.notify(this.props.t('home.added'))}/>\n this.setState({isSetKeyDialogVisible: false})}\n afterSubmit={()=>{\n this.setState({isSetKeyDialogVisible: false});\n this.notify(this.props.t('home.enc_done'));\n if(!JSON.parse(localStorage.getItem(\"isEmailVerified\"))){\n this.emailVerify.current.openForm(\n this.emailVerify.current.step.VERIFY);\n }\n }}/>\n {\n switch(result){\n case 0:\n this.notify(this.props.t('home.updated'));\n break;\n case 1: \n this.notify(this.props.t('home.deleted')); \n break;\n }\n }}/>\n \n \n \n
\n );\n }\n}\n\nexport default withTranslation()(Home);","import React, {Component} from 'react';\nimport '../themeing.scss';\nimport './DialogInputStyle.css';\n\nimport TextField, {HelperText, Input} from '@material/react-text-field';\nimport LinearProgress from '@material/react-linear-progress';\nimport Api from '../data/Api';\nimport Dialog, {\n DialogTitle,\n DialogContent,\n DialogFooter,\n DialogButton,\n} from '@material/react-dialog';\n\nconst initState = {\n currentPassword: '',\n newPassword: '',\n newPasswordCheck: '',\n loading: false,\n message: '',\n isOpen: false,\n success: false,\n};\n\nexport default class ChangePasswordDialog extends Component {\n constructor(props) {\n super(props);\n this.state = initState;\n }\n\n openForm() {\n this.setState({\n isOpen: true,\n });\n }\n\n onClose() {\n this.setState(initState);\n }\n\n render() {\n const loading = this.state.loading ? () : (
);\n const content = this.state.success ? (\n
\n \n

Password has been changed successfully.

\n
\n \n this.onClose()}>Ok\n \n
\n\n ) : (\n
\n \n \n this.setState({currentPassword: e.target.value})}/>\n \n \n this.setState({newPassword: e.target.value})}/>\n \n \n this.setState({newPasswordCheck: e.target.value})}/>\n \n

{this.state.message}

\n
\n {loading}\n \n this.onClose()}>Cancel\n {\n this.setState({loading: true});\n const res = await Api.changePassword(\n this.state.currentPassword,\n this.state.newPassword,\n this.state.newPasswordCheck);\n if (res.ok) {\n this.setState({loading: false, success: true});\n } else {\n const result = await res.json();\n this.setState({loading: false, message: result.message});\n }\n }}>Submit\n \n
\n );\n return (\n \n Change Password\n {content}\n \n );\n }\n}\n","import React, {Component} from 'react';\nimport '../themeing.scss';\nimport './DialogInputStyle.css';\n\nimport TextField, {HelperText, Input} from '@material/react-text-field';\nimport LinearProgress from '@material/react-linear-progress';\nimport Api from '../data/Api';\nimport Dialog, {\n DialogTitle,\n DialogContent,\n DialogFooter,\n DialogButton,\n} from '@material/react-dialog';\n\nconst initState = {\n currentPassword: '',\n newPassword: '',\n newPasswordCheck: '',\n loading: false,\n message: '',\n isOpen: false,\n success: false,\n};\n\nexport default class ChangeEncryptionKeyDialog extends Component {\n constructor(props) {\n super(props);\n this.state = initState;\n }\n\n openForm() {\n this.setState({\n isOpen: true,\n });\n }\n\n onClose() {\n this.setState(initState);\n }\n\n render() {\n const loading = this.state.loading ? () : (
);\n const content = this.state.success ? (\n
\n \n

Encryption Key has been changed successfully.

\n
\n \n this.onClose()}>Ok\n \n
\n\n ) : (\n
\n \n \n this.setState({currentPassword: e.target.value})}/>\n \n \n this.setState({newPassword: e.target.value})}/>\n \n \n this.setState({newPasswordCheck: e.target.value})}/>\n \n

{this.state.message}

\n
\n {loading}\n \n this.onClose()} disabled={this.state.loading}>Cancel\n {\n this.setState({loading: true, message: 'PLease wait. It might take a few minutes. Don\\'t close this dialog.'});\n const res = await Api.changeEncryptionKey(\n this.state.currentPassword,\n this.state.newPassword,\n this.state.newPasswordCheck);\n if (res.ok) {\n this.setState({loading: false, success: true});\n } else {\n const result = await res.json();\n this.setState({loading: false, message: result.message});\n }\n }} disabled={this.state.loading}>Submit\n \n
\n );\n return (\n \n Change Encryption Key\n {content}\n \n );\n }\n}\n","import React, { Component } from 'react';\nimport '../themeing.scss';\nimport './DialogInputStyle.css';\nimport history from '../history';\nimport TextField, {HelperText, Input} from '@material/react-text-field';\nimport LinearProgress from '@material/react-linear-progress';\nimport Api from '../data/Api';\nimport Dialog, {\n DialogTitle,\n DialogContent,\n DialogFooter,\n DialogButton,\n} from '@material/react-dialog';\nimport {AuthbookContext} from '../data/AuthbookContext';\n\n\nconst initState = {\n password: \"\",\n encryptionKey: \"\",\n loading: false,\n message: \"\",\n isOpen: false,\n success: false\n};\n\nexport default class CloseAccountDialog extends Component{\n static contextType = AuthbookContext;\n constructor(props) {\n super(props);\n this.state = initState;\n }\n \n openForm(){\n this.setState({\n isOpen: true\n });\n }\n \n onClose(){\n this.setState(initState);\n }\n \n render(){\n const loading = this.state.loading ? () : (
);\n const content = this.state.success ? (\n
\n \n

Your account is now closed and no longer available.

\n
\n \n {\n localStorage.clear();\n this.context.resetStates();\n history.push(\"/login\");\n }}>Ok\n \n
\n \n ) : (\n
\n \n

Your account and and all of its data will be deleted. Type your password and encryption key to confirm.

\n \n this.setState({password: e.target.value})}/>\n \n \n this.setState({encryptionKey: e.target.value})}/>\n \n

{this.state.message}

\n
\n {loading}\n \n this.onClose()}>Cancel\n {\n this.setState({loading: true});\n const res = await Api.closeAccount(\n this.state.password,\n this.state.encryptionKey);\n if(res.ok){\n this.setState({loading: false, success: true});\n }else{\n const result = await res.json();\n this.setState({loading: false, message: result.message});\n }\n }}>Close Account\n \n
\n )\n return(\n \n Close Account\n {content}\n \n );\n }\n}\n","import React, { Component } from 'react';\nimport { Router, Route, NavLink } from 'react-router-dom';\nimport history from './history';\nimport './App.css';\nimport './themeing.scss';\n\nimport MaterialIcon from '@material/react-material-icon';\nimport List, {ListItem, ListItemText, ListGroup, \n ListGroupSubheader,ListDivider} from '@material/react-list';\nimport LinearProgress from '@material/react-linear-progress';\nimport Api from './data/Api';\nimport Button from '@material/react-button';\nimport EmailVerifyDialog from './dialogs/EmailVerifyDialog';\nimport ChangePasswordDialog from './dialogs/ChangePasswordDialog';\nimport ChangeEncryptionKeyDialog from './dialogs/ChangeEncryptionKeyDialog';\nimport CloseAccountDialog from './dialogs/CloseAccountDialog';\nimport {AuthbookContext} from './data/AuthbookContext';\nimport {withTranslation} from 'react-i18next';\n\nclass Settings extends Component {\n constructor(props) {\n super(props);\n this.state = {\n serverUrl: ''\n };\n this.emailVerify = React.createRef();\n this.changePassword = React.createRef();\n this.changeKey = React.createRef();\n this.closeAccount = React.createRef();\n\n this.listItems = [\n {title: this.props.t('settings.change_email'), desc: this.props.t('settings.change_email_desc'),\n onClick: ()=>{\n this.emailVerify.current.openForm();\n }},\n {title: this.props.t('settings.change_pw'), desc: this.props.t('settings.change_pw_desc'),\n onClick: ()=>{\n this.changePassword.current.openForm();\n }},\n {title:this.props.t('settings.change_enckey'), desc: this.props.t('settings.change_enckey_desc'),\n onClick: ()=>{\n this.changeKey.current.openForm();\n }},\n {title: this.props.t('settings.close_acc'), desc: this.props.t('settings.close_acc_desc'),\n onClick: ()=>{\n this.closeAccount.current.openForm();\n }}\n ];\n }\n \n async componentDidMount(){\n this.setState({ serverUrl: Api.url});\n }\n \n\n render() {\n return (\n
\n \n {this.props.t('settings.acc_info')}\n \n \n {({userinfo}) => (\n \n \n \n )}\n \n \n \n \n \n \n {this.props.t('settings.acc_settings')}\n \n {this.listItems.map((item, i)=>{\n return(\n \n \n \n );\n })}\n \n \n \n \n \n \n
\n );\n }\n}\n\nexport default withTranslation()(Settings);","import React, {Component} from 'react';\nimport {Router, Route, NavLink} from 'react-router-dom';\nimport history from './history';\nimport './App.css';\nimport './themeing.scss';\n\n\nimport TopAppBar, {TopAppBarFixedAdjust, TopAppBarIcon,\n TopAppBarTitle, TopAppBarRow, TopAppBarSection} from '@material/react-top-app-bar';\nimport Drawer, {DrawerAppContent, DrawerContent, DrawerHeader, DrawerTitle, DrawerSubtitle} from '@material/react-drawer';\nimport MaterialIcon from '@material/react-material-icon';\nimport List, {ListItem, ListItemGraphic, ListItemText} from '@material/react-list';\nimport Api from './data/Api';\nimport Home from './Home';\nimport Settings from './Settings';\nimport {AuthbookContext} from './data/AuthbookContext';\nimport {withTranslation} from 'react-i18next';\n\nclass App extends Component {\n constructor(props) {\n super(props);\n this.state = {\n selectedIndex: 0,\n isOpened: false,\n serverUrl: '',\n };\n }\n\n async componentDidMount() {\n if (!localStorage.getItem('session')) {\n history.push('/login');\n } else {\n Api.setUrl(localStorage.getItem('serverUrl'));\n this.setState({\n serverUrl: Api.url,\n });\n }\n }\n\n render() {\n return (\n
\n this.setState({isOpened: false})}>\n\n \n {({userinfo}) => (\n \n {userinfo.displayName}\n {userinfo.username}
{this.state.serverUrl}
\n
\n )}\n
\n\n\n \n \n {\n history.push('/app/home');\n this.setState({selectedIndex: 0, isOpened: false});\n }}>\n } />\n \n \n {\n history.push('/app/settings');\n this.setState({selectedIndex: 1, isOpened: false});\n }}>\n } />\n \n \n \n } />\n \n \n {\n await Api.logout();\n this.setState({selectedIndex: 4, isOpened: false});\n localStorage.clear();\n // this.props.resetStates();\n history.push('/login');\n }}>\n } />\n \n \n\n \n \n
\n\n \n \n \n \n \n this.setState({isOpened: !this.state.isOpened})}/>\n \n Authbook\n \n \n \n \n \n \n \n \n
\n );\n }\n}\n\nexport default withTranslation()(App);\n","import React, {Component} from 'react';\nimport '../themeing.scss';\nimport './DialogInputStyle.css';\n\nimport TextField, {HelperText, Input} from '@material/react-text-field';\nimport LinearProgress from '@material/react-linear-progress';\nimport Api from '../data/Api';\nimport Dialog, {\n DialogTitle,\n DialogContent,\n DialogFooter,\n DialogButton,\n} from '@material/react-dialog';\nimport {withTranslation} from 'react-i18next';\n\nclass SignupDialog extends Component {\n constructor(props) {\n super(props);\n this.state = {\n isOpen: false,\n serverUrl: '',\n username: '',\n displayName: '',\n email: '',\n password: '',\n passwordCheck: '',\n loading: false,\n done: false,\n message: '',\n };\n }\n\n openForm(serverUrl) {\n this.setState({isOpen: true, serverUrl: serverUrl});\n }\n\n async signup() {\n this.setState({loading: true});\n try {\n const res = await Api.signup(\n this.state.username,\n this.state.displayName,\n this.state.email,\n this.state.password,\n this.state.passwordCheck);\n if (res.ok) {\n this.setState({loading: false, done: true});\n } else {\n const result = await res.json();\n this.setState({loading: false, message: result.message});\n }\n } catch (error) {\n console.log(error);\n }\n }\n\n render() {\n const loading = this.state.loading ? () : (
);\n const content = this.state.done ? (
\n \n

Almost done!

\n

We just sent an email that includes email verification code.\n To use your account, verify your email with the code on your first login.

\n
\n \n this.setState({isOpen: false, done: false})}>OK\n \n
) :\n (
\n \n \n \n \n \n this.setState({username: e.target.value})}/>\n \n \n this.setState({displayName: e.target.value})}/>\n \n \n this.setState({email: e.target.value})}/>\n \n \n this.setState({password: e.target.value})}/>\n \n \n this.setState({passwordCheck: e.target.value})}/>\n \n

{this.state.message}

\n
\n {loading}\n \n {this.props.t('login.signup')}\n \n
);\n return (\n this.setState({isOpen: false, done: false})}>\n {this.props.t('login.signup')}\n {content}\n \n );\n }\n}\n\nexport default withTranslation(null, {withRef: true})(SignupDialog);\n","import React, { Component } from 'react';\nimport '../themeing.scss';\nimport './DialogInputStyle.css';\n\nimport TextField, {HelperText, Input} from '@material/react-text-field';\nimport LinearProgress from '@material/react-linear-progress';\nimport Api from '../data/Api';\nimport Dialog, {\n DialogTitle,\n DialogContent,\n DialogFooter,\n DialogButton,\n} from '@material/react-dialog';\nimport { withTranslation } from 'react-i18next';\n\nclass PasswordRecoverDialog extends Component{\n \n step = {\n INIT: 0,\n REQUEST: 1,\n REQUESTED: 2,\n VERIFY: 3,\n DONE: 4\n };\n \n constructor(props) {\n super(props);\n this.state = {\n serverUrl:\"\",\n isOpen: false,\n step: this.step.INIT,\n email: \"\",\n username: \"\",\n verificationCode: \"\",\n password: \"\",\n passwordCheck: \"\",\n loading: false,\n message: \"\"\n };\n }\n \n openForm(serverUrl){\n this.setState({isOpen: true, serverUrl: serverUrl});\n }\n\n onClose(){\n this.setState({\n serverUrl:\"\",\n isOpen: false,\n step: this.step.INIT,\n email: \"\",\n username: \"\",\n verificationCode: \"\",\n password: \"\",\n passwordCheck: \"\",\n loading: false,\n message: \"\"\n });\n }\n \n async requestRecover(){\n this.setState({loading: true});\n try{\n let res = await Api.reqPasswordRecovery(this.state.email);\n if(res.ok){\n this.setState({loading: false, step: this.step.REQUESTED});\n }else{\n const result = await res.json();\n this.setState({loading: false, message: result.message});\n }\n }catch(error){\n console.log(error);\n this.setState({loading: false, message: error});\n }\n }\n\n async recoverPassword(){\n this.setState({loading: true});\n try{\n let res = await Api.recoverPassword(\n this.state.username,\n this.state.verificationCode,\n this.state.password,\n this.state.passwordCheck);\n if(res.ok){\n this.setState({loading: false, step: this.step.DONE});\n }else{\n const result = await res.json();\n this.setState({loading: false, message: result.message});\n }\n }catch(error){\n console.log(error);\n this.setState({loading: false, message: error});\n }\n }\n \n render(){\n const loading = this.state.loading ? () : (
);\n let content;\n switch(this.state.step){\n case this.step.INIT:\n content = (
\n \n

{this.props.t(\"login.recover_init\")}

\n
\n \n { \n this.setState({step: this.step.REQUEST})\n }}>{this.props.t(\"common.no\")}\n { \n this.setState({step: this.step.VERIFY})\n }}>{this.props.t(\"common.yes\")}\n \n
);\n break;\n case this.step.REQUEST:\n content = (
\n \n

{this.props.t(\"login.recover_request\")}

\n \n \n \n \n this.setState({email: e.target.value})}/>\n \n

{this.state.message}

\n
\n {loading}\n \n {this.props.t(\"common.submit\")}\n \n
);\n break;\n case this.step.REQUESTED:\n content = (
\n \n

{this.props.t(\"login.recover_requested\")}

\n
\n \n { \n this.setState({step: this.step.REQUEST})\n }}>{this.props.t(\"commom.prev\")}\n { \n this.setState({step: this.step.VERIFY})\n }}>{this.props.t(\"common.next\")}\n \n
);\n break;\n case this.step.VERIFY:\n content = (
\n \n

{this.props.t(\"login.recover_verify\")}

\n \n \n \n \n this.setState({username: e.target.value})}/>\n \n \n this.setState({verificationCode: e.target.value})}/>\n \n \n this.setState({password: e.target.value})}/>\n \n \n this.setState({passwordCheck: e.target.value})}/>\n \n

{this.state.message}

\n
\n {loading}\n \n Submit\n \n
);\n break;\n case this.step.DONE:\n content = (
\n \n

Done! You can now use your new password.

\n
\n \n this.onClose()}>Ok\n \n
);\n break;\n }\n return(\n this.onClose()}>\n {this.props.t(\"login.recover\")}\n {content}\n \n )\n }\n}\n\nexport default withTranslation(null,{withRef: true})(PasswordRecoverDialog);","import React, { Component } from 'react';\nimport { Router, Route, Link } from \"react-router-dom\";\nimport history from '../history';\nimport Api from '../data/Api';\nimport './Login.scss';\nimport '../themeing.scss';\nimport logo from '../logo.svg';\nimport TextField, {HelperText, Input} from '@material/react-text-field';\nimport Button from '@material/react-button';\nimport Dialog, {\n DialogTitle,\n DialogContent,\n DialogFooter,\n DialogButton,\n} from '@material/react-dialog';\nimport {Chip} from '@material/react-chips';\nimport LinearProgress from '@material/react-linear-progress';\nimport Card, {\n CardPrimaryContent,\n CardMedia,\n CardActions,\n CardActionButtons,\n CardActionIcons\n} from \"@material/react-card\";\nimport SignupDialog from '../dialogs/SignupDialog';\nimport PasswordRecoverDialog from '../dialogs/PasswordRecoverDialog';\nimport {AuthbookContext} from '../data/AuthbookContext';\nimport { withTranslation } from 'react-i18next';\n\nclass Login extends Component {\n static contextType = AuthbookContext;\n constructor(props) {\n super(props);\n this.state = {\n username: \"\", password: \"\", url: \"https://authbook.herokuapp.com\",\n isOpen: false, message: \"\", loading: false,\n userinfo: this.context\n };\n Api.setUrl(this.state.url);\n this.signup = React.createRef();\n this.pwRecover = React.createRef();\n }\n \n async login(){\n this.setState({loading: true});\n Api.setUrl(this.state.url);\n let res = await Api.login(this.state.username, this.state.password);\n if(res.ok){\n let userdata = await res.json();\n localStorage.setItem(\"serverUrl\", Api.url);\n localStorage.setItem(\"session\", res.headers.get(\"SESSION\"));\n this.setState({loading: false});\n this.context.setUserinfo({ displayName: userdata.displayName,\n username: userdata.username,\n email: userdata.email, \n encryptionKeySet: userdata.isSeedKeySet,\n isEmailVerified: userdata.isEmailVerified });\n history.push(\"/\");\n }else{\n let result = await res.json();\n this.setState({message: result.message, loading: false});\n }\n }\n \n render() {\n const loading = this.state.loading ? () : (
);\n return (\n
\n \n \"logo\"\n

Authbook


\n \n {this.setState({isOpen: true})}}/>
\n \n this.setState({username: e.target.value})}/>\n
\n \n this.setState({password: e.target.value})}/>\n
\n

{this.state.message}

\n {loading}\n
\n \n \n
\n \n {this.props.t(\"login.server_config\")}\n \n

{this.props.t(\"login.server_config_desc\")}

\n \n this.setState({url: e.target.value})}/>\n \n
\n \n {\n Api.setUrl(this.state.url);\n this.setState({isOpen: false})\n }}>{this.props.t(\"common.configure\")}\n \n
\n \n \n
\n );\n }\n}\n\nexport default withTranslation()(Login);","/* eslint-disable no-multi-str */\nconst i18nEnUS = {\n translation: {\n 'common': {\n 'ok': 'OK',\n 'yes': 'Yes',\n 'no': 'No',\n 'next': 'Next',\n 'prev': 'Previous',\n 'submit': 'Submit',\n 'cancel': 'Cancel',\n 'close': 'Close',\n 'delete': 'Delete',\n 'username': 'Username',\n 'password': 'Password',\n 'pwcheck': 'Password Check',\n 'serverurl': 'Server URL',\n 'email': 'Email Address',\n 'ver_code': 'Verification code',\n 'dspname': 'Display name(nickname, real name, etc...)',\n 'configure': 'Configure',\n 'enckey': 'Encryption key',\n 'enckey_check': 'Encryption key check',\n 'acc_name': 'Website/Service Name',\n 'url': 'URL',\n 'info': 'Information',\n 'otpkey': 'OTP Key'\n },\n 'menu': {\n 'accounts': 'My Accounts',\n 'settings': 'Settings',\n 'about': 'About',\n 'logout': 'Logout',\n },\n 'login': {\n 'login': 'Log In',\n 'signup': 'Sign Up',\n 'signup_done': 'Almost Done!',\n 'signup_done_msg': 'We just sent an email that includes email verification code.\\n \\\n To use your account, verify your email with the code on your first login.',\n 'forgot': 'Forgot password',\n 'recover': 'Password recivery',\n 'recover_init': 'Did you received a verification code for recovering your password via email?',\n 'recover_request': 'Submit email address of your authbook account to get a verification code.',\n 'recover_requested': 'Now, check your inbox and prepare your verification code.\\n \\\n Couldn\\'t received? You can move to previous step and request again.\\n \\\n Click \\'Next\\' if you are ready.',\n 'recover_verify': 'Use the verification code you received to recover password.',\n 'recover_verified': 'Done! You can now use your new password.',\n 'new_pw': 'New password',\n 'new_pw_chk': 'Confirm new password',\n 'server_config': 'Configure server',\n 'server_config_desc': 'Type the url of Authbook server instance. It must be HTTPS.',\n },\n 'home': {\n 'decrypt_desc': 'Type your encryption key to decrypt your accounts.',\n 'decrypt': 'Decrypt',\n 'add': 'Add account',\n 'enc_done': 'Encryption key has been configured.',\n 'added': 'New account has been added.',\n 'updated': 'Account updated',\n 'deleted': 'Account deleted',\n 'copied': 'Copied!',\n 'addnew': 'Add new account',\n 'acc_details': 'Account details',\n 'acc_edit': 'Edit account',\n 'acc_edit_otpkey_desc': 'Leave this field empty to current otp key.',\n 'conf_enckey': 'Configure your encryption key',\n 'conf_enckey_desc': 'Encryption key will be used to encrypt your account OTP data.\\n \\\n Please note that if you forgot your encryption key, you can\\'t recover it.'\n },\n 'email': {\n 'title': 'Update/Verify Email',\n 'init': 'Did you received a verification code for verifying your email address?',\n 'request': 'Submit the new email address that will replace the current one.',\n 'requested': 'Now, check your inbox and prepare your verification code.\\n \\\n Couldn\\'t received? You can move to previous step and request again.\\n \\\n Click \"Next\" if you are ready.',\n 'verify': 'Use the verification code you received to verify your email address.',\n 'done': 'Done! Your email is now updated and verified.',\n 'new': 'New email address'\n },\n 'settings': {\n 'acc_info': 'Account information',\n 'acc_settings': 'Account settings',\n 'change_email': 'Change Email Address',\n 'change_email_desc': 'Click to change your email address',\n 'change_pw': 'Change password',\n 'change_pw_desc': 'Change the password of your account',\n 'change_enckey': 'Change Encryption Key',\n 'change_enckey_desc': 'Change the key that encryptes OTP data.',\n 'close_acc': 'Close my account',\n 'close_acc_desc': 'Delete your data and account from the server.'\n\n }\n },\n};\nexport default i18nEnUS;\n","const i18nKoKR = {\n translation: {\n 'common': {\n 'ok': '확인',\n 'yes': '예',\n 'no': '아니오',\n 'next': '다음',\n 'prev': '이전',\n 'submit': '제출',\n 'cancel': '취소',\n 'close': '닫기',\n 'delete': '제거',\n 'username': '사용자 이름',\n 'password': '암호',\n 'pwcheck': '암호 확인',\n 'serverurl': '서버 URL',\n 'email': '이메일 주소',\n 'ver_code': '인증 코드',\n 'dspname': '표시 이름(별명, 실명 등)',\n 'configure': '구성',\n 'enckey': '암호화 키',\n 'enckey_check': '암호화 키 확인',\n 'acc_name': '웹사이트/서비스 이름',\n 'url': 'URL',\n 'info': '정보',\n 'otpkey': 'OTP 키'\n },\n 'menu': {\n 'accounts': '내 계정',\n 'settings': '설정',\n 'about': '정보',\n 'logout': '로그아웃',\n },\n 'login': {\n 'login': '로그인',\n 'signup': '회원 가입',\n 'signup_done': '거의 다 되었습니다!',\n 'signup_done_msg': '입력하신 메일주소로 인증 코드가 포함된 메일을 보내드렸습니다.\\n \\\n 첫 로그인 후 인증 코드로 인증 후 이용하시기 바랍니다.',\n 'forgot': '암호 분실',\n 'recover': '암호 복구',\n 'recover_init': '암호 복구를 위한 인증코드를 메일로 받으셨습니까?',\n 'recover_request': '인증 코드를 얻기 위해 Authbook 계정의 이메일 주소를 입력하세요.',\n 'recover_requested': '메일함을 확인하여 인증코드를 준비하세요.\\n \\\n 아직 받지 못했다면, 이전 단계에서 다시 요청하세요.\\n \\\n 준비가 되었다면, \\'다음\\'을 눌러서 계속하세요',\n 'recover_verify': '앞서 받은 인증코드로 암호를 복구하세요.',\n 'recover_verified': '이제 새 암호로 로그인 가능합니다.',\n 'new_pw': '새 암호',\n 'new_pw_chk': '새 암호 확인',\n 'server_config': '서버 구성',\n 'server_config_desc': 'Authbook 서버 인스턴스의 서버 URL을 입력하세요. 꼭 HTTPS여야 합니다.',\n },\n 'home': {\n 'decrypt_desc': '계정 정보를 복호화 하기 위해 암호화 키를 입력하세요.',\n 'decrypt': '복호화',\n 'add': '계정 추가',\n 'enc_done': '암호화 키가 구성되었습니다.',\n 'added': '새 계정이 추가되었습니다.',\n 'updated': '계정이 업데이트 되었습니다.',\n 'deleted': '계정이 제거되었습니다.',\n 'copied': '복사되었습니다!',\n 'addnew': '새 계정 추가',\n 'acc_details': '계정 상세 정보',\n 'acc_edit': '계정 수정',\n 'acc_edit_otpkey_desc': '사용중인 OTP 키를 유지하려면 이 칸을 비워두세요.',\n 'conf_enckey': '암호화 키 구성',\n 'conf_enckey_desc': '암호화 키는 OTP 데이터 암호화에 사용됩니다.\\n \\\n 분실 하시는 경우 복구할 수 없습니다.'\n },\n 'email': {\n 'title': '이메일 갱신/인증',\n 'init': '이메일로 이메일 주소 인증을 위한 인증코드를 받으셨나요?',\n 'request': '지금 사용중인 이메일 주소를 대체할 새 이메일 주소를 입력하세요.',\n 'requested': '받은 편지함을 확인하여 인증코드를 준비하세요.\\n \\\n 받지 못했다면, 이전 단계로 이동하여 다시 요청할 수 있습니다..\\n \\\n 준비가 되었다면, \"다음\" 버튼을 누르세요.',\n 'verify': '이메일 주소를 인증하려면 앞서 받은 인증코드를 입력하세요.',\n 'done': '이메일 주소가 갱신 및 인증 되었습니다.',\n 'new': '새 이메일 주소'\n },\n 'settings': {\n 'acc_info': '계정 정보',\n 'acc_settings': '계정 설정',\n 'change_email': '이메일 주소 변경',\n 'change_email_desc': '계정에 연결된 이메일 주소 변경',\n 'change_pw': '암호 변경',\n 'change_pw_desc': '계정 로그인 암호 바꾸기',\n 'change_enckey': '암호화 키 변경',\n 'change_enckey_desc': 'OTP 데이터 암호화에 쓸 키 변경',\n 'close_acc': '회원 탈퇴',\n 'close_acc_desc': '서버에서 내 계정과 데이터 모두 지우기'\n\n }\n },\n};\nexport default i18nKoKR;\n","import i18n from 'i18next';\nimport {initReactI18next} from 'react-i18next';\nimport LanguageDetector from 'i18next-browser-languagedetector';\n\nimport i18nEnUS from './enUS';\nimport i18nKoKR from './koKR';\n\ni18n\n .use(LanguageDetector)\n .use(initReactI18next)\n .init({\n fallbackLng: 'en-US',\n debug: true,\n detection: {\n order: ['navigator'],\n },\n resources: {\n 'en-US': i18nEnUS,\n 'ko-KR': i18nKoKR,\n\n 'interpolation': {\n escapeValue: false,\n },\n },\n });\n\nexport default i18n;\n","import React, {Component} from 'react';\nimport ReactDOM from 'react-dom';\nimport './themeing.scss';\nimport './index.scss';\nimport {Router, Route, Link, Redirect} from 'react-router-dom';\nimport * as serviceWorker from './serviceWorker';\nimport App from './App';\nimport Login from './auth/Login';\nimport history from './history';\nimport {AuthbookContextProvider} from './data/AuthbookContext';\nimport './data/i18n/i18n';\nReactDOM.render((\n \n \n
\n (\n \n )}/>\n \n \n
\n
\n
\n), document.getElementById('root'));\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: http://bit.ly/CRA-PWA\nserviceWorker.unregister();\n","module.exports = __webpack_public_path__ + \"static/media/logo.6a42705f.svg\";"],"sourceRoot":""}