/* Metro module 11876; source: modules/multi_account/MultiAccountStore.tsx; dependencies: [6, 7, 15, 17, 18, 11877, 11878, 692, 11879, 566, 694, 2] */ function _fun91094(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#91094, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12062:6, offset: 0x02052bf7, size: 543 bytes, params: 8, frame: 21 var object2; const env0_0 = require; 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 env0_9 = (require(11877) /* metro dependency 11877: Constants */).MAX_ACCOUNTS; object2 = {INVALID: 0}; object2[0] = 'INVALID'; object2.VALIDATING = 1; object2[1] = 'VALIDATING'; object2.VALID = 2; object2[2] = 'VALID'; const env0_13 = []; const PersistedStore = (importDefault(566) /* metro dependency 566: flux */).PersistedStore; let value = _fun91102(PersistedStore); value.displayName = 'MultiAccountStore'; value.persistKey = 'MultiAccountStore'; value.migrations = [function(a0) { return a0 != null ? {users: a0.users ?? [], canUseMultiAccountMobile: false} : {users: [], canUseMultiAccountMobile: false}; }]; value = new value(importDefault(694) /* metro dependency 694: Dispatcher */, {CONNECTION_OPEN: CONNECTION_OPEN_91116, LOGOUT: LOGOUT_91119, MULTI_ACCOUNT_VALIDATE_TOKEN_REQUEST: MULTI_ACCOUNT_VALIDATE_TOKEN_REQUEST, MULTI_ACCOUNT_VALIDATE_TOKEN_SUCCESS: MULTI_ACCOUNT_VALIDATE_TOKEN_SUCCESS, MULTI_ACCOUNT_VALIDATE_TOKEN_FAILURE: MULTI_ACCOUNT_VALIDATE_TOKEN_FAILURE, MULTI_ACCOUNT_REMOVE_ACCOUNT: function(a0) { removeAccountById(a0.userId); }, MULTI_ACCOUNT_MOVE_ACCOUNT: MULTI_ACCOUNT_MOVE_ACCOUNT, CURRENT_USER_UPDATE: CURRENT_USER_UPDATE_91126, MULTI_ACCOUNT_UPDATE_PUSH_SYNC_TOKEN: MULTI_ACCOUNT_UPDATE_PUSH_SYNC_TOKEN, MULTI_ACCOUNT_INVALIDATE_PUSH_SYNC_TOKENS: MULTI_ACCOUNT_INVALIDATE_PUSH_SYNC_TOKENS}); (require(2) /* metro dependency 2 */).fileFinishedImporting('modules/multi_account/MultiAccountStore.tsx'); exports.default = value; exports.MultiAccountTokenStatus = object2; } function _isNativeReflectConstruct_91095() { // fn#91095, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12062:171, offset: 0x02052e16, size: 98 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_91095_isNativeReflectConstruct = function() { return !!result; })(); } function removeAccountById(a0) { // fn#91098, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12062:487, offset: 0x02052e78, size: 72 bytes, params: 2, frame: 13 const env0_0 = a0; env0_13 = env0_13.filter(_fun91099); (importAll(692) /* metro dependency 692: TokenManager */).removeToken(a0); } function setTokenStatus(a0, a1) { // fn#91100, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12062:570, offset: 0x02052ec0, size: 66 bytes, params: 3, frame: 12 const env0_0 = a0; const value3 = env0_13.slice().find(_fun91101); if (value3 != null) { value3.tokenStatus = a1; } } function _fun91102(a0) { // fn#91102, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12062:680, offset: 0x02052f02, size: 274 bytes, params: 2, frame: 16 const closure = MultiAccountStore; env0_8(closure, a0); return env0_5(closure, [{key: 'initialize', value: value_91104}, {key: 'getCanUseMultiAccountMobile', value: value_91105}, {key: 'getState', value: value_91106}, {key: 'getUsers', value: value_91107}, {key: 'getValidUsers', value: value_91108}, {key: 'getHasLoggedInAccounts', value: value_91110}, {key: 'getIsValidatingUsers', value: value_91111}, {key: 'canUseMultiAccountNotifications', get: function() { return this.getCanUseMultiAccountMobile(); }}, {key: 'isSwitchingAccount', get: get_91114}]); } function CONNECTION_OPEN_91116({user}) { // fn#91116, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12062:1945, offset: 0x0205319c, size: 346 bytes, params: 2, frame: 16 var property; const id = user.id; if (!env0_11 && (importDefault(11878) /* metro dependency 11878: isStaffFromRawUser */)(user)) { } const value4 = env0_13.slice(); const index = value4.findIndex(function({id}) { return id === user.id; }); if (index > -1) { property = env0_13[index]; property.avatar = user.avatar; property = env0_13[index]; property.username = user.username; property = env0_13[index]; property.discriminator = user.discriminator; property = env0_13[index]; property.tokenStatus = env0_12.VALID; env0_13 = value4; } else { value4.push({id: user.id, avatar: user.avatar, username: user.username, discriminator: user.discriminator, tokenStatus: env0_12.VALID, pushSyncToken: null}); env0_13 = value4; } if (env0_13.length > MAX_ACCOUNTS) { env0_13.splice(MAX_ACCOUNTS).forEach(function({id}) { removeAccountById(id); }); } } function LOGOUT_91119(a0) { // fn#91119, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12062:2394, offset: 0x0205330e, size: 68 bytes, params: 2, frame: 12 result = !!a0.isSwitchingAccount; if (!a0.isSwitchingAccount) { env0_13 = env0_13.filter(_fun91120); } } function MULTI_ACCOUNT_VALIDATE_TOKEN_REQUEST({userId}) { // fn#91121, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12062:2543, offset: 0x02053367, size: 35 bytes, params: 2, frame: 13 const setTokenStatusBinding = setTokenStatus; const VALIDATING = env0_12.VALIDATING; setTokenStatusBinding(userId, VALIDATING); } function MULTI_ACCOUNT_VALIDATE_TOKEN_SUCCESS({userId}) { // fn#91122, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12062:2621, offset: 0x0205338a, size: 35 bytes, params: 2, frame: 13 const setTokenStatusBinding = setTokenStatus; const VALID = env0_12.VALID; setTokenStatusBinding(userId, VALID); } function MULTI_ACCOUNT_VALIDATE_TOKEN_FAILURE({userId}) { // fn#91123, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12062:2694, offset: 0x020533ad, size: 35 bytes, params: 2, frame: 13 const setTokenStatusBinding = setTokenStatus; const INVALID = env0_12.INVALID; setTokenStatusBinding(userId, INVALID); } function MULTI_ACCOUNT_MOVE_ACCOUNT({from, to}) { // fn#91125, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12062:2819, offset: 0x020533e8, size: 61 bytes, params: 2, frame: 17 env0_13 = (require(11879) /* metro dependency 11879: DragAndDropUtils */).moveItemFromTo(env0_13, from, to); } function CURRENT_USER_UPDATE_91126({user}) { // fn#91126, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12062:2914, offset: 0x02053425, size: 98 bytes, params: 2, frame: 13 const value3 = env0_13.slice().find(function({id}) { return id === user.id; }); if (value3 != null) { value3.avatar = user.avatar; value3.username = user.username; value3.discriminator = user.discriminator; } } function MULTI_ACCOUNT_UPDATE_PUSH_SYNC_TOKEN({userId, pushSyncToken}) { // fn#91128, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12062:3129, offset: 0x02053487, size: 56 bytes, params: 2, frame: 12 env0_13 = env0_13.map(function(a0) { var r0; var object; var value = a0; var id = value.id; if (id !== userId) { r0 = value; } else { object = {}; copyDataProperties(object, value, id); object['pushSyncToken'] = pushSyncToken; r0 = object; } return r0; }); } function MULTI_ACCOUNT_INVALIDATE_PUSH_SYNC_TOKENS({invalidPushSyncTokens}) { // fn#91130, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12062:3283, offset: 0x020534f3, size: 47 bytes, params: 2, frame: 12 env0_13 = env0_13.map(_fun91131); } function MultiAccountStore() { // fn#91103, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12062:692, offset: 0x02053014, size: 113 bytes, params: 1, frame: 20 const value = environment.__proto__; env1_4(this, MultiAccountStore); const value3 = env1_7(MultiAccountStore); return env1_6(this, _isNativeReflectConstruct_91095() ? global.Reflect.construct(value3, arguments, env1_7(this).constructor) : value3.apply(this, arguments)); } function value_91104(a0) { // fn#91104, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12062:995, offset: 0x02053085, size: 44 bytes, params: 2, frame: 3 var r2; var value; var canUseMultiAccountMobile; if (a0 != null) { r2 = a0.users ?? []; value = environment.__proto__; canUseMultiAccountMobile = a0.canUseMultiAccountMobile; } } function value_91106() { // fn#91106, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12062:1165, offset: 0x020530b1, size: 25 bytes, params: 1, frame: 3 return {users: env1_13, canUseMultiAccountMobile: env1_11}; } function value_91108() { // fn#91108, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12062:1292, offset: 0x020530ca, size: 28 bytes, params: 1, frame: 11 return env1_13.filter(_fun91109); } function value_91110() { // fn#91110, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12062:1393, offset: 0x02053102, size: 20 bytes, params: 1, frame: 2 return env1_13.length > 0; } function value_91111() { // fn#91111, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12062:1458, offset: 0x02053116, size: 29 bytes, params: 1, frame: 11 return env1_13.some(_fun91112); } function _fun91120({id}) { // fn#91120, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12062:2479, offset: 0x02053352, size: 21 bytes, params: 2, frame: 2 return id !== env1_10; } function _fun91131(a0) { // fn#91131, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12062:3359, offset: 0x02053522, size: 73 bytes, params: 2, frame: 15 var r0; var invalidPushSyncTokensBinding; var object2; const value = a0; if (value.pushSyncToken == null) { r0 = value; } else { invalidPushSyncTokensBinding = invalidPushSyncTokens; if (invalidPushSyncTokensBinding.includes(value.pushSyncToken)) { object2 = {}; copyDataProperties(object2, value, invalidPushSyncTokensBinding); object2['pushSyncToken'] = null; r0 = object2; } else { r0 = value; } } return r0; } function _fun91109({tokenStatus}) { // fn#91109, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12062:1320, offset: 0x020530e6, size: 28 bytes, params: 2, frame: 2 const INVALID = env2_12.INVALID; return tokenStatus !== INVALID; } function _fun91112({tokenStatus}) { // fn#91112, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12062:1484, offset: 0x02053133, size: 28 bytes, params: 2, frame: 2 const VALIDATING = env2_12.VALIDATING; return tokenStatus === VALIDATING; }