/* Metro module 9676; source: modules/search/tokens/SearchTokens.tsx; dependencies: [57, 1379, 1935, 3793, 1934, 3996, 1878, 9677, 9678, 661, 3738, 22, 1244, 4805, 3995, 9675, 9679, 6590, 6526, 7234, 9680, 9681, 2] */ import Module00022 from '../../../by-id/module-00022.js'; /* Metro dependency 22 */ import Module00057 from '../../../by-id/module-00057.js'; /* Metro dependency 57 */ import ChannelStore from '../../../stores/ChannelStore.tsx'; /* Metro dependency 1379 */ import UserStore from '../../../stores/UserStore.tsx'; /* Metro dependency 1878 */ import SelectedChannelStore from '../../../stores/SelectedChannelStore.tsx'; /* Metro dependency 1934 */ import GuildChannelStore from '../../../stores/GuildChannelStore.tsx'; /* Metro dependency 1935 */ import Module03738 from '../../../by-id/module-03738.js'; /* Metro dependency 3738 */ import RelationshipStore from '../../../stores/RelationshipStore.tsx'; /* Metro dependency 3793 */ import StreamerModeStore from '../../../stores/StreamerModeStore.tsx'; /* Metro dependency 3996 */ import AutocompleteUtils from '../../../utils/AutocompleteUtils.tsx'; /* Metro dependency 6526 */ import Module06590 from '../../../by-id/module-06590.js'; /* Metro dependency 6590 */ import SearchAutocompleteStore from '../SearchAutocompleteStore.tsx'; /* Metro dependency 9677 */ import SearchRecentMessageStore from '../SearchRecentMessageStore.tsx'; /* Metro dependency 9678 */ import * as FileImportTrackerModule from '../../../by-id/module-00002-FileImportTracker.js'; /* Metro dependency 2 */ import * as IndexNativeModule from '../../../intl/index.native.tsx'; /* Metro dependency 1244 */ import * as GuildChannelStoreModule from '../../../stores/GuildChannelStore.tsx'; /* Metro dependency 1935 */ import * as AutocompleteUtilsModule from '../../../utils/AutocompleteUtils.tsx'; /* Metro dependency 6526 */ import * as AutocompleterModule from '../../autocompleter/index.tsx'; /* Metro dependency 7234 */ import * as SearchUtilsModule from '../SearchUtils.tsx'; /* Metro dependency 9675 */ import * as SearchTokensUtilsModule from './SearchTokensUtils.tsx'; /* Metro dependency 9679 */ import * as SearchTokenStreamerModeUtilsModule from './SearchTokenStreamerModeUtils.tsx'; /* Metro dependency 9680 */ import * as QueryTokenizerModule from '../../../lib/QueryTokenizer.tsx'; /* Metro dependency 9681 */ function _fun75908(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#75908, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9862:6, offset: 0x01dbdb0a, size: 928 bytes, params: 8, frame: 24 const env0_0 = require; const makeDateRange = function(a0, a1) { var items = [a0]; items[1] = a0.clone().add(1, a1); return items; }; const buildKey = function(a0) { return '' + a0 + ':'; }; const isValidUserAutocomplete2 = isValidUserAutocomplete; const isValidChannelAutocomplete2 = isValidChannelAutocomplete; const isValidPinnedAutocomplete = function(a0) { var r0; var value = a0.getMatch(1); if (value === 'true') { value = true; a0.setData('pinned', value); r0 = value; } else { value = value === 'false'; if (value) { a0.setData('pinned', false); r0 = true; } else { r0 = value; } } return r0; }; const getUserAutocompletions2 = getUserAutocompletions; const Object = global.Object; Object.defineProperty(exports, '__esModule', {value: true}); let value = GuildChannelStoreModule; const env0_5 = value.GUILD_SELECTABLE_CHANNELS_KEY; const env0_6 = value.GUILD_VOCAL_CHANNELS_KEY; value = require(661) /* metro dependency 661: Constants */; const env0_14 = value.ME; const SearchTokenTypes = value.SearchTokenTypes; const env0_16 = value.SEARCH_DATE_FORMAT; const env0_17 = value.SearchTypes; const env0_18 = value.IS_SEARCH_FILTER_TOKEN; const env0_19 = value.ID_REGEX; let RegExp = global.RegExp; let regExp = new RegExp('(?:\\s*(([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})|([0-9]{4})-([0-9]{1,2})|\\d{4}|([^\\d\\s]+)))', 'i'); RegExp = global.RegExp; regExp = new RegExp('\\s*(true|false)', 'i'); const env0_22 = RegExp('^(?:\\s*(\\d{17,20}|@me|([^@#:]+)#([0-9]{4})|([a-z0-9_.]{2,32})))', 'i'); const object2 = {}; const FILTER_HAS = SearchTokenTypes.FILTER_HAS; const ANSWER_HAS = SearchTokenTypes.ANSWER_HAS; object2[FILTER_HAS] = ANSWER_HAS; const FILTER_AUTHOR_TYPE = SearchTokenTypes.FILTER_AUTHOR_TYPE; const ANSWER_AUTHOR_TYPE = SearchTokenTypes.ANSWER_AUTHOR_TYPE; object2[FILTER_AUTHOR_TYPE] = ANSWER_AUTHOR_TYPE; const FILTER_PINNED = SearchTokenTypes.FILTER_PINNED; const ANSWER_PINNED = SearchTokenTypes.ANSWER_PINNED; object2[FILTER_PINNED] = ANSWER_PINNED; (FileImportTrackerModule).fileFinishedImporting('modules/search/tokens/SearchTokens.tsx'); exports.default = {}; exports.isValidUserAutocomplete = isValidUserAutocomplete2; exports.isValidChannelAutocomplete = isValidChannelAutocomplete2; exports.getLocalizedHasAnswer = getLocalizedHasAnswer; exports.getLocalizedAuthorTypeAnswer = getLocalizedAuthorTypeAnswer; exports.getRandomDateShortcut = function() { return importDefault(dependencyMap[11]).sample(generateDateAutocompletions()); }; exports.getUserAutocompletions = getUserAutocompletions2; exports.ComponentTypes = {FILTER: 'FILTER', ANSWER: 'ANSWER'}; exports.buildCrossDMSearchTokensConfig = function() { return makeSearchTokenConfigs({type: SearchTypes.DMS}); }; exports.rebuildSearchTokenConfigs = rebuildSearchTokenConfigs; exports.isSearchFilterTokenType = function(a0) { return IS_SEARCH_FILTER_TOKEN.test(a0); }; exports.isMeAutcompleteAnswer = isMeAutcompleteAnswer; exports.isValidFilterAnswerForSubmit = isValidFilterAnswerForSubmit; function getMonths() { // fn#75909, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9862:376, offset: 0x01dbdeaa, size: 84 bytes, params: 1, frame: 12 const Set = global.Set; let value = Module03738; value = value.months(); value = value.map(function(a0) { return a0.toLowerCase(); }); const value2 = Object.create(Set.prototype, {constructor: {value: Set}}); const set = new Set(); return set instanceof Object ? set : value2; } function getWeekdays() { // fn#75911, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9862:457, offset: 0x01dbdefe, size: 84 bytes, params: 1, frame: 12 const Set = global.Set; let value = Module03738; value = value.weekdays(); value = value.map(function(a0) { return a0.toLowerCase(); }); const value2 = Object.create(Set.prototype, {constructor: {value: Set}}); const set = new Set(); return set instanceof Object ? set : value2; } function getYears() { // fn#75913, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9862:542, offset: 0x01dbdf52, size: 135 bytes, params: 1, frame: 14 const Date = global.Date; let date = new Date(); date = date.getFullYear(); const Set = global.Set; date = (importDefault(22) /* metro dependency 22 */).range(2015, date + 1); date = date.map(function(a0) { return a0.toString(); }); const value3 = Object.create(Set.prototype, {constructor: {value: Set}}); const set = new Set(date); return set instanceof Object ? set : value3; } function makeDate(a0) { // fn#75916, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9862:714, offset: 0x01dbe005, size: 75 bytes, params: 2, frame: 16 let value = a1; const r5 = value !== undefined ? value : 0; const makeDateRangeBinding = makeDateRange; value = (importDefault(3738) /* metro dependency 3738 */)(); value = value.startOf(a0); return makeDateRangeBinding(value.add(r5, a0), a0); } function parseDate_75917(a0, a1, a2) { // fn#75917, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9862:794, offset: 0x01dbe050, size: 62 bytes, params: 4, frame: 14 const makeDateRangeBinding = makeDateRange; let value = Module03738; value = value(a0, a1); value = value.local(); return makeDateRangeBinding(value, a2); } function getShortcuts() { // fn#75918, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9862:866, offset: 0x01dbe08e, size: 312 bytes, params: 1, frame: 17 const object = {}; const intl = (IndexNativeModule).intl; const string = intl.string; const t = (IndexNativeModule).t; const HYiVEQ = t.HYiVEQ; object[Reflect.apply(string, intl, [HYiVEQ])] = function() { return makeDate('day'); }; object[intl.string(t.cu86KC)] = function() { return makeDate('day', -1); }; object[intl.string(t['FvBj/6'])] = function() { return makeDate('week'); }; object[intl.string(t['20uWCw'])] = function() { return makeDate('month'); }; object[intl.string(t['dXC/hn'])] = function() { return makeDate('year'); }; return object; } function buildFilterRegex(a0) { // fn#75925, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9862:1411, offset: 0x01dbe251, size: 51 bytes, params: 2, frame: 13 const RegExp = global.RegExp; const key = buildKey(a0); const value2 = Object.create(RegExp.prototype, {constructor: {value: RegExp}}); const regExp = new RegExp(key, 'i'); return regExp instanceof Object ? regExp : value2; } function isValidUserAutocomplete(a0) { // fn#75926, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9862:1475, offset: 0x01dbe284, size: 220 bytes, params: 2, frame: 19 var r0; var r3; var userStoreBinding; var findByTag; let value = a0.getMatch(1); const closure = function(a0) { var value = null; return value != a0 ? a0 == undefined ? undefined : a0.id : value; }; if (ID_REGEX.test(value)) { r3 = value; } else { if (value === ME) { value = UserStore.getCurrentUser(); value = closure(value); r0 = value; } else { value = a0.getMatch(4); if (value != null) { userStoreBinding = UserStore; value = userStoreBinding.findByTag(a0.getMatch(4)); value = closure(value); r0 = value; } else { userStoreBinding = UserStore; findByTag = userStoreBinding.findByTag; value = a0.getMatch(2); value = Reflect.apply(findByTag, userStoreBinding, [value, a0.getMatch(3)]); value = closure(value); r0 = value; } } r3 = r0; } value = r3 != null; if (value) { a0.setData('userId', r3); r0 = true; } else { r0 = value; } return r0; } function dateValidator(a0, a1) { // fn#75928, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9862:1782, offset: 0x01dbe381, size: 460 bytes, params: 3, frame: 22 var r0; var r2; var r5; var months; var weekdays; var value7; var parseDate_75917Binding; var property2; var property3; var property4; var property5; var property6; let value = a0.getFullMatch(); value = value.trim(); value = value.toLowerCase(); let property = getShortcuts()[value]; const value3 = null; if (value3 != property) { value = property(); value = Module00057(value, 2); property = value[0]; property6 = value[1]; r0 = property; r2 = property6; } else { months = getMonths(); if (months.has(value)) { value = parseDate_75917(value, 'MMMM', 'month'); value = Module00057(value, 2); property = value[0]; property5 = value[1]; r0 = property; r2 = property5; } else { weekdays = getWeekdays(); if (weekdays.has(value)) { value = parseDate_75917(value, 'dddd', 'day'); value = Module00057(value, 2); property = value[0]; property4 = value[1]; r0 = property; r2 = property4; } else { value7 = getYears().has(value); parseDate_75917Binding = parseDate_75917; if (value7) { value = parseDate_75917Binding(value, 'YYYY', 'year'); value = Module00057(value, 2); property = value[0]; property3 = value[1]; r0 = property; r2 = property3; } else { value = parseDate_75917Binding(value, SEARCH_DATE_FORMAT, 'day'); value = Module00057(value, 2); property = value[0]; property2 = value[1]; r0 = property; r2 = property2; } } } } value = r0.isValid(); let r3 = value ? !r2.isValid() : !value; if (r3) { r0 = !r3; } else { if (a1 === 'before') { r3 = r0; r5 = value3; } else if (a1 !== 'after') { r3 = r2; r5 = r0; } else { r3 = value3; r5 = r2; } a0.setData('start', r5); a0.setData('end', r3); r0 = true; } return r0; } function isValidChannelAutocomplete(a0, a1) { // fn#75929, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9862:2365, offset: 0x01dbe54d, size: 272 bytes, params: 3, frame: 20 var r0; var r6; let value = a0.getMatch(1); if (ID_REGEX.test(value)) { a0.setData('channelIds', [value]); value = true; r0 = value; } else { r0 = value.startsWith('"') && value.endsWith('"'); if (r0) { value = value.substring(1, value.length - 1); value = value.replaceAll(RegExp('\\\\(.)', 'g'), function(a0, a1) { return a1; }); r6 = value; } else { r6 = value; } value = require(9675) /* metro dependency 9675: SearchUtils */; if (value.isGuildLikeSearchContext(a1)) { r0 = isValidGuildChannelAutocomplete(a0, r6, a1.guildId); } else { r0 = a1.type === SearchTypes.DMS && !StreamerModeStore.hidePersonalInformation; r0 = r0 && isValidPrivateChannelAutocomplete(a0, r6); } } return r0; function isValidGuildChannelAutocomplete(a0, a1, a2) { // fn#75931, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9862:2612, owner: isValidChannelAutocomplete.isValidGuildChannelAutocomplete, offset: 0x01dbe65d, size: 266 bytes, params: 4, frame: 19 var environment; var r0; var setData; const env0_0 = a1; let value = environment.__proto__; const property = GuildChannelStore.getChannels(a2)[GUILD_SELECTABLE_CHANNELS_KEY]; const value4 = property.concat(GuildChannelStore.getChannels(a2)[GUILD_VOCAL_CHANNELS_KEY]); const env0_1 = GuildChannelStore.getTextChannelNameDisambiguations(a2); const value5 = undefined; const value7 = (importDefault(22) /* metro dependency 22 */).chain(value4).map(function(a0) { return a0.channel; }); value = value7.concat(a2 != null ? ChannelStore.getAllThreadsForGuild(a2) : []); value = value.filter(_fun75933); value = value.value(); const value9 = (value == null ? value5 : value.length) > 0; if (value9) { setData = a0.setData; value = value.map(function(a0) { return a0.id; }); Reflect.apply(setData, a0, ['channelIds', value]); value = true; r0 = value; } else { r0 = value9; } return r0; function _fun75933(a0) { // fn#75933, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9862:2853, offset: 0x01dbe767, size: 95 bytes, params: 2, frame: 18 var r0; var value2; var value; const name = env0_1[a0.id]?.name; if (name != null) { r0 = name; } else { value2 = environment.__proto__.__proto__; value = require(4805) /* metro dependency 4805: useChannelName */; value = value.computeChannelName(a0, UserStore, RelationshipStore); r0 = value; } return require === r0; } } function isValidPrivateChannelAutocomplete(a0, a1) { // fn#75935, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9862:3109, owner: isValidChannelAutocomplete.isValidPrivateChannelAutocomplete, offset: 0x01dbe7c6, size: 126 bytes, params: 3, frame: 15 var environment; var r0; var setData; const env0_0 = a1; const Object = global.Object; const values = Object.values; let value = environment.__proto__; const channelStoreBinding = ChannelStore; const getMutablePrivateChannels = channelStoreBinding.getMutablePrivateChannels; value = Reflect.apply(values, Object, [Reflect.apply(getMutablePrivateChannels, channelStoreBinding, [])]); value = value.filter(_fun75936); const value3 = value?.length > 0; if (value3) { setData = a0.setData; value = value.map(function(a0) { return a0.id; }); Reflect.apply(setData, a0, ['channelIds', value]); value = true; r0 = value; } else { r0 = value3; } return r0; function _fun75936(a0) { // fn#75936, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9862:3216, offset: 0x01dbe844, size: 178 bytes, params: 2, frame: 15 var value; var moduleValue; var value3; if (a0.isGroupDM()) { value = environment.__proto__.__proto__; moduleValue = require(4805) /* metro dependency 4805: useChannelName */; value = moduleValue.computeChannelName(a0, UserStore, RelationshipStore); if (require === value) { return true; } if (a0.isDM()) { value = a0.getRecipientId(); value3 = environment.__proto__.__proto__; value = UserStore.getUser(value); if (value == null) { return false; } value = (importDefault(3995) /* metro dependency 3995: UserUtils */).getUserTag(value); return require === value; } } else if (a0.isDM()) { value = a0.getRecipientId(); value3 = environment.__proto__.__proto__; value = UserStore.getUser(value); if (value == null) { return false; } value = (importDefault(3995) /* metro dependency 3995: UserUtils */).getUserTag(value); return require === value; } return false; } } } function getHasMap() { // fn#75938, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9862:3512, offset: 0x01dbe8f6, size: 497 bytes, params: 1, frame: 16 const object = {}; const intl = (IndexNativeModule).intl; let string = intl.string; const t = (IndexNativeModule).t; const ZNR2fi = t.ZNR2fi; object[Reflect.apply(string, intl, [ZNR2fi])] = 'link'; object[intl.string(t['20uQR3'])] = 'embed'; string = intl.string; const L4lxyE = t.L4lxyE; object[Reflect.apply(string, intl, [L4lxyE])] = 'poll'; object[intl.string(t.nrpA5E)] = 'snapshot'; object[intl.string(t['AV/v6i'])] = 'file'; string = intl.string; const XM9XGP = t.XM9XGP; object[Reflect.apply(string, intl, [XM9XGP])] = 'video'; string = intl.string; const TNLcpx = t.TNLcpx; object[Reflect.apply(string, intl, [TNLcpx])] = 'image'; string = intl.string; const F8Wf0e = t.F8Wf0e; object[Reflect.apply(string, intl, [F8Wf0e])] = 'sound'; string = intl.string; const PJgX2h = t.PJgX2h; object[Reflect.apply(string, intl, [PJgX2h])] = 'sticker'; return object; } function getAuthorTypeMap() { // fn#75939, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9862:3999, offset: 0x01dbeae7, size: 179 bytes, params: 1, frame: 16 const object = {}; const intl = (IndexNativeModule).intl; let string = intl.string; const t = (IndexNativeModule).t; object[Reflect.apply(string, intl, [t.tPZo4p])] = 'user'; string = intl.string; const JL7sRS = t.JL7sRS; object[Reflect.apply(string, intl, [JL7sRS])] = 'bot'; string = intl.string; const WjkIKU = t.WjkIKU; object[Reflect.apply(string, intl, [WjkIKU])] = 'webhook'; return object; } function getLocalizedAnswer(a0, a1) { // fn#75940, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9862:4184, offset: 0x01dbeb9a, size: 131 bytes, params: 3, frame: 16 var r2; let value = a0; const value2 = value.startsWith('-'); if (value2) { value = value.slice(1); r2 = value; } else { r2 = value; } const Object = global.Object; value = Object.entries(a1); value = value.find(_fun75941); r2 = value?.[0] ?? r2; return value2 ? '-' + r2 : r2; function _fun75941(a0) { // fn#75941, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9862:4306, offset: 0x01dbec1d, size: 98 bytes, params: 2, frame: 10 var r1; var r2; var r4; var item3; var value3; const iterator = a0[Symbol.iterator](); const iterator2 = iterator.next; const 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; r4 = value; } else { item3 = Reflect.apply(iterator2, item2, []); item = item3.value; item3 = item3.done ? undefined : item2; value3 = item3 === value; if (value3) { r1 = item3; r2 = value3; r4 = value; } else { r1 = item3; r2 = value3; r4 = item; } } if (!r2) { r1.return(); } return r4 === env0_0; } } function isValidHasAutocomplete(a0) { // fn#75942, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9862:4359, offset: 0x01dbec7f, size: 55 bytes, params: 2, frame: 15 return SearchTokensUtilsModule.validateForMapWithNegation('has', getHasMap(), a0); } function isValidAuthorTypeAutocomplete(a0) { // fn#75943, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9862:4458, offset: 0x01dbecb6, size: 55 bytes, params: 2, frame: 15 return SearchTokensUtilsModule.validateForMapWithNegation('author_type', getAuthorTypeMap(), a0); } function generateDateAutocompletions() { // fn#75945, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9862:4723, offset: 0x01dbed3d, size: 139 bytes, params: 1, frame: 18 let Array = global.Array; const value2 = Array.from(getMonths()); const items2 = []; const value3 = arraySpread(items2, value2, 0, undefined); Array = global.Array; const value4 = arraySpread(items2, Array.from(getWeekdays()), value3, Array); Array = global.Array; const value5 = arraySpread(items2, Array.from(getYears()), value4, Array); const Object = global.Object; arraySpread(items2, Object.keys(getShortcuts()), value5, Array); return items2; } function getDateAutocompletions(a0, a1, a2) { // fn#75946, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9862:4883, offset: 0x01dbedc8, size: 58 bytes, params: 4, frame: 16 const env0_0 = a2; const genericSearchBinding = genericSearch; let value = generateDateAutocompletions(); value = genericSearchBinding(a0, a1, value); return value.map(_fun75947); function _fun75947(a0) { // fn#75947, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9862:4983, offset: 0x01dbee02, size: 75 bytes, params: 2, frame: 16 const object = {}; copyDataProperties(object, a0, undefined); object['group'] = importDefault; object['key'] = '' + importDefault + '-' + a0.text; return object; } } function genericSearch(a0, a1, a2) { // fn#75948, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9862:5026, offset: 0x01dbee4d, size: 111 bytes, params: 4, frame: 12 const env0_0 = a0.toLocaleLowerCase(); let value = Module00022; value = value(a2); value = value.filter(_fun75949); value = value.take(a1); value = value.map(function(a0) { return {text: a0}; }); return value.value(); function _fun75949(a0) { // fn#75949, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9862:5111, offset: 0x01dbeebc, size: 53 bytes, params: 2, frame: 14 const value = environment.__proto__; return (Module06590)(env0_0, a0.toLocaleLowerCase()); } } function getUserAutocompletions({query, searchContext, maxResults, tokens}) { // fn#75951, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9862:5187, offset: 0x01dbeefc, size: 957 bytes, params: 2, frame: 25 var r11; var r6; var value2; var defaultImport; var queryAllUsers; var object; var currentUser; var defaultImport2; var queryUsers; var object2; var defaultImport3; var queryChannelUsers; var object3; var defaultImport4; var queryGuildUsers; var object4; var guildId; var currentUser2; var value10; const intl = (IndexNativeModule).intl; const t = (IndexNativeModule).t; var value18; var set; var selectedChannelStoreBinding; var getCurrentlySelectedChannelId; var searchRecentMessageStoreBinding; var getRecentMessageAuthorIds; maxResults = maxResults === undefined ? 10 : maxResults; const object5 = {}; let value = query.trim(); value = value.split('#'); const property = value[0]; object5.query = property; object5.limit = maxResults; object5.request = false; const getBoosterMap = AutocompleteUtilsModule.getBoosterMap; const AutocompleterResultTypes = (AutocompleterModule).AutocompleterResultTypes; const USER = AutocompleterResultTypes.USER; object5.boosters = Reflect.apply(getBoosterMap, AutocompleteUtilsModule, [USER]); const type = searchContext.type; const GUILD = SearchTypes.GUILD; if (GUILD === type) { if (property.length === 0) { set = new global.Set(); selectedChannelStoreBinding = SelectedChannelStore; getCurrentlySelectedChannelId = selectedChannelStoreBinding.getCurrentlySelectedChannelId; guildId = searchContext.guildId; (importDefault(6526) /* metro dependency 6526: AutocompleteUtils */).getRecentlyTalked(Reflect.apply(getCurrentlySelectedChannelId, selectedChannelStoreBinding, [guildId]), maxResults).forEach(function({record}) { return maybeAddUser(record); }); searchRecentMessageStoreBinding = SearchRecentMessageStore; getRecentMessageAuthorIds = searchRecentMessageStoreBinding.getRecentMessageAuthorIds; guildId = searchContext.guildId; Reflect.apply(getRecentMessageAuthorIds, searchRecentMessageStoreBinding, [guildId]).forEach(_fun75954); return [].slice(0, maxResults); } defaultImport4 = importDefault(6526) /* metro dependency 6526: AutocompleteUtils */; queryGuildUsers = defaultImport4.queryGuildUsers; object4 = {}; copyDataProperties(object4, object5, undefined); guildId = searchContext.guildId; object4['guildId'] = guildId; r11 = Reflect.apply(queryGuildUsers, defaultImport4, [object4]); currentUser2 = UserStore.getCurrentUser(); value10 = property.toLowerCase().replace(RegExp('^@', ''), ''); r6 = currentUser2 != null && property.length > 0; r6 = r6 && (intl.string(t.Qf3ptv).startsWith(value10) || ME.substr(1).startsWith(value10)); value18 = r11.filter(_fun75961).map(_fun75962); if (r6) { value18.unshift({text: ME, user: currentUser2}); } return value18; } const GUILD_CHANNEL = SearchTypes.GUILD_CHANNEL; if (GUILD_CHANNEL === type) { if (property.length === 0) { set = new global.Set(); selectedChannelStoreBinding = SelectedChannelStore; getCurrentlySelectedChannelId = selectedChannelStoreBinding.getCurrentlySelectedChannelId; guildId = searchContext.guildId; (importDefault(6526) /* metro dependency 6526: AutocompleteUtils */).getRecentlyTalked(Reflect.apply(getCurrentlySelectedChannelId, selectedChannelStoreBinding, [guildId]), maxResults).forEach(function({record}) { return maybeAddUser(record); }); searchRecentMessageStoreBinding = SearchRecentMessageStore; getRecentMessageAuthorIds = searchRecentMessageStoreBinding.getRecentMessageAuthorIds; guildId = searchContext.guildId; Reflect.apply(getRecentMessageAuthorIds, searchRecentMessageStoreBinding, [guildId]).forEach(_fun75954); return [].slice(0, maxResults); } defaultImport4 = importDefault(6526) /* metro dependency 6526: AutocompleteUtils */; queryGuildUsers = defaultImport4.queryGuildUsers; object4 = {}; copyDataProperties(object4, object5, undefined); guildId = searchContext.guildId; object4['guildId'] = guildId; r11 = Reflect.apply(queryGuildUsers, defaultImport4, [object4]); currentUser2 = UserStore.getCurrentUser(); value10 = property.toLowerCase().replace(RegExp('^@', ''), ''); r6 = currentUser2 != null && property.length > 0; r6 = r6 && (intl.string(t.Qf3ptv).startsWith(value10) || ME.substr(1).startsWith(value10)); value18 = r11.filter(_fun75961).map(_fun75962); if (r6) { value18.unshift({text: ME, user: currentUser2}); } return value18; } const THREAD = SearchTypes.THREAD; if (THREAD === type) { if (property.length === 0) { set = new global.Set(); selectedChannelStoreBinding = SelectedChannelStore; getCurrentlySelectedChannelId = selectedChannelStoreBinding.getCurrentlySelectedChannelId; guildId = searchContext.guildId; (importDefault(6526) /* metro dependency 6526: AutocompleteUtils */).getRecentlyTalked(Reflect.apply(getCurrentlySelectedChannelId, selectedChannelStoreBinding, [guildId]), maxResults).forEach(function({record}) { return maybeAddUser(record); }); searchRecentMessageStoreBinding = SearchRecentMessageStore; getRecentMessageAuthorIds = searchRecentMessageStoreBinding.getRecentMessageAuthorIds; guildId = searchContext.guildId; Reflect.apply(getRecentMessageAuthorIds, searchRecentMessageStoreBinding, [guildId]).forEach(_fun75954); return [].slice(0, maxResults); } defaultImport4 = importDefault(6526) /* metro dependency 6526: AutocompleteUtils */; queryGuildUsers = defaultImport4.queryGuildUsers; object4 = {}; copyDataProperties(object4, object5, undefined); guildId = searchContext.guildId; object4['guildId'] = guildId; r11 = Reflect.apply(queryGuildUsers, defaultImport4, [object4]); currentUser2 = UserStore.getCurrentUser(); value10 = property.toLowerCase().replace(RegExp('^@', ''), ''); r6 = currentUser2 != null && property.length > 0; r6 = r6 && (intl.string(t.Qf3ptv).startsWith(value10) || ME.substr(1).startsWith(value10)); value18 = r11.filter(_fun75961).map(_fun75962); if (r6) { value18.unshift({text: ME, user: currentUser2}); } return value18; } const CHANNEL = SearchTypes.CHANNEL; if (CHANNEL === type) { defaultImport3 = importDefault(6526) /* metro dependency 6526: AutocompleteUtils */; queryChannelUsers = defaultImport3.queryChannelUsers; object3 = {}; copyDataProperties(object3, object5, undefined); object3['channelId'] = searchContext.channelId; r11 = Reflect.apply(queryChannelUsers, defaultImport3, [object3]); currentUser2 = UserStore.getCurrentUser(); value10 = property.toLowerCase().replace(RegExp('^@', ''), ''); r6 = currentUser2 != null && property.length > 0; r6 = r6 && (intl.string(t.Qf3ptv).startsWith(value10) || ME.substr(1).startsWith(value10)); value18 = r11.filter(_fun75961).map(_fun75962); if (r6) { value18.unshift({text: ME, user: currentUser2}); } return value18; } const DMS = SearchTypes.DMS; if (DMS === type) { value2 = ((a0) => { if (a0 != null) { var Set = global.Set; var env0_0 = new Set(); a0.forEach(_fun75956); var env0_2 = _fun75958; [].forEach(_fun75959); } return []; })(tokens ?? []); if (value2 == null) { defaultImport = importDefault(6526) /* metro dependency 6526: AutocompleteUtils */; queryAllUsers = defaultImport.queryAllUsers; object = {}; copyDataProperties(object, object5, undefined); r11 = Reflect.apply(queryAllUsers, defaultImport, [object]); } else if (value2.length > 0) { currentUser = UserStore.getCurrentUser(); if (currentUser != null) { value2.push(currentUser); } defaultImport2 = importDefault(6526) /* metro dependency 6526: AutocompleteUtils */; queryUsers = defaultImport2.queryUsers; object2 = {}; copyDataProperties(object2, object5, undefined); object2['users'] = value2; r11 = Reflect.apply(queryUsers, defaultImport2, [object2]); } else { defaultImport = importDefault(6526) /* metro dependency 6526: AutocompleteUtils */; queryAllUsers = defaultImport.queryAllUsers; object = {}; copyDataProperties(object, object5, undefined); r11 = Reflect.apply(queryAllUsers, defaultImport, [object]); } currentUser2 = UserStore.getCurrentUser(); value10 = property.toLowerCase().replace(RegExp('^@', ''), ''); r6 = currentUser2 != null && property.length > 0; r6 = r6 && (intl.string(t.Qf3ptv).startsWith(value10) || ME.substr(1).startsWith(value10)); value18 = r11.filter(_fun75961).map(_fun75962); if (r6) { value18.unshift({text: ME, user: currentUser2}); } return value18; } return []; function maybeAddUser(a0) { // fn#75952, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9862:5518, owner: getUserAutocompletions.maybeAddUser, offset: 0x01dbf2b9, size: 149 bytes, params: 2, frame: 16 var r1; var binding; var relationshipStoreBinding; var push; var object; var value2; let value = a0 == null; if (value) { r1 = value; } else { binding = env0_1; r1 = binding.has(a0.id); } if (!r1) { value = environment.__proto__; relationshipStoreBinding = RelationshipStore; value = relationshipStoreBinding.isBlockedOrIgnored(a0.id); r1 = value; } if (!r1) { binding = env0_0; push = binding.push; object = {user: a0}; value2 = environment.__proto__; object.text = (importDefault(3995) /* metro dependency 3995: UserUtils */).getUserTag(a0); Reflect.apply(push, binding, [object]); binding = env0_1; binding.add(a0.id); } } function _fun75954(a0) { // fn#75954, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9862:5805, offset: 0x01dbf367, size: 37 bytes, params: 2, frame: 12 const maybeAddUserBinding = maybeAddUser; const value = environment.__proto__; return maybeAddUserBinding(UserStore.getUser(a0)); } function getPrivateChannelRecipients(a0) { // fn#75955, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9862:6006, owner: getUserAutocompletions.getPrivateChannelRecipients, offset: 0x01dbf38c, size: 112 bytes, params: 2, frame: 13 if (a0 != null) { var Set = global.Set; var set = new Set(); a0.forEach(function(a0) { var value = a0.getData('channelIds'); if (value != null) { value.forEach(_fun75957); } }); [].forEach(_fun75959); } return []; function _fun75956(a0) { // fn#75956, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9862:6096, offset: 0x01dbf3fc, size: 47 bytes, params: 2, frame: 11 const data = a0.getData('channelIds'); if (data != null) { data.forEach(_fun75957); } function _fun75957(a0) { // fn#75957, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9862:6150, offset: 0x016c162d, size: 22 bytes, params: 2, frame: 11 return env1_1.push(a0); } } function getPrivateChannelRecipientsMaybeAddUser(a0) { // fn#75958, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9862:6185, owner: getUserAutocompletions.getPrivateChannelRecipients.maybeAddUser, offset: 0x01dbf42b, size: 77 bytes, params: 2, frame: 13 var r1; var binding; const value = a0 == null; if (value) { r1 = value; } else { binding = env0_0; r1 = binding.has(a0.id); } if (!r1) { binding = Module00057; binding.push(a0); binding = env0_0; binding.add(a0.id); } } function _fun75959(a0) { // fn#75959, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9862:6259, offset: 0x01dbf478, size: 122 bytes, params: 2, frame: 13 var environment; const value = environment.__proto__.__proto__; const channel = ChannelStore.getChannel(a0); if (channel != null) { if (channel.isDM()) { getPrivateChannelRecipientsMaybeAddUser(UserStore.getUser(channel.getRecipientId())); } else if (channel.isGroupDM()) { channel.recipients.forEach(_fun75960); } } function _fun75960(a0) { // fn#75960, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9862:6407, offset: 0x01dbf4f2, size: 37 bytes, params: 2, frame: 11 const value = environment.__proto__.__proto__.__proto__; getPrivateChannelRecipientsMaybeAddUser(UserStore.getUser(a0)); } } } function _fun75961({record}) { // fn#75961, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9862:6814, offset: 0x01dbf517, size: 86 bytes, params: 2, frame: 14 const value = environment.__proto__; const relationshipStoreBinding = RelationshipStore; return !(relationshipStoreBinding.isBlockedOrIgnored(record.id) || env0_4 && record.id === Module00057?.id); } function _fun75962({record}) { // fn#75962, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9862:6898, offset: 0x01dbf56d, size: 57 bytes, params: 2, frame: 13 const object = {}; const value = environment.__proto__; object.text = (importDefault(3995) /* metro dependency 3995: UserUtils */).getUserTag(record); object.user = record; return object; } } function getChannelAutocompletions({query, searchContext, maxResults}) { // fn#75963, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9862:6992, offset: 0x01dbf5a6, size: 335 bytes, params: 2, frame: 19 var r6; let value = query.trim(); if (value.startsWith('"')) { if (value.endsWith('"')) { value = value.substring(1, value.length - 1); value = value.replaceAll(RegExp('\\\\(.)', 'g'), function(a0, a1) { return a1; }); r6 = value; } else if (value.startsWith('"')) { value = value.substring(1); value = value.replaceAll(RegExp('\\\\(.)', 'g'), _fun75965); r6 = value; } else { r6 = value; } } else if (value.startsWith('"')) { value = value.substring(1); value = value.replaceAll(RegExp('\\\\(.)', 'g'), _fun75965); r6 = value; } else { r6 = value; } const r4 = r6[0] !== '#' ? r6 : r6.substring(1); return SearchUtilsModule.isGuildLikeSearchContext(searchContext) ? getGuildChannelAutocompletions(r4, searchContext.guildId, maxResults) : searchContext.type !== SearchTypes.DMS || StreamerModeStore.hidePersonalInformation ? [] : getPrivateChannelAutocompletions(r4, maxResults, false); function getGuildChannelAutocompletions(a0, a1, a2) { // fn#75966, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9862:7317, owner: getChannelAutocompletions.getGuildChannelAutocompletions, offset: 0x01dbf6f5, size: 439 bytes, params: 4, frame: 25 var environment; var value5; let value = environment.__proto__; const defaultImport = AutocompleteUtils; let queryChannels = defaultImport.queryChannels; let object = {'query': null, 'type': null, 'guildId': null, 'limit': Infinity, 'allowEmptyQueries': true, 'allowSnowflake': true, 'includeAllThreads': true}; object.query = a0; object.type = GUILD_SELECTABLE_CHANNELS_KEY; object.guildId = a1; let getBoosterMap = AutocompleteUtilsModule.getBoosterMap; const AutocompleterResultTypes = (AutocompleterModule).AutocompleterResultTypes; const TEXT_CHANNEL = AutocompleterResultTypes.TEXT_CHANNEL; object.boosters = Reflect.apply(getBoosterMap, AutocompleteUtilsModule, [TEXT_CHANNEL]); const value2 = Reflect.apply(queryChannels, defaultImport, [object]); const concat = value2.concat; const defaultImport2 = defaultImport; queryChannels = defaultImport2.queryChannels; object = {'query': null, 'type': null, 'guildId': null, 'limit': Infinity, 'allowEmptyQueries': true, 'allowSnowflake': true}; object.query = a0; object.type = GUILD_VOCAL_CHANNELS_KEY; object.guildId = a1; getBoosterMap = AutocompleteUtilsModule.getBoosterMap; const VOICE_CHANNEL = AutocompleterResultTypes.VOICE_CHANNEL; object.boosters = Reflect.apply(getBoosterMap, AutocompleteUtilsModule, [VOICE_CHANNEL]); const value4 = Reflect.apply(concat, value2, [Reflect.apply(queryChannels, defaultImport2, [object])]).map(function(a0) { return a0.record; }); if (a0.length === 0) { var env0_0 = SelectedChannelStore.getChannelId(a1); value5 = value4.find(_fun75968); if (value5 != null) { value4.splice(value4.indexOf(value5), 1); value4.unshift(value5); } } const env0_1 = GuildChannelStore.getTextChannelNameDisambiguations(a1); value = (importDefault(22) /* metro dependency 22 */)(value4); value = value.take(a2); value = value.map(_fun75969); return value.value(); function _fun75968({id}) { // fn#75968, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9862:7834, offset: 0x00db0c48, size: 21 bytes, params: 2, frame: 2 return id === env0_0; } function _fun75969(a0) { // fn#75969, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9862:7974, offset: 0x01dbf8ac, size: 128 bytes, params: 2, frame: 18 var r4; var value2; var value; const name = env0_1[a0.id]?.name; if (name != null) { r4 = name; } else { value2 = environment.__proto__.__proto__; value = require(4805) /* metro dependency 4805: useChannelName */; value = value.computeChannelName(a0, UserStore, RelationshipStore); r4 = value; } return {text: '' + r4, channel: a0, key: a0.id}; } } function getPrivateChannelAutocompletions(a0, a1, a2) { // fn#75970, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9862:8174, owner: getChannelAutocompletions.getPrivateChannelAutocompletions, offset: 0x01dbf92c, size: 308 bytes, params: 4, frame: 24 var environment; let value = environment.__proto__; const defaultImport = AutocompleteUtils; const queryGroupDMs = defaultImport.queryGroupDMs; let getBoosterMap = (AutocompleteUtilsModule).getBoosterMap; const AutocompleterResultTypes = (require(7234) /* metro dependency 7234: autocompleter */).AutocompleterResultTypes; const GROUP_DM = AutocompleterResultTypes.GROUP_DM; value = Reflect.apply(queryGroupDMs, defaultImport, [{query: a0, limit: a1, fuzzy: true, boosters: Reflect.apply(getBoosterMap, value, [GROUP_DM])}]); const defaultImport2 = defaultImport; const queryDMChannels = defaultImport2.queryDMChannels; getBoosterMap = AutocompleteUtilsModule.getBoosterMap; const USER = AutocompleterResultTypes.USER; value = (importDefault(22) /* metro dependency 22 */)(value.concat(Reflect.apply(queryDMChannels, defaultImport2, [{query: a0, limit: a1, boosters: Reflect.apply(getBoosterMap, AutocompleteUtilsModule, [USER])}]))); value = value.sort((require(7234) /* metro dependency 7234: autocompleter */).sortByMatchScore); value = value.map(function({record, comparator}) { return {text: comparator, channel: record, key: record?.id}; }); value = value.filter(function(a0) { return a0.text != null && a0.channel != null && a0.key != null; }); value = value.value(); a0.length; return value.slice(0, a1); } } function makeSearchTokenConfigs(a0) { // fn#75973, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9862:9265, offset: 0x01dbfab7, size: 4166 bytes, params: 2, frame: 31 const env0_0 = a0; const intl = (IndexNativeModule).intl; let string = intl.string; const t = (IndexNativeModule).t; const items3 = [Reflect.apply(string, intl, [t.tPZo4p])]; string = intl.string; const JL7sRS = t.JL7sRS; items3[1] = Reflect.apply(string, intl, [JL7sRS]); string = intl.string; const WjkIKU = t.WjkIKU; items3[2] = Reflect.apply(string, intl, [WjkIKU]); string = intl.string; const TNLcpx = t.TNLcpx; const items2 = [Reflect.apply(string, intl, [TNLcpx])]; string = intl.string; const XM9XGP = t.XM9XGP; items2[1] = Reflect.apply(string, intl, [XM9XGP]); string = intl.string; const ZNR2fi = t.ZNR2fi; items2[2] = Reflect.apply(string, intl, [ZNR2fi]); items2[3] = intl.string(t['AV/v6i']); items2[4] = intl.string(t['20uQR3']); string = intl.string; const F8Wf0e = t.F8Wf0e; items2[5] = Reflect.apply(string, intl, [F8Wf0e]); string = intl.string; const L4lxyE = t.L4lxyE; items2[6] = Reflect.apply(string, intl, [L4lxyE]); string = intl.string; const PJgX2h = t.PJgX2h; items2[7] = Reflect.apply(string, intl, [PJgX2h]); items2[8] = intl.string(t.nrpA5E); const object = {}; let FILTER_FROM = SearchTokenTypes.FILTER_FROM; const object2 = {}; const buildFilterRegexBinding = buildFilterRegex; object2.regex = buildFilterRegexBinding(intl.string(t['1TUdFo'])); let FILTER = env0_23.FILTER; object2.componentType = FILTER; const buildKeyBinding = buildKey; object2.key = buildKeyBinding(intl.string(t['1TUdFo'])); object2.plainText = intl.string(t['1TUdFo']); object2.validator = validator; const getUserAutocompletionsBinding = getUserAutocompletions; object2.getAutocompletions = getUserAutocompletionsBinding; object[FILTER_FROM] = object2; const ANSWER_USERNAME_FROM = SearchTokenTypes.ANSWER_USERNAME_FROM; FILTER_FROM = SearchTokenTypes.FILTER_FROM; const isValidUserAutocompleteBinding = isValidUserAutocomplete; let ANSWER = env0_23.ANSWER; object[ANSWER_USERNAME_FROM] = {follows: [FILTER_FROM], regex: env0_22, validator: isValidUserAutocompleteBinding, mutable: true, componentType: ANSWER, queryKey: 'author_id'}; let FILTER_MENTIONS = SearchTokenTypes.FILTER_MENTIONS; const object4 = {}; object4.regex = buildFilterRegexBinding(intl.string(t['i96lO+'])); FILTER = env0_23.FILTER; object4.componentType = FILTER; object4.key = buildKeyBinding(intl.string(t['i96lO+'])); object4.plainText = intl.string(t['i96lO+']); object4.validator = validator_75975; object4.getAutocompletions = getUserAutocompletionsBinding; object[FILTER_MENTIONS] = object4; const ANSWER_USERNAME_MENTIONS = SearchTokenTypes.ANSWER_USERNAME_MENTIONS; FILTER_MENTIONS = SearchTokenTypes.FILTER_MENTIONS; ANSWER = env0_23.ANSWER; object[ANSWER_USERNAME_MENTIONS] = {follows: [FILTER_MENTIONS], regex: env0_22, validator: isValidUserAutocompleteBinding, mutable: true, componentType: ANSWER, queryKey: 'mentions'}; let FILTER_HAS = SearchTokenTypes.FILTER_HAS; const object6 = {}; string = intl.string; let CqCvir = t.CqCvir; object6.regex = buildFilterRegexBinding(Reflect.apply(string, intl, [CqCvir])); FILTER = env0_23.FILTER; object6.componentType = FILTER; string = intl.string; CqCvir = t.CqCvir; object6.key = buildKeyBinding(Reflect.apply(string, intl, [CqCvir])); string = intl.string; CqCvir = t.CqCvir; object6.plainText = Reflect.apply(string, intl, [CqCvir]); object6.getAutocompletions = getAutocompletions; object[FILTER_HAS] = object6; const ANSWER_HAS = SearchTokenTypes.ANSWER_HAS; const object7 = {}; object7.regex = (require(9679) /* metro dependency 9679: SearchTokensUtils */).makeRegexForOptionsWithNegation(items2); FILTER_HAS = SearchTokenTypes.FILTER_HAS; object7.follows = [FILTER_HAS]; object7.validator = isValidHasAutocomplete; ANSWER = env0_23.ANSWER; object7.componentType = ANSWER; object7.queryKey = 'has'; object[ANSWER_HAS] = object7; let FILTER_LINK_FROM = SearchTokenTypes.FILTER_LINK_FROM; const object8 = {}; string = intl.string; let RpRAZD = t.RpRAZD; object8.regex = buildFilterRegexBinding(Reflect.apply(string, intl, [RpRAZD])); string = intl.string; RpRAZD = t.RpRAZD; object8.key = buildKeyBinding(Reflect.apply(string, intl, [RpRAZD])); string = intl.string; RpRAZD = t.RpRAZD; object8.plainText = Reflect.apply(string, intl, [RpRAZD]); FILTER = env0_23.FILTER; object8.componentType = FILTER; object[FILTER_LINK_FROM] = object8; const ANSWER_LINK_FROM = SearchTokenTypes.ANSWER_LINK_FROM; const GENERIC_REGEX = (require(9679) /* metro dependency 9679: SearchTokensUtils */).GENERIC_REGEX; FILTER_LINK_FROM = SearchTokenTypes.FILTER_LINK_FROM; ANSWER = env0_23.ANSWER; object[ANSWER_LINK_FROM] = {regex: GENERIC_REGEX, follows: [FILTER_LINK_FROM], mutable: true, componentType: ANSWER, queryKey: 'link_hostname'}; let FILTER_FILE_TYPE = SearchTokenTypes.FILTER_FILE_TYPE; const object10 = {}; string = intl.string; let TMNjFm = t.TMNjFm; object10.regex = buildFilterRegexBinding(Reflect.apply(string, intl, [TMNjFm])); string = intl.string; TMNjFm = t.TMNjFm; object10.key = buildKeyBinding(Reflect.apply(string, intl, [TMNjFm])); string = intl.string; TMNjFm = t.TMNjFm; object10.plainText = Reflect.apply(string, intl, [TMNjFm]); FILTER = env0_23.FILTER; object10.componentType = FILTER; object[FILTER_FILE_TYPE] = object10; const ANSWER_FILE_TYPE = SearchTokenTypes.ANSWER_FILE_TYPE; FILTER_FILE_TYPE = SearchTokenTypes.FILTER_FILE_TYPE; ANSWER = env0_23.ANSWER; object[ANSWER_FILE_TYPE] = {regex: GENERIC_REGEX, follows: [FILTER_FILE_TYPE], mutable: true, componentType: ANSWER, queryKey: 'attachment_extension'}; let FILTER_FILE_NAME = SearchTokenTypes.FILTER_FILE_NAME; const object12 = {}; object12.regex = buildFilterRegexBinding(intl.string(t['5xtLRC'])); object12.key = buildKeyBinding(intl.string(t['5xtLRC'])); object12.plainText = intl.string(t['5xtLRC']); FILTER = env0_23.FILTER; object12.componentType = FILTER; object[FILTER_FILE_NAME] = object12; const ANSWER_FILE_NAME = SearchTokenTypes.ANSWER_FILE_NAME; FILTER_FILE_NAME = SearchTokenTypes.FILTER_FILE_NAME; ANSWER = env0_23.ANSWER; object[ANSWER_FILE_NAME] = {regex: GENERIC_REGEX, follows: [FILTER_FILE_NAME], mutable: true, componentType: ANSWER, queryKey: 'attachment_filename'}; let FILTER_BEFORE = SearchTokenTypes.FILTER_BEFORE; const object14 = {}; object14.regex = buildFilterRegexBinding(intl.string(t['qZ+7BA'])); FILTER = env0_23.FILTER; object14.componentType = FILTER; object14.key = buildKeyBinding(intl.string(t['qZ+7BA'])); object14.plainText = intl.string(t['qZ+7BA']); object14.getAutocompletions = function({query, maxResults}) { return getDateAutocompletions(query, maxResults, SearchTokenTypes.FILTER_BEFORE); }; object[FILTER_BEFORE] = object14; let FILTER_ON = SearchTokenTypes.FILTER_ON; const object15 = {}; object15.regex = buildFilterRegexBinding('(' + intl.string(t.tIxkOo) + '|' + intl.string(t.h2NzSd) + ')'); FILTER = env0_23.FILTER; object15.componentType = FILTER; object15.key = buildKeyBinding(intl.string(t.h2NzSd)); object15.plainText = intl.string(t.h2NzSd); object15.getAutocompletions = function({query, maxResults}) { return getDateAutocompletions(query, maxResults, SearchTokenTypes.FILTER_ON); }; object[FILTER_ON] = object15; let FILTER_AFTER = SearchTokenTypes.FILTER_AFTER; const object16 = {}; string = intl.string; let KSDx7M = t.KSDx7M; object16.regex = buildFilterRegexBinding(Reflect.apply(string, intl, [KSDx7M])); FILTER = env0_23.FILTER; object16.componentType = FILTER; string = intl.string; KSDx7M = t.KSDx7M; object16.key = buildKeyBinding(Reflect.apply(string, intl, [KSDx7M])); string = intl.string; KSDx7M = t.KSDx7M; object16.plainText = Reflect.apply(string, intl, [KSDx7M]); object16.getAutocompletions = function({query, maxResults}) { return getDateAutocompletions(query, maxResults, SearchTokenTypes.FILTER_AFTER); }; object[FILTER_AFTER] = object16; const ANSWER_BEFORE = SearchTokenTypes.ANSWER_BEFORE; FILTER_BEFORE = SearchTokenTypes.FILTER_BEFORE; ANSWER = env0_23.ANSWER; object[ANSWER_BEFORE] = {regex: env0_20, follows: [FILTER_BEFORE], componentType: ANSWER, mutable: true, validator: function(a0) { return dateValidator(a0, 'before'); }}; const ANSWER_ON = SearchTokenTypes.ANSWER_ON; FILTER_ON = SearchTokenTypes.FILTER_ON; ANSWER = env0_23.ANSWER; object[ANSWER_ON] = {regex: env0_20, follows: [FILTER_ON], componentType: ANSWER, mutable: true, validator: function(a0) { return dateValidator(a0, 'on'); }}; const ANSWER_AFTER = SearchTokenTypes.ANSWER_AFTER; FILTER_AFTER = SearchTokenTypes.FILTER_AFTER; ANSWER = env0_23.ANSWER; object[ANSWER_AFTER] = {regex: env0_20, follows: [FILTER_AFTER], componentType: ANSWER, mutable: true, validator: function(a0) { return dateValidator(a0, 'after'); }}; let FILTER_IN = SearchTokenTypes.FILTER_IN; const object20 = {}; string = intl.string; let WNpFHa = t.WNpFHa; object20.regex = buildFilterRegexBinding(Reflect.apply(string, intl, [WNpFHa])); FILTER = env0_23.FILTER; object20.componentType = FILTER; string = intl.string; WNpFHa = t.WNpFHa; object20.key = buildKeyBinding(Reflect.apply(string, intl, [WNpFHa])); string = intl.string; WNpFHa = t.WNpFHa; object20.plainText = Reflect.apply(string, intl, [WNpFHa]); object20.validator = validator_75983; object20.getAutocompletions = getChannelAutocompletions; object[FILTER_IN] = object20; const ANSWER_IN = SearchTokenTypes.ANSWER_IN; const ANSWER_IN_REGEX = (require(9679) /* metro dependency 9679: SearchTokensUtils */).ANSWER_IN_REGEX; FILTER_IN = SearchTokenTypes.FILTER_IN; ANSWER = env0_23.ANSWER; object[ANSWER_IN] = {regex: ANSWER_IN_REGEX, mutable: true, follows: [FILTER_IN], componentType: ANSWER, validator: validator_75984, queryKey: 'channel_id'}; let FILTER_PINNED = SearchTokenTypes.FILTER_PINNED; const object22 = {}; object22.regex = buildFilterRegexBinding(intl.string(t['0B74eY'])); FILTER = env0_23.FILTER; object22.componentType = FILTER; object22.key = buildKeyBinding(intl.string(t['0B74eY'])); object22.plainText = intl.string(t['0B74eY']); object22.getAutocompletions = function() { return [{text: 'true'}, {text: 'false'}]; }; object[FILTER_PINNED] = object22; const ANSWER_PINNED = SearchTokenTypes.ANSWER_PINNED; ANSWER = env0_23.ANSWER; FILTER_PINNED = SearchTokenTypes.FILTER_PINNED; object[ANSWER_PINNED] = {regex: env0_21, componentType: ANSWER, follows: [FILTER_PINNED], queryKey: 'pinned', validator: isValidPinnedAutocomplete}; let FILTER_AUTHOR_TYPE = SearchTokenTypes.FILTER_AUTHOR_TYPE; const object24 = {}; object24.regex = buildFilterRegexBinding(intl.string(t.us8IQi)); FILTER = env0_23.FILTER; object24.componentType = FILTER; object24.key = buildKeyBinding(intl.string(t.us8IQi)); object24.plainText = intl.string(t.us8IQi); object24.getAutocompletions = getAutocompletions_75986; object[FILTER_AUTHOR_TYPE] = object24; const ANSWER_AUTHOR_TYPE = SearchTokenTypes.ANSWER_AUTHOR_TYPE; const object25 = {}; object25.regex = (require(9679) /* metro dependency 9679: SearchTokensUtils */).makeRegexForOptionsWithNegation(items3); FILTER_AUTHOR_TYPE = SearchTokenTypes.FILTER_AUTHOR_TYPE; object25.follows = [FILTER_AUTHOR_TYPE]; object25.validator = isValidAuthorTypeAutocomplete; ANSWER = env0_23.ANSWER; object25.componentType = ANSWER; object25.queryKey = 'author_type'; object[ANSWER_AUTHOR_TYPE] = object25; return object; function makeSearchTokenConfigsValidator() { // fn#75974, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9862:10032, owner: makeSearchTokenConfigs.validator, offset: 0x01dc0afd, size: 37 bytes, params: 1, frame: 11 const value = environment.__proto__; return (SearchTokenStreamerModeUtilsModule).isFromUserFilterSupported(); } function makeSearchTokenConfigsValidator_75975() { // fn#75975, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9862:10495, owner: makeSearchTokenConfigs.validator, offset: 0x01dc0b22, size: 37 bytes, params: 1, frame: 11 const value = environment.__proto__; return (SearchTokenStreamerModeUtilsModule).isMentionsUserFilterSupported(); } function makeSearchTokenConfigsGetAutocompletions({query, maxResults}) { // fn#75976, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9862:10964, owner: makeSearchTokenConfigs.getAutocompletions, offset: 0x01dc0b47, size: 40 bytes, params: 2, frame: 15 return genericSearch(query, maxResults, env0_2); } function makeSearchTokenConfigsValidator_75983() { // fn#75983, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9862:13788, owner: makeSearchTokenConfigs.validator, offset: 0x01dc0c38, size: 81 bytes, params: 1, frame: 13 var r3; var r0; var value; if (env0_0 != null) { r3 = env0_0; } else { value = environment.__proto__; value = SearchAutocompleteStore.getSelectedSearchContext(); r3 = value; } value = r3 != null; if (value) { value = environment.__proto__; value = require(9680) /* metro dependency 9680: SearchTokenStreamerModeUtils */; value = value.isInChannelFilterSupported(r3); r0 = value; } else { r0 = value; } return r0; } function makeSearchTokenConfigsValidator_75984(a0) { // fn#75984, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9862:14052, owner: makeSearchTokenConfigs.validator, offset: 0x01dc0c89, size: 63 bytes, params: 2, frame: 14 var r4; var r0; var value; if (env0_0 != null) { r4 = env0_0; } else { value = environment.__proto__; value = SearchAutocompleteStore.getSelectedSearchContext(); r4 = value; } value = r4 != null; if (value) { value = environment.__proto__; value = isValidChannelAutocomplete(a0, r4); r0 = value; } else { r0 = value; } return r0; } function makeSearchTokenConfigsGetAutocompletions_75986({query, maxResults}) { // fn#75986, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9862:14812, owner: makeSearchTokenConfigs.getAutocompletions, offset: 0x01dc0cea, size: 40 bytes, params: 2, frame: 15 return genericSearch(query, maxResults, env0_1); } } function getLocalizedHasAnswer(a0) { // fn#75987, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9862:15399, offset: 0x01dc0d12, size: 28 bytes, params: 2, frame: 13 return getLocalizedAnswer(a0, getHasMap()); } function getLocalizedAuthorTypeAnswer(a0) { // fn#75988, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9862:15506, offset: 0x01dc0d2e, size: 28 bytes, params: 2, frame: 13 return getLocalizedAnswer(a0, getAuthorTypeMap()); } function rebuildSearchTokenConfigs() { // fn#75991, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9862:15923, offset: 0x01dc0d98, size: 38 bytes, params: 1, frame: 14 const Object = global.Object; Object.assign(env0_24, makeSearchTokenConfigs()); } function isMeAutcompleteAnswer(a0) { // fn#75993, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9862:16107, offset: 0x01dc0dd4, size: 165 bytes, params: 2, frame: 17 var r0; if (a0.length === 0) { return false; } let value = a0.toLowerCase(); value = value.replace(RegExp('^@', ''), ''); const intl = (IndexNativeModule).intl; const string = intl.string; const Qf3ptv = (IndexNativeModule).t.Qf3ptv; const value4 = Reflect.apply(string, intl, [Qf3ptv]).startsWith(value); if (value4) { r0 = value4; } else { value = ME.substring(1).startsWith(value); r0 = value; } return r0; } function isValidFilterAnswerForSubmit(a0, a1) { // fn#75994, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9862:16328, offset: 0x01dc0e79, size: 199 bytes, params: 3, frame: 16 const property = env0_25[a0]; if (property == null) { return true; } const Token = (QueryTokenizerModule).Token; const token = new Token(['filter:' + a1, a1], property); const ANSWER_HAS = SearchTokenTypes.ANSWER_HAS; if (ANSWER_HAS === property) { return isValidHasAutocomplete(token); } const ANSWER_AUTHOR_TYPE = SearchTokenTypes.ANSWER_AUTHOR_TYPE; if (ANSWER_AUTHOR_TYPE === property) { return isValidAuthorTypeAutocomplete(token); } const ANSWER_PINNED = SearchTokenTypes.ANSWER_PINNED; if (ANSWER_PINNED === property) { return isValidPinnedAutocomplete(token); } return false; } } function _fun75965(a0, a1) { // fn#75965, offset: 0x00c6b597, size: 5 bytes, params: 3, frame: 1 return a1; } global.__d(_fun75908, 9676, [57, 1379, 1935, 3793, 1934, 3996, 1878, 9677, 9678, 661, 3738, 22, 1244, 4805, 3995, 9675, 9679, 6590, 6526, 7234, 9680, 9681, 2]) /* metro module 9676, dependencies: [57, 1379, 1935, 3793, 1934, 3996, 1878, 9677, 9678, 661, 3738, 22, 1244, 4805, 3995, 9675, 9679, 6590, 6526, 7234, 9680, 9681, 2] */;