dauth-context-react 2.2.0 → 2.4.0
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.
- package/README.md +5 -5
- package/dist/{interfaces.d.ts → index.d.mts} +71 -49
- package/dist/index.d.ts +71 -8
- package/dist/index.js +730 -5
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +715 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +24 -20
- package/src/index.tsx +64 -40
- package/src/interfaces.ts +22 -0
- package/src/reducer/dauth.actions.ts +82 -65
- package/dist/api/dauth.api.d.ts +0 -11
- package/dist/api/interfaces/dauth.api.responses.d.ts +0 -45
- package/dist/api/utils/config.d.ts +0 -4
- package/dist/api/utils/routes.d.ts +0 -4
- package/dist/constants.d.ts +0 -2
- package/dist/dauth-context-react.cjs.development.js +0 -1211
- package/dist/dauth-context-react.cjs.development.js.map +0 -1
- package/dist/dauth-context-react.cjs.production.min.js +0 -2
- package/dist/dauth-context-react.cjs.production.min.js.map +0 -1
- package/dist/dauth-context-react.esm.js +0 -1203
- package/dist/dauth-context-react.esm.js.map +0 -1
- package/dist/initialDauthState.d.ts +0 -3
- package/dist/reducer/dauth.actions.d.ts +0 -46
- package/dist/reducer/dauth.reducer.d.ts +0 -2
- package/dist/reducer/dauth.types.d.ts +0 -5
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dauth-context-react.cjs.development.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/api/utils/routes.ts","../src/index.tsx"],"sourcesContent":["import {\n IActionStatus,\n IDauthDomainState,\n IDauthState,\n IDauthUser,\n} from './interfaces';\n\nconst initialDauthState: IDauthState = {\n user: {\n language:\n (typeof window !== 'undefined'\n ? window.document.documentElement.getAttribute('lang')\n : null) || 'es',\n } as IDauthUser,\n domain: {} as IDauthDomainState,\n isLoading: true,\n isAuthenticated: false,\n loginWithRedirect: () => {},\n logout: () => {},\n getAccessToken: () => Promise.resolve(''),\n updateUser: () => Promise.resolve(false),\n updateUserWithRedirect: () => {},\n // Send email verification\n sendEmailVerificationStatus: {\n status: {\n type: 'info',\n message: 'Sending email verification...',\n } as IActionStatus,\n isLoading: false,\n },\n sendEmailVerification: () => Promise.resolve(false),\n deleteAccount: () => Promise.resolve(false),\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 { IDauthState } from '../interfaces';\nimport * as DauthTypes from './dauth.types';\n\nexport default function userReducer(state: IDauthState, action: any) {\n const { type, payload } = action;\n\n switch (type) {\n case DauthTypes.LOGIN: {\n const login: IDauthState = {\n ...state,\n user: payload.user,\n domain: payload.domain,\n isAuthenticated: payload.isAuthenticated,\n };\n return login;\n }\n\n case DauthTypes.SET_IS_LOADING: {\n const isLoading: IDauthState = {\n ...state,\n isLoading: payload.isLoading,\n };\n return isLoading;\n }\n\n case DauthTypes.UPDATE_USER: {\n const updateUser: IDauthState = {\n ...state,\n user: {\n ...state.user,\n ...payload,\n },\n };\n return updateUser;\n }\n\n case DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS: {\n const setSendEmailVerificationStatus: IDauthState = {\n ...state,\n sendEmailVerificationStatus: {\n ...state.sendEmailVerificationStatus,\n status: {\n type: payload.type,\n message: payload.message,\n },\n },\n };\n return setSendEmailVerificationStatus;\n }\n\n case DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING: {\n const setSendEmailVerificationIsLoading: IDauthState = {\n ...state,\n sendEmailVerificationStatus: {\n ...state.sendEmailVerificationStatus,\n isLoading: payload,\n },\n };\n return setSendEmailVerificationIsLoading;\n }\n\n default:\n return state;\n }\n}\n","export const apiVersion = 'v1';\nexport const serverDomain = 'dauth.ovh';\n\nfunction checkIsLocalhost(): boolean {\n if (typeof window === 'undefined') return false;\n const hostname = window.location.hostname;\n return Boolean(\n hostname === 'localhost' ||\n hostname === '[::1]' ||\n 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 hostname.match(/^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)\n );\n}\n\nexport function getServerBasePath() {\n const isLocalhost = checkIsLocalhost();\n const serverPort = 4012;\n const serverLocalUrl = `${window.location.protocol}//${window.location.hostname}:${serverPort}/api/${apiVersion}`;\n const serverProdUrl = `https://${serverDomain}/api/${apiVersion}`;\n return isLocalhost ? serverLocalUrl : serverProdUrl;\n}\n\nexport function getClientBasePath() {\n const isLocalhost = checkIsLocalhost();\n const clientPort = 5185;\n const clientLocalUrl = `${window.location.protocol}//${window.location.hostname}:${clientPort}`;\n const clientProdUrl = `https://${serverDomain}`;\n return isLocalhost ? clientLocalUrl : clientProdUrl;\n}\n","import { getServerBasePath } from './utils/config';\nimport { IDauthUser } from '../interfaces';\nimport {\n IdeleteAccountAPIResponse,\n IgetUserAPIResponse,\n IrefreshAccessTokenAPIResponse,\n IrefreshTokenAPIResponse,\n IsendEmailVerificationAPIResponse,\n IupdateUserAPIResponse,\n} from './interfaces/dauth.api.responses';\n\nexport const getUserAPI = async (\n domainName: string,\n token: string\n): Promise<IgetUserAPIResponse> => {\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()}/app/${domainName}/user`,\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<IupdateUserAPIResponse> => {\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()}/app/${domainName}/user`,\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<IsendEmailVerificationAPIResponse> => {\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()}/app/${domainName}/resend-email-verification`,\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<IrefreshAccessTokenAPIResponse> => {\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()}/app/${domainName}/refresh-access-token`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n\nexport const refreshTokenAPI = async (\n domainName: string,\n refreshToken: string\n): Promise<IrefreshTokenAPIResponse> => {\n const params = {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ refreshToken }),\n };\n const response = await fetch(\n `${getServerBasePath()}/app/${domainName}/refresh-token`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n\nexport const deleteAccountAPI = async (\n domainName: string,\n token: string\n): Promise<IdeleteAccountAPIResponse> => {\n const params = {\n method: 'DELETE',\n headers: {\n Authorization: token,\n 'Content-Type': 'application/json',\n },\n };\n const response = await fetch(\n `${getServerBasePath()}/app/${domainName}/user`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n\nexport const logoutAPI = async (\n domainName: string,\n refreshToken: string\n): Promise<{ response: Response }> => {\n const params = {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ refreshToken }),\n };\n const response = await fetch(\n `${getServerBasePath()}/app/${domainName}/logout`,\n params\n );\n return { response };\n};\n","export const TOKEN_LS = 'dauth_state';\nexport const REFRESH_TOKEN_LS = 'dauth_refresh_token';\n","import {\n deleteAccountAPI,\n getUserAPI,\n logoutAPI,\n refreshTokenAPI,\n sendEmailVerificationAPI,\n updateUserAPI,\n} from '../api/dauth.api';\nimport { TOKEN_LS, REFRESH_TOKEN_LS } from '../constants';\nimport { IDauthDomainState, IDauthUser } from '../interfaces';\nimport * as DauthTypes from './dauth.types';\n\ntype TSetDauthStateAction = {\n dispatch: React.Dispatch<any>;\n token: string;\n refreshToken: string;\n domainName: string;\n};\nexport async function setDauthStateAction({\n dispatch,\n token,\n refreshToken,\n domainName,\n}: TSetDauthStateAction) {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: true } });\n try {\n const getUserFetch = await getUserAPI(domainName, token);\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({}, document.title, window.location.pathname);\n localStorage.setItem(TOKEN_LS, token);\n localStorage.setItem(REFRESH_TOKEN_LS, refreshToken);\n return;\n } else {\n return resetUser(dispatch);\n }\n } catch (error) {\n console.error(error);\n return resetUser(dispatch);\n } finally {\n dispatch({\n type: DauthTypes.SET_IS_LOADING,\n payload: { isLoading: false },\n });\n }\n}\n\ntype TSetAutoLoginAction = {\n dispatch: React.Dispatch<any>;\n domainName: string;\n};\nexport async function setAutoLoginAction({\n dispatch,\n domainName,\n}: TSetAutoLoginAction) {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: true } });\n const storedRefreshToken = localStorage.getItem(REFRESH_TOKEN_LS);\n if (!storedRefreshToken) {\n dispatch({\n type: DauthTypes.SET_IS_LOADING,\n payload: { isLoading: false },\n });\n return resetUser(dispatch);\n }\n try {\n const refreshResult = await refreshTokenAPI(domainName, storedRefreshToken);\n if (refreshResult.response.status === 200) {\n const newAccessToken = refreshResult.data.accessToken;\n const newRefreshToken = refreshResult.data.refreshToken;\n localStorage.setItem(TOKEN_LS, newAccessToken);\n localStorage.setItem(REFRESH_TOKEN_LS, newRefreshToken);\n const getUserFetch = await getUserAPI(domainName, newAccessToken);\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 return;\n }\n }\n // Refresh failed — session expired\n resetUser(dispatch);\n } catch (error) {\n console.error(error);\n resetUser(dispatch);\n } finally {\n dispatch({\n type: DauthTypes.SET_IS_LOADING,\n payload: { isLoading: false },\n });\n }\n}\n\nexport async function setLogoutAction({\n dispatch,\n domainName,\n}: {\n dispatch: React.Dispatch<any>;\n domainName: string;\n}) {\n const storedRefreshToken = localStorage.getItem(REFRESH_TOKEN_LS);\n if (storedRefreshToken && domainName) {\n try {\n await logoutAPI(domainName, storedRefreshToken);\n } catch (_) {\n // Best-effort server-side logout\n }\n }\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(TOKEN_LS);\n localStorage.removeItem(REFRESH_TOKEN_LS);\n return dispatch({\n type: DauthTypes.SET_IS_LOADING,\n payload: { isLoading: false },\n });\n}\n\nexport async function refreshSessionAction({\n dispatch,\n domainName,\n}: {\n dispatch: React.Dispatch<any>;\n domainName: string;\n}) {\n const storedRefreshToken = localStorage.getItem(REFRESH_TOKEN_LS);\n if (!storedRefreshToken) {\n return resetUser(dispatch);\n }\n try {\n const refreshResult = await refreshTokenAPI(domainName, storedRefreshToken);\n if (refreshResult.response.status === 200) {\n localStorage.setItem(TOKEN_LS, refreshResult.data.accessToken);\n localStorage.setItem(REFRESH_TOKEN_LS, refreshResult.data.refreshToken);\n return;\n }\n // Refresh failed — revoked or expired\n resetUser(dispatch);\n } catch (error) {\n console.error(error);\n resetUser(dispatch);\n }\n}\n\ntype TSetUpdateAction = {\n dispatch: React.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 dispatch({\n type: DauthTypes.UPDATE_USER,\n payload: user,\n });\n return false;\n }\n try {\n const getUserFetch = await updateUserAPI(domainName, user, token);\n if (getUserFetch.response.status === 200) {\n dispatch({\n type: DauthTypes.UPDATE_USER,\n payload: getUserFetch.data.user,\n });\n return true;\n } else {\n console.error('Update user error', getUserFetch.data.message);\n return false;\n }\n } catch (error) {\n console.error('Update user error', error);\n return false;\n }\n}\n\ntype TSetSendEmailVerificationAction = {\n dispatch: React.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 dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: false,\n });\n return true;\n } else {\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS,\n payload: { type: 'error', message: sendEmailFetch.data.message },\n });\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: false,\n });\n return false;\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 dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: false,\n });\n return false;\n }\n}\n\nexport async function getAccessTokenAction({\n dispatch,\n domainName,\n}: {\n dispatch: React.Dispatch<any>;\n domainName: string;\n}) {\n const token_ls = localStorage.getItem(TOKEN_LS);\n if (!token_ls) return 'token-not-found';\n // Decode JWT to check expiry (without verification — that's the server's job)\n try {\n const payloadB64 = token_ls.split('.')[1];\n if (payloadB64) {\n const payload = JSON.parse(atob(payloadB64));\n const expiresIn = (payload.exp || 0) * 1000 - Date.now();\n // If token expires in less than 5 minutes, refresh proactively\n if (expiresIn < 5 * 60 * 1000) {\n await refreshSessionAction({ dispatch, domainName });\n const refreshedToken = localStorage.getItem(TOKEN_LS);\n return refreshedToken || 'token-not-found';\n }\n }\n } catch (_) {\n // If decode fails, return stored token and let server validate\n }\n return token_ls;\n}\n\nexport async function deleteAccountAction({\n dispatch,\n domainName,\n token,\n}: {\n dispatch: React.Dispatch<any>;\n domainName: string;\n token: string;\n}) {\n try {\n const result = await deleteAccountAPI(domainName, token);\n if (result.response.status === 200) {\n resetUser(dispatch);\n return true;\n }\n return false;\n } catch (error) {\n console.error('Delete account error', error);\n return false;\n }\n}\n\n///////////////////////////////////////////\n//////////////////////////////////////////\nexport const resetUser = (dispatch: React.Dispatch<any>) => {\n localStorage.removeItem(TOKEN_LS);\n localStorage.removeItem(REFRESH_TOKEN_LS);\n return dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: {} as IDauthUser,\n domain: {} as IDauthDomainState,\n isAuthenticated: false,\n },\n });\n};\n","export const routes = {\n signin: 'signin',\n updateUser: 'update-user',\n};\n","import React, {\n useReducer,\n useMemo,\n useEffect,\n useCallback,\n createContext,\n useContext,\n useRef,\n} from 'react';\nimport initialDauthState from './initialDauthState';\nimport userReducer from './reducer/dauth.reducer';\nimport * as action from './reducer/dauth.actions';\nimport { getClientBasePath } from './api/utils/config';\nimport { TOKEN_LS, REFRESH_TOKEN_LS } from './constants';\nimport { routes } from './api/utils/routes';\nimport { IDauthUser } from './interfaces';\nimport { SET_IS_LOADING } from './reducer/dauth.types';\n\ninterface DauthProviderProps {\n domainName: string;\n children: React.ReactNode;\n}\n\nexport const DauthProvider: React.FC<DauthProviderProps> = (\n props: DauthProviderProps\n) => {\n const { domainName, children } = props;\n const [dauthState, dispatch] = useReducer(userReducer, initialDauthState);\n const refreshTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n // Schedule next proactive refresh based on access token expiry\n const scheduleRefresh = useCallback(() => {\n if (refreshTimerRef.current) clearTimeout(refreshTimerRef.current);\n const token = localStorage.getItem(TOKEN_LS);\n if (!token) return;\n try {\n const payloadB64 = token.split('.')[1];\n if (!payloadB64) return;\n const payload = JSON.parse(atob(payloadB64));\n const expiresIn = (payload.exp || 0) * 1000 - Date.now();\n // Refresh 5 minutes before expiry, minimum 10 seconds\n const refreshIn = Math.max(expiresIn - 5 * 60 * 1000, 10_000);\n refreshTimerRef.current = setTimeout(async () => {\n await action.refreshSessionAction({ dispatch, domainName });\n scheduleRefresh();\n }, refreshIn);\n } catch (_) {\n // If decode fails, retry in 5 minutes\n refreshTimerRef.current = setTimeout(async () => {\n await action.refreshSessionAction({ dispatch, domainName });\n scheduleRefresh();\n }, 5 * 60 * 1000);\n }\n }, [domainName]);\n\n // Catch login redirect\n useEffect(() => {\n (async () => {\n const queryString = window.location.search;\n if (!queryString) return;\n const urlParams = new URLSearchParams(queryString);\n const token_url = urlParams.get(TOKEN_LS);\n const refresh_url = urlParams.get(REFRESH_TOKEN_LS);\n if (token_url && refresh_url && !dauthState.isAuthenticated) {\n return action.setDauthStateAction({\n dispatch,\n token: token_url,\n refreshToken: refresh_url,\n domainName,\n });\n }\n })();\n }, []);\n\n // Auto Login\n useEffect(() => {\n (async () => {\n const refreshToken = localStorage.getItem(REFRESH_TOKEN_LS);\n if (refreshToken && !dauthState.isAuthenticated) {\n return action.setAutoLoginAction({ dispatch, domainName });\n } else {\n return dispatch({\n type: SET_IS_LOADING,\n payload: { isLoading: false },\n });\n }\n })();\n }, []);\n\n // Schedule proactive refresh when authenticated\n useEffect(() => {\n if (dauthState.isAuthenticated) {\n scheduleRefresh();\n }\n return () => {\n if (refreshTimerRef.current) clearTimeout(refreshTimerRef.current);\n };\n }, [dauthState.isAuthenticated, scheduleRefresh]);\n\n const loginWithRedirect = useCallback(() => {\n return window.location.replace(\n `${getClientBasePath()}/${domainName}/${routes.signin}`\n );\n }, [domainName]);\n\n const logout = useCallback(() => {\n if (refreshTimerRef.current) clearTimeout(refreshTimerRef.current);\n return action.setLogoutAction({ dispatch, domainName });\n }, [domainName]);\n\n const getAccessToken = useCallback(async () => {\n const token = await action.getAccessTokenAction({ dispatch, domainName });\n return token as string;\n }, [domainName]);\n\n const updateUser = useCallback(\n async (fields: Partial<IDauthUser>) => {\n const token_ls = localStorage.getItem(TOKEN_LS);\n const {\n name,\n lastname,\n nickname,\n telPrefix,\n telSuffix,\n language,\n avatar,\n birthDate,\n country,\n metadata,\n } = fields;\n const user = {\n name,\n lastname,\n nickname,\n telPrefix,\n telSuffix,\n language,\n avatar,\n birthDate,\n country,\n metadata,\n } as Partial<IDauthUser>;\n return (await action.setUpdateUserAction({\n dispatch,\n domainName,\n user,\n token: token_ls,\n })) as boolean;\n },\n [domainName]\n );\n\n const updateUserWithRedirect = useCallback(() => {\n const token_ls = localStorage.getItem(TOKEN_LS);\n if (!token_ls) return;\n return window.location.replace(\n `${getClientBasePath()}/${domainName}/${routes.updateUser}/${token_ls}`\n );\n }, [domainName]);\n\n const sendEmailVerification = useCallback(async () => {\n const token_ls = localStorage.getItem(TOKEN_LS);\n if (!token_ls) return false;\n return (await action.sendEmailVerificationAction({\n dispatch,\n domainName,\n token: token_ls,\n })) as boolean;\n }, [domainName]);\n\n const deleteAccount = useCallback(async () => {\n const token_ls = localStorage.getItem(TOKEN_LS);\n if (!token_ls) return false;\n if (refreshTimerRef.current) clearTimeout(refreshTimerRef.current);\n return (await action.deleteAccountAction({\n dispatch,\n domainName,\n token: token_ls,\n })) as boolean;\n }, [domainName]);\n\n const memoProvider = useMemo(\n () => ({\n ...dauthState,\n loginWithRedirect,\n logout,\n getAccessToken,\n updateUser,\n updateUserWithRedirect,\n sendEmailVerification,\n deleteAccount,\n }),\n [\n dauthState,\n loginWithRedirect,\n logout,\n getAccessToken,\n updateUser,\n updateUserWithRedirect,\n sendEmailVerification,\n deleteAccount,\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","Promise","resolve","updateUser","updateUserWithRedirect","sendEmailVerificationStatus","status","type","message","sendEmailVerification","deleteAccount","LOGIN","SET_IS_LOADING","UPDATE_USER","SET_SEND_EMAIL_VERIFICATION_IS_LOADING","SET_SEND_EMAIL_VERIFICATION_STATUS","userReducer","state","action","payload","DauthTypes","login","_extends","setSendEmailVerificationStatus","setSendEmailVerificationIsLoading","apiVersion","serverDomain","checkIsLocalhost","hostname","location","Boolean","match","getServerBasePath","isLocalhost","serverPort","serverLocalUrl","protocol","serverProdUrl","getClientBasePath","clientPort","clientLocalUrl","clientProdUrl","getUserAPI","_ref","_asyncToGenerator","_regenerator","m","_callee","domainName","token","params","response","data","w","_context","n","method","headers","Authorization","fetch","v","json","a","_x","_x2","apply","arguments","updateUserAPI","_ref2","_callee2","_context2","body","JSON","stringify","_x3","_x4","_x5","sendEmailVerificationAPI","_ref3","_callee3","_context3","_x6","_x7","refreshTokenAPI","_ref5","_callee5","refreshToken","_context5","_x0","_x1","deleteAccountAPI","_ref6","_callee6","_context6","_x10","_x11","logoutAPI","_ref7","_callee7","_context7","_x12","_x13","TOKEN_LS","REFRESH_TOKEN_LS","setDauthStateAction","_setDauthStateAction","dispatch","getUserFetch","_t","p","history","replaceState","title","pathname","localStorage","setItem","resetUser","console","error","f","setAutoLoginAction","_setAutoLoginAction","storedRefreshToken","refreshResult","newAccessToken","newRefreshToken","_t2","getItem","accessToken","setLogoutAction","_setLogoutAction","removeItem","refreshSessionAction","_refreshSessionAction","_callee4","_ref4","_t4","_context4","setUpdateUserAction","_setUpdateUserAction","_t5","setAttribute","sendEmailVerificationAction","_sendEmailVerificationAction","sendEmailFetch","getAccessTokenAction","_getAccessTokenAction","token_ls","payloadB64","expiresIn","refreshedToken","split","parse","atob","exp","Date","now","deleteAccountAction","_x8","_deleteAccountAction","_callee8","_ref8","result","_t8","_context8","routes","signin","DauthProvider","props","children","_useReducer","useReducer","dauthState","refreshTimerRef","useRef","scheduleRefresh","useCallback","current","clearTimeout","refreshIn","Math","max","setTimeout","_","useEffect","queryString","urlParams","token_url","refresh_url","search","URLSearchParams","get","replace","fields","name","lastname","nickname","telPrefix","telSuffix","avatar","birthDate","country","metadata","memoProvider","useMemo","React","DauthContext","Provider","value","createContext","useDauth","context","useContext","Error"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t=require("react"),n=(e=t)&&"object"==typeof e&&"default"in e?e.default:e;function r(e,t,n,r,a,o,i){try{var u=e[o](i),c=u.value}catch(e){return void n(e)}u.done?t(c):Promise.resolve(c).then(r,a)}function a(e){return function(){var t=this,n=arguments;return new Promise((function(a,o){var i=e.apply(t,n);function u(e){r(i,a,o,u,c,"next",e)}function c(e){r(i,a,o,u,c,"throw",e)}u(void 0)}))}}function o(){return(o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(null,arguments)}function i(){var e,t,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",a=n.toStringTag||"@@toStringTag";function o(n,r,a,o){var i=Object.create((r&&r.prototype instanceof s?r:s).prototype);return u(i,"_invoke",function(n,r,a){var o,i,u,s=0,f=a||[],p=!1,l={p:0,n:0,v:e,a:d,f:d.bind(e,4),d:function(t,n){return o=t,i=0,u=e,l.n=n,c}};function d(n,r){for(i=n,u=r,t=0;!p&&s&&!a&&t<f.length;t++){var a,o=f[t],d=l.p,m=o[2];n>3?(a=m===r)&&(u=o[(i=o[4])?5:(i=3,3)],o[4]=o[5]=e):o[0]<=d&&((a=n<2&&d<o[1])?(i=0,l.v=r,l.n=o[1]):d<m&&(a=n<3||o[0]>r||r>m)&&(o[4]=n,o[5]=r,l.n=m,i=0))}if(a||n>1)return c;throw p=!0,r}return function(a,f,m){if(s>1)throw TypeError("Generator is already running");for(p&&1===f&&d(f,m),i=f,u=m;(t=i<2?e:u)||!p;){o||(i?i<3?(i>1&&(l.n=-1),d(i,u)):l.n=u:l.v=u);try{if(s=2,o){if(i||(a="next"),t=o[a]){if(!(t=t.call(o,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,i<2&&(i=0)}else 1===i&&(t=o.return)&&t.call(o),i<2&&(u=TypeError("The iterator does not provide a '"+a+"' method"),i=1);o=e}else if((t=(p=l.n<0)?u:n.call(r,l))!==c)break}catch(t){o=e,i=1,u=t}finally{s=1}}return{value:t,done:p}}}(n,a,o),!0),i}var c={};function s(){}function f(){}function p(){}t=Object.getPrototypeOf;var l=[][r]?t(t([][r]())):(u(t={},r,(function(){return this})),t),d=p.prototype=s.prototype=Object.create(l);function m(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,p):(e.__proto__=p,u(e,a,"GeneratorFunction")),e.prototype=Object.create(d),e}return f.prototype=p,u(d,"constructor",p),u(p,"constructor",f),f.displayName="GeneratorFunction",u(p,a,"GeneratorFunction"),u(d),u(d,a,"Generator"),u(d,r,(function(){return this})),u(d,"toString",(function(){return"[object Generator]"})),(i=function(){return{w:o,m:m}})()}function u(e,t,n,r){var a=Object.defineProperty;try{a({},"",{})}catch(e){a=0}(u=function(e,t,n,r){function o(t,n){u(e,t,(function(e){return this._invoke(t,n,e)}))}t?a?a(e,t,{value:n,enumerable:!r,configurable:!r,writable:!r}):e[t]=n:(o("next",0),o("throw",1),o("return",2))})(e,t,n,r)}var c={user:{language:("undefined"!=typeof window?window.document.documentElement.getAttribute("lang"):null)||"es"},domain:{},isLoading:!0,isAuthenticated:!1,loginWithRedirect:function(){},logout:function(){},getAccessToken:function(){return Promise.resolve("")},updateUser:function(){return Promise.resolve(!1)},updateUserWithRedirect:function(){},sendEmailVerificationStatus:{status:{type:"info",message:"Sending email verification..."},isLoading:!1},sendEmailVerification:function(){return Promise.resolve(!1)},deleteAccount:function(){return Promise.resolve(!1)}},s="LOGIN";function f(e,t){var n=t.payload;switch(t.type){case s:return o({},e,{user:n.user,domain:n.domain,isAuthenticated:n.isAuthenticated});case"SET_IS_LOADING":return o({},e,{isLoading:n.isLoading});case"UPDATE_USER":return o({},e,{user:o({},e.user,n)});case"SET_SEND_EMAIL_VERIFICATION_STATUS":return o({},e,{sendEmailVerificationStatus:o({},e.sendEmailVerificationStatus,{status:{type:n.type,message:n.message}})});case"SET_SEND_EMAIL_VERIFICATION_IS_LOADING":return o({},e,{sendEmailVerificationStatus:o({},e.sendEmailVerificationStatus,{isLoading:n})});default:return e}}function p(){if("undefined"==typeof window)return!1;var e=window.location.hostname;return Boolean("localhost"===e||"[::1]"===e||e.match(/(192)\.(168)\.(1)\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/gm)||e.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/))}function l(){var e=p(),t=window.location.protocol+"//"+window.location.hostname+":4012/api/v1";return e?t:"https://dauth.ovh/api/v1"}function d(){var e=p(),t=window.location.protocol+"//"+window.location.hostname+":5185";return e?t:"https://dauth.ovh"}var m=function(){var e=a(i().m((function e(t,n){var r,a;return i().w((function(e){for(;;)switch(e.n){case 0:return r={method:"GET",headers:{Authorization:n,"Content-Type":"application/json"}},e.n=1,fetch(l()+"/app/"+t+"/user",r);case 1:return a=e.v,e.n=2,a.json();case 2:return e.a(2,{response:a,data:e.v})}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),h=function(){var e=a(i().m((function e(t,n,r){var a,o;return i().w((function(e){for(;;)switch(e.n){case 0:return a={method:"PATCH",headers:{Authorization:r,"Content-Type":"application/json"},body:JSON.stringify(n)},e.n=1,fetch(l()+"/app/"+t+"/user",a);case 1:return o=e.v,e.n=2,o.json();case 2:return e.a(2,{response:o,data:e.v})}}),e)})));return function(t,n,r){return e.apply(this,arguments)}}(),y=function(){var e=a(i().m((function e(t,n){var r,a;return i().w((function(e){for(;;)switch(e.n){case 0:return r={method:"GET",headers:{Authorization:n,"Content-Type":"application/json"}},e.n=1,fetch(l()+"/app/"+t+"/resend-email-verification",r);case 1:return a=e.v,e.n=2,a.json();case 2:return e.a(2,{response:a,data:e.v})}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),v=function(){var e=a(i().m((function e(t,n){var r,a;return i().w((function(e){for(;;)switch(e.n){case 0:return r={method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({refreshToken:n})},e.n=1,fetch(l()+"/app/"+t+"/refresh-token",r);case 1:return a=e.v,e.n=2,a.json();case 2:return e.a(2,{response:a,data:e.v})}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),S=function(){var e=a(i().m((function e(t,n){var r,a;return i().w((function(e){for(;;)switch(e.n){case 0:return r={method:"DELETE",headers:{Authorization:n,"Content-Type":"application/json"}},e.n=1,fetch(l()+"/app/"+t+"/user",r);case 1:return a=e.v,e.n=2,a.json();case 2:return e.a(2,{response:a,data:e.v})}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),g=function(){var e=a(i().m((function e(t,n){var r;return i().w((function(e){for(;;)switch(e.n){case 0:return r={method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({refreshToken:n})},e.n=1,fetch(l()+"/app/"+t+"/logout",r);case 1:return e.a(2,{response:e.v})}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),I="dauth_state",w="dauth_refresh_token";function E(e){return _.apply(this,arguments)}function _(){return(_=a(i().m((function e(t){var n,r,a,o,u;return i().w((function(e){for(;;)switch(e.p=e.n){case 0:return r=t.token,a=t.refreshToken,o=t.domainName,(n=t.dispatch)({type:"SET_IS_LOADING",payload:{isLoading:!0}}),e.p=1,e.n=2,m(o,r);case 2:if(200!==(u=e.v).response.status){e.n=3;break}return n({type:s,payload:{user:u.data.user,domain:u.data.domain,isAuthenticated:!0}}),window.history.replaceState({},document.title,window.location.pathname),localStorage.setItem(I,r),localStorage.setItem(w,a),e.a(2);case 3:return e.a(2,U(n));case 4:e.n=6;break;case 5:return e.p=5,console.error(e.v),e.a(2,U(n));case 6:return e.p=6,n({type:"SET_IS_LOADING",payload:{isLoading:!1}}),e.f(6);case 7:return e.a(2)}}),e,null,[[1,5,6,7]])})))).apply(this,arguments)}function T(e){return b.apply(this,arguments)}function b(){return(b=a(i().m((function e(t){var n,r,a,o,u,c,f;return i().w((function(e){for(;;)switch(e.p=e.n){case 0:if(r=t.domainName,(n=t.dispatch)({type:"SET_IS_LOADING",payload:{isLoading:!0}}),a=localStorage.getItem(w)){e.n=1;break}return n({type:"SET_IS_LOADING",payload:{isLoading:!1}}),e.a(2,U(n));case 1:return e.p=1,e.n=2,v(r,a);case 2:if(200!==(o=e.v).response.status){e.n=4;break}return u=o.data.accessToken,c=o.data.refreshToken,localStorage.setItem(I,u),localStorage.setItem(w,c),e.n=3,m(r,u);case 3:if(200!==(f=e.v).response.status){e.n=4;break}return n({type:s,payload:{user:f.data.user,domain:f.data.domain,isAuthenticated:!0}}),e.a(2);case 4:U(n),e.n=6;break;case 5:e.p=5,console.error(e.v),U(n);case 6:return e.p=6,n({type:"SET_IS_LOADING",payload:{isLoading:!1}}),e.f(6);case 7:return e.a(2)}}),e,null,[[1,5,6,7]])})))).apply(this,arguments)}function A(){return(A=a(i().m((function e(t){var n,r,a;return i().w((function(e){for(;;)switch(e.p=e.n){case 0:if(n=t.dispatch,r=t.domainName,!(a=localStorage.getItem(w))||!r){e.n=4;break}return e.p=1,e.n=2,g(r,a);case 2:e.n=4;break;case 3:e.p=3;case 4:return n({type:"SET_IS_LOADING",payload:{isLoading:!0}}),n({type:s,payload:{user:{language:window.document.documentElement.getAttribute("lang")||"es"},domain:{},isAuthenticated:!1}}),localStorage.removeItem(I),localStorage.removeItem(w),e.a(2,n({type:"SET_IS_LOADING",payload:{isLoading:!1}}))}}),e,null,[[1,3]])})))).apply(this,arguments)}function k(e){return N.apply(this,arguments)}function N(){return(N=a(i().m((function e(t){var n,r,a,o;return i().w((function(e){for(;;)switch(e.p=e.n){case 0:if(n=t.dispatch,r=t.domainName,a=localStorage.getItem(w)){e.n=1;break}return e.a(2,U(n));case 1:return e.p=1,e.n=2,v(r,a);case 2:if(200!==(o=e.v).response.status){e.n=3;break}return localStorage.setItem(I,o.data.accessToken),localStorage.setItem(w,o.data.refreshToken),e.a(2);case 3:U(n),e.n=5;break;case 4:e.p=4,console.error(e.v),U(n);case 5:return e.a(2)}}),e,null,[[1,4]])})))).apply(this,arguments)}function O(e){return L.apply(this,arguments)}function L(){return(L=a(i().m((function e(t){var n,r,a,o,u;return i().w((function(e){for(;;)switch(e.p=e.n){case 0:if(n=t.dispatch,r=t.domainName,o=t.token,(a=t.user).language&&window.document.documentElement.setAttribute("lang",a.language),o){e.n=1;break}return n({type:"UPDATE_USER",payload:a}),e.a(2,!1);case 1:return e.p=1,e.n=2,h(r,a,o);case 2:if(200!==(u=e.v).response.status){e.n=3;break}return n({type:"UPDATE_USER",payload:u.data.user}),e.a(2,!0);case 3:return console.error("Update user error",u.data.message),e.a(2,!1);case 4:e.n=6;break;case 5:return e.p=5,console.error("Update user error",e.v),e.a(2,!1);case 6:return e.a(2)}}),e,null,[[1,5]])})))).apply(this,arguments)}function D(e){return C.apply(this,arguments)}function C(){return(C=a(i().m((function e(t){var n,r,a,o;return i().w((function(e){for(;;)switch(e.p=e.n){case 0:return r=t.domainName,a=t.token,(n=t.dispatch)({type:"SET_SEND_EMAIL_VERIFICATION_IS_LOADING",payload:!0}),n({type:"SET_SEND_EMAIL_VERIFICATION_STATUS",payload:{type:"info",message:"Sending email verification..."}}),e.p=1,e.n=2,y(r,a);case 2:if(200!==(o=e.v).response.status){e.n=3;break}return n({type:"SET_SEND_EMAIL_VERIFICATION_STATUS",payload:{type:"success",message:o.data.message}}),n({type:"SET_SEND_EMAIL_VERIFICATION_IS_LOADING",payload:!1}),e.a(2,!0);case 3:return n({type:"SET_SEND_EMAIL_VERIFICATION_STATUS",payload:{type:"error",message:o.data.message}}),n({type:"SET_SEND_EMAIL_VERIFICATION_IS_LOADING",payload:!1}),e.a(2,!1);case 4:e.n=6;break;case 5:return e.p=5,n({type:"SET_SEND_EMAIL_VERIFICATION_STATUS",payload:{type:"error",message:"Send email verification fetch error"}}),n({type:"SET_SEND_EMAIL_VERIFICATION_IS_LOADING",payload:!1}),e.a(2,!1);case 6:return e.a(2)}}),e,null,[[1,5]])})))).apply(this,arguments)}function j(e){return P.apply(this,arguments)}function P(){return(P=a(i().m((function e(t){var n,r,a,o,u;return i().w((function(e){for(;;)switch(e.p=e.n){case 0:if(n=t.dispatch,r=t.domainName,a=localStorage.getItem(I)){e.n=1;break}return e.a(2,"token-not-found");case 1:if(e.p=1,!(o=a.split(".")[1])){e.n=3;break}if(!(1e3*(JSON.parse(atob(o)).exp||0)-Date.now()<3e5)){e.n=3;break}return e.n=2,k({dispatch:n,domainName:r});case 2:return u=localStorage.getItem(I),e.a(2,u||"token-not-found");case 3:e.n=5;break;case 4:e.p=4;case 5:return e.a(2,a)}}),e,null,[[1,4]])})))).apply(this,arguments)}function G(e){return R.apply(this,arguments)}function R(){return(R=a(i().m((function e(t){var n,r,a;return i().w((function(e){for(;;)switch(e.p=e.n){case 0:return n=t.dispatch,r=t.domainName,a=t.token,e.p=1,e.n=2,S(r,a);case 2:if(200!==e.v.response.status){e.n=3;break}return U(n),e.a(2,!0);case 3:return e.a(2,!1);case 4:return e.p=4,console.error("Delete account error",e.v),e.a(2,!1)}}),e,null,[[1,4]])})))).apply(this,arguments)}var U=function(e){return localStorage.removeItem(I),localStorage.removeItem(w),e({type:s,payload:{user:{},domain:{},isAuthenticated:!1}})},V=t.createContext(c);exports.DauthProvider=function(e){var r=e.domainName,u=e.children,s=t.useReducer(f,c),p=s[0],l=s[1],m=t.useRef(null),h=t.useCallback((function(){m.current&&clearTimeout(m.current);var e=localStorage.getItem(I);if(e)try{var t=e.split(".")[1];if(!t)return;var n=1e3*(JSON.parse(atob(t)).exp||0)-Date.now(),o=Math.max(n-3e5,1e4);m.current=setTimeout(a(i().m((function e(){return i().w((function(e){for(;;)switch(e.n){case 0:return e.n=1,k({dispatch:l,domainName:r});case 1:h();case 2:return e.a(2)}}),e)}))),o)}catch(e){m.current=setTimeout(a(i().m((function e(){return i().w((function(e){for(;;)switch(e.n){case 0:return e.n=1,k({dispatch:l,domainName:r});case 1:h();case 2:return e.a(2)}}),e)}))),3e5)}}),[r]);t.useEffect((function(){a(i().m((function e(){var t,n,a,o;return i().w((function(e){for(;;)switch(e.n){case 0:if(t=window.location.search){e.n=1;break}return e.a(2);case 1:if(n=new URLSearchParams(t),a=n.get(I),o=n.get(w),!a||!o||p.isAuthenticated){e.n=2;break}return e.a(2,E({dispatch:l,token:a,refreshToken:o,domainName:r}));case 2:return e.a(2)}}),e)})))()}),[]),t.useEffect((function(){a(i().m((function e(){return i().w((function(e){for(;;)switch(e.n){case 0:if(!localStorage.getItem(w)||p.isAuthenticated){e.n=1;break}return e.a(2,T({dispatch:l,domainName:r}));case 1:return e.a(2,l({type:"SET_IS_LOADING",payload:{isLoading:!1}}));case 2:return e.a(2)}}),e)})))()}),[]),t.useEffect((function(){return p.isAuthenticated&&h(),function(){m.current&&clearTimeout(m.current)}}),[p.isAuthenticated,h]);var y=t.useCallback((function(){return window.location.replace(d()+"/"+r+"/signin")}),[r]),v=t.useCallback((function(){return m.current&&clearTimeout(m.current),function(e){return A.apply(this,arguments)}({dispatch:l,domainName:r})}),[r]),S=t.useCallback(a(i().m((function e(){return i().w((function(e){for(;;)switch(e.n){case 0:return e.n=1,j({dispatch:l,domainName:r});case 1:return e.a(2,e.v)}}),e)}))),[r]),g=t.useCallback(function(){var e=a(i().m((function e(t){var n,a;return i().w((function(e){for(;;)switch(e.n){case 0:return n=localStorage.getItem(I),a={name:t.name,lastname:t.lastname,nickname:t.nickname,telPrefix:t.telPrefix,telSuffix:t.telSuffix,language:t.language,avatar:t.avatar,birthDate:t.birthDate,country:t.country,metadata:t.metadata},e.n=1,O({dispatch:l,domainName:r,user:a,token:n});case 1:return e.a(2,e.v)}}),e)})));return function(t){return e.apply(this,arguments)}}(),[r]),_=t.useCallback((function(){var e=localStorage.getItem(I);if(e)return window.location.replace(d()+"/"+r+"/update-user/"+e)}),[r]),b=t.useCallback(a(i().m((function e(){var t;return i().w((function(e){for(;;)switch(e.n){case 0:if(t=localStorage.getItem(I)){e.n=1;break}return e.a(2,!1);case 1:return e.n=2,D({dispatch:l,domainName:r,token:t});case 2:return e.a(2,e.v)}}),e)}))),[r]),N=t.useCallback(a(i().m((function e(){var t;return i().w((function(e){for(;;)switch(e.n){case 0:if(t=localStorage.getItem(I)){e.n=1;break}return e.a(2,!1);case 1:return m.current&&clearTimeout(m.current),e.n=2,G({dispatch:l,domainName:r,token:t});case 2:return e.a(2,e.v)}}),e)}))),[r]),L=t.useMemo((function(){return o({},p,{loginWithRedirect:y,logout:v,getAccessToken:S,updateUser:g,updateUserWithRedirect:_,sendEmailVerification:b,deleteAccount:N})}),[p,y,v,S,g,_,b,N]);return n.createElement(V.Provider,{value:L},u)},exports.useDauth=function(){var e=t.useContext(V);if(!e)throw new Error("useDauth must be used inside DauthProvider");return e};
|
|
2
|
-
//# sourceMappingURL=dauth-context-react.cjs.production.min.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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":["import {\n IActionStatus,\n IDauthDomainState,\n IDauthState,\n IDauthUser,\n} from './interfaces';\n\nconst initialDauthState: IDauthState = {\n user: {\n language:\n (typeof window !== 'undefined'\n ? window.document.documentElement.getAttribute('lang')\n : null) || 'es',\n } as IDauthUser,\n domain: {} as IDauthDomainState,\n isLoading: true,\n isAuthenticated: false,\n loginWithRedirect: () => {},\n logout: () => {},\n getAccessToken: () => Promise.resolve(''),\n updateUser: () => Promise.resolve(false),\n updateUserWithRedirect: () => {},\n // Send email verification\n sendEmailVerificationStatus: {\n status: {\n type: 'info',\n message: 'Sending email verification...',\n } as IActionStatus,\n isLoading: false,\n },\n sendEmailVerification: () => Promise.resolve(false),\n deleteAccount: () => Promise.resolve(false),\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 { IDauthState } from '../interfaces';\nimport * as DauthTypes from './dauth.types';\n\nexport default function userReducer(state: IDauthState, action: any) {\n const { type, payload } = action;\n\n switch (type) {\n case DauthTypes.LOGIN: {\n const login: IDauthState = {\n ...state,\n user: payload.user,\n domain: payload.domain,\n isAuthenticated: payload.isAuthenticated,\n };\n return login;\n }\n\n case DauthTypes.SET_IS_LOADING: {\n const isLoading: IDauthState = {\n ...state,\n isLoading: payload.isLoading,\n };\n return isLoading;\n }\n\n case DauthTypes.UPDATE_USER: {\n const updateUser: IDauthState = {\n ...state,\n user: {\n ...state.user,\n ...payload,\n },\n };\n return updateUser;\n }\n\n case DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS: {\n const setSendEmailVerificationStatus: IDauthState = {\n ...state,\n sendEmailVerificationStatus: {\n ...state.sendEmailVerificationStatus,\n status: {\n type: payload.type,\n message: payload.message,\n },\n },\n };\n return setSendEmailVerificationStatus;\n }\n\n case DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING: {\n const setSendEmailVerificationIsLoading: IDauthState = {\n ...state,\n sendEmailVerificationStatus: {\n ...state.sendEmailVerificationStatus,\n isLoading: payload,\n },\n };\n return setSendEmailVerificationIsLoading;\n }\n\n default:\n return state;\n }\n}\n","export const apiVersion = 'v1';\nexport const serverDomain = 'dauth.ovh';\n\nfunction checkIsLocalhost(): boolean {\n if (typeof window === 'undefined') return false;\n const hostname = window.location.hostname;\n return Boolean(\n hostname === 'localhost' ||\n hostname === '[::1]' ||\n 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 hostname.match(/^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)\n );\n}\n\nexport function getServerBasePath() {\n const isLocalhost = checkIsLocalhost();\n const serverPort = 4012;\n const serverLocalUrl = `${window.location.protocol}//${window.location.hostname}:${serverPort}/api/${apiVersion}`;\n const serverProdUrl = `https://${serverDomain}/api/${apiVersion}`;\n return isLocalhost ? serverLocalUrl : serverProdUrl;\n}\n\nexport function getClientBasePath() {\n const isLocalhost = checkIsLocalhost();\n const clientPort = 5185;\n const clientLocalUrl = `${window.location.protocol}//${window.location.hostname}:${clientPort}`;\n const clientProdUrl = `https://${serverDomain}`;\n return isLocalhost ? clientLocalUrl : clientProdUrl;\n}\n","import { getServerBasePath } from './utils/config';\nimport { IDauthUser } from '../interfaces';\nimport {\n IdeleteAccountAPIResponse,\n IgetUserAPIResponse,\n IrefreshAccessTokenAPIResponse,\n IrefreshTokenAPIResponse,\n IsendEmailVerificationAPIResponse,\n IupdateUserAPIResponse,\n} from './interfaces/dauth.api.responses';\n\nexport const getUserAPI = async (\n domainName: string,\n token: string\n): Promise<IgetUserAPIResponse> => {\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()}/app/${domainName}/user`,\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<IupdateUserAPIResponse> => {\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()}/app/${domainName}/user`,\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<IsendEmailVerificationAPIResponse> => {\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()}/app/${domainName}/resend-email-verification`,\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<IrefreshAccessTokenAPIResponse> => {\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()}/app/${domainName}/refresh-access-token`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n\nexport const refreshTokenAPI = async (\n domainName: string,\n refreshToken: string\n): Promise<IrefreshTokenAPIResponse> => {\n const params = {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ refreshToken }),\n };\n const response = await fetch(\n `${getServerBasePath()}/app/${domainName}/refresh-token`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n\nexport const deleteAccountAPI = async (\n domainName: string,\n token: string\n): Promise<IdeleteAccountAPIResponse> => {\n const params = {\n method: 'DELETE',\n headers: {\n Authorization: token,\n 'Content-Type': 'application/json',\n },\n };\n const response = await fetch(\n `${getServerBasePath()}/app/${domainName}/user`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n\nexport const logoutAPI = async (\n domainName: string,\n refreshToken: string\n): Promise<{ response: Response }> => {\n const params = {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ refreshToken }),\n };\n const response = await fetch(\n `${getServerBasePath()}/app/${domainName}/logout`,\n params\n );\n return { response };\n};\n","export const TOKEN_LS = 'dauth_state';\nexport const REFRESH_TOKEN_LS = 'dauth_refresh_token';\n","import {\n deleteAccountAPI,\n getUserAPI,\n logoutAPI,\n refreshTokenAPI,\n sendEmailVerificationAPI,\n updateUserAPI,\n} from '../api/dauth.api';\nimport { TOKEN_LS, REFRESH_TOKEN_LS } from '../constants';\nimport { IDauthDomainState, IDauthUser } from '../interfaces';\nimport * as DauthTypes from './dauth.types';\n\ntype TSetDauthStateAction = {\n dispatch: React.Dispatch<any>;\n token: string;\n refreshToken: string;\n domainName: string;\n};\nexport async function setDauthStateAction({\n dispatch,\n token,\n refreshToken,\n domainName,\n}: TSetDauthStateAction) {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: true } });\n try {\n const getUserFetch = await getUserAPI(domainName, token);\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({}, document.title, window.location.pathname);\n localStorage.setItem(TOKEN_LS, token);\n localStorage.setItem(REFRESH_TOKEN_LS, refreshToken);\n return;\n } else {\n return resetUser(dispatch);\n }\n } catch (error) {\n console.error(error);\n return resetUser(dispatch);\n } finally {\n dispatch({\n type: DauthTypes.SET_IS_LOADING,\n payload: { isLoading: false },\n });\n }\n}\n\ntype TSetAutoLoginAction = {\n dispatch: React.Dispatch<any>;\n domainName: string;\n};\nexport async function setAutoLoginAction({\n dispatch,\n domainName,\n}: TSetAutoLoginAction) {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: true } });\n const storedRefreshToken = localStorage.getItem(REFRESH_TOKEN_LS);\n if (!storedRefreshToken) {\n dispatch({\n type: DauthTypes.SET_IS_LOADING,\n payload: { isLoading: false },\n });\n return resetUser(dispatch);\n }\n try {\n const refreshResult = await refreshTokenAPI(domainName, storedRefreshToken);\n if (refreshResult.response.status === 200) {\n const newAccessToken = refreshResult.data.accessToken;\n const newRefreshToken = refreshResult.data.refreshToken;\n localStorage.setItem(TOKEN_LS, newAccessToken);\n localStorage.setItem(REFRESH_TOKEN_LS, newRefreshToken);\n const getUserFetch = await getUserAPI(domainName, newAccessToken);\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 return;\n }\n }\n // Refresh failed — session expired\n resetUser(dispatch);\n } catch (error) {\n console.error(error);\n resetUser(dispatch);\n } finally {\n dispatch({\n type: DauthTypes.SET_IS_LOADING,\n payload: { isLoading: false },\n });\n }\n}\n\nexport async function setLogoutAction({\n dispatch,\n domainName,\n}: {\n dispatch: React.Dispatch<any>;\n domainName: string;\n}) {\n const storedRefreshToken = localStorage.getItem(REFRESH_TOKEN_LS);\n if (storedRefreshToken && domainName) {\n try {\n await logoutAPI(domainName, storedRefreshToken);\n } catch (_) {\n // Best-effort server-side logout\n }\n }\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(TOKEN_LS);\n localStorage.removeItem(REFRESH_TOKEN_LS);\n return dispatch({\n type: DauthTypes.SET_IS_LOADING,\n payload: { isLoading: false },\n });\n}\n\nexport async function refreshSessionAction({\n dispatch,\n domainName,\n}: {\n dispatch: React.Dispatch<any>;\n domainName: string;\n}) {\n const storedRefreshToken = localStorage.getItem(REFRESH_TOKEN_LS);\n if (!storedRefreshToken) {\n return resetUser(dispatch);\n }\n try {\n const refreshResult = await refreshTokenAPI(domainName, storedRefreshToken);\n if (refreshResult.response.status === 200) {\n localStorage.setItem(TOKEN_LS, refreshResult.data.accessToken);\n localStorage.setItem(REFRESH_TOKEN_LS, refreshResult.data.refreshToken);\n return;\n }\n // Refresh failed — revoked or expired\n resetUser(dispatch);\n } catch (error) {\n console.error(error);\n resetUser(dispatch);\n }\n}\n\ntype TSetUpdateAction = {\n dispatch: React.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 dispatch({\n type: DauthTypes.UPDATE_USER,\n payload: user,\n });\n return false;\n }\n try {\n const getUserFetch = await updateUserAPI(domainName, user, token);\n if (getUserFetch.response.status === 200) {\n dispatch({\n type: DauthTypes.UPDATE_USER,\n payload: getUserFetch.data.user,\n });\n return true;\n } else {\n console.error('Update user error', getUserFetch.data.message);\n return false;\n }\n } catch (error) {\n console.error('Update user error', error);\n return false;\n }\n}\n\ntype TSetSendEmailVerificationAction = {\n dispatch: React.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 dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: false,\n });\n return true;\n } else {\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS,\n payload: { type: 'error', message: sendEmailFetch.data.message },\n });\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: false,\n });\n return false;\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 dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: false,\n });\n return false;\n }\n}\n\nexport async function getAccessTokenAction({\n dispatch,\n domainName,\n}: {\n dispatch: React.Dispatch<any>;\n domainName: string;\n}) {\n const token_ls = localStorage.getItem(TOKEN_LS);\n if (!token_ls) return 'token-not-found';\n // Decode JWT to check expiry (without verification — that's the server's job)\n try {\n const payloadB64 = token_ls.split('.')[1];\n if (payloadB64) {\n const payload = JSON.parse(atob(payloadB64));\n const expiresIn = (payload.exp || 0) * 1000 - Date.now();\n // If token expires in less than 5 minutes, refresh proactively\n if (expiresIn < 5 * 60 * 1000) {\n await refreshSessionAction({ dispatch, domainName });\n const refreshedToken = localStorage.getItem(TOKEN_LS);\n return refreshedToken || 'token-not-found';\n }\n }\n } catch (_) {\n // If decode fails, return stored token and let server validate\n }\n return token_ls;\n}\n\nexport async function deleteAccountAction({\n dispatch,\n domainName,\n token,\n}: {\n dispatch: React.Dispatch<any>;\n domainName: string;\n token: string;\n}) {\n try {\n const result = await deleteAccountAPI(domainName, token);\n if (result.response.status === 200) {\n resetUser(dispatch);\n return true;\n }\n return false;\n } catch (error) {\n console.error('Delete account error', error);\n return false;\n }\n}\n\n///////////////////////////////////////////\n//////////////////////////////////////////\nexport const resetUser = (dispatch: React.Dispatch<any>) => {\n localStorage.removeItem(TOKEN_LS);\n localStorage.removeItem(REFRESH_TOKEN_LS);\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 useRef,\n} from 'react';\nimport initialDauthState from './initialDauthState';\nimport userReducer from './reducer/dauth.reducer';\nimport * as action from './reducer/dauth.actions';\nimport { getClientBasePath } from './api/utils/config';\nimport { TOKEN_LS, REFRESH_TOKEN_LS } from './constants';\nimport { routes } from './api/utils/routes';\nimport { IDauthUser } from './interfaces';\nimport { SET_IS_LOADING } from './reducer/dauth.types';\n\ninterface DauthProviderProps {\n domainName: string;\n children: React.ReactNode;\n}\n\nexport const DauthProvider: React.FC<DauthProviderProps> = (\n props: DauthProviderProps\n) => {\n const { domainName, children } = props;\n const [dauthState, dispatch] = useReducer(userReducer, initialDauthState);\n const refreshTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n // Schedule next proactive refresh based on access token expiry\n const scheduleRefresh = useCallback(() => {\n if (refreshTimerRef.current) clearTimeout(refreshTimerRef.current);\n const token = localStorage.getItem(TOKEN_LS);\n if (!token) return;\n try {\n const payloadB64 = token.split('.')[1];\n if (!payloadB64) return;\n const payload = JSON.parse(atob(payloadB64));\n const expiresIn = (payload.exp || 0) * 1000 - Date.now();\n // Refresh 5 minutes before expiry, minimum 10 seconds\n const refreshIn = Math.max(expiresIn - 5 * 60 * 1000, 10_000);\n refreshTimerRef.current = setTimeout(async () => {\n await action.refreshSessionAction({ dispatch, domainName });\n scheduleRefresh();\n }, refreshIn);\n } catch (_) {\n // If decode fails, retry in 5 minutes\n refreshTimerRef.current = setTimeout(async () => {\n await action.refreshSessionAction({ dispatch, domainName });\n scheduleRefresh();\n }, 5 * 60 * 1000);\n }\n }, [domainName]);\n\n // Catch login redirect\n useEffect(() => {\n (async () => {\n const queryString = window.location.search;\n if (!queryString) return;\n const urlParams = new URLSearchParams(queryString);\n const token_url = urlParams.get(TOKEN_LS);\n const refresh_url = urlParams.get(REFRESH_TOKEN_LS);\n if (token_url && refresh_url && !dauthState.isAuthenticated) {\n return action.setDauthStateAction({\n dispatch,\n token: token_url,\n refreshToken: refresh_url,\n domainName,\n });\n }\n })();\n }, []);\n\n // Auto Login\n useEffect(() => {\n (async () => {\n const refreshToken = localStorage.getItem(REFRESH_TOKEN_LS);\n if (refreshToken && !dauthState.isAuthenticated) {\n return action.setAutoLoginAction({ dispatch, domainName });\n } else {\n return dispatch({\n type: SET_IS_LOADING,\n payload: { isLoading: false },\n });\n }\n })();\n }, []);\n\n // Schedule proactive refresh when authenticated\n useEffect(() => {\n if (dauthState.isAuthenticated) {\n scheduleRefresh();\n }\n return () => {\n if (refreshTimerRef.current) clearTimeout(refreshTimerRef.current);\n };\n }, [dauthState.isAuthenticated, scheduleRefresh]);\n\n const loginWithRedirect = useCallback(() => {\n return window.location.replace(\n `${getClientBasePath()}/${domainName}/${routes.signin}`\n );\n }, [domainName]);\n\n const logout = useCallback(() => {\n if (refreshTimerRef.current) clearTimeout(refreshTimerRef.current);\n return action.setLogoutAction({ dispatch, domainName });\n }, [domainName]);\n\n const getAccessToken = useCallback(async () => {\n const token = await action.getAccessTokenAction({ dispatch, domainName });\n return token as string;\n }, [domainName]);\n\n const updateUser = useCallback(\n async (fields: Partial<IDauthUser>) => {\n const token_ls = localStorage.getItem(TOKEN_LS);\n const {\n name,\n lastname,\n nickname,\n telPrefix,\n telSuffix,\n language,\n avatar,\n birthDate,\n country,\n metadata,\n } = fields;\n const user = {\n name,\n lastname,\n nickname,\n telPrefix,\n telSuffix,\n language,\n avatar,\n birthDate,\n country,\n metadata,\n } as Partial<IDauthUser>;\n return (await action.setUpdateUserAction({\n dispatch,\n domainName,\n user,\n token: token_ls,\n })) as boolean;\n },\n [domainName]\n );\n\n const updateUserWithRedirect = useCallback(() => {\n const token_ls = localStorage.getItem(TOKEN_LS);\n if (!token_ls) return;\n return window.location.replace(\n `${getClientBasePath()}/${domainName}/${routes.updateUser}/${token_ls}`\n );\n }, [domainName]);\n\n const sendEmailVerification = useCallback(async () => {\n const token_ls = localStorage.getItem(TOKEN_LS);\n if (!token_ls) return false;\n return (await action.sendEmailVerificationAction({\n dispatch,\n domainName,\n token: token_ls,\n })) as boolean;\n }, [domainName]);\n\n const deleteAccount = useCallback(async () => {\n const token_ls = localStorage.getItem(TOKEN_LS);\n if (!token_ls) return false;\n if (refreshTimerRef.current) clearTimeout(refreshTimerRef.current);\n return (await action.deleteAccountAction({\n dispatch,\n domainName,\n token: token_ls,\n })) as boolean;\n }, [domainName]);\n\n const memoProvider = useMemo(\n () => ({\n ...dauthState,\n loginWithRedirect,\n logout,\n getAccessToken,\n updateUser,\n updateUserWithRedirect,\n sendEmailVerification,\n deleteAccount,\n }),\n [\n dauthState,\n loginWithRedirect,\n logout,\n getAccessToken,\n updateUser,\n updateUserWithRedirect,\n sendEmailVerification,\n deleteAccount,\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","Promise","resolve","updateUser","updateUserWithRedirect","sendEmailVerificationStatus","status","type","message","sendEmailVerification","deleteAccount","LOGIN","userReducer","state","action","payload","DauthTypes","_extends","checkIsLocalhost","hostname","location","Boolean","match","getServerBasePath","isLocalhost","serverLocalUrl","protocol","getClientBasePath","clientLocalUrl","getUserAPI","_ref","_asyncToGenerator","_regenerator","m","_callee","domainName","token","params","response","w","_context","n","method","headers","Authorization","Content-Type","fetch","v","json","a","data","_x","_x2","apply","arguments","updateUserAPI","_ref2","_callee2","_context2","body","JSON","stringify","_x3","_x4","_x5","sendEmailVerificationAPI","_ref3","_callee3","_context3","_x6","_x7","refreshTokenAPI","_ref5","_callee5","refreshToken","_context5","_x0","_x1","deleteAccountAPI","_ref6","_callee6","_context6","_x10","_x11","logoutAPI","_ref7","_callee7","_context7","_x12","_x13","TOKEN_LS","REFRESH_TOKEN_LS","setDauthStateAction","_setDauthStateAction","dispatch","getUserFetch","p","history","replaceState","title","pathname","localStorage","setItem","resetUser","console","error","f","setAutoLoginAction","_setAutoLoginAction","storedRefreshToken","refreshResult","newAccessToken","newRefreshToken","getItem","accessToken","_setLogoutAction","removeItem","refreshSessionAction","_refreshSessionAction","_callee4","_ref4","_context4","setUpdateUserAction","_setUpdateUserAction","setAttribute","sendEmailVerificationAction","_sendEmailVerificationAction","sendEmailFetch","getAccessTokenAction","_getAccessTokenAction","token_ls","payloadB64","refreshedToken","split","parse","atob","exp","Date","now","deleteAccountAction","_x8","_deleteAccountAction","_callee8","_ref8","_context8","DauthContext","createContext","props","children","_useReducer","useReducer","dauthState","refreshTimerRef","useRef","scheduleRefresh","useCallback","current","clearTimeout","expiresIn","refreshIn","Math","max","setTimeout","_","useEffect","queryString","urlParams","token_url","refresh_url","search","URLSearchParams","get","replace","fields","name","lastname","nickname","telPrefix","telSuffix","avatar","birthDate","country","metadata","memoProvider","useMemo","React","Provider","value","context","useContext","Error"],"mappings":"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"}
|