dauth-context-react 1.0.2 → 2.0.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.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/api/utils/routes.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};\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 IsendEmailVerificationAPIResponse,\n IupdateUserAPIResponse,\n IverifyTokenAPIResponse,\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 verifyTokenAPI = async ({\n domainName,\n tsk,\n token,\n}: {\n domainName: string;\n tsk: string;\n token: string;\n}): Promise<IverifyTokenAPIResponse> => {\n const params = {\n method: 'POST',\n headers: {\n Authorization: token,\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({ tsk }),\n };\n const response = await fetch(\n `${getServerBasePath()}/app/${domainName}/verify-token`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n","export const TOKEN_LS = 'dauth_state';\n","export const routes = {\n signin: 'signin',\n updateUser: 'update-user',\n};\n","import {\n getUserAPI,\n refreshAccessTokenAPI,\n sendEmailVerificationAPI,\n updateUserAPI,\n} from '../api/dauth.api';\nimport { getClientBasePath } from '../api/utils/config';\nimport { TOKEN_LS } from '../constants';\nimport { IDauthDomainState, IDauthUser } from '../interfaces';\nimport { routes } from '../api/utils/routes';\nimport * as DauthTypes from './dauth.types';\n\ntype TSetDauthStateAction = {\n dispatch: React.Dispatch<any>;\n token: string;\n domainName: string;\n};\nexport async function setDauthStateAction({\n dispatch,\n token,\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(\n {},\n document.title,\n getUserFetch.data.domain.loginRedirect\n );\n return localStorage.setItem(TOKEN_LS, token);\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 token_ls: string;\n domainName: string;\n};\nexport async function setAutoLoginAction({\n dispatch,\n token_ls,\n domainName,\n}: TSetAutoLoginAction) {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: true } });\n try {\n const refreshAccessTokenFetch = await refreshAccessTokenAPI(\n domainName,\n token_ls\n );\n if (refreshAccessTokenFetch.response.status === 200) {\n const newToken = refreshAccessTokenFetch.data.accessToken || token_ls;\n const getUserFetch = await getUserAPI(domainName, newToken);\n if (getUserFetch.response.status === 200) {\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: getUserFetch.data.user,\n domain: getUserFetch.data.domain,\n isAuthenticated: true,\n },\n });\n localStorage.setItem(\n TOKEN_LS,\n refreshAccessTokenFetch.data.accessToken\n );\n return;\n } else {\n window.location.replace(\n `${getClientBasePath()}/${domainName}/${routes.signin}`\n );\n return resetUser(dispatch);\n }\n } else {\n window.location.replace(\n `${getClientBasePath()}/${domainName}/${routes.signin}`\n );\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\nexport function setLogoutAction({\n dispatch,\n}: {\n dispatch: React.Dispatch<any>;\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 return dispatch({\n type: DauthTypes.SET_IS_LOADING,\n payload: { isLoading: false },\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 checkTokenAction({\n dispatch,\n domainName,\n token,\n}: {\n dispatch: React.Dispatch<any>;\n domainName: string;\n token: string;\n}) {\n try {\n const refreshAccessTokenFetch = await refreshAccessTokenAPI(\n domainName,\n token\n );\n if (refreshAccessTokenFetch.response.status === 200) {\n if (refreshAccessTokenFetch.data.accessToken) {\n localStorage.setItem(\n TOKEN_LS,\n refreshAccessTokenFetch.data.accessToken\n );\n }\n return;\n } else {\n window.location.replace(\n `${getClientBasePath()}/${domainName}/${routes.signin}`\n );\n return resetUser(dispatch);\n }\n } catch (error) {\n resetUser(dispatch);\n throw error;\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;\n try {\n const refreshAccessTokenFetch = await refreshAccessTokenAPI(\n domainName,\n token_ls\n );\n if (refreshAccessTokenFetch.response.status === 200) {\n return refreshAccessTokenFetch.data.accessToken ?? token_ls;\n } else {\n resetUser(dispatch);\n return 'token-not-found';\n }\n } catch (error) {\n resetUser(dispatch);\n throw error;\n }\n}\n\n///////////////////////////////////////////\n//////////////////////////////////////////\nexport const resetUser = (dispatch: React.Dispatch<any>) => {\n localStorage.removeItem(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} 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 } from './constants';\nimport { routes } from './api/utils/routes';\nimport { verifyTokenAPI } from './api/dauth.api';\nimport { IDauthUser } from './interfaces';\nimport { SET_IS_LOADING } from './reducer/dauth.types';\n\ninterface DauthProviderProps {\n domainName: string;\n tsk: string;\n children: React.ReactNode;\n}\n\nexport const DauthProvider: React.FC<DauthProviderProps> = (\n props: DauthProviderProps\n) => {\n const { domainName, tsk, children } = props;\n const [dauthState, dispatch] = useReducer(userReducer, initialDauthState);\n\n const isValidTsk = useCallback(\n async (token: string) => {\n try {\n const verifyToken = await verifyTokenAPI({\n domainName,\n token,\n tsk,\n });\n if (verifyToken.response.status !== 200) {\n return false;\n }\n return true;\n } catch (error) {\n return false;\n }\n },\n [domainName, tsk]\n );\n\n // Check token periodically\n useEffect(() => {\n if (!dauthState.isAuthenticated) return;\n let interval = setInterval(async () => {\n const token_ls = localStorage.getItem(TOKEN_LS);\n if (!token_ls) return;\n const isValid = await isValidTsk(token_ls);\n if (isValid) {\n return action.checkTokenAction({\n dispatch,\n domainName,\n token: token_ls,\n });\n } else {\n action.setLogoutAction({ dispatch });\n throw new Error('Ask value in DauthProvider is not valid');\n }\n }, 1000 * 60 * 5);\n return () => clearInterval(interval);\n }, [dauthState.isAuthenticated, isValidTsk]);\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 if (token_url && !dauthState.isAuthenticated) {\n const isValid = await isValidTsk(token_url);\n if (isValid) {\n return action.setDauthStateAction({\n dispatch,\n token: token_url,\n domainName,\n });\n } else {\n action.setLogoutAction({ dispatch });\n throw new Error('Ask value in DauthProvider is not valid');\n }\n }\n })();\n }, []);\n\n // Auto Login\n useEffect(() => {\n (async () => {\n const token_ls = localStorage.getItem(TOKEN_LS);\n if (token_ls && !dauthState.isAuthenticated) {\n const isValid = await isValidTsk(token_ls);\n if (isValid) {\n return action.setAutoLoginAction({\n dispatch,\n token_ls,\n domainName,\n });\n } else {\n action.setLogoutAction({ dispatch });\n throw new Error('Ask value in DauthProvider is not valid');\n }\n } else {\n return dispatch({\n type: SET_IS_LOADING,\n payload: { isLoading: false },\n });\n }\n })();\n }, []);\n\n const loginWithRedirect = useCallback(() => {\n return window.location.replace(\n `${getClientBasePath()}/${domainName}/${routes.signin}`\n );\n }, [domainName]);\n\n const logout = useCallback(() => {\n return action.setLogoutAction({ dispatch });\n }, []);\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 ({\n name,\n lastname,\n nickname,\n telPrefix,\n telSuffix,\n language,\n avatar,\n }: Partial<IDauthUser>) => {\n const token_ls = localStorage.getItem(TOKEN_LS);\n const user = {\n name,\n lastname,\n nickname,\n telPrefix,\n telSuffix,\n language,\n avatar,\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","_regeneratorRuntime","mark","_callee","domainName","token","params","response","data","wrap","_callee$","_context","prev","next","method","headers","Authorization","fetch","sent","json","abrupt","stop","_x","_x2","apply","arguments","updateUserAPI","_ref2","_callee2","_callee2$","_context2","body","JSON","stringify","_x3","_x4","_x5","sendEmailVerificationAPI","_ref3","_callee3","_callee3$","_context3","_x6","_x7","refreshAccessTokenAPI","_ref4","_callee4","_callee4$","_context4","_x8","_x9","verifyTokenAPI","_ref6","_callee5","_ref5","tsk","_callee5$","_context5","_x10","TOKEN_LS","routes","signin","setDauthStateAction","_setDauthStateAction","dispatch","getUserFetch","history","replaceState","title","loginRedirect","localStorage","setItem","resetUser","t0","console","error","finish","setAutoLoginAction","_setAutoLoginAction","token_ls","refreshAccessTokenFetch","newToken","accessToken","replace","setLogoutAction","removeItem","setUpdateUserAction","_setUpdateUserAction","setAttribute","sendEmailVerificationAction","_sendEmailVerificationAction","sendEmailFetch","checkTokenAction","_checkTokenAction","getAccessTokenAction","_getAccessTokenAction","_callee6","_ref7","_refreshAccessTokenFe","_callee6$","_context6","getItem","DauthProvider","props","children","_useReducer","useReducer","dauthState","isValidTsk","useCallback","verifyToken","useEffect","interval","setInterval","isValid","Error","clearInterval","queryString","urlParams","token_url","search","URLSearchParams","get","name","lastname","nickname","telPrefix","telSuffix","avatar","_callee7","_callee7$","_context7","memoProvider","useMemo","React","DauthContext","Provider","value","createContext","useDauth","context","useContext"],"mappings":"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"}
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};\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 ({\n name,\n lastname,\n nickname,\n telPrefix,\n telSuffix,\n language,\n avatar,\n }: Partial<IDauthUser>) => {\n const token_ls = localStorage.getItem(TOKEN_LS);\n const user = {\n name,\n lastname,\n nickname,\n telPrefix,\n telSuffix,\n language,\n avatar,\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","name","lastname","nickname","telPrefix","telSuffix","avatar","memoProvider","useMemo","React","DauthContext","Provider","value","createContext","useDauth","context","useContext","Error"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t,e=require("react"),r=(t=e)&&"object"==typeof t&&"default"in t?t.default:t;function n(){n=function(){return e};var t,e={},r=Object.prototype,a=r.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t[e]=r.value},i="function"==typeof Symbol?Symbol:{},u=i.iterator||"@@iterator",s=i.asyncIterator||"@@asyncIterator",c=i.toStringTag||"@@toStringTag";function p(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{p({},"")}catch(t){p=function(t,e,r){return t[e]=r}}function l(t,e,r,n){var a=Object.create((e&&e.prototype instanceof y?e:y).prototype),i=new N(n||[]);return o(a,"_invoke",{value:_(t,r,i)}),a}function f(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=l;var d="suspendedStart",h="executing",v="completed",m={};function y(){}function g(){}function w(){}var b={};p(b,u,(function(){return this}));var x=Object.getPrototypeOf,E=x&&x(x(O([])));E&&E!==r&&a.call(E,u)&&(b=E);var k=w.prototype=y.prototype=Object.create(b);function I(t){["next","throw","return"].forEach((function(e){p(t,e,(function(t){return this._invoke(e,t)}))}))}function S(t,e){function r(n,o,i,u){var s=f(t[n],t,o);if("throw"!==s.type){var c=s.arg,p=c.value;return p&&"object"==typeof p&&a.call(p,"__await")?e.resolve(p.__await).then((function(t){r("next",t,i,u)}),(function(t){r("throw",t,i,u)})):e.resolve(p).then((function(t){c.value=t,i(c)}),(function(t){return r("throw",t,i,u)}))}u(s.arg)}var n;o(this,"_invoke",{value:function(t,a){function o(){return new e((function(e,n){r(t,a,e,n)}))}return n=n?n.then(o,o):o()}})}function _(e,r,n){var a=d;return function(o,i){if(a===h)throw new Error("Generator is already running");if(a===v){if("throw"===o)throw i;return{value:t,done:!0}}for(n.method=o,n.arg=i;;){var u=n.delegate;if(u){var s=L(u,n);if(s){if(s===m)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(a===d)throw a=v,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);a=h;var c=f(e,r,n);if("normal"===c.type){if(a=n.done?v:"suspendedYield",c.arg===m)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(a=v,n.method="throw",n.arg=c.arg)}}}function L(e,r){var n=r.method,a=e.iterator[n];if(a===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,L(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),m;var o=f(a,e.iterator,r.arg);if("throw"===o.type)return r.method="throw",r.arg=o.arg,r.delegate=null,m;var i=o.arg;return i?i.done?(r[e.resultName]=i.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,m):i:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,m)}function A(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function T(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function N(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(A,this),this.reset(!0)}function O(e){if(e||""===e){var r=e[u];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,o=function r(){for(;++n<e.length;)if(a.call(e,n))return r.value=e[n],r.done=!1,r;return r.value=t,r.done=!0,r};return o.next=o}}throw new TypeError(typeof e+" is not iterable")}return g.prototype=w,o(k,"constructor",{value:w,configurable:!0}),o(w,"constructor",{value:g,configurable:!0}),g.displayName=p(w,c,"GeneratorFunction"),e.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===g||"GeneratorFunction"===(e.displayName||e.name))},e.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,w):(t.__proto__=w,p(t,c,"GeneratorFunction")),t.prototype=Object.create(k),t},e.awrap=function(t){return{__await:t}},I(S.prototype),p(S.prototype,s,(function(){return this})),e.AsyncIterator=S,e.async=function(t,r,n,a,o){void 0===o&&(o=Promise);var i=new S(l(t,r,n,a),o);return e.isGeneratorFunction(r)?i:i.next().then((function(t){return t.done?t.value:i.next()}))},I(k),p(k,c,"Generator"),p(k,u,(function(){return this})),p(k,"toString",(function(){return"[object Generator]"})),e.keys=function(t){var e=Object(t),r=[];for(var n in e)r.push(n);return r.reverse(),function t(){for(;r.length;){var n=r.pop();if(n in e)return t.value=n,t.done=!1,t}return t.done=!0,t}},e.values=O,N.prototype={constructor:N,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(T),!e)for(var r in this)"t"===r.charAt(0)&&a.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=t)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var r=this;function n(n,a){return u.type="throw",u.arg=e,r.next=n,a&&(r.method="next",r.arg=t),!!a}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],u=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var s=a.call(i,"catchLoc"),c=a.call(i,"finallyLoc");if(s&&c){if(this.prev<i.catchLoc)return n(i.catchLoc,!0);if(this.prev<i.finallyLoc)return n(i.finallyLoc)}else if(s){if(this.prev<i.catchLoc)return n(i.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return n(i.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&a.call(n,"finallyLoc")&&this.prev<n.finallyLoc){var o=n;break}}o&&("break"===t||"continue"===t)&&o.tryLoc<=e&&e<=o.finallyLoc&&(o=null);var i=o?o.completion:{};return i.type=t,i.arg=e,o?(this.method="next",this.next=o.finallyLoc,m):this.complete(i)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),m},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),T(r),m}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var a=n.arg;T(r)}return a}}throw new Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:O(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),m}},e}function a(t,e,r,n,a,o,i){try{var u=t[o](i),s=u.value}catch(t){return void r(t)}u.done?e(s):Promise.resolve(s).then(n,a)}function o(t){return function(){var e=this,r=arguments;return new Promise((function(n,o){var i=t.apply(e,r);function u(t){a(i,n,o,u,s,"next",t)}function s(t){a(i,n,o,u,s,"throw",t)}u(void 0)}))}}function i(){return(i=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t}).apply(this,arguments)}var u={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)}};function s(t,e){var r=e.payload;switch(e.type){case"LOGIN":return i({},t,{user:r.user,domain:r.domain,isAuthenticated:r.isAuthenticated});case"SET_IS_LOADING":return i({},t,{isLoading:r.isLoading});case"UPDATE_USER":return i({},t,{user:i({},t.user,r)});case"SET_SEND_EMAIL_VERIFICATION_STATUS":return i({},t,{sendEmailVerificationStatus:i({},t.sendEmailVerificationStatus,{status:{type:r.type,message:r.message}})});case"SET_SEND_EMAIL_VERIFICATION_IS_LOADING":return i({},t,{sendEmailVerificationStatus:i({},t.sendEmailVerificationStatus,{isLoading:r})});default:return t}}function c(){if("undefined"==typeof window)return!1;var t=window.location.hostname;return Boolean("localhost"===t||"[::1]"===t||t.match(/(192)\.(168)\.(1)\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/gm)||t.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/))}function p(){var t=c(),e=window.location.protocol+"//"+window.location.hostname+":4012/api/v1";return t?e:"https://dauth.ovh/api/v1"}function l(){var t=c(),e=window.location.protocol+"//"+window.location.hostname+":5185";return t?e:"https://dauth.ovh"}var f=function(){var t=o(n().mark((function t(e,r){var a,o;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return a={method:"GET",headers:{Authorization:r,"Content-Type":"application/json"}},t.next=3,fetch(p()+"/app/"+e+"/user",a);case 3:return o=t.sent,t.next=6,o.json();case 6:return t.abrupt("return",{response:o,data:t.sent});case 8:case"end":return t.stop()}}),t)})));return function(e,r){return t.apply(this,arguments)}}(),d=function(){var t=o(n().mark((function t(e,r,a){var o,i;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return o={method:"PATCH",headers:{Authorization:a,"Content-Type":"application/json"},body:JSON.stringify(r)},t.next=3,fetch(p()+"/app/"+e+"/user",o);case 3:return i=t.sent,t.next=6,i.json();case 6:return t.abrupt("return",{response:i,data:t.sent});case 8:case"end":return t.stop()}}),t)})));return function(e,r,n){return t.apply(this,arguments)}}(),h=function(){var t=o(n().mark((function t(e,r){var a,o;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return a={method:"GET",headers:{Authorization:r,"Content-Type":"application/json"}},t.next=3,fetch(p()+"/app/"+e+"/resend-email-verification",a);case 3:return o=t.sent,t.next=6,o.json();case 6:return t.abrupt("return",{response:o,data:t.sent});case 8:case"end":return t.stop()}}),t)})));return function(e,r){return t.apply(this,arguments)}}(),v=function(){var t=o(n().mark((function t(e,r){var a,o;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return a={method:"GET",headers:{Authorization:r,"Content-Type":"application/json"}},t.next=3,fetch(p()+"/app/"+e+"/refresh-access-token",a);case 3:return o=t.sent,t.next=6,o.json();case 6:return t.abrupt("return",{response:o,data:t.sent});case 8:case"end":return t.stop()}}),t)})));return function(e,r){return t.apply(this,arguments)}}(),m=function(){var t=o(n().mark((function t(e){var r,a,o;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=e.domainName,a={method:"POST",headers:{Authorization:e.token,"Content-Type":"application/json"},body:JSON.stringify({tsk:e.tsk})},t.next=4,fetch(p()+"/app/"+r+"/verify-token",a);case 4:return o=t.sent,t.next=7,o.json();case 7:return t.abrupt("return",{response:o,data:t.sent});case 9:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),y="dauth_state";function g(t){return w.apply(this,arguments)}function w(){return(w=o(n().mark((function t(e){var r,a,o,i;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return a=e.token,o=e.domainName,(r=e.dispatch)({type:"SET_IS_LOADING",payload:{isLoading:!0}}),t.prev=2,t.next=5,f(o,a);case 5:if(200!==(i=t.sent).response.status){t.next=12;break}return r({type:"LOGIN",payload:{user:i.data.user,domain:i.data.domain,isAuthenticated:!0}}),window.history.replaceState({},document.title,i.data.domain.loginRedirect),t.abrupt("return",localStorage.setItem(y,a));case 12:return t.abrupt("return",O(r));case 13:t.next=19;break;case 15:return t.prev=15,t.t0=t.catch(2),console.error(t.t0),t.abrupt("return",O(r));case 19:return t.prev=19,r({type:"SET_IS_LOADING",payload:{isLoading:!1}}),t.finish(19);case 22:case"end":return t.stop()}}),t,null,[[2,15,19,22]])})))).apply(this,arguments)}function b(t){return x.apply(this,arguments)}function x(){return(x=o(n().mark((function t(e){var r,a,o,i,u,s;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return a=e.token_ls,o=e.domainName,(r=e.dispatch)({type:"SET_IS_LOADING",payload:{isLoading:!0}}),t.prev=2,t.next=5,v(o,a);case 5:if(200!==(i=t.sent).response.status){t.next=21;break}return u=i.data.accessToken||a,t.next=10,f(o,u);case 10:if(200!==(s=t.sent).response.status){t.next=17;break}return r({type:"LOGIN",payload:{user:s.data.user,domain:s.data.domain,isAuthenticated:!0}}),localStorage.setItem(y,i.data.accessToken),t.abrupt("return");case 17:return window.location.replace(l()+"/"+o+"/signin"),t.abrupt("return",O(r));case 19:t.next=23;break;case 21:return window.location.replace(l()+"/"+o+"/signin"),t.abrupt("return",O(r));case 23:t.next=29;break;case 25:return t.prev=25,t.t0=t.catch(2),console.error(t.t0),t.abrupt("return",O(r));case 29:return t.prev=29,r({type:"SET_IS_LOADING",payload:{isLoading:!1}}),t.finish(29);case 32:case"end":return t.stop()}}),t,null,[[2,25,29,32]])})))).apply(this,arguments)}function E(t){var e=t.dispatch;return e({type:"SET_IS_LOADING",payload:{isLoading:!0}}),e({type:"LOGIN",payload:{user:{language:window.document.documentElement.getAttribute("lang")||"es"},domain:{},isAuthenticated:!1}}),localStorage.removeItem(y),e({type:"SET_IS_LOADING",payload:{isLoading:!1}})}function k(t){return I.apply(this,arguments)}function I(){return(I=o(n().mark((function t(e){var r,a,o,i,u;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(r=e.dispatch,a=e.domainName,i=e.token,(o=e.user).language&&window.document.documentElement.setAttribute("lang",o.language),i){t.next=5;break}return r({type:"UPDATE_USER",payload:o}),t.abrupt("return",!1);case 5:return t.prev=5,t.next=8,d(a,o,i);case 8:if(200!==(u=t.sent).response.status){t.next=14;break}return r({type:"UPDATE_USER",payload:u.data.user}),t.abrupt("return",!0);case 14:return console.error("Update user error",u.data.message),t.abrupt("return",!1);case 16:t.next=22;break;case 18:return t.prev=18,t.t0=t.catch(5),console.error("Update user error",t.t0),t.abrupt("return",!1);case 22:case"end":return t.stop()}}),t,null,[[5,18]])})))).apply(this,arguments)}function S(t){return _.apply(this,arguments)}function _(){return(_=o(n().mark((function t(e){var r,a,o,i;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return a=e.domainName,o=e.token,(r=e.dispatch)({type:"SET_SEND_EMAIL_VERIFICATION_IS_LOADING",payload:!0}),r({type:"SET_SEND_EMAIL_VERIFICATION_STATUS",payload:{type:"info",message:"Sending email verification..."}}),t.prev=3,t.next=6,h(a,o);case 6:if(200!==(i=t.sent).response.status){t.next=13;break}return r({type:"SET_SEND_EMAIL_VERIFICATION_STATUS",payload:{type:"success",message:i.data.message}}),r({type:"SET_SEND_EMAIL_VERIFICATION_IS_LOADING",payload:!1}),t.abrupt("return",!0);case 13:return r({type:"SET_SEND_EMAIL_VERIFICATION_STATUS",payload:{type:"error",message:i.data.message}}),r({type:"SET_SEND_EMAIL_VERIFICATION_IS_LOADING",payload:!1}),t.abrupt("return",!1);case 16:t.next=23;break;case 18:return t.prev=18,t.t0=t.catch(3),r({type:"SET_SEND_EMAIL_VERIFICATION_STATUS",payload:{type:"error",message:"Send email verification fetch error"}}),r({type:"SET_SEND_EMAIL_VERIFICATION_IS_LOADING",payload:!1}),t.abrupt("return",!1);case 23:case"end":return t.stop()}}),t,null,[[3,18]])})))).apply(this,arguments)}function L(t){return A.apply(this,arguments)}function A(){return(A=o(n().mark((function t(e){var r,a,o,i;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=e.dispatch,a=e.domainName,o=e.token,t.prev=1,t.next=4,v(a,o);case 4:if(200!==(i=t.sent).response.status){t.next=10;break}return i.data.accessToken&&localStorage.setItem(y,i.data.accessToken),t.abrupt("return");case 10:return window.location.replace(l()+"/"+a+"/signin"),t.abrupt("return",O(r));case 12:t.next=18;break;case 14:throw t.prev=14,t.t0=t.catch(1),O(r),t.t0;case 18:case"end":return t.stop()}}),t,null,[[1,14]])})))).apply(this,arguments)}function T(t){return N.apply(this,arguments)}function N(){return(N=o(n().mark((function t(e){var r,a,o,i,u;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(r=e.dispatch,a=e.domainName,o=localStorage.getItem(y)){t.next=4;break}return t.abrupt("return");case 4:return t.prev=4,t.next=7,v(a,o);case 7:if(200!==(i=t.sent).response.status){t.next=12;break}return t.abrupt("return",null!=(u=i.data.accessToken)?u:o);case 12:return O(r),t.abrupt("return","token-not-found");case 14:t.next=20;break;case 16:throw t.prev=16,t.t0=t.catch(4),O(r),t.t0;case 20:case"end":return t.stop()}}),t,null,[[4,16]])})))).apply(this,arguments)}var O=function(t){return localStorage.removeItem(y),t({type:"LOGIN",payload:{user:{},domain:{},isAuthenticated:!1}})},D=e.createContext(u);exports.DauthProvider=function(t){var a=t.domainName,c=t.tsk,p=t.children,f=e.useReducer(s,u),d=f[0],h=f[1],v=e.useCallback(function(){var t=o(n().mark((function t(e){return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,m({domainName:a,token:e,tsk:c});case 3:if(200===t.sent.response.status){t.next=6;break}return t.abrupt("return",!1);case 6:return t.abrupt("return",!0);case 9:return t.prev=9,t.t0=t.catch(0),t.abrupt("return",!1);case 12:case"end":return t.stop()}}),t,null,[[0,9]])})));return function(e){return t.apply(this,arguments)}}(),[a,c]);e.useEffect((function(){if(d.isAuthenticated){var t=setInterval(o(n().mark((function t(){var e;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(e=localStorage.getItem(y)){t.next=3;break}return t.abrupt("return");case 3:return t.next=5,v(e);case 5:if(!t.sent){t.next=10;break}return t.abrupt("return",L({dispatch:h,domainName:a,token:e}));case 10:throw E({dispatch:h}),new Error("Ask value in DauthProvider is not valid");case 12:case"end":return t.stop()}}),t)}))),3e5);return function(){return clearInterval(t)}}}),[d.isAuthenticated,v]),e.useEffect((function(){o(n().mark((function t(){var e,r,o;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(e=window.location.search){t.next=3;break}return t.abrupt("return");case 3:if(r=new URLSearchParams(e),!(o=r.get(y))||d.isAuthenticated){t.next=15;break}return t.next=8,v(o);case 8:if(!t.sent){t.next=13;break}return t.abrupt("return",g({dispatch:h,token:o,domainName:a}));case 13:throw E({dispatch:h}),new Error("Ask value in DauthProvider is not valid");case 15:case"end":return t.stop()}}),t)})))()}),[]),e.useEffect((function(){o(n().mark((function t(){var e;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!(e=localStorage.getItem(y))||d.isAuthenticated){t.next=13;break}return t.next=4,v(e);case 4:if(!t.sent){t.next=9;break}return t.abrupt("return",b({dispatch:h,token_ls:e,domainName:a}));case 9:throw E({dispatch:h}),new Error("Ask value in DauthProvider is not valid");case 11:t.next=14;break;case 13:return t.abrupt("return",h({type:"SET_IS_LOADING",payload:{isLoading:!1}}));case 14:case"end":return t.stop()}}),t)})))()}),[]);var w=e.useCallback((function(){return window.location.replace(l()+"/"+a+"/signin")}),[a]),x=e.useCallback((function(){return E({dispatch:h})}),[]),I=e.useCallback(o(n().mark((function t(){return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,T({dispatch:h,domainName:a});case 2:return t.abrupt("return",t.sent);case 4:case"end":return t.stop()}}),t)}))),[a]),_=e.useCallback(function(){var t=o(n().mark((function t(e){var r,o,i,u,s,c,p,l,f;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=e.name,o=e.lastname,i=e.nickname,u=e.telPrefix,s=e.telSuffix,c=e.language,p=e.avatar,l=localStorage.getItem(y),f={name:r,lastname:o,nickname:i,telPrefix:u,telSuffix:s,language:c,avatar:p},t.next=5,k({dispatch:h,domainName:a,user:f,token:l});case 5:return t.abrupt("return",t.sent);case 6:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),[a]),A=e.useCallback((function(){var t=localStorage.getItem(y);if(t)return window.location.replace(l()+"/"+a+"/update-user/"+t)}),[a]),N=e.useCallback(o(n().mark((function t(){var e;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(e=localStorage.getItem(y)){t.next=3;break}return t.abrupt("return",!1);case 3:return t.next=5,S({dispatch:h,domainName:a,token:e});case 5:return t.abrupt("return",t.sent);case 6:case"end":return t.stop()}}),t)}))),[a]),O=e.useMemo((function(){return i({},d,{loginWithRedirect:w,logout:x,getAccessToken:I,updateUser:_,updateUserWithRedirect:A,sendEmailVerification:N})}),[d,w,x,I,_,A,N]);return r.createElement(D.Provider,{value:O},p)},exports.useDauth=function(){var t=e.useContext(D);if(!t)throw new Error("useDauth must be used inside DauthProvider");return t};
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)}},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;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)}}(),g="dauth_state",I="dauth_refresh_token";function w(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(g,r),localStorage.setItem(I,a),e.a(2);case 3:return e.a(2,P(n));case 4:e.n=6;break;case 5:return e.p=5,console.error(e.v),e.a(2,P(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 E(e){return T.apply(this,arguments)}function T(){return(T=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(I)){e.n=1;break}return n({type:"SET_IS_LOADING",payload:{isLoading:!1}}),e.a(2,P(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(g,u),localStorage.setItem(I,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:P(n),e.n=6;break;case 5:e.p=5,console.error(e.v),P(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(I))||!r){e.n=4;break}return e.p=1,e.n=2,S(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(g),localStorage.removeItem(I),e.a(2,n({type:"SET_IS_LOADING",payload:{isLoading:!1}}))}}),e,null,[[1,3]])})))).apply(this,arguments)}function b(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(I)){e.n=1;break}return e.a(2,P(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(g,o.data.accessToken),localStorage.setItem(I,o.data.refreshToken),e.a(2);case 3:P(n),e.n=5;break;case 4:e.p=4,console.error(e.v),P(n);case 5:return e.a(2)}}),e,null,[[1,4]])})))).apply(this,arguments)}function k(e){return O.apply(this,arguments)}function O(){return(O=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 L(e){return D.apply(this,arguments)}function D(){return(D=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 C(e){return G.apply(this,arguments)}function G(){return(G=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(g)){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,b({dispatch:n,domainName:r});case 2:return u=localStorage.getItem(g),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)}var P=function(e){return localStorage.removeItem(g),localStorage.removeItem(I),e({type:s,payload:{user:{},domain:{},isAuthenticated:!1}})},j=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(g);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,b({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,b({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(g),o=n.get(I),!a||!o||p.isAuthenticated){e.n=2;break}return e.a(2,w({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(I)||p.isAuthenticated){e.n=1;break}return e.a(2,E({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,C({dispatch:l,domainName:r});case 1:return e.a(2,e.v)}}),e)}))),[r]),_=t.useCallback(function(){var e=a(i().m((function e(t){var n,a,o,u,c,s,f,p,d;return i().w((function(e){for(;;)switch(e.n){case 0:return n=t.name,a=t.lastname,o=t.nickname,u=t.telPrefix,c=t.telSuffix,s=t.language,f=t.avatar,p=localStorage.getItem(g),d={name:n,lastname:a,nickname:o,telPrefix:u,telSuffix:c,language:s,avatar:f},e.n=1,k({dispatch:l,domainName:r,user:d,token:p});case 1:return e.a(2,e.v)}}),e)})));return function(t){return e.apply(this,arguments)}}(),[r]),T=t.useCallback((function(){var e=localStorage.getItem(g);if(e)return window.location.replace(d()+"/"+r+"/update-user/"+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(g)){e.n=1;break}return e.a(2,!1);case 1:return e.n=2,L({dispatch:l,domainName:r,token:t});case 2:return e.a(2,e.v)}}),e)}))),[r]),O=t.useMemo((function(){return o({},p,{loginWithRedirect:y,logout:v,getAccessToken:S,updateUser:_,updateUserWithRedirect:T,sendEmailVerification:N})}),[p,y,v,S,_,T,N]);return n.createElement(j.Provider,{value:O},u)},exports.useDauth=function(){var e=t.useContext(j);if(!e)throw new Error("useDauth must be used inside DauthProvider");return e};
2
2
  //# sourceMappingURL=dauth-context-react.cjs.production.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dauth-context-react.cjs.production.min.js","sources":["../src/initialDauthState.ts","../src/reducer/dauth.reducer.ts","../src/reducer/dauth.types.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};\n\nexport default initialDauthState;\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 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","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 IsendEmailVerificationAPIResponse,\n IupdateUserAPIResponse,\n IverifyTokenAPIResponse,\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 verifyTokenAPI = async ({\n domainName,\n tsk,\n token,\n}: {\n domainName: string;\n tsk: string;\n token: string;\n}): Promise<IverifyTokenAPIResponse> => {\n const params = {\n method: 'POST',\n headers: {\n Authorization: token,\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({ tsk }),\n };\n const response = await fetch(\n `${getServerBasePath()}/app/${domainName}/verify-token`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n","export const TOKEN_LS = 'dauth_state';\n","import {\n getUserAPI,\n refreshAccessTokenAPI,\n sendEmailVerificationAPI,\n updateUserAPI,\n} from '../api/dauth.api';\nimport { getClientBasePath } from '../api/utils/config';\nimport { TOKEN_LS } from '../constants';\nimport { IDauthDomainState, IDauthUser } from '../interfaces';\nimport { routes } from '../api/utils/routes';\nimport * as DauthTypes from './dauth.types';\n\ntype TSetDauthStateAction = {\n dispatch: React.Dispatch<any>;\n token: string;\n domainName: string;\n};\nexport async function setDauthStateAction({\n dispatch,\n token,\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(\n {},\n document.title,\n getUserFetch.data.domain.loginRedirect\n );\n return localStorage.setItem(TOKEN_LS, token);\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 token_ls: string;\n domainName: string;\n};\nexport async function setAutoLoginAction({\n dispatch,\n token_ls,\n domainName,\n}: TSetAutoLoginAction) {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: true } });\n try {\n const refreshAccessTokenFetch = await refreshAccessTokenAPI(\n domainName,\n token_ls\n );\n if (refreshAccessTokenFetch.response.status === 200) {\n const newToken = refreshAccessTokenFetch.data.accessToken || token_ls;\n const getUserFetch = await getUserAPI(domainName, newToken);\n if (getUserFetch.response.status === 200) {\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: getUserFetch.data.user,\n domain: getUserFetch.data.domain,\n isAuthenticated: true,\n },\n });\n localStorage.setItem(\n TOKEN_LS,\n refreshAccessTokenFetch.data.accessToken\n );\n return;\n } else {\n window.location.replace(\n `${getClientBasePath()}/${domainName}/${routes.signin}`\n );\n return resetUser(dispatch);\n }\n } else {\n window.location.replace(\n `${getClientBasePath()}/${domainName}/${routes.signin}`\n );\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\nexport function setLogoutAction({\n dispatch,\n}: {\n dispatch: React.Dispatch<any>;\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 return dispatch({\n type: DauthTypes.SET_IS_LOADING,\n payload: { isLoading: false },\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 checkTokenAction({\n dispatch,\n domainName,\n token,\n}: {\n dispatch: React.Dispatch<any>;\n domainName: string;\n token: string;\n}) {\n try {\n const refreshAccessTokenFetch = await refreshAccessTokenAPI(\n domainName,\n token\n );\n if (refreshAccessTokenFetch.response.status === 200) {\n if (refreshAccessTokenFetch.data.accessToken) {\n localStorage.setItem(\n TOKEN_LS,\n refreshAccessTokenFetch.data.accessToken\n );\n }\n return;\n } else {\n window.location.replace(\n `${getClientBasePath()}/${domainName}/${routes.signin}`\n );\n return resetUser(dispatch);\n }\n } catch (error) {\n resetUser(dispatch);\n throw error;\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;\n try {\n const refreshAccessTokenFetch = await refreshAccessTokenAPI(\n domainName,\n token_ls\n );\n if (refreshAccessTokenFetch.response.status === 200) {\n return refreshAccessTokenFetch.data.accessToken ?? token_ls;\n } else {\n resetUser(dispatch);\n return 'token-not-found';\n }\n } catch (error) {\n resetUser(dispatch);\n throw error;\n }\n}\n\n///////////////////////////////////////////\n//////////////////////////////////////////\nexport const resetUser = (dispatch: React.Dispatch<any>) => {\n localStorage.removeItem(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} 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 } from './constants';\nimport { routes } from './api/utils/routes';\nimport { verifyTokenAPI } from './api/dauth.api';\nimport { IDauthUser } from './interfaces';\nimport { SET_IS_LOADING } from './reducer/dauth.types';\n\ninterface DauthProviderProps {\n domainName: string;\n tsk: string;\n children: React.ReactNode;\n}\n\nexport const DauthProvider: React.FC<DauthProviderProps> = (\n props: DauthProviderProps\n) => {\n const { domainName, tsk, children } = props;\n const [dauthState, dispatch] = useReducer(userReducer, initialDauthState);\n\n const isValidTsk = useCallback(\n async (token: string) => {\n try {\n const verifyToken = await verifyTokenAPI({\n domainName,\n token,\n tsk,\n });\n if (verifyToken.response.status !== 200) {\n return false;\n }\n return true;\n } catch (error) {\n return false;\n }\n },\n [domainName, tsk]\n );\n\n // Check token periodically\n useEffect(() => {\n if (!dauthState.isAuthenticated) return;\n let interval = setInterval(async () => {\n const token_ls = localStorage.getItem(TOKEN_LS);\n if (!token_ls) return;\n const isValid = await isValidTsk(token_ls);\n if (isValid) {\n return action.checkTokenAction({\n dispatch,\n domainName,\n token: token_ls,\n });\n } else {\n action.setLogoutAction({ dispatch });\n throw new Error('Ask value in DauthProvider is not valid');\n }\n }, 1000 * 60 * 5);\n return () => clearInterval(interval);\n }, [dauthState.isAuthenticated, isValidTsk]);\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 if (token_url && !dauthState.isAuthenticated) {\n const isValid = await isValidTsk(token_url);\n if (isValid) {\n return action.setDauthStateAction({\n dispatch,\n token: token_url,\n domainName,\n });\n } else {\n action.setLogoutAction({ dispatch });\n throw new Error('Ask value in DauthProvider is not valid');\n }\n }\n })();\n }, []);\n\n // Auto Login\n useEffect(() => {\n (async () => {\n const token_ls = localStorage.getItem(TOKEN_LS);\n if (token_ls && !dauthState.isAuthenticated) {\n const isValid = await isValidTsk(token_ls);\n if (isValid) {\n return action.setAutoLoginAction({\n dispatch,\n token_ls,\n domainName,\n });\n } else {\n action.setLogoutAction({ dispatch });\n throw new Error('Ask value in DauthProvider is not valid');\n }\n } else {\n return dispatch({\n type: SET_IS_LOADING,\n payload: { isLoading: false },\n });\n }\n })();\n }, []);\n\n const loginWithRedirect = useCallback(() => {\n return window.location.replace(\n `${getClientBasePath()}/${domainName}/${routes.signin}`\n );\n }, [domainName]);\n\n const logout = useCallback(() => {\n return action.setLogoutAction({ dispatch });\n }, []);\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 ({\n name,\n lastname,\n nickname,\n telPrefix,\n telSuffix,\n language,\n avatar,\n }: Partial<IDauthUser>) => {\n const token_ls = localStorage.getItem(TOKEN_LS);\n const user = {\n name,\n lastname,\n nickname,\n telPrefix,\n telSuffix,\n language,\n avatar,\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","userReducer","state","action","payload","_extends","checkIsLocalhost","hostname","location","Boolean","match","getServerBasePath","isLocalhost","serverLocalUrl","protocol","getClientBasePath","clientLocalUrl","getUserAPI","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","domainName","token","params","response","wrap","_context","prev","next","method","headers","Authorization","Content-Type","fetch","sent","json","abrupt","data","stop","_x","_x2","apply","arguments","updateUserAPI","_ref2","_callee2","_context2","body","JSON","stringify","_x3","_x4","_x5","sendEmailVerificationAPI","_ref3","_callee3","_context3","_x6","_x7","refreshAccessTokenAPI","_ref4","_callee4","_context4","_x8","_x9","verifyTokenAPI","_ref6","_callee5","_ref5","_context5","tsk","_x10","TOKEN_LS","setDauthStateAction","_setDauthStateAction","dispatch","getUserFetch","history","replaceState","title","loginRedirect","localStorage","setItem","resetUser","t0","console","error","finish","setAutoLoginAction","_setAutoLoginAction","token_ls","refreshAccessTokenFetch","newToken","accessToken","replace","setLogoutAction","removeItem","setUpdateUserAction","_setUpdateUserAction","setAttribute","sendEmailVerificationAction","_sendEmailVerificationAction","sendEmailFetch","checkTokenAction","_checkTokenAction","getAccessTokenAction","_getAccessTokenAction","_callee6","_ref7","_refreshAccessTokenFe","_context6","getItem","DauthContext","createContext","props","children","_useReducer","useReducer","dauthState","isValidTsk","useCallback","useEffect","interval","setInterval","Error","clearInterval","queryString","urlParams","token_url","search","URLSearchParams","get","name","lastname","nickname","telPrefix","telSuffix","avatar","_callee7","_context7","memoProvider","useMemo","React","Provider","value","context","useContext"],"mappings":"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"}
1
+ {"version":3,"file":"dauth-context-react.cjs.production.min.js","sources":["../src/initialDauthState.ts","../src/reducer/dauth.types.ts","../src/reducer/dauth.reducer.ts","../src/api/utils/config.ts","../src/api/dauth.api.ts","../src/constants.ts","../src/reducer/dauth.actions.ts","../src/index.tsx"],"sourcesContent":["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","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 ({\n name,\n lastname,\n nickname,\n telPrefix,\n telSuffix,\n language,\n avatar,\n }: Partial<IDauthUser>) => {\n const token_ls = localStorage.getItem(TOKEN_LS);\n const user = {\n name,\n lastname,\n nickname,\n telPrefix,\n telSuffix,\n language,\n avatar,\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","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","logoutAPI","_ref6","_callee6","_context6","_x10","_x11","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","_callee7","_ref7","token_ls","payloadB64","refreshedToken","_context7","split","parse","atob","exp","Date","now","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","name","lastname","nickname","telPrefix","telSuffix","avatar","memoProvider","useMemo","React","Provider","value","context","useContext","Error"],"mappings":"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"}