/* Metro module 7076; source: modules/messages/MessageParser.tsx; dependencies: [6540, 5071, 1379, 1935, 1945, 1938, 1867, 3784, 3793, 3996, 1878, 661, 1881, 4805, 3855, 6624, 7077, 3829, 3797, 6629, 3995, 4617, 22, 6635, 1244, 7078, 6526, 1360, 3801, 2] */ function _fun56417(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#56417, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7254:6, offset: 0x013c70e9, size: 1506 bytes, params: 8, frame: 33 var object2; let env0_0 = require; const _arrayLikeToArray_56420 = 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 closure = function(a0) { var env0_0 = a0; return {order: a0.order, match: a0.match, parse: _fun56427}; }; const closure2 = matchRegexAndReturnText; const closure3 = parseAndRebuild; const closure4 = createParserState; const NOOP_56444 = function(a0) { return a0; }; const closure5 = unparseWithMeta; let Object = global.Object; Object.defineProperty(exports, '__esModule', {value: true}); const emojiStore = importDefault(6540) /* metro dependency 6540: EmojiStore */; const activeJoinedThreadsStore = importDefault(5071) /* metro dependency 5071: ActiveJoinedThreadsStore */; const channelStore = importDefault(1379) /* metro dependency 1379: ChannelStore */; const guildChannelStore = importDefault(1935) /* metro dependency 1935: GuildChannelStore */; const env0_7 = (require(1935) /* metro dependency 1935: GuildChannelStore */).GUILD_SELECTABLE_CHANNELS_KEY; const guildMemberStore = importDefault(1945) /* metro dependency 1945: GuildMemberStore */; const guildRoleStore = importDefault(1938) /* metro dependency 1938: GuildRoleStore */; const guildStore = importDefault(1867) /* metro dependency 1867: GuildStore */; const permissionStore = importDefault(3784) /* metro dependency 3784: PermissionStore */; const relationshipStore = importDefault(3793) /* metro dependency 3793: RelationshipStore */; const streamerModeStore = importDefault(3996) /* metro dependency 3996: StreamerModeStore */; const userStore = importDefault(1878) /* metro dependency 1878: UserStore */; let value = require(661) /* metro dependency 661: Constants */; const MARKDOWN_SPOILER_REGEXP = value.MARKDOWN_SPOILER_REGEXP; const MARKDOWN_STATIC_ROUTE_NAME_REGEXP = value.MARKDOWN_STATIC_ROUTE_NAME_REGEXP; const env0_15 = value.Permissions; const env0_16 = (require(1881) /* metro dependency 1881: EmojiConstants */).EmojiIntention; const regexp = RegExp('^<@!?(\\d+)>', ''); const regexp2 = RegExp('^<@&(\\d+)>', ''); const regexp3 = RegExp('^<#(\\d+)>', ''); const regexp4 = RegExp('^', ''); const env0_17 = RegExp('(@everyone|@here|@Clyde)\\b', ''); const env0_18 = RegExp('^[^\\s]+@[^\\s]+\\.[^\\s.]+', ''); object2 = {}; object2.link = closure((importDefault(3855) /* metro dependency 3855 */).defaultRules.link); object2.autolink = closure((importDefault(3855) /* metro dependency 3855 */).defaultRules.autolink); object2.url = closure((importDefault(3855) /* metro dependency 3855 */).defaultRules.url); let RULES = (importDefault(6624) /* metro dependency 6624: MarkupRules */).RULES; object2.inlineCode = closure(RULES.inlineCode); RULES = (importDefault(6624) /* metro dependency 6624: MarkupRules */).RULES; object2.codeBlock = closure(RULES.codeBlock); object2.rawUserMention = closure2(regexp); object2.rawRoleMention = closure2(regexp2); object2.rawChannelMention = closure2(regexp3); object2.rawEmoji = closure2(regexp4); object2.mention = {match: match_56446, parse: parse_56448}; object2.channel = {match: function(a0, {channels}) { var value = _fun56450('#', a0, channels); var value2 = null; return value2 != value ? value : value2; }, parse: function(a0) { return {type: 'text', content: '<#' + a0[1] + '>'}; }}; object2.emoticon = {match: match_56455, parse: parse_56456}; RULES = (importDefault(6624) /* metro dependency 6624: MarkupRules */).RULES; object2.emoji = {order: RULES.emoji.order, match: function(a0) { var EMOJI_NAME_RE = importDefault(dependencyMap[18]).EMOJI_NAME_RE; return EMOJI_NAME_RE.exec(a0); }, parse: parse_56458}; object2.customEmoticons = {match: function(a0, {customEmoticonsRegex}) { var r1; var value = null; r1 = value == customEmoticonsRegex ? undefined : customEmoticonsRegex.exec(a0); return value != r1 ? r1 : value; }, parse: parse_56460}; const object3 = {}; copyDataProperties(object3, importDefault(6629) /* metro dependency 6629: MarkupTextRule */, undefined); object3['match'] = match_56461; object2.text = object3; const object4 = {}; RULES = (importDefault(6624) /* metro dependency 6624: MarkupRules */).RULES; object4.inlineCode = closure(RULES.inlineCode); RULES = (importDefault(6624) /* metro dependency 6624: MarkupRules */).RULES; object4.codeBlock = closure(RULES.codeBlock); value = importDefault(3855) /* metro dependency 3855 */; object4.mention = {match: value.anyScopeRegex(regexp), parse: parse_56462}; const object5 = {}; object5.match = (importDefault(3855) /* metro dependency 3855 */).anyScopeRegex(regexp2); object5.parse = parse_56464; object4.roleMention = object5; const object6 = {}; object6.match = (importDefault(3855) /* metro dependency 3855 */).anyScopeRegex(regexp3); object6.parse = parse_56465; object4.channel = object6; const object9 = {}; object9.match = (importDefault(3855) /* metro dependency 3855 */).anyScopeRegex(regexp4); object9.parse = parse_56466; object4.emoji = object9; const object18 = {}; value = importDefault(3855) /* metro dependency 3855 */; object18.match = value.anyScopeRegex((require(6635) /* metro dependency 6635: getSoundmojiASTFromString */).soundmojiRawFormatRegex); object18.parse = parse_56467; object4.soundboard = object18; const object19 = {}; object19.match = (importDefault(3855) /* metro dependency 3855 */).anyScopeRegex(MARKDOWN_SPOILER_REGEXP); object19.parse = parse_56468; object4.spoiler = object19; const object20 = {}; object20.match = (importDefault(3855) /* metro dependency 3855 */).anyScopeRegex(MARKDOWN_STATIC_ROUTE_NAME_REGEXP); object20.parse = function(a0) { return {content: ''}; }; object4.staticRouteLink = object20; const object21 = {}; RULES = (importDefault(6624) /* metro dependency 6624: MarkupRules */).RULES; copyDataProperties(object21, RULES.timestamp, undefined); object21['parse'] = function(a0) { var r4; var r6; var value = copyRestArgs(0, r6); var timestamp = importDefault(dependencyMap[15]).RULES.timestamp; var parse = timestamp.parse; var object = []; arraySpread(object, value, 0, r4); value = apply(parse, object, timestamp, r4); return value.type === 'text' ? {content: value.content} : {content: value.formatted}; }; object4.timestamp = object21; const object22 = {}; copyDataProperties(object22, importDefault(6629) /* metro dependency 6629: MarkupTextRule */, undefined); object4.text = object22; [object2, object4].forEach(function(a0) { var env0_0 = a0; var Object = global.Object; Object.keys(a0).forEach(_fun56472); }); const env0_20 = (importDefault(3855) /* metro dependency 3855 */).parserFor(object2); const env0_21 = RegExp('(?:)|:(?:([^\\s:]+?)(?:::skin-tone-\\d)?:)', 'g'); object2 = {parse: parse_56473, parsePreprocessor: parsePreprocessor, unparse: function(a0, a1, a2) { return unparseWithMeta(a0, a1, a2).content; }, unparseWithMeta: closure5}; (require(2) /* metro dependency 2 */).fileFinishedImporting('modules/messages/MessageParser.tsx'); exports.default = object2; exports.parseAndRebuild = closure3; exports.createParserState = closure4; } function _createForOfIteratorHelperLoose_56418(a0, a1) { // fn#56418, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7254:385, offset: 0x013c76cb, 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 _fun56419; } value = undefined; if (a0) { if (typeof a0 === 'string') { value = _arrayLikeToArray_56420(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_56420(a0, value); r6 = value; } else { regexp = RegExp('^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$', ''); if (regexp.test(r9)) { value = _arrayLikeToArray_56420(a0, value); r6 = value; } else { r6 = value; } } r5 = r6; } } else { r5 = value; } if (r5) { if (r5) { } return _fun56419; } 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 matchPrefix(a0, a1, a2, a3) { // fn#56421, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7254:1295, offset: 0x013c783d, size: 134 bytes, params: 5, frame: 13 var value; const env0_0 = a0; const env0_1 = a1; const env0_2 = a3; if (a1[0] === a0) { var env0_3 = a1.substring(a0.length); value = a2.sortBy(function(a0) { return -a0.text.length; }); value = value.filter(_fun56423); value = value.sortBy(_fun56424); value = value.map(_fun56425); return value.first(); } } function matchAndReturnText(a0) { // fn#56426, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7254:1549, offset: 0x013c7954, size: 45 bytes, params: 2, frame: 4 const env0_0 = a0; return {order: a0.order, match: a0.match, parse: parse_56427}; } function matchRegexAndReturnText(a0) { // fn#56428, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7254:1654, offset: 0x013c79a2, size: 60 bytes, params: 2, frame: 12 const object2 = {}; object2.match = (importDefault(3855) /* metro dependency 3855 */).anyScopeRegex(a0); object2.parse = function(a0) { return {type: 'text', content: a0[0]}; }; return object2; } function rebuild(a0, a1, a2, a3) { // fn#56430, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7254:6477, offset: 0x013c79de, size: 74 bytes, params: 5, frame: 13 const env0_0 = a1; const env0_1 = a2; const env0_2 = a3; const env0_3 = ''; a0.forEach(_fun56431); return {content: env0_3, emoji: []}; } function parseAndRebuild(a0, a1, a2) { // fn#56432, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7254:7459, offset: 0x013c7d05, size: 73 bytes, params: 4, frame: 18 return rebuild(env0_20(a0, a1), a1, (importDefault(3797) /* metro dependency 3797: UnicodeEmojis */).translateInlineEmojiToSurrogates, a2).content; } function createParserState(a0) { // fn#56433, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7254:7569, offset: 0x013c7d4e, size: 671 bytes, params: 2, frame: 23 var r13; var r6; var value9; var currentUser; let value = null; const r2 = value == a0 ? undefined : a0.getGuildId(); const r9 = value != r2 ? GuildStore.getGuild(r2) : value; const can = PermissionStore.can; const MENTION_EVERYONE = Permissions.MENTION_EVERYONE; const env0_1 = Reflect.apply(can, PermissionStore, [MENTION_EVERYONE, a0]); if (value == a0) { r13 = value != r2 ? GuildMemberStore.getMembers(r2).map(function({userId, nick}) { return {userId: userId, nick: nick}; }) : []; } else if (a0.isPrivate()) { value9 = a0.recipients.map(_fun56434); currentUser = UserStore.getCurrentUser(); if (value == currentUser) { r13 = value9; } else { value9.push({userId: currentUser.id, nick: value}); r13 = value9; } } else { r13 = value != r2 ? GuildMemberStore.getMembers(r2).map(_fun56435) : []; } const value11 = (importDefault(22) /* metro dependency 22 */)(r13.reduce(_fun56436, [])); const value15 = (importDefault(22) /* metro dependency 22 */)(value != r9 ? GuildRoleStore.getSortedRoles(r9.id) : []).filter(_fun56437).map(function({id, name}) { return {id: id, text: name}; }); const defaultImport3 = importDefault(22) /* metro dependency 22 */; const getTextChannelNameDisambiguations = GuildChannelStore.getTextChannelNameDisambiguations; const value17 = defaultImport3(Reflect.apply(getTextChannelNameDisambiguations, GuildChannelStore, [r2])).map(function({id, name}) { return {id: id, text: name}; }); if (value != r2) { value = defaultImport3; value = value((require(6526) /* metro dependency 6526: AutocompleteUtils */).COMMAND_SUPPORTED_CHANNEL_TYPE_KEYS); value = value.filter(function(a0) { return a0 !== GUILD_SELECTABLE_CHANNELS_KEY; }); value = value.flatMap(_fun56441); value = value.filter((require(1360) /* metro dependency 1360: GlobalUtils */).isNotNullish); value = value.value(); r6 = value; } else { r6 = []; } value = ActiveJoinedThreadsStore.computeAllActiveJoinedThreads(r2); value = value.map(function(a0) { var object = {id: a0.id}; object.text = require(dependencyMap[13]).computeChannelName(a0, UserStore, RelationshipStore); return object; }); const disambiguatedEmojiContext = EmojiStore.getDisambiguatedEmojiContext(r2); const escapedCustomEmoticonNames = disambiguatedEmojiContext.getEscapedCustomEmoticonNames(); const customEmoji = disambiguatedEmojiContext.getCustomEmoji(); const customEmoticonRegex = disambiguatedEmojiContext.getCustomEmoticonRegex(); const object2 = {inline: true, mentionableRoles: value15, guild: r9, users: value11}; object2.channels = value17.concat(r6).concat(value); object2.emojiContext = disambiguatedEmojiContext; object2.customEmoticonsRegex = customEmoticonRegex; object2.customEmoji = customEmoji; object2.textExclusions = escapedCustomEmoticonNames; object2.isNotification = false; return object2; } function unparseWithMeta(a0, a1, a2) { // fn#56445, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7254:8965, offset: 0x013c8196, size: 237 bytes, params: 4, frame: 18 var defaultImport; const channel = ChannelStore.getChannel(a1); const value3 = null; let r6 = value3 != channel ? channel.getGuildId() : value3; const r5 = value3 != r6 ? GuildStore.getGuild(r6) : value3; if (a2) { r6 = env0_19; } else { defaultImport = importDefault(22) /* metro dependency 22 */; r6 = defaultImport.omit(env0_19, ['spoiler', 'timestamp']); } const r4 = a2 ? NOOP_56444 : (importDefault(3797) /* metro dependency 3797: UnicodeEmojis */).translateSurrogatesToInlineEmoji; const object2 = {inline: true, guild: r5, channelId: a1, isNotification: a2}; const rebuildBinding = rebuild; let value = importDefault(3855) /* metro dependency 3855 */; value = value.parserFor(r6); return rebuildBinding(value(a0, object2), object2, r4); } function match_56446(a0, a1, a2) { // fn#56446, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7254:2355, offset: 0x013c8283, size: 320 bytes, params: 4, frame: 24 const SILENT_RE = (require(7077) /* metro dependency 7077: parseContentForSuppressNotifications */).SILENT_RE; let value = a2.split(' '); value = value.pop() + a0; const binding = env0_18; if (binding.test(value)) { return null; } let matchPrefixBinding = matchPrefix; let users = a1.users; value = matchPrefixBinding('@', a0, users, 'mention'); if (value != null) { return value; } value = matchPrefix('@', a0, a1.mentionableRoles, 'roleMention'); if (value != null) { return value; } matchPrefixBinding = matchPrefix; users = a1.users; value = matchPrefixBinding('@', a0, users.map(function(a0) { var r3; var object = {}; copyDataProperties(object, a0, r3); object['text'] = a0.text.split('#')[0]; return object; }), 'mention'); if (value == null) { return null; } const value3 = env0_17.exec(a0); if (value3 != null) { if (value[0].length <= value3[0].length) { return null; } } if (a2 !== '') { return value; } const value4 = SILENT_RE.exec(a0); if (value4 == null) { return value; } return value[0].length <= value4[0].length ? null : value; } function parse_56448(a0) { // fn#56448, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7254:2833, offset: 0x013c83f6, size: 185 bytes, params: 2, frame: 22 var r1; var r2; var r3; var r32; var r5; var item3; var value3; var item4; var value4; const iterator = a0[Symbol.iterator](); const iterator2 = iterator.next; let value = undefined; let item2 = Reflect.apply(iterator2, iterator, []); let item = item2.value; item2 = item2.done ? undefined : iterator; const value2 = item2 === value; if (value2) { } if (value2) { r1 = item2; r2 = value2; r3 = value; } else { item3 = Reflect.apply(iterator2, item2, []); item = item3.value; item3 = item3.done ? undefined : item2; value3 = item3 === value; if (value3) { r1 = item3; r2 = value3; r3 = value; } else { r1 = item3; r2 = value3; r3 = item; } } if (r2) { r32 = value; } else { item4 = Reflect.apply(iterator2, r1, []); item = item4.value; item4 = item4.done ? undefined : r1; value4 = item4 === value; if (value4) { r1 = item4; r2 = value4; r32 = value; } else { r1 = item4; r2 = value4; r32 = item; } } if (!r2) { r1.return(); } value = '@'; if (r32 !== 'roleMention') { r5 = value; } else { value += '&'; r5 = value; } return {type: r32, content: '<' + r5 + r3 + '>'}; } function match_56449(a0, {channels}) { // fn#56449, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7254:2932, offset: 0x013c84af, size: 46 bytes, params: 3, frame: 15 return matchChannelPrefix('#', a0, channels) ?? null; } function match_56455(a0, a1, a2) { // fn#56455, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7254:3406, offset: 0x013c865b, size: 213 bytes, params: 4, frame: 15 var regexp; var value2; var value; const ConvertEmoticons = (require(3829) /* metro dependency 3829: UserSettings */).ConvertEmoticons; const getSetting = ConvertEmoticons.getSetting; if (Reflect.apply(getSetting, ConvertEmoticons, [])) { if (a2.length === 0) { value = (importDefault(3797) /* metro dependency 3797: UnicodeEmojis */).EMOJI_SHORTCUT_RE.exec(a0); value2 = null; return value2 == value ? value2 : value[0].length === a0.length || a0[value[0].length] === ' ' ? value : a0[value[0].length] !== '\n' ? value2 : value; } regexp = RegExp('\\s$', ''); if (regexp.test(a2)) { value = (importDefault(3797) /* metro dependency 3797: UnicodeEmojis */).EMOJI_SHORTCUT_RE.exec(a0); value2 = null; return value2 == value ? value2 : value[0].length === a0.length || a0[value[0].length] === ' ' ? value : a0[value[0].length] !== '\n' ? value2 : value; } } return null; } function parse_56456(a0) { // fn#56456, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7254:3659, offset: 0x013c8730, size: 68 bytes, params: 2, frame: 13 const object2 = {'type': 'emoticon', 'content': null, 'isShortcut': true}; object2.content = (importDefault(3797) /* metro dependency 3797: UnicodeEmojis */).convertShortcutToName(a0[1]); return object2; } function parse_56458(a0, a1, {customEmoji}) { // fn#56458, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7254:3825, offset: 0x013c87a3, size: 223 bytes, params: 4, frame: 23 var r0; var r2; var r3; var item3; var value3; const iterator = a0[Symbol.iterator](); const iterator2 = iterator.next; let item2 = Reflect.apply(iterator2, iterator, []); let item = item2.value; item2 = item2.done ? undefined : iterator; const value = undefined; const value2 = item2 === value; const r1 = value2 ? value : item; if (value2) { r0 = item2; r2 = value2; r3 = value; } else { item3 = Reflect.apply(iterator2, item2, []); item = item3.value; item3 = item3.done ? undefined : item2; value3 = item3 === value; if (value3) { r0 = item3; r2 = value3; r3 = value; } else { r0 = item3; r2 = value3; r3 = item; } } if (!r2) { r0.return(); } r2 = customEmoji.get(r3) ?? null; return r2 != null ? {type: 'customEmoticon', content: '<' + (r2.animated !== true ? '' : 'a') + ':' + (r2.originalName ?? r2.name) + ':' + r2.id + '>', emoji: r2} : {type: 'text', content: r1}; } function parse_56460(a0, a1, {emojiContext}) { // fn#56460, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7254:4159, offset: 0x013c88b2, size: 201 bytes, params: 4, frame: 23 var r0; var r2; var r3; var item3; var value3; const iterator = a0[Symbol.iterator](); const iterator2 = iterator.next; let item2 = Reflect.apply(iterator2, iterator, []); let item = item2.value; item2 = item2.done ? undefined : iterator; let value = undefined; const value2 = item2 === value; const r1 = value2 ? value : item; if (value2) { r0 = item2; r2 = value2; r3 = value; } else { item3 = Reflect.apply(iterator2, item2, []); item = item3.value; item3 = item3.done ? undefined : item2; value3 = item3 === value; if (value3) { r0 = item3; r2 = value3; r3 = value; } else { r0 = item3; r2 = value3; r3 = item; } } if (!r2) { r0.return(); } value = emojiContext.getEmoticonByName(r3); return value != null ? {type: 'customEmoticon', content: '<' + (value.animated !== true ? '' : 'a') + ':' + value.name + ':' + value.id + '>', emoji: value} : {type: 'text', content: r1}; } function match_56461(a0, a1) { // fn#56461, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7254:4374, offset: 0x013c897b, size: 168 bytes, params: 3, frame: 17 var r0; var value; var match; var value2; if (typeof a1.textExclusions !== 'string') { match = (importDefault(6629) /* metro dependency 6629: MarkupTextRule */).match; value2 = null; if (value2 != match) { value = importDefault(6629) /* metro dependency 6629: MarkupTextRule */; value = value.match(a0, a1, ''); r0 = value; } else { r0 = value2; } } else if (a1.textExclusions !== '') { value = require(6629) /* metro dependency 6629: MarkupTextRule */; value = value.textMarkupPatternWithExclusions(a1.textExclusions); value = value.exec(a0); r0 = value; } else { match = (importDefault(6629) /* metro dependency 6629: MarkupTextRule */).match; value2 = null; if (value2 != match) { value = importDefault(6629) /* metro dependency 6629: MarkupTextRule */; value = value.match(a0, a1, ''); r0 = value; } else { r0 = value2; } } return r0; } function parse_56462(a0, a1, {isNotification, guild, channelId}) { // fn#56462, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7254:4718, offset: 0x013c8a23, size: 540 bytes, params: 4, frame: 27 var r3; var r12; var r5; var defaultImport2; var value9; let value = undefined; var env0_0; const user = UserStore.getUser(a0[1]); if (user == null) { return {content: a0[0]}; } const userTag = (importDefault(3995) /* metro dependency 3995: UserUtils */).getUserTag(user, {identifiable: isNotification && StreamerModeStore.enabled ? 'never' : 'always'}); if (isNotification) { defaultImport2 = importDefault(4617) /* metro dependency 4617: NicknameUtils */; value9 = defaultImport2.getNickname(guild == null ? value : guild.id, channelId, user); if (value9 != null) { r5 = value9; } else { value = importDefault(3995) /* metro dependency 3995: UserUtils */; value = value.getGlobalName(user); r5 = value; } return {content: r5 != null ? '@' + r5 : '@' + userTag}; } if (user.bot) { return {content: '@' + userTag}; } const id = guild == null ? value : guild.id; const value7 = ''; if (id != null) { env0_0 = userTag.toLowerCase(); value = importDefault(22) /* metro dependency 22 */; if (value.some(GuildRoleStore.getUnsafeMutableRoles(guild.id), _fun56463)) { value = value7 + user.discriminator; value = value.padStart(4, '0'); value = '#' + value; r3 = value; } else { r3 = value7; } r12 = r3; } else { r12 = value7; } return {content: '@' + userTag + r12}; } function parse_56464(a0, a1, {guild}) { // fn#56464, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7254:5343, offset: 0x013c8c65, size: 101 bytes, params: 4, frame: 15 if (guild != null) { var role = GuildRoleStore.getRole(guild.id, a0[1]); if (role != null) { return {content: '@' + role.name}; } } return {content: a0[0]}; } function parse_56465(a0) { // fn#56465, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7254:5508, offset: 0x013c8cca, size: 99 bytes, params: 2, frame: 20 const channel = ChannelStore.getChannel(a0[1]); return {content: channel == null ? a0[0] : (require(4805) /* metro dependency 4805: useChannelName */).computeChannelName(channel, UserStore, RelationshipStore, true, true)}; } function parse_56466(a0, a1, {guild}) { // fn#56466, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7254:5655, offset: 0x013c8d2d, size: 178 bytes, params: 4, frame: 17 var r0; var r2; var r4; var r1; var item3; var value3; var item4; var value4; const iterator = a0[Symbol.iterator](); const iterator2 = iterator.next; let item2 = Reflect.apply(iterator2, iterator, []); let item = item2.value; item2 = item2.done ? undefined : iterator; let value = undefined; const value2 = item2 === value; if (value2) { r0 = item2; r2 = value2; r4 = value; } else { item3 = Reflect.apply(iterator2, item2, []); item = item3.value; item3 = item3.done ? undefined : item2; value3 = item3 === value; if (value3) { r0 = item3; r2 = value3; r4 = value; } else { r0 = item3; r2 = value3; r4 = item; } } if (r2) { r1 = value; } else { item4 = Reflect.apply(iterator2, r0, []); item = item4.value; item4 = item4.done ? undefined : r0; value4 = item4 === value; if (value4) { r0 = item4; r1 = value; r2 = value4; } else { r0 = item4; r1 = item; r2 = value4; } } if (!r2) { r0.return(); } const getDisambiguatedEmojiContext = EmojiStore.getDisambiguatedEmojiContext; value = null; const byId = Reflect.apply(getDisambiguatedEmojiContext, EmojiStore, [guild ? guild.id : value]).getById(r1); r4 = value != byId ? byId.name : r4; return {content: ':' + r4 + ':', id: r1}; } function parse_56467(a0) { // fn#56467, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7254:5873, offset: 0x013c8ddf, size: 130 bytes, params: 2, frame: 19 var r0; var r1; var r6; var r5; var item3; var value3; var item4; var value4; const iterator = a0[Symbol.iterator](); const iterator2 = iterator.next; let item2 = Reflect.apply(iterator2, iterator, []); let item = item2.value; item2 = item2.done ? undefined : iterator; const value = undefined; const value2 = item2 === value; if (value2) { r0 = item2; r1 = value2; r6 = value; } else { item3 = Reflect.apply(iterator2, item2, []); item = item3.value; item3 = item3.done ? undefined : item2; value3 = item3 === value; if (value3) { r0 = item3; r1 = value3; r6 = value; } else { r0 = item3; r1 = value3; r6 = item; } } if (r1) { r5 = value; } else { item4 = Reflect.apply(iterator2, r0, []); item = item4.value; item4 = item4.done ? undefined : r0; value4 = item4 === value; if (value4) { r0 = item4; r1 = value4; r5 = value; } else { r0 = item4; r1 = value4; r5 = item; } } if (!r1) { r0.return(); } return {content: ''}; } function parse_56468() { // fn#56468, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7254:5965, offset: 0x013c8e61, size: 105 bytes, params: 1, frame: 16 const intl = (require(1244) /* metro dependency 1244: indexNative */).intl; let value = intl.string((require(1244) /* metro dependency 1244: indexNative */).t['F+x38C']); value = value.toLowerCase(); return {content: '<' + value + '>'}; } function _fun56471(a0) { // fn#56471, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7254:6333, offset: 0x013c8f6f, size: 46 bytes, params: 2, frame: 12 const env0_0 = a0; const Object = global.Object; Object.keys(a0).forEach(_fun56472); } function parse_56473(a0, a1) { // fn#56473, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7254:9284, offset: 0x013c8fb8, size: 112 bytes, params: 3, frame: 16 const value = a2; const env0_0 = a0; const value2 = undefined; let r5 = value !== value2 ? value : value2; r5 = r5 ?? createParserState(a0); const object2 = {content: a1, tts: false, invalidEmojis: [], validNonShortcutEmojis: []}; object2.content = parseAndRebuild(object2.content, r5, _fun56474); return object2; } function parsePreprocessor(a0, a1) { // fn#56475, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7254:9594, offset: 0x013c90a5, size: 32 bytes, params: 3, frame: 13 return env0_20(a1, createParserState(a0)); } function _fun56423({text}) { // fn#56423, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7254:1415, offset: 0x013c78d5, size: 55 bytes, params: 2, frame: 12 let value = require.toLowerCase(); value = value.indexOf(text.toLowerCase()); return value === 1; } function _fun56424({text}) { // fn#56424, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7254:1482, offset: 0x013c790c, size: 26 bytes, params: 2, frame: 3 return text !== env0_3 ? 1 : 0; } function _fun56425({id, text}) { // fn#56425, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7254:1511, offset: 0x013c7926, size: 46 bytes, params: 2, frame: 4 return [env0_0 + text, id, importAll]; } function matchAndReturnTextParse(a0) { // fn#56427, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7254:1621, owner: matchAndReturnText.parse, offset: 0x013c7981, size: 33 bytes, params: 2, frame: 3 return {type: env0_0.type, content: a0[0]}; } function _fun56431(a0) { // fn#56431, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7254:6535, offset: 0x013c7a28, size: 733 bytes, params: 2, frame: 29 var r2; var r15; var isShortcut; var r4; var type; var emoji; var value2; var value3; var defaultImport; var translateSurrogatesToInlineEmoji; var content; var value4; var binding; var exec; var value5; var defaultImport2; var getByName; var value6; var emojiContext; var getById; var value7; var value8; var value9; var value10; var rebuildBinding; var value11; var _createForOfIteratorHelperLoose_56418Binding; var value12; var value13; var done; var value14; var push; var object2; var length; var position; var id; var value15; var isNotification; var value16; var moduleValue; var isolate; reducibleJoin16: while (true) { if (importAll == null) { break reducibleJoin16; } type = a0.type; reducibleJoin3: while (true) { if (type !== 'customEmoticon') { break reducibleJoin3; } emoji = a0.emoji; importAll(emoji, false); break reducibleJoin3; } type = a0.type; if (type !== 'emoticon') { type = a0.type; if (type !== 'text') { break reducibleJoin16; } } value2 = environment.__proto__; value3 = undefined; defaultImport = importDefault(3797) /* metro dependency 3797: UnicodeEmojis */; translateSurrogatesToInlineEmoji = defaultImport.translateSurrogatesToInlineEmoji; content = a0.content; value4 = Reflect.apply(translateSurrogatesToInlineEmoji, defaultImport, [content]); binding = env1_21; exec = binding.exec; value5 = Reflect.apply(exec, binding, [value4]); if (value5 === null) { break reducibleJoin16; } r2 = value5; reducibleLoop6: while (true) { reducibleJoin11: while (true) { reducibleJoin8: while (true) { if (r2[1] == null) { break reducibleJoin8; } if (r2[1] !== '') { emojiContext = require.emojiContext; if (emojiContext) { emojiContext = require.emojiContext; getById = emojiContext.getById; value7 = Reflect.apply(getById, emojiContext, [r2[1]]); r15 = value7; break reducibleJoin11; } r15 = value3; break reducibleJoin11; } break reducibleJoin8; } defaultImport2 = importDefault(3797) /* metro dependency 3797: UnicodeEmojis */; getByName = defaultImport2.getByName; value6 = Reflect.apply(getByName, defaultImport2, [r2[2]]); r15 = value6; break reducibleJoin11; } reducibleJoin15: while (true) { if (r15) { isShortcut = a0.isShortcut; reducibleJoin14: while (true) { if (isShortcut) { break reducibleJoin14; } value8 = false; isShortcut = value8; break reducibleJoin14; } importAll(r15, isShortcut); break reducibleJoin15; } break reducibleJoin15; } binding = env1_21; exec = binding.exec; value9 = Reflect.apply(exec, binding, [value4]); if (value9 !== null) { r2 = value9; continue reducibleLoop6; } break reducibleJoin16; } } content = a0.content; if (typeof content === 'string') { type = a0.type; if (type === 'emoji') { binding = env0_4; push = binding.push; object2 = {}; length = env0_3.length; object2.position = length; content = a0.content; length = content.length; object2.length = length; object2.id = a0.id; Reflect.apply(push, binding, [object2]); binding = env0_3; content = a0.content; env0_3 = binding + content; } else { reducibleJoin32: while (true) { reducibleJoin28: while (true) { if (type === 'codeBlock') { break reducibleJoin28; } if (type === 'inlineCode') { break reducibleJoin28; } if (type === 'mention') { break reducibleJoin28; } if (type === 'roleMention') { break reducibleJoin28; } if (type === 'channel') { break reducibleJoin28; } binding = env0_3; content = a0.content; env0_3 = binding + importDefault(content); break reducibleJoin32; } isNotification = require.isNotification; if (isNotification === true) { binding = env0_3; value16 = environment.__proto__; moduleValue = require(7078) /* metro dependency 7078: IsolateString */; isolate = moduleValue.isolate; env0_3 = binding + Reflect.apply(isolate, moduleValue, [a0.content]); break reducibleJoin32; } binding = env0_3; content = a0.content; env0_3 = binding + content; break reducibleJoin32; } } } else { content = a0.content; reducibleJoin32: while (true) { if (content.constructor !== global.Array) { break reducibleJoin32; } value10 = environment.__proto__; rebuildBinding = rebuild; content = a0.content; value11 = rebuildBinding(content, require, importDefault, importAll); content = value11.content; _createForOfIteratorHelperLoose_56418Binding = _createForOfIteratorHelperLoose_56418; emoji = value11.emoji; value12 = _createForOfIteratorHelperLoose_56418Binding(emoji); value13 = value12(); done = value13.done; if (!done) { r4 = value13; reducibleLoop19: while (true) { value14 = r4.value; binding = env0_4; push = binding.push; object2 = {}; length = env0_3.length; position = value14.position; object2.position = length + position; length = value14.length; object2.length = length; id = value14.id; object2.id = id; Reflect.apply(push, binding, [object2]); value15 = value12(); done = value15.done; if (done) { break reducibleLoop19; } r4 = value15; continue reducibleLoop19; } } env0_3 += content; break reducibleJoin32; } } } function _fun56434(a0) { // fn#56434, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7254:7743, offset: 0x013c7fed, size: 18 bytes, params: 2, frame: 2 return {userId: a0, nick: null}; } function _fun56435({userId, nick}) { // fn#56435, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7254:7873, offset: 0x013c7fff, size: 27 bytes, params: 2, frame: 3 return {userId: userId, nick: nick}; } function _fun56436(a0, {userId}) { // fn#56436, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7254:7945, offset: 0x013c801a, size: 62 bytes, params: 3, frame: 13 let value = environment.__proto__; value = UserStore.getUser(userId); if (value != null) { a0.push({id: userId, text: value.tag}); } return a0; } function _fun56437({mentionable}) { // fn#56437, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7254:8087, offset: 0x013c8058, size: 24 bytes, params: 2, frame: 3 return env0_1 || mentionable; } function _fun56441(a0) { // fn#56441, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7254:8340, offset: 0x013c8099, size: 51 bytes, params: 2, frame: 11 var environment; const value = environment.__proto__; return GuildChannelStore.getChannels(env0_0)[a0].map(_fun56442); } function matchChannelPrefix(a0, a1, a2) { // fn#56450, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7254:2965, owner: match_56449.matchChannelPrefix, offset: 0x013c84dd, size: 269 bytes, params: 4, frame: 24 var environment; var r9; var r2; var r7; var length; var value; var value2; var value3; var value4; var moduleValue; if (a1[0] === '#') { if (a1[1] !== '"') { value = environment.__proto__; return matchPrefix('#', a1, a2, 'channel'); } length = a1.length; value = 2; if (value < length) { r9 = value; reducibleLoop4: while (true) { if (a1[r9] !== '\\') { reducibleJoin7: while (true) { if (a1[r9] === '"') { r7 = r9; break reducibleLoop4; } r2 = r9; break reducibleJoin7; } } else { value2 = typeof r9 === 'bigint' ? r9 + 1n : +r9 + 1; r2 = value2; } value3 = typeof r2 === 'bigint' ? r2 + 1n : +r2 + 1; length = a1.length; if (value3 < length) { r9 = value3; continue reducibleLoop4; } r7 = value3; break reducibleLoop4; } } else { r7 = value; } var env0_0 = a1.substring(0, r7 + 1); value4 = environment.__proto__; moduleValue = require(4805) /* metro dependency 4805: useChannelName */; var env0_1 = moduleValue.unescapeChannelName(a1.substring(value, r7)); value = a2.sortBy(function(a0) { return -a0.text.length; }); value = value.filter(_fun56452); value = value.map(_fun56453); return value.first(); } } function _fun56463({name}) { // fn#56463, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7254:5181, offset: 0x013c8c3f, size: 38 bytes, params: 2, frame: 12 const binding = env0_0; return binding.startsWith(name.toLowerCase()); } function _fun56472(a0, a1) { // fn#56472, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7254:6361, offset: 0x013c8f9d, size: 27 bytes, params: 3, frame: 2 env0_0[a0].order = a1; } function _fun56474(a0, a1) { // fn#56474, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7254:9451, offset: 0x013c9028, size: 125 bytes, params: 3, frame: 16 const defaultImport = importDefault(3801) /* metro dependency 3801: EmojiUtils */; const isEmojiPremiumLocked = defaultImport.isEmojiPremiumLocked; const object2 = {emoji: a0}; object2.channel = env0_0; const CHAT = EmojiIntention.CHAT; object2.intention = CHAT; if (Reflect.apply(isEmojiPremiumLocked, defaultImport, [object2])) { env0_1.invalidEmojis.push(a0); } else if (!a1) { env0_1.validNonShortcutEmojis.push(a0); } } function _fun56442(a0) { // fn#56442, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7254:8368, offset: 0x013c80cc, size: 136 bytes, params: 2, frame: 17 var r0; var value; var can; var VIEW_CHANNEL; var object2; var moduleValue; var computeChannelName; let channel = a0.channel; if (channel.isCategory()) { value = environment.__proto__.__proto__; can = PermissionStore.can; VIEW_CHANNEL = Permissions.VIEW_CHANNEL; channel = a0.channel; value = Reflect.apply(can, PermissionStore, [VIEW_CHANNEL, channel]); if (value) { object2 = {}; channel = a0.channel; object2.id = channel.id; value = environment.__proto__.__proto__; moduleValue = require(4805) /* metro dependency 4805: useChannelName */; computeChannelName = moduleValue.computeChannelName; channel = a0.channel; object2.text = Reflect.apply(computeChannelName, moduleValue, [channel, UserStore, RelationshipStore]); r0 = object2; } else { r0 = null; } } else { object2 = {}; channel = a0.channel; object2.id = channel.id; value = environment.__proto__.__proto__; moduleValue = require(4805) /* metro dependency 4805: useChannelName */; computeChannelName = moduleValue.computeChannelName; channel = a0.channel; object2.text = Reflect.apply(computeChannelName, moduleValue, [channel, UserStore, RelationshipStore]); r0 = object2; } return r0; } function _fun56452({text}) { // fn#56452, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7254:3259, offset: 0x013c85ea, size: 21 bytes, params: 2, frame: 2 return env0_1 === text; } function _fun56453({id}) { // fn#56453, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7254:3284, offset: 0x013c85ff, size: 37 bytes, params: 2, frame: 3 return [env0_0, id, 'channel']; }