dauth-context-react 1.0.1 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"dauth-context-react.cjs.production.min.js","sources":["../src/initialDauthState.ts","../src/reducer/dauth.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: (typeof window !== 'undefined' ? window.document.documentElement.getAttribute('lang') : 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(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n );\n}\n\nexport function getServerBasePath({ domainName }: { domainName: string }) {\n const isLocalhost = checkIsLocalhost();\n const serverPort = 4012;\n const serverLocalUrl = `${window.location.protocol}//${window.location.hostname}:${serverPort}/api/${apiVersion}`;\n const serverProdUrl = `https://${domainName}.${serverDomain}/api/${apiVersion}`;\n const serverBasePath = isLocalhost ? serverLocalUrl : serverProdUrl;\n return serverBasePath;\n}\n\nexport function getClientBasePath({ domainName }: { domainName: string }) {\n const isLocalhost = checkIsLocalhost();\n const clientPort = 5185;\n const clientLocalUrl = `${window.location.protocol}//${window.location.hostname}:${clientPort}`;\n const clientProdUrl = `https://${domainName}.${serverDomain}`;\n const clientBasePath = isLocalhost ? clientLocalUrl : clientProdUrl;\n return clientBasePath;\n}\n","import { 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({ domainName })}/tenant/${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({ domainName })}/tenant/${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({\n domainName,\n })}/tenant/${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({\n domainName,\n })}/tenant/${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({\n domainName,\n })}/tenant/${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 })}/${domainName}/${routes.signin}`\n );\n return resetUser(dispatch);\n }\n } else {\n window.location.replace(\n `${getClientBasePath({ domainName })}/${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(TOKEN_LS, refreshAccessTokenFetch.data.accessToken);\n }\n return;\n } else {\n window.location.replace(\n `${getClientBasePath({ domainName })}/${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 })}/${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 })}/${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","_ref","domainName","isLocalhost","serverLocalUrl","protocol","getClientBasePath","_ref2","clientLocalUrl","getUserAPI","_asyncToGenerator","_regeneratorRuntime","mark","_callee","token","params","response","wrap","_context","prev","next","method","headers","Authorization","Content-Type","fetch","sent","json","abrupt","data","stop","_x","_x2","apply","arguments","updateUserAPI","_callee2","_context2","body","JSON","stringify","_x3","_x4","_x5","sendEmailVerificationAPI","_ref3","_callee3","_context3","_x6","_x7","refreshAccessTokenAPI","_ref4","_callee4","_context4","_x8","_x9","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":"+hOAOA,IAAMA,EAAiC,CACrCC,KAAM,CACJC,UAA6B,oBAAXC,OAAyBA,OAAOC,SAASC,gBAAgBC,aAAa,QAAU,OAAS,MAE7GC,OAAQ,GACRC,WAAW,EACXC,iBAAiB,EACjBC,kBAAmB,aACnBC,OAAQ,aACRC,eAAgB,WAAA,OAAMC,QAAQC,QAAQ,KACtCC,WAAY,WAAA,OAAMF,QAAQC,SAAQ,IAClCE,uBAAwB,aAExBC,4BAA6B,CAC3BC,OAAQ,CACNC,KAAM,OACNC,QAAS,iCAEXZ,WAAW,GAEba,sBAAuB,WAAA,OAAMR,QAAQC,SAAQ,cCxBvBQ,EAAYC,EAAoBC,GACtD,IAAcC,EAAYD,EAAZC,QAEd,OAF0BD,EAAlBL,MAGN,ICPiB,QDcf,OANWO,KACNH,GACHtB,KAAMwB,EAAQxB,KACdM,OAAQkB,EAAQlB,OAChBE,gBAAiBgB,EAAQhB,kBAK7B,IChB0B,iBDqBxB,OAJeiB,KACVH,GACHf,UAAWiB,EAAQjB,YAKvB,ICvBuB,cD+BrB,OAPgBkB,KACXH,GACHtB,KAAIyB,KACCH,EAAMtB,KACNwB,KAMT,IC9BF,qCDyCI,OAVoCC,KAC/BH,GACHN,4BAA2BS,KACtBH,EAAMN,6BACTC,OAAQ,CACNC,KAAMM,EAAQN,KACdC,QAASK,EAAQL,aAOzB,IC9CF,yCDsDI,OAPuCM,KAClCH,GACHN,4BAA2BS,KACtBH,EAAMN,6BACTT,UAAWiB,MAMjB,QACE,OAAOF,GE3Db,SAASI,IACP,GAAsB,oBAAXxB,OAAwB,OAAO,EAC1C,IAAMyB,EAAWzB,OAAO0B,SAASD,SACjC,OAAOE,QACQ,cAAbF,GACe,UAAbA,GACAA,EAASG,MACP,2EAEFH,EAASG,MACP,oEAKQC,EAAiBC,OAAGC,EAAUD,EAAVC,WAC5BC,EAAcR,IAEdS,EAAoBjC,OAAO0B,SAASQ,cAAalC,OAAO0B,SAASD,SAA7CzB,eAG1B,OADuBgC,EAAcC,aADJF,+BAKnBI,EAAiBC,OAAGL,EAAUK,EAAVL,WAC5BC,EAAcR,IAEda,EAAoBrC,OAAO0B,SAASQ,cAAalC,OAAO0B,SAASD,SAA7CzB,QAG1B,OADuBgC,EAAcK,aADJN,mBCrBtBO,aAAU,IAAAR,EAAAS,EAAAC,IAAAC,MAAG,SAAAC,EACxBX,EACAY,GAAa,IAAAC,EAAAC,EAAA,OAAAL,IAAAM,eAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAQZ,OANKL,EAAS,CACbM,OAAQ,MACRC,QAAS,CACPC,cAAeT,EACfU,eAAgB,qBAEnBN,EAAAE,OACsBK,MAClBzB,EAAkB,CAAEE,WAAAA,eAAwBA,UAC/Ca,GACD,OAHa,OAARC,EAAQE,EAAAQ,KAAAR,EAAAE,OAIKJ,EAASW,OAAM,OAAxB,OAAAT,EAAAU,gBACH,CAAEZ,SAAAA,EAAUa,KADTX,EAAAQ,OACe,OAAA,UAAA,OAAAR,EAAAY,UAAAjB,OAC1B,gBAjBsBkB,EAAAC,GAAA,OAAA/B,EAAAgC,WAAAC,eAmBVC,aAAa,IAAA5B,EAAAG,EAAAC,IAAAC,MAAG,SAAAwB,EAC3BlC,EACAjC,EACA6C,GAAa,IAAAC,EAAAC,EAAA,OAAAL,IAAAM,eAAAoB,GAAA,cAAAA,EAAAlB,KAAAkB,EAAAjB,MAAA,OASZ,OAPKL,EAAS,CACbM,OAAQ,QACRC,QAAS,CACPC,cAAeT,EACfU,eAAgB,oBAElBc,KAAMC,KAAKC,UAAUvE,IACtBoE,EAAAjB,OACsBK,MAClBzB,EAAkB,CAAEE,WAAAA,eAAwBA,UAC/Ca,GACD,OAHa,OAARC,EAAQqB,EAAAX,KAAAW,EAAAjB,OAIKJ,EAASW,OAAM,OAAxB,OAAAU,EAAAT,gBACH,CAAEZ,SAAAA,EAAUa,KADTQ,EAAAX,OACe,OAAA,UAAA,OAAAW,EAAAP,UAAAM,OAC1B,gBAnByBK,EAAAC,EAAAC,GAAA,OAAApC,EAAA0B,WAAAC,eAqBbU,aAAwB,IAAAC,EAAAnC,EAAAC,IAAAC,MAAG,SAAAkC,EACtC5C,EACAY,GAAa,IAAAC,EAAAC,EAAA,OAAAL,IAAAM,eAAA8B,GAAA,cAAAA,EAAA5B,KAAA4B,EAAA3B,MAAA,OAQZ,OANKL,EAAS,CACbM,OAAQ,MACRC,QAAS,CACPC,cAAeT,EACfU,eAAgB,qBAEnBuB,EAAA3B,OACsBK,MAClBzB,EAAkB,CACnBE,WAAAA,eACWA,+BACba,GACD,OALa,OAARC,EAAQ+B,EAAArB,KAAAqB,EAAA3B,OAMKJ,EAASW,OAAM,OAAxB,OAAAoB,EAAAnB,gBACH,CAAEZ,SAAAA,EAAUa,KADTkB,EAAArB,OACe,OAAA,UAAA,OAAAqB,EAAAjB,UAAAgB,OAC1B,gBAnBoCE,EAAAC,GAAA,OAAAJ,EAAAZ,WAAAC,eAqBxBgB,aAAqB,IAAAC,EAAAzC,EAAAC,IAAAC,MAAG,SAAAwC,EACnClD,EACAY,GAAa,IAAAC,EAAAC,EAAA,OAAAL,IAAAM,eAAAoC,GAAA,cAAAA,EAAAlC,KAAAkC,EAAAjC,MAAA,OAQZ,OANKL,EAAS,CACbM,OAAQ,MACRC,QAAS,CACPC,cAAeT,EACfU,eAAgB,qBAEnB6B,EAAAjC,OACsBK,MAClBzB,EAAkB,CACnBE,WAAAA,eACWA,0BACba,GACD,OALa,OAARC,EAAQqC,EAAA3B,KAAA2B,EAAAjC,OAMKJ,EAASW,OAAM,OAAxB,OAAA0B,EAAAzB,gBACH,CAAEZ,SAAAA,EAAUa,KADTwB,EAAA3B,OACe,OAAA,UAAA,OAAA2B,EAAAvB,UAAAsB,OAC1B,gBAnBiCE,EAAAC,GAAA,OAAAJ,EAAAlB,WAAAC,eAqBrBsB,aAAc,IAAAC,EAAA/C,EAAAC,IAAAC,MAAG,SAAA8C,EAAAC,GAAA,IAAAzD,EAAAa,EAAAC,EAAA,OAAAL,IAAAM,eAAA2C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,OAgB3B,OAfDlB,EAAUyD,EAAVzD,WAQMa,EAAS,CACbM,OAAQ,OACRC,QAAS,CACPC,cATCoC,EAAL7C,MAUIU,eAAgB,oBAElBc,KAAMC,KAAKC,UAAU,CAAEqB,IAbtBF,EAAHE,OAcCD,EAAAxC,OACsBK,MAClBzB,EAAkB,CACnBE,WAAAA,eACWA,kBACba,GACD,OALa,OAARC,EAAQ4C,EAAAlC,KAAAkC,EAAAxC,OAMKJ,EAASW,OAAM,OAAxB,OAAAiC,EAAAhC,gBACH,CAAEZ,SAAAA,EAAUa,KADT+B,EAAAlC,OACe,OAAA,UAAA,OAAAkC,EAAA9B,UAAA4B,OAC1B,gBAzB0BI,GAAA,OAAAL,EAAAxB,WAAAC,eC5Fd6B,EAAW,uBCiBFC,EAAmBjC,GAAA,OAAAkC,EAAAhC,WAAAC,WAmCxC,SAAA+B,IAAA,OAAAA,EAAAvD,EAAAC,IAAAC,MAnCM,SAAAC,EAAAZ,GAAA,IAAAiE,EAAApD,EAAAZ,EAAAiE,EAAA,OAAAxD,IAAAM,eAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAKuE,OAH5EN,EAAKb,EAALa,MACAZ,EAAUD,EAAVC,YAFAgE,EAAQjE,EAARiE,UAIS,CAAE/E,KJrBiB,iBIqBgBM,QAAS,CAAEjB,WAAW,KAAU0C,EAAAC,OAAAD,EAAAE,OAE/CX,EAAWP,EAAYY,GAAM,OAAtC,GACmB,OAD/BqD,EAAYjD,EAAAQ,MACDV,SAAS9B,QAAcgC,EAAAE,QAAA,MAapC,OAZF8C,EAAS,CACP/E,KJ3Ba,QI4BbM,QAAS,CACPxB,KAAMkG,EAAatC,KAAK5D,KACxBM,OAAQ4F,EAAatC,KAAKtD,OAC1BE,iBAAiB,KAGrBN,OAAOiG,QAAQC,aACb,GACAjG,SAASkG,MACTH,EAAatC,KAAKtD,OAAOgG,eACzBrD,EAAAU,gBACK4C,aAAaC,QAAQV,EAAUjD,IAAM,QAAA,OAAAI,EAAAU,gBAErC8C,EAAUR,IAAS,QAAAhD,EAAAE,QAAA,MAAA,QAGP,OAHOF,EAAAC,QAAAD,EAAAyD,GAAAzD,WAG5B0D,QAAQC,MAAK3D,EAAAyD,IAAQzD,EAAAU,gBACd8C,EAAUR,IAAS,QAKvB,OALuBhD,EAAAC,QAE1B+C,EAAS,CACP/E,KJ/CwB,iBIgDxBM,QAAS,CAAEjB,WAAW,KACrB0C,EAAA4D,WAAA,QAAA,UAAA,OAAA5D,EAAAY,UAAAjB,4BAENoB,WAAAC,oBAOqB6C,EAAkB/C,GAAA,OAAAgD,EAAA/C,WAAAC,WAiDvC,SAAA8C,IAAA,OAAAA,EAAAtE,EAAAC,IAAAC,MAjDM,SAAAwB,EAAA7B,GAAA,IAAA2D,EAAAe,EAAA/E,EAAAgF,EAAAC,EAAAhB,EAAA,OAAAxD,IAAAM,eAAAoB,GAAA,cAAAA,EAAAlB,KAAAkB,EAAAjB,MAAA,OAKuE,OAH5E6D,EAAQ1E,EAAR0E,SACA/E,EAAUK,EAAVL,YAFAgE,EAAQ3D,EAAR2D,UAIS,CAAE/E,KJ/DiB,iBI+DgBM,QAAS,CAAEjB,WAAW,KAAU6D,EAAAlB,OAAAkB,EAAAjB,OAEpC8B,EACpChD,EACA+E,GACD,OAH4B,GAImB,OAJ1CC,EAAuB7C,EAAAX,MAIDV,SAAS9B,QAAcmD,EAAAjB,QAAA,MACoB,OAA/D+D,EAAWD,EAAwBrD,KAAKuD,aAAeH,EAAQ5C,EAAAjB,QAC1CX,EAAWP,EAAYiF,GAAS,QAAzC,GACmB,OAD/BhB,EAAY9B,EAAAX,MACDV,SAAS9B,QAAcmD,EAAAjB,QAAA,MAYpC,OAXF8C,EAAS,CACP/E,KJ3EW,QI4EXM,QAAS,CACPxB,KAAMkG,EAAatC,KAAK5D,KACxBM,OAAQ4F,EAAatC,KAAKtD,OAC1BE,iBAAiB,KAGrB+F,aAAaC,QACXV,EACAmB,EAAwBrD,KAAKuD,aAC7B/C,EAAAT,iBAAA,QAKA,OAFFzD,OAAO0B,SAASwF,QACX/E,EAAkB,CAAEJ,WAAAA,QAAiBA,EAArCI,WACH+B,EAAAT,gBACK8C,EAAUR,IAAS,QAAA7B,EAAAjB,QAAA,MAAA,QAK1B,OAFFjD,OAAO0B,SAASwF,QACX/E,EAAkB,CAAEJ,WAAAA,QAAiBA,EAArCI,WACH+B,EAAAT,gBACK8C,EAAUR,IAAS,QAAA7B,EAAAjB,QAAA,MAAA,QAGP,OAHOiB,EAAAlB,QAAAkB,EAAAsC,GAAAtC,WAG5BuC,QAAQC,MAAKxC,EAAAsC,IAAQtC,EAAAT,gBACd8C,EAAUR,IAAS,QAKvB,OALuB7B,EAAAlB,QAE1B+C,EAAS,CACP/E,KJvGwB,iBIwGxBM,QAAS,CAAEjB,WAAW,KACrB6D,EAAAyC,WAAA,QAAA,UAAA,OAAAzC,EAAAP,UAAAM,4BAENH,WAAAC,oBAEeoD,EAAezC,OAC7BqB,EAAQrB,EAARqB,SAgBA,OAZAA,EAAS,CAAE/E,KJlHiB,iBIkHgBM,QAAS,CAAEjB,WAAW,KAClE0F,EAAS,CACP/E,KJrHiB,QIsHjBM,QAAS,CACPxB,KAAM,CACJC,SAAUC,OAAOC,SAASC,gBAAgBC,aAAa,SAAW,MAEpEC,OAAQ,GACRE,iBAAiB,KAGrB+F,aAAae,WAAWxB,GACjBG,EAAS,CACd/E,KJ/H0B,iBIgI1BM,QAAS,CAAEjB,WAAW,cAUJgH,EAAmB/C,GAAA,OAAAgD,EAAAxD,WAAAC,WAgCxC,SAAAuD,IAAA,OAAAA,EAAA/E,EAAAC,IAAAC,MAhCM,SAAAkC,EAAAK,GAAA,IAAAe,EAAAhE,EAAAjC,EAAA6C,EAAAqD,EAAA,OAAAxD,IAAAM,eAAA8B,GAAA,cAAAA,EAAA5B,KAAA4B,EAAA3B,MAAA,OAQJ,GAPD8C,EAAQf,EAARe,SACAhE,EAAUiD,EAAVjD,WAEAY,EAAKqC,EAALrC,OADA7C,EAAIkF,EAAJlF,MAGSC,UACPC,OAAOC,SAASC,gBAAgBqH,aAAa,OAAQzH,EAAKC,UAEvD4C,GAAKiC,EAAA3B,OAAA,MAIL,OAHH8C,EAAS,CACP/E,KJpJqB,cIqJrBM,QAASxB,IACR8E,EAAAnB,iBACI,GAAK,OAAA,OAAAmB,EAAA5B,OAAA4B,EAAA3B,OAGee,EAAcjC,EAAYjC,EAAM6C,GAAM,OAA/C,GACmB,OAD/BqD,EAAYpB,EAAArB,MACDV,SAAS9B,QAAc6D,EAAA3B,QAAA,MAInC,OAHH8C,EAAS,CACP/E,KJ7JmB,cI8JnBM,QAAS0E,EAAatC,KAAK5D,OAC1B8E,EAAAnB,iBACI,GAAI,QAEmD,OAA9DgD,QAAQC,MAAM,oBAAqBV,EAAatC,KAAKzC,SAAS2D,EAAAnB,iBACvD,GAAK,QAAAmB,EAAA3B,QAAA,MAAA,QAG4B,OAH5B2B,EAAA5B,QAAA4B,EAAA4B,GAAA5B,WAGd6B,QAAQC,MAAM,oBAAmB9B,EAAA4B,IAAS5B,EAAAnB,iBACnC,GAAK,QAAA,UAAA,OAAAmB,EAAAjB,UAAAgB,sBAEfb,WAAAC,oBAOqByD,EAA2BjD,GAAA,OAAAkD,EAAA3D,WAAAC,WAkDhD,SAAA0D,IAAA,OAAAA,EAAAlF,EAAAC,IAAAC,MAlDM,SAAAwC,EAAAO,GAAA,IAAAO,EAAAhE,EAAAY,EAAA+E,EAAA,OAAAlF,IAAAM,eAAAoC,GAAA,cAAAA,EAAAlC,KAAAkC,EAAAjC,MAAA,OAYF,OAVHlB,EAAUyD,EAAVzD,WACAY,EAAK6C,EAAL7C,OAFAoD,EAAQP,EAARO,UAIS,CACP/E,KJpLF,yCIqLEM,SAAS,IAEXyE,EAAS,CACP/E,KJtLF,qCIuLEM,QAAS,CAAEN,KAAM,OAAQC,QAAS,mCACjCiE,EAAAlC,OAAAkC,EAAAjC,OAE4BwB,EAAyB1C,EAAYY,GAAM,OAApD,GACmB,OADjC+E,EAAcxC,EAAA3B,MACDV,SAAS9B,QAAcmE,EAAAjC,QAAA,MAQrC,OAPH8C,EAAS,CACP/E,KJ7LN,qCI8LMM,QAAS,CAAEN,KAAM,UAAWC,QAASyG,EAAehE,KAAKzC,WAE3D8E,EAAS,CACP/E,KJnMN,yCIoMMM,SAAS,IACR4D,EAAAzB,iBACI,GAAI,QASR,OAPHsC,EAAS,CACP/E,KJvMN,qCIwMMM,QAAS,CAAEN,KAAM,QAASC,QAASyG,EAAehE,KAAKzC,WAEzD8E,EAAS,CACP/E,KJ7MN,yCI8MMM,SAAS,IACR4D,EAAAzB,iBACI,GAAK,QAAAyB,EAAAjC,QAAA,MAAA,QAaX,OAbWiC,EAAAlC,QAAAkC,EAAAsB,GAAAtB,WAGda,EAAS,CACP/E,KJlNJ,qCImNIM,QAAS,CACPN,KAAM,QACNC,QAAS,yCAGb8E,EAAS,CACP/E,KJ3NJ,yCI4NIM,SAAS,IACR4D,EAAAzB,iBACI,GAAK,QAAA,UAAA,OAAAyB,EAAAvB,UAAAsB,sBAEfnB,WAAAC,oBAEqB4D,EAAgBnD,GAAA,OAAAoD,EAAA9D,WAAAC,WA6BrC,SAAA6D,IAAA,OAAAA,EAAArF,EAAAC,IAAAC,MA7BM,SAAA8C,EAAAD,GAAA,IAAAS,EAAAhE,EAAAY,EAAAoE,EAAA,OAAAvE,IAAAM,eAAA2C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,OAGA,OAFL8C,EAAQT,EAARS,SACAhE,EAAUuD,EAAVvD,WACAY,EAAK2C,EAAL3C,MAAK8C,EAAAzC,OAAAyC,EAAAxC,OAOmC8B,EACpChD,EACAY,GACD,OAH4B,GAImB,OAJ1CoE,EAAuBtB,EAAAlC,MAIDV,SAAS9B,QAAc0E,EAAAxC,QAAA,MAGhD,OAFG8D,EAAwBrD,KAAKuD,aAC/BZ,aAAaC,QAAQV,EAAUmB,EAAwBrD,KAAKuD,aAC7DxB,EAAAhC,iBAAA,QAKC,OAFFzD,OAAO0B,SAASwF,QACX/E,EAAkB,CAAEJ,WAAAA,QAAiBA,EAArCI,WACHsD,EAAAhC,gBACK8C,EAAUR,IAAS,QAAAN,EAAAxC,QAAA,MAAA,QAGR,MAHQwC,EAAAzC,QAAAyC,EAAAe,GAAAf,WAG5Bc,EAAUR,GAAUN,EAAAe,GAAA,QAAA,UAAA,OAAAf,EAAA9B,UAAA4B,sBAGvBzB,WAAAC,oBAEqB8D,EAAoBhD,GAAA,OAAAiD,EAAAhE,WAAAC,WA2B1C,SAAA+D,IAHC,OAGDA,EAAAvF,EAAAC,IAAAC,MA3BO,SAAAsF,EAAAC,GAAA,IAAAjC,EAAAhE,EAAA+E,EAAAC,EAAAkB,EAAA,OAAAzF,IAAAM,eAAAoF,GAAA,cAAAA,EAAAlF,KAAAkF,EAAAjF,MAAA,OAO0C,GAN/C8C,EAAQiC,EAARjC,SACAhE,EAAUiG,EAAVjG,WAKM+E,EAAWT,aAAa8B,QAAQvC,IACzBsC,EAAAjF,OAAA,MAAA,OAAAiF,EAAAzE,iBAAA,OAAA,OAAAyE,EAAAlF,OAAAkF,EAAAjF,OAE2B8B,EACpChD,EACA+E,GACD,OAH4B,GAImB,OAJ1CC,EAAuBmB,EAAA3E,MAIDV,SAAS9B,QAAcmH,EAAAjF,QAAA,MAAA,OAAAiF,EAAAzE,uBAAAwE,EAC1ClB,EAAwBrD,KAAKuD,aAAWgB,EAAInB,GAAQ,QAEvC,OAApBP,EAAUR,GAAUmC,EAAAzE,gBACb,mBAAiB,QAAAyE,EAAAjF,QAAA,MAAA,QAGN,MAHMiF,EAAAlF,QAAAkF,EAAA1B,GAAA0B,WAG1B3B,EAAUR,GAAUmC,EAAA1B,GAAA,QAAA,UAAA,OAAA0B,EAAAvE,UAAAoE,sBAGvBjE,WAAAC,WAIM,IAAMwC,EAAY,SAACR,GAExB,OADAM,aAAae,WAAWxB,GACjBG,EAAS,CACd/E,KJpSiB,QIqSjBM,QAAS,CACPxB,KAAM,GACNM,OAAQ,GACRE,iBAAiB,MCvFjB8H,EAAeC,gBAAcxI,yBAzLwB,SACzDyI,GAEA,IAAQvG,EAA8BuG,EAA9BvG,WAAY2D,EAAkB4C,EAAlB5C,IAAK6C,EAAaD,EAAbC,SACzBC,EAA+BC,aAAWtH,EAAatB,GAAhD6I,EAAUF,KAAEzC,EAAQyC,KAErBG,EAAaC,yBAAW,IAAA9G,EAAAS,EAAAC,IAAAC,MAC5B,SAAAC,EAAOC,GAAa,OAAAH,IAAAM,eAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAAA,OAAAF,EAAAC,OAAAD,EAAAE,OAEUoC,EAAe,CACvCtD,WAAAA,EACAY,MAAAA,EACA+C,IAAAA,IACA,OAJe,GAKmB,MALnB3C,EAAAQ,KAKDV,SAAS9B,QAAcgC,EAAAE,OAAA,MAAA,OAAAF,EAAAU,iBAC9B,GAAK,OAAA,OAAAV,EAAAU,iBAEP,GAAI,OAAA,OAAAV,EAAAC,OAAAD,EAAAyD,GAAAzD,WAAAA,EAAAU,iBAEJ,GAAK,QAAA,UAAA,OAAAV,EAAAY,UAAAjB,oBAEf,gBAAAkB,GAAA,OAAA9B,EAAAgC,WAAAC,eACD,CAAChC,EAAY2D,IAIfmD,aAAU,WACR,GAAKH,EAAWpI,gBAAhB,CACA,IAAIwI,EAAWC,YAAWxG,EAAAC,IAAAC,MAAC,SAAAwB,IAAA,IAAA6C,EAAA,OAAAtE,IAAAM,eAAAoB,GAAA,cAAAA,EAAAlB,KAAAkB,EAAAjB,MAAA,OACsB,GAAzC6D,EAAWT,aAAa8B,QAAQvC,IACzB1B,EAAAjB,OAAA,MAAA,OAAAiB,EAAAT,iBAAA,OAAA,OAAAS,EAAAjB,OACS0F,EAAW7B,GAAS,OAA7B,IAAA5C,EAAAX,MACFW,EAAAjB,QAAA,MAAA,OAAAiB,EAAAT,gBACFpC,EAAwB,CAC7B0E,SAAAA,EACAhE,WAAAA,EACAY,MAAOmE,KACP,QAEmC,MAArCzF,EAAuB,CAAE0E,SAAAA,IACnB,IAAIiD,MAAM,2CAA0C,QAAA,UAAA,OAAA9E,EAAAP,UAAAM,OAE3D,KACH,OAAO,WAAA,OAAMgF,cAAcH,OAC1B,CAACJ,EAAWpI,gBAAiBqI,IAGhCE,aAAU,WACRtG,EAAAC,IAAAC,MAAC,SAAAkC,IAAA,IAAAuE,EAAAC,EAAAC,EAAA,OAAA5G,IAAAM,eAAA8B,GAAA,cAAAA,EAAA5B,KAAA4B,EAAA3B,MAAA,OAC2C,GAApCiG,EAAclJ,OAAO0B,SAAS2H,QACpBzE,EAAA3B,OAAA,MAAA,OAAA2B,EAAAnB,iBAAA,OAEyB,GADnC0F,EAAY,IAAIG,gBAAgBJ,KAChCE,EAAYD,EAAUI,IAAI3D,KACd8C,EAAWpI,iBAAesE,EAAA3B,QAAA,MAAA,OAAA2B,EAAA3B,OACpB0F,EAAWS,GAAU,OAA9B,IAAAxE,EAAArB,MACFqB,EAAA3B,QAAA,MAAA,OAAA2B,EAAAnB,gBACFpC,EAA2B,CAChC0E,SAAAA,EACApD,MAAOyG,EACPrH,WAAAA,KACA,QAEmC,MAArCV,EAAuB,CAAE0E,SAAAA,IACnB,IAAIiD,MAAM,2CAA0C,QAAA,UAAA,OAAApE,EAAAjB,UAAAgB,MAfhEpC,KAmBC,IAGHsG,aAAU,WACRtG,EAAAC,IAAAC,MAAC,SAAAwC,IAAA,IAAA6B,EAAA,OAAAtE,IAAAM,eAAAoC,GAAA,cAAAA,EAAAlC,KAAAkC,EAAAjC,MAAA,OACgD,KAAzC6D,EAAWT,aAAa8B,QAAQvC,KACrB8C,EAAWpI,iBAAe4E,EAAAjC,QAAA,MAAA,OAAAiC,EAAAjC,OACnB0F,EAAW7B,GAAS,OAA7B,IAAA5B,EAAA3B,MACF2B,EAAAjC,OAAA,MAAA,OAAAiC,EAAAzB,gBACFpC,EAA0B,CAC/B0E,SAAAA,EACAe,SAAAA,EACA/E,WAAAA,KACA,OAEmC,MAArCV,EAAuB,CAAE0E,SAAAA,IACnB,IAAIiD,MAAM,2CAA0C,QAAA9D,EAAAjC,QAAA,MAAA,QAAA,OAAAiC,EAAAzB,gBAGrDsC,EAAS,CACd/E,KL9GoB,iBK+GpBM,QAAS,CAAEjB,WAAW,MACtB,QAAA,UAAA,OAAA6E,EAAAvB,UAAAsB,MAlBN1C,KAqBC,IAEH,IAAMhC,EAAoBqI,eAAY,WACpC,OAAO5I,OAAO0B,SAASwF,QAClB/E,EAAkB,CAAEJ,WAAAA,QAAiBA,EAArCI,aAEJ,CAACJ,IAEEvB,EAASoI,eAAY,WACzB,OAAOvH,EAAuB,CAAE0E,SAAAA,MAC/B,IAEGtF,EAAiBmI,cAAWrG,EAAAC,IAAAC,MAAC,SAAA8C,IAAA,OAAA/C,IAAAM,eAAA2C,GAAA,cAAAA,EAAAzC,KAAAyC,EAAAxC,MAAA,OAAA,OAAAwC,EAAAxC,OACb5B,EAA4B,CAAE0E,SAAAA,EAAUhE,WAAAA,IAAa,OAA9D,OAAA0D,EAAAhC,gBAAAgC,EAAAlC,MACW,OAAA,UAAA,OAAAkC,EAAA9B,UAAA4B,OACrB,CAACxD,IAEEnB,EAAagI,yBAAW,IAAAZ,EAAAzF,EAAAC,IAAAC,MAC5B,SAAAsF,EAAAzC,GAAA,IAAAkE,EAAAC,EAAAC,EAAAC,EAAAC,EAAA7J,EAAA8J,EAAA/C,EAAAhH,EAAA,OAAA0C,IAAAM,eAAAoF,GAAA,cAAAA,EAAAlF,KAAAkF,EAAAjF,MAAA,OAkB0B,OAjBxBuG,EAAIlE,EAAJkE,KACAC,EAAQnE,EAARmE,SACAC,EAAQpE,EAARoE,SACAC,EAASrE,EAATqE,UACAC,EAAStE,EAATsE,UACA7J,EAAQuF,EAARvF,SACA8J,EAAMvE,EAANuE,OAEM/C,EAAWT,aAAa8B,QAAQvC,GAChC9F,EAAO,CACX0J,KAAAA,EACAC,SAAAA,EACAC,SAAAA,EACAC,UAAAA,EACAC,UAAAA,EACA7J,SAAAA,EACA8J,OAAAA,GACsB3B,EAAAjF,OACV5B,EAA2B,CACvC0E,SAAAA,EACAhE,WAAAA,EACAjC,KAAAA,EACA6C,MAAOmE,IACP,OAAA,OAAAoB,EAAAzE,gBAAAyE,EAAA3E,MAAA,OAAA,UAAA,OAAA2E,EAAAvE,UAAAoE,OACH,gBAAAlE,GAAA,OAAAmE,EAAAlE,WAAAC,eACD,CAAChC,IAGGlB,EAAyB+H,eAAY,WACzC,IAAM9B,EAAWT,aAAa8B,QAAQvC,GACtC,GAAKkB,EACL,OAAO9G,OAAO0B,SAASwF,QAClB/E,EAAkB,CAAEJ,WAAAA,QAAiBA,EAArCI,gBAAwE2E,KAE5E,CAAC/E,IAEEb,EAAwB0H,cAAWrG,EAAAC,IAAAC,MAAC,SAAAqH,IAAA,IAAAhD,EAAA,OAAAtE,IAAAM,eAAAiH,GAAA,cAAAA,EAAA/G,KAAA+G,EAAA9G,MAAA,OACO,GAAzC6D,EAAWT,aAAa8B,QAAQvC,IACzBmE,EAAA9G,OAAA,MAAA,OAAA8G,EAAAtG,iBAAS,GAAK,OAAA,OAAAsG,EAAA9G,OACb5B,EAAmC,CAC/C0E,SAAAA,EACAhE,WAAAA,EACAY,MAAOmE,IACP,OAAA,OAAAiD,EAAAtG,gBAAAsG,EAAAxG,MAAA,OAAA,UAAA,OAAAwG,EAAApG,UAAAmG,OACD,CAAC/H,IAEEiI,EAAeC,WACnB,WAAA,OAAA1I,KACKmH,GACHnI,kBAAAA,EACAC,OAAAA,EACAC,eAAAA,EACAG,WAAAA,EACAC,uBAAAA,EACAK,sBAAAA,MAEF,CACEwH,EACAnI,EACAC,EACAC,EACAG,EACAC,EACAK,IAIJ,OACEgJ,gBAAC9B,EAAa+B,UAASC,MAAOJ,GAC3BzB,qBAOiB,WACtB,IAAM8B,EAAUC,aAAWlC,GAC3B,IAAKiC,EACH,MAAM,IAAIrB,MAAM,8CAElB,OAAOqB"}
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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"}
@@ -441,23 +441,19 @@ function checkIsLocalhost() {
441
441
  var hostname = window.location.hostname;
442
442
  return Boolean(hostname === 'localhost' || hostname === '[::1]' || hostname.match(/(192)\.(168)\.(1)\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/gm) || hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/));
443
443
  }
444
- function getServerBasePath(_ref) {
445
- var domainName = _ref.domainName;
444
+ function getServerBasePath() {
446
445
  var isLocalhost = checkIsLocalhost();
447
446
  var serverPort = 4012;
448
447
  var serverLocalUrl = window.location.protocol + "//" + window.location.hostname + ":" + serverPort + "/api/" + apiVersion;
449
- var serverProdUrl = "https://" + domainName + "." + serverDomain + "/api/" + apiVersion;
450
- var serverBasePath = isLocalhost ? serverLocalUrl : serverProdUrl;
451
- return serverBasePath;
448
+ var serverProdUrl = "https://" + serverDomain + "/api/" + apiVersion;
449
+ return isLocalhost ? serverLocalUrl : serverProdUrl;
452
450
  }
453
- function getClientBasePath(_ref2) {
454
- var domainName = _ref2.domainName;
451
+ function getClientBasePath() {
455
452
  var isLocalhost = checkIsLocalhost();
456
453
  var clientPort = 5185;
457
454
  var clientLocalUrl = window.location.protocol + "//" + window.location.hostname + ":" + clientPort;
458
- var clientProdUrl = "https://" + domainName + "." + serverDomain;
459
- var clientBasePath = isLocalhost ? clientLocalUrl : clientProdUrl;
460
- return clientBasePath;
455
+ var clientProdUrl = "https://" + serverDomain;
456
+ return isLocalhost ? clientLocalUrl : clientProdUrl;
461
457
  }
462
458
 
463
459
  var getUserAPI = /*#__PURE__*/function () {
@@ -474,9 +470,7 @@ var getUserAPI = /*#__PURE__*/function () {
474
470
  }
475
471
  };
476
472
  _context.next = 3;
477
- return fetch(getServerBasePath({
478
- domainName: domainName
479
- }) + "/tenant/" + domainName + "/user", params);
473
+ return fetch(getServerBasePath() + "/app/" + domainName + "/user", params);
480
474
  case 3:
481
475
  response = _context.sent;
482
476
  _context.next = 6;
@@ -512,9 +506,7 @@ var updateUserAPI = /*#__PURE__*/function () {
512
506
  body: JSON.stringify(user)
513
507
  };
514
508
  _context2.next = 3;
515
- return fetch(getServerBasePath({
516
- domainName: domainName
517
- }) + "/tenant/" + domainName + "/user", params);
509
+ return fetch(getServerBasePath() + "/app/" + domainName + "/user", params);
518
510
  case 3:
519
511
  response = _context2.sent;
520
512
  _context2.next = 6;
@@ -549,9 +541,7 @@ var sendEmailVerificationAPI = /*#__PURE__*/function () {
549
541
  }
550
542
  };
551
543
  _context3.next = 3;
552
- return fetch(getServerBasePath({
553
- domainName: domainName
554
- }) + "/tenant/" + domainName + "/resend-email-verification", params);
544
+ return fetch(getServerBasePath() + "/app/" + domainName + "/resend-email-verification", params);
555
545
  case 3:
556
546
  response = _context3.sent;
557
547
  _context3.next = 6;
@@ -586,9 +576,7 @@ var refreshAccessTokenAPI = /*#__PURE__*/function () {
586
576
  }
587
577
  };
588
578
  _context4.next = 3;
589
- return fetch(getServerBasePath({
590
- domainName: domainName
591
- }) + "/tenant/" + domainName + "/refresh-access-token", params);
579
+ return fetch(getServerBasePath() + "/app/" + domainName + "/refresh-access-token", params);
592
580
  case 3:
593
581
  response = _context4.sent;
594
582
  _context4.next = 6;
@@ -627,9 +615,7 @@ var verifyTokenAPI = /*#__PURE__*/function () {
627
615
  })
628
616
  };
629
617
  _context5.next = 4;
630
- return fetch(getServerBasePath({
631
- domainName: domainName
632
- }) + "/tenant/" + domainName + "/verify-token", params);
618
+ return fetch(getServerBasePath() + "/app/" + domainName + "/verify-token", params);
633
619
  case 4:
634
620
  response = _context5.sent;
635
621
  _context5.next = 7;
@@ -765,17 +751,13 @@ function _setAutoLoginAction() {
765
751
  localStorage.setItem(TOKEN_LS, refreshAccessTokenFetch.data.accessToken);
766
752
  return _context2.abrupt("return");
767
753
  case 17:
768
- window.location.replace(getClientBasePath({
769
- domainName: domainName
770
- }) + "/" + domainName + "/" + routes.signin);
754
+ window.location.replace(getClientBasePath() + "/" + domainName + "/" + routes.signin);
771
755
  return _context2.abrupt("return", resetUser(dispatch));
772
756
  case 19:
773
757
  _context2.next = 23;
774
758
  break;
775
759
  case 21:
776
- window.location.replace(getClientBasePath({
777
- domainName: domainName
778
- }) + "/" + domainName + "/" + routes.signin);
760
+ window.location.replace(getClientBasePath() + "/" + domainName + "/" + routes.signin);
779
761
  return _context2.abrupt("return", resetUser(dispatch));
780
762
  case 23:
781
763
  _context2.next = 29;
@@ -989,9 +971,7 @@ function _checkTokenAction() {
989
971
  }
990
972
  return _context5.abrupt("return");
991
973
  case 10:
992
- window.location.replace(getClientBasePath({
993
- domainName: domainName
994
- }) + "/" + domainName + "/" + routes.signin);
974
+ window.location.replace(getClientBasePath() + "/" + domainName + "/" + routes.signin);
995
975
  return _context5.abrupt("return", resetUser(dispatch));
996
976
  case 12:
997
977
  _context5.next = 18;
@@ -1248,9 +1228,7 @@ var DauthProvider = function DauthProvider(props) {
1248
1228
  }))();
1249
1229
  }, []);
1250
1230
  var loginWithRedirect = useCallback(function () {
1251
- return window.location.replace(getClientBasePath({
1252
- domainName: domainName
1253
- }) + "/" + domainName + "/" + routes.signin);
1231
+ return window.location.replace(getClientBasePath() + "/" + domainName + "/" + routes.signin);
1254
1232
  }, [domainName]);
1255
1233
  var logout = useCallback(function () {
1256
1234
  return setLogoutAction({
@@ -1315,9 +1293,7 @@ var DauthProvider = function DauthProvider(props) {
1315
1293
  var updateUserWithRedirect = useCallback(function () {
1316
1294
  var token_ls = localStorage.getItem(TOKEN_LS);
1317
1295
  if (!token_ls) return;
1318
- return window.location.replace(getClientBasePath({
1319
- domainName: domainName
1320
- }) + "/" + domainName + "/" + routes.updateUser + "/" + token_ls);
1296
+ return window.location.replace(getClientBasePath() + "/" + domainName + "/" + routes.updateUser + "/" + token_ls);
1321
1297
  }, [domainName]);
1322
1298
  var sendEmailVerification = useCallback( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {
1323
1299
  var token_ls;
@@ -1 +1 @@
1
- {"version":3,"file":"dauth-context-react.esm.js","sources":["../src/initialDauthState.ts","../src/reducer/dauth.types.ts","../src/reducer/dauth.reducer.ts","../src/api/utils/config.ts","../src/api/dauth.api.ts","../src/constants.ts","../src/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: (typeof window !== 'undefined' ? window.document.documentElement.getAttribute('lang') : 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(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n );\n}\n\nexport function getServerBasePath({ domainName }: { domainName: string }) {\n const isLocalhost = checkIsLocalhost();\n const serverPort = 4012;\n const serverLocalUrl = `${window.location.protocol}//${window.location.hostname}:${serverPort}/api/${apiVersion}`;\n const serverProdUrl = `https://${domainName}.${serverDomain}/api/${apiVersion}`;\n const serverBasePath = isLocalhost ? serverLocalUrl : serverProdUrl;\n return serverBasePath;\n}\n\nexport function getClientBasePath({ domainName }: { domainName: string }) {\n const isLocalhost = checkIsLocalhost();\n const clientPort = 5185;\n const clientLocalUrl = `${window.location.protocol}//${window.location.hostname}:${clientPort}`;\n const clientProdUrl = `https://${domainName}.${serverDomain}`;\n const clientBasePath = isLocalhost ? clientLocalUrl : clientProdUrl;\n return clientBasePath;\n}\n","import { 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({ domainName })}/tenant/${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({ domainName })}/tenant/${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({\n domainName,\n })}/tenant/${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({\n domainName,\n })}/tenant/${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({\n domainName,\n })}/tenant/${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 })}/${domainName}/${routes.signin}`\n );\n return resetUser(dispatch);\n }\n } else {\n window.location.replace(\n `${getClientBasePath({ domainName })}/${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(TOKEN_LS, refreshAccessTokenFetch.data.accessToken);\n }\n return;\n } else {\n window.location.replace(\n `${getClientBasePath({ domainName })}/${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 })}/${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 })}/${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","_ref","domainName","isLocalhost","serverPort","serverLocalUrl","protocol","serverProdUrl","serverBasePath","getClientBasePath","_ref2","clientPort","clientLocalUrl","clientProdUrl","clientBasePath","getUserAPI","_asyncToGenerator","_regeneratorRuntime","mark","_callee","token","params","response","data","wrap","_callee$","_context","prev","next","method","headers","Authorization","fetch","sent","json","abrupt","stop","_x","_x2","apply","arguments","updateUserAPI","_callee2","_callee2$","_context2","body","JSON","stringify","_x3","_x4","_x5","sendEmailVerificationAPI","_ref3","_callee3","_callee3$","_context3","_x6","_x7","refreshAccessTokenAPI","_ref4","_callee4","_callee4$","_context4","_x8","_x9","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.esm.js","sources":["../src/initialDauthState.ts","../src/reducer/dauth.types.ts","../src/reducer/dauth.reducer.ts","../src/api/utils/config.ts","../src/api/dauth.api.ts","../src/constants.ts","../src/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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"}
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.0.1",
2
+ "version": "1.0.2",
3
3
  "license": "MIT",
4
4
  "main": "dist/index.js",
5
5
  "typings": "dist/index.d.ts",