{
  "version": 3,
  "sources": ["../../src/providers/DappProvider/helpers/logout/logout.ts"],
  "sourcesContent": ["import { subscriptions } from 'constants/storage.constants';\nimport { safeWindow } from 'constants/window.constants';\nimport { getAddress } from 'methods/account/getAddress';\nimport { websocketManager } from 'methods/initApp/websocket/registerWebsocket';\nimport { IProvider } from 'providers/types/providerFactory.types';\nimport { logoutAction } from 'store/actions/sharedActions/sharedActions';\n\nexport type LogoutPropsType = {\n  shouldAttemptReLogin?: boolean;\n  shouldBroadcastLogoutAcrossTabs?: boolean;\n  /*\n   * Only used for web-wallet crossWindow login\n   */\n  hasConsentPopup?: boolean;\n};\n\ninterface IProviderLogout {\n  provider: IProvider;\n  options?: LogoutPropsType;\n}\n\nconst broadcastLogoutAcrossTabs = (address: string, localStorage: Storage) => {\n  const logoutEventKey = `sdk-dapp-logout-event-${address}`;\n  const storedAddress = localStorage.getItem(logoutEventKey);\n\n  if (storedAddress && address !== storedAddress) {\n    return;\n  }\n\n  localStorage.setItem(logoutEventKey, address);\n  localStorage.removeItem(logoutEventKey);\n};\n\nexport async function logout({\n  provider,\n  options = {\n    shouldBroadcastLogoutAcrossTabs: true\n  }\n}: IProviderLogout): Promise<boolean> {\n  const address = getAddress();\n\n  if (options.shouldBroadcastLogoutAcrossTabs && safeWindow.localStorage) {\n    broadcastLogoutAcrossTabs(address, safeWindow.localStorage);\n  }\n  try {\n    logoutAction();\n\n    // Clear all active subscriptions on logout\n    subscriptions.forEach((unsubscribe) => unsubscribe());\n    subscriptions.clear();\n    websocketManager.closeConnectionRef?.();\n    const isLoggedOut = await provider.logout();\n    return isLoggedOut;\n  } catch (err) {\n    console.error('Logging out error:', err);\n    return false;\n  }\n}\n"],
  "mappings": "wMAqBA,IAAMA,EAA4B,CAACC,EAAiBC,IAA0B,CAC5E,IAAMC,EAAiB,yBAAyBF,CAAO,GACjDG,EAAgBF,EAAa,QAAQC,CAAc,EAErDC,GAAiBH,IAAYG,IAIjCF,EAAa,QAAQC,EAAgBF,CAAO,EAC5CC,EAAa,WAAWC,CAAc,EACxC,EAEA,eAAsBE,EAAO,CAC3B,SAAAC,EACA,QAAAC,EAAU,CACR,gCAAiC,EACnC,CACF,EAAsC,CACpC,IAAMN,EAAUO,EAAW,EAEvBD,EAAQ,iCAAmCE,EAAW,cACxDT,EAA0BC,EAASQ,EAAW,YAAY,EAE5D,GAAI,CACF,OAAAC,EAAa,EAGbC,EAAc,QAASC,GAAgBA,EAAY,CAAC,EACpDD,EAAc,MAAM,EACpBE,EAAiB,qBAAqB,EAClB,MAAMP,EAAS,OAAO,CAE5C,OAASQ,EAAK,CACZ,eAAQ,MAAM,qBAAsBA,CAAG,EAChC,EACT,CACF",
  "names": ["broadcastLogoutAcrossTabs", "address", "localStorage", "logoutEventKey", "storedAddress", "logout", "provider", "options", "getAddress", "safeWindow", "logoutAction", "subscriptions", "unsubscribe", "websocketManager", "err"]
}
