{"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"}