Files
discord-decomp/sources/utils/native/parseURL.tsx
T
2026-07-28 01:06:53 +03:00

1086 lines
56 KiB
TypeScript

/* Metro module 4093; source: utils/native/parseURL.tsx; dependencies: [57, 661, 663, 4094, 4095, 1468, 3855, 1473, 4096, 4101, 4127, 4129, 4245, 1471, 4246, 4120, 4247, 1581, 477, 4248, 683, 490, 4253, 2] */
import Module00057 from '../../by-id/module-00057.js'; /* Metro dependency 57 */
import Module01473 from '../../by-id/module-01473.js'; /* Metro dependency 1473 */
import Module03855 from '../../by-id/module-03855.js'; /* Metro dependency 3855 */
import * as FileImportTrackerModule from '../../by-id/module-00002-FileImportTracker.js'; /* Metro dependency 2 */
import * as ConstantsModule from '../../Constants.tsx'; /* Metro dependency 661 */
import * as MobileNativeUpdateConstantsModule from '../../modules/mobile_native_updater/MobileNativeUpdateConstants.tsx'; /* Metro dependency 4094 */
import * as FindCodedLinksModule from '../../modules/coded_links/findCodedLinks.tsx'; /* Metro dependency 4096 */
import * as CodedLinkModule from '../../modules/coded_links/CodedLink.tsx'; /* Metro dependency 4101 */
import * as GiftCodeUtilsModule from '../GiftCodeUtils.tsx'; /* Metro dependency 4129 */
import * as QRLoginUtilsModule from '../../modules/remote_auth/QRLoginUtils.tsx'; /* Metro dependency 4245 */
function _fun33539(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#33539, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4251:6, offset: 0x01031c3f, size: 551 bytes, params: 8, frame: 19
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
let value = ConstantsModule;
const env0_4 = value.AnalyticEvents;
const env0_5 = value.GuildSettingsSections;
const env0_6 = value.GuildSettingsSubsections;
const env0_7 = value.LinkingTypes;
value = require(663) /* metro dependency 663: CollectiblesShopConstants */;
const env0_8 = value.CollectibleShopTab;
const env0_9 = value.CollectiblesMobileShopScreen;
value = require(4095) /* metro dependency 4095: PaymentConstants */;
const env0_11 = value.MobileWebRedirectCheckoutDeepLinkActions;
const env0_12 = value.MobileWebRedirectCheckoutDeepLinkQueryKeys;
const env0_13 = RegExp('feature\\/([\\w-]+)', '');
const env0_14 = RegExp('feature\\/boost\\/([0-9]+)', '');
const env0_15 = RegExp('users\\/(\\d+)', '');
const env0_16 = RegExp('(?:connect|oauth2)\\/authorize', '');
const env0_17 = RegExp('login\\/one-time', '');
const env0_18 = RegExp('promos\\.discord\\.gg', '');
const env0_19 = RegExp('mweb-handoff', '');
const env0_20 = RegExp('connections\\/(xbox|playstation|playstation-stg|crunchyroll)\\/link', '');
const env0_21 = RegExp('connections\\/([a-z-]+)', '');
const env0_22 = RegExp('guilds\\/(\\d+)\\/settings(?:\\/([a-z-]+)(?:\\/([a-z-]+))?)?', '');
const env0_23 = RegExp('guilds\\/settings(?:\\/([a-z-]+)(?:\\/([a-z-]+))?)?', '');
const env0_24 = RegExp('activate', '');
const env0_25 = RegExp('quests\\/(\\d+)', '');
const env0_26 = RegExp('quest-preview\\/(\\d+)', '');
const env0_27 = RegExp('quest-home', '');
const env0_28 = RegExp('subscriptions\\/(\\d+)', '');
(FileImportTrackerModule).fileFinishedImporting('utils/native/parseURL.tsx');
exports.default = parseURL;
function parseQuery(a0) { // fn#33540, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4251:868, offset: 0x01031e66, size: 100 bytes, params: 2, frame: 13
var environment;
var value;
var property;
var Object;
var fromEntries;
var Object2;
var closure;
var error;
try {
value = environment;
property = dependencyMap[5];
value = importDefault(property);
value = value.parse(a0);
Object = global.Object;
fromEntries = Object.fromEntries;
Object2 = global.Object;
value = Object2.entries(value);
closure = function(a0) {
var r0;
var r2;
var r3;
var item3;
var value3;
var iterator = a0[Symbol.iterator]();
var iterator2 = iterator.next;
var item2 = Reflect.apply(iterator2, iterator, []);
var item = item2.value;
item2 = item2.done ? undefined : iterator;
var value = undefined;
var value2 = item2 === value;
var 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();
}
var items = [r1];
items[1] = global.Array.isArray(r3) ? r3[0] : r3;
return items;
};
value = value.map(closure);
value = Reflect.apply(fromEntries, Object, [value]);
} catch (error) {
return {};
}
return value;
}
function parseURL(a0) { // fn#33542, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4251:1096, offset: 0x01031f35, size: 5890 bytes, params: 2, frame: 53
var environment;
var r28;
var r11;
var r7;
var r30;
var r33;
var r36;
var r26;
var r29;
var host;
var type;
const CodedLinkType = (CodedLinkModule).CodedLinkType;
var BUILD_OVERRIDE;
var MANUAL_BUILD_OVERRIDE;
var EXPERIMENT;
var EVENT;
var CHANNEL_LINK;
var APP_DIRECTORY_PROFILE;
var ACTIVITY_BOOKMARK;
var EMBEDDED_ACTIVITY_INVITE;
var GUILD_PRODUCT;
var SERVER_SHOP;
var SOCIAL_LAYER_STOREFRONT;
var SOCIAL_LAYER_STOREFRONT_APP;
var QUESTS_EMBED;
var APP_DIRECTORY_STOREFRONT;
var APP_DIRECTORY_STOREFRONT_SKU;
var APP_OAUTH2_LINK;
var COLLECTIBLES_SHOP;
var Error;
var HermesInternal;
var concat;
var moduleValue2;
var isVirtualCurrencyEnabled;
var enabled;
var code;
var split;
var value7;
var value8;
var property;
var property2;
var ORBS;
var FEATURED_PAGE;
var object;
var object2;
var SHOP;
var defaultImport4;
var defaultImport5;
var isDiscordLocalhost;
var value9;
var value10;
var match;
var value11;
var value12;
var value13;
var moduleValue6;
var parseOAuth2AuthorizeProps;
var oAuth2AuthorizeProps;
var value14;
var value15;
var SUBSCRIPTION_SETTINGS;
var quest_id;
var QUEST_PREVIEW_TOOL;
var BOOST_SETTINGS;
var CONNECTED_GAMES;
var section;
var NITRO_HOME;
var GIFT;
var query3;
var userId;
var fingerprint2;
var moduleValue7;
var getSecureFramesDeeplinkExperiment;
var DAVE_PROTOCOL_VERIFICATION;
var moduleValue8;
var isIOS;
var query4;
var text;
var channelId;
var shareId;
var attachmentManifest;
var JSON;
var value16;
var Array;
var isArray;
var value17;
var SHARE;
var AUTHORIZED_APPS;
var moduleValue9;
var isMobileWebRedirectCheckoutEnabled;
var isMobileWebRedirectCheckoutEnabled2;
var moduleValue10;
var isMetaQuest;
var value18;
var query5;
var DEEP_LINK_ACTION;
var GUILD_ID;
var property3;
var MOBILE_WEB_REDIRECT_CHECKOUT;
var DEFAULT;
var ACCOUNT_STANDING;
var promo_url;
var FEATURE_PROMO_URL;
var FAMILY_CENTER;
var source;
var CONNECTIONS;
var ICYMI;
var query6;
var guild_id;
var highlight_channel_id;
var highlight_message_id;
var GUILD_HOME;
var SESSION_MANAGEMENT;
var query7;
var channel_id;
var user_id;
var via;
var action;
var VOICE_CHANNEL;
var EDIT_PROFILE;
var FRIENDS;
var ADD_FRIENDS;
var CONTACT_SYNC;
var COMPOSE_MESSAGE;
var moduleValue11;
var tryParseEventDetailsPath;
var value19;
var value20;
var value21;
var value22;
var value23;
var value24;
var url;
var NONE;
var MOBILE_NATIVE_UPDATE;
var PROMOTIONS;
var decodeURIComponent;
var value25;
var property4;
var feature;
var object8;
var value26;
var property5;
var property6;
var object9;
var value27;
var query9;
var query10;
var key;
var redirect;
var URL;
var location;
var window;
var GLOBAL_ENV;
var WEBAPP_ENDPOINT;
var value28;
var prototype;
var value29;
var uRL;
var value30;
var searchParams;
var append;
var MOBILE_WEB_HANDOFF;
var defaultImport10;
var track;
var MOBILE_WEB_HANDOFF_FAILURE;
var maybeExtractId;
var error;
var token;
var object11;
var object12;
var defaultImport11;
var ad_creative_ids;
var flat;
var value31;
var QUESTS;
var QUEST_HOME_PREVIEW;
var summaryId;
var object13;
var messageId;
let value = a1;
const value2 = undefined;
reducibleJoin2: while (true) {
if (value !== value2) {
r28 = value;
break reducibleJoin2;
}
value = false;
r28 = value;
break reducibleJoin2;
}
const closure = function(a0) {
return RegExp('^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$', 'i').test(a0);
};
value = environment;
const value3 = (Module03855).sanitizeUrl(a0);
const value4 = null;
if (value4 == value3) {
return {payload: {type: LinkingTypes.NONE}};
}
const value5 = (Module01473).parse(value3);
let protocol = value5.protocol;
const host2 = value5.host;
const hostname = value5.hostname;
const pathname = value5.pathname;
const query = value5.query;
let parseQueryBinding = parseQuery;
const value6 = '';
let {fingerprint, username, attemptId, installationId, custom_id, referrer_id, link_id, sort,
filter} = parseQueryBinding(value4 != query ? query : value6);
const codedLink = (FindCodedLinksModule).findCodedLink(value3);
if (value4 != codedLink) {
type = codedLink.type;
if (CodedLinkType.INVITE === type) {
return {fingerprint: fingerprint, attemptId: attemptId, installationId: installationId,
payload: {type: LinkingTypes.INVITE, inviteCode: codedLink.code, username: username,
deeplinkAttemptId: attemptId}};
}
if (CodedLinkType.TEMPLATE === type) {
return {fingerprint: fingerprint, attemptId: attemptId, installationId: installationId,
payload: {type: LinkingTypes.GUILD_TEMPLATE, guildTemplateCode: codedLink.code}};
}
BUILD_OVERRIDE = CodedLinkType.BUILD_OVERRIDE;
reducibleJoin32: while (true) {
reducibleJoin192: while (true) {
if (BUILD_OVERRIDE === type) {
break reducibleJoin192;
}
MANUAL_BUILD_OVERRIDE = CodedLinkType.MANUAL_BUILD_OVERRIDE;
if (MANUAL_BUILD_OVERRIDE === type) {
break reducibleJoin192;
}
EXPERIMENT = CodedLinkType.EXPERIMENT;
if (EXPERIMENT === type) {
break reducibleJoin32;
}
EVENT = CodedLinkType.EVENT;
if (EVENT === type) {
break reducibleJoin32;
}
CHANNEL_LINK = CodedLinkType.CHANNEL_LINK;
if (CHANNEL_LINK === type) {
break reducibleJoin32;
}
APP_DIRECTORY_PROFILE = CodedLinkType.APP_DIRECTORY_PROFILE;
if (APP_DIRECTORY_PROFILE === type) {
break reducibleJoin32;
}
ACTIVITY_BOOKMARK = CodedLinkType.ACTIVITY_BOOKMARK;
if (ACTIVITY_BOOKMARK === type) {
return {fingerprint: fingerprint, attemptId: attemptId, installationId: installationId,
payload: {type: LinkingTypes.ACTIVITY, applicationId: codedLink.code, customId: custom_id,
referrerId: referrer_id, linkId: link_id, isDeepLink: r28}};
}
EMBEDDED_ACTIVITY_INVITE = CodedLinkType.EMBEDDED_ACTIVITY_INVITE;
if (EMBEDDED_ACTIVITY_INVITE === type) {
break reducibleJoin32;
}
GUILD_PRODUCT = CodedLinkType.GUILD_PRODUCT;
if (GUILD_PRODUCT === type) {
break reducibleJoin32;
}
SERVER_SHOP = CodedLinkType.SERVER_SHOP;
if (SERVER_SHOP === type) {
break reducibleJoin32;
}
SOCIAL_LAYER_STOREFRONT = CodedLinkType.SOCIAL_LAYER_STOREFRONT;
if (SOCIAL_LAYER_STOREFRONT === type) {
break reducibleJoin32;
}
SOCIAL_LAYER_STOREFRONT_APP = CodedLinkType.SOCIAL_LAYER_STOREFRONT_APP;
if (SOCIAL_LAYER_STOREFRONT_APP === type) {
break reducibleJoin32;
}
QUESTS_EMBED = CodedLinkType.QUESTS_EMBED;
if (QUESTS_EMBED === type) {
break reducibleJoin32;
}
APP_DIRECTORY_STOREFRONT = CodedLinkType.APP_DIRECTORY_STOREFRONT;
if (APP_DIRECTORY_STOREFRONT === type) {
break reducibleJoin32;
}
APP_DIRECTORY_STOREFRONT_SKU = CodedLinkType.APP_DIRECTORY_STOREFRONT_SKU;
if (APP_DIRECTORY_STOREFRONT_SKU === type) {
break reducibleJoin32;
}
APP_OAUTH2_LINK = CodedLinkType.APP_OAUTH2_LINK;
if (APP_OAUTH2_LINK !== type) {
COLLECTIBLES_SHOP = CodedLinkType.COLLECTIBLES_SHOP;
if (COLLECTIBLES_SHOP === type) {
moduleValue2 = require(4127) /* metro dependency 4127: useVirtualCurrencyMobileEnabled */;
isVirtualCurrencyEnabled = moduleValue2.isVirtualCurrencyEnabled;
enabled = Reflect.apply(isVirtualCurrencyEnabled, moduleValue2, []).enabled;
code = codedLink.code;
split = code.split;
value7 = Reflect.apply(split, code, ['-']);
value8 = Module00057(value7, 2);
property = value8[0];
property2 = value8[1];
reducibleJoin29: while (true) {
reducibleJoin27: while (true) {
if (enabled) {
ORBS = CollectibleShopTab.ORBS;
if (property === ORBS) {
ORBS = CollectiblesMobileShopScreen.ORBS;
r11 = ORBS;
break reducibleJoin29;
}
break reducibleJoin27;
}
break reducibleJoin27;
}
FEATURED_PAGE = CollectiblesMobileShopScreen.FEATURED_PAGE;
r11 = FEATURED_PAGE;
break reducibleJoin29;
}
object = {fingerprint: fingerprint, attemptId: attemptId, installationId: installationId};
object2 = {};
SHOP = LinkingTypes.SHOP;
object2.type = SHOP;
object2.screen = r11;
r11 = value6 === property2 ? value2 : property2;
object2.skuId = r11;
object.payload = object2;
return object;
}
Error = global.Error;
type = codedLink.type;
HermesInternal = global.HermesInternal;
concat = HermesInternal.concat;
throw Error('Unknown coded link type: ' + type);
}
break reducibleJoin32;
}
BUILD_OVERRIDE = LinkingTypes.BUILD_OVERRIDE;
code = codedLink.code;
return {fingerprint: fingerprint, attemptId: attemptId, installationId: installationId,
payload: {type: BUILD_OVERRIDE, overrideUrl: code}};
}
}
const giftCodes = (GiftCodeUtilsModule).findGiftCodes(value3);
let length = giftCodes.length;
if (length > 0) {
return {fingerprint: fingerprint, attemptId: attemptId, installationId: installationId,
payload: {type: LinkingTypes.GIFT_CODE, giftCode: giftCodes[0]}};
}
const remoteAuthFingerprint = (QRLoginUtilsModule).findRemoteAuthFingerprint(host2,
pathname);
if (value4 != remoteAuthFingerprint) {
length = remoteAuthFingerprint.length;
reducibleJoin35: while (true) {
if (length > 0) {
return {fingerprint: fingerprint, attemptId: attemptId, installationId: installationId,
payload: {type: LinkingTypes.REMOTE_AUTH, remoteAuthFingerprint: remoteAuthFingerprint}};
}
break reducibleJoin35;
}
}
const defaultImport3 = importDefault(1471) /* metro dependency 1471: URLUtils */;
if (!defaultImport3.isDiscordHostname(host2)) {
defaultImport4 = defaultImport3;
reducibleJoin38: while (true) {
if (!defaultImport4.isDiscordProtocol(protocol)) {
defaultImport5 = importDefault(1471) /* metro dependency 1471: URLUtils */;
isDiscordLocalhost = defaultImport5.isDiscordLocalhost;
if (Reflect.apply(isDiscordLocalhost, defaultImport5, [host2, hostname])) {
break reducibleJoin38;
}
reducibleJoin142: while (true) {
if (value4 == host2) {
r26 = value2;
break reducibleJoin142;
}
match = host2.match;
value24 = Reflect.apply(match, host2, [env0_18]);
r26 = value24;
break reducibleJoin142;
}
if (value4 != r26) {
PROMOTIONS = LinkingTypes.PROMOTIONS;
r26 = {fingerprint: fingerprint, attemptId: attemptId, installationId: installationId,
payload: {type: PROMOTIONS,
url: value3}};
} else {
reducibleJoin145: while (true) {
if (value4 == UPDATE_CONFIG) {
host = value2;
break reducibleJoin145;
}
url = UPDATE_CONFIG.url;
host = url.host;
break reducibleJoin145;
}
if (host2 === host) {
MOBILE_NATIVE_UPDATE = LinkingTypes.MOBILE_NATIVE_UPDATE;
r26 = {fingerprint: fingerprint, attemptId: attemptId, installationId: installationId,
payload: {type: MOBILE_NATIVE_UPDATE, url: value3}};
} else {
NONE = LinkingTypes.NONE;
r26 = {fingerprint: fingerprint, attemptId: attemptId, installationId: installationId,
payload: {type: NONE}};
}
}
return r26;
}
break reducibleJoin38;
}
}
if (value4 != pathname) {
value9 = (require(4246) /* metro dependency 4246: LinkUtils */).tryParseDiceRollLink(pathname);
if (value4 != value9) {
return {fingerprint: fingerprint, attemptId: attemptId, installationId: installationId,
payload: {type: LinkingTypes.ROLL_DICE, guildId: value9.guildId, channelId: value9.channelId,
diceCount: value9.diceCount, diceSides: value9.diceSides}};
}
value10 = (require(4246) /* metro dependency 4246: LinkUtils */).tryParseChannelPath(pathname);
if (value4 != value10) {
summaryId = parseQuery(value4 != query ? query : value6).summaryId;
object = {fingerprint: fingerprint, attemptId: attemptId, installationId: installationId};
object13 = {};
messageId = value10.messageId;
object13.type = value4 != messageId ? LinkingTypes.MESSAGE : LinkingTypes.CHANNEL;
object13.guildId = value10.guildId;
object13.channelId = value10.channelId;
messageId = value10.messageId;
object13.messageId = messageId;
object13.summaryId = summaryId;
object.payload = object13;
return object;
}
value11 = pathname.match(env0_25);
reducibleJoin140: while (true) {
reducibleJoin45: while (true) {
if (value4 == value11) {
value12 = pathname.match(env0_26);
if (value4 == value12) {
break reducibleJoin45;
}
if (value12.length > 1) {
return {fingerprint: fingerprint, attemptId: attemptId, installationId: installationId,
payload: {type: LinkingTypes.QUEST_PREVIEW_TOOL, questId: value12[1]}};
}
break reducibleJoin45;
}
length = value11.length;
if (length > 1) {
return {fingerprint: fingerprint, attemptId: attemptId, installationId: installationId,
payload: {type: LinkingTypes.QUESTS, questId: value11[1], referrerId: referrer_id, sort: sort,
filter: filter}};
}
match = pathname.match;
value12 = Reflect.apply(match, pathname, [env0_26]);
if (value4 == value12) {
break reducibleJoin45;
}
length = value12.length;
if (length > 1) {
return {fingerprint: fingerprint, attemptId: attemptId, installationId: installationId,
payload: {type: LinkingTypes.QUEST_PREVIEW_TOOL, questId: value12[1]}};
}
break reducibleJoin45;
}
match = pathname.match;
if (value4 != Reflect.apply(match, pathname, [env0_27])) {
defaultImport11 = importDefault(1468) /* metro dependency 1468 */;
parse = defaultImport11.parse;
r7 = value4 != query ? query : value6;
ad_creative_ids = Reflect.apply(parse, defaultImport11, [r7]).ad_creative_ids;
reducibleJoin178: while (true) {
if (value4 != ad_creative_ids) {
r7 = ad_creative_ids;
break reducibleJoin178;
}
r7 = [];
break reducibleJoin178;
}
object = [r7];
flat = object.flat;
value31 = Reflect.apply(flat, object, []);
length = value31.length;
if (length > 0) {
QUEST_HOME_PREVIEW = LinkingTypes.QUEST_HOME_PREVIEW;
r7 = {fingerprint: fingerprint, attemptId: attemptId, installationId: installationId,
payload: {type: QUEST_HOME_PREVIEW, adCreativeIds: value31}};
} else {
QUESTS = LinkingTypes.QUESTS;
r7 = {fingerprint: fingerprint, attemptId: attemptId, installationId: installationId,
payload: {type: QUESTS,
referrerId: referrer_id, sort: sort, filter: filter}};
}
return r7;
}
match = pathname.match;
if (value4 != Reflect.apply(match, pathname, [env0_28])) {
return {fingerprint: fingerprint, attemptId: attemptId, installationId: installationId,
payload: {type: LinkingTypes.SUBSCRIPTION_SETTINGS}};
}
match = pathname.match;
value13 = Reflect.apply(match, pathname, [env0_15]);
if (value4 != value13) {
length = value13.length;
reducibleJoin49: while (true) {
if (length > 1) {
return {fingerprint: fingerprint, attemptId: attemptId, installationId: installationId,
payload: {type: LinkingTypes.USER_PROFILE, userId: value13[1]}};
}
break reducibleJoin49;
}
}
match = pathname.match;
if (value4 != Reflect.apply(match, pathname, [env0_16])) {
moduleValue6 = require(4120) /* metro dependency 4120: Authorize */;
parseOAuth2AuthorizeProps = moduleValue6.parseOAuth2AuthorizeProps;
r7 = value4 != query ? query : value6;
oAuth2AuthorizeProps = Reflect.apply(parseOAuth2AuthorizeProps, moduleValue6, [r7]);
reducibleJoin52: while (true) {
if (value4 != oAuth2AuthorizeProps) {
object = {fingerprint: fingerprint, attemptId: attemptId, installationId: installationId};
object11 = {};
object11.type = LinkingTypes.OAUTH2_AUTHORIZE;
object12 = {};
copyDataProperties(object12, oAuth2AuthorizeProps, undefined);
object12['wasDeepLink'] = r28;
object11.props = object12;
object.payload = object11;
return object;
}
break reducibleJoin52;
}
}
match = pathname.match;
if (value4 != Reflect.apply(match, pathname, [env0_17])) {
token = parseQuery(value4 != query ? query : value6).token;
return {fingerprint: fingerprint, attemptId: attemptId, installationId: installationId,
payload: {type: LinkingTypes.ONE_TIME_LOGIN, token: value4 != token ? token : value4}};
}
match = pathname.match;
value14 = Reflect.apply(match, pathname, [env0_14]);
if (value4 != value14) {
length = value14.length;
reducibleJoin55: while (true) {
if (length > 1) {
return {fingerprint: fingerprint, attemptId: attemptId, installationId: installationId,
payload: {type: LinkingTypes.BOOST_MARKETING, guildId: value14[1]}};
}
break reducibleJoin55;
}
}
match = pathname.match;
value15 = Reflect.apply(match, pathname, [env0_13]);
if (value4 != value15) {
length = value15.length;
reducibleJoin133: while (true) {
if (length > 1) {
property = value15[1];
if (property === 'composeMessage') {
COMPOSE_MESSAGE = LinkingTypes.COMPOSE_MESSAGE;
r29 = {type: COMPOSE_MESSAGE};
} else if (property === 'contactSync') {
CONTACT_SYNC = LinkingTypes.CONTACT_SYNC;
r29 = {type: CONTACT_SYNC};
} else if (property === 'addFriends') {
ADD_FRIENDS = LinkingTypes.ADD_FRIENDS;
r29 = {type: ADD_FRIENDS};
} else if (property === 'friends') {
parseQueryBinding = parseQuery;
r26 = value4 != query ? query : value6;
user_id = parseQueryBinding(r26).user_id;
FRIENDS = LinkingTypes.FRIENDS;
r29 = {type: FRIENDS, userId: user_id};
} else if (property === 'editProfile') {
EDIT_PROFILE = LinkingTypes.EDIT_PROFILE;
r29 = {type: EDIT_PROFILE};
} else if (property === 'voiceChannel') {
parseQueryBinding = parseQuery;
r26 = value4 != query ? query : value6;
query7 = parseQueryBinding(r26);
guild_id = query7.guild_id;
channel_id = query7.channel_id;
user_id = query7.user_id;
via = query7.via;
action = query7.action;
VOICE_CHANNEL = LinkingTypes.VOICE_CHANNEL;
r29 = {type: VOICE_CHANNEL, guildId: guild_id, channelId: channel_id, userId: user_id,
via: via,
action: action};
} else if (property === 'sessionManagement') {
SESSION_MANAGEMENT = LinkingTypes.SESSION_MANAGEMENT;
r29 = {type: SESSION_MANAGEMENT};
} else if (property === 'home') {
parseQueryBinding = parseQuery;
r26 = value4 != query ? query : value6;
query6 = parseQueryBinding(r26);
guild_id = query6.guild_id;
highlight_channel_id = query6.highlight_channel_id;
highlight_message_id = query6.highlight_message_id;
GUILD_HOME = LinkingTypes.GUILD_HOME;
r29 = {type: GUILD_HOME, guildId: guild_id, highlightChannelId: highlight_channel_id,
highlightMessageId: highlight_message_id};
} else if (property === 'icymi') {
ICYMI = LinkingTypes.ICYMI;
r29 = {type: ICYMI};
} else if (property === 'connections') {
parseQueryBinding = parseQuery;
r26 = value4 != query ? query : value6;
source = parseQueryBinding(r26).source;
CONNECTIONS = LinkingTypes.CONNECTIONS;
r29 = {type: CONNECTIONS, source: source};
} else if (property === 'family-center') {
FAMILY_CENTER = LinkingTypes.FAMILY_CENTER;
r29 = {type: FAMILY_CENTER, pathname: pathname};
} else if (property === 'promo-url') {
parseQueryBinding = parseQuery;
r26 = value4 != query ? query : value6;
promo_url = parseQueryBinding(r26).promo_url;
reducibleJoin132: while (true) {
if (value2 === promo_url) {
r29 = value4;
break reducibleJoin132;
}
FEATURE_PROMO_URL = LinkingTypes.FEATURE_PROMO_URL;
r29 = {type: FEATURE_PROMO_URL, promoUrl: promo_url};
break reducibleJoin132;
}
} else if (property === 'account-standing') {
ACCOUNT_STANDING = LinkingTypes.ACCOUNT_STANDING;
r29 = {type: ACCOUNT_STANDING, pathname: pathname};
} else if (property === 'mobile-web-redirect-checkout') {
moduleValue9 = require(4247) /* metro dependency 4247: MobileWebRedirectCheckoutUtils */;
isMobileWebRedirectCheckoutEnabled = moduleValue9.isMobileWebRedirectCheckoutEnabled;
isMobileWebRedirectCheckoutEnabled2 = Reflect.apply(isMobileWebRedirectCheckoutEnabled,
moduleValue9,
[]);
reducibleJoin108: while (true) {
if (isMobileWebRedirectCheckoutEnabled2) {
moduleValue10 = require(1581) /* metro dependency 1581: MetaQuestUtilsAndroid */;
isMetaQuest = moduleValue10.isMetaQuest;
value18 = !Reflect.apply(isMetaQuest, moduleValue10, []);
r26 = value18;
break reducibleJoin108;
}
r26 = isMobileWebRedirectCheckoutEnabled2;
break reducibleJoin108;
}
parseQueryBinding = parseQuery;
r30 = value4 != query ? query : value6;
query5 = parseQueryBinding(r30);
DEEP_LINK_ACTION = MobileWebRedirectCheckoutDeepLinkQueryKeys.DEEP_LINK_ACTION;
property = query5[DEEP_LINK_ACTION];
GUILD_ID = MobileWebRedirectCheckoutDeepLinkQueryKeys.GUILD_ID;
property3 = query5[GUILD_ID];
reducibleJoin132: while (true) {
if (r26) {
MOBILE_WEB_REDIRECT_CHECKOUT = LinkingTypes.MOBILE_WEB_REDIRECT_CHECKOUT;
reducibleJoin112: while (true) {
if (value4 != property) {
r33 = property;
break reducibleJoin112;
}
DEFAULT = MobileWebRedirectCheckoutDeepLinkActions.DEFAULT;
r33 = DEFAULT;
break reducibleJoin112;
}
r29 = {type: MOBILE_WEB_REDIRECT_CHECKOUT, deepLinkAction: r33, guildId: property3};
break reducibleJoin132;
}
r29 = value4;
break reducibleJoin132;
}
} else if (property === 'open-shop') {
SHOP = LinkingTypes.SHOP;
r29 = {type: SHOP};
} else if (property === 'authorized-apps') {
AUTHORIZED_APPS = LinkingTypes.AUTHORIZED_APPS;
r29 = {type: AUTHORIZED_APPS};
} else if (property === 'share') {
moduleValue8 = require(477) /* metro dependency 477: PlatformUtils */;
isIOS = moduleValue8.isIOS;
reducibleJoin132: while (true) {
if (Reflect.apply(isIOS, moduleValue8, [])) {
parseQueryBinding = parseQuery;
r30 = value4 != query ? query : value6;
query4 = parseQueryBinding(r30);
text = query4.text;
channelId = query4.channelId;
shareId = query4.shareId;
attachmentManifest = query4.attachmentManifest;
reducibleJoin98: while (true) {
if (typeof shareId !== 'string') {
r33 = value2;
break reducibleJoin98;
}
if (closure(shareId)) {
r33 = shareId;
break reducibleJoin98;
}
r33 = value2;
break reducibleJoin98;
}
if (typeof attachmentManifest === 'string') {
JSON = global.JSON;
parse = JSON.parse;
value16 = Reflect.apply(parse, JSON, [attachmentManifest]);
r36 = value16;
} else {
r36 = [];
}
Array = global.Array;
isArray = Array.isArray;
reducibleJoin103: while (true) {
if (Reflect.apply(isArray, Array, [r36])) {
break reducibleJoin103;
}
r36 = [];
break reducibleJoin103;
}
filter = r36.filter;
value17 = Reflect.apply(filter, r36, [_fun33544]);
SHARE = LinkingTypes.SHARE;
r29 = {type: SHARE, text: text, channelId: channelId, shareId: r33,
attachmentManifest: value17};
break reducibleJoin132;
}
r29 = value4;
break reducibleJoin132;
}
} else if (property === 'dave-protocol-verification') {
parseQueryBinding = parseQuery;
r30 = value4 != query ? query : value6;
query3 = parseQueryBinding(r30);
userId = query3.userId;
fingerprint2 = query3.fingerprint;
reducibleJoin132: while (true) {
if (value4 != userId) {
if (value4 != fingerprint2) {
moduleValue7 = require(4248) /* metro dependency 4248: SecureFramesDeeplinkExperiment */;
getSecureFramesDeeplinkExperiment = moduleValue7.getSecureFramesDeeplinkExperiment;
enabled = Reflect.apply(getSecureFramesDeeplinkExperiment, moduleValue7,
[{location: 'parseUrl'}]).enabled;
if (enabled) {
DAVE_PROTOCOL_VERIFICATION = LinkingTypes.DAVE_PROTOCOL_VERIFICATION;
r29 = {type: DAVE_PROTOCOL_VERIFICATION, userId: userId,
fingerprint: fingerprint2};
break reducibleJoin132;
}
r29 = value4;
break reducibleJoin132;
}
r29 = value4;
break reducibleJoin132;
}
r29 = value4;
break reducibleJoin132;
}
} else if (property === 'gift') {
GIFT = LinkingTypes.GIFT;
r29 = {type: GIFT};
} else if (property === 'store') {
parseQueryBinding = parseQuery;
r30 = value4 != query ? query : value6;
section = parseQueryBinding(r30).section;
NITRO_HOME = LinkingTypes.NITRO_HOME;
r29 = {type: NITRO_HOME, section: section};
} else if (property === 'connected-games') {
CONNECTED_GAMES = LinkingTypes.CONNECTED_GAMES;
r29 = {type: CONNECTED_GAMES};
} else if (property === 'boost-settings') {
BOOST_SETTINGS = LinkingTypes.BOOST_SETTINGS;
r29 = {type: BOOST_SETTINGS};
} else if (property === 'quest-preview-tool') {
parseQueryBinding = parseQuery;
r30 = value4 != query ? query : value6;
quest_id = parseQueryBinding(r30).quest_id;
QUEST_PREVIEW_TOOL = LinkingTypes.QUEST_PREVIEW_TOOL;
r29 = {type: QUEST_PREVIEW_TOOL, questId: quest_id};
} else {
reducibleJoin132: while (true) {
if (property !== 'subscription-settings') {
r29 = value4;
break reducibleJoin132;
}
SUBSCRIPTION_SETTINGS = LinkingTypes.SUBSCRIPTION_SETTINGS;
r29 = {type: SUBSCRIPTION_SETTINGS};
break reducibleJoin132;
}
}
if (value4 != r29) {
return {fingerprint: fingerprint, attemptId: attemptId, installationId: installationId,
payload: r29};
}
break reducibleJoin133;
}
break reducibleJoin133;
}
}
moduleValue11 = require(4246) /* metro dependency 4246: LinkUtils */;
tryParseEventDetailsPath = moduleValue11.tryParseEventDetailsPath;
value19 = Reflect.apply(tryParseEventDetailsPath, moduleValue11, [pathname]);
if (value4 != value19) {
return {fingerprint: fingerprint, attemptId: attemptId, installationId: installationId,
payload: {type: LinkingTypes.GUILD_EVENT_DETAILS, guildEventId: value19.guildEventId,
guildId: value19.guildId,
recurrenceId: value19.recurrenceId}};
}
match = pathname.match;
if (value4 != Reflect.apply(match, pathname, [env0_19])) {
parseQueryBinding = parseQuery;
decodeURIComponent = global.decodeURIComponent;
query10 = parseQueryBinding(decodeURIComponent(query));
key = query10.key;
redirect = query10.redirect;
fingerprint = query10.fingerprint;
if (value4 != key) {
reducibleJoin165: while (true) {
if (value4 != redirect) {
URL = global.URL;
location = global.location;
protocol = location.protocol;
window = global.window;
GLOBAL_ENV = window.GLOBAL_ENV;
WEBAPP_ENDPOINT = GLOBAL_ENV.WEBAPP_ENDPOINT;
HermesInternal = global.HermesInternal;
concat = HermesInternal.concat;
value28 = value6 + protocol + WEBAPP_ENDPOINT;
prototype = URL.prototype;
value29 = Object.create(prototype, {constructor: {value: URL}});
uRL = new URL();
value30 = uRL instanceof Object ? uRL : value29;
reducibleJoin164: while (true) {
if (value4 == fingerprint) {
break reducibleJoin164;
}
searchParams = value30.searchParams;
append = searchParams.append;
Reflect.apply(append, searchParams, ['fingerprint', fingerprint]);
break reducibleJoin164;
}
MOBILE_WEB_HANDOFF = LinkingTypes.MOBILE_WEB_HANDOFF;
return {fingerprint: fingerprint, attemptId: attemptId, installationId: installationId,
payload: {type: MOBILE_WEB_HANDOFF, nonce: key, redirectUrl: value30,
fingerprint: fingerprint}};
}
break reducibleJoin165;
}
}
defaultImport10 = importDefault(683) /* metro dependency 683: AnalyticsUtils */;
track = defaultImport10.track;
MOBILE_WEB_HANDOFF_FAILURE = AnalyticEvents.MOBILE_WEB_HANDOFF_FAILURE;
value = require(490) /* metro dependency 490: FingerprintUtils */;
maybeExtractId = value.maybeExtractId;
Reflect.apply(track, defaultImport10, [MOBILE_WEB_HANDOFF_FAILURE, {reason: 'invalid_query_params',
fingerprint: Reflect.apply(maybeExtractId, value, [fingerprint])}, {fingerprint: fingerprint}]);
Error = global.Error;
prototype = Error.prototype;
value = Object.create(prototype, {constructor: {value: Error}});
error = new Error('Missing nonce or redirect query params');
value = error instanceof Object ? error : value;
throw value;
}
match = pathname.match;
value20 = Reflect.apply(match, pathname, [env0_20]);
if (value4 != value20) {
query9 = parseQuery(global.decodeURIComponent(value4 != query ? query : value6));
return {fingerprint: fingerprint, attemptId: attemptId, installationId: installationId,
payload: {type: LinkingTypes.USER_CONNECTIONS_LINK_CALLBACK, provider: value20[1],
callbackCode: query9.code,
callbackState: query9.state}};
}
match = pathname.match;
value21 = Reflect.apply(match, pathname, [env0_21]);
if (value4 != value21) {
value27 = Module00057(value21, 2);
value27[0];
return {fingerprint: fingerprint, attemptId: attemptId, installationId: installationId,
payload: {type: LinkingTypes.USER_CONNECTIONS_CALLBACK, provider: value27[1],
searchParams: parseQuery(global.decodeURIComponent(value4 != query ? query : value6))}};
}
match = pathname.match;
value22 = Reflect.apply(match, pathname, [env0_22]);
if (value4 != value22) {
value26 = Module00057(value22, 4);
property = value26[1];
property5 = value26[2];
property6 = value26[3];
object = {fingerprint: fingerprint, attemptId: attemptId, installationId: installationId};
object9 = {};
object9.type = LinkingTypes.GUILD_SETTINGS;
object9.guildId = property;
object9.settingsSection = (importDefault(4253) /* metro dependency 4253: urlPartToSettingsEnum */)(GuildSettingsSections,
property5);
object9.settingsSubsection = (importDefault(4253) /* metro dependency 4253: urlPartToSettingsEnum */)(GuildSettingsSubsections,
property6);
object.payload = object9;
return object;
}
match = pathname.match;
value23 = Reflect.apply(match, pathname, [env0_23]);
if (value4 != value23) {
value25 = Module00057(value23, 3);
property = value25[1];
property4 = value25[2];
feature = parseQuery(value4 != query ? query : value6).feature;
object = {fingerprint: fingerprint, attemptId: attemptId, installationId: installationId};
object8 = {};
object8.type = LinkingTypes.GUILD_SETTINGS_PICKER;
object8.settingsSection = (importDefault(4253) /* metro dependency 4253: urlPartToSettingsEnum */)(GuildSettingsSections,
property);
object8.settingsSubsection = (importDefault(4253) /* metro dependency 4253: urlPartToSettingsEnum */)(GuildSettingsSubsections,
property4);
object8.feature = feature;
object.payload = object8;
return object;
}
match = pathname.match;
if (value4 != Reflect.apply(match, pathname, [env0_24])) {
return {fingerprint: fingerprint, attemptId: attemptId, installationId: installationId,
payload: {type: LinkingTypes.ACTIVATE_DEVICE,
userCode: parseQuery(global.decodeURIComponent(value4 != query ? query : value6)).user_code}};
}
break reducibleJoin140;
}
}
reducibleJoin142: while (true) {
if (value4 == host2) {
r26 = value2;
break reducibleJoin142;
}
match = host2.match;
value24 = Reflect.apply(match, host2, [env0_18]);
r26 = value24;
break reducibleJoin142;
}
if (value4 != r26) {
r26 = {fingerprint: fingerprint, attemptId: attemptId, installationId: installationId,
payload: {type: LinkingTypes.PROMOTIONS, url: value3}};
} else {
reducibleJoin145: while (true) {
if (value4 == UPDATE_CONFIG) {
host = value2;
break reducibleJoin145;
}
url = UPDATE_CONFIG.url;
host = url.host;
break reducibleJoin145;
}
r26 = host2 === host ? {fingerprint: fingerprint, attemptId: attemptId, installationId: installationId,
payload: {type: LinkingTypes.MOBILE_NATIVE_UPDATE, url: value3}} : {fingerprint: fingerprint,
attemptId: attemptId, installationId: installationId, payload: {type: LinkingTypes.NONE}};
}
return r26;
function _fun33544(a0) { // fn#33544, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4251:7398, offset: 0x01033654, size: 63 bytes, params: 2, frame: 12
return typeof a0.originalFilename === 'string' && typeof a0.temporaryFilename === 'string' && isValidUUID(a0.temporaryFilename);
}
}
}
global.__d(_fun33539, 4093, [57, 661, 663, 4094, 4095, 1468, 3855, 1473, 4096, 4101, 4127, 4129, 4245, 1471, 4246,
4120, 4247, 1581, 477, 4248, 683, 490, 4253,
2]) /* metro module 4093, dependencies: [57, 661, 663, 4094, 4095, 1468, 3855, 1473, 4096, 4101, 4127, 4129, 4245, 1471, 4246, 4120, 4247, 1581, 477, 4248, 683, 490, 4253, 2] */;