/* Metro module 4798; source: stores/GuildVerificationStore.tsx; dependencies: [6, 7, 15, 17, 18, 1422, 1945, 1938, 1867, 1878, 661, 3772, 1391, 694, 21, 566, 2] */ import ClassCallCheck from '../by-id/module-00006-ClassCallCheck.js'; /* Metro dependency 6 */ import CreateClass from '../by-id/module-00007-CreateClass.js'; /* Metro dependency 7 */ import PossibleConstructorReturn from '../by-id/module-00015-PossibleConstructorReturn.js'; /* Metro dependency 15 */ import Module00017 from '../by-id/module-00017.js'; /* Metro dependency 17 */ import Inherits from '../by-id/module-00018-Inherits.js'; /* Metro dependency 18 */ import SnowflakeUtils from '../utils/SnowflakeUtils.tsx'; /* Metro dependency 21 */ import Flux from '../external/discord_common/js/packages/flux/index.tsx'; /* Metro dependency 566 */ import Dispatcher from '../Dispatcher.tsx'; /* Metro dependency 694 */ import GuildStore from './GuildStore.tsx'; /* Metro dependency 1867 */ import UserStore from './UserStore.tsx'; /* Metro dependency 1878 */ import GuildRoleStore from './GuildRoleStore.tsx'; /* Metro dependency 1938 */ import GuildMemberStore from './GuildMemberStore.tsx'; /* Metro dependency 1945 */ import * as FileImportTrackerModule from '../by-id/module-00002-FileImportTracker.js'; /* Metro dependency 2 */ import * as ConstantsModule from '../Constants.tsx'; /* Metro dependency 661 */ import * as GuildRecordModule from '../records/GuildRecord.tsx'; /* Metro dependency 1422 */ import * as GuildMemberConstantsModule from '../modules/guild_member/GuildMemberConstants.tsx'; /* Metro dependency 3772 */ function _fun41550(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#41550, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4976:6, offset: 0x011210d5, size: 578 bytes, params: 8, frame: 21 const env0_0 = require; const _arrayLikeToArray_41556 = function(a0, a1) { var r0; var r1; var r2; var value3; var length; var value5; var value = undefined; var value2 = value == null; reducibleJoin2: while (true) { if (value2) { r0 = value2; break reducibleJoin2; } value3 = value > a0.length; r0 = value3; break reducibleJoin2; } reducibleJoin4: while (true) { if (r0) { length = a0.length; r1 = length; break reducibleJoin4; } r1 = value; break reducibleJoin4; } value = (0, global.Array)(r1); var value4 = 0; if (value4 < r1) { r2 = value4; reducibleLoop5: while (true) { value[r2] = a0[r2]; value5 = typeof r2 === 'bigint' ? r2 + 1n : +r2 + 1; if (value5 < r1) { r2 = value5; continue reducibleLoop5; } break reducibleLoop5; } } return value; }; const GUILD_CREATE_415602 = GUILD_CREATE_41560; const Object = global.Object; Object.defineProperty(exports, '__esModule', {value: true}); const env0_17 = {'notClaimed': false, 'notEmailVerified': false, 'notPhoneVerified': false, 'newAccount': false, 'newMember': false, 'missingVerificationRole': false, 'canChat': true}; const Set = global.Set; let set = new Set(); const env0_19 = {}; const Store = (Flux).Store; _fun41561(Store).displayName = 'GuildVerificationStore'; set = new set(importDefault(694) /* metro dependency 694: Dispatcher */, {CONNECTION_OPEN: CONNECTION_OPEN_41566, CONNECTION_CLOSED: CONNECTION_CLOSED_41567, CURRENT_USER_UPDATE: CURRENT_USER_UPDATE_41568, GUILD_CREATE: GUILD_CREATE_415602, GUILD_UPDATE: GUILD_CREATE_415602, GUILD_DELETE: function({guild}) { clearGuild(guild.id); }, GUILD_MEMBER_UPDATE: GUILD_MEMBER_UPDATE_41570, GUILD_VERIFICATION_CHECK: function({guildId}) { recomputeGuild(guildId); }}); (FileImportTrackerModule).fileFinishedImporting('stores/GuildVerificationStore.tsx'); exports.default = set; function _isNativeReflectConstruct_41551() { // fn#41551, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4976:321, offset: 0x01121317, 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_41551_isNativeReflectConstruct = function() { return !!result; })(); } function _createForOfIteratorHelperLoose_41554(a0, a1) { // fn#41554, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4976:514, offset: 0x01121375, size: 370 bytes, params: 3, frame: 20 var r6; var r9; var r5; var value3; var regexp; const env0_0 = a0; const Symbol = global.Symbol; let value = typeof Symbol !== 'undefined'; let r1 = value && a0[global.Symbol.iterator]; r1 = !r1 ? a0['@@iterator'] : r1; if (r1) { value = r1.call(a0); return value.next.bind(value); } const Array = global.Array; if (Array.isArray(a0)) { if (r1) { } return _fun41555; } value = undefined; if (a0) { if (typeof a0 === 'string') { value = _arrayLikeToArray_41556(a0, value); r5 = value; } else { value3 = ({}).toString.call(a0).slice(8, -1); r6 = value3 === 'Object' && a0.constructor; r9 = r6 ? a0.constructor.name : value3; if (r9 === 'Map') { r6 = global.Array.from(a0); } else if (r9 === 'Set') { r6 = global.Array.from(a0); } else if (r9 === 'Arguments') { value = _arrayLikeToArray_41556(a0, value); r6 = value; } else { regexp = RegExp('^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$', ''); if (regexp.test(r9)) { value = _arrayLikeToArray_41556(a0, value); r6 = value; } else { r6 = value; } } r5 = r6; } } else { r5 = value; } if (r5) { if (r5) { } return _fun41555; } const TypeError = global.TypeError; throw new TypeError('Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.'); function _fun41555() { // fn#41555, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4976:1085, offset: 0x00c39d73, size: 69 bytes, params: 1, frame: 5 return env0_1 >= env0_0.length ? {done: true} : {done: false, value: env0_0[typeof env0_1 === 'bigint' ? env0_1 : +env0_1]}; } } function recomputeGuild(a0) { // fn#41557, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4976:1566, offset: 0x011214e7, size: 1258 bytes, params: 2, frame: 39 var r28; var environment; var r4; var r18; var r6; var r5; var r7; var r13; var r20; var r14; var r17; var r24; var r22; var r21; var r15; var r16; var r8; var r9; var r10; var r11; var r12; var verificationLevel; var NONE; var value6; var verificationRoleId; var value8; var guildMemberStoreBinding; var getMember; var id; var id2; var value9; var moduleValue; var hasFlag; var flags; var value10; var BYPASSES_VERIFICATION; var value11; var value12; var roles; var includes; var value13; var guildRoleStoreBinding; var getRole; var value14; var value15; var isPhoneVerified; var Set; var prototype; var value16; var set; var value17; var _createForOfIteratorHelperLoose_41554Binding; var value18; var value19; var done; var value20; var value21; var value22; var managed; var value23; var Date; var value24; var date; var value25; var joinedAt; var value26; var value27; var value28; var value29; var features; var has; var GUILD_ONBOARDING_EVER_ENABLED; var value30; var value31; var value32; var value33; var size; var value34; var value35; var createdAt; var value36; var ACCOUNT_AGE; var value37; var now; var value38; var value39; var value40; var MEMBER_AGE; var value41; var value42; var value43; var LOW; var value44; var isClaimed; var value45; var isStaff; var value46; var verified; var value47; var VERY_HIGH; var value48; var MEDIUM; var value49; var value50; var HIGH; var value51; var value52; var object; var push; var length; var setTimeout; var Math; var max; var items2; var value53; var value54; var Date2; var value55; var Date3; var value56; const env0_0 = a0; let value = environment; const clearGuildBinding = clearGuild; const value2 = undefined; clearGuildBinding(a0); let binding = env0_18; let add = binding.add; Reflect.apply(add, binding, [a0]); const guild = GuildStore.getGuild(a0); const currentUser = UserStore.getCurrentUser(); const value5 = guild != null; reducibleJoin2: while (true) { if (value5) { verificationLevel = guild.verificationLevel; NONE = VerificationLevels.NONE; value6 = verificationLevel !== NONE; r4 = value6; break reducibleJoin2; } r4 = value5; break reducibleJoin2; } const value7 = guild != null; reducibleJoin4: while (true) { if (value7) { verificationRoleId = guild.verificationRoleId; value8 = verificationRoleId != null; r18 = value8; break reducibleJoin4; } r18 = value7; break reducibleJoin4; } reducibleJoin61: while (true) { if (guild == null) { break reducibleJoin61; } if (currentUser == null) { break reducibleJoin61; } if (!r4) { if (!r18) { break reducibleJoin61; } } if (isGuildOwner(guild, currentUser)) { break reducibleJoin61; } guildMemberStoreBinding = GuildMemberStore; getMember = guildMemberStoreBinding.getMember; id = guild.id; id2 = currentUser.id; value9 = Reflect.apply(getMember, guildMemberStoreBinding, [id, id2]); if (value9 != null) { moduleValue = require(1391) /* metro dependency 1391: FlagUtils */; hasFlag = moduleValue.hasFlag; flags = value9.flags; value10 = 0; r6 = flags ?? value10; BYPASSES_VERIFICATION = GuildMemberFlags.BYPASSES_VERIFICATION; if (Reflect.apply(hasFlag, moduleValue, [r6, BYPASSES_VERIFICATION])) { break reducibleJoin61; } } reducibleJoin14: while (true) { if (r18) { value11 = value9 != null; r5 = value11; break reducibleJoin14; } r5 = r18; break reducibleJoin14; } value12 = false; reducibleJoin16: while (true) { if (r5) { roles = value9.roles; includes = roles.includes; verificationRoleId = guild.verificationRoleId; value13 = !Reflect.apply(includes, roles, [verificationRoleId]); r5 = value13; r7 = value13; break reducibleJoin16; } r7 = value12; break reducibleJoin16; } reducibleJoin18: while (true) { if (r5) { guildRoleStoreBinding = GuildRoleStore; getRole = guildRoleStoreBinding.getRole; id = guild.id; verificationRoleId = guild.verificationRoleId; value14 = Reflect.apply(getRole, guildRoleStoreBinding, [id, verificationRoleId]); r13 = value14; break reducibleJoin18; } r13 = value2; break reducibleJoin18; } value15 = 0; reducibleJoin49: while (true) { if (r4) { isPhoneVerified = currentUser.isPhoneVerified; if (Reflect.apply(isPhoneVerified, currentUser, [])) { r5 = value12; r6 = value15; r8 = value15; r9 = value12; r10 = value12; r11 = value12; r12 = value12; break reducibleJoin49; } reducibleJoin37: while (true) { if (value9 != null) { Set = global.Set; prototype = Set.prototype; value16 = Object.create(prototype, {constructor: {value: Set}}); set = new Set(); value17 = set instanceof Object ? set : value16; _createForOfIteratorHelperLoose_41554Binding = _createForOfIteratorHelperLoose_41554; roles = value9.roles; value18 = _createForOfIteratorHelperLoose_41554Binding(roles); value19 = value18(); done = value19.done; if (!done) { r20 = value19; reducibleLoop22: while (true) { value20 = r20.value; guildRoleStoreBinding = GuildRoleStore; getRole = guildRoleStoreBinding.getRole; id = guild.id; value21 = Reflect.apply(getRole, guildRoleStoreBinding, [id, value20]); value22 = value21 == null; reducibleJoin24: while (true) { if (value22) { r14 = value22; break reducibleJoin24; } managed = value21.managed; r14 = managed; break reducibleJoin24; } reducibleJoin26: while (true) { if (r14) { break reducibleJoin26; } add = value17.add; Reflect.apply(add, value17, [value20]); break reducibleJoin26; } value23 = value18(); done = value23.done; if (done) { r28 = guildRoleStoreBinding; break reducibleLoop22; } r20 = value23; continue reducibleLoop22; } } Date = global.Date; prototype = Date.prototype; value24 = Object.create(prototype, {constructor: {value: Date}}); date = new Date('2022-12-02 00:00:00'); value25 = date instanceof Object ? date : value24; joinedAt = value9.joinedAt; value26 = joinedAt == null; reducibleJoin29: while (true) { if (value26) { r14 = value26; break reducibleJoin29; } Date = global.Date; joinedAt = value9.joinedAt; prototype = Date.prototype; value27 = Object.create(prototype, {constructor: {value: Date}}); date = new Date(); value28 = date instanceof Object ? date : value27; value29 = value28 < value25; r14 = value29; break reducibleJoin29; } features = guild.features; has = features.has; GUILD_ONBOARDING_EVER_ENABLED = GuildFeatures.GUILD_ONBOARDING_EVER_ENABLED; value30 = Reflect.apply(has, features, [GUILD_ONBOARDING_EVER_ENABLED]); reducibleJoin31: while (true) { if (value30) { value31 = !r14; r17 = value31; break reducibleJoin31; } r17 = value30; break reducibleJoin31; } value32 = !r18; reducibleJoin33: while (true) { if (r18) { r14 = value32; break reducibleJoin33; } value33 = !r17; r14 = value33; break reducibleJoin33; } reducibleJoin35: while (true) { if (r14) { size = value17.size; value34 = size > value15; r14 = value34; break reducibleJoin35; } break reducibleJoin35; } if (r14) { value35 = true; r4 = value35; break reducibleJoin37; } r4 = value12; break reducibleJoin37; } r4 = value12; break reducibleJoin37; } if (r4) { r5 = value12; r6 = value15; r8 = value15; r9 = value12; r10 = value12; r11 = value12; r12 = value12; break reducibleJoin49; } createdAt = currentUser.createdAt; value36 = Number(createdAt); ACCOUNT_AGE = VerificationCriteria.ACCOUNT_AGE; value37 = 60000 * ACCOUNT_AGE; Date = global.Date; now = Date.now; value38 = Reflect.apply(now, Date, []); value39 = value36 + value37 - value38; joinedAt = guild.joinedAt; value40 = Number(joinedAt); MEMBER_AGE = VerificationCriteria.MEMBER_AGE; value41 = 60000 * MEMBER_AGE; Date = global.Date; now = Date.now; value42 = Reflect.apply(now, Date, []); value43 = value40 + value41 - value42; verificationLevel = guild.verificationLevel; LOW = VerificationLevels.LOW; value44 = verificationLevel >= LOW; reducibleJoin40: while (true) { if (value44) { isClaimed = currentUser.isClaimed; value45 = !Reflect.apply(isClaimed, currentUser, []); r20 = value45; break reducibleJoin40; } r20 = value44; break reducibleJoin40; } isStaff = currentUser.isStaff; reducibleJoin48: while (true) { if (Reflect.apply(isStaff, currentUser, [])) { r15 = value12; r16 = value12; r17 = value12; r18 = value12; break reducibleJoin48; } verificationLevel = guild.verificationLevel; LOW = VerificationLevels.LOW; value46 = verificationLevel >= LOW; reducibleJoin43: while (true) { if (value46) { verified = currentUser.verified; value47 = !verified; r24 = value47; break reducibleJoin43; } r24 = value46; break reducibleJoin43; } verificationLevel = guild.verificationLevel; VERY_HIGH = VerificationLevels.VERY_HIGH; value48 = verificationLevel >= VERY_HIGH; verificationLevel = guild.verificationLevel; MEDIUM = VerificationLevels.MEDIUM; value49 = verificationLevel >= MEDIUM; reducibleJoin45: while (true) { if (value49) { value50 = value39 > value15; r22 = value50; break reducibleJoin45; } r22 = value49; break reducibleJoin45; } verificationLevel = guild.verificationLevel; HIGH = VerificationLevels.HIGH; value51 = verificationLevel >= HIGH; reducibleJoin47: while (true) { if (value51) { value52 = value43 > value15; r21 = value52; break reducibleJoin47; } r21 = value51; break reducibleJoin47; } r15 = r21; r16 = r22; r17 = value48; r18 = r24; break reducibleJoin48; } r5 = r20; r6 = value43; r8 = value39; r9 = r15; r10 = r16; r11 = r17; r12 = r18; break reducibleJoin49; } r5 = value12; r6 = value15; r8 = value15; r9 = value12; r10 = value12; r11 = value12; r12 = value12; break reducibleJoin49; } object = []; reducibleJoin51: while (true) { if (r9) { push = object.push; Reflect.apply(push, object, [r6]); break reducibleJoin51; } break reducibleJoin51; } reducibleJoin53: while (true) { if (r10) { push = object.push; Reflect.apply(push, object, [r8]); break reducibleJoin53; } break reducibleJoin53; } length = object.length; reducibleJoin55: while (true) { if (length > value15) { setTimeout = global.setTimeout; Math = global.Math; max = Math.max; items2 = []; arraySpread(items2, object, value15, r28); value53 = apply(max, items2, Math, r28); value54 = setTimeout(_fun41558, value53); r4 = value54; break reducibleJoin55; } r4 = value2; break reducibleJoin55; } binding = env0_19; object = {notClaimed: r5, notEmailVerified: r12, notPhoneVerified: r11, newAccount: r10, newMember: r9, missingVerificationRole: r7, verificationRole: r13}; if (!r5) { r5 = r12; } if (!r5) { r5 = r11; } if (!r5) { r5 = r10; } if (!r5) { r5 = r9; } if (!r5) { r5 = r7; } object.canChat = !r5; Date = global.Date; Date2 = global.Date; now = Date2.now; value = Reflect.apply(now, Date2, []) + r8; prototype = Date.prototype; value55 = Object.create(prototype, {constructor: {value: Date}}); date = new Date(value); value = date instanceof Object ? date : value55; object.accountDeadline = value; Date = global.Date; Date3 = global.Date; now = Date3.now; value = Reflect.apply(now, Date3, []) + r6; prototype = Date.prototype; value56 = Object.create(prototype, {constructor: {value: Date}}); date = new Date(value); value = date instanceof Object ? date : value56; object.memberDeadline = value; object.timeoutRef = r4; binding[a0] = object; break reducibleJoin61; } return value2; function _fun41558() { // fn#41558, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4976:2748, offset: 0x011219d1, size: 60 bytes, params: 1, frame: 12 const value = environment.__proto__; return (Dispatcher).dispatch({type: 'GUILD_VERIFICATION_CHECK', guildId: env0_0}); } } function clearGuild(a0) { // fn#41559, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4976:3081, offset: 0x01121a0d, size: 53 bytes, params: 2, frame: 13 const property = env0_19[a0]; if (property != null) { global.clearTimeout(property.timeoutRef); } delete env0_19[a0]; } function GUILD_CREATE_41560(a0) { // fn#41560, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4976:3163, offset: 0x01121a42, size: 53 bytes, params: 2, frame: 13 env0_18.delete(a0.guild.id); recomputeGuild(a0.guild.id); } function _fun41561(a0) { // fn#41561, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4976:3255, offset: 0x01121a77, size: 114 bytes, params: 2, frame: 16 const GuildVerificationStore2 = GuildVerificationStore; Inherits(GuildVerificationStore2, a0); return CreateClass(GuildVerificationStore2, [{key: 'initialize', value: function() { this.waitFor(GuildMemberStore, GuildRoleStore, GuildStore, UserStore); }}, {key: 'getCheck', value: value_41564}, {key: 'canChatInGuild', value: function(a0) { return this.getCheck(a0).canChat; }}]); function GuildVerificationStore() { // fn#41562, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4976:3267, offset: 0x01121ae9, size: 113 bytes, params: 1, frame: 20 const value = environment.__proto__; env1_3(this, GuildVerificationStore); const value3 = env1_6(GuildVerificationStore); return env1_5(this, _isNativeReflectConstruct_41551() ? global.Reflect.construct(value3, arguments, env1_6(this).constructor) : value3.apply(this, arguments)); } function value_41564(a0) { // fn#41564, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4976:3652, offset: 0x01121b81, size: 67 bytes, params: 2, frame: 13 var r0; var value; var binding; if (a0 == null) { value = environment.__proto__; r0 = env1_17; } else { value = environment.__proto__; binding = env1_18; if (!binding.has(a0)) { recomputeGuild(a0); } r0 = env1_19[a0] ?? env1_17; } return r0; } } function CONNECTION_OPEN_41566() { // fn#41566, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4976:3908, offset: 0x01121bdd, size: 56 bytes, params: 1, frame: 17 var propertyName; env0_18.clear(); for (propertyName in env0_19) { clearGuild(propertyName); } } function CONNECTION_CLOSED_41567() { // fn#41567, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4976:3998, offset: 0x01121c15, size: 55 bytes, params: 1, frame: 13 const value2 = (SnowflakeUtils).keys(env0_19); value2.forEach(clearGuild); } function CURRENT_USER_UPDATE_41568() { // fn#41568, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4976:4090, offset: 0x01121c4c, size: 21 bytes, params: 1, frame: 9 env0_18.clear(); } function GUILD_MEMBER_UPDATE_41570({guildId, user}) { // fn#41570, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4976:4303, offset: 0x01121c7e, size: 85 bytes, params: 2, frame: 15 if (user.id !== UserStore.getCurrentUser()?.id) { return false; } env0_18.delete(guildId); recomputeGuild(guildId); } } global.__d(_fun41550, 4798, [6, 7, 15, 17, 18, 1422, 1945, 1938, 1867, 1878, 661, 3772, 1391, 694, 21, 566, 2]) /* metro module 4798, dependencies: [6, 7, 15, 17, 18, 1422, 1945, 1938, 1867, 1878, 661, 3772, 1391, 694, 21, 566, 2] */;