/* Metro module 1471; source: utils/URLUtils.tsx; dependencies: [661, 1472, 1473, 1471, 1360, 22, 2] */ import * as FileImportTrackerModule from '../by-id/module-00002-FileImportTracker.js'; /* Metro dependency 2 */ import * as ConstantsModule from '../Constants.tsx'; /* Metro dependency 661 */ import * as Module01473Module from '../by-id/module-01473.js'; /* Metro dependency 1473 */ function _fun16801(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#16801, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1598:6, offset: 0x00e5a213, size: 685 bytes, params: 8, frame: 29 var RegExp; const env0_0 = require; const closure = function(a0, a1) { return a0 != null && a1 != null && a0 !== a1; }; const isDiscordHostname2 = isDiscordHostname; const closure3 = function(a0) { return a0 != null && a0 === 'discord:'; }; const isDiscordDirectAssetUrl2 = isDiscordDirectAssetUrl; const isDiscordProxiedAssetUrl2 = isDiscordProxiedAssetUrl; const isAllowedGifProviderUrl2 = isAllowedGifProviderUrl; const isDiscordUrl2 = isDiscordUrl; const isDiscordUri2 = isDiscordUri; const Object = global.Object; Object.defineProperty(exports, '__esModule', {value: true}); const env0_5 = RegExp('(?:^|\\.)(?:discordapp|discord|discordmerch)\\.com$', 'i'); const env0_6 = RegExp('^.*\\.discordapp\\.net$', ''); const env0_7 = RegExp('^.*\\.media\\.discordapp\\.net$', ''); let Set = global.Set; let set = new Set(['media.tenor.com', 'media.tenor.co', 'c.tenor.com', 'static.klipy.com', 'media.giphy.com', 'i.giphy.com']); set = importDefault(1472) /* metro dependency 1472 */; const source = set.v4().source; RegExp = global.RegExp; const regExp = new RegExp('(?:(?:(?:[a-z]+:)?//)|www\\.)(?:[^\\s:@]+(?::[^\\s@]*)?@)?(?:localhost|' + source + '|(?:[a-z\\u00a1-\\uffff0-9-_]+\\.)+(?:(?:[a-z\\u00a1-\\uffff]{2,})))(?::\\d{2,5})?(?:[/?#][^\\s"]*)?', 'ig'); Set = global.Set; let GLOBAL_ENV = global.window.GLOBAL_ENV; const CDN_HOST = GLOBAL_ENV.CDN_HOST; object = [CDN_HOST]; GLOBAL_ENV = global.window.GLOBAL_ENV; const INVITE_HOST = GLOBAL_ENV.INVITE_HOST; object[1] = INVITE_HOST; GLOBAL_ENV = global.window.GLOBAL_ENV; const GIFT_CODE_HOST = GLOBAL_ENV.GIFT_CODE_HOST; object[2] = GIFT_CODE_HOST; GLOBAL_ENV = global.window.GLOBAL_ENV; const GUILD_TEMPLATE_HOST = GLOBAL_ENV.GUILD_TEMPLATE_HOST; object[3] = GUILD_TEMPLATE_HOST; object = {URL_REGEX: new Set(object), makeUrl: makeUrl, isOriginalContentTypeDifferent: closure, isDiscordHostname: isDiscordHostname2, isDiscordLocalhost: function(a0, a1) { return a0 != null && a1 != null && global.window.location.host === a0; }, isDiscordProtocol: closure3, isDiscordUrl: isDiscordUrl2, isDiscordUri: isDiscordUri2, isDiscordCdnUrl: isDiscordCdnUrl, isDiscordDirectAssetUrl: isDiscordDirectAssetUrl2, isDiscordProxiedAssetUrl: isDiscordProxiedAssetUrl2, isAllowedGifProviderUrl: isAllowedGifProviderUrl2, isDiscordAssetUrl: isDiscordAssetUrl, isDiscordUrlOrUri: isDiscordUrlOrUri, isAppRoute: isAppRoute, format: format_16816, formatPathWithQuery: formatPathWithQuery, formatSearch: formatSearch, safeParseWithQuery: safeParseWithQuery, toURLSafe: function(a0, a1) { var URL; var prototype; var value; var value2; var error; try { URL = global.URL; prototype = URL.prototype; value = Object.create(prototype, {constructor: {value: URL}}); value2 = new URL(a0, a1); value = value2 instanceof Object ? value2 : value; } catch (error) { return null; } return value; }, safeDecodeURIComponent: function(a0) { var decodeURIComponent; var value; var error; try { decodeURIComponent = global.decodeURIComponent; value = decodeURIComponent(a0); } catch (error) { return null; } return value; }}; (FileImportTrackerModule).fileFinishedImporting('utils/URLUtils.tsx'); exports.default = object; function isDiscordHostname(a0) { // fn#16803, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1598:776, offset: 0x00e5a4dc, size: 78 bytes, params: 2, frame: 15 const value = a1; return a0 != null && (env0_5.test(a0) || (value !== undefined ? value : false) && env0_9.has(a0.toLowerCase())); } function isDiscordDirectAssetUrl(a0) { // fn#16805, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1598:978, offset: 0x00e5a542, size: 203 bytes, params: 2, frame: 15 var r2; var r0; var isDiscordBackendDevelopment2; if (a0 == null) { return false; } const value2 = (importDefault(1471) /* metro dependency 1471: URLUtils */).toURLSafe(a0); const value3 = value2 != null; if (value3) { isDiscordBackendDevelopment2 = (require(1360) /* metro dependency 1360: GlobalUtils */).isDiscordBackendDevelopment(); r2 = isDiscordBackendDevelopment2 ? value2.hostname !== 'localhost' && value2.hostname !== '127.0.0.1' : !isDiscordBackendDevelopment2; r0 = r2 ? value2.hostname === global.window.GLOBAL_ENV.CDN_HOST || env0_6.test(value2.hostname) : !r2; } else { r0 = value3; } return r0; } function isDiscordProxiedAssetUrl(a0, a1, a2) { // fn#16806, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1598:1236, offset: 0x00e5a60d, size: 209 bytes, params: 4, frame: 16 var r4; var r0; var value2; var value3; var isDiscordBackendDevelopment2; if (isOriginalContentTypeDifferent(a1, a2)) { if (a0 == null) { return false; } value2 = (importDefault(1471) /* metro dependency 1471: URLUtils */).toURLSafe(a0); value3 = value2 != null; if (value3) { isDiscordBackendDevelopment2 = (require(1360) /* metro dependency 1360: GlobalUtils */).isDiscordBackendDevelopment(); r4 = isDiscordBackendDevelopment2 ? value2.hostname !== 'localhost' && value2.hostname !== '127.0.0.1' : !isDiscordBackendDevelopment2; r4 = !r4 ? value2.port !== '4000' : r4; r0 = r4 ? env0_7.test(value2.hostname) : !r4; } else { r0 = value3; } return r0; } return false; } function isAllowedGifProviderUrl(a0) { // fn#16807, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1598:1522, offset: 0x00e5a6de, size: 78 bytes, params: 2, frame: 14 if (a0 == null) { return false; } const value2 = (importDefault(1471) /* metro dependency 1471: URLUtils */).toURLSafe(a0); return value2 != null && env0_8.has(value2.hostname); } function isDiscordUrl(a0) { // fn#16808, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1598:1639, offset: 0x00e5a72c, size: 94 bytes, params: 2, frame: 17 const value = a1; const value2 = undefined; if (a0 != null) { var value3 = (importDefault(1471) /* metro dependency 1471: URLUtils */).toURLSafe(a0); var hostname = value3 == null ? value2 : value3.hostname; if (hostname == null) { return false; } if (isDiscordHostname(hostname, value !== value2 ? value : false)) { return true; } } return false; } function isDiscordUri(a0) { // fn#16809, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1598:1791, offset: 0x00e5a78a, size: 65 bytes, params: 2, frame: 14 var r0; var isDiscordProtocolBinding; let value = a0 != null; if (value) { isDiscordProtocolBinding = isDiscordProtocol; value = importAll(1473) /* metro dependency 1473 */; value = isDiscordProtocolBinding(value.parse(a0).protocol); r0 = value; } else { r0 = value; } return r0; } function makeUrl(a0, a1) { // fn#16810, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1598:1904, offset: 0x00e5a7cb, size: 126 bytes, params: 3, frame: 17 var r1; let value = a1; if (value != null) { r1 = value; } else { value = require(1360) /* metro dependency 1360: GlobalUtils */; value = value.isDiscordFrontendDevelopment(); r1 = value; } return '' + global.location.protocol + '//' + (r1 ? global.window.GLOBAL_ENV.INVITE_HOST : global.location.host) + a0; } function isDiscordCdnUrl(a0) { // fn#16812, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1598:2372, offset: 0x00e5a878, size: 80 bytes, params: 2, frame: 13 var r0; let value = a0 != null; if (value) { value = importAll(1473) /* metro dependency 1473 */; value = value.parse(a0).hostname === global.window.GLOBAL_ENV.CDN_HOST; r0 = value; } else { r0 = value; } return r0; } function isDiscordAssetUrl(a0, a1, a2) { // fn#16813, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1598:2636, offset: 0x00e5a8c8, size: 72 bytes, params: 4, frame: 17 var r0; var isDiscordProxiedAssetUrl2; const isDiscordDirectAssetUrl2 = isDiscordDirectAssetUrl(a0); if (isDiscordDirectAssetUrl2) { r0 = !!isDiscordDirectAssetUrl2; } else { isDiscordProxiedAssetUrl2 = isDiscordProxiedAssetUrl(a0, a1, a2); r0 = isDiscordProxiedAssetUrl2 ? !!isDiscordProxiedAssetUrl2 : !!isAllowedGifProviderUrl(a0); } return r0; } function isDiscordUrlOrUri(a0) { // fn#16814, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1598:2791, offset: 0x00e5a910, size: 31 bytes, params: 2, frame: 13 return isDiscordUrl(a0) || isDiscordUri(a0); } function isAppRoute(a0) { // fn#16815, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1598:2838, offset: 0x00e5a92f, size: 59 bytes, params: 2, frame: 12 const value = a0.toLowerCase(); return value.startsWith('/channels/') || value.startsWith(Routes.ACTIVITY); } function format_16816(a0) { // fn#16816, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1598:2932, offset: 0x00e5a96a, size: 40 bytes, params: 2, frame: 11 return (Module01473Module).format(a0); } function formatPathWithQuery(a0, a1) { // fn#16817, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1598:2973, offset: 0x00e5a992, size: 82 bytes, params: 3, frame: 15 const format = Module01473Module.format; const object = {pathname: a0}; object.query = (importDefault(22) /* metro dependency 22 */).pickBy(a1); return Reflect.apply(format, Module01473Module, [object]); } function formatSearch(a0) { // fn#16818, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1598:3046, offset: 0x00e5a9e4, size: 74 bytes, params: 2, frame: 15 const format = Module01473Module.format; const object = {}; object.query = (importDefault(22) /* metro dependency 22 */).pickBy(a0); return Reflect.apply(format, Module01473Module, [object]); } function safeParseWithQuery(a0) { // fn#16819, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1598:3091, offset: 0x00e5aa2e, size: 53 bytes, params: 2, frame: 13 var value; var property; var error; try { value = environment; property = dependencyMap[2]; value = importAll(property); value = value.parse(a0, true); } catch (error) { return null; } return value; } } global.__d(_fun16801, 1471, [661, 1472, 1473, 1471, 1360, 22, 2]) /* metro module 1471, dependencies: [661, 1472, 1473, 1471, 1360, 22, 2] */;