dauth-context-react 0.1.984 → 0.1.986
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dauth-context-react.cjs.development.js +167 -77
- package/dist/dauth-context-react.cjs.development.js.map +1 -1
- package/dist/dauth-context-react.cjs.production.min.js +1 -1
- package/dist/dauth-context-react.cjs.production.min.js.map +1 -1
- package/dist/dauth-context-react.esm.js +167 -77
- package/dist/dauth-context-react.esm.js.map +1 -1
- package/dist/reducer/dauth.actions.d.ts +1 -6
- package/package.json +1 -1
- package/src/index.tsx +12 -12
- package/src/reducer/dauth.actions.ts +125 -80
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dauth-context-react.esm.js","sources":["../src/initialDauthState.ts","../src/reducer/dauth.types.ts","../src/reducer/dauth.reducer.ts","../src/api/utils/config.ts","../src/api/dauth.api.ts","../src/constants.ts","../src/reducer/dauth.actions.ts","../src/index.tsx"],"sourcesContent":["export interface IDauthUser {\n _id: string;\n dauthLicense?: string;\n sid: string;\n name: string;\n lastname: string;\n nickname: string;\n email: string;\n is_verified: boolean;\n language: string;\n avatar: {\n id: string;\n url: string;\n };\n role: string;\n tel_prefix: string;\n tel_suffix: string;\n createdAt: Date;\n updatedAt: Date;\n last_login: Date;\n}\n\nexport interface IDauthDomainState {\n name: string;\n loginRedirect: string;\n allowedOrigins: string[];\n}\n\nexport interface IDauthState {\n user: IDauthUser;\n domain: IDauthDomainState;\n isLoading: boolean;\n isAuthenticated: boolean;\n loginWithRedirect: () => void;\n logout: () => void;\n getAccessToken: () => string;\n updateUser: ({\n name,\n lastname,\n nickname,\n tel_prefix,\n tel_suffix,\n language,\n avatar,\n }: Partial<IDauthUser>) => void;\n updateUserWithRedirect: () => void;\n // Send email verification\n sev: {\n status: IActionStatus;\n isLoading: boolean;\n };\n sendEmailVerification: () => void;\n}\n\nexport interface IActionStatus {\n type: TStatusTypes;\n message: string;\n}\nexport type TStatusTypes = 'success' | 'error' | 'info' | 'warning';\n\nconst initialDauthState: IDauthState = {\n user: {\n language: window.document.documentElement.getAttribute('lang') || 'es',\n } as IDauthUser,\n domain: {} as IDauthDomainState,\n isLoading: false,\n isAuthenticated: false,\n loginWithRedirect: () => {},\n logout: () => {},\n getAccessToken: () => initialDauthState.getAccessToken() || '',\n updateUser: () => {},\n updateUserWithRedirect: () => {},\n // Send email verification\n sev: {\n status: {\n type: 'info',\n message: 'Sending email verification...',\n } as IActionStatus,\n isLoading: false,\n },\n sendEmailVerification: () => {},\n};\n\nexport default initialDauthState;\n","export const LOGIN = 'LOGIN';\nexport const SET_IS_LOADING = 'SET_IS_LOADING';\nexport const UPDATE_USER = 'UPDATE_USER';\nexport const SET_SEND_EMAIL_VERIFICATION_IS_LOADING =\n 'SET_SEND_EMAIL_VERIFICATION_IS_LOADING';\nexport const SET_SEND_EMAIL_VERIFICATION_STATUS =\n 'SET_SEND_EMAIL_VERIFICATION_STATUS';\n","import * as DauthTypes from './dauth.types';\n\nexport default function userReducer(state: any, action: any) {\n const { type, payload } = action;\n\n switch (type) {\n case DauthTypes.LOGIN:\n return {\n ...state,\n user: payload.user,\n domain: payload.domain,\n isAuthenticated: payload.isAuthenticated,\n };\n\n case DauthTypes.SET_IS_LOADING:\n return {\n ...state,\n isLoading: payload.isLoading,\n };\n\n case DauthTypes.UPDATE_USER:\n return {\n ...state,\n user: {\n ...state.user,\n ...payload,\n },\n };\n\n case DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS:\n return {\n ...state,\n sev: {\n ...state.sev,\n status: {\n type: payload.type,\n message: payload.message,\n },\n },\n };\n\n case DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING:\n return {\n ...state,\n sev: {\n ...state.sev,\n isLoading: payload,\n },\n };\n\n default:\n return state;\n }\n}\n","const isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n window.location.hostname === '[::1]' ||\n window.location.hostname.match(\n /(192)\\.(168)\\.(1)\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/gm\n ) ||\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\nexport const apiVersion = 'v1';\nexport const serverDomain = 'dauth.ovh';\n\nexport function getServerBasePath({ domainName }: { domainName: string }) {\n const serverPort = 4012;\n const serverLocalUrl = `${window.location.protocol}//${window.location.hostname}:${serverPort}/api/${apiVersion}`;\n const serverProdUrl = `https://${domainName}.${serverDomain}/api/${apiVersion}`;\n const serverBasePath = isLocalhost ? serverLocalUrl : serverProdUrl;\n return serverBasePath;\n}\n\nexport function getClientBasePath({ domainName }: { domainName: string }) {\n const clientPort = 5185;\n const clientLocalUrl = `${window.location.protocol}//${window.location.hostname}:${clientPort}`;\n const clientProdUrl = `https://${domainName}.${serverDomain}`;\n const clientBasePath = isLocalhost ? clientLocalUrl : clientProdUrl;\n return clientBasePath;\n}\n","import { IDauthUser } from '../initialDauthState';\nimport { getServerBasePath } from './utils/config';\n\nexport const getUserAPI = async (\n domainName: string,\n token: string\n): Promise<any> => {\n const params = {\n method: 'GET',\n headers: {\n Authorization: `${token}`,\n 'Content-Type': 'application/json',\n },\n };\n const response = await fetch(\n `${getServerBasePath({ domainName })}/t-get-user/${domainName}`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n\nexport const updateUserAPI = async (\n domainName: string,\n user: Partial<IDauthUser>,\n token: string\n): Promise<any> => {\n const params = {\n method: 'PATCH',\n headers: {\n Authorization: `${token}`,\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(user),\n };\n const response = await fetch(\n `${getServerBasePath({ domainName })}/t-update-user/${domainName}`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n\nexport const sendEmailVerificationAPI = async (\n domainName: string,\n token: string\n): Promise<any> => {\n const params = {\n method: 'GET',\n headers: {\n Authorization: token,\n 'Content-Type': 'application/json',\n },\n };\n const response = await fetch(\n `${getServerBasePath({\n domainName,\n })}/t-resend-email-verification/${domainName}`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n\nexport const refreshAccessTokenAPI = async (\n domainName: string,\n token: string\n): Promise<any> => {\n const params = {\n method: 'GET',\n headers: {\n Authorization: token,\n 'Content-Type': 'application/json',\n },\n };\n const response = await fetch(\n `${getServerBasePath({\n domainName,\n })}/t-refresh-access-token/${domainName}`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n","export const DAUTH_STATE = 'dauth_state';\n","import {\n getUserAPI,\n refreshAccessTokenAPI,\n sendEmailVerificationAPI,\n updateUserAPI,\n} from '../api/dauth.api';\nimport { DAUTH_STATE } from '../constants';\nimport { IDauthDomainState, IDauthUser } from '../initialDauthState';\nimport * as DauthTypes from './dauth.types';\n\ntype TSetDauthStateAction = {\n dispatch: any;\n dauth_state: string;\n domainName: string;\n};\nexport async function setDauthStateAction({\n dispatch,\n dauth_state,\n domainName,\n}: TSetDauthStateAction) {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: true } });\n try {\n const getUserFetch = await getUserAPI(domainName, dauth_state);\n if (getUserFetch.response.status === 200) {\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: getUserFetch.data.user,\n domain: getUserFetch.data.domain,\n isAuthenticated: true,\n },\n });\n window.history.replaceState(\n {},\n document.title,\n getUserFetch.data.domain.loginRedirect\n );\n return localStorage.setItem(DAUTH_STATE, dauth_state);\n } else {\n return localStorage.removeItem(DAUTH_STATE);\n }\n } catch (error) {\n localStorage.removeItem(DAUTH_STATE);\n console.log(error);\n } finally {\n dispatch({\n type: DauthTypes.SET_IS_LOADING,\n payload: { isLoading: false },\n });\n }\n}\n\ntype TSetAutoLoginAction = {\n dispatch: any;\n dauth_state_ls: string;\n domainName: string;\n};\nexport async function setAutoLoginAction({\n dispatch,\n dauth_state_ls,\n domainName,\n}: TSetAutoLoginAction) {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: true } });\n try {\n const getUserFetch = await getUserAPI(domainName, dauth_state_ls);\n if (getUserFetch.response.status === 200) {\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: getUserFetch.data.user,\n domain: getUserFetch.data.domain,\n isAuthenticated: true,\n },\n });\n localStorage.setItem(DAUTH_STATE, dauth_state_ls);\n } else {\n localStorage.removeItem(DAUTH_STATE);\n }\n } catch (error) {\n localStorage.removeItem(DAUTH_STATE);\n console.log(error);\n } finally {\n dispatch({\n type: DauthTypes.SET_IS_LOADING,\n payload: { isLoading: false },\n });\n }\n}\n\nexport async function setLogoutAction({ dispatch }: { dispatch: any }) {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: true } });\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: {\n language: window.document.documentElement.getAttribute('lang') || 'es',\n },\n domain: {},\n isAuthenticated: false,\n },\n });\n localStorage.removeItem(DAUTH_STATE);\n return dispatch({\n type: DauthTypes.SET_IS_LOADING,\n payload: { isLoading: false },\n });\n}\n\ntype TSetUpdateAction = {\n dispatch: any;\n domainName: string;\n user: Partial<IDauthUser>;\n token: string | null;\n};\nexport async function setUpdateUserAction({\n dispatch,\n domainName,\n user,\n token,\n}: TSetUpdateAction) {\n if (user.language) {\n window.document.documentElement.setAttribute('lang', user.language);\n }\n if (!token) {\n return dispatch({\n type: DauthTypes.UPDATE_USER,\n payload: user,\n });\n }\n try {\n const getUserFetch = await updateUserAPI(domainName, user, token);\n if (getUserFetch.response.status === 200) {\n return dispatch({\n type: DauthTypes.UPDATE_USER,\n payload: getUserFetch.data.user,\n });\n } else {\n console.log('Update user error');\n return;\n }\n } catch (error) {\n console.log('Update user error', error);\n }\n}\n\ntype TSetSendEmailVerificationAction = {\n dispatch: any;\n domainName: string;\n token: string;\n};\nexport async function sendEmailVerificationAction({\n dispatch,\n domainName,\n token,\n}: TSetSendEmailVerificationAction) {\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: true,\n });\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS,\n payload: { type: 'info', message: 'Sending email verification...' },\n });\n try {\n const sendEmailFetch = await sendEmailVerificationAPI(domainName, token);\n if (sendEmailFetch.response.status === 200) {\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS,\n payload: { type: 'success', message: sendEmailFetch.data.message },\n });\n return dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: false,\n });\n } else {\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS,\n payload: { type: 'error', message: sendEmailFetch.data.message },\n });\n return dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: false,\n });\n }\n } catch (error) {\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS,\n payload: {\n type: 'error',\n message: 'Send email verification fetch error',\n },\n });\n return dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: false,\n });\n }\n}\n\nexport async function refreshTokenAction({\n dispatch,\n domainName,\n token,\n}: {\n dispatch: any;\n domainName: string;\n token: string;\n}) {\n try {\n const refreshAccessTokenFetch = await refreshAccessTokenAPI(\n domainName,\n token\n );\n if (refreshAccessTokenFetch.response.status === 200) {\n\n console.log(refreshAccessTokenFetch.data.accessToken);\n localStorage.removeItem(DAUTH_STATE);\n // localStorage.setItem(\n // DAUTH_STATE,\n // refreshAccessTokenFetch.data.accessToken\n // );\n return;\n } else {\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: {} as IDauthUser,\n domain: {} as IDauthDomainState,\n isAuthenticated: false,\n },\n });\n localStorage.removeItem(DAUTH_STATE);\n return;\n }\n } catch (error) {\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: {} as IDauthUser,\n domain: {} as IDauthDomainState,\n isAuthenticated: false,\n },\n });\n localStorage.removeItem(DAUTH_STATE);\n console.log(error);\n }\n}\n\nexport async function checkTokenAction({\n dispatch,\n domainName,\n token,\n}: {\n dispatch: any;\n domainName: string;\n token: string;\n}) {\n try {\n const refreshAccessTokenFetch = await refreshAccessTokenAPI(\n domainName,\n token\n );\n if (refreshAccessTokenFetch.response.status === 200) {\n return;\n } else {\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: {} as IDauthUser,\n domain: {} as IDauthDomainState,\n isAuthenticated: false,\n },\n });\n localStorage.removeItem(DAUTH_STATE);\n return;\n }\n } catch (error) {\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: {} as IDauthUser,\n domain: {} as IDauthDomainState,\n isAuthenticated: false,\n },\n });\n localStorage.removeItem(DAUTH_STATE);\n throw error;\n }\n}\n","import React, {\n useReducer,\n useMemo,\n useEffect,\n useCallback,\n createContext,\n useContext,\n} from 'react';\nimport initialDauthState, {\n IDauthState,\n IDauthUser,\n} from './initialDauthState';\nimport userReducer from './reducer/dauth.reducer';\nimport * as action from './reducer/dauth.actions';\nimport { getClientBasePath } from './api/utils/config';\nimport { DAUTH_STATE } from './constants';\n\ninterface DauthProviderProps {\n domainName: string;\n sid: string;\n children: React.ReactNode;\n}\n\nexport const DauthProvider: React.FC<DauthProviderProps> = (\n props: DauthProviderProps\n) => {\n const { domainName, sid, children } = props;\n const [ds, dispatch] = useReducer(userReducer, initialDauthState);\n const dauthState = ds as IDauthState;\n\n // Refresh access token\n useEffect(() => {\n const token_ls = localStorage.getItem(DAUTH_STATE);\n if (!token_ls) return;\n action.refreshTokenAction({ dispatch, domainName, token: token_ls });\n }, [domainName]);\n\n // useEffect(() => {\n // const token_ls = localStorage.getItem(DAUTH_STATE);\n // let interval = setInterval(() => {\n // if (!token_ls) return;\n // action.checkTokenAction({ dispatch, domainName, token: token_ls });\n // }, 6000);\n // // }, 1000 * 60 * 5);\n // return () => clearInterval(interval);\n // }, [domainName]);\n\n // Catch login redirect\n useEffect(() => {\n const queryString = window.location.search;\n if (!queryString) return;\n const urlParams = new URLSearchParams(queryString);\n const dauth_state = urlParams.get(DAUTH_STATE);\n if (dauth_state && !dauthState.isAuthenticated) {\n action.setDauthStateAction({ dispatch, dauth_state, domainName });\n }\n }, [dauthState.isAuthenticated, domainName]);\n\n // Auto Login\n useEffect(() => {\n const dauth_state_ls = localStorage.getItem(DAUTH_STATE);\n if (dauth_state_ls && !dauthState.isAuthenticated) {\n action.setAutoLoginAction({ dispatch, dauth_state_ls, domainName });\n }\n }, [dauthState.isAuthenticated, domainName]);\n\n const loginWithRedirect = useCallback(() => {\n return window.location.replace(\n `${getClientBasePath({ domainName })}/t-sign/${sid}`\n );\n }, [domainName, sid]);\n\n const logout = useCallback(() => {\n return action.setLogoutAction({ dispatch });\n }, []);\n\n const getAccessToken = useCallback(() => {\n const token_ls = localStorage.getItem(DAUTH_STATE);\n return token_ls ?? 'token-not-found';\n }, []);\n\n const updateUser = useCallback(\n ({\n name,\n lastname,\n nickname,\n tel_prefix,\n tel_suffix,\n language,\n avatar,\n }: Partial<IDauthUser>) => {\n const token_ls = localStorage.getItem(DAUTH_STATE);\n const user = {\n name,\n lastname,\n nickname,\n tel_prefix,\n tel_suffix,\n language,\n avatar,\n } as Partial<IDauthUser>;\n return action.setUpdateUserAction({\n dispatch,\n domainName,\n user,\n token: token_ls,\n });\n },\n [domainName]\n );\n\n const updateUserWithRedirect = useCallback(() => {\n const token_ls = localStorage.getItem(DAUTH_STATE);\n if (!token_ls) return;\n return window.location.replace(\n `${getClientBasePath({ domainName })}/t-update-user/${sid}/${token_ls}`\n );\n }, [domainName, sid]);\n\n const sendEmailVerification = useCallback(() => {\n const token_ls = localStorage.getItem(DAUTH_STATE);\n if (!token_ls) return;\n return action.sendEmailVerificationAction({\n dispatch,\n domainName,\n token: token_ls,\n });\n }, [domainName]);\n\n const memoProvider = useMemo(\n () => ({\n ...dauthState,\n loginWithRedirect,\n logout,\n getAccessToken: () => getAccessToken() || '',\n updateUser,\n updateUserWithRedirect,\n sendEmailVerification,\n }),\n [\n dauthState,\n loginWithRedirect,\n logout,\n getAccessToken,\n updateUser,\n updateUserWithRedirect,\n sendEmailVerification,\n ]\n );\n\n return (\n <DauthContext.Provider value={memoProvider}>\n {children}\n </DauthContext.Provider>\n );\n};\n\nconst DauthContext = createContext(initialDauthState);\n\nexport const useDauth = () => {\n const context = useContext(DauthContext);\n if (!context) {\n throw new Error('useDauth must be used inside DauthProvider');\n }\n return context;\n};\n"],"names":["initialDauthState","user","language","window","document","documentElement","getAttribute","domain","isLoading","isAuthenticated","loginWithRedirect","logout","getAccessToken","updateUser","updateUserWithRedirect","sev","status","type","message","sendEmailVerification","LOGIN","SET_IS_LOADING","UPDATE_USER","SET_SEND_EMAIL_VERIFICATION_IS_LOADING","SET_SEND_EMAIL_VERIFICATION_STATUS","userReducer","state","action","payload","DauthTypes","_extends","isLocalhost","Boolean","location","hostname","match","apiVersion","serverDomain","getServerBasePath","_ref","domainName","serverPort","serverLocalUrl","protocol","serverProdUrl","serverBasePath","getClientBasePath","_ref2","clientPort","clientLocalUrl","clientProdUrl","clientBasePath","getUserAPI","_asyncToGenerator","_regeneratorRuntime","mark","_callee","token","params","response","data","wrap","_callee$","_context","prev","next","method","headers","Authorization","fetch","sent","json","abrupt","stop","_x","_x2","apply","arguments","updateUserAPI","_callee2","_callee2$","_context2","body","JSON","stringify","_x3","_x4","_x5","sendEmailVerificationAPI","_ref3","_callee3","_callee3$","_context3","_x6","_x7","refreshAccessTokenAPI","_ref4","_callee4","_callee4$","_context4","_x8","_x9","DAUTH_STATE","setDauthStateAction","_setDauthStateAction","dispatch","dauth_state","getUserFetch","history","replaceState","title","loginRedirect","localStorage","setItem","removeItem","t0","console","log","finish","setAutoLoginAction","_setAutoLoginAction","dauth_state_ls","setLogoutAction","_setLogoutAction","setUpdateUserAction","_setUpdateUserAction","setAttribute","sendEmailVerificationAction","_sendEmailVerificationAction","_callee5","_ref5","sendEmailFetch","_callee5$","_context5","refreshTokenAction","_refreshTokenAction","_callee6","_ref6","refreshAccessTokenFetch","_callee6$","_context6","accessToken","DauthProvider","props","sid","children","_useReducer","useReducer","ds","dauthState","useEffect","token_ls","getItem","queryString","search","urlParams","URLSearchParams","get","useCallback","replace","name","lastname","nickname","tel_prefix","tel_suffix","avatar","memoProvider","useMemo","React","DauthContext","Provider","value","createContext","useDauth","context","useContext","Error"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dauth-context-react.esm.js","sources":["../src/initialDauthState.ts","../src/reducer/dauth.types.ts","../src/reducer/dauth.reducer.ts","../src/api/utils/config.ts","../src/api/dauth.api.ts","../src/constants.ts","../src/reducer/dauth.actions.ts","../src/index.tsx"],"sourcesContent":["export interface IDauthUser {\n _id: string;\n dauthLicense?: string;\n sid: string;\n name: string;\n lastname: string;\n nickname: string;\n email: string;\n is_verified: boolean;\n language: string;\n avatar: {\n id: string;\n url: string;\n };\n role: string;\n tel_prefix: string;\n tel_suffix: string;\n createdAt: Date;\n updatedAt: Date;\n last_login: Date;\n}\n\nexport interface IDauthDomainState {\n name: string;\n loginRedirect: string;\n allowedOrigins: string[];\n}\n\nexport interface IDauthState {\n user: IDauthUser;\n domain: IDauthDomainState;\n isLoading: boolean;\n isAuthenticated: boolean;\n loginWithRedirect: () => void;\n logout: () => void;\n getAccessToken: () => string;\n updateUser: ({\n name,\n lastname,\n nickname,\n tel_prefix,\n tel_suffix,\n language,\n avatar,\n }: Partial<IDauthUser>) => void;\n updateUserWithRedirect: () => void;\n // Send email verification\n sev: {\n status: IActionStatus;\n isLoading: boolean;\n };\n sendEmailVerification: () => void;\n}\n\nexport interface IActionStatus {\n type: TStatusTypes;\n message: string;\n}\nexport type TStatusTypes = 'success' | 'error' | 'info' | 'warning';\n\nconst initialDauthState: IDauthState = {\n user: {\n language: window.document.documentElement.getAttribute('lang') || 'es',\n } as IDauthUser,\n domain: {} as IDauthDomainState,\n isLoading: false,\n isAuthenticated: false,\n loginWithRedirect: () => {},\n logout: () => {},\n getAccessToken: () => initialDauthState.getAccessToken() || '',\n updateUser: () => {},\n updateUserWithRedirect: () => {},\n // Send email verification\n sev: {\n status: {\n type: 'info',\n message: 'Sending email verification...',\n } as IActionStatus,\n isLoading: false,\n },\n sendEmailVerification: () => {},\n};\n\nexport default initialDauthState;\n","export const LOGIN = 'LOGIN';\nexport const SET_IS_LOADING = 'SET_IS_LOADING';\nexport const UPDATE_USER = 'UPDATE_USER';\nexport const SET_SEND_EMAIL_VERIFICATION_IS_LOADING =\n 'SET_SEND_EMAIL_VERIFICATION_IS_LOADING';\nexport const SET_SEND_EMAIL_VERIFICATION_STATUS =\n 'SET_SEND_EMAIL_VERIFICATION_STATUS';\n","import * as DauthTypes from './dauth.types';\n\nexport default function userReducer(state: any, action: any) {\n const { type, payload } = action;\n\n switch (type) {\n case DauthTypes.LOGIN:\n return {\n ...state,\n user: payload.user,\n domain: payload.domain,\n isAuthenticated: payload.isAuthenticated,\n };\n\n case DauthTypes.SET_IS_LOADING:\n return {\n ...state,\n isLoading: payload.isLoading,\n };\n\n case DauthTypes.UPDATE_USER:\n return {\n ...state,\n user: {\n ...state.user,\n ...payload,\n },\n };\n\n case DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS:\n return {\n ...state,\n sev: {\n ...state.sev,\n status: {\n type: payload.type,\n message: payload.message,\n },\n },\n };\n\n case DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING:\n return {\n ...state,\n sev: {\n ...state.sev,\n isLoading: payload,\n },\n };\n\n default:\n return state;\n }\n}\n","const isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n window.location.hostname === '[::1]' ||\n window.location.hostname.match(\n /(192)\\.(168)\\.(1)\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/gm\n ) ||\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\nexport const apiVersion = 'v1';\nexport const serverDomain = 'dauth.ovh';\n\nexport function getServerBasePath({ domainName }: { domainName: string }) {\n const serverPort = 4012;\n const serverLocalUrl = `${window.location.protocol}//${window.location.hostname}:${serverPort}/api/${apiVersion}`;\n const serverProdUrl = `https://${domainName}.${serverDomain}/api/${apiVersion}`;\n const serverBasePath = isLocalhost ? serverLocalUrl : serverProdUrl;\n return serverBasePath;\n}\n\nexport function getClientBasePath({ domainName }: { domainName: string }) {\n const clientPort = 5185;\n const clientLocalUrl = `${window.location.protocol}//${window.location.hostname}:${clientPort}`;\n const clientProdUrl = `https://${domainName}.${serverDomain}`;\n const clientBasePath = isLocalhost ? clientLocalUrl : clientProdUrl;\n return clientBasePath;\n}\n","import { IDauthUser } from '../initialDauthState';\nimport { getServerBasePath } from './utils/config';\n\nexport const getUserAPI = async (\n domainName: string,\n token: string\n): Promise<any> => {\n const params = {\n method: 'GET',\n headers: {\n Authorization: `${token}`,\n 'Content-Type': 'application/json',\n },\n };\n const response = await fetch(\n `${getServerBasePath({ domainName })}/t-get-user/${domainName}`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n\nexport const updateUserAPI = async (\n domainName: string,\n user: Partial<IDauthUser>,\n token: string\n): Promise<any> => {\n const params = {\n method: 'PATCH',\n headers: {\n Authorization: `${token}`,\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(user),\n };\n const response = await fetch(\n `${getServerBasePath({ domainName })}/t-update-user/${domainName}`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n\nexport const sendEmailVerificationAPI = async (\n domainName: string,\n token: string\n): Promise<any> => {\n const params = {\n method: 'GET',\n headers: {\n Authorization: token,\n 'Content-Type': 'application/json',\n },\n };\n const response = await fetch(\n `${getServerBasePath({\n domainName,\n })}/t-resend-email-verification/${domainName}`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n\nexport const refreshAccessTokenAPI = async (\n domainName: string,\n token: string\n): Promise<any> => {\n const params = {\n method: 'GET',\n headers: {\n Authorization: token,\n 'Content-Type': 'application/json',\n },\n };\n const response = await fetch(\n `${getServerBasePath({\n domainName,\n })}/t-refresh-access-token/${domainName}`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n","export const DAUTH_STATE = 'dauth_state';\n","import {\n getUserAPI,\n refreshAccessTokenAPI,\n sendEmailVerificationAPI,\n updateUserAPI,\n} from '../api/dauth.api';\nimport { DAUTH_STATE } from '../constants';\nimport { IDauthDomainState, IDauthUser } from '../initialDauthState';\nimport * as DauthTypes from './dauth.types';\n\ntype TSetDauthStateAction = {\n dispatch: any;\n dauth_state: string;\n domainName: string;\n};\nexport async function setDauthStateAction({\n dispatch,\n dauth_state,\n domainName,\n}: TSetDauthStateAction) {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: true } });\n try {\n const getUserFetch = await getUserAPI(domainName, dauth_state);\n if (getUserFetch.response.status === 200) {\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: getUserFetch.data.user,\n domain: getUserFetch.data.domain,\n isAuthenticated: true,\n },\n });\n window.history.replaceState(\n {},\n document.title,\n getUserFetch.data.domain.loginRedirect\n );\n return localStorage.setItem(DAUTH_STATE, dauth_state);\n } else {\n return localStorage.removeItem(DAUTH_STATE);\n }\n } catch (error) {\n localStorage.removeItem(DAUTH_STATE);\n console.log(error);\n } finally {\n dispatch({\n type: DauthTypes.SET_IS_LOADING,\n payload: { isLoading: false },\n });\n }\n}\n\ntype TSetAutoLoginAction = {\n dispatch: any;\n dauth_state_ls: string;\n domainName: string;\n};\nexport async function setAutoLoginAction({\n dispatch,\n dauth_state_ls,\n domainName,\n}: TSetAutoLoginAction) {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: true } });\n try {\n const refreshAccessTokenFetch = await refreshAccessTokenAPI(\n domainName,\n dauth_state_ls\n );\n if (refreshAccessTokenFetch.response.status === 200) {\n const getUserFetch = await getUserAPI(domainName, dauth_state_ls);\n if (getUserFetch.response.status === 200) {\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: getUserFetch.data.user,\n domain: getUserFetch.data.domain,\n isAuthenticated: true,\n },\n });\n localStorage.setItem(\n DAUTH_STATE,\n refreshAccessTokenFetch.data.accessToken\n );\n return;\n } else {\n resetUser({ dispatch });\n // dispatch({\n // type: DauthTypes.LOGIN,\n // payload: {\n // user: {} as IDauthUser,\n // domain: {} as IDauthDomainState,\n // isAuthenticated: false,\n // },\n // });\n // localStorage.removeItem(DAUTH_STATE);\n }\n } else {\n resetUser({ dispatch });\n // dispatch({\n // type: DauthTypes.LOGIN,\n // payload: {\n // user: {} as IDauthUser,\n // domain: {} as IDauthDomainState,\n // isAuthenticated: false,\n // },\n // });\n // localStorage.removeItem(DAUTH_STATE);\n }\n } catch (error) {\n resetUser({ dispatch });\n // localStorage.removeItem(DAUTH_STATE);\n console.log(error);\n } finally {\n dispatch({\n type: DauthTypes.SET_IS_LOADING,\n payload: { isLoading: false },\n });\n }\n}\n\nexport async function setLogoutAction({ dispatch }: { dispatch: any }) {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: true } });\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: {\n language: window.document.documentElement.getAttribute('lang') || 'es',\n },\n domain: {},\n isAuthenticated: false,\n },\n });\n localStorage.removeItem(DAUTH_STATE);\n return dispatch({\n type: DauthTypes.SET_IS_LOADING,\n payload: { isLoading: false },\n });\n}\n\ntype TSetUpdateAction = {\n dispatch: any;\n domainName: string;\n user: Partial<IDauthUser>;\n token: string | null;\n};\nexport async function setUpdateUserAction({\n dispatch,\n domainName,\n user,\n token,\n}: TSetUpdateAction) {\n if (user.language) {\n window.document.documentElement.setAttribute('lang', user.language);\n }\n if (!token) {\n return dispatch({\n type: DauthTypes.UPDATE_USER,\n payload: user,\n });\n }\n try {\n const getUserFetch = await updateUserAPI(domainName, user, token);\n if (getUserFetch.response.status === 200) {\n return dispatch({\n type: DauthTypes.UPDATE_USER,\n payload: getUserFetch.data.user,\n });\n } else {\n console.log('Update user error');\n return;\n }\n } catch (error) {\n console.log('Update user error', error);\n }\n}\n\ntype TSetSendEmailVerificationAction = {\n dispatch: any;\n domainName: string;\n token: string;\n};\nexport async function sendEmailVerificationAction({\n dispatch,\n domainName,\n token,\n}: TSetSendEmailVerificationAction) {\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: true,\n });\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS,\n payload: { type: 'info', message: 'Sending email verification...' },\n });\n try {\n const sendEmailFetch = await sendEmailVerificationAPI(domainName, token);\n if (sendEmailFetch.response.status === 200) {\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS,\n payload: { type: 'success', message: sendEmailFetch.data.message },\n });\n return dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: false,\n });\n } else {\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS,\n payload: { type: 'error', message: sendEmailFetch.data.message },\n });\n return dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: false,\n });\n }\n } catch (error) {\n dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_STATUS,\n payload: {\n type: 'error',\n message: 'Send email verification fetch error',\n },\n });\n return dispatch({\n type: DauthTypes.SET_SEND_EMAIL_VERIFICATION_IS_LOADING,\n payload: false,\n });\n }\n}\n\n// export async function refreshTokenAction({\n// dispatch,\n// domainName,\n// token,\n// }: {\n// dispatch: any;\n// domainName: string;\n// token: string;\n// }) {\n// try {\n// const refreshAccessTokenFetch = await refreshAccessTokenAPI(\n// domainName,\n// token\n// );\n// if (refreshAccessTokenFetch.response.status === 200) {\n// console.log(refreshAccessTokenFetch.data.accessToken);\n// localStorage.removeItem(DAUTH_STATE);\n// localStorage.setItem(\n// DAUTH_STATE,\n// refreshAccessTokenFetch.data.accessToken\n// );\n// return;\n// } else {\n// dispatch({\n// type: DauthTypes.LOGIN,\n// payload: {\n// user: {} as IDauthUser,\n// domain: {} as IDauthDomainState,\n// isAuthenticated: false,\n// },\n// });\n// localStorage.removeItem(DAUTH_STATE);\n// return;\n// }\n// } catch (error) {\n// dispatch({\n// type: DauthTypes.LOGIN,\n// payload: {\n// user: {} as IDauthUser,\n// domain: {} as IDauthDomainState,\n// isAuthenticated: false,\n// },\n// });\n// localStorage.removeItem(DAUTH_STATE);\n// console.log(error);\n// }\n// }\n\nexport async function checkTokenAction({\n dispatch,\n domainName,\n token,\n}: {\n dispatch: any;\n domainName: string;\n token: string;\n}) {\n try {\n const refreshAccessTokenFetch = await refreshAccessTokenAPI(\n domainName,\n token\n );\n if (refreshAccessTokenFetch.response.status === 200) {\n return;\n } else {\n return resetUser(dispatch);\n // dispatch({\n // type: DauthTypes.LOGIN,\n // payload: {\n // user: {} as IDauthUser,\n // domain: {} as IDauthDomainState,\n // isAuthenticated: false,\n // },\n // });\n // localStorage.removeItem(DAUTH_STATE);\n }\n } catch (error) {\n resetUser(dispatch);\n // dispatch({\n // type: DauthTypes.LOGIN,\n // payload: {\n // user: {} as IDauthUser,\n // domain: {} as IDauthDomainState,\n // isAuthenticated: false,\n // },\n // });\n // localStorage.removeItem(DAUTH_STATE);\n throw error;\n }\n}\n\n///////////////////////////////////////////\n//////////////////////////////////////////\nconst resetUser = (dispatch: any) => {\n localStorage.removeItem(DAUTH_STATE);\n return dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: {} as IDauthUser,\n domain: {} as IDauthDomainState,\n isAuthenticated: false,\n },\n });\n};\n","import React, {\n useReducer,\n useMemo,\n useEffect,\n useCallback,\n createContext,\n useContext,\n} from 'react';\nimport initialDauthState, {\n IDauthState,\n IDauthUser,\n} from './initialDauthState';\nimport userReducer from './reducer/dauth.reducer';\nimport * as action from './reducer/dauth.actions';\nimport { getClientBasePath } from './api/utils/config';\nimport { DAUTH_STATE } from './constants';\n\ninterface DauthProviderProps {\n domainName: string;\n sid: string;\n children: React.ReactNode;\n}\n\nexport const DauthProvider: React.FC<DauthProviderProps> = (\n props: DauthProviderProps\n) => {\n const { domainName, sid, children } = props;\n const [ds, dispatch] = useReducer(userReducer, initialDauthState);\n const dauthState = ds as IDauthState;\n\n // Refresh access token\n // useEffect(() => {\n // const token_ls = localStorage.getItem(DAUTH_STATE);\n // if (!token_ls) return;\n // action.refreshTokenAction({ dispatch, domainName, token: token_ls });\n // }, [domainName]);\n\n useEffect(() => {\n const token_ls = localStorage.getItem(DAUTH_STATE);\n let interval = setInterval(() => {\n if (!token_ls) return;\n action.checkTokenAction({ dispatch, domainName, token: token_ls });\n }, 6000);\n // }, 1000 * 60 * 5);\n return () => clearInterval(interval);\n }, [domainName]);\n\n // Catch login redirect\n useEffect(() => {\n const queryString = window.location.search;\n if (!queryString) return;\n const urlParams = new URLSearchParams(queryString);\n const dauth_state = urlParams.get(DAUTH_STATE);\n if (dauth_state && !dauthState.isAuthenticated) {\n action.setDauthStateAction({ dispatch, dauth_state, domainName });\n }\n }, [dauthState.isAuthenticated, domainName]);\n\n // Auto Login\n useEffect(() => {\n const dauth_state_ls = localStorage.getItem(DAUTH_STATE);\n if (dauth_state_ls && !dauthState.isAuthenticated) {\n action.setAutoLoginAction({ dispatch, dauth_state_ls, domainName });\n }\n }, [dauthState.isAuthenticated, domainName]);\n\n const loginWithRedirect = useCallback(() => {\n return window.location.replace(\n `${getClientBasePath({ domainName })}/t-sign/${sid}`\n );\n }, [domainName, sid]);\n\n const logout = useCallback(() => {\n return action.setLogoutAction({ dispatch });\n }, []);\n\n const getAccessToken = useCallback(() => {\n const token_ls = localStorage.getItem(DAUTH_STATE);\n return token_ls ?? 'token-not-found';\n }, []);\n\n const updateUser = useCallback(\n ({\n name,\n lastname,\n nickname,\n tel_prefix,\n tel_suffix,\n language,\n avatar,\n }: Partial<IDauthUser>) => {\n const token_ls = localStorage.getItem(DAUTH_STATE);\n const user = {\n name,\n lastname,\n nickname,\n tel_prefix,\n tel_suffix,\n language,\n avatar,\n } as Partial<IDauthUser>;\n return action.setUpdateUserAction({\n dispatch,\n domainName,\n user,\n token: token_ls,\n });\n },\n [domainName]\n );\n\n const updateUserWithRedirect = useCallback(() => {\n const token_ls = localStorage.getItem(DAUTH_STATE);\n if (!token_ls) return;\n return window.location.replace(\n `${getClientBasePath({ domainName })}/t-update-user/${sid}/${token_ls}`\n );\n }, [domainName, sid]);\n\n const sendEmailVerification = useCallback(() => {\n const token_ls = localStorage.getItem(DAUTH_STATE);\n if (!token_ls) return;\n return action.sendEmailVerificationAction({\n dispatch,\n domainName,\n token: token_ls,\n });\n }, [domainName]);\n\n const memoProvider = useMemo(\n () => ({\n ...dauthState,\n loginWithRedirect,\n logout,\n getAccessToken: () => getAccessToken() || '',\n updateUser,\n updateUserWithRedirect,\n sendEmailVerification,\n }),\n [\n dauthState,\n loginWithRedirect,\n logout,\n getAccessToken,\n updateUser,\n updateUserWithRedirect,\n sendEmailVerification,\n ]\n );\n\n return (\n <DauthContext.Provider value={memoProvider}>\n {children}\n </DauthContext.Provider>\n );\n};\n\nconst DauthContext = createContext(initialDauthState);\n\nexport const useDauth = () => {\n const context = useContext(DauthContext);\n if (!context) {\n throw new Error('useDauth must be used inside DauthProvider');\n }\n return context;\n};\n"],"names":["initialDauthState","user","language","window","document","documentElement","getAttribute","domain","isLoading","isAuthenticated","loginWithRedirect","logout","getAccessToken","updateUser","updateUserWithRedirect","sev","status","type","message","sendEmailVerification","LOGIN","SET_IS_LOADING","UPDATE_USER","SET_SEND_EMAIL_VERIFICATION_IS_LOADING","SET_SEND_EMAIL_VERIFICATION_STATUS","userReducer","state","action","payload","DauthTypes","_extends","isLocalhost","Boolean","location","hostname","match","apiVersion","serverDomain","getServerBasePath","_ref","domainName","serverPort","serverLocalUrl","protocol","serverProdUrl","serverBasePath","getClientBasePath","_ref2","clientPort","clientLocalUrl","clientProdUrl","clientBasePath","getUserAPI","_asyncToGenerator","_regeneratorRuntime","mark","_callee","token","params","response","data","wrap","_callee$","_context","prev","next","method","headers","Authorization","fetch","sent","json","abrupt","stop","_x","_x2","apply","arguments","updateUserAPI","_callee2","_callee2$","_context2","body","JSON","stringify","_x3","_x4","_x5","sendEmailVerificationAPI","_ref3","_callee3","_callee3$","_context3","_x6","_x7","refreshAccessTokenAPI","_ref4","_callee4","_callee4$","_context4","_x8","_x9","DAUTH_STATE","setDauthStateAction","_setDauthStateAction","dispatch","dauth_state","getUserFetch","history","replaceState","title","loginRedirect","localStorage","setItem","removeItem","t0","console","log","finish","setAutoLoginAction","_setAutoLoginAction","dauth_state_ls","refreshAccessTokenFetch","accessToken","resetUser","setLogoutAction","_setLogoutAction","setUpdateUserAction","_setUpdateUserAction","setAttribute","sendEmailVerificationAction","_sendEmailVerificationAction","_callee5","_ref5","sendEmailFetch","_callee5$","_context5","checkTokenAction","_checkTokenAction","_callee6","_ref6","_callee6$","_context6","DauthProvider","props","sid","children","_useReducer","useReducer","ds","dauthState","useEffect","token_ls","getItem","interval","setInterval","clearInterval","queryString","search","urlParams","URLSearchParams","get","useCallback","replace","name","lastname","nickname","tel_prefix","tel_suffix","avatar","memoProvider","useMemo","React","DauthContext","Provider","value","createContext","useDauth","context","useContext","Error"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4DA,IAAMA,iBAAiB,GAAgB;EACrCC,IAAI,EAAE;IACJC,QAAQ,eAAEC,MAAM,CAACC,QAAQ,CAACC,eAAe,CAACC,YAAY,CAAC,MAAM,CAAC,IAAI;GACrD;EACfC,MAAM,EAAE,EAAuB;EAC/BC,SAAS,EAAE,KAAK;EAChBC,eAAe,EAAE,KAAK;EACtBC,iBAAiB,EAAE,SAAAA,sBAAQ;EAC3BC,MAAM,EAAE,SAAAA,WAAQ;EAChBC,cAAc,EAAE,SAAAA;IAAA,OAAMZ,iBAAiB,CAACY,cAAc,EAAE,IAAI,EAAE;;EAC9DC,UAAU,EAAE,SAAAA,eAAQ;EACpBC,sBAAsB,EAAE,SAAAA,2BAAQ;;EAEhCC,GAAG,EAAE;IACHC,MAAM,EAAE;MACNC,IAAI,EAAE,MAAM;MACZC,OAAO,EAAE;KACO;IAClBV,SAAS,EAAE;GACZ;EACDW,qBAAqB,EAAE,SAAAA;CACxB;;ACjFM,IAAMC,KAAK,GAAG,OAAO;AAC5B,AAAO,IAAMC,cAAc,GAAG,gBAAgB;AAC9C,AAAO,IAAMC,WAAW,GAAG,aAAa;AACxC,AAAO,IAAMC,sCAAsC,GACjD,wCAAwC;AAC1C,AAAO,IAAMC,kCAAkC,GAC7C,oCAAoC;;SCJdC,WAAWA,CAACC,KAAU,EAAEC,MAAW;EACzD,IAAQV,IAAI,GAAcU,MAAM,CAAxBV,IAAI;IAAEW,OAAO,GAAKD,MAAM,CAAlBC,OAAO;EAErB,QAAQX,IAAI;IACV,KAAKY,KAAgB;MACnB,OAAAC,QAAA,KACKJ,KAAK;QACRzB,IAAI,EAAE2B,OAAO,CAAC3B,IAAI;QAClBM,MAAM,EAAEqB,OAAO,CAACrB,MAAM;QACtBE,eAAe,EAAEmB,OAAO,CAACnB;;IAG7B,KAAKoB,cAAyB;MAC5B,OAAAC,QAAA,KACKJ,KAAK;QACRlB,SAAS,EAAEoB,OAAO,CAACpB;;IAGvB,KAAKqB,WAAsB;MACzB,OAAAC,QAAA,KACKJ,KAAK;QACRzB,IAAI,EAAA6B,QAAA,KACCJ,KAAK,CAACzB,IAAI,EACV2B,OAAO;;IAIhB,KAAKC,kCAA6C;MAChD,OAAAC,QAAA,KACKJ,KAAK;QACRX,GAAG,EAAAe,QAAA,KACEJ,KAAK,CAACX,GAAG;UACZC,MAAM,EAAE;YACNC,IAAI,EAAEW,OAAO,CAACX,IAAI;YAClBC,OAAO,EAAEU,OAAO,CAACV;;;;IAKzB,KAAKW,sCAAiD;MACpD,OAAAC,QAAA,KACKJ,KAAK;QACRX,GAAG,EAAAe,QAAA,KACEJ,KAAK,CAACX,GAAG;UACZP,SAAS,EAAEoB;;;IAIjB;MACE,OAAOF,KAAK;;AAElB;;ACrDA,IAAMK,WAAW,gBAAGC,OAAO,CACzB7B,MAAM,CAAC8B,QAAQ,CAACC,QAAQ,KAAK,WAAW,IACtC/B,MAAM,CAAC8B,QAAQ,CAACC,QAAQ,KAAK,OAAO,iBACpC/B,MAAM,CAAC8B,QAAQ,CAACC,QAAQ,CAACC,KAAK,CAC5B,wEAAwE,CACzE,iBACDhC,MAAM,CAAC8B,QAAQ,CAACC,QAAQ,CAACC,KAAK,CAC5B,wDAAwD,CACzD,CACJ;AACD,AAAO,IAAMC,UAAU,GAAG,IAAI;AAC9B,AAAO,IAAMC,YAAY,GAAG,WAAW;AAEvC,SAAgBC,iBAAiBA,CAAAC,IAAA;MAAGC,UAAU,GAAAD,IAAA,CAAVC,UAAU;EAC5C,IAAMC,UAAU,GAAG,IAAI;EACvB,IAAMC,cAAc,GAAMvC,MAAM,CAAC8B,QAAQ,CAACU,QAAQ,UAAKxC,MAAM,CAAC8B,QAAQ,CAACC,QAAQ,SAAIO,UAAU,aAAQL,UAAY;EACjH,IAAMQ,aAAa,gBAAcJ,UAAU,SAAIH,YAAY,aAAQD,UAAY;EAC/E,IAAMS,cAAc,GAAGd,WAAW,GAAGW,cAAc,GAAGE,aAAa;EACnE,OAAOC,cAAc;AACvB;AAEA,SAAgBC,iBAAiBA,CAAAC,KAAA;MAAGP,UAAU,GAAAO,KAAA,CAAVP,UAAU;EAC5C,IAAMQ,UAAU,GAAG,IAAI;EACvB,IAAMC,cAAc,GAAM9C,MAAM,CAAC8B,QAAQ,CAACU,QAAQ,UAAKxC,MAAM,CAAC8B,QAAQ,CAACC,QAAQ,SAAIc,UAAY;EAC/F,IAAME,aAAa,gBAAcV,UAAU,SAAIH,YAAc;EAC7D,IAAMc,cAAc,GAAGpB,WAAW,GAAGkB,cAAc,GAAGC,aAAa;EACnE,OAAOC,cAAc;AACvB;;ACxBO,IAAMC,UAAU;EAAA,IAAAb,IAAA,gBAAAc,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAAG,SAAAC,QACxBhB,UAAkB,EAClBiB,KAAa;IAAA,IAAAC,MAAA,EAAAC,QAAA,EAAAC,IAAA;IAAA,OAAAN,mBAAA,GAAAO,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UAEPP,MAAM,GAAG;YACbQ,MAAM,EAAE,KAAK;YACbC,OAAO,EAAE;cACPC,aAAa,OAAKX,KAAO;cACzB,cAAc,EAAE;;WAEnB;UAAAM,QAAA,CAAAE,IAAA;UAAA,OACsBI,KAAK,CACvB/B,iBAAiB,CAAC;YAAEE,UAAU,EAAVA;WAAY,CAAC,oBAAeA,UAAU,EAC7DkB,MAAM,CACP;QAAA;UAHKC,QAAQ,GAAAI,QAAA,CAAAO,IAAA;UAAAP,QAAA,CAAAE,IAAA;UAAA,OAIKN,QAAQ,CAACY,IAAI,EAAE;QAAA;UAA5BX,IAAI,GAAAG,QAAA,CAAAO,IAAA;UAAA,OAAAP,QAAA,CAAAS,MAAA,WACH;YAAEb,QAAQ,EAARA,QAAQ;YAAEC,IAAI,EAAJA;WAAM;QAAA;QAAA;UAAA,OAAAG,QAAA,CAAAU,IAAA;;OAAAjB,OAAA;GAC1B;EAAA,gBAjBYJ,UAAUA,CAAAsB,EAAA,EAAAC,GAAA;IAAA,OAAApC,IAAA,CAAAqC,KAAA,OAAAC,SAAA;;AAAA,GAiBtB;AAED,AAAO,IAAMC,aAAa;EAAA,IAAA/B,KAAA,gBAAAM,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAAG,SAAAwB,SAC3BvC,UAAkB,EAClBvC,IAAyB,EACzBwD,KAAa;IAAA,IAAAC,MAAA,EAAAC,QAAA,EAAAC,IAAA;IAAA,OAAAN,mBAAA,GAAAO,IAAA,UAAAmB,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAAjB,IAAA,GAAAiB,SAAA,CAAAhB,IAAA;QAAA;UAEPP,MAAM,GAAG;YACbQ,MAAM,EAAE,OAAO;YACfC,OAAO,EAAE;cACPC,aAAa,OAAKX,KAAO;cACzB,cAAc,EAAE;aACjB;YACDyB,IAAI,EAAEC,IAAI,CAACC,SAAS,CAACnF,IAAI;WAC1B;UAAAgF,SAAA,CAAAhB,IAAA;UAAA,OACsBI,KAAK,CACvB/B,iBAAiB,CAAC;YAAEE,UAAU,EAAVA;WAAY,CAAC,uBAAkBA,UAAU,EAChEkB,MAAM,CACP;QAAA;UAHKC,QAAQ,GAAAsB,SAAA,CAAAX,IAAA;UAAAW,SAAA,CAAAhB,IAAA;UAAA,OAIKN,QAAQ,CAACY,IAAI,EAAE;QAAA;UAA5BX,IAAI,GAAAqB,SAAA,CAAAX,IAAA;UAAA,OAAAW,SAAA,CAAAT,MAAA,WACH;YAAEb,QAAQ,EAARA,QAAQ;YAAEC,IAAI,EAAJA;WAAM;QAAA;QAAA;UAAA,OAAAqB,SAAA,CAAAR,IAAA;;OAAAM,QAAA;GAC1B;EAAA,gBAnBYD,aAAaA,CAAAO,GAAA,EAAAC,GAAA,EAAAC,GAAA;IAAA,OAAAxC,KAAA,CAAA6B,KAAA,OAAAC,SAAA;;AAAA,GAmBzB;AAED,AAAO,IAAMW,wBAAwB;EAAA,IAAAC,KAAA,gBAAApC,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAAG,SAAAmC,SACtClD,UAAkB,EAClBiB,KAAa;IAAA,IAAAC,MAAA,EAAAC,QAAA,EAAAC,IAAA;IAAA,OAAAN,mBAAA,GAAAO,IAAA,UAAA8B,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAA5B,IAAA,GAAA4B,SAAA,CAAA3B,IAAA;QAAA;UAEPP,MAAM,GAAG;YACbQ,MAAM,EAAE,KAAK;YACbC,OAAO,EAAE;cACPC,aAAa,EAAEX,KAAK;cACpB,cAAc,EAAE;;WAEnB;UAAAmC,SAAA,CAAA3B,IAAA;UAAA,OACsBI,KAAK,CACvB/B,iBAAiB,CAAC;YACnBE,UAAU,EAAVA;WACD,CAAC,qCAAgCA,UAAU,EAC5CkB,MAAM,CACP;QAAA;UALKC,QAAQ,GAAAiC,SAAA,CAAAtB,IAAA;UAAAsB,SAAA,CAAA3B,IAAA;UAAA,OAMKN,QAAQ,CAACY,IAAI,EAAE;QAAA;UAA5BX,IAAI,GAAAgC,SAAA,CAAAtB,IAAA;UAAA,OAAAsB,SAAA,CAAApB,MAAA,WACH;YAAEb,QAAQ,EAARA,QAAQ;YAAEC,IAAI,EAAJA;WAAM;QAAA;QAAA;UAAA,OAAAgC,SAAA,CAAAnB,IAAA;;OAAAiB,QAAA;GAC1B;EAAA,gBAnBYF,wBAAwBA,CAAAK,GAAA,EAAAC,GAAA;IAAA,OAAAL,KAAA,CAAAb,KAAA,OAAAC,SAAA;;AAAA,GAmBpC;AAED,AAAO,IAAMkB,qBAAqB;EAAA,IAAAC,KAAA,gBAAA3C,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAAG,SAAA0C,SACnCzD,UAAkB,EAClBiB,KAAa;IAAA,IAAAC,MAAA,EAAAC,QAAA,EAAAC,IAAA;IAAA,OAAAN,mBAAA,GAAAO,IAAA,UAAAqC,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAAnC,IAAA,GAAAmC,SAAA,CAAAlC,IAAA;QAAA;UAEPP,MAAM,GAAG;YACbQ,MAAM,EAAE,KAAK;YACbC,OAAO,EAAE;cACPC,aAAa,EAAEX,KAAK;cACpB,cAAc,EAAE;;WAEnB;UAAA0C,SAAA,CAAAlC,IAAA;UAAA,OACsBI,KAAK,CACvB/B,iBAAiB,CAAC;YACnBE,UAAU,EAAVA;WACD,CAAC,gCAA2BA,UAAU,EACvCkB,MAAM,CACP;QAAA;UALKC,QAAQ,GAAAwC,SAAA,CAAA7B,IAAA;UAAA6B,SAAA,CAAAlC,IAAA;UAAA,OAMKN,QAAQ,CAACY,IAAI,EAAE;QAAA;UAA5BX,IAAI,GAAAuC,SAAA,CAAA7B,IAAA;UAAA,OAAA6B,SAAA,CAAA3B,MAAA,WACH;YAAEb,QAAQ,EAARA,QAAQ;YAAEC,IAAI,EAAJA;WAAM;QAAA;QAAA;UAAA,OAAAuC,SAAA,CAAA1B,IAAA;;OAAAwB,QAAA;GAC1B;EAAA,gBAnBYF,qBAAqBA,CAAAK,GAAA,EAAAC,GAAA;IAAA,OAAAL,KAAA,CAAApB,KAAA,OAAAC,SAAA;;AAAA,GAmBjC;;ACnFM,IAAMyB,WAAW,GAAG,aAAa;;SCelBC,mBAAmBA,CAAA7B,EAAA;EAAA,OAAA8B,oBAAA,CAAA5B,KAAA,OAAAC,SAAA;AAAA;AAmCxC,SAAA2B;EAAAA,oBAAA,GAAAnD,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAnCM,SAAAC,QAAAjB,IAAA;IAAA,IAAAkE,QAAA,EAAAC,WAAA,EAAAlE,UAAA,EAAAmE,YAAA;IAAA,OAAArD,mBAAA,GAAAO,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UACLwC,QAAQ,GAAAlE,IAAA,CAARkE,QAAQ,EACRC,WAAW,GAAAnE,IAAA,CAAXmE,WAAW,EACXlE,UAAU,GAAAD,IAAA,CAAVC,UAAU;UAEViE,QAAQ,CAAC;YAAExF,IAAI,EAAEY,cAAyB;YAAED,OAAO,EAAE;cAAEpB,SAAS,EAAE;;WAAQ,CAAC;UAACuD,QAAA,CAAAC,IAAA;UAAAD,QAAA,CAAAE,IAAA;UAAA,OAE/Cb,UAAU,CAACZ,UAAU,EAAEkE,WAAW,CAAC;QAAA;UAAxDC,YAAY,GAAA5C,QAAA,CAAAO,IAAA;UAAA,MACdqC,YAAY,CAAChD,QAAQ,CAAC3C,MAAM,KAAK,GAAG;YAAA+C,QAAA,CAAAE,IAAA;YAAA;;UACtCwC,QAAQ,CAAC;YACPxF,IAAI,EAAEY,KAAgB;YACtBD,OAAO,EAAE;cACP3B,IAAI,EAAE0G,YAAY,CAAC/C,IAAI,CAAC3D,IAAI;cAC5BM,MAAM,EAAEoG,YAAY,CAAC/C,IAAI,CAACrD,MAAM;cAChCE,eAAe,EAAE;;WAEpB,CAAC;UACFN,MAAM,CAACyG,OAAO,CAACC,YAAY,CACzB,EAAE,EACFzG,QAAQ,CAAC0G,KAAK,EACdH,YAAY,CAAC/C,IAAI,CAACrD,MAAM,CAACwG,aAAa,CACvC;UAAC,OAAAhD,QAAA,CAAAS,MAAA,WACKwC,YAAY,CAACC,OAAO,CAACX,WAAW,EAAEI,WAAW,CAAC;QAAA;UAAA,OAAA3C,QAAA,CAAAS,MAAA,WAE9CwC,YAAY,CAACE,UAAU,CAACZ,WAAW,CAAC;QAAA;UAAAvC,QAAA,CAAAE,IAAA;UAAA;QAAA;UAAAF,QAAA,CAAAC,IAAA;UAAAD,QAAA,CAAAoD,EAAA,GAAApD,QAAA;UAG7CiD,YAAY,CAACE,UAAU,CAACZ,WAAW,CAAC;UACpCc,OAAO,CAACC,GAAG,CAAAtD,QAAA,CAAAoD,EAAM,CAAC;QAAC;UAAApD,QAAA,CAAAC,IAAA;UAEnByC,QAAQ,CAAC;YACPxF,IAAI,EAAEY,cAAyB;YAC/BD,OAAO,EAAE;cAAEpB,SAAS,EAAE;;WACvB,CAAC;UAAC,OAAAuD,QAAA,CAAAuD,MAAA;QAAA;QAAA;UAAA,OAAAvD,QAAA,CAAAU,IAAA;;OAAAjB,OAAA;GAEN;EAAA,OAAAgD,oBAAA,CAAA5B,KAAA,OAAAC,SAAA;AAAA;AAOD,SAAsB0C,kBAAkBA,CAAA5C,GAAA;EAAA,OAAA6C,mBAAA,CAAA5C,KAAA,OAAAC,SAAA;AAAA;AA6DvC,SAAA2C;EAAAA,mBAAA,GAAAnE,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CA7DM,SAAAwB,SAAAhC,KAAA;IAAA,IAAA0D,QAAA,EAAAgB,cAAA,EAAAjF,UAAA,EAAAkF,uBAAA,EAAAf,YAAA;IAAA,OAAArD,mBAAA,GAAAO,IAAA,UAAAmB,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAAjB,IAAA,GAAAiB,SAAA,CAAAhB,IAAA;QAAA;UACLwC,QAAQ,GAAA1D,KAAA,CAAR0D,QAAQ,EACRgB,cAAc,GAAA1E,KAAA,CAAd0E,cAAc,EACdjF,UAAU,GAAAO,KAAA,CAAVP,UAAU;UAEViE,QAAQ,CAAC;YAAExF,IAAI,EAAEY,cAAyB;YAAED,OAAO,EAAE;cAAEpB,SAAS,EAAE;;WAAQ,CAAC;UAACyE,SAAA,CAAAjB,IAAA;UAAAiB,SAAA,CAAAhB,IAAA;UAAA,OAEpC8B,qBAAqB,CACzDvD,UAAU,EACViF,cAAc,CACf;QAAA;UAHKC,uBAAuB,GAAAzC,SAAA,CAAAX,IAAA;UAAA,MAIzBoD,uBAAuB,CAAC/D,QAAQ,CAAC3C,MAAM,KAAK,GAAG;YAAAiE,SAAA,CAAAhB,IAAA;YAAA;;UAAAgB,SAAA,CAAAhB,IAAA;UAAA,OACtBb,UAAU,CAACZ,UAAU,EAAEiF,cAAc,CAAC;QAAA;UAA3Dd,YAAY,GAAA1B,SAAA,CAAAX,IAAA;UAAA,MACdqC,YAAY,CAAChD,QAAQ,CAAC3C,MAAM,KAAK,GAAG;YAAAiE,SAAA,CAAAhB,IAAA;YAAA;;UACtCwC,QAAQ,CAAC;YACPxF,IAAI,EAAEY,KAAgB;YACtBD,OAAO,EAAE;cACP3B,IAAI,EAAE0G,YAAY,CAAC/C,IAAI,CAAC3D,IAAI;cAC5BM,MAAM,EAAEoG,YAAY,CAAC/C,IAAI,CAACrD,MAAM;cAChCE,eAAe,EAAE;;WAEpB,CAAC;UACFuG,YAAY,CAACC,OAAO,CAClBX,WAAW,EACXoB,uBAAuB,CAAC9D,IAAI,CAAC+D,WAAW,CACzC;UAAC,OAAA1C,SAAA,CAAAT,MAAA;QAAA;UAGFoD,SAAS,CAAC;YAAEnB,QAAQ,EAARA;WAAU,CAAC;;;;;;;;;;QASvB;UAAAxB,SAAA,CAAAhB,IAAA;UAAA;QAAA;UAGF2D,SAAS,CAAC;YAAEnB,QAAQ,EAARA;WAAU,CAAC;;;;;;;;;;QASvB;UAAAxB,SAAA,CAAAhB,IAAA;UAAA;QAAA;UAAAgB,SAAA,CAAAjB,IAAA;UAAAiB,SAAA,CAAAkC,EAAA,GAAAlC,SAAA;UAGF2C,SAAS,CAAC;YAAEnB,QAAQ,EAARA;WAAU,CAAC;;UAEvBW,OAAO,CAACC,GAAG,CAAApC,SAAA,CAAAkC,EAAM,CAAC;QAAC;UAAAlC,SAAA,CAAAjB,IAAA;UAEnByC,QAAQ,CAAC;YACPxF,IAAI,EAAEY,cAAyB;YAC/BD,OAAO,EAAE;cAAEpB,SAAS,EAAE;;WACvB,CAAC;UAAC,OAAAyE,SAAA,CAAAqC,MAAA;QAAA;QAAA;UAAA,OAAArC,SAAA,CAAAR,IAAA;;OAAAM,QAAA;GAEN;EAAA,OAAAyC,mBAAA,CAAA5C,KAAA,OAAAC,SAAA;AAAA;AAED,SAAsBgD,eAAeA,CAAAxC,GAAA;EAAA,OAAAyC,gBAAA,CAAAlD,KAAA,OAAAC,SAAA;AAAA;AAiBpC,SAAAiD;EAAAA,gBAAA,GAAAzE,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAjBM,SAAAmC,SAAAD,KAAA;IAAA,IAAAgB,QAAA;IAAA,OAAAnD,mBAAA,GAAAO,IAAA,UAAA8B,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAA5B,IAAA,GAAA4B,SAAA,CAAA3B,IAAA;QAAA;UAAiCwC,QAAQ,GAAAhB,KAAA,CAARgB,QAAQ;UAC9CA,QAAQ,CAAC;YAAExF,IAAI,EAAEY,cAAyB;YAAED,OAAO,EAAE;cAAEpB,SAAS,EAAE;;WAAQ,CAAC;UAC3EiG,QAAQ,CAAC;YACPxF,IAAI,EAAEY,KAAgB;YACtBD,OAAO,EAAE;cACP3B,IAAI,EAAE;gBACJC,QAAQ,EAAEC,MAAM,CAACC,QAAQ,CAACC,eAAe,CAACC,YAAY,CAAC,MAAM,CAAC,IAAI;eACnE;cACDC,MAAM,EAAE,EAAE;cACVE,eAAe,EAAE;;WAEpB,CAAC;UACFuG,YAAY,CAACE,UAAU,CAACZ,WAAW,CAAC;UAAC,OAAAV,SAAA,CAAApB,MAAA,WAC9BiC,QAAQ,CAAC;YACdxF,IAAI,EAAEY,cAAyB;YAC/BD,OAAO,EAAE;cAAEpB,SAAS,EAAE;;WACvB,CAAC;QAAA;QAAA;UAAA,OAAAoF,SAAA,CAAAnB,IAAA;;OAAAiB,QAAA;GACH;EAAA,OAAAoC,gBAAA,CAAAlD,KAAA,OAAAC,SAAA;AAAA;AAQD,SAAsBkD,mBAAmBA,CAAAzC,GAAA;EAAA,OAAA0C,oBAAA,CAAApD,KAAA,OAAAC,SAAA;AAAA;AA6BxC,SAAAmD;EAAAA,oBAAA,GAAA3E,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CA7BM,SAAA0C,SAAAD,KAAA;IAAA,IAAAS,QAAA,EAAAjE,UAAA,EAAAvC,IAAA,EAAAwD,KAAA,EAAAkD,YAAA;IAAA,OAAArD,mBAAA,GAAAO,IAAA,UAAAqC,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAAnC,IAAA,GAAAmC,SAAA,CAAAlC,IAAA;QAAA;UACLwC,QAAQ,GAAAT,KAAA,CAARS,QAAQ,EACRjE,UAAU,GAAAwD,KAAA,CAAVxD,UAAU,EACVvC,IAAI,GAAA+F,KAAA,CAAJ/F,IAAI,EACJwD,KAAK,GAAAuC,KAAA,CAALvC,KAAK;UAEL,IAAIxD,IAAI,CAACC,QAAQ,EAAE;YACjBC,MAAM,CAACC,QAAQ,CAACC,eAAe,CAAC4H,YAAY,CAAC,MAAM,EAAEhI,IAAI,CAACC,QAAQ,CAAC;;UACpE,IACIuD,KAAK;YAAA0C,SAAA,CAAAlC,IAAA;YAAA;;UAAA,OAAAkC,SAAA,CAAA3B,MAAA,WACDiC,QAAQ,CAAC;YACdxF,IAAI,EAAEY,WAAsB;YAC5BD,OAAO,EAAE3B;WACV,CAAC;QAAA;UAAAkG,SAAA,CAAAnC,IAAA;UAAAmC,SAAA,CAAAlC,IAAA;UAAA,OAGyBa,aAAa,CAACtC,UAAU,EAAEvC,IAAI,EAAEwD,KAAK,CAAC;QAAA;UAA3DkD,YAAY,GAAAR,SAAA,CAAA7B,IAAA;UAAA,MACdqC,YAAY,CAAChD,QAAQ,CAAC3C,MAAM,KAAK,GAAG;YAAAmF,SAAA,CAAAlC,IAAA;YAAA;;UAAA,OAAAkC,SAAA,CAAA3B,MAAA,WAC/BiC,QAAQ,CAAC;YACdxF,IAAI,EAAEY,WAAsB;YAC5BD,OAAO,EAAE+E,YAAY,CAAC/C,IAAI,CAAC3D;WAC5B,CAAC;QAAA;UAEFmH,OAAO,CAACC,GAAG,CAAC,mBAAmB,CAAC;UAAC,OAAAlB,SAAA,CAAA3B,MAAA;QAAA;UAAA2B,SAAA,CAAAlC,IAAA;UAAA;QAAA;UAAAkC,SAAA,CAAAnC,IAAA;UAAAmC,SAAA,CAAAgB,EAAA,GAAAhB,SAAA;UAInCiB,OAAO,CAACC,GAAG,CAAC,mBAAmB,EAAAlB,SAAA,CAAAgB,EAAO,CAAC;QAAC;QAAA;UAAA,OAAAhB,SAAA,CAAA1B,IAAA;;OAAAwB,QAAA;GAE3C;EAAA,OAAA+B,oBAAA,CAAApD,KAAA,OAAAC,SAAA;AAAA;AAOD,SAAsBqD,2BAA2BA,CAAA3C,GAAA;EAAA,OAAA4C,4BAAA,CAAAvD,KAAA,OAAAC,SAAA;AAAA;AAiDjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA,SAAAsD;EAAAA,4BAAA,GAAA9E,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CA/FO,SAAA6E,SAAAC,KAAA;IAAA,IAAA5B,QAAA,EAAAjE,UAAA,EAAAiB,KAAA,EAAA6E,cAAA;IAAA,OAAAhF,mBAAA,GAAAO,IAAA,UAAA0E,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAAxE,IAAA,GAAAwE,SAAA,CAAAvE,IAAA;QAAA;UACLwC,QAAQ,GAAA4B,KAAA,CAAR5B,QAAQ,EACRjE,UAAU,GAAA6F,KAAA,CAAV7F,UAAU,EACViB,KAAK,GAAA4E,KAAA,CAAL5E,KAAK;UAELgD,QAAQ,CAAC;YACPxF,IAAI,EAAEY,sCAAiD;YACvDD,OAAO,EAAE;WACV,CAAC;UACF6E,QAAQ,CAAC;YACPxF,IAAI,EAAEY,kCAA6C;YACnDD,OAAO,EAAE;cAAEX,IAAI,EAAE,MAAM;cAAEC,OAAO,EAAE;;WACnC,CAAC;UAACsH,SAAA,CAAAxE,IAAA;UAAAwE,SAAA,CAAAvE,IAAA;UAAA,OAE4BuB,wBAAwB,CAAChD,UAAU,EAAEiB,KAAK,CAAC;QAAA;UAAlE6E,cAAc,GAAAE,SAAA,CAAAlE,IAAA;UAAA,MAChBgE,cAAc,CAAC3E,QAAQ,CAAC3C,MAAM,KAAK,GAAG;YAAAwH,SAAA,CAAAvE,IAAA;YAAA;;UACxCwC,QAAQ,CAAC;YACPxF,IAAI,EAAEY,kCAA6C;YACnDD,OAAO,EAAE;cAAEX,IAAI,EAAE,SAAS;cAAEC,OAAO,EAAEoH,cAAc,CAAC1E,IAAI,CAAC1C;;WAC1D,CAAC;UAAC,OAAAsH,SAAA,CAAAhE,MAAA,WACIiC,QAAQ,CAAC;YACdxF,IAAI,EAAEY,sCAAiD;YACvDD,OAAO,EAAE;WACV,CAAC;QAAA;UAEF6E,QAAQ,CAAC;YACPxF,IAAI,EAAEY,kCAA6C;YACnDD,OAAO,EAAE;cAAEX,IAAI,EAAE,OAAO;cAAEC,OAAO,EAAEoH,cAAc,CAAC1E,IAAI,CAAC1C;;WACxD,CAAC;UAAC,OAAAsH,SAAA,CAAAhE,MAAA,WACIiC,QAAQ,CAAC;YACdxF,IAAI,EAAEY,sCAAiD;YACvDD,OAAO,EAAE;WACV,CAAC;QAAA;UAAA4G,SAAA,CAAAvE,IAAA;UAAA;QAAA;UAAAuE,SAAA,CAAAxE,IAAA;UAAAwE,SAAA,CAAArB,EAAA,GAAAqB,SAAA;UAGJ/B,QAAQ,CAAC;YACPxF,IAAI,EAAEY,kCAA6C;YACnDD,OAAO,EAAE;cACPX,IAAI,EAAE,OAAO;cACbC,OAAO,EAAE;;WAEZ,CAAC;UAAC,OAAAsH,SAAA,CAAAhE,MAAA,WACIiC,QAAQ,CAAC;YACdxF,IAAI,EAAEY,sCAAiD;YACvDD,OAAO,EAAE;WACV,CAAC;QAAA;QAAA;UAAA,OAAA4G,SAAA,CAAA/D,IAAA;;OAAA2D,QAAA;GAEL;EAAA,OAAAD,4BAAA,CAAAvD,KAAA,OAAAC,SAAA;AAAA;AAkDD,SAAsB4D,gBAAgBA,CAAA5C,GAAA;EAAA,OAAA6C,iBAAA,CAAA9D,KAAA,OAAAC,SAAA;AAAA;AA2CtC;AACA;AAAA,SAAA6D;EAAAA,iBAAA,GAAArF,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CA5CO,SAAAoF,SAAAC,KAAA;IAAA,IAAAnC,QAAA,EAAAjE,UAAA,EAAAiB,KAAA,EAAAiE,uBAAA;IAAA,OAAApE,mBAAA,GAAAO,IAAA,UAAAgF,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAA9E,IAAA,GAAA8E,SAAA,CAAA7E,IAAA;QAAA;UACLwC,QAAQ,GAAAmC,KAAA,CAARnC,QAAQ,EACRjE,UAAU,GAAAoG,KAAA,CAAVpG,UAAU,EACViB,KAAK,GAAAmF,KAAA,CAALnF,KAAK;UAAAqF,SAAA,CAAA9E,IAAA;UAAA8E,SAAA,CAAA7E,IAAA;UAAA,OAOmC8B,qBAAqB,CACzDvD,UAAU,EACViB,KAAK,CACN;QAAA;UAHKiE,uBAAuB,GAAAoB,SAAA,CAAAxE,IAAA;UAAA,MAIzBoD,uBAAuB,CAAC/D,QAAQ,CAAC3C,MAAM,KAAK,GAAG;YAAA8H,SAAA,CAAA7E,IAAA;YAAA;;UAAA,OAAA6E,SAAA,CAAAtE,MAAA;QAAA;UAAA,OAAAsE,SAAA,CAAAtE,MAAA,WAG1CoD,SAAS,CAACnB,QAAQ,CAAC;QAAA;UAAAqC,SAAA,CAAA7E,IAAA;UAAA;QAAA;UAAA6E,SAAA,CAAA9E,IAAA;UAAA8E,SAAA,CAAA3B,EAAA,GAAA2B,SAAA;UAY5BlB,SAAS,CAACnB,QAAQ,CAAC;;;;;;;;;;UASnB,MAAAqC,SAAA,CAAA3B,EAAA;QAAA;QAAA;UAAA,OAAA2B,SAAA,CAAArE,IAAA;;OAAAkE,QAAA;GAGH;EAAA,OAAAD,iBAAA,CAAA9D,KAAA,OAAAC,SAAA;AAAA;AAID,IAAM+C,SAAS,GAAG,SAAZA,SAASA,CAAInB,QAAa;EAC9BO,YAAY,CAACE,UAAU,CAACZ,WAAW,CAAC;EACpC,OAAOG,QAAQ,CAAC;IACdxF,IAAI,EAAEY,KAAgB;IACtBD,OAAO,EAAE;MACP3B,IAAI,EAAE,EAAgB;MACtBM,MAAM,EAAE,EAAuB;MAC/BE,eAAe,EAAE;;GAEpB,CAAC;AACJ,CAAC;;ICtTYsI,aAAa,GAAiC,SAA9CA,aAAaA,CACxBC,KAAyB;EAEzB,IAAQxG,UAAU,GAAoBwG,KAAK,CAAnCxG,UAAU;IAAEyG,GAAG,GAAeD,KAAK,CAAvBC,GAAG;IAAEC,QAAQ,GAAKF,KAAK,CAAlBE,QAAQ;EACjC,IAAAC,WAAA,GAAuBC,UAAU,CAAC3H,WAAW,EAAEzB,iBAAiB,CAAC;IAA1DqJ,EAAE,GAAAF,WAAA;IAAE1C,QAAQ,GAAA0C,WAAA;EACnB,IAAMG,UAAU,GAAGD,EAAiB;;;;;;;EASpCE,SAAS,CAAC;IACR,IAAMC,QAAQ,GAAGxC,YAAY,CAACyC,OAAO,CAACnD,WAAW,CAAC;IAClD,IAAIoD,QAAQ,GAAGC,WAAW,CAAC;MACzB,IAAI,CAACH,QAAQ,EAAE;MACf7H,gBAAuB,CAAC;QAAE8E,QAAQ,EAARA,QAAQ;QAAEjE,UAAU,EAAVA,UAAU;QAAEiB,KAAK,EAAE+F;OAAU,CAAC;KACnE,EAAE,IAAI,CAAC;;IAER,OAAO;MAAA,OAAMI,aAAa,CAACF,QAAQ,CAAC;;GACrC,EAAE,CAAClH,UAAU,CAAC,CAAC;;EAGhB+G,SAAS,CAAC;IACR,IAAMM,WAAW,GAAG1J,MAAM,CAAC8B,QAAQ,CAAC6H,MAAM;IAC1C,IAAI,CAACD,WAAW,EAAE;IAClB,IAAME,SAAS,GAAG,IAAIC,eAAe,CAACH,WAAW,CAAC;IAClD,IAAMnD,WAAW,GAAGqD,SAAS,CAACE,GAAG,CAAC3D,WAAW,CAAC;IAC9C,IAAII,WAAW,IAAI,CAAC4C,UAAU,CAAC7I,eAAe,EAAE;MAC9CkB,mBAA0B,CAAC;QAAE8E,QAAQ,EAARA,QAAQ;QAAEC,WAAW,EAAXA,WAAW;QAAElE,UAAU,EAAVA;OAAY,CAAC;;GAEpE,EAAE,CAAC8G,UAAU,CAAC7I,eAAe,EAAE+B,UAAU,CAAC,CAAC;;EAG5C+G,SAAS,CAAC;IACR,IAAM9B,cAAc,GAAGT,YAAY,CAACyC,OAAO,CAACnD,WAAW,CAAC;IACxD,IAAImB,cAAc,IAAI,CAAC6B,UAAU,CAAC7I,eAAe,EAAE;MACjDkB,kBAAyB,CAAC;QAAE8E,QAAQ,EAARA,QAAQ;QAAEgB,cAAc,EAAdA,cAAc;QAAEjF,UAAU,EAAVA;OAAY,CAAC;;GAEtE,EAAE,CAAC8G,UAAU,CAAC7I,eAAe,EAAE+B,UAAU,CAAC,CAAC;EAE5C,IAAM9B,iBAAiB,GAAGwJ,WAAW,CAAC;IACpC,OAAO/J,MAAM,CAAC8B,QAAQ,CAACkI,OAAO,CACzBrH,iBAAiB,CAAC;MAAEN,UAAU,EAAVA;KAAY,CAAC,gBAAWyG,GAAK,CACrD;GACF,EAAE,CAACzG,UAAU,EAAEyG,GAAG,CAAC,CAAC;EAErB,IAAMtI,MAAM,GAAGuJ,WAAW,CAAC;IACzB,OAAOvI,eAAsB,CAAC;MAAE8E,QAAQ,EAARA;KAAU,CAAC;GAC5C,EAAE,EAAE,CAAC;EAEN,IAAM7F,eAAc,GAAGsJ,WAAW,CAAC;IACjC,IAAMV,QAAQ,GAAGxC,YAAY,CAACyC,OAAO,CAACnD,WAAW,CAAC;IAClD,OAAOkD,QAAQ,WAARA,QAAQ,GAAI,iBAAiB;GACrC,EAAE,EAAE,CAAC;EAEN,IAAM3I,UAAU,GAAGqJ,WAAW,CAC5B,UAAA3H,IAAA;QACE6H,IAAI,GAAA7H,IAAA,CAAJ6H,IAAI;MACJC,QAAQ,GAAA9H,IAAA,CAAR8H,QAAQ;MACRC,QAAQ,GAAA/H,IAAA,CAAR+H,QAAQ;MACRC,UAAU,GAAAhI,IAAA,CAAVgI,UAAU;MACVC,UAAU,GAAAjI,IAAA,CAAViI,UAAU;MACVtK,QAAQ,GAAAqC,IAAA,CAARrC,QAAQ;MACRuK,MAAM,GAAAlI,IAAA,CAANkI,MAAM;IAEN,IAAMjB,QAAQ,GAAGxC,YAAY,CAACyC,OAAO,CAACnD,WAAW,CAAC;IAClD,IAAMrG,IAAI,GAAG;MACXmK,IAAI,EAAJA,IAAI;MACJC,QAAQ,EAARA,QAAQ;MACRC,QAAQ,EAARA,QAAQ;MACRC,UAAU,EAAVA,UAAU;MACVC,UAAU,EAAVA,UAAU;MACVtK,QAAQ,EAARA,QAAQ;MACRuK,MAAM,EAANA;KACsB;IACxB,OAAO9I,mBAA0B,CAAC;MAChC8E,QAAQ,EAARA,QAAQ;MACRjE,UAAU,EAAVA,UAAU;MACVvC,IAAI,EAAJA,IAAI;MACJwD,KAAK,EAAE+F;KACR,CAAC;GACH,EACD,CAAChH,UAAU,CAAC,CACb;EAED,IAAM1B,sBAAsB,GAAGoJ,WAAW,CAAC;IACzC,IAAMV,QAAQ,GAAGxC,YAAY,CAACyC,OAAO,CAACnD,WAAW,CAAC;IAClD,IAAI,CAACkD,QAAQ,EAAE;IACf,OAAOrJ,MAAM,CAAC8B,QAAQ,CAACkI,OAAO,CACzBrH,iBAAiB,CAAC;MAAEN,UAAU,EAAVA;KAAY,CAAC,uBAAkByG,GAAG,SAAIO,QAAU,CACxE;GACF,EAAE,CAAChH,UAAU,EAAEyG,GAAG,CAAC,CAAC;EAErB,IAAM9H,qBAAqB,GAAG+I,WAAW,CAAC;IACxC,IAAMV,QAAQ,GAAGxC,YAAY,CAACyC,OAAO,CAACnD,WAAW,CAAC;IAClD,IAAI,CAACkD,QAAQ,EAAE;IACf,OAAO7H,2BAAkC,CAAC;MACxC8E,QAAQ,EAARA,QAAQ;MACRjE,UAAU,EAAVA,UAAU;MACViB,KAAK,EAAE+F;KACR,CAAC;GACH,EAAE,CAAChH,UAAU,CAAC,CAAC;EAEhB,IAAMkI,YAAY,GAAGC,OAAO,CAC1B;IAAA,OAAA7I,QAAA,KACKwH,UAAU;MACb5I,iBAAiB,EAAjBA,iBAAiB;MACjBC,MAAM,EAANA,MAAM;MACNC,cAAc,EAAE,SAAAA;QAAA,OAAMA,eAAc,EAAE,IAAI,EAAE;;MAC5CC,UAAU,EAAVA,UAAU;MACVC,sBAAsB,EAAtBA,sBAAsB;MACtBK,qBAAqB,EAArBA;;GACA,EACF,CACEmI,UAAU,EACV5I,iBAAiB,EACjBC,MAAM,EACNC,eAAc,EACdC,UAAU,EACVC,sBAAsB,EACtBK,qBAAqB,CACtB,CACF;EAED,OACEyJ,oBAACC,YAAY,CAACC,QAAQ;IAACC,KAAK,EAAEL;KAC3BxB,QAAQ,CACa;AAE5B,CAAC;AAED,IAAM2B,YAAY,gBAAGG,aAAa,CAAChL,iBAAiB,CAAC;AAErD,IAAaiL,QAAQ,GAAG,SAAXA,QAAQA;EACnB,IAAMC,OAAO,GAAGC,UAAU,CAACN,YAAY,CAAC;EACxC,IAAI,CAACK,OAAO,EAAE;IACZ,MAAM,IAAIE,KAAK,CAAC,4CAA4C,CAAC;;EAE/D,OAAOF,OAAO;AAChB,CAAC;;;;"}
|
|
@@ -27,14 +27,9 @@ declare type TSetSendEmailVerificationAction = {
|
|
|
27
27
|
token: string;
|
|
28
28
|
};
|
|
29
29
|
export declare function sendEmailVerificationAction({ dispatch, domainName, token, }: TSetSendEmailVerificationAction): Promise<any>;
|
|
30
|
-
export declare function refreshTokenAction({ dispatch, domainName, token, }: {
|
|
31
|
-
dispatch: any;
|
|
32
|
-
domainName: string;
|
|
33
|
-
token: string;
|
|
34
|
-
}): Promise<void>;
|
|
35
30
|
export declare function checkTokenAction({ dispatch, domainName, token, }: {
|
|
36
31
|
dispatch: any;
|
|
37
32
|
domainName: string;
|
|
38
33
|
token: string;
|
|
39
|
-
}): Promise<
|
|
34
|
+
}): Promise<any>;
|
|
40
35
|
export {};
|
package/package.json
CHANGED
package/src/index.tsx
CHANGED
|
@@ -29,22 +29,22 @@ export const DauthProvider: React.FC<DauthProviderProps> = (
|
|
|
29
29
|
const dauthState = ds as IDauthState;
|
|
30
30
|
|
|
31
31
|
// Refresh access token
|
|
32
|
-
useEffect(() => {
|
|
33
|
-
const token_ls = localStorage.getItem(DAUTH_STATE);
|
|
34
|
-
if (!token_ls) return;
|
|
35
|
-
action.refreshTokenAction({ dispatch, domainName, token: token_ls });
|
|
36
|
-
}, [domainName]);
|
|
37
|
-
|
|
38
32
|
// useEffect(() => {
|
|
39
33
|
// const token_ls = localStorage.getItem(DAUTH_STATE);
|
|
40
|
-
//
|
|
41
|
-
//
|
|
42
|
-
// action.checkTokenAction({ dispatch, domainName, token: token_ls });
|
|
43
|
-
// }, 6000);
|
|
44
|
-
// // }, 1000 * 60 * 5);
|
|
45
|
-
// return () => clearInterval(interval);
|
|
34
|
+
// if (!token_ls) return;
|
|
35
|
+
// action.refreshTokenAction({ dispatch, domainName, token: token_ls });
|
|
46
36
|
// }, [domainName]);
|
|
47
37
|
|
|
38
|
+
useEffect(() => {
|
|
39
|
+
const token_ls = localStorage.getItem(DAUTH_STATE);
|
|
40
|
+
let interval = setInterval(() => {
|
|
41
|
+
if (!token_ls) return;
|
|
42
|
+
action.checkTokenAction({ dispatch, domainName, token: token_ls });
|
|
43
|
+
}, 6000);
|
|
44
|
+
// }, 1000 * 60 * 5);
|
|
45
|
+
return () => clearInterval(interval);
|
|
46
|
+
}, [domainName]);
|
|
47
|
+
|
|
48
48
|
// Catch login redirect
|
|
49
49
|
useEffect(() => {
|
|
50
50
|
const queryString = window.location.search;
|
|
@@ -62,22 +62,53 @@ export async function setAutoLoginAction({
|
|
|
62
62
|
}: TSetAutoLoginAction) {
|
|
63
63
|
dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: true } });
|
|
64
64
|
try {
|
|
65
|
-
const
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
65
|
+
const refreshAccessTokenFetch = await refreshAccessTokenAPI(
|
|
66
|
+
domainName,
|
|
67
|
+
dauth_state_ls
|
|
68
|
+
);
|
|
69
|
+
if (refreshAccessTokenFetch.response.status === 200) {
|
|
70
|
+
const getUserFetch = await getUserAPI(domainName, dauth_state_ls);
|
|
71
|
+
if (getUserFetch.response.status === 200) {
|
|
72
|
+
dispatch({
|
|
73
|
+
type: DauthTypes.LOGIN,
|
|
74
|
+
payload: {
|
|
75
|
+
user: getUserFetch.data.user,
|
|
76
|
+
domain: getUserFetch.data.domain,
|
|
77
|
+
isAuthenticated: true,
|
|
78
|
+
},
|
|
79
|
+
});
|
|
80
|
+
localStorage.setItem(
|
|
81
|
+
DAUTH_STATE,
|
|
82
|
+
refreshAccessTokenFetch.data.accessToken
|
|
83
|
+
);
|
|
84
|
+
return;
|
|
85
|
+
} else {
|
|
86
|
+
resetUser({ dispatch });
|
|
87
|
+
// dispatch({
|
|
88
|
+
// type: DauthTypes.LOGIN,
|
|
89
|
+
// payload: {
|
|
90
|
+
// user: {} as IDauthUser,
|
|
91
|
+
// domain: {} as IDauthDomainState,
|
|
92
|
+
// isAuthenticated: false,
|
|
93
|
+
// },
|
|
94
|
+
// });
|
|
95
|
+
// localStorage.removeItem(DAUTH_STATE);
|
|
96
|
+
}
|
|
76
97
|
} else {
|
|
77
|
-
|
|
98
|
+
resetUser({ dispatch });
|
|
99
|
+
// dispatch({
|
|
100
|
+
// type: DauthTypes.LOGIN,
|
|
101
|
+
// payload: {
|
|
102
|
+
// user: {} as IDauthUser,
|
|
103
|
+
// domain: {} as IDauthDomainState,
|
|
104
|
+
// isAuthenticated: false,
|
|
105
|
+
// },
|
|
106
|
+
// });
|
|
107
|
+
// localStorage.removeItem(DAUTH_STATE);
|
|
78
108
|
}
|
|
79
109
|
} catch (error) {
|
|
80
|
-
|
|
110
|
+
resetUser({ dispatch });
|
|
111
|
+
// localStorage.removeItem(DAUTH_STATE);
|
|
81
112
|
console.log(error);
|
|
82
113
|
} finally {
|
|
83
114
|
dispatch({
|
|
@@ -197,54 +228,53 @@ export async function sendEmailVerificationAction({
|
|
|
197
228
|
}
|
|
198
229
|
}
|
|
199
230
|
|
|
200
|
-
export async function refreshTokenAction({
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
}: {
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
}) {
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
}
|
|
231
|
+
// export async function refreshTokenAction({
|
|
232
|
+
// dispatch,
|
|
233
|
+
// domainName,
|
|
234
|
+
// token,
|
|
235
|
+
// }: {
|
|
236
|
+
// dispatch: any;
|
|
237
|
+
// domainName: string;
|
|
238
|
+
// token: string;
|
|
239
|
+
// }) {
|
|
240
|
+
// try {
|
|
241
|
+
// const refreshAccessTokenFetch = await refreshAccessTokenAPI(
|
|
242
|
+
// domainName,
|
|
243
|
+
// token
|
|
244
|
+
// );
|
|
245
|
+
// if (refreshAccessTokenFetch.response.status === 200) {
|
|
246
|
+
// console.log(refreshAccessTokenFetch.data.accessToken);
|
|
247
|
+
// localStorage.removeItem(DAUTH_STATE);
|
|
248
|
+
// localStorage.setItem(
|
|
249
|
+
// DAUTH_STATE,
|
|
250
|
+
// refreshAccessTokenFetch.data.accessToken
|
|
251
|
+
// );
|
|
252
|
+
// return;
|
|
253
|
+
// } else {
|
|
254
|
+
// dispatch({
|
|
255
|
+
// type: DauthTypes.LOGIN,
|
|
256
|
+
// payload: {
|
|
257
|
+
// user: {} as IDauthUser,
|
|
258
|
+
// domain: {} as IDauthDomainState,
|
|
259
|
+
// isAuthenticated: false,
|
|
260
|
+
// },
|
|
261
|
+
// });
|
|
262
|
+
// localStorage.removeItem(DAUTH_STATE);
|
|
263
|
+
// return;
|
|
264
|
+
// }
|
|
265
|
+
// } catch (error) {
|
|
266
|
+
// dispatch({
|
|
267
|
+
// type: DauthTypes.LOGIN,
|
|
268
|
+
// payload: {
|
|
269
|
+
// user: {} as IDauthUser,
|
|
270
|
+
// domain: {} as IDauthDomainState,
|
|
271
|
+
// isAuthenticated: false,
|
|
272
|
+
// },
|
|
273
|
+
// });
|
|
274
|
+
// localStorage.removeItem(DAUTH_STATE);
|
|
275
|
+
// console.log(error);
|
|
276
|
+
// }
|
|
277
|
+
// }
|
|
248
278
|
|
|
249
279
|
export async function checkTokenAction({
|
|
250
280
|
dispatch,
|
|
@@ -263,27 +293,42 @@ export async function checkTokenAction({
|
|
|
263
293
|
if (refreshAccessTokenFetch.response.status === 200) {
|
|
264
294
|
return;
|
|
265
295
|
} else {
|
|
266
|
-
dispatch
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
}
|
|
274
|
-
|
|
275
|
-
|
|
296
|
+
return resetUser(dispatch);
|
|
297
|
+
// dispatch({
|
|
298
|
+
// type: DauthTypes.LOGIN,
|
|
299
|
+
// payload: {
|
|
300
|
+
// user: {} as IDauthUser,
|
|
301
|
+
// domain: {} as IDauthDomainState,
|
|
302
|
+
// isAuthenticated: false,
|
|
303
|
+
// },
|
|
304
|
+
// });
|
|
305
|
+
// localStorage.removeItem(DAUTH_STATE);
|
|
276
306
|
}
|
|
277
307
|
} catch (error) {
|
|
278
|
-
dispatch
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
}
|
|
286
|
-
|
|
308
|
+
resetUser(dispatch);
|
|
309
|
+
// dispatch({
|
|
310
|
+
// type: DauthTypes.LOGIN,
|
|
311
|
+
// payload: {
|
|
312
|
+
// user: {} as IDauthUser,
|
|
313
|
+
// domain: {} as IDauthDomainState,
|
|
314
|
+
// isAuthenticated: false,
|
|
315
|
+
// },
|
|
316
|
+
// });
|
|
317
|
+
// localStorage.removeItem(DAUTH_STATE);
|
|
287
318
|
throw error;
|
|
288
319
|
}
|
|
289
320
|
}
|
|
321
|
+
|
|
322
|
+
///////////////////////////////////////////
|
|
323
|
+
//////////////////////////////////////////
|
|
324
|
+
const resetUser = (dispatch: any) => {
|
|
325
|
+
localStorage.removeItem(DAUTH_STATE);
|
|
326
|
+
return dispatch({
|
|
327
|
+
type: DauthTypes.LOGIN,
|
|
328
|
+
payload: {
|
|
329
|
+
user: {} as IDauthUser,
|
|
330
|
+
domain: {} as IDauthDomainState,
|
|
331
|
+
isAuthenticated: false,
|
|
332
|
+
},
|
|
333
|
+
});
|
|
334
|
+
};
|