UNPKG

@tycoonsystems/tycoon-modules

Version:
1 lines 4.34 kB
import Cookies from"universal-cookie";import{fetchPost}from"@tycoonsystems/tycoon-modules/utility/fetch/fetch.js";import{updateCart}from"@tycoonsystems/tycoon-modules/utility/ecommerce/ecommerce.js";import{_LocalEventEmitter}from"@tycoonsystems/tycoon-modules/events/LocalEventEmitter";import{fireGlobalEvent}from"@tycoonsystems/tycoon-modules/utility/utility";import jwt_decode from"jwt-decode";const cookies=new Cookies,updateLocalLoginSession=e=>{cookies.set("login",e,{path:"/"})},attemptThirdPartySignIn=async function(t,a,n,o,i,r){try{console.log("Running",t,a,n);let e;var s={domainKey:n,googleData:t,token:e=t&&t.detail&&t.detail.credential?jwt_decode(t.detail.credential):e,encodedToken:t.detail.credential},c=(t.requestedUsername&&(s.requestedUsername=t.requestedUsername),await fetchPost(a+"/m/authenticate",null,null,s));if(c&&c?.data){if(o&&o.dispatch("completeSignIn",{data:c.data}),_LocalEventEmitter&&c?.newUser){var l={event:"newUser",data:c.data};_LocalEventEmitter.dispatch("scheduleMail",l);try{window.dispatchEvent(new CustomEvent("global_event",{detail:Object.assign({},l)}))}catch(e){}}var d,u={identifier:c.data.identifier,username:c.data.username,email:c.data.email,icon:c.data.icon,hash:c.data.hash,vendor:c.data.vendor??null,icon:c.data.icon,meta:c.data.meta},m=(c.data.plan&&(u.plan=c.data.plan),c.data.cart&&(d=JSON.parse(localStorage.getItem("cart")),updateCart(d,c.data.cart)),c?.data.admin&&(i(c.data.admin),u.admin=c.data.admin),updateLocalLoginSession(u),new CustomEvent("mute-login-error",{detail:!0}));document.dispatchEvent(m)}else r&&r(c?.error?.message??"Something went wrong");return c}catch(e){return console.log(e),null}},checkSignedIn=()=>!!cookies.get("login")&&cookies.get("login"),checkSignedInAndPrompt=(e,t)=>{try{var a=checkSignedIn();return a?a:(e&&e(t||"Please sign in with google to register"),google.accounts.id.prompt(e=>{console.log("on prompt notification",e)}),!1)}catch(e){return e}},logout=()=>{try{return cookies.remove("login",{path:"/"}),fireGlobalEvent({event:"logout"},_LocalEventEmitter),updateCart("",null,!0),setTimeout(()=>{_LocalEventEmitter.dispatch("attemptInitializeGoogle",{})},2e3),!0}catch(e){return console.log(e),!1}},grabUsername=async function(e,t,a,n,o){try{if(!n)return!1;var i=n();if(!(i&&i.identifier&&i.hash))return!1;var r={domainKey:t,identifier:i.identifier,hash:i.hash,proposedUsername:a.proposedUsername},s=await fetchPost(e+"/m/grabusername",null,null,r);if(!s)return!1;if(s.hasOwnProperty("status")&&"success"!==s.status)return"disauthenticated"==s.status?(logout(),"disauthenticated"):s.status;if(s.identifier&&s.username&&s.hash)return i.username=s.username,i.hash=s.hash,i.identifier=s.identifier,updateLocalLoginSession(i),o(i),!0}catch(e){}return!1},checkUserData=async(e,t)=>{if(console.log("Check user data",e,t),t){var a=Object.entries(t).find(e=>!0===e[1]);if(!(e?._loggedIn?.identifier&&e?._loggedIn?.hash&&e.domainKey&&e.apiUrl&&a))return!1;a={domainKey:e.domainKey,identifier:e._loggedIn.identifier,hash:e._loggedIn.hash,ip:e._loggedIn.ip,checkItems:t},t=(console.log(a),await fetchPost(e.apiUrl+"/m/checkuserdata",null,null,a));if(!t)return!1;if(t.hasOwnProperty("status")){if("disauthenticated"==t.status)return logout(),"disauthenticated";if("failed"==t.status)return!1;if("success"==t.status)return console.log("Check user data",t),console.log("must return res"),t}}return null},requestSettingsUpdate=async function(e,t,a,n={},o,i){try{if(!checkSignedIn)return!1;var r=checkSignedIn();if(console.log(r),!(r&&r.identifier&&r.hash)||i)return!1;o(!0);var s=setTimeout(()=>{o(!1)},5e3),c={domainKey:t,identifier:r.identifier,hash:r.hash,change:a},l=(console.log("Shoot req",c),await fetchPost(e+"/m/settingsupdate",null,null,c));if(console.log(l),!l)return o(!1),clearTimeout(s),!1;if(l.hasOwnProperty("status")&&"success"!==l.status)return o(!1),clearTimeout(s),"disauthenticated"==l.status?(logout(),"disauthenticated"):l;if("success"===l.status&&(o(!1),clearTimeout(s),console.log(l),l.user))return updateLocalLoginSession(l.user),n._setLoggedIn(l.user),n._LocalEventEmitter&&n._LocalEventEmitter.dispatch("refetchDefaults",{dispatch:"simple"}),!0}catch(e){console.log(e)}return!1};export{updateLocalLoginSession,attemptThirdPartySignIn,checkSignedIn,checkSignedInAndPrompt,logout,grabUsername,checkUserData,requestSettingsUpdate};