{
  "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": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,YAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAA8B,uCAC9BC,EAA2B,sCAC3BC,EAA2B,sCAC3BC,EAAiC,uDAEjCC,EAA6B,qDAgB7B,MAAMC,EAA4B,CAACC,EAAiBC,IAA0B,CAC5E,MAAMC,EAAiB,yBAAyBF,CAAO,GACjDG,EAAgBF,EAAa,QAAQC,CAAc,EAErDC,GAAiBH,IAAYG,IAIjCF,EAAa,QAAQC,EAAgBF,CAAO,EAC5CC,EAAa,WAAWC,CAAc,EACxC,EAEA,eAAsBV,EAAO,CAC3B,SAAAY,EACA,QAAAC,EAAU,CACR,gCAAiC,EACnC,CACF,EAAsC,CACpC,MAAML,KAAU,cAAW,EAEvBK,EAAQ,iCAAmC,aAAW,cACxDN,EAA0BC,EAAS,aAAW,YAAY,EAE5D,GAAI,CACF,yBAAa,EAGb,gBAAc,QAASM,GAAgBA,EAAY,CAAC,EACpD,gBAAc,MAAM,EACpB,mBAAiB,qBAAqB,EAClB,MAAMF,EAAS,OAAO,CAE5C,OAASG,EAAK,CACZ,eAAQ,MAAM,qBAAsBA,CAAG,EAChC,EACT,CACF",
  "names": ["logout_exports", "__export", "logout", "__toCommonJS", "import_storage", "import_window", "import_getAddress", "import_registerWebsocket", "import_sharedActions", "broadcastLogoutAcrossTabs", "address", "localStorage", "logoutEventKey", "storedAddress", "provider", "options", "unsubscribe", "err"]
}
