dauth-context-react 0.1.985 → 0.1.986

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"dauth-context-react.cjs.production.min.js","sources":["../src/initialDauthState.ts","../src/reducer/dauth.types.ts","../src/reducer/dauth.reducer.ts","../src/api/utils/config.ts","../src/api/dauth.api.ts","../src/constants.ts","../src/reducer/dauth.actions.ts","../src/index.tsx"],"sourcesContent":["export interface IDauthUser {\n _id: string;\n dauthLicense?: string;\n sid: string;\n name: string;\n lastname: string;\n nickname: string;\n email: string;\n is_verified: boolean;\n language: string;\n avatar: {\n id: string;\n url: string;\n };\n role: string;\n tel_prefix: string;\n tel_suffix: string;\n createdAt: Date;\n updatedAt: Date;\n last_login: Date;\n}\n\nexport interface IDauthDomainState {\n name: string;\n loginRedirect: string;\n allowedOrigins: string[];\n}\n\nexport interface IDauthState {\n user: IDauthUser;\n domain: IDauthDomainState;\n isLoading: boolean;\n isAuthenticated: boolean;\n loginWithRedirect: () => void;\n logout: () => void;\n getAccessToken: () => string;\n updateUser: ({\n name,\n lastname,\n nickname,\n tel_prefix,\n tel_suffix,\n language,\n avatar,\n }: Partial<IDauthUser>) => void;\n updateUserWithRedirect: () => void;\n // Send email verification\n sev: {\n status: IActionStatus;\n isLoading: boolean;\n };\n sendEmailVerification: () => void;\n}\n\nexport interface IActionStatus {\n type: TStatusTypes;\n message: string;\n}\nexport type TStatusTypes = 'success' | 'error' | 'info' | 'warning';\n\nconst initialDauthState: IDauthState = {\n user: {\n language: window.document.documentElement.getAttribute('lang') || 'es',\n } as IDauthUser,\n domain: {} as IDauthDomainState,\n isLoading: false,\n isAuthenticated: false,\n loginWithRedirect: () => {},\n logout: () => {},\n getAccessToken: () => initialDauthState.getAccessToken() || '',\n updateUser: () => {},\n updateUserWithRedirect: () => {},\n // Send email verification\n sev: {\n status: {\n type: 'info',\n message: 'Sending email verification...',\n } as IActionStatus,\n isLoading: false,\n },\n sendEmailVerification: () => {},\n};\n\nexport default initialDauthState;\n","export const LOGIN = 'LOGIN';\nexport const SET_IS_LOADING = 'SET_IS_LOADING';\nexport const UPDATE_USER = 'UPDATE_USER';\nexport const SET_SEND_EMAIL_VERIFICATION_IS_LOADING =\n 'SET_SEND_EMAIL_VERIFICATION_IS_LOADING';\nexport const SET_SEND_EMAIL_VERIFICATION_STATUS =\n 'SET_SEND_EMAIL_VERIFICATION_STATUS';\n","import * as DauthTypes from './dauth.types';\n\nexport default function userReducer(state: any, action: any) {\n const { type, payload } = action;\n\n switch (type) {\n case DauthTypes.LOGIN:\n return {\n ...state,\n user: payload.user,\n domain: payload.domain,\n isAuthenticated: payload.isAuthenticated,\n };\n\n case DauthTypes.SET_IS_LOADING:\n return {\n ...state,\n isLoading: payload.isLoading,\n };\n\n case DauthTypes.UPDATE_USER:\n return {\n ...state,\n user: {\n ...state.user,\n ...payload,\n },\n };\n\n case DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS:\n return {\n ...state,\n sev: {\n ...state.sev,\n status: {\n type: payload.type,\n message: payload.message,\n },\n },\n };\n\n case DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING:\n return {\n ...state,\n sev: {\n ...state.sev,\n isLoading: payload,\n },\n };\n\n default:\n return state;\n }\n}\n","const isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n window.location.hostname === '[::1]' ||\n window.location.hostname.match(\n /(192)\\.(168)\\.(1)\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/gm\n ) ||\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\nexport const apiVersion = 'v1';\nexport const serverDomain = 'dauth.ovh';\n\nexport function getServerBasePath({ domainName }: { domainName: string }) {\n const serverPort = 4012;\n const serverLocalUrl = `${window.location.protocol}//${window.location.hostname}:${serverPort}/api/${apiVersion}`;\n const serverProdUrl = `https://${domainName}.${serverDomain}/api/${apiVersion}`;\n const serverBasePath = isLocalhost ? serverLocalUrl : serverProdUrl;\n return serverBasePath;\n}\n\nexport function getClientBasePath({ domainName }: { domainName: string }) {\n const clientPort = 5185;\n const clientLocalUrl = `${window.location.protocol}//${window.location.hostname}:${clientPort}`;\n const clientProdUrl = `https://${domainName}.${serverDomain}`;\n const clientBasePath = isLocalhost ? clientLocalUrl : clientProdUrl;\n return clientBasePath;\n}\n","import { IDauthUser } from '../initialDauthState';\nimport { getServerBasePath } from './utils/config';\n\nexport const getUserAPI = async (\n domainName: string,\n token: string\n): Promise<any> => {\n const params = {\n method: 'GET',\n headers: {\n Authorization: `${token}`,\n 'Content-Type': 'application/json',\n },\n };\n const response = await fetch(\n `${getServerBasePath({ domainName })}/t-get-user/${domainName}`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n\nexport const updateUserAPI = async (\n domainName: string,\n user: Partial<IDauthUser>,\n token: string\n): Promise<any> => {\n const params = {\n method: 'PATCH',\n headers: {\n Authorization: `${token}`,\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(user),\n };\n const response = await fetch(\n `${getServerBasePath({ domainName })}/t-update-user/${domainName}`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n\nexport const sendEmailVerificationAPI = async (\n domainName: string,\n token: string\n): Promise<any> => {\n const params = {\n method: 'GET',\n headers: {\n Authorization: token,\n 'Content-Type': 'application/json',\n },\n };\n const response = await fetch(\n `${getServerBasePath({\n domainName,\n })}/t-resend-email-verification/${domainName}`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n\nexport const refreshAccessTokenAPI = async (\n domainName: string,\n token: string\n): Promise<any> => {\n const params = {\n method: 'GET',\n headers: {\n Authorization: token,\n 'Content-Type': 'application/json',\n },\n };\n const response = await fetch(\n `${getServerBasePath({\n domainName,\n })}/t-refresh-access-token/${domainName}`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n","export const DAUTH_STATE = 'dauth_state';\n","import {\n getUserAPI,\n refreshAccessTokenAPI,\n sendEmailVerificationAPI,\n updateUserAPI,\n} from '../api/dauth.api';\nimport { DAUTH_STATE } from '../constants';\nimport { IDauthDomainState, IDauthUser } from '../initialDauthState';\nimport * as DauthTypes from './dauth.types';\n\ntype TSetDauthStateAction = {\n dispatch: any;\n dauth_state: string;\n domainName: string;\n};\nexport async function setDauthStateAction({\n dispatch,\n dauth_state,\n domainName,\n}: TSetDauthStateAction) {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: true } });\n try {\n const getUserFetch = await getUserAPI(domainName, dauth_state);\n if (getUserFetch.response.status === 200) {\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: getUserFetch.data.user,\n domain: getUserFetch.data.domain,\n isAuthenticated: true,\n },\n });\n window.history.replaceState(\n {},\n document.title,\n getUserFetch.data.domain.loginRedirect\n );\n return localStorage.setItem(DAUTH_STATE, dauth_state);\n } else {\n return localStorage.removeItem(DAUTH_STATE);\n }\n } catch (error) {\n localStorage.removeItem(DAUTH_STATE);\n console.log(error);\n } finally {\n dispatch({\n type: DauthTypes.SET_IS_LOADING,\n payload: { isLoading: false },\n });\n }\n}\n\ntype TSetAutoLoginAction = {\n dispatch: any;\n dauth_state_ls: string;\n domainName: string;\n};\nexport async function setAutoLoginAction({\n dispatch,\n dauth_state_ls,\n domainName,\n}: TSetAutoLoginAction) {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: true } });\n try {\n const refreshAccessTokenFetch = await refreshAccessTokenAPI(\n domainName,\n dauth_state_ls\n );\n if (refreshAccessTokenFetch.response.status === 200) {\n const getUserFetch = await getUserAPI(domainName, dauth_state_ls);\n if (getUserFetch.response.status === 200) {\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: getUserFetch.data.user,\n domain: getUserFetch.data.domain,\n isAuthenticated: true,\n },\n });\n localStorage.setItem(\n DAUTH_STATE,\n refreshAccessTokenFetch.data.accessToken\n );\n return;\n } else {\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: {} as IDauthUser,\n domain: {} as IDauthDomainState,\n isAuthenticated: false,\n },\n });\n localStorage.removeItem(DAUTH_STATE);\n }\n } else {\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: {} as IDauthUser,\n domain: {} as IDauthDomainState,\n isAuthenticated: false,\n },\n });\n localStorage.removeItem(DAUTH_STATE);\n }\n // const getUserFetch = await getUserAPI(domainName, dauth_state_ls);\n // if (getUserFetch.response.status === 200) {\n // dispatch({\n // type: DauthTypes.LOGIN,\n // payload: {\n // user: getUserFetch.data.user,\n // domain: getUserFetch.data.domain,\n // isAuthenticated: true,\n // },\n // });\n // localStorage.setItem(DAUTH_STATE, dauth_state_ls);\n // } else {\n // localStorage.removeItem(DAUTH_STATE);\n // }\n } catch (error) {\n localStorage.removeItem(DAUTH_STATE);\n console.log(error);\n } finally {\n dispatch({\n type: DauthTypes.SET_IS_LOADING,\n payload: { isLoading: false },\n });\n }\n}\n\nexport async function setLogoutAction({ dispatch }: { dispatch: any }) {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: true } });\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: {\n language: window.document.documentElement.getAttribute('lang') || 'es',\n },\n domain: {},\n isAuthenticated: false,\n },\n });\n localStorage.removeItem(DAUTH_STATE);\n return dispatch({\n type: DauthTypes.SET_IS_LOADING,\n payload: { isLoading: false },\n });\n}\n\ntype TSetUpdateAction = {\n dispatch: any;\n domainName: string;\n user: Partial<IDauthUser>;\n token: string | null;\n};\nexport async function setUpdateUserAction({\n dispatch,\n domainName,\n user,\n token,\n}: TSetUpdateAction) {\n if (user.language) {\n window.document.documentElement.setAttribute('lang', user.language);\n }\n if (!token) {\n return dispatch({\n type: DauthTypes.UPDATE_USER,\n payload: user,\n });\n }\n try {\n const getUserFetch = await updateUserAPI(domainName, user, token);\n if (getUserFetch.response.status === 200) {\n return dispatch({\n type: DauthTypes.UPDATE_USER,\n payload: getUserFetch.data.user,\n });\n } else {\n console.log('Update user error');\n return;\n }\n } catch (error) {\n console.log('Update user error', error);\n }\n}\n\ntype TSetSendEmailVerificationAction = {\n dispatch: any;\n domainName: string;\n token: string;\n};\nexport async function sendEmailVerificationAction({\n dispatch,\n domainName,\n token,\n}: TSetSendEmailVerificationAction) {\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: true,\n });\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS,\n payload: { type: 'info', message: 'Sending email verification...' },\n });\n try {\n const sendEmailFetch = await sendEmailVerificationAPI(domainName, token);\n if (sendEmailFetch.response.status === 200) {\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS,\n payload: { type: 'success', message: sendEmailFetch.data.message },\n });\n return dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: false,\n });\n } else {\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS,\n payload: { type: 'error', message: sendEmailFetch.data.message },\n });\n return dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: false,\n });\n }\n } catch (error) {\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS,\n payload: {\n type: 'error',\n message: 'Send email verification fetch error',\n },\n });\n return dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: false,\n });\n }\n}\n\nexport async function refreshTokenAction({\n dispatch,\n domainName,\n token,\n}: {\n dispatch: any;\n domainName: string;\n token: string;\n}) {\n try {\n const refreshAccessTokenFetch = await refreshAccessTokenAPI(\n domainName,\n token\n );\n if (refreshAccessTokenFetch.response.status === 200) {\n console.log(refreshAccessTokenFetch.data.accessToken);\n localStorage.removeItem(DAUTH_STATE);\n localStorage.setItem(\n DAUTH_STATE,\n refreshAccessTokenFetch.data.accessToken\n );\n return;\n } else {\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: {} as IDauthUser,\n domain: {} as IDauthDomainState,\n isAuthenticated: false,\n },\n });\n localStorage.removeItem(DAUTH_STATE);\n return;\n }\n } catch (error) {\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: {} as IDauthUser,\n domain: {} as IDauthDomainState,\n isAuthenticated: false,\n },\n });\n localStorage.removeItem(DAUTH_STATE);\n console.log(error);\n }\n}\n\nexport async function checkTokenAction({\n dispatch,\n domainName,\n token,\n}: {\n dispatch: any;\n domainName: string;\n token: string;\n}) {\n try {\n const refreshAccessTokenFetch = await refreshAccessTokenAPI(\n domainName,\n token\n );\n if (refreshAccessTokenFetch.response.status === 200) {\n return;\n } else {\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: {} as IDauthUser,\n domain: {} as IDauthDomainState,\n isAuthenticated: false,\n },\n });\n localStorage.removeItem(DAUTH_STATE);\n return;\n }\n } catch (error) {\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: {} as IDauthUser,\n domain: {} as IDauthDomainState,\n isAuthenticated: false,\n },\n });\n localStorage.removeItem(DAUTH_STATE);\n throw error;\n }\n}\n","import React, {\n useReducer,\n useMemo,\n useEffect,\n useCallback,\n createContext,\n useContext,\n} from 'react';\nimport initialDauthState, {\n IDauthState,\n IDauthUser,\n} from './initialDauthState';\nimport userReducer from './reducer/dauth.reducer';\nimport * as action from './reducer/dauth.actions';\nimport { getClientBasePath } from './api/utils/config';\nimport { DAUTH_STATE } from './constants';\n\ninterface DauthProviderProps {\n domainName: string;\n sid: string;\n children: React.ReactNode;\n}\n\nexport const DauthProvider: React.FC<DauthProviderProps> = (\n props: DauthProviderProps\n) => {\n const { domainName, sid, children } = props;\n const [ds, dispatch] = useReducer(userReducer, initialDauthState);\n const dauthState = ds as IDauthState;\n\n // Refresh access token\n // useEffect(() => {\n // const token_ls = localStorage.getItem(DAUTH_STATE);\n // if (!token_ls) return;\n // action.refreshTokenAction({ dispatch, domainName, token: token_ls });\n // }, [domainName]);\n\n // useEffect(() => {\n // const token_ls = localStorage.getItem(DAUTH_STATE);\n // let interval = setInterval(() => {\n // if (!token_ls) return;\n // action.checkTokenAction({ dispatch, domainName, token: token_ls });\n // }, 6000);\n // // }, 1000 * 60 * 5);\n // return () => clearInterval(interval);\n // }, [domainName]);\n\n // Catch login redirect\n useEffect(() => {\n const queryString = window.location.search;\n if (!queryString) return;\n const urlParams = new URLSearchParams(queryString);\n const dauth_state = urlParams.get(DAUTH_STATE);\n if (dauth_state && !dauthState.isAuthenticated) {\n action.setDauthStateAction({ dispatch, dauth_state, domainName });\n }\n }, [dauthState.isAuthenticated, domainName]);\n\n // Auto Login\n useEffect(() => {\n const dauth_state_ls = localStorage.getItem(DAUTH_STATE);\n if (dauth_state_ls && !dauthState.isAuthenticated) {\n action.setAutoLoginAction({ dispatch, dauth_state_ls, domainName });\n }\n }, [dauthState.isAuthenticated, domainName]);\n\n const loginWithRedirect = useCallback(() => {\n return window.location.replace(\n `${getClientBasePath({ domainName })}/t-sign/${sid}`\n );\n }, [domainName, sid]);\n\n const logout = useCallback(() => {\n return action.setLogoutAction({ dispatch });\n }, []);\n\n const getAccessToken = useCallback(() => {\n const token_ls = localStorage.getItem(DAUTH_STATE);\n return token_ls ?? 'token-not-found';\n }, []);\n\n const updateUser = useCallback(\n ({\n name,\n lastname,\n nickname,\n tel_prefix,\n tel_suffix,\n language,\n avatar,\n }: Partial<IDauthUser>) => {\n const token_ls = localStorage.getItem(DAUTH_STATE);\n const user = {\n name,\n lastname,\n nickname,\n tel_prefix,\n tel_suffix,\n language,\n avatar,\n } as Partial<IDauthUser>;\n return action.setUpdateUserAction({\n dispatch,\n domainName,\n user,\n token: token_ls,\n });\n },\n [domainName]\n );\n\n const updateUserWithRedirect = useCallback(() => {\n const token_ls = localStorage.getItem(DAUTH_STATE);\n if (!token_ls) return;\n return window.location.replace(\n `${getClientBasePath({ domainName })}/t-update-user/${sid}/${token_ls}`\n );\n }, [domainName, sid]);\n\n const sendEmailVerification = useCallback(() => {\n const token_ls = localStorage.getItem(DAUTH_STATE);\n if (!token_ls) return;\n return action.sendEmailVerificationAction({\n dispatch,\n domainName,\n token: token_ls,\n });\n }, [domainName]);\n\n const memoProvider = useMemo(\n () => ({\n ...dauthState,\n loginWithRedirect,\n logout,\n getAccessToken: () => getAccessToken() || '',\n updateUser,\n updateUserWithRedirect,\n sendEmailVerification,\n }),\n [\n dauthState,\n loginWithRedirect,\n logout,\n getAccessToken,\n updateUser,\n updateUserWithRedirect,\n sendEmailVerification,\n ]\n );\n\n return (\n <DauthContext.Provider value={memoProvider}>\n {children}\n </DauthContext.Provider>\n );\n};\n\nconst DauthContext = createContext(initialDauthState);\n\nexport const useDauth = () => {\n const context = useContext(DauthContext);\n if (!context) {\n throw new Error('useDauth must be used inside DauthProvider');\n }\n return context;\n};\n"],"names":["initialDauthState","user","language","window","document","documentElement","getAttribute","domain","isLoading","isAuthenticated","loginWithRedirect","logout","getAccessToken","updateUser","updateUserWithRedirect","sev","status","type","message","sendEmailVerification","LOGIN","userReducer","state","action","payload","DauthTypes","_extends","isLocalhost","Boolean","location","hostname","match","getServerBasePath","_ref","serverLocalUrl","protocol","domainName","getClientBasePath","_ref2","clientLocalUrl","getUserAPI","_asyncToGenerator","_regeneratorRuntime","mark","_callee","token","params","response","wrap","_context","prev","next","method","headers","Authorization","Content-Type","fetch","sent","json","abrupt","data","stop","_x","_x2","apply","arguments","updateUserAPI","_callee2","_context2","body","JSON","stringify","_x3","_x4","_x5","sendEmailVerificationAPI","_ref3","_callee3","_context3","_x6","_x7","refreshAccessTokenAPI","_ref4","_callee4","_context4","_x8","_x9","DAUTH_STATE","_setDauthStateAction","dispatch","dauth_state","getUserFetch","history","replaceState","title","loginRedirect","localStorage","setItem","removeItem","t0","console","log","finish","_setAutoLoginAction","dauth_state_ls","refreshAccessTokenFetch","accessToken","_setLogoutAction","_setUpdateUserAction","setAttribute","_sendEmailVerificationAction","_callee5","_ref5","sendEmailFetch","_context5","DauthContext","createContext","props","sid","children","_useReducer","useReducer","dauthState","useEffect","queryString","search","URLSearchParams","get","getItem","useCallback","replace","token_ls","name","lastname","nickname","tel_prefix","tel_suffix","avatar","memoProvider","useMemo","React","Provider","value","context","useContext","Error"],"mappings":"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"}
1
+ {"version":3,"file":"dauth-context-react.cjs.production.min.js","sources":["../src/initialDauthState.ts","../src/reducer/dauth.types.ts","../src/reducer/dauth.reducer.ts","../src/api/utils/config.ts","../src/api/dauth.api.ts","../src/constants.ts","../src/reducer/dauth.actions.ts","../src/index.tsx"],"sourcesContent":["export interface IDauthUser {\n _id: string;\n dauthLicense?: string;\n sid: string;\n name: string;\n lastname: string;\n nickname: string;\n email: string;\n is_verified: boolean;\n language: string;\n avatar: {\n id: string;\n url: string;\n };\n role: string;\n tel_prefix: string;\n tel_suffix: string;\n createdAt: Date;\n updatedAt: Date;\n last_login: Date;\n}\n\nexport interface IDauthDomainState {\n name: string;\n loginRedirect: string;\n allowedOrigins: string[];\n}\n\nexport interface IDauthState {\n user: IDauthUser;\n domain: IDauthDomainState;\n isLoading: boolean;\n isAuthenticated: boolean;\n loginWithRedirect: () => void;\n logout: () => void;\n getAccessToken: () => string;\n updateUser: ({\n name,\n lastname,\n nickname,\n tel_prefix,\n tel_suffix,\n language,\n avatar,\n }: Partial<IDauthUser>) => void;\n updateUserWithRedirect: () => void;\n // Send email verification\n sev: {\n status: IActionStatus;\n isLoading: boolean;\n };\n sendEmailVerification: () => void;\n}\n\nexport interface IActionStatus {\n type: TStatusTypes;\n message: string;\n}\nexport type TStatusTypes = 'success' | 'error' | 'info' | 'warning';\n\nconst initialDauthState: IDauthState = {\n user: {\n language: window.document.documentElement.getAttribute('lang') || 'es',\n } as IDauthUser,\n domain: {} as IDauthDomainState,\n isLoading: false,\n isAuthenticated: false,\n loginWithRedirect: () => {},\n logout: () => {},\n getAccessToken: () => initialDauthState.getAccessToken() || '',\n updateUser: () => {},\n updateUserWithRedirect: () => {},\n // Send email verification\n sev: {\n status: {\n type: 'info',\n message: 'Sending email verification...',\n } as IActionStatus,\n isLoading: false,\n },\n sendEmailVerification: () => {},\n};\n\nexport default initialDauthState;\n","export const LOGIN = 'LOGIN';\nexport const SET_IS_LOADING = 'SET_IS_LOADING';\nexport const UPDATE_USER = 'UPDATE_USER';\nexport const SET_SEND_EMAIL_VERIFICATION_IS_LOADING =\n 'SET_SEND_EMAIL_VERIFICATION_IS_LOADING';\nexport const SET_SEND_EMAIL_VERIFICATION_STATUS =\n 'SET_SEND_EMAIL_VERIFICATION_STATUS';\n","import * as DauthTypes from './dauth.types';\n\nexport default function userReducer(state: any, action: any) {\n const { type, payload } = action;\n\n switch (type) {\n case DauthTypes.LOGIN:\n return {\n ...state,\n user: payload.user,\n domain: payload.domain,\n isAuthenticated: payload.isAuthenticated,\n };\n\n case DauthTypes.SET_IS_LOADING:\n return {\n ...state,\n isLoading: payload.isLoading,\n };\n\n case DauthTypes.UPDATE_USER:\n return {\n ...state,\n user: {\n ...state.user,\n ...payload,\n },\n };\n\n case DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS:\n return {\n ...state,\n sev: {\n ...state.sev,\n status: {\n type: payload.type,\n message: payload.message,\n },\n },\n };\n\n case DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING:\n return {\n ...state,\n sev: {\n ...state.sev,\n isLoading: payload,\n },\n };\n\n default:\n return state;\n }\n}\n","const isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n window.location.hostname === '[::1]' ||\n window.location.hostname.match(\n /(192)\\.(168)\\.(1)\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/gm\n ) ||\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\nexport const apiVersion = 'v1';\nexport const serverDomain = 'dauth.ovh';\n\nexport function getServerBasePath({ domainName }: { domainName: string }) {\n const serverPort = 4012;\n const serverLocalUrl = `${window.location.protocol}//${window.location.hostname}:${serverPort}/api/${apiVersion}`;\n const serverProdUrl = `https://${domainName}.${serverDomain}/api/${apiVersion}`;\n const serverBasePath = isLocalhost ? serverLocalUrl : serverProdUrl;\n return serverBasePath;\n}\n\nexport function getClientBasePath({ domainName }: { domainName: string }) {\n const clientPort = 5185;\n const clientLocalUrl = `${window.location.protocol}//${window.location.hostname}:${clientPort}`;\n const clientProdUrl = `https://${domainName}.${serverDomain}`;\n const clientBasePath = isLocalhost ? clientLocalUrl : clientProdUrl;\n return clientBasePath;\n}\n","import { IDauthUser } from '../initialDauthState';\nimport { getServerBasePath } from './utils/config';\n\nexport const getUserAPI = async (\n domainName: string,\n token: string\n): Promise<any> => {\n const params = {\n method: 'GET',\n headers: {\n Authorization: `${token}`,\n 'Content-Type': 'application/json',\n },\n };\n const response = await fetch(\n `${getServerBasePath({ domainName })}/t-get-user/${domainName}`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n\nexport const updateUserAPI = async (\n domainName: string,\n user: Partial<IDauthUser>,\n token: string\n): Promise<any> => {\n const params = {\n method: 'PATCH',\n headers: {\n Authorization: `${token}`,\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(user),\n };\n const response = await fetch(\n `${getServerBasePath({ domainName })}/t-update-user/${domainName}`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n\nexport const sendEmailVerificationAPI = async (\n domainName: string,\n token: string\n): Promise<any> => {\n const params = {\n method: 'GET',\n headers: {\n Authorization: token,\n 'Content-Type': 'application/json',\n },\n };\n const response = await fetch(\n `${getServerBasePath({\n domainName,\n })}/t-resend-email-verification/${domainName}`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n\nexport const refreshAccessTokenAPI = async (\n domainName: string,\n token: string\n): Promise<any> => {\n const params = {\n method: 'GET',\n headers: {\n Authorization: token,\n 'Content-Type': 'application/json',\n },\n };\n const response = await fetch(\n `${getServerBasePath({\n domainName,\n })}/t-refresh-access-token/${domainName}`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n","export const DAUTH_STATE = 'dauth_state';\n","import {\n getUserAPI,\n refreshAccessTokenAPI,\n sendEmailVerificationAPI,\n updateUserAPI,\n} from '../api/dauth.api';\nimport { DAUTH_STATE } from '../constants';\nimport { IDauthDomainState, IDauthUser } from '../initialDauthState';\nimport * as DauthTypes from './dauth.types';\n\ntype TSetDauthStateAction = {\n dispatch: any;\n dauth_state: string;\n domainName: string;\n};\nexport async function setDauthStateAction({\n dispatch,\n dauth_state,\n domainName,\n}: TSetDauthStateAction) {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: true } });\n try {\n const getUserFetch = await getUserAPI(domainName, dauth_state);\n if (getUserFetch.response.status === 200) {\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: getUserFetch.data.user,\n domain: getUserFetch.data.domain,\n isAuthenticated: true,\n },\n });\n window.history.replaceState(\n {},\n document.title,\n getUserFetch.data.domain.loginRedirect\n );\n return localStorage.setItem(DAUTH_STATE, dauth_state);\n } else {\n return localStorage.removeItem(DAUTH_STATE);\n }\n } catch (error) {\n localStorage.removeItem(DAUTH_STATE);\n console.log(error);\n } finally {\n dispatch({\n type: DauthTypes.SET_IS_LOADING,\n payload: { isLoading: false },\n });\n }\n}\n\ntype TSetAutoLoginAction = {\n dispatch: any;\n dauth_state_ls: string;\n domainName: string;\n};\nexport async function setAutoLoginAction({\n dispatch,\n dauth_state_ls,\n domainName,\n}: TSetAutoLoginAction) {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: true } });\n try {\n const refreshAccessTokenFetch = await refreshAccessTokenAPI(\n domainName,\n dauth_state_ls\n );\n if (refreshAccessTokenFetch.response.status === 200) {\n const getUserFetch = await getUserAPI(domainName, dauth_state_ls);\n if (getUserFetch.response.status === 200) {\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: getUserFetch.data.user,\n domain: getUserFetch.data.domain,\n isAuthenticated: true,\n },\n });\n localStorage.setItem(\n DAUTH_STATE,\n refreshAccessTokenFetch.data.accessToken\n );\n return;\n } else {\n resetUser({ dispatch });\n // dispatch({\n // type: DauthTypes.LOGIN,\n // payload: {\n // user: {} as IDauthUser,\n // domain: {} as IDauthDomainState,\n // isAuthenticated: false,\n // },\n // });\n // localStorage.removeItem(DAUTH_STATE);\n }\n } else {\n resetUser({ dispatch });\n // dispatch({\n // type: DauthTypes.LOGIN,\n // payload: {\n // user: {} as IDauthUser,\n // domain: {} as IDauthDomainState,\n // isAuthenticated: false,\n // },\n // });\n // localStorage.removeItem(DAUTH_STATE);\n }\n } catch (error) {\n resetUser({ dispatch });\n // localStorage.removeItem(DAUTH_STATE);\n console.log(error);\n } finally {\n dispatch({\n type: DauthTypes.SET_IS_LOADING,\n payload: { isLoading: false },\n });\n }\n}\n\nexport async function setLogoutAction({ dispatch }: { dispatch: any }) {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: true } });\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: {\n language: window.document.documentElement.getAttribute('lang') || 'es',\n },\n domain: {},\n isAuthenticated: false,\n },\n });\n localStorage.removeItem(DAUTH_STATE);\n return dispatch({\n type: DauthTypes.SET_IS_LOADING,\n payload: { isLoading: false },\n });\n}\n\ntype TSetUpdateAction = {\n dispatch: any;\n domainName: string;\n user: Partial<IDauthUser>;\n token: string | null;\n};\nexport async function setUpdateUserAction({\n dispatch,\n domainName,\n user,\n token,\n}: TSetUpdateAction) {\n if (user.language) {\n window.document.documentElement.setAttribute('lang', user.language);\n }\n if (!token) {\n return dispatch({\n type: DauthTypes.UPDATE_USER,\n payload: user,\n });\n }\n try {\n const getUserFetch = await updateUserAPI(domainName, user, token);\n if (getUserFetch.response.status === 200) {\n return dispatch({\n type: DauthTypes.UPDATE_USER,\n payload: getUserFetch.data.user,\n });\n } else {\n console.log('Update user error');\n return;\n }\n } catch (error) {\n console.log('Update user error', error);\n }\n}\n\ntype TSetSendEmailVerificationAction = {\n dispatch: any;\n domainName: string;\n token: string;\n};\nexport async function sendEmailVerificationAction({\n dispatch,\n domainName,\n token,\n}: TSetSendEmailVerificationAction) {\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: true,\n });\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS,\n payload: { type: 'info', message: 'Sending email verification...' },\n });\n try {\n const sendEmailFetch = await sendEmailVerificationAPI(domainName, token);\n if (sendEmailFetch.response.status === 200) {\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS,\n payload: { type: 'success', message: sendEmailFetch.data.message },\n });\n return dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: false,\n });\n } else {\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS,\n payload: { type: 'error', message: sendEmailFetch.data.message },\n });\n return dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: false,\n });\n }\n } catch (error) {\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS,\n payload: {\n type: 'error',\n message: 'Send email verification fetch error',\n },\n });\n return dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: false,\n });\n }\n}\n\n// export async function refreshTokenAction({\n// dispatch,\n// domainName,\n// token,\n// }: {\n// dispatch: any;\n// domainName: string;\n// token: string;\n// }) {\n// try {\n// const refreshAccessTokenFetch = await refreshAccessTokenAPI(\n// domainName,\n// token\n// );\n// if (refreshAccessTokenFetch.response.status === 200) {\n// console.log(refreshAccessTokenFetch.data.accessToken);\n// localStorage.removeItem(DAUTH_STATE);\n// localStorage.setItem(\n// DAUTH_STATE,\n// refreshAccessTokenFetch.data.accessToken\n// );\n// return;\n// } else {\n// dispatch({\n// type: DauthTypes.LOGIN,\n// payload: {\n// user: {} as IDauthUser,\n// domain: {} as IDauthDomainState,\n// isAuthenticated: false,\n// },\n// });\n// localStorage.removeItem(DAUTH_STATE);\n// return;\n// }\n// } catch (error) {\n// dispatch({\n// type: DauthTypes.LOGIN,\n// payload: {\n// user: {} as IDauthUser,\n// domain: {} as IDauthDomainState,\n// isAuthenticated: false,\n// },\n// });\n// localStorage.removeItem(DAUTH_STATE);\n// console.log(error);\n// }\n// }\n\nexport async function checkTokenAction({\n dispatch,\n domainName,\n token,\n}: {\n dispatch: any;\n domainName: string;\n token: string;\n}) {\n try {\n const refreshAccessTokenFetch = await refreshAccessTokenAPI(\n domainName,\n token\n );\n if (refreshAccessTokenFetch.response.status === 200) {\n return;\n } else {\n return resetUser(dispatch);\n // dispatch({\n // type: DauthTypes.LOGIN,\n // payload: {\n // user: {} as IDauthUser,\n // domain: {} as IDauthDomainState,\n // isAuthenticated: false,\n // },\n // });\n // localStorage.removeItem(DAUTH_STATE);\n }\n } catch (error) {\n resetUser(dispatch);\n // dispatch({\n // type: DauthTypes.LOGIN,\n // payload: {\n // user: {} as IDauthUser,\n // domain: {} as IDauthDomainState,\n // isAuthenticated: false,\n // },\n // });\n // localStorage.removeItem(DAUTH_STATE);\n throw error;\n }\n}\n\n///////////////////////////////////////////\n//////////////////////////////////////////\nconst resetUser = (dispatch: any) => {\n localStorage.removeItem(DAUTH_STATE);\n return dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: {} as IDauthUser,\n domain: {} as IDauthDomainState,\n isAuthenticated: false,\n },\n });\n};\n","import React, {\n useReducer,\n useMemo,\n useEffect,\n useCallback,\n createContext,\n useContext,\n} from 'react';\nimport initialDauthState, {\n IDauthState,\n IDauthUser,\n} from './initialDauthState';\nimport userReducer from './reducer/dauth.reducer';\nimport * as action from './reducer/dauth.actions';\nimport { getClientBasePath } from './api/utils/config';\nimport { DAUTH_STATE } from './constants';\n\ninterface DauthProviderProps {\n domainName: string;\n sid: string;\n children: React.ReactNode;\n}\n\nexport const DauthProvider: React.FC<DauthProviderProps> = (\n props: DauthProviderProps\n) => {\n const { domainName, sid, children } = props;\n const [ds, dispatch] = useReducer(userReducer, initialDauthState);\n const dauthState = ds as IDauthState;\n\n // Refresh access token\n // useEffect(() => {\n // const token_ls = localStorage.getItem(DAUTH_STATE);\n // if (!token_ls) return;\n // action.refreshTokenAction({ dispatch, domainName, token: token_ls });\n // }, [domainName]);\n\n useEffect(() => {\n const token_ls = localStorage.getItem(DAUTH_STATE);\n let interval = setInterval(() => {\n if (!token_ls) return;\n action.checkTokenAction({ dispatch, domainName, token: token_ls });\n }, 6000);\n // }, 1000 * 60 * 5);\n return () => clearInterval(interval);\n }, [domainName]);\n\n // Catch login redirect\n useEffect(() => {\n const queryString = window.location.search;\n if (!queryString) return;\n const urlParams = new URLSearchParams(queryString);\n const dauth_state = urlParams.get(DAUTH_STATE);\n if (dauth_state && !dauthState.isAuthenticated) {\n action.setDauthStateAction({ dispatch, dauth_state, domainName });\n }\n }, [dauthState.isAuthenticated, domainName]);\n\n // Auto Login\n useEffect(() => {\n const dauth_state_ls = localStorage.getItem(DAUTH_STATE);\n if (dauth_state_ls && !dauthState.isAuthenticated) {\n action.setAutoLoginAction({ dispatch, dauth_state_ls, domainName });\n }\n }, [dauthState.isAuthenticated, domainName]);\n\n const loginWithRedirect = useCallback(() => {\n return window.location.replace(\n `${getClientBasePath({ domainName })}/t-sign/${sid}`\n );\n }, [domainName, sid]);\n\n const logout = useCallback(() => {\n return action.setLogoutAction({ dispatch });\n }, []);\n\n const getAccessToken = useCallback(() => {\n const token_ls = localStorage.getItem(DAUTH_STATE);\n return token_ls ?? 'token-not-found';\n }, []);\n\n const updateUser = useCallback(\n ({\n name,\n lastname,\n nickname,\n tel_prefix,\n tel_suffix,\n language,\n avatar,\n }: Partial<IDauthUser>) => {\n const token_ls = localStorage.getItem(DAUTH_STATE);\n const user = {\n name,\n lastname,\n nickname,\n tel_prefix,\n tel_suffix,\n language,\n avatar,\n } as Partial<IDauthUser>;\n return action.setUpdateUserAction({\n dispatch,\n domainName,\n user,\n token: token_ls,\n });\n },\n [domainName]\n );\n\n const updateUserWithRedirect = useCallback(() => {\n const token_ls = localStorage.getItem(DAUTH_STATE);\n if (!token_ls) return;\n return window.location.replace(\n `${getClientBasePath({ domainName })}/t-update-user/${sid}/${token_ls}`\n );\n }, [domainName, sid]);\n\n const sendEmailVerification = useCallback(() => {\n const token_ls = localStorage.getItem(DAUTH_STATE);\n if (!token_ls) return;\n return action.sendEmailVerificationAction({\n dispatch,\n domainName,\n token: token_ls,\n });\n }, [domainName]);\n\n const memoProvider = useMemo(\n () => ({\n ...dauthState,\n loginWithRedirect,\n logout,\n getAccessToken: () => getAccessToken() || '',\n updateUser,\n updateUserWithRedirect,\n sendEmailVerification,\n }),\n [\n dauthState,\n loginWithRedirect,\n logout,\n getAccessToken,\n updateUser,\n updateUserWithRedirect,\n sendEmailVerification,\n ]\n );\n\n return (\n <DauthContext.Provider value={memoProvider}>\n {children}\n </DauthContext.Provider>\n );\n};\n\nconst DauthContext = createContext(initialDauthState);\n\nexport const useDauth = () => {\n const context = useContext(DauthContext);\n if (!context) {\n throw new Error('useDauth must be used inside DauthProvider');\n }\n return context;\n};\n"],"names":["initialDauthState","user","language","window","document","documentElement","getAttribute","domain","isLoading","isAuthenticated","loginWithRedirect","logout","getAccessToken","updateUser","updateUserWithRedirect","sev","status","type","message","sendEmailVerification","LOGIN","userReducer","state","action","payload","DauthTypes","_extends","isLocalhost","Boolean","location","hostname","match","getServerBasePath","_ref","serverLocalUrl","protocol","domainName","getClientBasePath","_ref2","clientLocalUrl","getUserAPI","_asyncToGenerator","_regeneratorRuntime","mark","_callee","token","params","response","wrap","_context","prev","next","method","headers","Authorization","Content-Type","fetch","sent","json","abrupt","data","stop","_x","_x2","apply","arguments","updateUserAPI","_callee2","_context2","body","JSON","stringify","_x3","_x4","_x5","sendEmailVerificationAPI","_ref3","_callee3","_context3","_x6","_x7","refreshAccessTokenAPI","_ref4","_callee4","_context4","_x8","_x9","DAUTH_STATE","_setDauthStateAction","dispatch","dauth_state","getUserFetch","history","replaceState","title","loginRedirect","localStorage","setItem","removeItem","t0","console","log","finish","_setAutoLoginAction","dauth_state_ls","refreshAccessTokenFetch","accessToken","resetUser","_setLogoutAction","_setUpdateUserAction","setAttribute","_sendEmailVerificationAction","_callee5","_ref5","sendEmailFetch","_context5","_checkTokenAction","_callee6","_ref6","_context6","DauthContext","createContext","props","sid","children","_useReducer","useReducer","dauthState","useEffect","token_ls","getItem","interval","setInterval","clearInterval","queryString","search","URLSearchParams","get","useCallback","replace","name","lastname","nickname","tel_prefix","tel_suffix","avatar","memoProvider","useMemo","React","Provider","value","context","useContext","Error"],"mappings":"+hOA4DA,IAAMA,EAAiC,CACrCC,KAAM,CACJC,SAAUC,OAAOC,SAASC,gBAAgBC,aAAa,SAAW,MAEpEC,OAAQ,GACRC,WAAW,EACXC,iBAAiB,EACjBC,kBAAmB,aACnBC,OAAQ,aACRC,eAAgB,WAAA,OAAMZ,EAAkBY,kBAAoB,IAC5DC,WAAY,aACZC,uBAAwB,aAExBC,IAAK,CACHC,OAAQ,CACNC,KAAM,OACNC,QAAS,iCAEXV,WAAW,GAEbW,sBAAuB,cChFZC,EAAQ,iBCEGC,EAAYC,EAAYC,GAC9C,IAAcC,EAAYD,EAAZC,QAEd,OAF0BD,EAAlBN,MAGN,KAAKQ,EACH,OAAAC,KACKJ,GACHrB,KAAMuB,EAAQvB,KACdM,OAAQiB,EAAQjB,OAChBE,gBAAiBe,EAAQf,kBAG7B,IDb0B,iBCcxB,OAAAiB,KACKJ,GACHd,UAAWgB,EAAQhB,YAGvB,IDlBuB,cCmBrB,OAAAkB,KACKJ,GACHrB,KAAIyB,KACCJ,EAAMrB,KACNuB,KAIT,IDvBF,qCCwBI,OAAAE,KACKJ,GACHP,IAAGW,KACEJ,EAAMP,KACTC,OAAQ,CACNC,KAAMO,EAAQP,KACdC,QAASM,EAAQN,aAKzB,IDrCF,yCCsCI,OAAAQ,KACKJ,GACHP,IAAGW,KACEJ,EAAMP,KACTP,UAAWgB,MAIjB,QACE,OAAOF,GCnDb,IAAMK,EAAcC,QACW,cAA7BzB,OAAO0B,SAASC,UACe,UAA7B3B,OAAO0B,SAASC,UAChB3B,OAAO0B,SAASC,SAASC,MACvB,2EAEF5B,OAAO0B,SAASC,SAASC,MACvB,oEAMUC,EAAiBC,OAEzBC,EAAoB/B,OAAO0B,SAASM,cAAahC,OAAO0B,SAASC,SAA7C3B,eAG1B,OADuBwB,EAAcO,aAJOD,EAAVG,wCAQpBC,EAAiBC,OAEzBC,EAAoBpC,OAAO0B,SAASM,cAAahC,OAAO0B,SAASC,SAA7C3B,QAG1B,OADuBwB,EAAcY,aAJOD,EAAVF,4BClBvBI,aAAU,IAAAP,EAAAQ,EAAAC,IAAAC,MAAG,SAAAC,EACxBR,EACAS,GAAa,IAAAC,EAAAC,EAAA,OAAAL,IAAAM,eAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAQZ,OANKL,EAAS,CACbM,OAAQ,MACRC,QAAS,CACPC,iBAAkBT,EAClBU,eAAgB,qBAEnBN,EAAAE,OACsBK,MAClBxB,EAAkB,CAAEI,WAAAA,mBAA4BA,EACnDU,GACD,OAHa,OAARC,EAAQE,EAAAQ,KAAAR,EAAAE,OAIKJ,EAASW,OAAM,OAAxB,OAAAT,EAAAU,gBACH,CAAEZ,SAAAA,EAAUa,KADTX,EAAAQ,OACe,OAAA,UAAA,OAAAR,EAAAY,UAAAjB,OAC1B,gBAjBsBkB,EAAAC,GAAA,OAAA9B,EAAA+B,WAAAC,eAmBVC,aAAa,IAAA5B,EAAAG,EAAAC,IAAAC,MAAG,SAAAwB,EAC3B/B,EACAnC,EACA4C,GAAa,IAAAC,EAAAC,EAAA,OAAAL,IAAAM,eAAAoB,GAAA,cAAAA,EAAAlB,KAAAkB,EAAAjB,MAAA,OASZ,OAPKL,EAAS,CACbM,OAAQ,QACRC,QAAS,CACPC,iBAAkBT,EAClBU,eAAgB,oBAElBc,KAAMC,KAAKC,UAAUtE,IACtBmE,EAAAjB,OACsBK,MAClBxB,EAAkB,CAAEI,WAAAA,sBAA+BA,EACtDU,GACD,OAHa,OAARC,EAAQqB,EAAAX,KAAAW,EAAAjB,OAIKJ,EAASW,OAAM,OAAxB,OAAAU,EAAAT,gBACH,CAAEZ,SAAAA,EAAUa,KADTQ,EAAAX,OACe,OAAA,UAAA,OAAAW,EAAAP,UAAAM,OAC1B,gBAnByBK,EAAAC,EAAAC,GAAA,OAAApC,EAAA0B,WAAAC,eAqBbU,aAAwB,IAAAC,EAAAnC,EAAAC,IAAAC,MAAG,SAAAkC,EACtCzC,EACAS,GAAa,IAAAC,EAAAC,EAAA,OAAAL,IAAAM,eAAA8B,GAAA,cAAAA,EAAA5B,KAAA4B,EAAA3B,MAAA,OAQZ,OANKL,EAAS,CACbM,OAAQ,MACRC,QAAS,CACPC,cAAeT,EACfU,eAAgB,qBAEnBuB,EAAA3B,OACsBK,MAClBxB,EAAkB,CACnBI,WAAAA,oCACgCA,EAClCU,GACD,OALa,OAARC,EAAQ+B,EAAArB,KAAAqB,EAAA3B,OAMKJ,EAASW,OAAM,OAAxB,OAAAoB,EAAAnB,gBACH,CAAEZ,SAAAA,EAAUa,KADTkB,EAAArB,OACe,OAAA,UAAA,OAAAqB,EAAAjB,UAAAgB,OAC1B,gBAnBoCE,EAAAC,GAAA,OAAAJ,EAAAZ,WAAAC,eAqBxBgB,aAAqB,IAAAC,EAAAzC,EAAAC,IAAAC,MAAG,SAAAwC,EACnC/C,EACAS,GAAa,IAAAC,EAAAC,EAAA,OAAAL,IAAAM,eAAAoC,GAAA,cAAAA,EAAAlC,KAAAkC,EAAAjC,MAAA,OAQZ,OANKL,EAAS,CACbM,OAAQ,MACRC,QAAS,CACPC,cAAeT,EACfU,eAAgB,qBAEnB6B,EAAAjC,OACsBK,MAClBxB,EAAkB,CACnBI,WAAAA,+BAC2BA,EAC7BU,GACD,OALa,OAARC,EAAQqC,EAAA3B,KAAA2B,EAAAjC,OAMKJ,EAASW,OAAM,OAAxB,OAAA0B,EAAAzB,gBACH,CAAEZ,SAAAA,EAAUa,KADTwB,EAAA3B,OACe,OAAA,UAAA,OAAA2B,EAAAvB,UAAAsB,OAC1B,gBAnBiCE,EAAAC,GAAA,OAAAJ,EAAAlB,WAAAC,eChErBsB,EAAc,cCkD1B,SAAAC,IAAA,OAAAA,EAAA/C,EAAAC,IAAAC,MAnCM,SAAAC,EAAAX,GAAA,IAAAwD,EAAAC,EAAAtD,EAAAuD,EAAA,OAAAjD,IAAAM,eAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAKuE,OAH5EuC,EAAWzD,EAAXyD,YACAtD,EAAUH,EAAVG,YAFAqD,EAAQxD,EAARwD,UAIS,CAAExE,KLnBiB,iBKmBgBO,QAAS,CAAEhB,WAAW,KAAUyC,EAAAC,OAAAD,EAAAE,OAE/CX,EAAWJ,EAAYsD,GAAY,OAA5C,GACmB,OAD/BC,EAAY1C,EAAAQ,MACDV,SAAS/B,QAAciC,EAAAE,QAAA,MAapC,OAZFsC,EAAS,CACPxE,KAAMQ,EACND,QAAS,CACPvB,KAAM0F,EAAa/B,KAAK3D,KACxBM,OAAQoF,EAAa/B,KAAKrD,OAC1BE,iBAAiB,KAGrBN,OAAOyF,QAAQC,aACb,GACAzF,SAAS0F,MACTH,EAAa/B,KAAKrD,OAAOwF,eACzB9C,EAAAU,gBACKqC,aAAaC,QAAQV,EAAaG,IAAY,QAAA,OAAAzC,EAAAU,gBAE9CqC,aAAaE,WAAWX,IAAY,QAAAtC,EAAAE,QAAA,MAAA,QAAAF,EAAAC,QAAAD,EAAAkD,GAAAlD,WAG7C+C,aAAaE,WAAWX,GACxBa,QAAQC,IAAGpD,EAAAkD,IAAQ,QAKhB,OALgBlD,EAAAC,QAEnBuC,EAAS,CACPxE,KL7CwB,iBK8CxBO,QAAS,CAAEhB,WAAW,KACrByC,EAAAqD,WAAA,QAAA,UAAA,OAAArD,EAAAY,UAAAjB,4BAENoB,WAAAC,WAoEA,SAAAsC,IAAA,OAAAA,EAAA9D,EAAAC,IAAAC,MA7DM,SAAAwB,EAAA7B,GAAA,IAAAmD,EAAAe,EAAApE,EAAAqE,EAAAd,EAAA,OAAAjD,IAAAM,eAAAoB,GAAA,cAAAA,EAAAlB,KAAAkB,EAAAjB,MAAA,OAKuE,OAH5EqD,EAAclE,EAAdkE,eACApE,EAAUE,EAAVF,YAFAqD,EAAQnD,EAARmD,UAIS,CAAExE,KL7DiB,iBK6DgBO,QAAS,CAAEhB,WAAW,KAAU4D,EAAAlB,OAAAkB,EAAAjB,OAEpC8B,EACpC7C,EACAoE,GACD,OAH4B,GAImB,OAJ1CC,EAAuBrC,EAAAX,MAIDV,SAAS/B,QAAcoD,EAAAjB,QAAA,MAAA,OAAAiB,EAAAjB,OACtBX,EAAWJ,EAAYoE,GAAe,OAA/C,GACmB,OAD/Bb,EAAYvB,EAAAX,MACDV,SAAS/B,QAAcoD,EAAAjB,QAAA,MAYpC,OAXFsC,EAAS,CACPxE,KAAMQ,EACND,QAAS,CACPvB,KAAM0F,EAAa/B,KAAK3D,KACxBM,OAAQoF,EAAa/B,KAAKrD,OAC1BE,iBAAiB,KAGrBuF,aAAaC,QACXV,EACAkB,EAAwB7C,KAAK8C,aAC7BtC,EAAAT,iBAAA,QAGFgD,EAAU,CAAElB,SAAAA,IASZ,QAAArB,EAAAjB,QAAA,MAAA,QAGFwD,EAAU,CAAElB,SAAAA,IASZ,QAAArB,EAAAjB,QAAA,MAAA,QAAAiB,EAAAlB,QAAAkB,EAAA+B,GAAA/B,WAGFuC,EAAU,CAAElB,SAAAA,IAEZW,QAAQC,IAAGjC,EAAA+B,IAAQ,QAKhB,OALgB/B,EAAAlB,QAEnBuC,EAAS,CACPxE,KLjHwB,iBKkHxBO,QAAS,CAAEhB,WAAW,KACrB4D,EAAAkC,WAAA,QAAA,UAAA,OAAAlC,EAAAP,UAAAM,4BAENH,WAAAC,WAmBA,SAAA2C,IAAA,OAAAA,EAAAnE,EAAAC,IAAAC,MAjBM,SAAAkC,EAAAD,GAAA,IAAAa,EAAA,OAAA/C,IAAAM,eAAA8B,GAAA,cAAAA,EAAA5B,KAAA4B,EAAA3B,MAAA,OAYgC,OAZCsC,EAAQb,EAARa,UAC7B,CAAExE,KLxHiB,iBKwHgBO,QAAS,CAAEhB,WAAW,KAClEiF,EAAS,CACPxE,KAAMQ,EACND,QAAS,CACPvB,KAAM,CACJC,SAAUC,OAAOC,SAASC,gBAAgBC,aAAa,SAAW,MAEpEC,OAAQ,GACRE,iBAAiB,KAGrBuF,aAAaE,WAAWX,GAAaT,EAAAnB,gBAC9B8B,EAAS,CACdxE,KLrI0B,iBKsI1BO,QAAS,CAAEhB,WAAW,MACtB,OAAA,UAAA,OAAAsE,EAAAjB,UAAAgB,QACHb,WAAAC,WAqCA,SAAA4C,IAAA,OAAAA,EAAApE,EAAAC,IAAAC,MA7BM,SAAAwC,EAAAD,GAAA,IAAAO,EAAArD,EAAAnC,EAAA4C,EAAA8C,EAAA,OAAAjD,IAAAM,eAAAoC,GAAA,cAAAA,EAAAlC,KAAAkC,EAAAjC,MAAA,OAQJ,GAPDsC,EAAQP,EAARO,SACArD,EAAU8C,EAAV9C,WAEAS,EAAKqC,EAALrC,OADA5C,EAAIiF,EAAJjF,MAGSC,UACPC,OAAOC,SAASC,gBAAgByG,aAAa,OAAQ7G,EAAKC,UAEvD2C,GAAKuC,EAAAjC,OAAA,MAAA,OAAAiC,EAAAzB,gBACD8B,EAAS,CACdxE,KL1JqB,cK2JrBO,QAASvB,KACT,OAAA,OAAAmF,EAAAlC,OAAAkC,EAAAjC,OAGyBe,EAAc9B,EAAYnC,EAAM4C,GAAM,OAA/C,GACmB,OAD/B8C,EAAYP,EAAA3B,MACDV,SAAS/B,QAAcoE,EAAAjC,QAAA,MAAA,OAAAiC,EAAAzB,gBAC/B8B,EAAS,CACdxE,KLlKmB,cKmKnBO,QAASmE,EAAa/B,KAAK3D,QAC3B,QAE+B,OAAjCmG,QAAQC,IAAI,qBAAqBjB,EAAAzB,iBAAA,QAAAyB,EAAAjC,QAAA,MAAA,QAAAiC,EAAAlC,QAAAkC,EAAAe,GAAAf,WAInCgB,QAAQC,IAAI,oBAAmBjB,EAAAe,IAAS,QAAA,UAAA,OAAAf,EAAAvB,UAAAsB,sBAE3CnB,WAAAC,WAsGD,SAAA8C,IAhDC,OAgDDA,EAAAtE,EAAAC,IAAAC,MA/FO,SAAAqE,EAAAC,GAAA,IAAAxB,EAAArD,EAAAS,EAAAqE,EAAA,OAAAxE,IAAAM,eAAAmE,GAAA,cAAAA,EAAAjE,KAAAiE,EAAAhE,MAAA,OAYF,OAVHf,EAAU6E,EAAV7E,WACAS,EAAKoE,EAALpE,OAFA4C,EAAQwB,EAARxB,UAIS,CACPxE,KLvLF,yCKwLEO,SAAS,IAEXiE,EAAS,CACPxE,KLzLF,qCK0LEO,QAAS,CAAEP,KAAM,OAAQC,QAAS,mCACjCiG,EAAAjE,OAAAiE,EAAAhE,OAE4BwB,EAAyBvC,EAAYS,GAAM,OAApD,GACmB,OADjCqE,EAAcC,EAAA1D,MACDV,SAAS/B,QAAcmG,EAAAhE,QAAA,MAIrC,OAHHsC,EAAS,CACPxE,KLhMN,qCKiMMO,QAAS,CAAEP,KAAM,UAAWC,QAASgG,EAAetD,KAAK1C,WACxDiG,EAAAxD,gBACI8B,EAAS,CACdxE,KLtMN,yCKuMMO,SAAS,KACT,QAKC,OAHHiE,EAAS,CACPxE,KLzMN,qCK0MMO,QAAS,CAAEP,KAAM,QAASC,QAASgG,EAAetD,KAAK1C,WACtDiG,EAAAxD,gBACI8B,EAAS,CACdxE,KL/MN,yCKgNMO,SAAS,KACT,QAAA2F,EAAAhE,QAAA,MAAA,QASD,OATCgE,EAAAjE,QAAAiE,EAAAhB,GAAAgB,WAGJ1B,EAAS,CACPxE,KLnNJ,qCKoNIO,QAAS,CACPP,KAAM,QACNC,QAAS,yCAEViG,EAAAxD,gBACI8B,EAAS,CACdxE,KL5NJ,yCK6NIO,SAAS,KACT,QAAA,UAAA,OAAA2F,EAAAtD,UAAAmD,sBAELhD,WAAAC,WA8FD,SAAAmD,IAHC,OAGDA,EAAA3E,EAAAC,IAAAC,MA5CO,SAAA0E,EAAAC,GAAA,IAAA7B,EAAArD,EAAAS,EAAA,OAAAH,IAAAM,eAAAuE,GAAA,cAAAA,EAAArE,KAAAqE,EAAApE,MAAA,OAGA,OAFLsC,EAAQ6B,EAAR7B,SACArD,EAAUkF,EAAVlF,WACAS,EAAKyE,EAALzE,MAAK0E,EAAArE,OAAAqE,EAAApE,OAOmC8B,EACpC7C,EACAS,GACD,OAH4B,GAImB,MAJnB0E,EAAA9D,KAIDV,SAAS/B,QAAcuG,EAAApE,OAAA,MAAA,OAAAoE,EAAA5D,iBAAA,OAAA,OAAA4D,EAAA5D,gBAG1CgD,EAAUlB,IAAS,QAAA8B,EAAApE,QAAA,MAAA,QAqB5B,MArB4BoE,EAAArE,QAAAqE,EAAApB,GAAAoB,WAY5BZ,EAAUlB,GASV8B,EAAApB,GAAA,QAAA,UAAA,OAAAoB,EAAA1D,UAAAwD,sBAGHrD,WAAAC,WAID,IAAM0C,EAAY,SAAClB,GAEjB,OADAO,aAAaE,WAAWX,GACjBE,EAAS,CACdxE,KAAMQ,EACND,QAAS,CACPvB,KAAM,GACNM,OAAQ,GACRE,iBAAiB,MC7KjB+G,EAAeC,gBAAczH,yBAtIwB,SACzD0H,GAEA,IAAQtF,EAA8BsF,EAA9BtF,WAAYuF,EAAkBD,EAAlBC,IAAKC,EAAaF,EAAbE,SACzBC,EAAuBC,aAAWzG,EAAarB,GAApCyF,EAAQoC,KACbE,EADGF,KAUTG,aAAU,WACR,IAAMC,EAAWjC,aAAakC,QAAQ3C,GAClC4C,EAAWC,aAAY,WACpBH,YD8O2BlD,GAAAqC,EAAApD,WAAAC,WC7OhC1C,CAAwB,CAAEkE,SAAAA,EAAUrD,WAAAA,EAAYS,MAAOoF,MACtD,KAEH,OAAO,WAAA,OAAMI,cAAcF,MAC1B,CAAC/F,IAGJ4F,aAAU,WACR,IAAMM,EAAcnI,OAAO0B,SAAS0G,OACpC,GAAKD,EAAL,CACA,IACM5C,EADY,IAAI8C,gBAAgBF,GACRG,IAAIlD,GAC9BG,IAAgBqC,EAAWtH,0BDtCMqD,GAAA0B,EAAAxB,WAAAC,WCuCnC1C,CAA2B,CAAEkE,SAAAA,EAAUC,YAAAA,EAAatD,WAAAA,OAErD,CAAC2F,EAAWtH,gBAAiB2B,IAGhC4F,aAAU,WACR,IAAMxB,EAAiBR,aAAakC,QAAQ3C,GACxCiB,IAAmBuB,EAAWtH,0BDJEsD,GAAAwC,EAAAvC,WAAAC,WCKlC1C,CAA0B,CAAEkE,SAAAA,EAAUe,eAAAA,EAAgBpE,WAAAA,MAEvD,CAAC2F,EAAWtH,gBAAiB2B,IAEhC,IAAM1B,EAAoBgI,eAAY,WACpC,OAAOvI,OAAO0B,SAAS8G,QAClBtG,EAAkB,CAAED,WAAAA,eAAwBuF,KAEhD,CAACvF,EAAYuF,IAEVhH,EAAS+H,eAAY,WACzB,gBD+CiClE,GAAA,OAAAoC,EAAA5C,WAAAC,WC/C1B1C,CAAuB,CAAEkE,SAAAA,MAC/B,IAEG7E,EAAiB8H,eAAY,WACjC,IAAMT,EAAWjC,aAAakC,QAAQ3C,GACtC,aAAO0C,EAAAA,EAAY,oBAClB,IAEGpH,EAAa6H,eACjB,SAAAzG,OACE2G,EAAI3G,EAAJ2G,KACAC,EAAQ5G,EAAR4G,SACAC,EAAQ7G,EAAR6G,SACAC,EAAU9G,EAAV8G,WACAC,EAAU/G,EAAV+G,WACA9I,EAAQ+B,EAAR/B,SACA+I,EAAMhH,EAANgH,OAEMhB,EAAWjC,aAAakC,QAAQ3C,GAUtC,gBD4CmCd,GAAA,OAAAoC,EAAA7C,WAAAC,WC5C5B1C,CAA2B,CAChCkE,SAAAA,EACArD,WAAAA,EACAnC,KAZW,CACX2I,KAAAA,EACAC,SAAAA,EACAC,SAAAA,EACAC,WAAAA,EACAC,WAAAA,EACA9I,SAAAA,EACA+I,OAAAA,GAMApG,MAAOoF,MAGX,CAAC7F,IAGGtB,EAAyB4H,eAAY,WACzC,IAAMT,EAAWjC,aAAakC,QAAQ3C,GACtC,GAAK0C,EACL,OAAO9H,OAAO0B,SAAS8G,QAClBtG,EAAkB,CAAED,WAAAA,sBAA+BuF,MAAOM,KAE9D,CAAC7F,EAAYuF,IAEVxG,EAAwBuH,eAAY,WACxC,IAAMT,EAAWjC,aAAakC,QAAQ3C,GACtC,GAAK0C,EACL,gBD2D6CvD,GAAA,OAAAqC,EAAA/C,WAAAC,WC3DtC1C,CAAmC,CACxCkE,SAAAA,EACArD,WAAAA,EACAS,MAAOoF,MAER,CAAC7F,IAEE8G,EAAeC,WACnB,WAAA,OAAAzH,KACKqG,GACHrH,kBAAAA,EACAC,OAAAA,EACAC,eAAgB,WAAA,OAAMA,KAAoB,IAC1CC,WAAAA,EACAC,uBAAAA,EACAK,sBAAAA,MAEF,CACE4G,EACArH,EACAC,EACAC,EACAC,EACAC,EACAK,IAIJ,OACEiI,gBAAC5B,EAAa6B,UAASC,MAAOJ,GAC3BtB,qBAOiB,WACtB,IAAM2B,EAAUC,aAAWhC,GAC3B,IAAK+B,EACH,MAAM,IAAIE,MAAM,8CAElB,OAAOF"}
@@ -671,7 +671,7 @@ function _setAutoLoginAction() {
671
671
  case 5:
672
672
  refreshAccessTokenFetch = _context2.sent;
673
673
  if (!(refreshAccessTokenFetch.response.status === 200)) {
674
- _context2.next = 20;
674
+ _context2.next = 19;
675
675
  break;
676
676
  }
677
677
  _context2.next = 9;
@@ -693,50 +693,59 @@ function _setAutoLoginAction() {
693
693
  localStorage.setItem(DAUTH_STATE, refreshAccessTokenFetch.data.accessToken);
694
694
  return _context2.abrupt("return");
695
695
  case 16:
696
- dispatch({
697
- type: LOGIN,
698
- payload: {
699
- user: {},
700
- domain: {},
701
- isAuthenticated: false
702
- }
696
+ resetUser({
697
+ dispatch: dispatch
703
698
  });
704
- localStorage.removeItem(DAUTH_STATE);
705
- case 18:
706
- _context2.next = 22;
699
+ // dispatch({
700
+ // type: DauthTypes.LOGIN,
701
+ // payload: {
702
+ // user: {} as IDauthUser,
703
+ // domain: {} as IDauthDomainState,
704
+ // isAuthenticated: false,
705
+ // },
706
+ // });
707
+ // localStorage.removeItem(DAUTH_STATE);
708
+ case 17:
709
+ _context2.next = 20;
707
710
  break;
708
- case 20:
709
- dispatch({
710
- type: LOGIN,
711
- payload: {
712
- user: {},
713
- domain: {},
714
- isAuthenticated: false
715
- }
711
+ case 19:
712
+ resetUser({
713
+ dispatch: dispatch
716
714
  });
717
- localStorage.removeItem(DAUTH_STATE);
718
- case 22:
719
- _context2.next = 28;
715
+ // dispatch({
716
+ // type: DauthTypes.LOGIN,
717
+ // payload: {
718
+ // user: {} as IDauthUser,
719
+ // domain: {} as IDauthDomainState,
720
+ // isAuthenticated: false,
721
+ // },
722
+ // });
723
+ // localStorage.removeItem(DAUTH_STATE);
724
+ case 20:
725
+ _context2.next = 26;
720
726
  break;
721
- case 24:
722
- _context2.prev = 24;
727
+ case 22:
728
+ _context2.prev = 22;
723
729
  _context2.t0 = _context2["catch"](2);
724
- localStorage.removeItem(DAUTH_STATE);
730
+ resetUser({
731
+ dispatch: dispatch
732
+ });
733
+ // localStorage.removeItem(DAUTH_STATE);
725
734
  console.log(_context2.t0);
726
- case 28:
727
- _context2.prev = 28;
735
+ case 26:
736
+ _context2.prev = 26;
728
737
  dispatch({
729
738
  type: SET_IS_LOADING,
730
739
  payload: {
731
740
  isLoading: false
732
741
  }
733
742
  });
734
- return _context2.finish(28);
735
- case 31:
743
+ return _context2.finish(26);
744
+ case 29:
736
745
  case "end":
737
746
  return _context2.stop();
738
747
  }
739
- }, _callee2, null, [[2, 24, 28, 31]]);
748
+ }, _callee2, null, [[2, 22, 26, 29]]);
740
749
  }));
741
750
  return _setAutoLoginAction.apply(this, arguments);
742
751
  }
@@ -837,6 +846,53 @@ function _setUpdateUserAction() {
837
846
  function sendEmailVerificationAction(_x5) {
838
847
  return _sendEmailVerificationAction.apply(this, arguments);
839
848
  }
849
+ // export async function refreshTokenAction({
850
+ // dispatch,
851
+ // domainName,
852
+ // token,
853
+ // }: {
854
+ // dispatch: any;
855
+ // domainName: string;
856
+ // token: string;
857
+ // }) {
858
+ // try {
859
+ // const refreshAccessTokenFetch = await refreshAccessTokenAPI(
860
+ // domainName,
861
+ // token
862
+ // );
863
+ // if (refreshAccessTokenFetch.response.status === 200) {
864
+ // console.log(refreshAccessTokenFetch.data.accessToken);
865
+ // localStorage.removeItem(DAUTH_STATE);
866
+ // localStorage.setItem(
867
+ // DAUTH_STATE,
868
+ // refreshAccessTokenFetch.data.accessToken
869
+ // );
870
+ // return;
871
+ // } else {
872
+ // dispatch({
873
+ // type: DauthTypes.LOGIN,
874
+ // payload: {
875
+ // user: {} as IDauthUser,
876
+ // domain: {} as IDauthDomainState,
877
+ // isAuthenticated: false,
878
+ // },
879
+ // });
880
+ // localStorage.removeItem(DAUTH_STATE);
881
+ // return;
882
+ // }
883
+ // } catch (error) {
884
+ // dispatch({
885
+ // type: DauthTypes.LOGIN,
886
+ // payload: {
887
+ // user: {} as IDauthUser,
888
+ // domain: {} as IDauthDomainState,
889
+ // isAuthenticated: false,
890
+ // },
891
+ // });
892
+ // localStorage.removeItem(DAUTH_STATE);
893
+ // console.log(error);
894
+ // }
895
+ // }
840
896
  function _sendEmailVerificationAction() {
841
897
  _sendEmailVerificationAction = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(_ref5) {
842
898
  var dispatch, domainName, token, sendEmailFetch;
@@ -912,6 +968,66 @@ function _sendEmailVerificationAction() {
912
968
  }));
913
969
  return _sendEmailVerificationAction.apply(this, arguments);
914
970
  }
971
+ function checkTokenAction(_x6) {
972
+ return _checkTokenAction.apply(this, arguments);
973
+ }
974
+ ///////////////////////////////////////////
975
+ //////////////////////////////////////////
976
+ function _checkTokenAction() {
977
+ _checkTokenAction = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6(_ref6) {
978
+ var dispatch, domainName, token, refreshAccessTokenFetch;
979
+ return _regeneratorRuntime().wrap(function _callee6$(_context6) {
980
+ while (1) switch (_context6.prev = _context6.next) {
981
+ case 0:
982
+ dispatch = _ref6.dispatch, domainName = _ref6.domainName, token = _ref6.token;
983
+ _context6.prev = 1;
984
+ _context6.next = 4;
985
+ return refreshAccessTokenAPI(domainName, token);
986
+ case 4:
987
+ refreshAccessTokenFetch = _context6.sent;
988
+ if (!(refreshAccessTokenFetch.response.status === 200)) {
989
+ _context6.next = 9;
990
+ break;
991
+ }
992
+ return _context6.abrupt("return");
993
+ case 9:
994
+ return _context6.abrupt("return", resetUser(dispatch));
995
+ case 10:
996
+ _context6.next = 16;
997
+ break;
998
+ case 12:
999
+ _context6.prev = 12;
1000
+ _context6.t0 = _context6["catch"](1);
1001
+ resetUser(dispatch);
1002
+ // dispatch({
1003
+ // type: DauthTypes.LOGIN,
1004
+ // payload: {
1005
+ // user: {} as IDauthUser,
1006
+ // domain: {} as IDauthDomainState,
1007
+ // isAuthenticated: false,
1008
+ // },
1009
+ // });
1010
+ // localStorage.removeItem(DAUTH_STATE);
1011
+ throw _context6.t0;
1012
+ case 16:
1013
+ case "end":
1014
+ return _context6.stop();
1015
+ }
1016
+ }, _callee6, null, [[1, 12]]);
1017
+ }));
1018
+ return _checkTokenAction.apply(this, arguments);
1019
+ }
1020
+ var resetUser = function resetUser(dispatch) {
1021
+ localStorage.removeItem(DAUTH_STATE);
1022
+ return dispatch({
1023
+ type: LOGIN,
1024
+ payload: {
1025
+ user: {},
1026
+ domain: {},
1027
+ isAuthenticated: false
1028
+ }
1029
+ });
1030
+ };
915
1031
 
916
1032
  var DauthProvider = function DauthProvider(props) {
917
1033
  var domainName = props.domainName,
@@ -927,15 +1043,21 @@ var DauthProvider = function DauthProvider(props) {
927
1043
  // if (!token_ls) return;
928
1044
  // action.refreshTokenAction({ dispatch, domainName, token: token_ls });
929
1045
  // }, [domainName]);
930
- // useEffect(() => {
931
- // const token_ls = localStorage.getItem(DAUTH_STATE);
932
- // let interval = setInterval(() => {
933
- // if (!token_ls) return;
934
- // action.checkTokenAction({ dispatch, domainName, token: token_ls });
935
- // }, 6000);
936
- // // }, 1000 * 60 * 5);
937
- // return () => clearInterval(interval);
938
- // }, [domainName]);
1046
+ useEffect(function () {
1047
+ var token_ls = localStorage.getItem(DAUTH_STATE);
1048
+ var interval = setInterval(function () {
1049
+ if (!token_ls) return;
1050
+ checkTokenAction({
1051
+ dispatch: dispatch,
1052
+ domainName: domainName,
1053
+ token: token_ls
1054
+ });
1055
+ }, 6000);
1056
+ // }, 1000 * 60 * 5);
1057
+ return function () {
1058
+ return clearInterval(interval);
1059
+ };
1060
+ }, [domainName]);
939
1061
  // Catch login redirect
940
1062
  useEffect(function () {
941
1063
  var queryString = window.location.search;
@@ -1 +1 @@
1
- {"version":3,"file":"dauth-context-react.esm.js","sources":["../src/initialDauthState.ts","../src/reducer/dauth.types.ts","../src/reducer/dauth.reducer.ts","../src/api/utils/config.ts","../src/api/dauth.api.ts","../src/constants.ts","../src/reducer/dauth.actions.ts","../src/index.tsx"],"sourcesContent":["export interface IDauthUser {\n _id: string;\n dauthLicense?: string;\n sid: string;\n name: string;\n lastname: string;\n nickname: string;\n email: string;\n is_verified: boolean;\n language: string;\n avatar: {\n id: string;\n url: string;\n };\n role: string;\n tel_prefix: string;\n tel_suffix: string;\n createdAt: Date;\n updatedAt: Date;\n last_login: Date;\n}\n\nexport interface IDauthDomainState {\n name: string;\n loginRedirect: string;\n allowedOrigins: string[];\n}\n\nexport interface IDauthState {\n user: IDauthUser;\n domain: IDauthDomainState;\n isLoading: boolean;\n isAuthenticated: boolean;\n loginWithRedirect: () => void;\n logout: () => void;\n getAccessToken: () => string;\n updateUser: ({\n name,\n lastname,\n nickname,\n tel_prefix,\n tel_suffix,\n language,\n avatar,\n }: Partial<IDauthUser>) => void;\n updateUserWithRedirect: () => void;\n // Send email verification\n sev: {\n status: IActionStatus;\n isLoading: boolean;\n };\n sendEmailVerification: () => void;\n}\n\nexport interface IActionStatus {\n type: TStatusTypes;\n message: string;\n}\nexport type TStatusTypes = 'success' | 'error' | 'info' | 'warning';\n\nconst initialDauthState: IDauthState = {\n user: {\n language: window.document.documentElement.getAttribute('lang') || 'es',\n } as IDauthUser,\n domain: {} as IDauthDomainState,\n isLoading: false,\n isAuthenticated: false,\n loginWithRedirect: () => {},\n logout: () => {},\n getAccessToken: () => initialDauthState.getAccessToken() || '',\n updateUser: () => {},\n updateUserWithRedirect: () => {},\n // Send email verification\n sev: {\n status: {\n type: 'info',\n message: 'Sending email verification...',\n } as IActionStatus,\n isLoading: false,\n },\n sendEmailVerification: () => {},\n};\n\nexport default initialDauthState;\n","export const LOGIN = 'LOGIN';\nexport const SET_IS_LOADING = 'SET_IS_LOADING';\nexport const UPDATE_USER = 'UPDATE_USER';\nexport const SET_SEND_EMAIL_VERIFICATION_IS_LOADING =\n 'SET_SEND_EMAIL_VERIFICATION_IS_LOADING';\nexport const SET_SEND_EMAIL_VERIFICATION_STATUS =\n 'SET_SEND_EMAIL_VERIFICATION_STATUS';\n","import * as DauthTypes from './dauth.types';\n\nexport default function userReducer(state: any, action: any) {\n const { type, payload } = action;\n\n switch (type) {\n case DauthTypes.LOGIN:\n return {\n ...state,\n user: payload.user,\n domain: payload.domain,\n isAuthenticated: payload.isAuthenticated,\n };\n\n case DauthTypes.SET_IS_LOADING:\n return {\n ...state,\n isLoading: payload.isLoading,\n };\n\n case DauthTypes.UPDATE_USER:\n return {\n ...state,\n user: {\n ...state.user,\n ...payload,\n },\n };\n\n case DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS:\n return {\n ...state,\n sev: {\n ...state.sev,\n status: {\n type: payload.type,\n message: payload.message,\n },\n },\n };\n\n case DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING:\n return {\n ...state,\n sev: {\n ...state.sev,\n isLoading: payload,\n },\n };\n\n default:\n return state;\n }\n}\n","const isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n window.location.hostname === '[::1]' ||\n window.location.hostname.match(\n /(192)\\.(168)\\.(1)\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/gm\n ) ||\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\nexport const apiVersion = 'v1';\nexport const serverDomain = 'dauth.ovh';\n\nexport function getServerBasePath({ domainName }: { domainName: string }) {\n const serverPort = 4012;\n const serverLocalUrl = `${window.location.protocol}//${window.location.hostname}:${serverPort}/api/${apiVersion}`;\n const serverProdUrl = `https://${domainName}.${serverDomain}/api/${apiVersion}`;\n const serverBasePath = isLocalhost ? serverLocalUrl : serverProdUrl;\n return serverBasePath;\n}\n\nexport function getClientBasePath({ domainName }: { domainName: string }) {\n const clientPort = 5185;\n const clientLocalUrl = `${window.location.protocol}//${window.location.hostname}:${clientPort}`;\n const clientProdUrl = `https://${domainName}.${serverDomain}`;\n const clientBasePath = isLocalhost ? clientLocalUrl : clientProdUrl;\n return clientBasePath;\n}\n","import { IDauthUser } from '../initialDauthState';\nimport { getServerBasePath } from './utils/config';\n\nexport const getUserAPI = async (\n domainName: string,\n token: string\n): Promise<any> => {\n const params = {\n method: 'GET',\n headers: {\n Authorization: `${token}`,\n 'Content-Type': 'application/json',\n },\n };\n const response = await fetch(\n `${getServerBasePath({ domainName })}/t-get-user/${domainName}`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n\nexport const updateUserAPI = async (\n domainName: string,\n user: Partial<IDauthUser>,\n token: string\n): Promise<any> => {\n const params = {\n method: 'PATCH',\n headers: {\n Authorization: `${token}`,\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(user),\n };\n const response = await fetch(\n `${getServerBasePath({ domainName })}/t-update-user/${domainName}`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n\nexport const sendEmailVerificationAPI = async (\n domainName: string,\n token: string\n): Promise<any> => {\n const params = {\n method: 'GET',\n headers: {\n Authorization: token,\n 'Content-Type': 'application/json',\n },\n };\n const response = await fetch(\n `${getServerBasePath({\n domainName,\n })}/t-resend-email-verification/${domainName}`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n\nexport const refreshAccessTokenAPI = async (\n domainName: string,\n token: string\n): Promise<any> => {\n const params = {\n method: 'GET',\n headers: {\n Authorization: token,\n 'Content-Type': 'application/json',\n },\n };\n const response = await fetch(\n `${getServerBasePath({\n domainName,\n })}/t-refresh-access-token/${domainName}`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n","export const DAUTH_STATE = 'dauth_state';\n","import {\n getUserAPI,\n refreshAccessTokenAPI,\n sendEmailVerificationAPI,\n updateUserAPI,\n} from '../api/dauth.api';\nimport { DAUTH_STATE } from '../constants';\nimport { IDauthDomainState, IDauthUser } from '../initialDauthState';\nimport * as DauthTypes from './dauth.types';\n\ntype TSetDauthStateAction = {\n dispatch: any;\n dauth_state: string;\n domainName: string;\n};\nexport async function setDauthStateAction({\n dispatch,\n dauth_state,\n domainName,\n}: TSetDauthStateAction) {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: true } });\n try {\n const getUserFetch = await getUserAPI(domainName, dauth_state);\n if (getUserFetch.response.status === 200) {\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: getUserFetch.data.user,\n domain: getUserFetch.data.domain,\n isAuthenticated: true,\n },\n });\n window.history.replaceState(\n {},\n document.title,\n getUserFetch.data.domain.loginRedirect\n );\n return localStorage.setItem(DAUTH_STATE, dauth_state);\n } else {\n return localStorage.removeItem(DAUTH_STATE);\n }\n } catch (error) {\n localStorage.removeItem(DAUTH_STATE);\n console.log(error);\n } finally {\n dispatch({\n type: DauthTypes.SET_IS_LOADING,\n payload: { isLoading: false },\n });\n }\n}\n\ntype TSetAutoLoginAction = {\n dispatch: any;\n dauth_state_ls: string;\n domainName: string;\n};\nexport async function setAutoLoginAction({\n dispatch,\n dauth_state_ls,\n domainName,\n}: TSetAutoLoginAction) {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: true } });\n try {\n const refreshAccessTokenFetch = await refreshAccessTokenAPI(\n domainName,\n dauth_state_ls\n );\n if (refreshAccessTokenFetch.response.status === 200) {\n const getUserFetch = await getUserAPI(domainName, dauth_state_ls);\n if (getUserFetch.response.status === 200) {\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: getUserFetch.data.user,\n domain: getUserFetch.data.domain,\n isAuthenticated: true,\n },\n });\n localStorage.setItem(\n DAUTH_STATE,\n refreshAccessTokenFetch.data.accessToken\n );\n return;\n } else {\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: {} as IDauthUser,\n domain: {} as IDauthDomainState,\n isAuthenticated: false,\n },\n });\n localStorage.removeItem(DAUTH_STATE);\n }\n } else {\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: {} as IDauthUser,\n domain: {} as IDauthDomainState,\n isAuthenticated: false,\n },\n });\n localStorage.removeItem(DAUTH_STATE);\n }\n // const getUserFetch = await getUserAPI(domainName, dauth_state_ls);\n // if (getUserFetch.response.status === 200) {\n // dispatch({\n // type: DauthTypes.LOGIN,\n // payload: {\n // user: getUserFetch.data.user,\n // domain: getUserFetch.data.domain,\n // isAuthenticated: true,\n // },\n // });\n // localStorage.setItem(DAUTH_STATE, dauth_state_ls);\n // } else {\n // localStorage.removeItem(DAUTH_STATE);\n // }\n } catch (error) {\n localStorage.removeItem(DAUTH_STATE);\n console.log(error);\n } finally {\n dispatch({\n type: DauthTypes.SET_IS_LOADING,\n payload: { isLoading: false },\n });\n }\n}\n\nexport async function setLogoutAction({ dispatch }: { dispatch: any }) {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: true } });\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: {\n language: window.document.documentElement.getAttribute('lang') || 'es',\n },\n domain: {},\n isAuthenticated: false,\n },\n });\n localStorage.removeItem(DAUTH_STATE);\n return dispatch({\n type: DauthTypes.SET_IS_LOADING,\n payload: { isLoading: false },\n });\n}\n\ntype TSetUpdateAction = {\n dispatch: any;\n domainName: string;\n user: Partial<IDauthUser>;\n token: string | null;\n};\nexport async function setUpdateUserAction({\n dispatch,\n domainName,\n user,\n token,\n}: TSetUpdateAction) {\n if (user.language) {\n window.document.documentElement.setAttribute('lang', user.language);\n }\n if (!token) {\n return dispatch({\n type: DauthTypes.UPDATE_USER,\n payload: user,\n });\n }\n try {\n const getUserFetch = await updateUserAPI(domainName, user, token);\n if (getUserFetch.response.status === 200) {\n return dispatch({\n type: DauthTypes.UPDATE_USER,\n payload: getUserFetch.data.user,\n });\n } else {\n console.log('Update user error');\n return;\n }\n } catch (error) {\n console.log('Update user error', error);\n }\n}\n\ntype TSetSendEmailVerificationAction = {\n dispatch: any;\n domainName: string;\n token: string;\n};\nexport async function sendEmailVerificationAction({\n dispatch,\n domainName,\n token,\n}: TSetSendEmailVerificationAction) {\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: true,\n });\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS,\n payload: { type: 'info', message: 'Sending email verification...' },\n });\n try {\n const sendEmailFetch = await sendEmailVerificationAPI(domainName, token);\n if (sendEmailFetch.response.status === 200) {\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS,\n payload: { type: 'success', message: sendEmailFetch.data.message },\n });\n return dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: false,\n });\n } else {\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS,\n payload: { type: 'error', message: sendEmailFetch.data.message },\n });\n return dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: false,\n });\n }\n } catch (error) {\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS,\n payload: {\n type: 'error',\n message: 'Send email verification fetch error',\n },\n });\n return dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: false,\n });\n }\n}\n\nexport async function refreshTokenAction({\n dispatch,\n domainName,\n token,\n}: {\n dispatch: any;\n domainName: string;\n token: string;\n}) {\n try {\n const refreshAccessTokenFetch = await refreshAccessTokenAPI(\n domainName,\n token\n );\n if (refreshAccessTokenFetch.response.status === 200) {\n console.log(refreshAccessTokenFetch.data.accessToken);\n localStorage.removeItem(DAUTH_STATE);\n localStorage.setItem(\n DAUTH_STATE,\n refreshAccessTokenFetch.data.accessToken\n );\n return;\n } else {\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: {} as IDauthUser,\n domain: {} as IDauthDomainState,\n isAuthenticated: false,\n },\n });\n localStorage.removeItem(DAUTH_STATE);\n return;\n }\n } catch (error) {\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: {} as IDauthUser,\n domain: {} as IDauthDomainState,\n isAuthenticated: false,\n },\n });\n localStorage.removeItem(DAUTH_STATE);\n console.log(error);\n }\n}\n\nexport async function checkTokenAction({\n dispatch,\n domainName,\n token,\n}: {\n dispatch: any;\n domainName: string;\n token: string;\n}) {\n try {\n const refreshAccessTokenFetch = await refreshAccessTokenAPI(\n domainName,\n token\n );\n if (refreshAccessTokenFetch.response.status === 200) {\n return;\n } else {\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: {} as IDauthUser,\n domain: {} as IDauthDomainState,\n isAuthenticated: false,\n },\n });\n localStorage.removeItem(DAUTH_STATE);\n return;\n }\n } catch (error) {\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: {} as IDauthUser,\n domain: {} as IDauthDomainState,\n isAuthenticated: false,\n },\n });\n localStorage.removeItem(DAUTH_STATE);\n throw error;\n }\n}\n","import React, {\n useReducer,\n useMemo,\n useEffect,\n useCallback,\n createContext,\n useContext,\n} from 'react';\nimport initialDauthState, {\n IDauthState,\n IDauthUser,\n} from './initialDauthState';\nimport userReducer from './reducer/dauth.reducer';\nimport * as action from './reducer/dauth.actions';\nimport { getClientBasePath } from './api/utils/config';\nimport { DAUTH_STATE } from './constants';\n\ninterface DauthProviderProps {\n domainName: string;\n sid: string;\n children: React.ReactNode;\n}\n\nexport const DauthProvider: React.FC<DauthProviderProps> = (\n props: DauthProviderProps\n) => {\n const { domainName, sid, children } = props;\n const [ds, dispatch] = useReducer(userReducer, initialDauthState);\n const dauthState = ds as IDauthState;\n\n // Refresh access token\n // useEffect(() => {\n // const token_ls = localStorage.getItem(DAUTH_STATE);\n // if (!token_ls) return;\n // action.refreshTokenAction({ dispatch, domainName, token: token_ls });\n // }, [domainName]);\n\n // useEffect(() => {\n // const token_ls = localStorage.getItem(DAUTH_STATE);\n // let interval = setInterval(() => {\n // if (!token_ls) return;\n // action.checkTokenAction({ dispatch, domainName, token: token_ls });\n // }, 6000);\n // // }, 1000 * 60 * 5);\n // return () => clearInterval(interval);\n // }, [domainName]);\n\n // Catch login redirect\n useEffect(() => {\n const queryString = window.location.search;\n if (!queryString) return;\n const urlParams = new URLSearchParams(queryString);\n const dauth_state = urlParams.get(DAUTH_STATE);\n if (dauth_state && !dauthState.isAuthenticated) {\n action.setDauthStateAction({ dispatch, dauth_state, domainName });\n }\n }, [dauthState.isAuthenticated, domainName]);\n\n // Auto Login\n useEffect(() => {\n const dauth_state_ls = localStorage.getItem(DAUTH_STATE);\n if (dauth_state_ls && !dauthState.isAuthenticated) {\n action.setAutoLoginAction({ dispatch, dauth_state_ls, domainName });\n }\n }, [dauthState.isAuthenticated, domainName]);\n\n const loginWithRedirect = useCallback(() => {\n return window.location.replace(\n `${getClientBasePath({ domainName })}/t-sign/${sid}`\n );\n }, [domainName, sid]);\n\n const logout = useCallback(() => {\n return action.setLogoutAction({ dispatch });\n }, []);\n\n const getAccessToken = useCallback(() => {\n const token_ls = localStorage.getItem(DAUTH_STATE);\n return token_ls ?? 'token-not-found';\n }, []);\n\n const updateUser = useCallback(\n ({\n name,\n lastname,\n nickname,\n tel_prefix,\n tel_suffix,\n language,\n avatar,\n }: Partial<IDauthUser>) => {\n const token_ls = localStorage.getItem(DAUTH_STATE);\n const user = {\n name,\n lastname,\n nickname,\n tel_prefix,\n tel_suffix,\n language,\n avatar,\n } as Partial<IDauthUser>;\n return action.setUpdateUserAction({\n dispatch,\n domainName,\n user,\n token: token_ls,\n });\n },\n [domainName]\n );\n\n const updateUserWithRedirect = useCallback(() => {\n const token_ls = localStorage.getItem(DAUTH_STATE);\n if (!token_ls) return;\n return window.location.replace(\n `${getClientBasePath({ domainName })}/t-update-user/${sid}/${token_ls}`\n );\n }, [domainName, sid]);\n\n const sendEmailVerification = useCallback(() => {\n const token_ls = localStorage.getItem(DAUTH_STATE);\n if (!token_ls) return;\n return action.sendEmailVerificationAction({\n dispatch,\n domainName,\n token: token_ls,\n });\n }, [domainName]);\n\n const memoProvider = useMemo(\n () => ({\n ...dauthState,\n loginWithRedirect,\n logout,\n getAccessToken: () => getAccessToken() || '',\n updateUser,\n updateUserWithRedirect,\n sendEmailVerification,\n }),\n [\n dauthState,\n loginWithRedirect,\n logout,\n getAccessToken,\n updateUser,\n updateUserWithRedirect,\n sendEmailVerification,\n ]\n );\n\n return (\n <DauthContext.Provider value={memoProvider}>\n {children}\n </DauthContext.Provider>\n );\n};\n\nconst DauthContext = createContext(initialDauthState);\n\nexport const useDauth = () => {\n const context = useContext(DauthContext);\n if (!context) {\n throw new Error('useDauth must be used inside DauthProvider');\n }\n return context;\n};\n"],"names":["initialDauthState","user","language","window","document","documentElement","getAttribute","domain","isLoading","isAuthenticated","loginWithRedirect","logout","getAccessToken","updateUser","updateUserWithRedirect","sev","status","type","message","sendEmailVerification","LOGIN","SET_IS_LOADING","UPDATE_USER","SET_SEND_EMAIL_VERIFICATION_IS_LOADING","SET_SEND_EMAIL_VERIFICATION_STATUS","userReducer","state","action","payload","DauthTypes","_extends","isLocalhost","Boolean","location","hostname","match","apiVersion","serverDomain","getServerBasePath","_ref","domainName","serverPort","serverLocalUrl","protocol","serverProdUrl","serverBasePath","getClientBasePath","_ref2","clientPort","clientLocalUrl","clientProdUrl","clientBasePath","getUserAPI","_asyncToGenerator","_regeneratorRuntime","mark","_callee","token","params","response","data","wrap","_callee$","_context","prev","next","method","headers","Authorization","fetch","sent","json","abrupt","stop","_x","_x2","apply","arguments","updateUserAPI","_callee2","_callee2$","_context2","body","JSON","stringify","_x3","_x4","_x5","sendEmailVerificationAPI","_ref3","_callee3","_callee3$","_context3","_x6","_x7","refreshAccessTokenAPI","_ref4","_callee4","_callee4$","_context4","_x8","_x9","DAUTH_STATE","setDauthStateAction","_setDauthStateAction","dispatch","dauth_state","getUserFetch","history","replaceState","title","loginRedirect","localStorage","setItem","removeItem","t0","console","log","finish","setAutoLoginAction","_setAutoLoginAction","dauth_state_ls","refreshAccessTokenFetch","accessToken","setLogoutAction","_setLogoutAction","setUpdateUserAction","_setUpdateUserAction","setAttribute","sendEmailVerificationAction","_sendEmailVerificationAction","_callee5","_ref5","sendEmailFetch","_callee5$","_context5","DauthProvider","props","sid","children","_useReducer","useReducer","ds","dauthState","useEffect","queryString","search","urlParams","URLSearchParams","get","getItem","useCallback","replace","token_ls","name","lastname","nickname","tel_prefix","tel_suffix","avatar","memoProvider","useMemo","React","DauthContext","Provider","value","createContext","useDauth","context","useContext","Error"],"mappings":"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"}
1
+ {"version":3,"file":"dauth-context-react.esm.js","sources":["../src/initialDauthState.ts","../src/reducer/dauth.types.ts","../src/reducer/dauth.reducer.ts","../src/api/utils/config.ts","../src/api/dauth.api.ts","../src/constants.ts","../src/reducer/dauth.actions.ts","../src/index.tsx"],"sourcesContent":["export interface IDauthUser {\n _id: string;\n dauthLicense?: string;\n sid: string;\n name: string;\n lastname: string;\n nickname: string;\n email: string;\n is_verified: boolean;\n language: string;\n avatar: {\n id: string;\n url: string;\n };\n role: string;\n tel_prefix: string;\n tel_suffix: string;\n createdAt: Date;\n updatedAt: Date;\n last_login: Date;\n}\n\nexport interface IDauthDomainState {\n name: string;\n loginRedirect: string;\n allowedOrigins: string[];\n}\n\nexport interface IDauthState {\n user: IDauthUser;\n domain: IDauthDomainState;\n isLoading: boolean;\n isAuthenticated: boolean;\n loginWithRedirect: () => void;\n logout: () => void;\n getAccessToken: () => string;\n updateUser: ({\n name,\n lastname,\n nickname,\n tel_prefix,\n tel_suffix,\n language,\n avatar,\n }: Partial<IDauthUser>) => void;\n updateUserWithRedirect: () => void;\n // Send email verification\n sev: {\n status: IActionStatus;\n isLoading: boolean;\n };\n sendEmailVerification: () => void;\n}\n\nexport interface IActionStatus {\n type: TStatusTypes;\n message: string;\n}\nexport type TStatusTypes = 'success' | 'error' | 'info' | 'warning';\n\nconst initialDauthState: IDauthState = {\n user: {\n language: window.document.documentElement.getAttribute('lang') || 'es',\n } as IDauthUser,\n domain: {} as IDauthDomainState,\n isLoading: false,\n isAuthenticated: false,\n loginWithRedirect: () => {},\n logout: () => {},\n getAccessToken: () => initialDauthState.getAccessToken() || '',\n updateUser: () => {},\n updateUserWithRedirect: () => {},\n // Send email verification\n sev: {\n status: {\n type: 'info',\n message: 'Sending email verification...',\n } as IActionStatus,\n isLoading: false,\n },\n sendEmailVerification: () => {},\n};\n\nexport default initialDauthState;\n","export const LOGIN = 'LOGIN';\nexport const SET_IS_LOADING = 'SET_IS_LOADING';\nexport const UPDATE_USER = 'UPDATE_USER';\nexport const SET_SEND_EMAIL_VERIFICATION_IS_LOADING =\n 'SET_SEND_EMAIL_VERIFICATION_IS_LOADING';\nexport const SET_SEND_EMAIL_VERIFICATION_STATUS =\n 'SET_SEND_EMAIL_VERIFICATION_STATUS';\n","import * as DauthTypes from './dauth.types';\n\nexport default function userReducer(state: any, action: any) {\n const { type, payload } = action;\n\n switch (type) {\n case DauthTypes.LOGIN:\n return {\n ...state,\n user: payload.user,\n domain: payload.domain,\n isAuthenticated: payload.isAuthenticated,\n };\n\n case DauthTypes.SET_IS_LOADING:\n return {\n ...state,\n isLoading: payload.isLoading,\n };\n\n case DauthTypes.UPDATE_USER:\n return {\n ...state,\n user: {\n ...state.user,\n ...payload,\n },\n };\n\n case DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS:\n return {\n ...state,\n sev: {\n ...state.sev,\n status: {\n type: payload.type,\n message: payload.message,\n },\n },\n };\n\n case DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING:\n return {\n ...state,\n sev: {\n ...state.sev,\n isLoading: payload,\n },\n };\n\n default:\n return state;\n }\n}\n","const isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n window.location.hostname === '[::1]' ||\n window.location.hostname.match(\n /(192)\\.(168)\\.(1)\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/gm\n ) ||\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\nexport const apiVersion = 'v1';\nexport const serverDomain = 'dauth.ovh';\n\nexport function getServerBasePath({ domainName }: { domainName: string }) {\n const serverPort = 4012;\n const serverLocalUrl = `${window.location.protocol}//${window.location.hostname}:${serverPort}/api/${apiVersion}`;\n const serverProdUrl = `https://${domainName}.${serverDomain}/api/${apiVersion}`;\n const serverBasePath = isLocalhost ? serverLocalUrl : serverProdUrl;\n return serverBasePath;\n}\n\nexport function getClientBasePath({ domainName }: { domainName: string }) {\n const clientPort = 5185;\n const clientLocalUrl = `${window.location.protocol}//${window.location.hostname}:${clientPort}`;\n const clientProdUrl = `https://${domainName}.${serverDomain}`;\n const clientBasePath = isLocalhost ? clientLocalUrl : clientProdUrl;\n return clientBasePath;\n}\n","import { IDauthUser } from '../initialDauthState';\nimport { getServerBasePath } from './utils/config';\n\nexport const getUserAPI = async (\n domainName: string,\n token: string\n): Promise<any> => {\n const params = {\n method: 'GET',\n headers: {\n Authorization: `${token}`,\n 'Content-Type': 'application/json',\n },\n };\n const response = await fetch(\n `${getServerBasePath({ domainName })}/t-get-user/${domainName}`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n\nexport const updateUserAPI = async (\n domainName: string,\n user: Partial<IDauthUser>,\n token: string\n): Promise<any> => {\n const params = {\n method: 'PATCH',\n headers: {\n Authorization: `${token}`,\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(user),\n };\n const response = await fetch(\n `${getServerBasePath({ domainName })}/t-update-user/${domainName}`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n\nexport const sendEmailVerificationAPI = async (\n domainName: string,\n token: string\n): Promise<any> => {\n const params = {\n method: 'GET',\n headers: {\n Authorization: token,\n 'Content-Type': 'application/json',\n },\n };\n const response = await fetch(\n `${getServerBasePath({\n domainName,\n })}/t-resend-email-verification/${domainName}`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n\nexport const refreshAccessTokenAPI = async (\n domainName: string,\n token: string\n): Promise<any> => {\n const params = {\n method: 'GET',\n headers: {\n Authorization: token,\n 'Content-Type': 'application/json',\n },\n };\n const response = await fetch(\n `${getServerBasePath({\n domainName,\n })}/t-refresh-access-token/${domainName}`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n","export const DAUTH_STATE = 'dauth_state';\n","import {\n getUserAPI,\n refreshAccessTokenAPI,\n sendEmailVerificationAPI,\n updateUserAPI,\n} from '../api/dauth.api';\nimport { DAUTH_STATE } from '../constants';\nimport { IDauthDomainState, IDauthUser } from '../initialDauthState';\nimport * as DauthTypes from './dauth.types';\n\ntype TSetDauthStateAction = {\n dispatch: any;\n dauth_state: string;\n domainName: string;\n};\nexport async function setDauthStateAction({\n dispatch,\n dauth_state,\n domainName,\n}: TSetDauthStateAction) {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: true } });\n try {\n const getUserFetch = await getUserAPI(domainName, dauth_state);\n if (getUserFetch.response.status === 200) {\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: getUserFetch.data.user,\n domain: getUserFetch.data.domain,\n isAuthenticated: true,\n },\n });\n window.history.replaceState(\n {},\n document.title,\n getUserFetch.data.domain.loginRedirect\n );\n return localStorage.setItem(DAUTH_STATE, dauth_state);\n } else {\n return localStorage.removeItem(DAUTH_STATE);\n }\n } catch (error) {\n localStorage.removeItem(DAUTH_STATE);\n console.log(error);\n } finally {\n dispatch({\n type: DauthTypes.SET_IS_LOADING,\n payload: { isLoading: false },\n });\n }\n}\n\ntype TSetAutoLoginAction = {\n dispatch: any;\n dauth_state_ls: string;\n domainName: string;\n};\nexport async function setAutoLoginAction({\n dispatch,\n dauth_state_ls,\n domainName,\n}: TSetAutoLoginAction) {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: true } });\n try {\n const refreshAccessTokenFetch = await refreshAccessTokenAPI(\n domainName,\n dauth_state_ls\n );\n if (refreshAccessTokenFetch.response.status === 200) {\n const getUserFetch = await getUserAPI(domainName, dauth_state_ls);\n if (getUserFetch.response.status === 200) {\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: getUserFetch.data.user,\n domain: getUserFetch.data.domain,\n isAuthenticated: true,\n },\n });\n localStorage.setItem(\n DAUTH_STATE,\n refreshAccessTokenFetch.data.accessToken\n );\n return;\n } else {\n resetUser({ dispatch });\n // dispatch({\n // type: DauthTypes.LOGIN,\n // payload: {\n // user: {} as IDauthUser,\n // domain: {} as IDauthDomainState,\n // isAuthenticated: false,\n // },\n // });\n // localStorage.removeItem(DAUTH_STATE);\n }\n } else {\n resetUser({ dispatch });\n // dispatch({\n // type: DauthTypes.LOGIN,\n // payload: {\n // user: {} as IDauthUser,\n // domain: {} as IDauthDomainState,\n // isAuthenticated: false,\n // },\n // });\n // localStorage.removeItem(DAUTH_STATE);\n }\n } catch (error) {\n resetUser({ dispatch });\n // localStorage.removeItem(DAUTH_STATE);\n console.log(error);\n } finally {\n dispatch({\n type: DauthTypes.SET_IS_LOADING,\n payload: { isLoading: false },\n });\n }\n}\n\nexport async function setLogoutAction({ dispatch }: { dispatch: any }) {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: true } });\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: {\n language: window.document.documentElement.getAttribute('lang') || 'es',\n },\n domain: {},\n isAuthenticated: false,\n },\n });\n localStorage.removeItem(DAUTH_STATE);\n return dispatch({\n type: DauthTypes.SET_IS_LOADING,\n payload: { isLoading: false },\n });\n}\n\ntype TSetUpdateAction = {\n dispatch: any;\n domainName: string;\n user: Partial<IDauthUser>;\n token: string | null;\n};\nexport async function setUpdateUserAction({\n dispatch,\n domainName,\n user,\n token,\n}: TSetUpdateAction) {\n if (user.language) {\n window.document.documentElement.setAttribute('lang', user.language);\n }\n if (!token) {\n return dispatch({\n type: DauthTypes.UPDATE_USER,\n payload: user,\n });\n }\n try {\n const getUserFetch = await updateUserAPI(domainName, user, token);\n if (getUserFetch.response.status === 200) {\n return dispatch({\n type: DauthTypes.UPDATE_USER,\n payload: getUserFetch.data.user,\n });\n } else {\n console.log('Update user error');\n return;\n }\n } catch (error) {\n console.log('Update user error', error);\n }\n}\n\ntype TSetSendEmailVerificationAction = {\n dispatch: any;\n domainName: string;\n token: string;\n};\nexport async function sendEmailVerificationAction({\n dispatch,\n domainName,\n token,\n}: TSetSendEmailVerificationAction) {\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: true,\n });\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS,\n payload: { type: 'info', message: 'Sending email verification...' },\n });\n try {\n const sendEmailFetch = await sendEmailVerificationAPI(domainName, token);\n if (sendEmailFetch.response.status === 200) {\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS,\n payload: { type: 'success', message: sendEmailFetch.data.message },\n });\n return dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: false,\n });\n } else {\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS,\n payload: { type: 'error', message: sendEmailFetch.data.message },\n });\n return dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: false,\n });\n }\n } catch (error) {\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS,\n payload: {\n type: 'error',\n message: 'Send email verification fetch error',\n },\n });\n return dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: false,\n });\n }\n}\n\n// export async function refreshTokenAction({\n// dispatch,\n// domainName,\n// token,\n// }: {\n// dispatch: any;\n// domainName: string;\n// token: string;\n// }) {\n// try {\n// const refreshAccessTokenFetch = await refreshAccessTokenAPI(\n// domainName,\n// token\n// );\n// if (refreshAccessTokenFetch.response.status === 200) {\n// console.log(refreshAccessTokenFetch.data.accessToken);\n// localStorage.removeItem(DAUTH_STATE);\n// localStorage.setItem(\n// DAUTH_STATE,\n// refreshAccessTokenFetch.data.accessToken\n// );\n// return;\n// } else {\n// dispatch({\n// type: DauthTypes.LOGIN,\n// payload: {\n// user: {} as IDauthUser,\n// domain: {} as IDauthDomainState,\n// isAuthenticated: false,\n// },\n// });\n// localStorage.removeItem(DAUTH_STATE);\n// return;\n// }\n// } catch (error) {\n// dispatch({\n// type: DauthTypes.LOGIN,\n// payload: {\n// user: {} as IDauthUser,\n// domain: {} as IDauthDomainState,\n// isAuthenticated: false,\n// },\n// });\n// localStorage.removeItem(DAUTH_STATE);\n// console.log(error);\n// }\n// }\n\nexport async function checkTokenAction({\n dispatch,\n domainName,\n token,\n}: {\n dispatch: any;\n domainName: string;\n token: string;\n}) {\n try {\n const refreshAccessTokenFetch = await refreshAccessTokenAPI(\n domainName,\n token\n );\n if (refreshAccessTokenFetch.response.status === 200) {\n return;\n } else {\n return resetUser(dispatch);\n // dispatch({\n // type: DauthTypes.LOGIN,\n // payload: {\n // user: {} as IDauthUser,\n // domain: {} as IDauthDomainState,\n // isAuthenticated: false,\n // },\n // });\n // localStorage.removeItem(DAUTH_STATE);\n }\n } catch (error) {\n resetUser(dispatch);\n // dispatch({\n // type: DauthTypes.LOGIN,\n // payload: {\n // user: {} as IDauthUser,\n // domain: {} as IDauthDomainState,\n // isAuthenticated: false,\n // },\n // });\n // localStorage.removeItem(DAUTH_STATE);\n throw error;\n }\n}\n\n///////////////////////////////////////////\n//////////////////////////////////////////\nconst resetUser = (dispatch: any) => {\n localStorage.removeItem(DAUTH_STATE);\n return dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: {} as IDauthUser,\n domain: {} as IDauthDomainState,\n isAuthenticated: false,\n },\n });\n};\n","import React, {\n useReducer,\n useMemo,\n useEffect,\n useCallback,\n createContext,\n useContext,\n} from 'react';\nimport initialDauthState, {\n IDauthState,\n IDauthUser,\n} from './initialDauthState';\nimport userReducer from './reducer/dauth.reducer';\nimport * as action from './reducer/dauth.actions';\nimport { getClientBasePath } from './api/utils/config';\nimport { DAUTH_STATE } from './constants';\n\ninterface DauthProviderProps {\n domainName: string;\n sid: string;\n children: React.ReactNode;\n}\n\nexport const DauthProvider: React.FC<DauthProviderProps> = (\n props: DauthProviderProps\n) => {\n const { domainName, sid, children } = props;\n const [ds, dispatch] = useReducer(userReducer, initialDauthState);\n const dauthState = ds as IDauthState;\n\n // Refresh access token\n // useEffect(() => {\n // const token_ls = localStorage.getItem(DAUTH_STATE);\n // if (!token_ls) return;\n // action.refreshTokenAction({ dispatch, domainName, token: token_ls });\n // }, [domainName]);\n\n useEffect(() => {\n const token_ls = localStorage.getItem(DAUTH_STATE);\n let interval = setInterval(() => {\n if (!token_ls) return;\n action.checkTokenAction({ dispatch, domainName, token: token_ls });\n }, 6000);\n // }, 1000 * 60 * 5);\n return () => clearInterval(interval);\n }, [domainName]);\n\n // Catch login redirect\n useEffect(() => {\n const queryString = window.location.search;\n if (!queryString) return;\n const urlParams = new URLSearchParams(queryString);\n const dauth_state = urlParams.get(DAUTH_STATE);\n if (dauth_state && !dauthState.isAuthenticated) {\n action.setDauthStateAction({ dispatch, dauth_state, domainName });\n }\n }, [dauthState.isAuthenticated, domainName]);\n\n // Auto Login\n useEffect(() => {\n const dauth_state_ls = localStorage.getItem(DAUTH_STATE);\n if (dauth_state_ls && !dauthState.isAuthenticated) {\n action.setAutoLoginAction({ dispatch, dauth_state_ls, domainName });\n }\n }, [dauthState.isAuthenticated, domainName]);\n\n const loginWithRedirect = useCallback(() => {\n return window.location.replace(\n `${getClientBasePath({ domainName })}/t-sign/${sid}`\n );\n }, [domainName, sid]);\n\n const logout = useCallback(() => {\n return action.setLogoutAction({ dispatch });\n }, []);\n\n const getAccessToken = useCallback(() => {\n const token_ls = localStorage.getItem(DAUTH_STATE);\n return token_ls ?? 'token-not-found';\n }, []);\n\n const updateUser = useCallback(\n ({\n name,\n lastname,\n nickname,\n tel_prefix,\n tel_suffix,\n language,\n avatar,\n }: Partial<IDauthUser>) => {\n const token_ls = localStorage.getItem(DAUTH_STATE);\n const user = {\n name,\n lastname,\n nickname,\n tel_prefix,\n tel_suffix,\n language,\n avatar,\n } as Partial<IDauthUser>;\n return action.setUpdateUserAction({\n dispatch,\n domainName,\n user,\n token: token_ls,\n });\n },\n [domainName]\n );\n\n const updateUserWithRedirect = useCallback(() => {\n const token_ls = localStorage.getItem(DAUTH_STATE);\n if (!token_ls) return;\n return window.location.replace(\n `${getClientBasePath({ domainName })}/t-update-user/${sid}/${token_ls}`\n );\n }, [domainName, sid]);\n\n const sendEmailVerification = useCallback(() => {\n const token_ls = localStorage.getItem(DAUTH_STATE);\n if (!token_ls) return;\n return action.sendEmailVerificationAction({\n dispatch,\n domainName,\n token: token_ls,\n });\n }, [domainName]);\n\n const memoProvider = useMemo(\n () => ({\n ...dauthState,\n loginWithRedirect,\n logout,\n getAccessToken: () => getAccessToken() || '',\n updateUser,\n updateUserWithRedirect,\n sendEmailVerification,\n }),\n [\n dauthState,\n loginWithRedirect,\n logout,\n getAccessToken,\n updateUser,\n updateUserWithRedirect,\n sendEmailVerification,\n ]\n );\n\n return (\n <DauthContext.Provider value={memoProvider}>\n {children}\n </DauthContext.Provider>\n );\n};\n\nconst DauthContext = createContext(initialDauthState);\n\nexport const useDauth = () => {\n const context = useContext(DauthContext);\n if (!context) {\n throw new Error('useDauth must be used inside DauthProvider');\n }\n return context;\n};\n"],"names":["initialDauthState","user","language","window","document","documentElement","getAttribute","domain","isLoading","isAuthenticated","loginWithRedirect","logout","getAccessToken","updateUser","updateUserWithRedirect","sev","status","type","message","sendEmailVerification","LOGIN","SET_IS_LOADING","UPDATE_USER","SET_SEND_EMAIL_VERIFICATION_IS_LOADING","SET_SEND_EMAIL_VERIFICATION_STATUS","userReducer","state","action","payload","DauthTypes","_extends","isLocalhost","Boolean","location","hostname","match","apiVersion","serverDomain","getServerBasePath","_ref","domainName","serverPort","serverLocalUrl","protocol","serverProdUrl","serverBasePath","getClientBasePath","_ref2","clientPort","clientLocalUrl","clientProdUrl","clientBasePath","getUserAPI","_asyncToGenerator","_regeneratorRuntime","mark","_callee","token","params","response","data","wrap","_callee$","_context","prev","next","method","headers","Authorization","fetch","sent","json","abrupt","stop","_x","_x2","apply","arguments","updateUserAPI","_callee2","_callee2$","_context2","body","JSON","stringify","_x3","_x4","_x5","sendEmailVerificationAPI","_ref3","_callee3","_callee3$","_context3","_x6","_x7","refreshAccessTokenAPI","_ref4","_callee4","_callee4$","_context4","_x8","_x9","DAUTH_STATE","setDauthStateAction","_setDauthStateAction","dispatch","dauth_state","getUserFetch","history","replaceState","title","loginRedirect","localStorage","setItem","removeItem","t0","console","log","finish","setAutoLoginAction","_setAutoLoginAction","dauth_state_ls","refreshAccessTokenFetch","accessToken","resetUser","setLogoutAction","_setLogoutAction","setUpdateUserAction","_setUpdateUserAction","setAttribute","sendEmailVerificationAction","_sendEmailVerificationAction","_callee5","_ref5","sendEmailFetch","_callee5$","_context5","checkTokenAction","_checkTokenAction","_callee6","_ref6","_callee6$","_context6","DauthProvider","props","sid","children","_useReducer","useReducer","ds","dauthState","useEffect","token_ls","getItem","interval","setInterval","clearInterval","queryString","search","urlParams","URLSearchParams","get","useCallback","replace","name","lastname","nickname","tel_prefix","tel_suffix","avatar","memoProvider","useMemo","React","DauthContext","Provider","value","createContext","useDauth","context","useContext","Error"],"mappings":"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"}