{"version":3,"file":"userMixin-CekO5054.js","sources":["../../src/composables/user.ts","../../src/mixins/userMixin.vue"],"sourcesContent":["import axios from 'axios';\nimport { clearHandlingFeeLimitCookieFunction } from 'components/handling-fee-limit-banner-fi/handlingFeeCookie';\nimport type { VueCookies } from 'vue-cookies';\n\nimport { sendEventFunction } from '@/composables/eventHub';\nimport { usernameCookie } from '@/composables/login';\nimport type { FischerPlugin } from '@/lib/fischerPlugin';\nimport { markAsNotIDS } from '@/utils/idsTools';\n\nimport { useCookies } from './cookies';\nimport { useFischer } from './fischerPlugin';\n\nexport interface LogoutReason {\n reason: string;\n}\n\nexport const logoutFromSSO = (redirectRelative: string): Promise<void> => {\n const redirect = new URL(redirectRelative, window.location.origin);\n window.location.href = `${\n import.meta.env.VITE_OPENID_SERVICES\n }authorizationserver/logout.do?redirect_uri=${encodeURIComponent(String(redirect))}`;\n\n return new Promise(() => {});\n};\n\nexport const logoutFunction = async (\n { reason, successUrl }: { reason?: string; successUrl?: string } = {},\n fischer: FischerPlugin,\n cookies: VueCookies,\n setErrorOccured?: () => void,\n) => {\n if (IS_SSR) {\n return;\n }\n const logoutSuccessPage = successUrl || fischer.pages.logoutSuccess().url;\n const redirect = reason ? `${logoutSuccessPage}?reason=${reason}` : logoutSuccessPage;\n try {\n cookies.remove(usernameCookie);\n fischer.setAssistedService();\n clearHandlingFeeLimitCookieFunction(cookies);\n\n if (IS_SHOWROOM) {\n cookies.remove('AccessToken');\n cookies.remove('IdToken');\n cookies.remove('CartId');\n } else {\n markAsNotIDS();\n await axios.post('/webapi/shop/userapi/Logout', {});\n }\n await sendEventFunction(\n fischer,\n cookies,\n 'custom',\n {},\n 'logout',\n reason ? { reason } : undefined,\n );\n await logoutFromSSO(redirect);\n } catch (error) {\n console.error(error);\n setErrorOccured?.();\n }\n};\n\nexport const logoutIfTokenInvalidFunction = async (\n error: undefined | { message?: string },\n fischer: FischerPlugin,\n logout: (reason: LogoutReason) => Promise<void>,\n) => {\n if (\n error?.message === 'GraphQL error: Invalid token' ||\n error?.message === 'ApolloError: Invalid token' ||\n error?.message === 'Invalid token' ||\n fischer.user.isIdTokenValid()\n ) {\n await logout({ reason: 'InvalidToken' });\n }\n};\n\nexport const useUser = () => {\n const fischer = useFischer();\n const { cookies } = useCookies();\n\n const logout = (params: Parameters<typeof logoutFunction>[0]) =>\n logoutFunction(params, fischer, cookies);\n\n const logoutIfTokenInvalid = (error: Parameters<typeof logoutIfTokenInvalidFunction>[0]) =>\n logoutIfTokenInvalidFunction(error, fischer, logout);\n\n return {\n logoutIfTokenInvalid,\n logout,\n logoutFromSSO,\n };\n};\n","<script>\nimport {\n logoutFromSSO as logoutFromSSOFunction,\n logoutFunction,\n logoutIfTokenInvalidFunction,\n} from '@/composables/user';\n\nexport default {\n methods: {\n async logout({ reason, successUrl } = {}) {\n return logoutFunction(\n { reason, successUrl },\n this.$fischer,\n this.$cookies,\n () => (this.error = true),\n );\n },\n logoutFromSSO(redirectRelative) {\n return logoutFromSSOFunction(redirectRelative);\n },\n async logoutIfTokenInvalid(error) {\n return logoutIfTokenInvalidFunction(error, this.$fischer, (reason) => this.logout(reason));\n },\n },\n};\n</script>\n"],"names":["logoutFromSSO","redirectRelative","redirect","logoutFunction","reason","successUrl","fischer","cookies","setErrorOccured","logoutSuccessPage","usernameCookie","clearHandlingFeeLimitCookieFunction","markAsNotIDS","axios","sendEventFunction","error","logoutIfTokenInvalidFunction","logout","_sfc_main","logoutFromSSOFunction"],"mappings":"uGAgBa,MAAAA,EAAiBC,GAA4C,CACxE,MAAMC,EAAW,IAAI,IAAID,EAAkB,OAAO,SAAS,MAAM,EAC1D,cAAA,SAAS,KAAO,wEAEuB,mBAAmB,OAAOC,CAAQ,CAAC,CAAC,GAE3E,IAAI,QAAQ,IAAM,CAAA,CAAE,CAC7B,EAEaC,EAAiB,MAC5B,CAAE,OAAAC,EAAQ,WAAAC,CAAA,EAAyD,CAAA,EACnEC,EACAC,EACAC,IACG,CAIH,MAAMC,EAAoBJ,GAAcC,EAAQ,MAAM,cAAgB,EAAA,IAChEJ,EAAWE,EAAS,GAAGK,CAAiB,WAAWL,CAAM,GAAKK,EAChE,GAAA,CACFF,EAAQ,OAAOG,CAAc,EAC7BJ,EAAQ,mBAAmB,EAC3BK,EAAoCJ,CAAO,EAO5BK,IACb,MAAMC,EAAM,KAAK,8BAA+B,CAAE,CAAA,EAE9C,MAAAC,EACJR,EACAC,EACA,SACA,CAAC,EACD,SACAH,EAAS,CAAE,OAAAA,CAAW,EAAA,MAAA,EAExB,MAAMJ,EAAcE,CAAQ,QACrBa,EAAO,CACd,QAAQ,MAAMA,CAAK,EACDP,GAAA,MAAAA,GACpB,CACF,EAEaQ,EAA+B,MAC1CD,EACAT,EACAW,IACG,GAEDF,GAAA,YAAAA,EAAO,WAAY,iCACnBA,GAAA,YAAAA,EAAO,WAAY,+BACnBA,GAAA,YAAAA,EAAO,WAAY,iBACnBT,EAAQ,KAAK,eAAA,IAEb,MAAMW,EAAO,CAAE,OAAQ,cAAgB,CAAA,CAE3C,ECtEKC,EAAU,CACb,QAAS,CACP,MAAM,OAAO,CAAE,OAAAd,EAAQ,WAAAC,CAAW,EAAI,CAAA,EAAI,CACxC,OAAOF,EACL,CAAE,OAAAC,EAAQ,WAAAC,CAAY,EACtB,KAAK,SACL,KAAK,SACL,IAAO,KAAK,MAAQ,GAEvB,EACD,cAAcJ,EAAkB,CAC9B,OAAOkB,EAAsBlB,CAAgB,CAC9C,EACD,MAAM,qBAAqBc,EAAO,CAChC,OAAOC,EAA6BD,EAAO,KAAK,SAAWX,GAAW,KAAK,OAAOA,CAAM,CAAC,CAC1F,CACF,CACH"}