/* Metro module 1226; source: stores/AuthenticationStore.tsx; dependencies: [6, 7, 15, 17, 18, 1227, 1228, 661, 1229, 3, 692, 587, 1230, 683, 507, 694, 12830, 8977, 4132, 490, 12831, 1216, 11878, 566, 10566, 12832, 1355, 1909, 2] */ function _fun13691(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#13691, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1353:6, offset: 0x00df2b45, size: 999 bytes, params: 8, frame: 23 var object2; const env0_0 = require; const closure = INSTALLATION_ID; const closure2 = AGE_GATE_LOGOUT_UNDERAGE_NEW_USER; const closure3 = LOGOUT_13708; const Object = global.Object; Object.defineProperty(exports, '__esModule', {value: true}); const env0_4 = importDefault(6) /* metro dependency 6 */; const env0_5 = importDefault(7) /* metro dependency 7 */; const env0_6 = importDefault(15) /* metro dependency 15 */; const env0_7 = importDefault(17) /* metro dependency 17 */; const env0_8 = importDefault(18) /* metro dependency 18 */; const browserHandoffStoreNative = importDefault(1227) /* metro dependency 1227: BrowserHandoffStoreNative */; const mobileCacheSnapshotStore = importDefault(1228) /* metro dependency 1228: MobileCacheSnapshotStore */; let value = require(661) /* metro dependency 661: Constants */; const env0_11 = value.AnalyticEvents; const env0_12 = value.Endpoints; const LoginStates = value.LoginStates; const env0_14 = value.Platforms; const env0_15 = value.Routes; const env0_16 = value.TOKEN_KEY; value = require(1229) /* metro dependency 1229: AgeGateConstants */; value.EXISTING_USER_AGE_GATE_MODAL_KEY; value.NEW_USER_AGE_GATE_MODAL_KEY; value = importDefault(3) /* metro dependency 3: Logger */; value = new value('AuthenticationStore'); let env0_31 = LoginStates.NONE; const env0_33 = []; const env0_43 = []; const Store = (importDefault(566) /* metro dependency 566: flux */).Store; _fun13709(Store).displayName = 'AuthenticationStore'; const dispatcher = importDefault(694) /* metro dependency 694: Dispatcher */; object2 = {CONNECTION_OPEN: CONNECTION_OPEN_13733, OVERLAY_INITIALIZE: OVERLAY_INITIALIZE, CONNECTION_CLOSED: CONNECTION_CLOSED, AUTH_SESSION_CHANGE: AUTH_SESSION_CHANGE, LOGIN: LOGIN, LOGIN_SUCCESS: function({token}) { env0_31 = LoginStates.NONE; setAuthToken(token); clearFingerprint(); env0_34 = ''; env0_35 = false; env0_36 = null; env0_18 = null; updateMFAMethods(); env0_41 = false; }, LOGIN_FAILURE: function({error}) { env0_34 = ''; env0_35 = false; env0_36 = null; env0_18 = null; updateMFAMethods(); env0_31 = require(dependencyMap[17]).getAuthenticationErrorsFromV6OrEarlierAPIError(error).date_of_birth != null ? LoginStates.LOGIN_AGE_GATE : LoginStates.NONE; }, LOGIN_MFA_STEP: LOGIN_MFA_STEP, LOGIN_MFA: function() { env0_31 = LoginStates.LOGGING_IN_MFA; }, LOGIN_ACCOUNT_SCHEDULED_FOR_DELETION: function(a0) { env0_31 = LoginStates.ACCOUNT_SCHEDULED_FOR_DELETION; env0_17 = a0.credentials; }, LOGIN_ACCOUNT_DISABLED: function(a0) { env0_31 = LoginStates.ACCOUNT_DISABLED; env0_17 = a0.credentials; }, LOGIN_PASSWORD_RECOVERY_PHONE_VERIFICATION: function(a0) { env0_31 = LoginStates.PASSWORD_RECOVERY_PHONE_VERIFICATION; env0_17 = a0.credentials; }, LOGIN_PHONE_IP_AUTHORIZATION_REQUIRED: function(a0) { env0_31 = LoginStates.PHONE_IP_AUTHORIZATION; env0_17 = a0.credentials; }, LOGIN_RESET: function({isMultiAccount}) { env0_31 = LoginStates.NONE; env0_34 = ''; env0_35 = false; env0_36 = null; env0_18 = null; env0_17 = null; if (!isMultiAccount) { updateMFAMethods(); removeAuthToken(); fetchFingerprint(false); } }, LOGIN_STATUS_RESET: function() { env0_31 = LoginStates.NONE; }, LOGIN_SUSPENDED_USER: function({suspendedUserToken}) { env0_41 = false; env0_40 = suspendedUserToken; global.setImmediate(_fun13750); }, LOGOUT: closure3, FINGERPRINT: FINGERPRINT, INSTALLATION_ID: closure, REGISTER_SUCCESS: function({token}) { setAuthToken(token); clearFingerprint(); }, FORGOT_PASSWORD_REQUEST: function() { env0_31 = LoginStates.FORGOT_PASSWORD; }, FORGOT_PASSWORD_SENT: function() { env0_31 = LoginStates.NONE; }, UPDATE_TOKEN: function({token, userId}) { logInfo('handleUpdateToken called'); setAuthToken(token, userId); clearFingerprint(); }, EXPERIMENTS_FETCH: function(a0) { fetchExperiments(a0); }, CURRENT_USER_UPDATE: CURRENT_USER_UPDATE, AGE_GATE_LOGOUT_UNDERAGE_NEW_USER: closure2, CLOSE_SUSPENDED_USER: function() { env0_40 = null; env0_31 = LoginStates.NONE; LOGOUT_13708(); global.setImmediate(_fun13759); }, PASSWORDLESS_FAILURE: PASSWORDLESS_FAILURE, PASSWORDLESS_START: function() { env0_41 = true; }}; const DispatchBand = (require(694) /* metro dependency 694: Dispatcher */).DispatchBand; const Early = DispatchBand.Early; value = new value(dispatcher, object2, Early); (require(2) /* metro dependency 2 */).fileFinishedImporting('stores/AuthenticationStore.tsx'); exports.default = value; } function _isNativeReflectConstruct_13692() { // fn#13692, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1353:341, offset: 0x00df2f2c, size: 94 bytes, params: 1, frame: 18 var Boolean; var prototype; var valueOf; var call; var Reflect; var construct; var closure; var value; var error; try { Boolean = global.Boolean; prototype = Boolean.prototype; valueOf = prototype.valueOf; call = valueOf.call; Reflect = global.Reflect; construct = Reflect.construct; Boolean = global.Boolean; closure = function() { }; value = Reflect.apply(construct, Reflect, [Boolean, [], closure]); value = Reflect.apply(call, valueOf, [value]); var result = !value; } catch (error) { } return (_isNativeReflectConstruct_13692_isNativeReflectConstruct = function() { return !!result; })(); } function logInfo(a0) { // fn#13695, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1353:772, offset: 0x00df2f8a, size: 114 bytes, params: 2, frame: 16 const value3 = (importAll(692) /* metro dependency 692: TokenManager */).getToken() != null; const Storage = (require(587) /* metro dependency 587: Storage */).Storage; const get = Storage.get; const value4 = Reflect.apply(get, Storage, [TOKEN_KEY]) != null; const binding = env0_19; binding.verbose(a0, {tokenManagerHasToken: value3, storageHasToken: value4}); } function fetchFingerprint() { // fn#13696, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1353:912, offset: 0x00df2ffc, size: 264 bytes, params: 1, frame: 17 const value = a0; const r4 = !(value !== undefined) || value; const Storage = (require(587) /* metro dependency 587: Storage */).Storage; env0_27 = Storage.get(env0_20); const value2 = Storage.get(env0_21); const value3 = null; let r1 = value3 != value2 ? value2 : value3; if (value3 != env0_39) { return env0_39; } r1 = value3 != env0_27 ? env0_27 : (importAll(692) /* metro dependency 692: TokenManager */).getToken(); const router_utilsModule = require(1230) /* metro dependency 1230: router_utils */; r1 = router_utilsModule.isValidFingerprintRoute() ? r4 ? BrowserHandoffStoreNative.isHandoffAvailable() ? global.Promise.resolve() : fetchExperiments({withGuildExperiments: true}) : value3 != r1 || BrowserHandoffStoreNative.isHandoffAvailable() ? global.Promise.resolve() : fetchExperiments({withGuildExperiments: true}) : global.Promise.resolve(); return r1; } function fetchExperiments({withGuildExperiments}) { // fn#13697, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1353:1216, offset: 0x00df3104, size: 246 bytes, params: 2, frame: 20 let object3 = {}; const superPropertiesBase64 = (importDefault(683) /* metro dependency 683: AnalyticsUtils */).getSuperPropertiesBase64(); if (superPropertiesBase64 != null) { object3['X-Super-Properties'] = superPropertiesBase64; } if (env0_27 != null) { object3['X-Fingerprint'] = env0_27; } if (env0_29 != null) { object3['X-Installation-ID'] = env0_29; } const HTTP = (require(507) /* metro dependency 507: HTTPUtils */).HTTP; const get = HTTP.get; const object4 = {}; const EXPERIMENTS = Endpoints.EXPERIMENTS; object4.url = EXPERIMENTS; object4.query = {with_guild_experiments: withGuildExperiments}; object4.headers = object3; object3 = {}; object3.location = (require(1230) /* metro dependency 1230: router_utils */).getFingerprintLocation(); object4.context = object3; object4.retries = 3; object4.oldFormErrors = true; object4.rejectWithError = false; return Reflect.apply(get, HTTP, [object4]).then(_fun13698, _fun13699); } function clearFingerprint() { // fn#13700, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1353:2052, offset: 0x00df332d, size: 62 bytes, params: 1, frame: 12 const Storage = (require(587) /* metro dependency 587: Storage */).Storage; Storage.remove(env0_20); } function setAuthToken(a0, a1) { // fn#13701, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1353:2118, offset: 0x00df336b, size: 110 bytes, params: 3, frame: 15 logInfo('setAuthToken called.'); if (!(a1 != null && a1 === env0_23)) { (importAll(692) /* metro dependency 692: TokenManager */).removeAnalyticsToken(); } (importAll(692) /* metro dependency 692: TokenManager */).setToken(a0, a1); } function setAnalyticsToken_13702(a0) { // fn#13702, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1353:2248, offset: 0x00df33d9, size: 45 bytes, params: 2, frame: 12 env0_30 = a0; (importAll(692) /* metro dependency 692: TokenManager */).setAnalyticsToken(a0); } function removeAuthToken() { // fn#13703, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1353:2312, offset: 0x00df3406, size: 71 bytes, params: 1, frame: 14 logInfo('removeAuthToken called.'); (importAll(692) /* metro dependency 692: TokenManager */).removeAnalyticsToken(); return (importAll(692) /* metro dependency 692: TokenManager */).removeToken(); } function updateMFAMethods() { // fn#13704, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1353:2436, offset: 0x00df344d, size: 135 bytes, params: 1, frame: 13 const items2 = []; if (env0_36 != null) { items2.push({type: 'webauthn', challenge: env0_36}); } if (env0_37) { items2.push({type: 'totp'}); } if (env0_38) { items2.push({type: 'backup'}); } if (env0_35) { items2.push({type: 'sms'}); } } function INSTALLATION_ID({installation}) { // fn#13705, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1353:2600, offset: 0x00df34d4, size: 123 bytes, params: 2, frame: 15 var defaultImport; const Storage = (require(587) /* metro dependency 587: Storage */).Storage; if (env0_29 == null) { defaultImport = importDefault(12831) /* metro dependency 12831: TrackingConsentUtils */; if (defaultImport.canUseInstallationId()) { Storage.set(env0_21, installation); } } else { if (env0_29.length > 0) { return false; } defaultImport = importDefault(12831) /* metro dependency 12831: TrackingConsentUtils */; if (defaultImport.canUseInstallationId()) { Storage.set(env0_21, installation); } } } function AGE_GATE_LOGOUT_UNDERAGE_NEW_USER() { // fn#13706, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1353:2743, offset: 0x00df354f, size: 59 bytes, params: 1, frame: 12 LOGOUT_13708(); (importDefault(694) /* metro dependency 694: Dispatcher */).wait(function() { require(dependencyMap[12]).transitionTo(Routes.REGISTER); }); } function LOGOUT_13708(a0) { // fn#13708, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1353:2853, offset: 0x00df35ba, size: 359 bytes, params: 2, frame: 19 const logInfoBinding = logInfo; const value2 = undefined; logInfoBinding('handleLogout called.'); const value3 = removeAuthToken(); const isSwitchingAccount = a0 == null ? value2 : a0.isSwitchingAccount; if (!(isSwitchingAccount != null && isSwitchingAccount)) { if (value3) { clearFingerprint(); } fetchFingerprint(); } const PersistedStore = (importDefault(566) /* metro dependency 566: flux */).PersistedStore; PersistedStore.clearAll({omit: ['InstallationManagerStore', 'AgeGateStore', 'NativePermissionsStore', 'MultiAccountStore', 'DraftStore', 'OverlayStoreV2', 'StreamerModeStore', 'LoginRequiredActionStore', 'LayoutStore', 'OverlaySettingsStore', 'ApexExperimentStore'], type: a0 != null && a0.isSwitchingAccount ? 'user-data-only' : 'all'}); const Store = (importDefault(566) /* metro dependency 566: flux */).Store; Store.removeAllConditionalListeners(); MobileCacheSnapshotStore.clearAll(); (importDefault(1216) /* metro dependency 1216: SentryUtilsNative */).clearUser(); const Storage = (require(587) /* metro dependency 587: Storage */).Storage; Storage.remove(env0_22); env0_31 = a0 == null ? LoginStates.NONE : a0.isSwitchingAccount ? LoginStates.LOGGING_IN : LoginStates.NONE; updateMFAMethods(); return value2; } function _fun13709(a0) { // fn#13709, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1353:3583, offset: 0x00df3721, size: 521 bytes, params: 2, frame: 16 const closure = AuthenticationStore; env0_8(closure, a0); return env0_5(closure, [{key: 'initialize', value: value_13711}, {key: 'getLoginStatus', value: function() { return NONE; }}, {key: 'getId', value: value_13715}, {key: 'getSessionId', value: value_13716}, {key: 'getAuthSessionIdHash', value: value_13717}, {key: 'getStaticAuthSessionId', value: value_13718}, {key: 'getToken', value: value_13719}, {key: 'isAuthenticated', value: value_13720}, {key: 'getFingerprint', value: value_13721}, {key: 'getInstallationForTracking', value: value_13722}, {key: 'getAnalyticsToken', value: value_13723}, {key: 'getMFATicket', value: value_13724}, {key: 'getMFAMethods', value: value_13725}, {key: 'getLoginInstanceId', value: value_13726}, {key: 'hasTOTPEnabled', value: value_13727}, {key: 'getCredentials', value: value_13728}, {key: 'allowLogoutRedirect', value: value_13729}, {key: 'getSuspendedUserToken', value: value_13730}, {key: 'getIsPasswordlessActive', value: value_13731}, {key: 'attemptedPasswordLogin', value: value_13732}]); } function CONNECTION_OPEN_13733({user, sessionId, authSessionIdHash, analyticsToken, auth, staticAuthSessionId, apexExperiments}) { // fn#13733, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1353:5518, offset: 0x00df3c43, size: 450 bytes, params: 2, frame: 29 var authenticator_types; var defaultImport2; var track; logInfo('handleConnectionOpen called'); const defaultImport = importDefault(1216) /* metro dependency 1216: SentryUtilsNative */; const setUser = defaultImport.setUser; let id = user.id; const username = user.username; Reflect.apply(setUser, defaultImport, [id, username, user.email ?? undefined, (importDefault(11878) /* metro dependency 11878: isStaffFromRawUser */)(user)]); setAnalyticsToken_13702(analyticsToken); id = user.id; if (auth !== undefined) { authenticator_types = auth.authenticator_types; } const Storage = (require(587) /* metro dependency 587: Storage */).Storage; let set = Storage.set; Reflect.apply(set, Storage, [env0_22, user.id]); if (apexExperiments?.installation != null) { INSTALLATION_ID({type: 'INSTALLATION_ID', installation: apexExperiments.installation}); } const get = Storage.get; let APP_FIRST_LOGIN = AnalyticEvents.APP_FIRST_LOGIN; if (Reflect.apply(get, Storage, [APP_FIRST_LOGIN, true])) { defaultImport2 = importDefault(683) /* metro dependency 683: AnalyticsUtils */; track = defaultImport2.track; APP_FIRST_LOGIN = AnalyticEvents.APP_FIRST_LOGIN; Reflect.apply(track, defaultImport2, [APP_FIRST_LOGIN, {platform: Platforms.IOS}]); set = Storage.set; APP_FIRST_LOGIN = AnalyticEvents.APP_FIRST_LOGIN; Reflect.apply(set, Storage, [APP_FIRST_LOGIN, false]); } } function OVERLAY_INITIALIZE({user, sessionId, analyticsToken, token}) { // fn#13734, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1353:6183, offset: 0x00df3e05, size: 230 bytes, params: 2, frame: 26 const defaultImport = importDefault(1216) /* metro dependency 1216: SentryUtilsNative */; const setUser = defaultImport.setUser; let id = user.id; const username = user.username; Reflect.apply(setUser, defaultImport, [id, username, user.email ?? undefined, (importDefault(11878) /* metro dependency 11878: isStaffFromRawUser */)(user)]); setAuthToken(token, user.id); if (analyticsToken != null) { setAnalyticsToken_13702(analyticsToken); } clearFingerprint(); id = user.id; const Storage = (require(587) /* metro dependency 587: Storage */).Storage; Storage.set(env0_22, user.id); } function CONNECTION_CLOSED({code}) { // fn#13735, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1353:6475, offset: 0x00df3eeb, size: 190 bytes, params: 2, frame: 19 logInfo('handleConnectionClosed called with code ' + code + '.'); if (code === 4004) { if (env0_32) { AGE_GATE_LOGOUT_UNDERAGE_NEW_USER(); return undefined; } var defaultImport = importDefault(683) /* metro dependency 683: AnalyticsUtils */; var track = defaultImport.track; var APP_USER_DEAUTHENTICATED = AnalyticEvents.APP_USER_DEAUTHENTICATED; var object2 = {}; var Storage = (require(587) /* metro dependency 587: Storage */).Storage; object2.user_id = Storage.get(env0_22); Reflect.apply(track, defaultImport, [APP_USER_DEAUTHENTICATED, object2]); LOGOUT_13708(); global.setImmediate(function() { return require(dependencyMap[12]).transitionTo(Routes.DEFAULT_LOGGED_OUT); }); } } function AUTH_SESSION_CHANGE({authSessionIdHash}) { // fn#13737, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1353:6806, offset: 0x00df3fd9, size: 26 bytes, params: 2, frame: 2 if (authSessionIdHash == null) { } } function LOGIN({isPasswordAttempt}) { // fn#13738, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1353:6884, offset: 0x00df3ff3, size: 47 bytes, params: 2, frame: 4 env0_31 = LoginStates.LOGGING_IN; env0_42 = env0_42 || isPasswordAttempt === true; } function LOGIN_MFA_STEP({ticket, sms, webauthn, backup, totp, loginInstanceId}) { // fn#13741, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1353:7333, offset: 0x00df40e7, size: 115 bytes, params: 2, frame: 15 var r4; if (ticket != null) { r4 = webauthn ?? null; updateMFAMethods(); } env0_31 = LoginStates.MFA_STEP; } function LOGIN_SUSPENDED_USER({suspendedUserToken}) { // fn#13749, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1353:8334, offset: 0x00df4264, size: 46 bytes, params: 2, frame: 11 global.setImmediate(function() { return require(dependencyMap[12]).transitionTo(Routes.ACCOUNT_STANDING); }); } function FINGERPRINT({fingerprint}) { // fn#13751, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1353:8496, offset: 0x00df42c2, size: 365 bytes, params: 2, frame: 23 var defaultImport; var track; var EXTERNAL_FINGERPRINT_DROPPED; var object2; var defaultImport2; var USER_FINGERPRINT_CHANGED; var Storage; if (env0_27 == null) { if (fingerprint != null) { defaultImport2 = importDefault(683) /* metro dependency 683: AnalyticsUtils */; track = defaultImport2.track; USER_FINGERPRINT_CHANGED = AnalyticEvents.USER_FINGERPRINT_CHANGED; object2 = {}; object2.old_fingerprint = env0_28 != null ? (require(490) /* metro dependency 490: FingerprintUtils */).extractId(env0_28) : null; object2.new_fingerprint = (require(490) /* metro dependency 490: FingerprintUtils */).extractId(fingerprint); Reflect.apply(track, defaultImport2, [USER_FINGERPRINT_CHANGED, object2]); env0_27 = fingerprint; Storage = (require(587) /* metro dependency 587: Storage */).Storage; Storage.set(env0_20, env0_27); } else { fetchFingerprint(); } } else if (fingerprint != null && env0_27 !== fingerprint) { defaultImport = importDefault(683) /* metro dependency 683: AnalyticsUtils */; track = defaultImport.track; EXTERNAL_FINGERPRINT_DROPPED = AnalyticEvents.EXTERNAL_FINGERPRINT_DROPPED; object2 = {}; object2.fingerprint = (require(490) /* metro dependency 490: FingerprintUtils */).extractId(env0_27); object2.dropped_fingerprint = (require(490) /* metro dependency 490: FingerprintUtils */).extractId(fingerprint); Reflect.apply(track, defaultImport, [EXTERNAL_FINGERPRINT_DROPPED, object2]); } } function CURRENT_USER_UPDATE({user}) { // fn#13757, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1353:9373, offset: 0x00df44ae, size: 90 bytes, params: 2, frame: 15 const id = user.id; let authenticator_types = user.authenticator_types; if (authenticator_types !== undefined) { authenticator_types = user.authenticator_types; } const Storage = (require(587) /* metro dependency 587: Storage */).Storage; Storage.set(env0_22, user.id); } function CLOSE_SUSPENDED_USER() { // fn#13758, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1353:9581, offset: 0x00df4508, size: 55 bytes, params: 1, frame: 11 env0_31 = LoginStates.NONE; LOGOUT_13708(); global.setImmediate(function() { return require(dependencyMap[12]).transitionTo(Routes.DEFAULT_LOGGED_OUT); }); } function PASSWORDLESS_FAILURE({error}) { // fn#13760, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1353:9735, offset: 0x00df453f, size: 153 bytes, params: 2, frame: 15 var r1; var NONE; var moduleValue; if (error instanceof (importDefault(4132) /* metro dependency 4132: APIError */)) { moduleValue = require(8977) /* metro dependency 8977: getAuthenticationErrorsFromAPIError */; r1 = moduleValue.getAuthenticationErrorsFromAPIError(error).date_of_birth != null ? LoginStates.LOGIN_AGE_GATE : LoginStates.NONE; } else { NONE = LoginStates.NONE; } } function _fun13698({body}) { // fn#13698, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1353:1616, offset: 0x00df31fa, size: 252 bytes, params: 2, frame: 19 const fingerprint = body.fingerprint; const assignments = body.assignments; const guild_experiments = body.guild_experiments; const installation = body.installation; let value = installation != null; if (value && installation.length > 0) { value = environment.__proto__; value = importDefault(694) /* metro dependency 694: Dispatcher */; value.dispatch({type: 'INSTALLATION_ID', installation: installation}); } if (fingerprint) { value = environment.__proto__; value = importDefault(694) /* metro dependency 694: Dispatcher */; value.dispatch({type: 'FINGERPRINT', fingerprint: fingerprint}); } value = environment.__proto__; const defaultImport = importDefault(694) /* metro dependency 694: Dispatcher */; defaultImport.dispatch({type: 'EXPERIMENTS_FETCH_SUCCESS', fingerprint: fingerprint, experiments: assignments, guildExperiments: guild_experiments}); (require(12830) /* metro dependency 12830: awaitExperiments */).onExperimentsLoaded(); } function _fun13699() { // fn#13699, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1353:1983, offset: 0x00df32f6, size: 55 bytes, params: 1, frame: 13 const value = environment.__proto__; (importDefault(694) /* metro dependency 694: Dispatcher */).dispatch({type: 'EXPERIMENTS_FETCH_FAILURE'}); } function AuthenticationStore() { // fn#13710, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1353:3595, offset: 0x00df392a, size: 113 bytes, params: 1, frame: 20 const value = environment.__proto__; env1_4(this, AuthenticationStore); const value3 = env1_7(AuthenticationStore); return env1_6(this, _isNativeReflectConstruct_13692() ? global.Reflect.construct(value3, arguments, env1_7(this).constructor) : value3.apply(this, arguments)); } function value_13711() { // fn#13711, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1353:3908, offset: 0x00df399b, size: 206 bytes, params: 1, frame: 19 var environment; var closure; const value = environment.__proto__; const Storage = (require(587) /* metro dependency 587: Storage */).Storage; env1_23 = Storage.get(env1_22); const value2 = Storage.get(env1_21); const value3 = null; env1_29 = value3 != value2 ? value2 : value3; const tokenManagerModule = importAll(692) /* metro dependency 692: TokenManager */; const getToken = tokenManagerModule.getToken; if (value3 == Reflect.apply(getToken, tokenManagerModule, [])) { if (value3 == env1_29 || env1_29.length === 0) { closure = fireApex; fetchFingerprint().then(closure, closure); } } this.addChangeListener(_fun13713); } function value_13719() { // fn#13719, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1353:4503, offset: 0x00df3ae8, size: 37 bytes, params: 1, frame: 11 const value = environment.__proto__; return (require(1355) /* metro dependency 1355: AuthenticationUtils */).getToken(); } function value_13720() { // fn#13720, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1353:4572, offset: 0x00df3b0d, size: 37 bytes, params: 1, frame: 11 const value = environment.__proto__; return (require(1355) /* metro dependency 1355: AuthenticationUtils */).isAuthenticated(); } function value_13722() { // fn#13722, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1353:4709, offset: 0x00df3b3b, size: 46 bytes, params: 1, frame: 12 return (importDefault(12831) /* metro dependency 12831: TrackingConsentUtils */).canUseInstallationId() ? env1_29 : null; } function value_13723() { // fn#13723, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1353:4799, offset: 0x00df3b69, size: 53 bytes, params: 1, frame: 12 var r0; let value = environment.__proto__; if (env1_30 != null) { r0 = env1_30; } else { value = importAll(692) /* metro dependency 692: TokenManager */; value = value.getAnalyticsToken(); r0 = value; } return r0; } function value_13727() { // fn#13727, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1353:5037, offset: 0x00df3bb0, size: 53 bytes, params: 1, frame: 13 const binding = env1_33; const includes = binding.includes; const AuthenticatorType = (require(1909) /* metro dependency 1909: Server */).AuthenticatorType; const TOTP = AuthenticatorType.TOTP; return Reflect.apply(includes, binding, [TOTP]); } function value_13728() { // fn#13728, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1353:5129, offset: 0x00df3be5, size: 55 bytes, params: 1, frame: 11 const value = environment.__proto__; if (env1_17 == null) { throw new global.Error('no credentials'); } return env1_17; } function value_13729() { // fn#13729, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1353:5229, offset: 0x00df3c1c, size: 12 bytes, params: 1, frame: 1 return !env1_32; } function fireApex() { // fn#13712, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1353:4092, owner: value_13711.fireApex, offset: 0x00df3a69, size: 40 bytes, params: 1, frame: 12 const value = environment.__proto__.__proto__; (require(10566) /* metro dependency 10566: ApexActionCreators */).fetchInstallationExperiments(null); } function _fun13713() { // fn#13713, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1353:4193, offset: 0x00df3a91, size: 42 bytes, params: 1, frame: 12 return (require(12832) /* metro dependency 12832: ClientStateStoreStorageNative */).setClientState(env2_23); }