filesafe/dist/js/auth.js.map
Bobby Wibowo d29621d5ff
Make render.js standalone
Despite that, it still expects the existence of a so-called main script
in "page" variable, and also expects to be loaded by it instead,
with an internal check to load itself if the main script fails to call
itself within the expected conditions.

Improved button colors in SweetAlert prompts.

Refactored window.onload() to DOMContentLoaded's event listener.
This should essentially allow pages to have multiple scripts that listen
to that event.

Bumped v1 version string and rebuilt client assets.
2020-06-20 02:30:57 +07:00

1 line
5.9 KiB
Plaintext

{"version":3,"sources":["auth.js"],"names":["const","lsKeys","token","page","localStorage","user","pass","unhide","loaderSection","document","querySelector","classList","add","loginSection","remove","floatingBtn","onAxiosError","error","console","statusText","520","521","522","523","524","525","526","527","530","response","status","description","data","swal","do","dest","trigger","value","trim","axios","post","username","password","then","success","window","location","catch","verify","addEventListener","form","event","preventDefault","loginBtn","checkValidity","currentTarget","registerBtn"],"mappings":"AAEAA,IAAMC,OAAS,CACbC,MAAO,SAGHC,KAAO,CAEXD,MAAOE,aAAaH,OAAOC,OAG3BG,KAAM,KACNC,KAAM,KAGRC,OAAW,WACTP,IAAMQ,EAAgBC,SAASC,cAAc,WACzCF,GACFA,EAAcG,UAAUC,IAAI,aAE9BZ,IAAMa,EAAeJ,SAASC,cAAc,oBACxCG,GACFA,EAAaF,UAAUG,OAAO,aAEhCd,IAAMe,EAAcN,SAASC,cAAc,mCACvCK,GACFA,EAAYJ,UAAUG,OAAO,cAIjCE,aAAiB,SAAGC,GAClBC,QAAQD,MAAMA,GAGdjB,IAYMmB,EAZmB,CACvBC,IAAK,gBACLC,IAAK,qBACLC,IAAK,uBACLC,IAAK,wBACLC,IAAK,qBACLC,IAAK,uBACLC,IAAK,0BACLC,IAAK,gBACLC,IAAK,oBAG6BX,EAAMY,SAASC,SAAWb,EAAMY,SAASV,WACvEY,EAAcd,EAAMY,SAASG,MAAQf,EAAMY,SAASG,KAAKD,YAC3Dd,EAAMY,SAASG,KAAKD,YACpB,sFAEJ,OAAOE,KAAQhB,EAAMY,SAAS,OAAM,IAAIV,EAAcY,EAAa,UAGrEG,GAAO,SAAIC,EAAMC,GACfpC,IAAMK,EAAOF,KAAKE,KAAKgC,MAAMC,OAC7B,IAAKjC,EACH,OAAO4B,KAAK,qBAAsB,kCAAmC,SAEvEjC,IAAMM,EAAOH,KAAKG,KAAK+B,MAAMC,OAC7B,IAAKhC,EACH,OAAO2B,KAAK,qBAAsB,kCAAmC,SAEvEG,EAAQzB,UAAUC,IAAI,cACtB2B,MAAMC,KAAK,OAAOL,EAAQ,CACxBM,SAAUpC,EACVqC,SAAUpC,IACTqC,MAAI,SAACd,GACN,IAA8B,IAA1BA,EAASG,KAAKY,QAEhB,OADAR,EAAQzB,UAAUG,OAAO,cAClBmB,KAAK,aAAaE,EAAI,IAAKN,EAASG,KAAKD,YAAa,SAG/D3B,aAAaF,MAAQ2B,EAASG,KAAK9B,MACnC2C,OAAOC,SAAW,eACjBC,OAAK,SAAC9B,GACPmB,EAAQzB,UAAUG,OAAO,cACzBX,KAAKa,aAAaC,OAItB+B,OAAW,WACTT,MAAMC,KAAK,oBAAqB,CAC9BtC,MAAOC,KAAKD,QACXyC,MAAI,SAACd,GACN,IAA8B,IAA1BA,EAASG,KAAKY,QAEhB,OADAzC,KAAKI,SACE0B,KAAK,qBAAsBJ,EAASG,KAAKD,YAAa,SAI/Dc,OAAOC,SAAW,eACjBC,OAAK,SAAC9B,GACPd,KAAKI,SACLJ,KAAKa,aAAaC,QAItB4B,OAAOI,iBAAiB,oBAAkB,WACxC9C,KAAKE,KAAOI,SAASC,cAAc,SACnCP,KAAKG,KAAOG,SAASC,cAAc,SAGnCV,IAAMkD,EAAOzC,SAASC,cAAc,aACpCwC,EAAKD,iBAAiB,UAAQ,SAAEE,GAC9BA,EAAMC,oBAGRpD,IAAMqD,EAAW5C,SAASC,cAAc,aACpC2C,GACFA,EAASJ,iBAAiB,SAAO,SAAEE,GAC5BD,EAAKI,iBACVnD,KAAK+B,GAAG,QAASiB,EAAMI,kBAG3BvD,IAAMwD,EAAc/C,SAASC,cAAc,gBACvC8C,GACFA,EAAYP,iBAAiB,SAAO,SAAEE,GAC/BD,EAAKI,iBACVnD,KAAK+B,GAAG,WAAYiB,EAAMI,kBAG1BpD,KAAKD,MACPC,KAAK6C,SAEL7C,KAAKI","file":"auth.js","sourcesContent":["/* global swal, axios */\n\nconst lsKeys = {\n token: 'token'\n}\n\nconst page = {\n // user token\n token: localStorage[lsKeys.token],\n\n // HTML elements\n user: null,\n pass: null\n}\n\npage.unhide = () => {\n const loaderSection = document.querySelector('#loader')\n if (loaderSection)\n loaderSection.classList.add('is-hidden')\n\n const loginSection = document.querySelector('#login.is-hidden')\n if (loginSection)\n loginSection.classList.remove('is-hidden')\n\n const floatingBtn = document.querySelector('.floating-home-button.is-hidden')\n if (floatingBtn)\n floatingBtn.classList.remove('is-hidden')\n}\n\n// Handler for Axios errors\npage.onAxiosError = error => {\n console.error(error)\n\n // Better Cloudflare errors\n const cloudflareErrors = {\n 520: 'Unknown Error',\n 521: 'Web Server Is Down',\n 522: 'Connection Timed Out',\n 523: 'Origin Is Unreachable',\n 524: 'A Timeout Occurred',\n 525: 'SSL Handshake Failed',\n 526: 'Invalid SSL Certificate',\n 527: 'Railgun Error',\n 530: 'Origin DNS Error'\n }\n\n const statusText = cloudflareErrors[error.response.status] || error.response.statusText\n const description = error.response.data && error.response.data.description\n ? error.response.data.description\n : 'There was an error with the request, please check the console for more information.'\n\n return swal(`${error.response.status} ${statusText}`, description, 'error')\n}\n\npage.do = (dest, trigger) => {\n const user = page.user.value.trim()\n if (!user)\n return swal('An error occurred!', 'You need to specify a username.', 'error')\n\n const pass = page.pass.value.trim()\n if (!pass)\n return swal('An error occurred!', 'You need to specify a password.', 'error')\n\n trigger.classList.add('is-loading')\n axios.post(`api/${dest}`, {\n username: user,\n password: pass\n }).then(response => {\n if (response.data.success === false) {\n trigger.classList.remove('is-loading')\n return swal(`Unable to ${dest}!`, response.data.description, 'error')\n }\n\n localStorage.token = response.data.token\n window.location = 'dashboard'\n }).catch(error => {\n trigger.classList.remove('is-loading')\n page.onAxiosError(error)\n })\n}\n\npage.verify = () => {\n axios.post('api/tokens/verify', {\n token: page.token\n }).then(response => {\n if (response.data.success === false) {\n page.unhide()\n return swal('An error occurred!', response.data.description, 'error')\n }\n\n // Redirect to dashboard if token is valid\n window.location = 'dashboard'\n }).catch(error => {\n page.unhide()\n page.onAxiosError(error)\n })\n}\n\nwindow.addEventListener('DOMContentLoaded', () => {\n page.user = document.querySelector('#user')\n page.pass = document.querySelector('#pass')\n\n // Prevent default form's submit action\n const form = document.querySelector('#authForm')\n form.addEventListener('submit', event => {\n event.preventDefault()\n })\n\n const loginBtn = document.querySelector('#loginBtn')\n if (loginBtn)\n loginBtn.addEventListener('click', event => {\n if (!form.checkValidity()) return\n page.do('login', event.currentTarget)\n })\n\n const registerBtn = document.querySelector('#registerBtn')\n if (registerBtn)\n registerBtn.addEventListener('click', event => {\n if (!form.checkValidity()) return\n page.do('register', event.currentTarget)\n })\n\n if (page.token)\n page.verify()\n else\n page.unhide()\n})\n"]}