dauth-context-react 2.1.0 → 2.2.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.
@@ -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/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};\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 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 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 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:\n 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\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 memoProvider = useMemo(\n () => ({\n ...dauthState,\n loginWithRedirect,\n logout,\n 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","Promise","resolve","updateUser","updateUserWithRedirect","sendEmailVerificationStatus","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","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","logoutAPI","_ref6","_callee6","_context6","_x10","_x11","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","_callee7","_ref7","token_ls","payloadB64","expiresIn","refreshedToken","_context7","split","parse","atob","exp","Date","now","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
+ {"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/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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"}
@@ -40,6 +40,7 @@ export interface IDauthState {
40
40
  isLoading: boolean;
41
41
  };
42
42
  sendEmailVerification: () => Promise<boolean>;
43
+ deleteAccount: () => Promise<boolean>;
43
44
  }
44
45
  export interface IActionStatus {
45
46
  type: TStatusTypes;
@@ -37,5 +37,10 @@ export declare function getAccessTokenAction({ dispatch, domainName, }: {
37
37
  dispatch: React.Dispatch<any>;
38
38
  domainName: string;
39
39
  }): Promise<string>;
40
+ export declare function deleteAccountAction({ dispatch, domainName, token, }: {
41
+ dispatch: React.Dispatch<any>;
42
+ domainName: string;
43
+ token: string;
44
+ }): Promise<boolean>;
40
45
  export declare const resetUser: (dispatch: React.Dispatch<any>) => void;
41
46
  export {};
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "2.1.0",
2
+ "version": "2.2.0",
3
3
  "license": "MIT",
4
4
  "main": "dist/index.js",
5
5
  "typings": "dist/index.d.ts",
@@ -8,7 +8,7 @@
8
8
  "src"
9
9
  ],
10
10
  "engines": {
11
- "node": ">=10"
11
+ "node": ">=18"
12
12
  },
13
13
  "scripts": {
14
14
  "start": "tsdx watch",
@@ -34,6 +34,7 @@
34
34
  "singleQuote": true,
35
35
  "trailingComma": "es5"
36
36
  },
37
+ "packageManager": "pnpm@10.30.3",
37
38
  "name": "dauth-context-react",
38
39
  "author": "David T. Pizarro Frick",
39
40
  "module": "dist/dauth-context-react.esm.js",
@@ -49,6 +50,7 @@
49
50
  ],
50
51
  "devDependencies": {
51
52
  "@size-limit/preset-small-lib": "^11.0.2",
53
+ "@types/jest": "^30.0.0",
52
54
  "@types/react": "^18.2.55",
53
55
  "@types/react-dom": "^18.2.19",
54
56
  "husky": "^9.0.10",
@@ -1,6 +1,7 @@
1
1
  import { getServerBasePath } from './utils/config';
2
2
  import { IDauthUser } from '../interfaces';
3
3
  import {
4
+ IdeleteAccountAPIResponse,
4
5
  IgetUserAPIResponse,
5
6
  IrefreshAccessTokenAPIResponse,
6
7
  IrefreshTokenAPIResponse,
@@ -103,6 +104,25 @@ export const refreshTokenAPI = async (
103
104
  return { response, data };
104
105
  };
105
106
 
107
+ export const deleteAccountAPI = async (
108
+ domainName: string,
109
+ token: string
110
+ ): Promise<IdeleteAccountAPIResponse> => {
111
+ const params = {
112
+ method: 'DELETE',
113
+ headers: {
114
+ Authorization: token,
115
+ 'Content-Type': 'application/json',
116
+ },
117
+ };
118
+ const response = await fetch(
119
+ `${getServerBasePath()}/app/${domainName}/user`,
120
+ params
121
+ );
122
+ const data = await response.json();
123
+ return { response, data };
124
+ };
125
+
106
126
  export const logoutAPI = async (
107
127
  domainName: string,
108
128
  refreshToken: string
@@ -1,5 +1,13 @@
1
1
  import { IDauthDomainState, IDauthUser } from '../../interfaces';
2
2
 
3
+ export interface IdeleteAccountAPIResponse {
4
+ response: Response;
5
+ data: {
6
+ status: string;
7
+ message: string;
8
+ };
9
+ }
10
+
3
11
  export interface IgetUserAPIResponse {
4
12
  response: Response;
5
13
  data: {
package/src/index.tsx CHANGED
@@ -168,6 +168,17 @@ export const DauthProvider: React.FC<DauthProviderProps> = (
168
168
  })) as boolean;
169
169
  }, [domainName]);
170
170
 
171
+ const deleteAccount = useCallback(async () => {
172
+ const token_ls = localStorage.getItem(TOKEN_LS);
173
+ if (!token_ls) return false;
174
+ if (refreshTimerRef.current) clearTimeout(refreshTimerRef.current);
175
+ return (await action.deleteAccountAction({
176
+ dispatch,
177
+ domainName,
178
+ token: token_ls,
179
+ })) as boolean;
180
+ }, [domainName]);
181
+
171
182
  const memoProvider = useMemo(
172
183
  () => ({
173
184
  ...dauthState,
@@ -177,6 +188,7 @@ export const DauthProvider: React.FC<DauthProviderProps> = (
177
188
  updateUser,
178
189
  updateUserWithRedirect,
179
190
  sendEmailVerification,
191
+ deleteAccount,
180
192
  }),
181
193
  [
182
194
  dauthState,
@@ -186,6 +198,7 @@ export const DauthProvider: React.FC<DauthProviderProps> = (
186
198
  updateUser,
187
199
  updateUserWithRedirect,
188
200
  sendEmailVerification,
201
+ deleteAccount,
189
202
  ]
190
203
  );
191
204
 
@@ -29,6 +29,7 @@ const initialDauthState: IDauthState = {
29
29
  isLoading: false,
30
30
  },
31
31
  sendEmailVerification: () => Promise.resolve(false),
32
+ deleteAccount: () => Promise.resolve(false),
32
33
  };
33
34
 
34
35
  export default initialDauthState;
package/src/interfaces.ts CHANGED
@@ -43,6 +43,7 @@ export interface IDauthState {
43
43
  isLoading: boolean;
44
44
  };
45
45
  sendEmailVerification: () => Promise<boolean>;
46
+ deleteAccount: () => Promise<boolean>;
46
47
  }
47
48
 
48
49
  export interface IActionStatus {
@@ -1,4 +1,5 @@
1
1
  import {
2
+ deleteAccountAPI,
2
3
  getUserAPI,
3
4
  logoutAPI,
4
5
  refreshTokenAPI,
@@ -121,8 +122,7 @@ export async function setLogoutAction({
121
122
  type: DauthTypes.LOGIN,
122
123
  payload: {
123
124
  user: {
124
- language:
125
- window.document.documentElement.getAttribute('lang') || 'es',
125
+ language: window.document.documentElement.getAttribute('lang') || 'es',
126
126
  },
127
127
  domain: {},
128
128
  isAuthenticated: false,
@@ -287,6 +287,28 @@ export async function getAccessTokenAction({
287
287
  return token_ls;
288
288
  }
289
289
 
290
+ export async function deleteAccountAction({
291
+ dispatch,
292
+ domainName,
293
+ token,
294
+ }: {
295
+ dispatch: React.Dispatch<any>;
296
+ domainName: string;
297
+ token: string;
298
+ }) {
299
+ try {
300
+ const result = await deleteAccountAPI(domainName, token);
301
+ if (result.response.status === 200) {
302
+ resetUser(dispatch);
303
+ return true;
304
+ }
305
+ return false;
306
+ } catch (error) {
307
+ console.error('Delete account error', error);
308
+ return false;
309
+ }
310
+ }
311
+
290
312
  ///////////////////////////////////////////
291
313
  //////////////////////////////////////////
292
314
  export const resetUser = (dispatch: React.Dispatch<any>) => {