Files
discord-decomp/sources/modules/coded_links/findCodedLinks.tsx
T
2026-07-27 16:20:00 +03:00

1042 lines
45 KiB
TypeScript

/* Metro module 4096; source: modules/coded_links/findCodedLinks.tsx; dependencies: [4097, 661, 663, 4100, 1473, 3855, 44, 4101, 1471, 4102, 4105, 4098, 4116, 4120, 4122, 4126, 4123, 2] */
function _fun33548(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#33548, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4254:6, offset: 0x01033a19, size: 1253 bytes, params: 8, frame: 36
var RegExp;
const env0_0 = require;
const _arrayLikeToArray_33551 = function(a0, a1) {
var r0;
var r1;
var r2;
var value3;
var length;
var value5;
var value = undefined;
var value2 = value == null;
reducibleJoin2: while (true) {
if (value2) {
r0 = value2;
break reducibleJoin2;
}
value3 = value > a0.length;
r0 = value3;
break reducibleJoin2;
}
reducibleJoin4: while (true) {
if (r0) {
length = a0.length;
r1 = length;
break reducibleJoin4;
}
r1 = value;
break reducibleJoin4;
}
value = (0, global.Array)(r1);
var value4 = 0;
if (value4 < r1) {
r2 = value4;
reducibleLoop5: while (true) {
value[r2] = a0[r2];
value5 = typeof r2 === 'bigint' ? r2 + 1n : +r2 + 1;
if (value5 < r1) {
r2 = value5;
continue reducibleLoop5;
}
break reducibleLoop5;
}
}
return value;
};
let closure = getHost;
const isHostMatch = function(a0, {host}) {
return host?.replace(RegExp('^www[.]', 'i'), '') === a0.host;
};
const closure2 = getPathsFromURL;
const closure3 = findCodedLinks;
const closure4 = parseQuestsEmbedCode;
const closure5 = parseURLSafely;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
let value = undefined;
const inviteStore = importDefault(4097) /* metro dependency 4097: InviteStore */;
const PRIMARY_DOMAIN = (require(661) /* metro dependency 661: Constants */).PRIMARY_DOMAIN;
const env0_4 = (require(663) /* metro dependency 663: CollectiblesShopConstants */).CollectibleShopTab;
const env0_5 = RegExp('^\\/([a-zA-Z0-9-]+)$', '');
const env0_6 = RegExp('^\\/channels\\/([0-9]+|@me)\\/([0-9]+)$', '');
const env0_7 = RegExp('^\\/(invite|template)\\/([a-zA-Z0-9-]+)\\/?\\.?$', '');
RegExp = global.RegExp;
let regExp = new RegExp('^/events/(\\d+)(?:/)(\\d+)?((?:/)(\\d+))?');
const env0_9 = RegExp('^\\/(application-directory|discovery\\/applications)\\/([0-9-]+)\\/?((about|images|privacy)\\/?)?$',
'');
const env0_10 = RegExp('^\\/(application-directory|discovery\\/applications)\\/([0-9-]+)\\/store\\/?([0-9-]+)?\\/?$',
'');
const env0_11 = RegExp('^\\/activities\\/([0-9-]+)\\/?$', '');
const env0_12 = RegExp('^\\/channels\\/([0-9]+)\\/shop\\/([0-9]+)$', '');
const env0_13 = RegExp('^(?:\\/game-shop\\/([0-9]+)|\\/channels\\/([0-9]+)\\/game-shop\\/(?:[0-9]+))\\/([0-9]+)(?:\\/([^\\/]+))?$',
'');
const env0_14 = RegExp('^\\/channels\\/([0-9]+)\\/shop$', '');
const env0_15 = RegExp('^\\/quests\\/([0-9-]+)\\/?$', '');
const env0_16 = RegExp('^\\/oauth2\\/authorize', '');
const env0_17 = RegExp('^#itemSkuId=([0-9]+)$', '');
const regexp = RegExp("dev:\\/\\/[\\w-.~:\\/?#\\[\\]@!$&'()*+,;=%]+", 'i');
let GLOBAL_ENV = global.window.GLOBAL_ENV;
const INVITE_HOST = GLOBAL_ENV.INVITE_HOST;
let value4 = closure(INVITE_HOST);
GLOBAL_ENV = global.window.GLOBAL_ENV;
const GUILD_TEMPLATE_HOST = GLOBAL_ENV.GUILD_TEMPLATE_HOST;
let value5 = closure(GUILD_TEMPLATE_HOST);
GLOBAL_ENV = global.window.GLOBAL_ENV;
const WEBAPP_ENDPOINT = GLOBAL_ENV.WEBAPP_ENDPOINT;
const value7 = closure(WEBAPP_ENDPOINT ?? '//canary.' + PRIMARY_DOMAIN);
const env0_22 = closure('//canary.' + PRIMARY_DOMAIN);
const env0_23 = closure('//ptb.' + PRIMARY_DOMAIN);
const value8 = closure('discordapp.com');
const value9 = closure('discord.com');
const regexUtils = importDefault(4100) /* metro dependency 4100: RegexUtils */;
let escape = regexUtils.escape;
const host = value4.host;
const value11 = '';
items = [Reflect.apply(escape, regexUtils, [host ?? value11])];
const value13 = regexUtils;
items[1] = value13.escape(value5.host ?? value11);
const value14 = regexUtils;
items[2] = value14.escape(value7.host ?? value11);
const value15 = regexUtils;
escape = value15.escape;
let r13 = value8.host ?? value11;
items[3] = Reflect.apply(escape, value15, [r13]);
const value16 = regexUtils;
items[4] = value16.escape(value9.host ?? value11);
const filter = items.filter;
const Boolean = global.Boolean;
const value17 = Reflect.apply(filter, items, [Boolean]);
RegExp = global.RegExp;
regExp = new RegExp('((https?://[^ ]*)|^|[^/][^/.])(' + value17.join('|') + ')', 'g');
closure = stripMarkdownLinkSyntax;
const link = (importDefault(3855) /* metro dependency 3855 */).defaultRules.link;
const source = link == null || link.match == null || link.match.regex == null ? value : link.match.regex.source;
(importDefault(44) /* metro dependency 44 */)(source, 'SimpleMarkdown link regex is not set.');
r13 = source[0] !== '^' ? source : source.substring(1);
RegExp = global.RegExp;
regExp = new RegExp(r13, 'g');
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/coded_links/findCodedLinks.tsx');
exports.default = closure3;
exports.DEVLINK_REGEX = regexp;
exports.stripMarkdownLinkSyntax = closure;
exports.remainingPathFromDiscordHostMatch = remainingPathFromDiscordHostMatch;
exports.getPathsFromURL = closure2;
exports.isSuspiciousCodedLink = isSuspiciousCodedLink;
exports.parseQuestsEmbedCode = closure4;
exports.parseURLSafely = closure5;
exports.findCodedLink = findCodedLink;
return value;
}
function _createForOfIteratorHelperLoose_33549(a0, a1) { // fn#33549, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4254:184, offset: 0x01033efe, size: 370 bytes, params: 3, frame: 20
var r6;
var r9;
var r5;
var value3;
var regexp;
const env0_0 = a0;
const Symbol = global.Symbol;
let value = typeof Symbol !== 'undefined';
let r1 = value && a0[global.Symbol.iterator];
r1 = !r1 ? a0['@@iterator'] : r1;
if (r1) {
value = r1.call(a0);
return value.next.bind(value);
}
const Array = global.Array;
if (Array.isArray(a0)) {
if (r1) {
}
return _fun33550;
}
value = undefined;
if (a0) {
if (typeof a0 === 'string') {
value = _arrayLikeToArray_33551(a0, value);
r5 = value;
} else {
value3 = ({}).toString.call(a0).slice(8, -1);
r6 = value3 === 'Object' && a0.constructor;
r9 = r6 ? a0.constructor.name : value3;
if (r9 === 'Map') {
r6 = global.Array.from(a0);
} else if (r9 === 'Set') {
r6 = global.Array.from(a0);
} else if (r9 === 'Arguments') {
value = _arrayLikeToArray_33551(a0, value);
r6 = value;
} else {
regexp = RegExp('^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$', '');
if (regexp.test(r9)) {
value = _arrayLikeToArray_33551(a0, value);
r6 = value;
} else {
r6 = value;
}
}
r5 = r6;
}
} else {
r5 = value;
}
if (r5) {
if (r5) {
}
return _fun33550;
}
const TypeError = global.TypeError;
throw new TypeError('Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.');
}
function getHost(a0) { // fn#33552, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4254:2336, offset: 0x01034070, size: 126 bytes, params: 2, frame: 15
if (a0 == null) {
return {'host': null, 'pathPrefix': null};
}
let value = a0.indexOf('/');
if (value >= 0) {
value = require(1473) /* metro dependency 1473 */;
value = value.parse(a0, undefined, true);
return {host: value.host, pathPrefix: value.pathname};
}
return {host: a0, pathPrefix: null};
}
function remainingPathFromHostMatch(a0, a1) { // fn#33554, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4254:2880, offset: 0x0103412e, size: 113 bytes, params: 3, frame: 15
var r4;
var r1;
var pathname;
var pathPrefix;
var value3;
let value = isHostMatch(a0, a1);
const value2 = null;
if (value) {
pathname = a1.pathname;
value = '';
r4 = value2 != pathname ? pathname : value;
pathPrefix = a0.pathPrefix;
r1 = value2 != pathPrefix ? pathPrefix : value;
if (r4.startsWith(r1)) {
value3 = r4.substring(r1.length);
return value === value3 ? value2 : value3;
}
}
return value2;
}
function getPathsFromURL(a0) { // fn#33555, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4254:3104, offset: 0x0103419f, size: 180 bytes, params: 2, frame: 17
var r1;
var r0;
var object2;
var remainingPathFromHostMatchBinding;
const uRLSafely = parseURLSafely(a0);
if (uRLSafely == null) {
r0 = {'url': null, 'inviteHostRemainingPath': null, 'templateHostRemainingPath': null,
'primaryHostRemainingPath': null};
} else if (uRLSafely.pathname == null) {
r0 = {'url': null, 'inviteHostRemainingPath': null, 'templateHostRemainingPath': null,
'primaryHostRemainingPath': null};
} else {
object2 = {url: uRLSafely};
remainingPathFromHostMatchBinding = remainingPathFromHostMatch;
object2.inviteHostRemainingPath = remainingPathFromHostMatchBinding(env0_19, uRLSafely);
object2.templateHostRemainingPath = remainingPathFromHostMatchBinding(env0_20, uRLSafely);
r1 = remainingPathFromHostMatchBinding(env0_21, uRLSafely) ?? remainingPathFromHostMatch(env0_22, uRLSafely);
r1 = r1 ?? remainingPathFromHostMatch(env0_23, uRLSafely);
r1 = r1 ?? remainingPathFromHostMatch(env0_24, uRLSafely);
r1 = r1 ?? remainingPathFromHostMatch(env0_25, uRLSafely);
object2.primaryHostRemainingPath = r1;
r0 = object2;
}
return r0;
}
function findCodedLinks(a0) { // fn#33556, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4254:3653, offset: 0x01034253, size: 253 bytes, params: 2, frame: 20
var value8;
var value9;
if (a0 != null) {
var Set = global.Set;
var set = new Set();
var value2 = a0.replace(env0_26, function(a0, a1, a2, a3) {
return a2 != null ? a0 : '' + a1 + 'http://' + a3;
});
var value3 = stripMarkdownLinkSyntax(value2);
var match = value3.match;
var URL_REGEX = (importDefault(1471) /* metro dependency 1471: URLUtils */).URL_REGEX;
var value4 = Reflect.apply(match, value3, [URL_REGEX]);
var value5 = value2.match(env0_18);
var r7 = value4 ?? [];
var concat = r7.concat;
var r2 = value5 ?? [];
var value6 = Reflect.apply(concat, r7, [r2]);
if (value6 == null) {
return [];
}
if (value6.length === 0) {
return [];
}
var closure = findCodedLinks_loop;
set = _createForOfIteratorHelperLoose_33549(value6);
var value7 = set();
var done = value7.done;
if (!done) {
r2 = value7;
while (true) {
value8 = r2.value;
if (closure(value8) === 0) {
break;
}
value9 = set();
done = value9.done;
if (done) {
break;
}
r2 = value9;
continue;
}
}
}
return [];
}
function parseQuestsEmbedCode(a0) { // fn#33561, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4254:7226, offset: 0x01034d30, size: 88 bytes, params: 2, frame: 14
const getPathsFromURLBinding = getPathsFromURL;
const value2 = undefined;
const pathsFromURLBinding = getPathsFromURLBinding(a0);
const value4 = null;
const r3 = value4 == pathsFromURLBinding || value4 == pathsFromURLBinding.primaryHostRemainingPath ? value2 : pathsFromURLBinding.primaryHostRemainingPath.match(env0_15);
const r1 = value4 == r3 ? value2 : r3[1];
return value4 != r1 ? r1 : value4;
}
function parseURLSafely(a0) { // fn#33562, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4254:7398, offset: 0x01034d88, size: 47 bytes, params: 2, frame: 12
var value;
var property;
var error;
try {
value = environment;
property = dependencyMap[4];
value = require(property);
value = value.parse(a0);
} catch (error) {
return null;
}
return value;
}
function stripMarkdownLinkSyntax(a0) { // fn#33563, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4254:2558, offset: 0x01034db7, size: 30 bytes, params: 2, frame: 13
return a0.replaceAll(env0_28, ' $2 ');
}
function remainingPathFromDiscordHostMatch(a0) { // fn#33564, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4254:7683, offset: 0x01034dd5, size: 98 bytes, params: 2, frame: 16
let r0 = remainingPathFromHostMatch(env0_21, a0) ?? remainingPathFromHostMatch(env0_22, a0);
r0 = r0 ?? remainingPathFromHostMatch(env0_23, a0);
r0 = r0 ?? remainingPathFromHostMatch(env0_24, a0);
r0 = r0 ?? remainingPathFromHostMatch(env0_25, a0);
return r0;
}
function isSuspiciousCodedLink(a0) { // fn#33565, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4254:8017, offset: 0x01034e37, size: 223 bytes, params: 2, frame: 17
var r1;
var parseURLSafelyBinding;
var value2;
var uRLSafely;
var items2;
var pathname;
var value3;
if (a0.includes('\\')) {
parseURLSafelyBinding = parseURLSafely;
value2 = undefined;
uRLSafely = parseURLSafelyBinding(a0);
if (uRLSafely == null) {
return false;
}
if (isHostMatch(env0_19, uRLSafely)) {
return true;
}
items2 = [env0_21, env0_22, env0_23, env0_24, env0_25];
if (items2.some(_fun33566)) {
pathname = uRLSafely.pathname;
if (pathname == null) {
r1 = value2;
} else {
value3 = pathname.toUpperCase();
r1 = value3.includes((require(4101) /* metro dependency 4101: CodedLink */).CodedLinkType.INVITE);
}
return r1 != null && r1;
}
}
return false;
}
function findCodedLink(a0) { // fn#33567, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4254:8401, offset: 0x01034f31, size: 25 bytes, params: 2, frame: 11
return findCodedLinks(a0)[0];
}
function findCodedLinks_loop(a0) { // fn#33558, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4254:3934, owner: findCodedLinks._loop, offset: 0x01034382, size: 2353 bytes, params: 2, frame: 27
var environment;
var r0;
var r13;
var r3;
var r10;
var r9;
var r12;
var tab;
var applicationId;
var skuId;
var r11;
var r5;
var r8;
var pathname;
var closure;
var moduleValue;
var isBuildOverrideLink;
const CodedLinkType = (require(4101) /* metro dependency 4101: CodedLink */).CodedLinkType;
var BUILD_OVERRIDE;
var moduleValue2;
var isManualBuildOverrideLink;
var MANUAL_BUILD_OVERRIDE;
var moduleValue3;
var isExperimentEmbedURL;
var EXPERIMENT;
var match;
var value5;
var protocol;
var moduleValue4;
var generateInviteKeyFromUrlParams;
var substring;
var value6;
var search;
var value7;
var getInvite;
var value8;
var moduleValue5;
var isEmbeddedApplicationInvite;
var includes;
var INVITE;
var EMBEDDED_ACTIVITY_INVITE;
var value9;
var TEMPLATE;
var value10;
var property;
var toUpperCase;
var value11;
var moduleValue6;
var value12;
var value13;
var CHANNEL_LINK;
var replace;
var value14;
var EVENT;
var guildId;
var guildEventId;
var HermesInternal;
var concat;
var value15;
var value16;
var recurrenceId;
var value17;
var value18;
var query;
var moduleValue7;
var parseOAuth2AuthorizeProps;
var oAuth2AuthorizeProps;
var clientId;
var value19;
var value20;
var scopes;
var value21;
var some;
var value22;
var APP_OAUTH2_LINK;
var value23;
var APP_DIRECTORY_PROFILE;
var value24;
var property2;
var APP_DIRECTORY_STOREFRONT;
var moduleValue8;
var makeStorefrontSKUCodedLink;
var storefrontSKUCodedLink;
var APP_DIRECTORY_STOREFRONT_SKU;
var value25;
var ACTIVITY_BOOKMARK;
var value26;
var GUILD_PRODUCT;
var property3;
var value27;
var SERVER_SHOP;
var value28;
var SOCIAL_LAYER_STOREFRONT;
var property4;
var property5;
var questsEmbedCode;
var QUESTS_EMBED;
var moduleValue9;
var parse;
var value29;
var GAME_SHOPS;
var hash;
var value30;
var COLLECTIBLES_SHOP;
var value31;
var value32;
var SOCIAL_LAYER_STOREFRONT_APP;
const env0_0 = a0;
let length = env0_1.length;
if (length >= 10) {
return 0;
}
let value = environment.__proto__;
const getPathsFromURLBinding = getPathsFromURL;
const value2 = undefined;
const {url, inviteHostRemainingPath, templateHostRemainingPath,
primaryHostRemainingPath} = getPathsFromURLBinding(a0);
const value4 = null;
if (value4 != url) {
pathname = url.pathname;
reducibleJoin111: while (true) {
if (value4 != pathname) {
closure = _loopAdd;
moduleValue = require(4102) /* metro dependency 4102: BuildOverrideUtils */;
isBuildOverrideLink = moduleValue.isBuildOverrideLink;
reducibleJoin5: while (true) {
if (Reflect.apply(isBuildOverrideLink, moduleValue, [a0])) {
BUILD_OVERRIDE = CodedLinkType.BUILD_OVERRIDE;
closure(BUILD_OVERRIDE, a0);
break reducibleJoin5;
}
break reducibleJoin5;
}
moduleValue2 = require(4102) /* metro dependency 4102: BuildOverrideUtils */;
isManualBuildOverrideLink = moduleValue2.isManualBuildOverrideLink;
reducibleJoin7: while (true) {
if (Reflect.apply(isManualBuildOverrideLink, moduleValue2, [a0])) {
MANUAL_BUILD_OVERRIDE = CodedLinkType.MANUAL_BUILD_OVERRIDE;
closure(MANUAL_BUILD_OVERRIDE, a0);
break reducibleJoin7;
}
break reducibleJoin7;
}
moduleValue3 = require(4105) /* metro dependency 4105: ExperimentEmbedUtils */;
isExperimentEmbedURL = moduleValue3.isExperimentEmbedURL;
reducibleJoin9: while (true) {
if (Reflect.apply(isExperimentEmbedURL, moduleValue3, [a0])) {
EXPERIMENT = CodedLinkType.EXPERIMENT;
closure(EXPERIMENT, a0);
break reducibleJoin9;
}
break reducibleJoin9;
}
reducibleJoin11: while (true) {
if (value4 == inviteHostRemainingPath) {
r0 = value2;
break reducibleJoin11;
}
match = inviteHostRemainingPath.match;
value5 = Reflect.apply(match, inviteHostRemainingPath, [env1_5]);
r0 = value5;
break reducibleJoin11;
}
if (value4 != r0) {
protocol = url.protocol;
reducibleJoin20: while (true) {
reducibleJoin16: while (true) {
if (protocol === 'https:') {
moduleValue4 = require(4098) /* metro dependency 4098: InviteCodeUtils */;
value7 = moduleValue4.generateInviteKeyFromUrlParams(inviteHostRemainingPath.substring(1),
url.search);
value8 = InviteStore.getInvite(value7);
if (value4 == value8) {
break reducibleJoin16;
}
moduleValue5 = require(4116) /* metro dependency 4116: InviteTypeUtils */;
if (moduleValue5.isEmbeddedApplicationInvite(value8)) {
EMBEDDED_ACTIVITY_INVITE = CodedLinkType.EMBEDDED_ACTIVITY_INVITE;
closure(EMBEDDED_ACTIVITY_INVITE, value7);
break reducibleJoin20;
}
break reducibleJoin16;
}
protocol = url.protocol;
if (protocol !== 'http:') {
break reducibleJoin20;
}
moduleValue4 = require(4098) /* metro dependency 4098: InviteCodeUtils */;
generateInviteKeyFromUrlParams = moduleValue4.generateInviteKeyFromUrlParams;
substring = inviteHostRemainingPath.substring;
value6 = Reflect.apply(substring, inviteHostRemainingPath, [1]);
search = url.search;
value7 = Reflect.apply(generateInviteKeyFromUrlParams, moduleValue4, [value6, search]);
getInvite = InviteStore.getInvite;
value8 = Reflect.apply(getInvite, InviteStore, [value7]);
if (value4 == value8) {
break reducibleJoin16;
}
moduleValue5 = require(4116) /* metro dependency 4116: InviteTypeUtils */;
isEmbeddedApplicationInvite = moduleValue5.isEmbeddedApplicationInvite;
if (Reflect.apply(isEmbeddedApplicationInvite, moduleValue5, [value8])) {
EMBEDDED_ACTIVITY_INVITE = CodedLinkType.EMBEDDED_ACTIVITY_INVITE;
closure(EMBEDDED_ACTIVITY_INVITE, value7);
break reducibleJoin20;
}
break reducibleJoin16;
}
includes = a0.includes;
if (Reflect.apply(includes, a0, ['\\'])) {
return 1;
}
INVITE = CodedLinkType.INVITE;
closure(INVITE, value7);
break reducibleJoin20;
}
}
reducibleJoin22: while (true) {
if (value4 == templateHostRemainingPath) {
r0 = value2;
break reducibleJoin22;
}
match = templateHostRemainingPath.match;
value9 = Reflect.apply(match, templateHostRemainingPath, [env1_5]);
r0 = value9;
break reducibleJoin22;
}
reducibleJoin24: while (true) {
if (value4 == r0) {
break reducibleJoin24;
}
TEMPLATE = CodedLinkType.TEMPLATE;
substring = templateHostRemainingPath.substring;
closure(TEMPLATE, Reflect.apply(substring, templateHostRemainingPath, [1]));
break reducibleJoin24;
}
reducibleJoin26: while (true) {
if (value4 == primaryHostRemainingPath) {
r13 = value2;
break reducibleJoin26;
}
match = primaryHostRemainingPath.match;
value10 = Reflect.apply(match, primaryHostRemainingPath, [env1_7]);
r13 = value10;
break reducibleJoin26;
}
if (value4 != r13) {
property = r13[1];
toUpperCase = property.toUpperCase;
value11 = Reflect.apply(toUpperCase, property, []);
INVITE = CodedLinkType.INVITE;
if (value11 === INVITE) {
includes = a0.includes;
if (Reflect.apply(includes, a0, ['\\'])) {
return 1;
}
moduleValue6 = require(4098) /* metro dependency 4098: InviteCodeUtils */;
generateInviteKeyFromUrlParams = moduleValue6.generateInviteKeyFromUrlParams;
property = r13[2];
search = url.search;
value12 = Reflect.apply(generateInviteKeyFromUrlParams, moduleValue6, [property, search]);
INVITE = CodedLinkType.INVITE;
closure(INVITE, value12);
} else {
closure(value11, r13[2]);
}
}
reducibleJoin33: while (true) {
if (value4 == primaryHostRemainingPath) {
r3 = value2;
break reducibleJoin33;
}
match = primaryHostRemainingPath.match;
value13 = Reflect.apply(match, primaryHostRemainingPath, [env1_6]);
r3 = value13;
break reducibleJoin33;
}
reducibleJoin35: while (true) {
if (value4 == r3) {
break reducibleJoin35;
}
CHANNEL_LINK = CodedLinkType.CHANNEL_LINK;
replace = primaryHostRemainingPath.replace;
closure(CHANNEL_LINK, Reflect.apply(replace, primaryHostRemainingPath, ['/channels/', '']));
break reducibleJoin35;
}
pathname = url.pathname;
reducibleJoin40: while (true) {
if (value4 == pathname) {
r13 = value4;
break reducibleJoin40;
}
match = pathname.match;
value14 = Reflect.apply(match, pathname, [env1_8]);
reducibleJoin39: while (true) {
if (value4 != value14) {
length = value14.length;
if (length >= 4) {
r3 = {guildId: value14[1], guildEventId: value14[2], recurrenceId: value14[4]};
break reducibleJoin39;
}
r3 = value4;
break reducibleJoin39;
}
r3 = value4;
break reducibleJoin39;
}
r13 = r3;
break reducibleJoin40;
}
reducibleJoin44: while (true) {
if (value4 == r13) {
break reducibleJoin44;
}
EVENT = CodedLinkType.EVENT;
guildId = r13.guildId;
guildEventId = r13.guildEventId;
HermesInternal = global.HermesInternal;
concat = HermesInternal.concat;
value15 = '';
value16 = value15 + guildId + '-' + guildEventId;
recurrenceId = r13.recurrenceId;
reducibleJoin43: while (true) {
if (value4 != recurrenceId) {
recurrenceId = r13.recurrenceId;
HermesInternal = global.HermesInternal;
concat = HermesInternal.concat;
value17 = '-' + recurrenceId;
r3 = value17;
break reducibleJoin43;
}
r3 = value15;
break reducibleJoin43;
}
closure(EVENT, value16 + r3);
break reducibleJoin44;
}
reducibleJoin46: while (true) {
if (value4 == primaryHostRemainingPath) {
r3 = value2;
break reducibleJoin46;
}
match = primaryHostRemainingPath.match;
value18 = Reflect.apply(match, primaryHostRemainingPath, [env1_16]);
r3 = value18;
break reducibleJoin46;
}
reducibleJoin56: while (true) {
if (value4 == r3) {
break reducibleJoin56;
}
query = url.query;
if (value4 == query) {
break reducibleJoin56;
}
moduleValue7 = require(4120) /* metro dependency 4120: Authorize */;
parseOAuth2AuthorizeProps = moduleValue7.parseOAuth2AuthorizeProps;
query = url.query;
oAuth2AuthorizeProps = Reflect.apply(parseOAuth2AuthorizeProps, moduleValue7, [query]);
clientId = oAuth2AuthorizeProps.clientId;
value19 = value4 == clientId;
reducibleJoin50: while (true) {
if (value19) {
r3 = value19;
break reducibleJoin50;
}
value20 = clientId === '';
r3 = value20;
break reducibleJoin50;
}
reducibleJoin54: while (true) {
if (r3) {
break reducibleJoin54;
}
scopes = oAuth2AuthorizeProps.scopes;
value21 = value4 != scopes;
reducibleJoin53: while (true) {
if (value21) {
some = scopes.some;
value22 = Reflect.apply(some, scopes, [function(a0) {
var APPLICATIONS_COMMANDS = require(dependencyMap[14]).OAuth2Scopes.APPLICATIONS_COMMANDS;
return a0 !== APPLICATIONS_COMMANDS;
}]);
r10 = value22;
break reducibleJoin53;
}
r10 = value21;
break reducibleJoin53;
}
r3 = r10;
break reducibleJoin54;
}
if (r3) {
break reducibleJoin56;
}
APP_OAUTH2_LINK = CodedLinkType.APP_OAUTH2_LINK;
closure(APP_OAUTH2_LINK, clientId);
break reducibleJoin56;
}
reducibleJoin58: while (true) {
if (value4 == primaryHostRemainingPath) {
r9 = value2;
break reducibleJoin58;
}
match = primaryHostRemainingPath.match;
value23 = Reflect.apply(match, primaryHostRemainingPath, [env1_9]);
r9 = value23;
break reducibleJoin58;
}
reducibleJoin60: while (true) {
if (value4 == r9) {
break reducibleJoin60;
}
property = r9[2];
APP_DIRECTORY_PROFILE = CodedLinkType.APP_DIRECTORY_PROFILE;
closure(APP_DIRECTORY_PROFILE, property);
break reducibleJoin60;
}
reducibleJoin62: while (true) {
if (value4 == primaryHostRemainingPath) {
r9 = value2;
break reducibleJoin62;
}
match = primaryHostRemainingPath.match;
value24 = Reflect.apply(match, primaryHostRemainingPath, [env1_10]);
r9 = value24;
break reducibleJoin62;
}
reducibleJoin66: while (true) {
if (value4 == r9) {
break reducibleJoin66;
}
property = r9[2];
property2 = r9[3];
if (value4 != property2) {
moduleValue8 = require(4126) /* metro dependency 4126: storefrontMessageEmbedCodedLink */;
makeStorefrontSKUCodedLink = moduleValue8.makeStorefrontSKUCodedLink;
storefrontSKUCodedLink = Reflect.apply(makeStorefrontSKUCodedLink, moduleValue8, [property,
property2]);
APP_DIRECTORY_STOREFRONT_SKU = CodedLinkType.APP_DIRECTORY_STOREFRONT_SKU;
closure(APP_DIRECTORY_STOREFRONT_SKU, storefrontSKUCodedLink);
break reducibleJoin66;
}
APP_DIRECTORY_STOREFRONT = CodedLinkType.APP_DIRECTORY_STOREFRONT;
closure(APP_DIRECTORY_STOREFRONT, property);
break reducibleJoin66;
}
reducibleJoin68: while (true) {
if (value4 == primaryHostRemainingPath) {
r9 = value2;
break reducibleJoin68;
}
match = primaryHostRemainingPath.match;
value25 = Reflect.apply(match, primaryHostRemainingPath, [env1_11]);
r9 = value25;
break reducibleJoin68;
}
reducibleJoin70: while (true) {
if (value4 == r9) {
break reducibleJoin70;
}
property = r9[1];
ACTIVITY_BOOKMARK = CodedLinkType.ACTIVITY_BOOKMARK;
closure(ACTIVITY_BOOKMARK, property);
break reducibleJoin70;
}
reducibleJoin72: while (true) {
if (value4 == primaryHostRemainingPath) {
r10 = value2;
break reducibleJoin72;
}
match = primaryHostRemainingPath.match;
value26 = Reflect.apply(match, primaryHostRemainingPath, [env1_12]);
r10 = value26;
break reducibleJoin72;
}
reducibleJoin74: while (true) {
if (value4 == r10) {
break reducibleJoin74;
}
GUILD_PRODUCT = CodedLinkType.GUILD_PRODUCT;
property = r10[1];
property3 = r10[2];
HermesInternal = global.HermesInternal;
concat = HermesInternal.concat;
closure(GUILD_PRODUCT, '' + property + '-' + property3);
break reducibleJoin74;
}
reducibleJoin76: while (true) {
if (value4 == primaryHostRemainingPath) {
r10 = value2;
break reducibleJoin76;
}
match = primaryHostRemainingPath.match;
value27 = Reflect.apply(match, primaryHostRemainingPath, [env1_14]);
r10 = value27;
break reducibleJoin76;
}
reducibleJoin78: while (true) {
if (value4 == r10) {
break reducibleJoin78;
}
SERVER_SHOP = CodedLinkType.SERVER_SHOP;
closure(SERVER_SHOP, r10[1]);
break reducibleJoin78;
}
reducibleJoin80: while (true) {
if (value4 == primaryHostRemainingPath) {
r10 = value2;
break reducibleJoin80;
}
match = primaryHostRemainingPath.match;
value28 = Reflect.apply(match, primaryHostRemainingPath, [env1_13]);
r10 = value28;
break reducibleJoin80;
}
reducibleJoin84: while (true) {
if (value4 == r10) {
break reducibleJoin84;
}
SOCIAL_LAYER_STOREFRONT = CodedLinkType.SOCIAL_LAYER_STOREFRONT;
property = r10[3];
property4 = r10[1];
reducibleJoin83: while (true) {
if (value4 != property4) {
r12 = property4;
break reducibleJoin83;
}
property5 = r10[2];
r12 = property5;
break reducibleJoin83;
}
HermesInternal = global.HermesInternal;
concat = HermesInternal.concat;
closure(SOCIAL_LAYER_STOREFRONT, '' + property + '-' + r12);
break reducibleJoin84;
}
questsEmbedCode = parseQuestsEmbedCode(a0);
reducibleJoin86: while (true) {
if (value4 == questsEmbedCode) {
break reducibleJoin86;
}
QUESTS_EMBED = CodedLinkType.QUESTS_EMBED;
closure(QUESTS_EMBED, questsEmbedCode);
break reducibleJoin86;
}
reducibleJoin109: while (true) {
if (primaryHostRemainingPath !== '/shop') {
break reducibleJoin109;
}
query = url.query;
reducibleJoin89: while (true) {
if (value4 != query) {
moduleValue9 = require(4123) /* metro dependency 4123 */;
parse = moduleValue9.parse;
query = url.query;
value29 = Reflect.apply(parse, moduleValue9, [query]);
r3 = value29;
break reducibleJoin89;
}
r3 = value4;
break reducibleJoin89;
}
reducibleJoin91: while (true) {
if (value4 == r3) {
tab = value2;
break reducibleJoin91;
}
tab = r3.tab;
break reducibleJoin91;
}
GAME_SHOPS = CollectibleShopTab.GAME_SHOPS;
if (tab === GAME_SHOPS) {
reducibleJoin94: while (true) {
if (value4 == r3) {
applicationId = value2;
break reducibleJoin94;
}
applicationId = r3.applicationId;
break reducibleJoin94;
}
if (value4 != applicationId) {
reducibleJoin97: while (true) {
if (value4 == r3) {
skuId = value2;
break reducibleJoin97;
}
skuId = r3.skuId;
break reducibleJoin97;
}
if (value4 != skuId) {
applicationId = r3.applicationId;
skuId = r3.skuId;
value31 = typeof applicationId === 'string';
reducibleJoin107: while (true) {
if (value31) {
value32 = typeof skuId === 'string';
r3 = value32;
break reducibleJoin107;
}
r3 = value31;
break reducibleJoin107;
}
if (r3) {
SOCIAL_LAYER_STOREFRONT_APP = CodedLinkType.SOCIAL_LAYER_STOREFRONT_APP;
concat = global.HermesInternal.concat;
closure(SOCIAL_LAYER_STOREFRONT_APP, '' + skuId + '-' + applicationId);
break reducibleJoin109;
}
break reducibleJoin109;
}
}
}
hash = url.hash;
reducibleJoin100: while (true) {
if (value4 == hash) {
r11 = value2;
break reducibleJoin100;
}
match = hash.match;
value30 = Reflect.apply(match, hash, [env1_17]);
r11 = value30;
break reducibleJoin100;
}
COLLECTIBLES_SHOP = CodedLinkType.COLLECTIBLES_SHOP;
value = '';
r9 = value4 != tab ? tab : value;
reducibleJoin103: while (true) {
if (value4 == r11) {
r5 = value2;
break reducibleJoin103;
}
property = r11[1];
r5 = property;
break reducibleJoin103;
}
r8 = value4 != r5 ? r5 : value;
HermesInternal = global.HermesInternal;
concat = HermesInternal.concat;
closure(COLLECTIBLES_SHOP, value + r9 + '-' + r8);
break reducibleJoin109;
}
return value2;
}
break reducibleJoin111;
}
}
return 1;
}
function _fun33566(a0) { // fn#33566, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4254:8170, offset: 0x01034f16, size: 27 bytes, params: 2, frame: 13
return isHostMatch(a0, env0_0);
}
function _loopAdd(a0, a1) { // fn#33559, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4254:4137, owner: findCodedLinks._loop.add, offset: 0x01034cb3, size: 79 bytes, params: 3, frame: 13
let binding = env1_0;
if (!binding.has(a1)) {
binding = env1_0;
binding.add(a1);
binding = env1_1;
binding.push({type: a0, code: a1, url: env0_0});
}
}