Initial commit

This commit is contained in:
janisslsm committed 2026-07-27 16:20:00 +03:00
commit af3b49f756
16065 files changed
+2938410

No files matched your search

@@ -0,0 +1,423 @@
/* Metro module 6789; source: modules/app_analytics/AnalyticsLocation.tsx; dependencies: [2] */
function _fun53450(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#53450, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6967:6, offset: 0x013496f0, size: 7884 bytes, params: 8, frame: 16
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/app_analytics/AnalyticsLocation.tsx');
exports.default = {QUICK_SWITCHER: 'quick switcher', POPOUT_WINDOW: 'popout window', OVERLAY: 'overlay',
NOTICE: 'notice', PREMIUM_UPSELL_TOOLTIP: 'premium upsell tooltip', BADGE: 'badge',
USER_SETTINGS: 'user settings', USER_SETTINGS_MENU: 'user settings menu',
USER_SETTINGS_GIFT_INVENTORY: 'user settings gift inventory', ACCOUNT: 'account',
TEXT_AND_IMAGES: 'text and images', GUILD_SETTINGS: 'guild settings', OVERVIEW: 'overview',
STICKERS: 'stickers', VANITY_URL: 'vanity url', URI_SCHEME: 'uri scheme', AKA: 'aka', MESSAGES: 'messages',
NEW_MESSAGE_COMPOSER: 'new message composer', NOTIFICATIONS: 'notifications',
NOTIFICATION_CENTER: 'notification center', NOTIFICATIONS_INBOX: 'notifications inbox',
PUSH_NOTIFICATION: 'push notification', FRIEND_REQUEST_NOTIFICATION: 'friend request notification',
FAMILY_CENTER: 'family center', FRIENDS_LIST: 'friends list', EXPANDED_FRIENDS_LIST: 'expanded friends list',
CONTACTS_LIST: 'contacts list', ADD_FRIENDS: 'add friends', FRIEND_REQUESTS: 'friend requests',
SUGGESTED_FRIENDS: 'suggested friends', BLOCKED_USERS: 'blocked users', IGNORED_USERS: 'ignored users',
PREMIUM_MARKETING: 'premium marketing', PREMIUM_MARKETING_PLAN_COMPARISON: 'premium marketing plan comparison',
PREMIUM_PAYMENT_MODAL: 'premium payment modal', PREMIUM_UPSELL_ALERT: 'premium upsell alert',
PREMIUM_UPSELL_MODAL: 'premium upsell modal', PREMIUM_SETTINGS: 'premium settings',
PAYMENT_FLOW_TEST_PAGE: 'payment flow test page', REVENUE_SMOKE_TEST: 'revenue smoke test',
REVENUE_STORYBOOK_TEST_PAGE: 'revenue storybook test page',
VIRTUAL_CURRENCY_BALANCE_WIDGET: 'virtual currency balance widget',
VIRTUAL_CURRENCY_ORB_PROFILE_BADGE: 'virtual currency orb profile badge',
INTRO_TO_ORBS_QUEST: 'intro to orbs quest', INTRO_TO_ORBS_QUEST_BANNER: 'intro to orbs quest banner',
QUEST_ORB_MULTIPLIER_INFO_MODAL: 'quest orb multiplier info modal',
MOBILE_ORBS_REWARD_CLAIM_MODAL: 'mobile orbs reward claim modal', ORBS_BALANCE_MENU: 'orbs balance menu',
PREMIUM_PAYMENT_ACTION_SHEET: 'premium payment action sheet', CHANNEL_CALL: 'channel call',
CHANNEL_CALL_CONNECTING_SCREEN: 'channel call connecting screen', CALL_TILE_POPOUT: 'call tile popout',
CHANNEL_DETAILS: 'channel details', RTC_PANEL: 'rtc panel', AUDIO_INPUT_BUTTON: 'audio input button',
AUDIO_OUTPUT_BUTTON: 'audio output button', SOUNDBOARD_BUTTON: 'soundboard button',
SOUNDBOARD_POPOUT: 'soundboard popout', SOUNDBOARD_WHEEL: 'soundboard wheel',
SOUNDBOARD_FAVORITES_SECTION: 'soundboard favorites section',
SOUNDBOARD_GUILD_SOUNDS_SECTION: 'soundboard guild sounds section',
SOUNDBOARD_DEFAULT_SOUNDS_SECTION: 'soundboard default sounds section',
SOUNDBOARD_SEARCH_RESULTS_SECTION: 'soundboard search results section',
SOUNDBOARD_ACTION_SHEET: 'soundboard action sheet', GIFT_BUTTON: 'gift button',
GIFT_CATEGORY_SELECT_MODAL: 'gift category select modal', PREMIUM_GIFT_INTENT_CARD: 'premium gift intent card',
PREMIUM_GIFT_INTENT_FRIEND_ROW: 'premium gift intent friend row',
GIFT_SELECTION_MODAL_WISHLIST: 'gift selection modal wishlist',
EXPRESSION_SUGGESTIONS: 'expression suggestions', EMOJI_PICKER: 'emoji picker',
STICKER_PICKER: 'sticker picker', STICKER_POPOUT: 'sticker popout', PREMIUM_UPSELL: 'premium upsell',
EMPTY_STATE: 'empty state', SUBSCRIPTION_DETAILS: 'subscription details',
SUBSCRIPTION_HEADER: 'subscription header',
GUILD_BOOSTING_SUBSCRIPTION_HEADER: 'guild boosting subscription header',
CHURN_DISCOUNT_SUBSCRIPTION_HEADER: 'churn discount subscription header',
CHURN_DISCOUNT_POPOVER: 'churn discount popover',
CHURN_DISCOUNT_PERSISTENT_CTA: 'churn discount persistent cta', ACCOUNT_CREDIT_BANNER: 'account credit banner',
PREMIUM_UNCANCEL_MODAL: 'premium uncancel modal',
PAST_DUE_ONE_TIME_PAYMENT_METHOD_BANNER: 'past due one time payment method banner',
STREAM_QUALITY_INDICATOR: 'stream quality indicator',
PREMIUM_TIER_0_TRIAL_ENDING_NOTICE: 'premium tier 0 trial ending notice',
PREMIUM_TIER_2_TRIAL_ENDING_NOTICE: 'premium tier 2 trial ending notice',
PREMIUM_TIER_2_DISCOUNT_ENDING_NOTICE: 'premium tier 2 discount ending notice',
BOOSTED_GUILD_PERKS_MODAL: 'boosted guild perks modal', GAME_SERVER_PAGE: 'game server page',
GAME_SERVER_PAGE_SIDEBAR: 'game server page sidebar', GAME_SERVER_GAME: 'game server game',
GAME_SERVER_INSTRUCTIONS_MODAL: 'game server instructions modal',
GAME_SERVER_SETUP_MODAL: 'game server setup modal',
GAME_SERVER_GUILD_SELECT_MODAL: 'game server guild select modal',
GUILD_POWERUPS_OVERVIEW: 'guild powerups - overview',
GUILD_POWERUPS_GUILD_SETTINGS_ROLE_EDIT: 'guild powerups - guild settings role edit',
GUILD_POWERUPS_GUILD_SETTINGS_PREMIUM: 'guild powerups - guild settings premium',
GUILD_POWERUPS_GUILD_SETTINGS_TAGS: 'guild powerups - guild settings tag edit',
GUILD_POWERUPS_GUILD_SETTINGS_VANITY_URL: 'guild powerups - guild settings vanity url',
GUILD_POWERUPS_GUILD_SETTINGS_GUILD_THEME: 'guild powerups - guild settings guild theme',
GUILD_POWERUPS_CHANNEL_LIST_ROW: 'guild powerups - channel list row',
GUILD_POWERUPS_CHANNEL_WELCOME_CTA: 'guild powerups - channel welcome cta',
GUILD_POWERUPS_COACHMARK_LEVEL_UP: 'guild powerups - coachmark - level up',
GUILD_POWERUPS_COACHMARK_NEW_PERKS: 'guild powerups - coachmark - new perks',
GUILD_POWERUPS_COACHMARK_PURCHASEABLE_PERKS: 'guild powerups - coachmark - purchaseable perks',
GUILD_POWERUPS_COACHMARK_NEW_PERK_AVAILABLE: 'guild powerups - coachmark - new perk available',
GUILD_POWERUPS_COACHMARK_GAME_SERVER_HOSTING_AVAILABLE: 'guild powerups - coachmark - game server hosting available',
GUILD_POWERUPS_COACHMARK_GAME_SERVER_NEW_GAMES: 'guild powerups - coachmark - game server new games',
GUILD_POWERUPS_COACHMARK_GAME_SERVER_PRICING_CHANGE: 'guild powerups - coachmark - game server pricing change',
GUILD_POWERUPS_COACHMARK_BOOST_TO_UNLOCK: 'guild powerups - coachmark - boost to unlock',
GUILD_POWERUPS_COACHMARK_EXPIRING_PERK: 'guild powerups - coachmark - expiring perk',
GUILD_POWERUPS_MARKETING: 'guild powerups - marketing',
GUILD_POWERUPS_MARKETING_VIDEO_MODAL: 'guild powerups - marketing video modal',
GUILD_BOOSTING_PREMIUM_UPSELL: 'guild boosting premium upsell',
GUILD_BOOSTING_FIRST_TIME_BOOSTER_UPSELL: 'guild boosting first time booster upsell',
GUILD_BOOSTING_ANNOUNCEMENT_MESSAGE: 'guild boosting announcement message',
GUILD_BOOSTING_ANNOUNCEMENT_MESSAGE_FIRST_TIME_BOOSTER: 'guild boosting announcement message first time booster',
RPC: 'rpc', BILLING_STANDALONE: 'billing standalone', GUILD_CHANNEL_LIST: 'guild channel list',
GUILD_CHANNEL_LIST_FOOTER: 'guild channel list footer', STICKER_MESSAGE: 'sticker message',
CHANNEL_TEXT_AREA: 'channel text area', HEADER_BAR: 'header bar',
GUILD_ROLE_SUBSCRIPTION_CANCELLATION_MODAL: 'guild role subscription cancellation modal',
GUILD_ROLE_SUBSCRIPTION_PURCHASE_SYSTEM_MESSAGE: 'guild role subscription purchase system message',
GUILD_ROLE_SUBSCRIPTION_EMOJI_PICKER_UPSELL: 'guild role subscription emoji picker upsell',
GUILD_ROLE_SUBSCRIPTION_EMOJI_TEXT_POPOVER_UPSELL: 'guild role subscription emoji text popover upsell',
PREMIUM_SUBSCRIPTION_CANCELLATION_MODAL: 'premium subscription cancellation modal',
APPLICATION_OTP_PAYMENT_MODAL: 'application one time purchase payment modal',
APPLICATION_SUBSCRIPTION_CHECKOUT: 'application subscription checkout',
APPLICATION_SUBSCRIPTION_CANCELLATION_MODAL: 'application subscription cancellation modal',
PENDING_PLAN_CHANGE_NOTICE: 'pending plan change notice',
SUBSCRIPTION_CANCEL_DOWNGRADE_MODAL: 'subscription cancel downgrade modal', GUILD_HEADER: 'guild header',
GUILD_BANNER: 'guild banner', GUILD_BANNER_NOTICE: 'guild banner notice',
GUILD_BOOST_PURCHASE_MODAL: 'guild boost purchase modal',
GUILD_BOOST_CANCELLATION_MODAL: 'guild boost cancellation modal',
GUILD_BOOST_UNCANCELLATION_MODAL: 'guild boost uncancellation modal',
GUILD_BOOSTING_PROGRESS_BAR: 'guild boosting progress bar',
GUILD_BOOSTING_TIER_NONE: 'guild boosting tier none', GUILD_BOOSTING_TIER_1: 'guild boosting tier 1',
GUILD_BOOSTING_TIER_2: 'guild boosting tier 2', GUILD_BOOSTING_TIER_3: 'guild boosting tier 3',
GUILD_BOOSTING_SYSTEM_MESSAGE: 'guild boosting system message',
GUILD_BOOSTING_UPSELL_BANNER: 'guild boosting upsell banner',
GUILD_BOOSTING_SIDEBAR_DISPLAY: 'guild boosting sidebar display', GUILDS_LIST: 'guilds list',
ACTIVITY_CHANNEL_SELECTOR: 'activity channel selector', ACTIVITY_DIRECTORY: 'activity directory',
ACTIVITY_TILE: 'activity tile', PRESENCE_ACTIVITY_TILE: 'presence activity tile',
ACTIVITY_UPSELL: 'activity upsell', ACTIVITY_VOICE_CONTROLS_TOGGLE: 'activity voice controls toggle',
INSTANT_INVITE_MODAL: 'instant invite modal', IMAGE_CROPPING_MODAL: 'image cropping modal',
GIF_PICKER: 'gif picker', EXTERNAL_INVITE_LINK_MODAL: 'external invite link modal',
INVITE_MODAL: 'invite modal', INVITE_EMBED: 'invite embed',
VOICE_CHANNEL_LIST_INVITE_EMBED: 'voice channel list invite embed',
VOICE_INVITE_SUGGESTIONS: 'voice invite suggestions',
VOICE_INVITE_SUGGESTIONS_POPOVER: 'voice invite suggestions popover',
VOICE_INVITE_STREAM_PREVIEW: 'voice invite stream preview', NEW_GUILD_BUTTON: 'new guild button',
CHARACTER_COUNT: 'character count', CHANNEL_HEADER: 'channel header', DM_CHANNEL: 'dm channel',
GUILD_CHANNEL: 'guild channel', FORUM_CHANNEL: 'forum channel', FILE_UPLOAD_POPOUT: 'file upload popout',
VOICE_USER: 'voice user', USER_LIST_ITEM: 'user list item', EXECUTED_COMMAND: 'executed command',
EMOJI: 'emoji', AVATAR: 'avatar', USERNAME: 'username', MEMBER_LIST: 'member list',
USER_MENTION: 'user mention', ROLE_MENTION: 'role mention', CONNECTIONS_ROLE_POPOUT: 'connections role popout',
XBOX_CONNECTED_ACCOUNTS_BANNER: 'xbox connected accounts banner', GAME_MENU: 'game menu',
GUILD_PROFILE: 'guild profile', EDIT_AVATAR: 'edit avatar', EDIT_BANNER: 'edit banner',
CHAT_INPUT: 'chat input', CHAT_SIDEBAR: 'chat sidebar', CREATE_THREAD: 'create thread',
SOUNDBOARD_CONTEXT_MENU: 'soundboard context menu',
PREMIUM_PREVIEW_UPSELL_HEADER: 'premium preview upsell header',
PREMIUM_UPSELL_OVERLAY: 'premium upsell overlay', OVERLAY_NUDGE: 'overlay nudge',
SELECT_IMAGE_MODAL: 'select image modal', VIDEO_BACKGROUND_OPTIONS: 'video background options',
VIDEO_BACKGROUND_IMAGE_OPTION: 'video background image option',
VIDEO_BACKGROUND_CUSTOM_UPSELL: 'video background custom upsell', CAMERA_PREVIEW: 'camera preview',
HOME_PAGE_PREMIUM_TAB: 'home page premium tab', HOME_PAGE_SHOP_TAB: 'home page shop tab',
QUEST_HOME_PAGE: 'quest home page', QUEST_EMBED: 'quest embed', QUEST_REWARD_MODAL: 'quest reward modal',
QUEST_IN_GAME_MODAL_CONNECT: 'quest in game modal connect',
PREMIUM_MARKETING_SURFACE: 'premium marketing surface',
PREMIUM_MARKETING_HERO_CTA: 'premium marketing hero cta',
PREMIUM_MARKETING_FOOTER_CTA: 'premium marketing footer cta',
PREMIUM_MARKETING_REFERALL_PROGRAM_PROGRESS_BAR: 'premium marketing referral program progress bar',
PREMIUM_MARKETING_REFERALL_PROGRAM_SHARE_MODAL: 'premium marketing referral program share modal',
PREMIUM_MARKETING_TIER_1_CTA: 'premium marketing tier 1 cta',
PREMIUM_MARKETING_TIER_2_CTA: 'premium marketing tier 2 cta',
PREMIUM_MARKETING_LOCALIZED_PRICING_TIER_2_CTA: 'premium marketing localized pricing tier 2 cta',
PREMIUM_MARKETING_SURFACE_HERO_CTA: 'premium marketing surface hero cta',
PREMIUM_MARKETING_SURFACE_TIER_2_CTA: 'premium marketing surface tier 2 cta',
PREMIUM_MARKETING_SURFACE_TIER_1_CTA: 'premium marketing surface tier 1 cta',
PREMIUM_MARKETING_TIER_CARD: 'premium marketing tier card',
PREMIUM_MARKETING_PERK_CARD: 'premium marketing perk card',
PREMIUM_MARKETING_BENTO_BOX: 'premium marketing bento box',
PREMIUM_MARKETING_FEATURE: 'premium marketing feature',
PREMIUM_MARKETING_COMPARISON_TABLE: 'premium marketing comparison table',
PREMIUM_MARKETING_FOOTER: 'premium marketing footer',
PREMIUM_MARKETING_GIFT_SECTION: 'premium marketing gift section',
PREMIUM_MARKETING_NITRO_HOME_ORBS_SECTION: 'premium marketing nitro home orbs section',
PREMIUM_MARKETING_TENURE_REWARDS_SECTION: 'premium marketing tenure rewards section',
PREMIUM_MARKETING_REWARD_SELECTION_MODAL: 'premium marketing reward selection modal',
TIERED_TENURE_BADGES_MODAL: 'tiered tenure badges modal',
TIERED_TENURE_BADGE_CHURN_REMINDER: 'tiered tenure badge churn reminder',
CHANNEL_CALL_ACTION_BAR: 'channel call action bar',
AGGREGATE_PREMIUM_UPSELL_MODAL_FEATURE_EMOJI: 'aggregate premium upsell modal emoji',
AGGREGATE_PREMIUM_UPSELL_MODAL_FEATURE_PROFILE_CUSTOMIZATION: 'aggregate premium upsell modal profile customization',
AGGREGATE_PREMIUM_UPSELL_MODAL_FEATURE_HD_STREAMING: 'aggregate premium upsell modal hd streaming',
AGGREGATE_PREMIUM_UPSELL_MODAL_FEATURE_LARGER_FILE_UPLOADS: 'aggregate premium upsell modal larger file uploads',
AGGREGATE_PREMIUM_UPSELL_MODAL_FEATURE_BOGO: 'aggregate premium upsell modal bogo',
CHANNEL_EXPANDED_CONTROLS: 'channel expanded controls', VOICE_CONTROL_TRAY: 'voice control tray',
ACTIVE_NOW_COLUMN: 'active now column', CONTEXT_MENU: 'context menu',
MESSAGE_CONTEXT_MENU: 'message context menu', STREAM_CONTEXT_MENU: 'stream context menu',
GROUP_DM_CONTEXT_MENU: 'group dm context menu',
GROUP_DM_CONTEXT_MENU_CHANGE_ICON: 'group dm context menu change icon',
GROUP_DM_CONTEXT_MENU_REMOVE_ICON: 'group dm context menu remove icon',
GROUP_DM_EDIT_MODAL: 'group dm edit modal', NEW_GROUP_DM_INVITE_MODAL: 'new group dm invite modal',
GROUP_DM_ICON_EDITOR: 'group dm icon editor', GROUP_DM_SYSTEM_MESSAGE_NAME: 'group dm system message name',
GROUP_DM_SYSTEM_MESSAGE_ICON: 'group dm system message icon', EMPTY_GROUP_DM: 'empty group dm',
CHANNEL_ACTIVITY_FEED_VOICE_MENU: 'channel activity feed voice menu',
CHANNEL_AUDIT_LOG_MENU: 'channel audit log menu', CHANNEL_CATEGORY_MENU: 'channel category menu',
CHANNEL_LIST_DIRECTORY_CHANNEL_MENU: 'channel list menu',
CHANNEL_LIST_STORE_CHANNEL_MENU: 'channel list store channel menu',
CHANNEL_LIST_TEXT_CHANNEL_MENU: 'channel list text channel menu',
CHANNEL_LIST_THREAD_MENU: 'channel list thread menu',
CHANNEL_LIST_VOICE_CHANNEL_MENU: 'channel list voice channel menu', CHANNEL_TITLE_MENU: 'channel title menu',
GROUP_DM_MENU: 'group dm menu', AUDIT_LOG_USER_MENU: 'audit log user menu',
BANNED_USER_MENU: 'banned user menu', DM_USER_MENU: 'dm user menu', GROUP_DM_USER_MENU: 'group dm user menu',
GUILD_CHANNEL_USER_MENU: 'guild channel user menu', GUILD_MODERATION_USER_MENU: 'guild moderation user menu',
GUILD_MODERATION_RAID_MENU: 'guild moderation raid menu',
GUILD_SETTINGS_EMOJI_EDIT_BUTTON: 'guild settings edit emoji',
GUILD_SETTINGS_USER_MENU: 'guild settings user menu', GUILD_SETTINGS_SOUNDBOARD: 'guild settings soundboard',
GUILD_USER_MENU: 'guild user menu', UNKNOWN_USER_MENU: 'unknown user menu',
THREAD_USER_MENU: 'thread user menu', USER_GENERIC_MENU: 'user generic menu',
USER_OVERLAY_CONTEXT_MENU: 'user overlay context menu', VOICE_ACTION_SHEET: 'voice action sheet',
FOCUSED_VOICE_CONTROLS: 'focused voice controls', MASKED_LINK: 'masked link',
LAST_NITRO_HOST_ACTION_SHEET: 'last nitro host action sheet',
LAST_NITRO_HOST_LEFT_ACTION_SHEET: 'last nitro host left action sheet',
PREMIUM_TIER_0_ANNOUNCEMENT_ACTION_SHEET: 'premium tier 0 announcement action sheet',
PS_VOICE_CONNECT_UPSELL: 'ps voice connect upsell',
EDIT_AVATAR_DECORATION_MODAL: 'edit avatar decoration modal',
EDIT_AVATAR_DECORATION_SHEET: 'edit avatar decoration sheet',
EDIT_PROFILE_EFFECT_MODAL: 'edit profile effect modal',
EDIT_PROFILE_EFFECT_SHEET: 'edit profile effect action sheet',
EDIT_PROFILE_FRAME_SHEET: 'edit profile frame action sheet',
EDIT_PROFILE_FRAME_MODAL: 'edit profile frame modal', EDIT_NAMEPLATE_MODAL: 'edit nameplate modal',
EDIT_NAMEPLATE_SHEET: 'edit nameplate sheet', EDIT_DISPLAY_NAME_STYLES_MODAL: 'edit display name styles modal',
CHANNEL_CALL_OVERFLOW_ACTION_SHEET: 'channel_call_overflow_action_sheet',
ACTIVITY_COACH_MARK_NITRO: 'activity coach mark nitro',
ACTIVITY_COACH_MARK_BOOSTING: 'activity coach mark boosting',
ACTIVITY_COACH_MARK_HALLOWEEN_2022: 'activity coach mark halloween 2022',
PREMIUM_TRIAL_TUTORIAL_COACHMARK: 'premium trial tutorial coachmark',
PREMIUM_TRIAL_TUTORIAL_TOOLTIP: 'premium trial tutorial tooltip',
ACTIVITY_COACH_MARK_BASH_OUT: 'activity coach mark bash out',
ACTIVITY_COACH_MARK_POKER: 'activity coach mark poker',
ACTIVITIES_COACH_MARK_GAME_NIGHT: 'activities coach mark game night', STAGE_CHANNEL_CALL: 'stage channel call',
REQUEST_TO_SPEAK: 'request to speak', STAGE_VIDEO_LIMIT: 'stage video limit',
ACTIVITIES_MINI_SHELF: 'activities mini shelf', APP_OAUTH2_LINK_EMBED: 'application oauth2 embed',
APP_DMS_ENTRY_POINT_COMMAND_BUTTON: 'app_dms_entry_point_command_button', APP_DETAIL: 'app detail',
VC_TILE_ACTIVITY_INVITE: 'vc tile activity invite', VC_TILE_ACTIVITY_SUGGESTION: 'vc tile activity suggestion',
VC_TILE_ACTIVITY_SHELF_BUTTON: 'vc tile activity shelf button',
BURST_REACTION_TUTORIAL_COACHMARK: 'super reaction tutorial coachmark', MESSAGE_REACTIONS: 'message reactions',
MESSAGE_PREVIEW_REACTIONS: 'message preview reactions',
DOUBLE_TAP_TO_REACT_ACTION_SHEET: 'double tap to react action sheet', APP_ICON_SELECTOR: 'app icon selector',
APP_ICON_EDITOR: 'app icon editor', APP_ICON_NEW_STYLES_COACHMARK: 'app icon new styles coachmark',
CLIENT_THEMES_EDITOR: 'client themes editor', CLIENT_THEMES_THEME_SELECTOR: 'client themes theme selector',
CUSTOM_THEMES_EDITOR_COACHMARK: 'custom themes editor coachmark', CUSTOM_THEMES_EDITOR: 'custom themes editor',
AUTOMOD_PROFILE_QUARANTINE_ALERT: 'automod profile quarantine alert',
AUTOMOD_NAGBAR_NOTICE: 'automod nagbar notice', SHARE_NITRO_EMBED: 'share nitro embed',
SHARE_CUSTOM_CLIENT_THEME_EMBED: 'share custom client theme embed',
EMBEDDED_ACTIVITY_MESSAGE: 'embedded activity message',
REFERRAL_TRIALS_COMPOSER_BUTTON: 'referral trials composer button',
REFERRAL_TRIALS_POPOUT: 'referral trials popout', REFERRAL_MESSAGE_EMBED: 'referral message embed',
PREMIUM_MARKETING_ANNOUNCEMENT_MODAL: 'premium marketing announcement modal',
PREMIUM_MARKETING_PAGE_BANNER: 'premium marketing page banner', ACTIVITY_BOOKMARK: 'activity bookmark',
ACTIVITY_CUSTOM_LINK: 'activity custom link', ACTIVITY_BOOKMARK_LAUNCHER: 'activity bookmark launcher',
ACTIVITY_INSTANCE_EMBED: 'activity instance embed', ACTIVITY_DETAIL_PAGE: 'activity detail page',
ACTIVITY_INVITE_SHEET: 'activity invite sheet', ACTIVITIES_PAGE: 'activities page',
ACTIVITIES_PAGE_NOTIFICATION_DOT: 'activities page cta',
ACTIVITIES_PAGE_WHATS_NEW_TILE: 'activities page whats new tile', VOICE_PANEL: 'voice panel',
VOICE_PANEL_PRE_JOIN: 'voice panel pre-join content',
VOICE_CHANNEL_ACTIVITY_ACTIONS: 'voice channel activity actions',
ACTIVITIES_IM_FEELING_LUCKY: 'activities im feeling lucky',
ACTIVITIES_HAPPENING_NOW: 'activities happening now',
INTERACTION_APPLICATION_COMMAND: 'interaction application command',
INTERACTION_MESSAGE_COMPONENT: 'interaction message component',
INTERACTION_MODAL_SUBMIT: 'interaction modal submit', MEDIA_VIEWER: 'media viewer',
MESSAGE_LONG_PRESS_MENU: 'message long press menu', CHANNEL_LONG_PRESS_MENU: 'channel long press menu',
COLLECTIBLES_SHOP: 'collectibles shop', COLLECTIBLES_SHOP_HOME_SCREEN: 'collectibles shop home screen',
COLLECTIBLES_SHOP_FULLSCREEN: 'collectibles shop fullscreen',
COLLECTIBLES_SHOP_ORBS_TAB: 'collectibles shop orbs tab',
COLLECTIBLES_SHOP_AVATAR_DECORATIONS_TAB: 'collectibles shop avatar decorations tab',
COLLECTIBLES_SHOP_PROFILE_EFFECTS_TAB: 'collectibles shop profile effects tab',
COLLECTIBLES_SHOP_NAMEPLATES_TAB: 'collectibles shop nameplates tab',
COLLECTIBLES_SHOP_PROFILE_FRAMES_TAB: 'collectibles shop profile frames tab',
COLLECTIBLES_SHOP_BUNDLES_TAB: 'collectibles shop bundles tab',
COLLECTIBLES_SHOP_INDEX_PAGE: 'collectibles shop index page', COLLECTIBLES_SHOP_CARD: 'collectibles shop card',
COLLECTIBLES_SHOP_CARD_PREVIEW_BUTTON: 'collectibles shop card preview button',
COLLECTIBLES_SHOP_DETAILS_MODAL: 'collectibles shop details modal',
COLLECTIBLES_SHOP_DETAILS_RENTAL_MODAL: 'collectibles shop details rental modal',
COLLECTIBLES_SHOP_PROFILE_PREVIEW: 'collectibles shop long form profile preview',
COLLECTIBLES_SHOP_HEADER_CAROUSEL: 'collectibles shop header carousel',
COLLECTIBLES_SHOP_POPULAR_PICKS_CAROUSEL: 'collectibles shop popular picks carousel',
COLLECTIBLES_SHOP_HERO: 'collectibles shop hero',
COLLECTIBLES_SHOP_FEATURED_BLOCK: 'collectibles shop featured block',
COLLECTIBLES_SHOP_POPULAR_PICKS: 'collectibles shop popular picks',
COLLECTIBLES_SHOP_SHELF: 'collectibles shop shelf',
COLLECTIBLES_MOBILE_SHOP_ALL_BUTTON: 'collectibles mobile shop all button',
COLLECTIBLES_SHOP_MOBILE_FEATURED_PAGE_MENU_ITEM: 'collectibles shop mobile featured page menu item',
COLLECTIBLES_SHOP_MOBILE_SHOP_ALL_MENU_ITEM: 'collectibles shop mobile shop all menu item',
COLLECTIBLES_SHOP_MOBILE_ORBS_MENU_ITEM: 'collectibles shop mobile orbs menu item',
COLLECTIBLES_PROFILE_SETTINGS_UPSELL: 'collectibles profile settings upsell',
COLLECTIBLES_PAYMENT_MODAL: 'collectibles payment modal',
COLLECTIBLES_COLLECTED_MODAL: 'collectibles collected modal',
COLLECTIBLES_FEATURE_EDUCATION_TOOLTIP: 'collectibles feature education tooltip',
COLLECTIBLES_GIFT_CUSTOMIZATION_MODAL: 'collectibles gift customization modal',
COLLECTIBLES_MOBILE_GIFT_MODAL: 'collectibles mobile gift modal',
PROFILE_FRAMES_EA_MARKETING: 'profile frames ea marketing', VIEW_ALL_RENTALS_MODAL: 'view all rentals modal',
PREMIUM_BILLING_INFO: 'premium billing info', PREMIUM_SUBSCRIPTION_DETAILS: 'premium subscription details',
APP_SUBSCRIPTION_PAYMENT_SOURCE_WITH_INVOICE: 'application subscription payment source with invoice',
GUILD_BOOST_SLOT_CANCELLATION_MODAL_CURRENT_INVOICE_PREVIEW: 'guild boost slot cancellation modal current invoice preview',
GUILD_BOOST_SLOT_CANCELLATION_MODAL_RENEWAL_INVOICE_PREVIEW: 'guild boost slot cancellation modal renewal invoice preview',
GUILD_BOOSTING_REVIEW_PRORATED: 'guild boosting review prorated',
GUILD_BOOSTING_REVIEW_RENEWAL: 'guild boosting review renewal',
GUILD_ROLE_SUBSCRIPTION_PAYMENT_SOURCE_WITH_INVOICE: 'guild role subscription payment source with invoice',
PREMIUM_PLAN_SELECT: 'premium_plan_select', CANCEL_INVOICE_PREVIEW: 'cancel_invoice_preview',
PREMIUM_SUBSCRIPTION_FINE_PRINT_CONTENT: 'premium subscription fine print content',
SUBSCRIPTION_INVOICE_FOOTER: 'subscription invoice footer',
BILLING_SWITCH_PLAN_IMMEDIATE_PRORATED_INVOICE_PREVIEW: 'billing switch plan immediate prorated invoice preview',
BILLING_SWITCH_PLAN_IMMEDIATE_RENEWAL_INVOICE_PREVIEW: 'billing switch plan immediate renewal invoice preview',
GUILD_BOOSTING_PLAN_SELECT: 'GUILD_BOOSTING_PLAN_SELECT', MEMBER_SAFETY_PAGE: 'member safety page',
GUILD_SETTINGS_MEMBERS_PAGE: 'guild settings members page',
GUILD_SETTINGS_PROFILE_PAGE: 'guild settings profile page',
GUILD_SETTINGS_ENGAGEMENT_PAGE: 'guild settings engagement page',
GUILD_SETTINGS_BOOST_PERKS_PAGE: 'guild settings boost perks page',
GUILD_MEMBER_MOD_VIEW: 'guild member mod view',
GUILD_MEMBER_APPLICATION_REVIEW: 'guild member application review',
GAME_INVITE_CHANNEL_ACCOUNT_LINK_BANNER: 'game invite channel account link banner',
GAME_INVITE_CHANNEL_POST_CREATION: 'game invite channel post creation',
GAME_INVITE_CHANNEL_POST: 'game invite channel post',
GAME_INVITE_CHANNEL_EMPTY_STATE: 'game invite channel empty state', FOR_LATER_HELPERS: 'for later helpers',
FOR_LATER_POPOUT: 'for later popout', GUILD_PRODUCT_EMBED_CARD: 'guild product embed card',
GUILD_PRODUCT_INFO_MODAL: 'guild product info modal',
GUILD_PRODUCT_PAYMENT_MODAL: 'guild product payment modal', GUILD_SHOP_PAGE: 'guild shop page',
ACTIVITY_SHELF_ACTIVITY_DETAILS: 'activity shelf activty details', MESSAGE_REMIX_TAG: 'message remix tag',
MESSAGE_REMIX_BUTTON: 'message remix button',
HAPPENING_NOW_EMBEDDED_ACTIVITY: 'happening now embedded activity', CLIPS_SETTINGS: 'clips settings',
CLIPS_GALLERY: 'clips gallery', CLIPS_GALLERY_ITEM: 'clips gallery item', CLIPS_EDITOR: 'clips editor',
CLIPS_SHARE_MODAL: 'clips share modal', CHANNEL_ATTACH_BUTTON: 'channel attach button',
PREMIUM_TRIAL_OFFER_ACTION_SHEET: 'premium trial offer action sheet',
PREMIUM_DISCOUNT_OFFER_ACTION_SHEET: 'premium discount offer action sheet',
PREMIUM_SUBSCRIBER_NITRO_HOME: 'premium subscriber nitro home',
CLYDE_PROFILE_SHARE_MODAL: 'clyde profile share modal', GUILD_EVENT_MODAL: 'guild event modal',
GUILD_EVENT_CARD: 'guild event card', EVENT_SETTINGS: 'event settings',
GUILD_EVENT_RSVP_BUTTON: 'guild event rsvp button', GIFT_CODE_MODAL: 'gift code modal',
APP_STOREFRONT: 'app storefront', SHOP_PRODUCT_DETAILS: 'shop product details',
SEARCH_MEMBERS: 'search members', POLL_VOTES: 'poll votes', YOU_SCREEN: 'you screen',
YOU_ACCOUNT_ACTION_SHEET: 'you account action sheet',
BILLING_PAUSED_SUBSCRIPTION_INVOICE_RESUME_PREVIEW: 'billing payment modal paused subscription resume invoice preview',
BILLING_PAUSED_SUBSCRIPTION_INVOICE_RENEWAL_PREVIEW: 'billing payment modal paused subscription renewal invoice preview',
EDIT_CHANNEL_SYNCING: 'edit channel syncing', GLOBAL_DISCOVERY: 'global discovery',
COLLECTIBLES_LIGHTNING_CHECKOUT: 'collectibles lightning checkout',
CHECKOUT_RECOVERY_NAGBAR: 'checkout recovery nagbar', DEV_TOOLS: 'devtools',
IN_CASE_YOU_MISSED_IT_TAB: 'ICYMI Tab', SEASONAL_GIFTING_COACHMARK: 'seasonal gifting coachmark',
VALENTINES_GIFTING_COACHMARK: 'valentines gifting coachmark',
SEASONAL_GIFTING_REMINDER_COACHMARK: 'seasonal gifting reminder coachmark',
SEASONAL_GIFTING_REMINDER_NAGBAR: 'seasonal gifting reminder nagbar',
GIFTING_PROMOTION_COACHMARK: 'gifting promotion coachmark',
GIFTING_BADGE_POST_PURCHASE: 'gifting badge post purchase', GIFTING_BADGE_COACHMARK: 'gifting badge coachmark',
GIFTING_BADGE_INFO_ACTION_SHEET: 'gifting badge info action sheet',
PREMIUM_GIFT_PLAN_SELECTION: 'premium gift plan selection',
PREMIUM_GIFT_CUSTOMIZATION: 'premium gift customization',
THIRD_PARTY_PROMOTIONS_MODAL: 'third party promotions modal', RECURRING_3PP_MODAL: 'recurring 3pp modal',
GO_LIVE_MODAL_V2: 'go live modal v2', GO_LIVE_MODAL_SETTINGS_SELECTION: 'go live modal settings selection',
MOBILE_GO_LIVE_ACTION_SHEET: 'mobile go live action sheet', CHECKPOINT: 'checkpoint',
GUILD_SETTINGS_OFFICIAL_MESSAGES: 'guild settings official messages',
APP_DMS_QUICK_LAUNCHER: 'app_dms_quick_launcher',
APP_DMS_QUICK_LAUNCHER_FRECENCY: 'app_dms_quick_launcher_frecency',
APP_DMS_QUICK_LAUNCHER_RECOMMENDATIONS: 'app_dms_quick_launcher_recommendations',
APP_DMS_QUICK_LAUNCHER_MORE: 'app_dms_quick_launcher_more', PLAY_TAB: 'play tab',
USER_SETTINGS_VOICE_AND_VIDEO: 'user settings voice and video',
USER_SETTINGS_VIDEO_TAB: 'user settings video tab', USER_SETTINGS_VOICE_TAB: 'user settings voice tab',
USER_SETTINGS_USER_PROFILE: 'user settings user profile',
USER_SETTINGS_GUILD_PROFILE: 'user settings guild profile',
USER_SETTINGS_TRY_OUT_PREMIUM: 'user settings try out premium',
USER_SETTINGS_SOUNDBOARD_TAB: 'user settings soundboard tab',
USER_SETTINGS_DEBUG_TAB: 'user settings debug tab', USER_SETTINGS_FAVORITES: 'user settings favorites',
DEEPLINK: 'deeplink', HOLIDAY_COACHMARK: 'holiday coachmark',
USER_SETTINGS_COACHMARK: 'user settings coachmark',
CONNECTED_ACCOUNT_RELINK_BUTTON: 'connected account relink button', APP_MESSAGE_EMBED: 'app message embed',
USER_SETTINGS_SESSIONS: 'user settings sessions', USER_SETTINGS_CONNECTIONS: 'user settings connections',
MOBILE_APP_MANAGE_PREMIUM_SUBSCRIPTION_CTA: 'mobile app manage premium subscription cta',
SHARING_CONTROLS_COACHMARK: 'sharing controls coachmark', NOT_SHARING_LINK: 'not sharing link',
USER_PROFILE_POPOUT: 'user profile popout', USER_PROFILE_MODAL: 'user profile modal',
USER_PROFILE_MODAL_V2: 'user profile modal v2', USER_PROFILE_SIDEBAR: 'user profile sidebar',
USER_PROFILE_ACCOUNT_POPOUT: 'user profile account popout',
USER_PROFILE_ACTION_SHEET: 'user profile action sheet',
USER_PROFILE_LIVE_ACTIVITY_CARD: 'user profile live activity card',
USER_PROFILE_RECENT_ACTIVITY_CARD: 'user profile recent activity card',
USER_PROFILE_VOICE_ACTIVITY_CARD: 'user profile voice activity card',
USER_PROFILE_ACTIVITY_CONTEXT_MENU: 'user profile activity context menu',
USER_PROFILE_OVERFLOW_MENU: 'user profile overflow menu',
USER_PROFILE_CUSTOM_STATUS_BUBBLE: 'user profile custom status bubble',
USER_PROFILE_ACTIVITY_BUTTONS: 'user profile activity buttons',
USER_PROFILE_ACTIVITY_CLOUD_PLAY_SECTION: 'user profile cloud play section',
USER_PROFILE_WISHLIST: 'user profile wishlist',
USER_PROFILE_EDIT_WISHLIST_ACTION_SHEET: 'user profile edit wishlist action sheet',
WISHLIST_BANNER: 'wishlist banner', PREMIUM_WISHLIST_MARKETING_PAGE: 'premium wishlist marketing page',
PREMIUM_WISHLIST_SETTINGS_HERO: 'premium wishlist settings hero',
PREMIUM_WISHLIST_STREAM_UPSELL: 'premium wishlist stream upsell',
PREMIUM_WISHLIST_SOUNDBOARD_UPSELL: 'premium wishlist soundboard upsell',
PREMIUM_WISHLIST_EMOJI_UPSELL: 'premium wishlist emoji upsell',
PREMIUM_WISHLIST_CLIENT_THEMES_EDITOR: 'premium wishlist client themes editor',
PREMIUM_WISHLIST_CUSTOM_THEMES_EDITOR: 'premium wishlist custom themes editor',
PREMIUM_WISHLIST_NITRO_MEMBER_HUB: 'premium wishlist nitro member hub',
PREMIUM_WISHLIST_EDIT_PROFILE_UPSELL: 'premium wishlist edit profile upsell',
BLOCKED_PROFILE_MODAL: 'blocked profile modal', IGNORED_PROFILE_MODAL: 'ignored profile modal',
BLOCKED_PROFILE_POPOUT: 'blocked profile popout', IGNORED_PROFILE_POPOUT: 'ignored profile popout',
BLOCKED_PROFILE_ACTION_SHEET: 'blocked profile action sheet',
IGNORED_PROFILE_ACTION_SHEET: 'ignored profile action sheet',
IGNORE_CONFIRMATION_ACTION_SHEET: 'ignore confirmation action sheet',
BLOCK_CONFIRMATION_ACTION_SHEET: 'block confirmation action sheet',
BLOCKED_PROFILE_PANEL: 'blocked profile panel', IGNORED_PROFILE_PANEL: 'blocked profile panel',
CUSTOM_STATUS_MODAL: 'custom status modal', CUSTOM_STATUS_TAGS_COACHMARK: 'custom status tags coachmark',
ACTIVITY_PIP: 'activity PIP', FRAME_PIP: 'frame PIP', VIDEO_PIP: 'video PIP',
INCOMING_CALL_MODAL: 'incoming call modal', VOICE_CHANNEL_HEADER: 'voice channel header',
ACTIVITY_PANEL: 'activity panel', AUDIENCE_TILE: 'audience tile', STAGE_TILE: 'stage tile',
CHAT_WALLPAPER_PICKER: 'chat wallpaper picker', APP_LAUNCHER: 'app launcher',
APP_LAUNCHER_IN_VOICE_BANNER: 'app launcher in voice banner',
APP_LAUNCHER_FRIENDS_TAB_JOIN_BUTTON: 'app launcher friends who play tab join friend',
REPORT_TO_MOD_CHANNEL_CONTEXT_MENU: 'report to mod channel context menu', GAME_PROFILE: 'game profile',
CONFERENCE_MODE: 'conference mode', GO_LIVE_KEYBIND: 'go live keybind',
OVERLAY_VOICE_WIDGET: 'overlay voice widget', REQUEST_TO_STREAM_INVITE_EMBED: 'request to stream invite embed',
MEMBER_LIST_ACTIVITY_CONTENT_POPOUT: 'member list activity content popout',
MEMBER_LIST_GAMING_CONTENT_POPOUT: 'member list gaming content popout',
CLOUD_PLAY_POPOVER: 'cloud play popover',
NOW_PLAYING_ITEM_RICH_PRESENCE_SECTION: 'now playing item rich presence section',
NOW_PLAYING_ITEM_GAME_SECTION: 'now playing item game section',
BILLING_SETTINGS_BILLING: 'billing settings billing', SDK_DEBUG_TOOLS: 'sdk debug tools',
CHANNELS_AND_ROLES: 'channels and roles', GUILD_ONBOARDING: 'guild onboarding',
USER_PROFILE_APPLICATION_WIDGET: 'user profile application widget',
SLAYER_STOREFRONT_PAYMENT_MODAL: 'slayer storefront payment modal',
SLAYER_STOREFRONT_CARD_PURCHASE_BUTTON: 'slayer storefront card purchase button',
SLAYER_STOREFRONT_CARD_GIFT_BUTTON: 'slayer storefront card gift button',
SLAYER_STOREFRONT_PRODUCT_DETAILS_MODAL_PURCHASE_BUTTON: 'slayer storefront product details modal purchase button',
SLAYER_STOREFRONT_PRODUCT_DETAILS_MODAL_GIFT_BUTTON: 'slayer storefront product details modal gift button',
SLAYER_STOREFRONT_PRODUCT_DETAILS_EMBED_PURCHASE_BUTTON: 'slayer storefront product details embed purchase button',
SLAYER_STOREFRONT_PRODUCT_DETAILS_EMBED_GIFT_BUTTON: 'slayer storefront product details embed gift button',
SLAYER_STOREFRONT_WISHLIST_ITEM_CARD: 'slayer storefront wishlist item card',
SLAYER_STOREFRONT_WISHLIST_ITEM_CARD_GIFT_BUTTON: 'slayer storefront wishlist item card gift button',
SLAYER_STOREFRONT_BREADCRUMB_WISHLIST_ITEM_CARD_GIFT_BUTTON: 'slayer storefront breadcrumb wishlist item card gift button',
SOCIAL_LAYER_CLAIM_PURCHASED_ITEM_MODAL: 'social layer claim purchased item modal',
SOCIAL_LAYER_GIFT_CODE_CLAIM_MODAL: 'social layer gift code claim modal',
SOCIAL_LAYER_STOREFRONT: 'social layer storefront',
WISHLIST_ACCOUNT_POPOUT_UPSSELL: 'wishlist account popout upsell', GIFT_CODE_EMBED: 'gift code embed',
SLAYER_STOREFRONT_PRODUCT_DETAILS_EMBED: 'slayer storefront product details embed',
SLAYER_STOREFRONT_SHOP_TAB: 'slayer storefront shop tab',
SLAYER_STOREFRONT_VC_GIFTING_PANEL: 'slayer storefront vc gifting panel',
SLAYER_STOREFRONT_NATIVE_GIFT_MODAL: 'slayer storefront native gift modal',
SLAYER_STOREFRONT_NATIVE_PDP: 'slayer storefront native pdp',
SLAYER_STOREFRONT_NATIVE_PURCHASE_SUCCESS: 'slayer storefront native purchase success', AGE_GROUP: 'age group',
MOBILE_ACCOUNT_LINK_LARGE_BANNER: 'mobile account link large banner',
MOBILE_ACCOUNT_LINK_MEDIUM_BANNER: 'mobile account link medium banner',
GIFT_CARD_REDEMPTION_SUCCESS_MODAL: 'gift card redemption success modal',
GAME_COMMUNITY_MULTI_GUILD_UPSELL_GUILDS_BAR_ENTRYPOINT: 'game community multi guild upsell guilds bar entrypoint',
FAVORITES_GUILD_HOME: 'favorites guild home', FAVORITES_GUILD_UPSELL_MODAL: 'favorites guild upsell modal',
FAVORITES_GUILD_BUTTON: 'favorites guild button', FAVORITES_GUILD_MENU_ITEM: 'favorites guild menu item',
ACTION_SHEET: 'action sheet', CROISSANT_PREMIUM_HERO_CARD: 'xgpp hero card',
CROISSANT_PREMIUM_PERK_CARD: 'xgpp perk card', CROISSANT_REWARD_MODAL: 'xgpp reward modal',
XBOX_PERKS_CONNECTION_FOOTER: 'xbox perks connection footer', XBOX_PERKS_MODAL: 'xbox perks modal'};
}
@@ -0,0 +1,266 @@
/* Metro module 15662; source: modules/app_analytics/AppAnalyticsManager.tsx; dependencies: [6, 7, 15, 17, 18, 4266, 4259, 4294, 6876, 4607, 4300, 661, 672, 4041, 4863, 15128, 4483, 4860, 2] */
function _fun120065(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#120065, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15870:6, offset: 0x0251fe22, size: 390 bytes, params: 8, frame: 19
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importDefault(6) /* metro dependency 6 */;
const env0_4 = importDefault(7) /* metro dependency 7 */;
const env0_5 = importDefault(15) /* metro dependency 15 */;
const env0_6 = importDefault(17) /* metro dependency 17 */;
const env0_7 = importDefault(18) /* metro dependency 18 */;
const runningGameStoreNative = importDefault(4266) /* metro dependency 4266: RunningGameStoreNative */;
const mediaEngineStore = importDefault(4259) /* metro dependency 4259: MediaEngineStore */;
const rtcConnectionStore = importDefault(4294) /* metro dependency 4294: RTCConnectionStore */;
const selfPresenceStore = importDefault(6876) /* metro dependency 6876: SelfPresenceStore */;
const speakingStore = importDefault(4607) /* metro dependency 4607: SpeakingStore */;
const sortedVoiceStateStore = importDefault(4300) /* metro dependency 4300: SortedVoiceStateStore */;
let value = require(661) /* metro dependency 661: Constants */;
const env0_14 = value.AnalyticEvents;
const env0_15 = value.ActivityTypes;
const Millis = (importDefault(672) /* metro dependency 672: Durations */).Millis;
const MINUTE = Millis.MINUTE;
const env0_16 = 1 * MINUTE;
value = importDefault(4860) /* metro dependency 4860: AutomaticLifecycleManager */;
value = _fun120069(value);
value = new value();
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/app_analytics/AppAnalyticsManager.tsx');
exports.default = value;
}
function _isNativeReflectConstruct_120066() { // fn#120066, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15870:257, offset: 0x0251ffa8, size: 98 bytes, params: 1, frame: 18
var Boolean;
var prototype;
var valueOf;
var call;
var Reflect;
var construct;
var closure;
var value;
var error;
try {
Boolean = global.Boolean;
prototype = Boolean.prototype;
valueOf = prototype.valueOf;
call = valueOf.call;
Reflect = global.Reflect;
construct = Reflect.construct;
Boolean = global.Boolean;
closure = function() {
};
value = Reflect.apply(construct, Reflect, [Boolean, [], closure]);
value = Reflect.apply(call, valueOf, [value]);
var result = !value;
} catch (error) {
}
return (_isNativeReflectConstruct_120066_isNativeReflectConstruct = function() {
return !!result;
})();
}
function _fun120069(a0) { // fn#120069, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15870:487, offset: 0x0252000a, size: 197 bytes, params: 2, frame: 16
const closure = AppAnalyticsManager;
env0_7(closure, a0);
return env0_4(closure, [{key: '_initialize', value: function() {
var env0_0 = this;
var Map = global.Map;
var value2 = new Map();
value2 = value2.set(SpeakingStore, _fun120075);
this.stores = value2.set(RTCConnectionStore, _fun120076);
this._reset();
}}, {key: '_reset', value: function() {
this._currentUserSpeaking = false;
this._anyoneElseSpeaking = false;
if (this._reportInterval != null) {
this._reportInterval.stop();
this._reportInterval = null;
}
}}, {key: '_trackStartSpeaking', value: value_120078}, {key: '_trackStartListening', value: value_120079},
{key: '_terminate', value: function() {
this._reset();
SpeakingStore.removeChangeListener(this._handleSpeakingStoreChanged);
RTCConnectionStore.removeChangeListener(this._handleRTCConnectionStoreChanged);
}}, {key: 'getGameMetadata', value: value_120081}]);
}
function AppAnalyticsManager(a0) { // fn#120070, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15870:499, offset: 0x025200cf, size: 172 bytes, params: 2, frame: 20
var r0;
var Reflect;
let value = copyRestArgs(0, undefined);
let binding = env1_3;
binding(this, AppAnalyticsManager);
const items2 = [];
arraySpread(items2, value, 0, items2);
value = env1_6(AppAnalyticsManager);
binding = env1_5;
if (_isNativeReflectConstruct_120066()) {
Reflect = global.Reflect;
value = Reflect.construct(value, items2, env1_6(this).constructor);
r0 = value;
} else {
value = value.apply(this, items2);
r0 = value;
}
value = binding(this, r0);
value._currentUserSpeaking = false;
value._anyoneElseSpeaking = false;
value._handleRTCConnectionStoreChanged = _handleRTCConnectionStoreChanged;
value._handleSpeakingStoreChanged = _handleSpeakingStoreChanged;
return value;
}
function value_120074() { // fn#120074, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15870:1411, offset: 0x025202b5, size: 104 bytes, params: 1, frame: 16
const Map = global.Map;
let map = new Map();
map = map.set(SpeakingStore, _fun120075);
this.stores = map.set(RTCConnectionStore, _fun120076);
this._reset();
}
function value_120078() { // fn#120078, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15870:1768, offset: 0x0252037a, size: 238 bytes, params: 1, frame: 20
var value;
var channelId;
var guildId;
var moduleValue;
var trackWithMetadata;
var START_SPEAKING;
var object2;
if (this._currentUserSpeaking) {
value = environment.__proto__;
channelId = RTCConnectionStore.getChannelId();
guildId = RTCConnectionStore.getGuildId();
moduleValue = require(4863) /* metro dependency 4863: AppAnalyticsUtils */;
trackWithMetadata = moduleValue.trackWithMetadata;
START_SPEAKING = AnalyticEvents.START_SPEAKING;
object2 = {};
object2.mode = MediaEngineStore.getMode();
object2.priority = SpeakingStore.isCurrentUserPrioritySpeaking();
object2.channel = channelId;
object2.server = guildId;
object2.channel_id = channelId;
object2.guild_id = guildId;
object2.rtc_connection_id = RTCConnectionStore.getRTCConnectionId();
object2.media_session_id = RTCConnectionStore.getMediaSessionId();
object2.voice_state_count = SortedVoiceStateStore.countVoiceStatesForChannel(this._voiceChannelId);
copyDataProperties(object2, this.getGameMetadata(), SpeakingStore);
copyDataProperties(object2, RTCConnectionStore.getPacketStats(), SpeakingStore);
Reflect.apply(trackWithMetadata, moduleValue, [START_SPEAKING, object2]);
}
}
function value_120079() { // fn#120079, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15870:2233, offset: 0x02520468, size: 244 bytes, params: 1, frame: 20
var channelId;
var guildId;
var moduleValue;
var trackWithMetadata;
var START_LISTENING;
var object2;
if (!MediaEngineStore.isDeaf()) {
if (this._anyoneElseSpeaking) {
channelId = RTCConnectionStore.getChannelId();
guildId = RTCConnectionStore.getGuildId();
moduleValue = require(4863) /* metro dependency 4863: AppAnalyticsUtils */;
trackWithMetadata = moduleValue.trackWithMetadata;
START_LISTENING = AnalyticEvents.START_LISTENING;
object2 = {};
object2.mute = MediaEngineStore.isMute();
object2.anyone_priority = SpeakingStore.isAnyonePrioritySpeaking();
object2.channel = channelId;
object2.server = guildId;
object2.channel_id = channelId;
object2.guild_id = guildId;
object2.rtc_connection_id = RTCConnectionStore.getRTCConnectionId();
object2.media_session_id = RTCConnectionStore.getMediaSessionId();
object2.voice_state_count = SortedVoiceStateStore.countVoiceStatesForChannel(this._voiceChannelId);
copyDataProperties(object2, this.getGameMetadata(), SpeakingStore);
Reflect.apply(trackWithMetadata, moduleValue, [START_LISTENING, object2]);
}
}
}
function value_120081() { // fn#120081, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15870:2855, offset: 0x0252059a, size: 231 bytes, params: 1, frame: 16
var environment;
var r1;
let value = environment.__proto__;
const activity = SelfPresenceStore.findActivity(function({type}) {
return type === ActivityTypes.PLAYING;
});
const currentGameForAnalytics = RunningGameStoreNative.getCurrentGameForAnalytics();
const object2 = {};
object2.game_platform = (importDefault(15128) /* metro dependency 15128: getGamePlatform */)(activity);
const value3 = null;
object2.game_name = value3 != activity ? activity.name : value3;
object2.game_exe_name = value3 != currentGameForAnalytics ? currentGameForAnalytics.exeName : value3;
object2.game_id = value3 != activity ? activity.application_id : value3;
object2.game_distributor = value3 != currentGameForAnalytics ? currentGameForAnalytics.distributor : value3;
object2.game_distributor_game_id = value3 != currentGameForAnalytics ? currentGameForAnalytics.sku : value3;
if (value3 != currentGameForAnalytics) {
value = require(4483) /* metro dependency 4483: RobloxSubgameUtils */;
value = value.getSubgameMetadata(currentGameForAnalytics);
r1 = value;
} else {
r1 = value3;
}
object2.game_metadata = r1;
return object2;
}
function _handleRTCConnectionStoreChanged() { // fn#120071, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15870:828, owner: AppAnalyticsManager._handleRTCConnectionStoreChanged, offset: 0x0252017b, size: 175 bytes, params: 1, frame: 14
var binding;
var _reportInterval;
var Interval;
var value4;
var interval;
var start;
const channelId = RTCConnectionStore.getChannelId();
if (env0_0._voiceChannelId !== channelId) {
env0_0._voiceChannelId = channelId;
if (channelId != null) {
_reportInterval = env0_0._reportInterval;
if (_reportInterval == null) {
binding = env0_0;
Interval = (require(4041) /* metro dependency 4041: Timers */).Interval;
value4 = Object.create(Interval.prototype, {constructor: {value: Interval}});
interval = new Interval();
binding._reportInterval = interval instanceof Object ? interval : value4;
_reportInterval = binding._reportInterval;
start = _reportInterval.start;
binding = env2_16;
Reflect.apply(start, _reportInterval, [binding, _fun120072]);
}
} else {
env0_0._reset();
}
}
}
function _handleSpeakingStoreChanged() { // fn#120073, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15870:1103, owner: AppAnalyticsManager._handleSpeakingStoreChanged, offset: 0x02520249, size: 108 bytes, params: 1, frame: 11
var binding;
let value = environment.__proto__.__proto__;
const isCurrentUserSpeaking2 = SpeakingStore.isCurrentUserSpeaking();
if (env0_0._currentUserSpeaking !== isCurrentUserSpeaking2) {
binding = env0_0;
binding._currentUserSpeaking = isCurrentUserSpeaking2;
binding._trackStartSpeaking();
}
value = SpeakingStore.isAnyoneElseSpeaking();
if (env0_0._anyoneElseSpeaking !== value) {
binding = env0_0;
binding._anyoneElseSpeaking = value;
binding._trackStartListening();
}
}
function _fun120075() { // fn#120075, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15870:1451, offset: 0x0252031d, size: 19 bytes, params: 1, frame: 9
return env0_0._handleSpeakingStoreChanged();
}
function _fun120076() { // fn#120076, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15870:1499, offset: 0x02520330, size: 19 bytes, params: 1, frame: 9
return env0_0._handleRTCConnectionStoreChanged();
}
function _fun120072() { // fn#120072, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15870:1002, offset: 0x0252022a, size: 31 bytes, params: 1, frame: 9
const binding = env1_0;
binding._trackStartSpeaking();
binding._trackStartListening();
}
@@ -0,0 +1,469 @@
/* Metro module 4863; source: modules/app_analytics/AppAnalyticsUtils.tsx; dependencies: [1383, 1226, 1379, 1935, 4111, 1945, 1938, 1867, 4259, 3784, 4396, 4294, 4605, 3793, 1934, 3969, 4864, 1878, 4297, 661, 1386, 3789, 483, 4866, 683, 672, 4867, 4868, 22, 2] */
function _fun42492(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#42492, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:5041:6, offset: 0x0113b00b, size: 690 bytes, params: 8, frame: 25
var object2;
const env0_0 = require;
const _arrayLikeToArray_42495 = function(a0, a1) {
var r0;
var r1;
var r2;
var value3;
var length;
var value5;
var value = undefined;
var value2 = value == null;
reducibleJoin2: while (true) {
if (value2) {
r0 = value2;
break reducibleJoin2;
}
value3 = value > a0.length;
r0 = value3;
break reducibleJoin2;
}
reducibleJoin4: while (true) {
if (r0) {
length = a0.length;
r1 = length;
break reducibleJoin4;
}
r1 = value;
break reducibleJoin4;
}
value = (0, global.Array)(r1);
var value4 = 0;
if (value4 < r1) {
r2 = value4;
reducibleLoop5: while (true) {
value[r2] = a0[r2];
value5 = typeof r2 === 'bigint' ? r2 + 1n : +r2 + 1;
if (value5 < r1) {
r2 = value5;
continue reducibleLoop5;
}
break reducibleLoop5;
}
}
return value;
};
const countKeys = function(a0) {
var r1;
var r5;
var r0;
var propertyName;
var propertyName2;
var value = 0;
var properties = Object.keys(a0);
var properties2 = 0;
var properties3 = properties.length;
if (properties === undefined) {
r0 = value;
} else {
r1 = value;
for (r5 = properties2; true; r5 = propertyName2) {
propertyName = properties[r5];
propertyName2 = r5 + 1;
if (propertyName === undefined) {
r0 = r1;
break;
}
value = r1 + 1;
r1 = value;
}
}
return r0;
};
const closure = collectGuildAnalyticsMetadata;
const closure2 = function(a0, a1) {
return {channel_static_route: a1, channel_hidden: false};
};
const closure3 = collectChannelAnalyticsMetadata;
const closure4 = trackWithMetadata;
const closure5 = function(a0) {
var r3;
var r4;
var r8;
var r2;
var value5;
var value6;
var value7;
var value2 = _createForOfIteratorHelperLoose_42493(a0);
var value3 = value2();
var value4 = 0;
if (value3.done) {
r2 = value4;
} else {
r3 = value4;
r4 = value3;
while (true) {
value5 = r4.value;
if (RelationshipStore.isFriend(value5)) {
value6 = typeof r3 === 'bigint' ? r3 + 1n : +r3 + 1;
r8 = value6;
} else {
r8 = r3;
}
value7 = value2();
if (value7.done) {
r2 = r8;
break;
}
r3 = r8;
r4 = value7;
continue;
}
}
return {friendCount: r2, nonFriendCount: a0.length - r2};
};
const closure6 = getVoiceStateMetadata;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_4 = (require(1383) /* metro dependency 1383: ChannelRecord */).THREAD_CHANNEL_TYPES;
const authenticationStore = importDefault(1226) /* metro dependency 1226: AuthenticationStore */;
const channelStore = importDefault(1379) /* metro dependency 1379: ChannelStore */;
let value = require(1935) /* metro dependency 1935: GuildChannelStore */;
const env0_7 = value.GUILD_SELECTABLE_CHANNELS_KEY;
const env0_8 = value.GUILD_VOCAL_CHANNELS_KEY;
const guildChannelStore = importDefault(1935) /* metro dependency 1935: GuildChannelStore */;
const guildMemberCountStore = importDefault(4111) /* metro dependency 4111: GuildMemberCountStore */;
const guildMemberStore = importDefault(1945) /* metro dependency 1945: GuildMemberStore */;
const guildRoleStore = importDefault(1938) /* metro dependency 1938: GuildRoleStore */;
const guildStore = importDefault(1867) /* metro dependency 1867: GuildStore */;
const mediaEngineStore = importDefault(4259) /* metro dependency 4259: MediaEngineStore */;
const permissionStore = importDefault(3784) /* metro dependency 3784: PermissionStore */;
const presenceStore = importDefault(4396) /* metro dependency 4396: PresenceStore */;
const rtcConnectionStore = importDefault(4294) /* metro dependency 4294: RTCConnectionStore */;
const readStateStore = importDefault(4605) /* metro dependency 4605: ReadStateStore */;
const relationshipStore = importDefault(3793) /* metro dependency 3793: RelationshipStore */;
const selectedChannelStore = importDefault(1934) /* metro dependency 1934: SelectedChannelStore */;
const selectedGuildStore = importDefault(3969) /* metro dependency 3969: SelectedGuildStore */;
const userGuildSettingsStore = importDefault(4864) /* metro dependency 4864: UserGuildSettingsStore */;
const userStore = importDefault(1878) /* metro dependency 1878: UserStore */;
const voiceStateStore = importDefault(4297) /* metro dependency 4297: VoiceStateStore */;
value = require(661) /* metro dependency 661: Constants */;
const env0_25 = value.GuildFeatures;
const env0_26 = value.AnalyticsLocations;
const env0_27 = value.Permissions;
const env0_28 = value.ActivityTypes;
const env0_29 = (require(1386) /* metro dependency 1386: ChannelConstants */).isStaticChannelRoute;
object2 = {trackWithMetadata: closure4, getVoiceStateMetadata: closure6};
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/app_analytics/AppAnalyticsUtils.tsx');
exports.default = object2;
exports.collectGuildAnalyticsMetadata = closure;
exports.collectStaticChannelRouteAnalyticsMetadata = closure2;
exports.collectChannelAnalyticsMetadataFromId = function(a0) {
var value = null;
if (value == a0) {
return value;
}
var value3 = ChannelStore.getChannel(a0);
return value == value3 ? value : collectChannelAnalyticsMetadata(value3);
};
exports.collectChannelAnalyticsMetadata = closure3;
exports.collectVoiceAnalyticsMetadata = collectVoiceAnalyticsMetadata;
exports.trackWithMetadata = closure4;
exports.getChannelOpenedMetadata = getChannelOpenedMetadata;
exports.getRecipientFriendCounts = closure5;
exports.getVoiceStateMetadata = closure6;
exports.getCustomStatusMetadata = getCustomStatusMetadata;
}
function _createForOfIteratorHelperLoose_42493(a0, a1) { // fn#42493, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:5041:515, offset: 0x0113b2bd, 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 _fun42494;
}
value = undefined;
if (a0) {
if (typeof a0 === 'string') {
value = _arrayLikeToArray_42495(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_42495(a0, value);
r6 = value;
} else {
regexp = RegExp('^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$', '');
if (regexp.test(r9)) {
value = _arrayLikeToArray_42495(a0, value);
r6 = value;
} else {
r6 = value;
}
}
r5 = r6;
}
} else {
r5 = value;
}
if (r5) {
if (r5) {
}
return _fun42494;
}
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 collectGuildAnalyticsMetadata(a0) { // fn#42497, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:5041:1484, offset: 0x0113b455, size: 370 bytes, params: 2, frame: 21
if (a0 == null) {
return null;
}
const guild = GuildStore.getGuild(a0);
if (guild == null) {
return null;
}
const numRoles = GuildRoleStore.getNumRoles(guild.id);
const member = GuildMemberStore.getMember(a0, AuthenticationStore.getId());
const channels = GuildChannelStore.getChannels(a0);
const length = channels[GUILD_SELECTABLE_CHANNELS_KEY].length;
const length2 = channels[GUILD_VOCAL_CHANNELS_KEY].length;
const voiceStates = VoiceStateStore.getVoiceStates(a0);
const object2 = {};
object2.guild_id = guild.id;
object2.guild_size_total = GuildMemberCountStore.getMemberCount(a0);
object2.guild_num_channels = length + length2;
object2.guild_num_text_channels = length;
object2.guild_num_voice_channels = length2;
object2.guild_num_roles = numRoles;
object2.guild_member_num_roles = member != null ? member.roles.length : 0;
const String = global.String;
object2.guild_member_perms = String(PermissionStore.getGuildPermissions(guild) ?? (importAll(3789) /* metro dependency 3789: PermissionUtils */).NONE);
const features = guild.features;
const has = features.has;
const VIP_REGIONS = GuildFeatures.VIP_REGIONS;
object2.guild_is_vip = Reflect.apply(has, features, [VIP_REGIONS]);
object2.is_member = member != null;
object2.num_voice_channels_active = countKeys(voiceStates);
return object2;
}
function collectChannelAnalyticsMetadata(a0) { // fn#42499, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:5041:2210, offset: 0x0113b5da, size: 260 bytes, params: 2, frame: 17
if (a0 == null) {
return null;
}
const guildId = a0.getGuildId();
const r2 = guildId != null && (THREAD_CHANNEL_TYPES.has(a0.type) && a0.parent_id != null ? isHidden(ChannelStore.getChannel(a0.parent_id)) : isHidden(a0));
const object2 = {};
object2.channel_id = a0.id;
object2.channel_type = a0.type;
object2.channel_size_total = a0.isPrivate() ? a0.recipients.length : 0;
const String = global.String;
object2.channel_member_perms = String(guildId == null ? (importAll(3789) /* metro dependency 3789: PermissionUtils */).NONE : PermissionStore.getChannelPermissions(a0) ?? (importAll(3789) /* metro dependency 3789: PermissionUtils */).NONE);
object2.channel_hidden = r2;
return object2;
}
function trackWithMetadata(a0) { // fn#42501, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:5041:2735, offset: 0x0113b739, size: 380 bytes, params: 2, frame: 24
var r2;
var r8;
var r4;
var r12;
var r11;
var object2;
var value3;
var channel;
var value11;
var guildId;
let value = a1;
const value2 = a2;
const r10 = value !== undefined ? value : {};
const r6 = value2 !== undefined ? value2 : false;
const defaultImport = importDefault(683) /* metro dependency 683: AnalyticsUtils */;
if (!defaultImport.isThrottled(a0)) {
value3 = 'location' in r10;
r2 = value3 ? r10.location !== AnalyticsLocations.GUILD_CREATE_INVITE_SUGGESTION : !value3;
r8 = 'guild_id' in r10 ? r10.guild_id : r2 ? SelectedGuildStore.getGuildId() : null;
r4 = 'channel_id' in r10 ? r10.channel_id : r2 ? SelectedChannelStore.getChannelId(r8) : null;
channel = ChannelStore.getChannel(r4);
value11 = null;
if (value11 == channel) {
r11 = value11 != r8 ? r8 : value11;
} else if (channel.isPrivate()) {
r11 = value11;
} else {
guildId = channel.getGuildId();
r12 = value11 == guildId ? r8 : guildId;
r11 = value11 != r12 ? r12 : value11;
}
object2 = {};
copyDataProperties(object2, r10, undefined);
copyDataProperties(object2, collectGuildAnalyticsMetadata(r11), undefined);
r2 = value11 == r8 || value11 == r4 ? collectChannelAnalyticsMetadata(channel) : isStaticChannelRoute(r4) ? collectStaticChannelRouteAnalyticsMetadata(0,
r4) : collectChannelAnalyticsMetadata(channel);
copyDataProperties(object2, r2, undefined);
value = defaultImport;
value.track(a0, object2, {flush: r6});
}
}
function getVoiceStateMetadata(a0, a1, a2) { // fn#42503, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:5041:3517, offset: 0x0113b922, size: 132 bytes, params: 4, frame: 15
const env0_0 = a1;
const defaultImport = importDefault(22) /* metro dependency 22 */;
const getVoiceStates = VoiceStateStore.getVoiceStates;
let value = defaultImport(Reflect.apply(getVoiceStates, VoiceStateStore, [a0]));
value = value.filter(function({channelId}) {
return channelId === require;
});
value = value.filter(function({userId}) {
return userId !== AuthenticationStore.getId();
});
value.forEach(_fun42506);
return {'voice_state_count': 0, 'video_stream_count': 0, video_enabled: a2};
}
function collectVoiceAnalyticsMetadata(a0) { // fn#42508, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:5041:4436, offset: 0x0113ba39, size: 182 bytes, params: 2, frame: 18
if (a0 == null) {
return null;
}
const channel = ChannelStore.getChannel(a0);
if (channel == null) {
return null;
}
const isVideoEnabled2 = MediaEngineStore.isVideoEnabled();
const mediaSessionId = RTCConnectionStore.getMediaSessionId();
const object2 = {};
object2.channel_id = channel.id;
object2.channel_type = channel.type;
object2.guild_id = channel.getGuildId();
object2.media_session_id = mediaSessionId;
copyDataProperties(object2, getVoiceStateMetadata(channel.getGuildId(), channel.id, isVideoEnabled2), undefined);
const value = require(4866) /* metro dependency 4866: AppAnalyticsUtilsAdditionalNative */;
const getVoiceAnalyticsMetadataAdditional = value.getVoiceAnalyticsMetadataAdditional;
copyDataProperties(object2, Reflect.apply(getVoiceAnalyticsMetadataAdditional, value, []), undefined);
return object2;
}
function getChannelOpenedMetadata(a0) { // fn#42509, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:5041:4849, offset: 0x0113baef, size: 705 bytes, params: 2, frame: 25
var bot;
var r4;
var object2;
if (isStaticChannelRoute(a0)) {
return {channel_static_route: a0};
}
const channel = ChannelStore.getChannel(a0);
const value3 = null;
if (value3 == channel) {
return {channel_id: a0};
}
const guild = GuildStore.getGuild(channel.guild_id);
if (value3 == guild) {
bot = channel.isDM() && value3 != UserStore.getUser(channel.recipients[0]) && UserStore.getUser(channel.recipients[0]).bot;
r4 = channel.isDM() || channel.isGroupDM() ? getRecipientFriendCounts(channel.recipients) : value3;
copyDataProperties({channel_id: a0, is_app_dm: bot}, value3 != r4 ? {friend_recipient_count: r4.friendCount,
non_friend_recipient_count: r4.nonFriendCount} : value3, undefined);
} else {
var getSnapshot = ReadStateStore.getSnapshot;
var Millis = (importDefault(672) /* metro dependency 672: Durations */).Millis;
var SECOND = Millis.SECOND;
var value5 = Reflect.apply(getSnapshot, ReadStateStore, [a0, 10 * SECOND]);
object2 = {channel_id: a0};
object2.channel_was_unread = value5.unread;
object2.channel_mention_count = value5.mentionCount;
object2.channel_is_muted = UserGuildSettingsStore.isChannelMuted(channel.guild_id, channel.id);
object2.channel_is_nsfw = channel.isNSFW();
object2.channel_is_spoiler = channel.isSpoilerChannel();
object2.channel_resolved_unread_setting = UserGuildSettingsStore.resolveUnreadSetting(channel);
var moduleValue = require(4867) /* metro dependency 4867: notificationSettingsPresetUtils */;
var presetFromSettings = moduleValue.presetFromSettings;
object2.channel_preset = Reflect.apply(presetFromSettings, moduleValue,
[UserGuildSettingsStore.resolveUnreadSetting(channel),
UserGuildSettingsStore.resolvedMessageNotifications(channel)]);
object2.guild_id = channel.guild_id;
object2.guild_was_unread = value5.guildUnread;
object2.guild_mention_count = value5.guildMentionCount;
object2.guild_is_muted = UserGuildSettingsStore.isMuted(channel.guild_id);
object2.guild_resolved_unread_setting = UserGuildSettingsStore.resolveGuildUnreadSetting(guild);
var moduleValue2 = require(4867) /* metro dependency 4867: notificationSettingsPresetUtils */;
presetFromSettings = moduleValue2.presetFromSettings;
var guildUnreadSetting = UserGuildSettingsStore.resolveGuildUnreadSetting(guild);
var getMessageNotifications = UserGuildSettingsStore.getMessageNotifications;
object2.guild_preset = Reflect.apply(presetFromSettings, moduleValue2, [guildUnreadSetting,
Reflect.apply(getMessageNotifications, UserGuildSettingsStore, [channel.guild_id])]);
object2.parent_id = channel.parent_id;
object2.parent_channel_type = channel.parentChannelThreadType;
var moduleValue3 = require(4868) /* metro dependency 4868: hasPendingMemberAction */;
object2.has_pending_member_action = moduleValue3.hasPendingMemberAction(channel.guild_id, a0);
var can = PermissionStore.can;
var SEND_MESSAGES = Permissions.SEND_MESSAGES;
object2.can_send_message = Reflect.apply(can, PermissionStore, [SEND_MESSAGES, channel]);
object2.is_app_dm = false;
}
return object2;
}
function getCustomStatusMetadata(a0, a1) { // fn#42510, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:5041:6341, offset: 0x0113bdb0, size: 87 bytes, params: 3, frame: 15
const env0_0 = a1;
const defaultImport = importDefault(22) /* metro dependency 22 */;
const getVoiceStates = VoiceStateStore.getVoiceStates;
defaultImport(Reflect.apply(getVoiceStates, VoiceStateStore, [a0])).forEach(_fun42511);
return {custom_status_count: 0};
}
function isHidden(a0) { // fn#42500, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:5041:2334, owner: collectChannelAnalyticsMetadata.isHidden, offset: 0x0113b6de, size: 91 bytes, params: 2, frame: 15
var r0;
var moduleValue;
if (a0 == null) {
return false;
}
const permissionOverwrites = a0.permissionOverwrites;
const property = permissionOverwrites[env0_0];
let value = property != null;
if (value) {
value = environment.__proto__;
moduleValue = importAll(483) /* metro dependency 483: BigFlagUtils */;
value = moduleValue.has(property.deny, Permissions.VIEW_CHANNEL);
r0 = value;
} else {
r0 = value;
}
return r0;
}
function _fun42506(a0) { // fn#42506, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:5041:3729, offset: 0x0113b9c5, size: 66 bytes, params: 2, frame: 4
var video_stream_count;
let binding = env0_1;
const voice_state_count = binding.voice_state_count;
binding.voice_state_count = typeof voice_state_count === 'bigint' ? voice_state_count + 1n : +voice_state_count + 1;
if (a0.selfVideo || a0.selfStream) {
binding = env0_1;
video_stream_count = binding.video_stream_count;
binding.video_stream_count = typeof video_stream_count === 'bigint' ? video_stream_count + 1n : +video_stream_count + 1;
}
}
function _fun42511(a0) { // fn#42511, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:5041:6455, offset: 0x0113be07, size: 85 bytes, params: 2, frame: 15
var binding;
var custom_status_count;
if (a0.channelId === require && PresenceStore.findActivity(a0.userId, function({type}) {
return type === ActivityTypes.CUSTOM_STATUS;
}) != null) {
binding = env0_1;
custom_status_count = binding.custom_status_count;
binding.custom_status_count = typeof custom_status_count === 'bigint' ? custom_status_count + 1n : +custom_status_count + 1;
}
}
@@ -0,0 +1,10 @@
/* Metro module 4866; source: modules/app_analytics/AppAnalyticsUtilsAdditional.native.tsx; dependencies: [2] */
function _fun42611(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#42611, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:5044:6, offset: 0x0113e344, size: 85 bytes, params: 8, frame: 15
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/app_analytics/AppAnalyticsUtilsAdditional.native.tsx');
exports.getVoiceAnalyticsMetadataAdditional = function() {
return {'game_name': null, 'game_id': null};
};
}
@@ -0,0 +1,100 @@
/* Metro module 684; source: modules/app_analytics/ImpressionStore.tsx; dependencies: [685, 690, 480, 2] */
function _fun8362(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#8362, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:791:6, offset: 0x00d3f2d8, size: 214 bytes, params: 8, frame: 19
const env0_0 = require;
let Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
Object = global.Object;
const env0_2 = Object.freeze({debugTrackedData: null, impressions: []});
let value = require(685) /* metro dependency 685 */;
value = value.createWithEqualityFn(_fun8363);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/app_analytics/ImpressionStore.tsx');
exports.setCurrentImpression = setCurrentImpression;
exports.cleanupImpression = cleanupImpression;
exports.setDebugTrackedData = setDebugTrackedData;
exports.useImpressionStore = value;
exports.getLocation = getLocation;
exports.getImpressionStack = getImpressionStack;
}
function setCurrentImpression(a0) { // fn#8364, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:791:294, offset: 0x00d3f3ae, size: 52 bytes, params: 2, frame: 12
const env0_0 = a0;
(require(690) /* metro dependency 690: ReactBatchUpdatesNative */).batchUpdates(_fun8365);
}
function cleanupImpression(a0) { // fn#8367, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:791:403, offset: 0x00d3f431, size: 52 bytes, params: 2, frame: 12
const env0_0 = a0;
(require(690) /* metro dependency 690: ReactBatchUpdatesNative */).batchUpdates(_fun8368);
}
function setDebugTrackedData(a0, a1) { // fn#8371, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:791:548, offset: 0x00d3f4c1, size: 59 bytes, params: 3, frame: 12
const env0_0 = a0;
const env0_1 = a1;
(require(690) /* metro dependency 690: ReactBatchUpdatesNative */).batchUpdates(_fun8372);
}
function getLocation() { // fn#8374, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:791:677, offset: 0x00d3f53a, size: 48 bytes, params: 1, frame: 12
const binding = env0_3;
const getState = binding.getState;
Reflect.apply(getState, binding, []).impressions.forEach(_fun8375);
return {};
}
function getImpressionStack() { // fn#8376, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:791:850, offset: 0x00d3f5c3, size: 25 bytes, params: 1, frame: 9
const binding = env0_3;
const getState = binding.getState;
return Reflect.apply(getState, binding, []).impressions;
}
function _fun8365() { // fn#8365, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:791:320, offset: 0x00d3f3e2, size: 29 bytes, params: 1, frame: 11
env1_3.setState(_fun8366);
}
function _fun8368() { // fn#8368, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:791:429, offset: 0x00d3f465, size: 29 bytes, params: 1, frame: 11
env1_3.setState(function(a0) {
var object = {};
object.impressions = a0.impressions.filter(_fun8370);
return object;
});
}
function _fun8372() { // fn#8372, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:791:578, offset: 0x00d3f4fc, size: 29 bytes, params: 1, frame: 11
env1_3.setState(_fun8373);
}
function _fun8375(a0) { // fn#8375, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:791:750, offset: 0x00d3f56a, size: 89 bytes, params: 2, frame: 13
const type = a0.type;
const ImpressionTypes = (require(480) /* metro dependency 480: AnalyticsUtils */).ImpressionTypes;
const PAGE = ImpressionTypes.PAGE;
if (type === PAGE) {
env0_0.page = a0.name;
} else {
env0_0.section = a0.name;
}
}
function _fun8366({impressions}) { // fn#8366, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:791:337, offset: 0x00d3f3ff, size: 50 bytes, params: 2, frame: 14
const items2 = [];
const value = arraySpread(items2, impressions, 0, undefined);
items2[value] = env1_0;
value + 1;
return {impressions: items2};
}
function _fun8369({impressions}) { // fn#8369, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:791:446, offset: 0x00d3f482, size: 35 bytes, params: 2, frame: 12
const object2 = {};
object2.impressions = impressions.filter(_fun8370);
return object2;
}
function _fun8373() { // fn#8373, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:791:595, offset: 0x00d3f519, size: 33 bytes, params: 1, frame: 13
const object = {};
const binding = env1_0;
object.name = binding;
copyDataProperties(object, require, binding);
return {debugTrackedData: object};
}
function _fun8370({sequenceId}) { // fn#8370, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:791:485, offset: 0x00d3f4a5, size: 28 bytes, params: 2, frame: 2
return sequenceId !== env2_0.sequenceId;
}
@@ -0,0 +1,66 @@
/* Metro module 7162; source: modules/app_analytics/ThreadAnalyticsUtils.tsx; dependencies: [7158, 6898, 1383, 3784, 661, 1230, 21, 2] */
function _fun57489(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#57489, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7340:6, offset: 0x013e6d8d, size: 192 bytes, params: 8, frame: 19
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const threadMembersStore = importDefault(7158) /* metro dependency 7158: ThreadMembersStore */;
const threadMessageStore = importDefault(6898) /* metro dependency 6898: ThreadMessageStore */;
const env0_5 = (require(1383) /* metro dependency 1383: ChannelRecord */).THREAD_CHANNEL_TYPES;
const permissionStore = importDefault(3784) /* metro dependency 3784: PermissionStore */;
const env0_7 = (require(661) /* metro dependency 661: Constants */).Permissions;
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/app_analytics/ThreadAnalyticsUtils.tsx');
exports.collectThreadMetadata = collectThreadMetadata;
}
function collectThreadMetadata(a0) { // fn#57490, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7340:283, offset: 0x013e6e4d, size: 355 bytes, params: 2, frame: 19
var r5;
var locked;
var autoArchiveDuration;
var r0;
var object2;
var getMemberCount;
var id;
var getCount;
var threadMetadata;
var extractTimestamp;
let value = a1;
const value2 = undefined;
const r7 = value !== value2 ? value : false;
value = null;
if (value != a0) {
if (THREAD_CHANNEL_TYPES.has(a0.type)) {
object2 = {};
r5 = r7 ? (require(1230) /* metro dependency 1230: router_utils */).getLastRouteChangeSource() : value2;
object2.location = r5;
getMemberCount = ThreadMembersStore.getMemberCount;
id = a0.id;
object2.thread_approximate_member_count = Reflect.apply(getMemberCount, ThreadMembersStore, [id]);
getCount = ThreadMessageStore.getCount;
id = a0.id;
object2.thread_approximate_message_count = Reflect.apply(getCount, ThreadMessageStore, [id]);
threadMetadata = a0.threadMetadata;
object2.thread_archived = (value == threadMetadata ? value2 : threadMetadata.archived) === true;
threadMetadata = a0.threadMetadata;
locked = value == threadMetadata ? value2 : threadMetadata.locked;
r5 = value != locked && locked;
object2.thread_locked = r5;
threadMetadata = a0.threadMetadata;
autoArchiveDuration = value == threadMetadata ? value2 : threadMetadata.autoArchiveDuration;
value = 0;
object2.thread_auto_archive_duration_minutes = value != autoArchiveDuration ? autoArchiveDuration : value;
value = importDefault(21) /* metro dependency 21: SnowflakeUtils */;
extractTimestamp = value.extractTimestamp;
id = a0.id;
object2.thread_approximate_creation_date = Reflect.apply(extractTimestamp, value, [id]);
object2.can_send_message = PermissionStore.can(Permissions.SEND_MESSAGES, a0);
object2.parent_channel_type = a0.parentChannelThreadType;
r0 = object2;
} else {
r0 = value;
}
} else {
r0 = value;
}
return r0;
}
@@ -0,0 +1,220 @@
/* Metro module 4878; source: modules/app_analytics/clickstream/Clickstream.tsx; dependencies: [57, 1226, 4294, 21, 683, 4879, 2] */
function _fun42756(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#42756, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:5056:6, offset: 0x01141949, size: 230 bytes, params: 8, frame: 21
const env0_0 = require;
const _arrayLikeToArray_42759 = function(a0, a1) {
var r0;
var r1;
var r2;
var value3;
var length;
var value5;
var value = undefined;
var value2 = value == null;
reducibleJoin2: while (true) {
if (value2) {
r0 = value2;
break reducibleJoin2;
}
value3 = value > a0.length;
r0 = value3;
break reducibleJoin2;
}
reducibleJoin4: while (true) {
if (r0) {
length = a0.length;
r1 = length;
break reducibleJoin4;
}
r1 = value;
break reducibleJoin4;
}
value = (0, global.Array)(r1);
var value4 = 0;
if (value4 < r1) {
r2 = value4;
reducibleLoop5: while (true) {
value[r2] = a0[r2];
value5 = typeof r2 === 'bigint' ? r2 + 1n : +r2 + 1;
if (value5 < r1) {
r2 = value5;
continue reducibleLoop5;
}
break reducibleLoop5;
}
}
return value;
};
const closure = drainClickstream;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importDefault(57) /* metro dependency 57 */;
const authenticationStore = importDefault(1226) /* metro dependency 1226: AuthenticationStore */;
const rtcConnectionStore = importDefault(4294) /* metro dependency 4294: RTCConnectionStore */;
const Map = global.Map;
const map = new Map();
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/app_analytics/clickstream/Clickstream.tsx');
exports.trackClickstream = trackClickstream;
exports.drainClickstream = closure;
}
function _createForOfIteratorHelperLoose_42757(a0, a1) { // fn#42757, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:5056:130, offset: 0x01141a2f, 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 _fun42758;
}
value = undefined;
if (a0) {
if (typeof a0 === 'string') {
value = _arrayLikeToArray_42759(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_42759(a0, value);
r6 = value;
} else {
regexp = RegExp('^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$', '');
if (regexp.test(r9)) {
value = _arrayLikeToArray_42759(a0, value);
r6 = value;
} else {
r6 = value;
}
}
r5 = r6;
}
} else {
r5 = value;
}
if (r5) {
if (r5) {
}
return _fun42758;
}
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 isClickstreamEnabled() { // fn#42760, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:5056:1059, offset: 0x01141ba1, size: 107 bytes, params: 1, frame: 14
var defaultImport;
var value2;
const value = a0;
if (!(value !== undefined) || value) {
defaultImport = importDefault(21) /* metro dependency 21: SnowflakeUtils */;
value2 = defaultImport.extractTimestamp(AuthenticationStore.getId());
if (value2 !== env0_7) {
drainClickstream(false);
env0_7 = value2;
}
}
return env0_7 % 10 === 0;
}
function drainClickstream() { // fn#42761, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:5056:1192, offset: 0x01141c0c, size: 191 bytes, params: 1, frame: 24
var r3;
var value2;
var value3;
var done;
var value4;
var value5;
var property;
var property2;
var defaultImport;
var track;
var moduleValue;
var getClickstreamDrainEvent;
var value6;
let value = a0;
reducibleJoin2: while (true) {
if (value !== undefined) {
r3 = value;
break reducibleJoin2;
}
value = true;
r3 = value;
break reducibleJoin2;
}
if (isClickstreamEnabled(r3)) {
value2 = _createForOfIteratorHelperLoose_42757(env0_6);
value3 = value2();
done = value3.done;
if (!done) {
r3 = value3;
reducibleLoop5: while (true) {
value4 = r3.value;
value5 = env0_3(value4, 2);
property = value5[0];
property2 = value5[1];
defaultImport = importDefault(683) /* metro dependency 683: AnalyticsUtils */;
track = defaultImport.track;
moduleValue = require(4879) /* metro dependency 4879: ClickstreamEvents */;
getClickstreamDrainEvent = moduleValue.getClickstreamDrainEvent;
Reflect.apply(track, defaultImport, [property, Reflect.apply(getClickstreamDrainEvent, moduleValue,
[property,
property2])]);
value6 = value2();
done = value6.done;
if (done) {
break reducibleLoop5;
}
r3 = value6;
continue reducibleLoop5;
}
}
env0_6.clear();
} else {
env0_6.clear();
}
}
function trackClickstream(a0, a1) { // fn#42762, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:5056:1537, offset: 0x01141ccb, size: 154 bytes, params: 3, frame: 16
var binding;
var value2;
var push;
var object2;
var Date;
var value3;
var date;
if (isClickstreamEnabled()) {
binding = env0_6;
if (!binding.has(a0)) {
env0_6.set(a0, []);
}
binding = env0_6;
value2 = binding.get(a0);
if (value2 != null) {
push = value2.push;
object2 = {};
Date = global.Date;
value3 = Object.create(Date.prototype, {constructor: {value: Date}});
date = new Date();
object2.timestamp = date instanceof Object ? date : value3;
object2.rtc_state = RTCConnectionStore.getState();
copyDataProperties(object2, a1, value3);
Reflect.apply(push, value2, [object2]);
}
}
}
@@ -0,0 +1,106 @@
/* Metro module 4879; source: modules/app_analytics/clickstream/ClickstreamEvents.tsx; dependencies: [661, 2] */
function _fun42763(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#42763, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:5057:6, offset: 0x01141d65, size: 107 bytes, params: 8, frame: 18
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_0 = (require(661) /* metro dependency 661: Constants */).AnalyticEvents;
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/app_analytics/clickstream/ClickstreamEvents.tsx');
exports.getClickstreamDrainEvent = getClickstreamDrainEvent;
}
function getClickstreamDrainEvent(a0, a1) { // fn#42764, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:5057:237, offset: 0x01141dd0, size: 534 bytes, params: 3, frame: 14
var object2;
const Date = global.Date;
let date = new Date();
const GUILD_VIEWED_CLICKSTREAM = AnalyticEvents.GUILD_VIEWED_CLICKSTREAM;
if (GUILD_VIEWED_CLICKSTREAM === a0) {
object2 = {};
object2.time_minus = a1.map(_fun42765);
object2.rtc_states = a1.map(function(a0) {
return a0.rtc_state;
});
object2.guild_ids = a1.map(_fun42767);
return object2;
}
const FRIENDS_LIST_VIEWED_CLICKSTREAM = AnalyticEvents.FRIENDS_LIST_VIEWED_CLICKSTREAM;
if (FRIENDS_LIST_VIEWED_CLICKSTREAM === a0) {
object2 = {};
object2.time_minus = a1.map(_fun42768);
object2.rtc_states = a1.map(function(a0) {
return a0.rtc_state;
});
object2.tab_opened = a1.map(_fun42770);
object2.num_friends = a1.map(_fun42771);
object2.now_playing_visible = a1.map(_fun42772);
object2.now_playing_num_cards = a1.map(_fun42773);
return object2;
}
const CHANNEL_OPENED_CLICKSTREAM = AnalyticEvents.CHANNEL_OPENED_CLICKSTREAM;
if (CHANNEL_OPENED_CLICKSTREAM === a0) {
object2 = {};
object2.time_minus = a1.map(_fun42774);
object2.rtc_states = a1.map(function(a0) {
return a0.rtc_state;
});
object2.channel_ids = a1.map(_fun42776);
object2.channel_types = a1.map(_fun42777);
return object2;
}
const CHANNEL_LATEST_MESSAGES_LOADED_CLICKSTREAM = AnalyticEvents.CHANNEL_LATEST_MESSAGES_LOADED_CLICKSTREAM;
if (CHANNEL_LATEST_MESSAGES_LOADED_CLICKSTREAM === a0) {
object2 = {};
object2.time_minus = a1.map(_fun42778);
object2.rtc_states = a1.map(function(a0) {
return a0.rtc_state;
});
object2.load_duration_ms = a1.map(_fun42780);
object2.were_messages_cached = a1.map(_fun42781);
object2.is_first_load = a1.map(_fun42782);
return object2;
}
const Error = global.Error;
date = 'getClickstreamDrainEvent: Unknown event: ' + a0;
const value2 = Object.create(Error.prototype, {constructor: {value: Error}});
const error = new Error(date);
throw error instanceof Object ? error : value2;
}
function _fun42765({timestamp}) { // fn#42765, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:5057:366, offset: 0x01141fe6, size: 42 bytes, params: 2, frame: 10
const binding = env0_0;
let getTime = binding.getTime;
const value = Reflect.apply(getTime, binding, []);
getTime = timestamp.getTime;
return value - Reflect.apply(getTime, timestamp, []);
}
function _fun42770(a0) { // fn#42770, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:5057:638, offset: 0x01142025, size: 11 bytes, params: 2, frame: 1
return a0.tab_opened;
}
function _fun42771(a0) { // fn#42771, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:5057:675, offset: 0x01142030, size: 11 bytes, params: 2, frame: 1
return a0.num_friends;
}
function _fun42772(a0) { // fn#42772, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:5057:721, offset: 0x0114203b, size: 11 bytes, params: 2, frame: 1
return a0.now_playing_visible;
}
function _fun42773(a0) { // fn#42773, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:5057:777, offset: 0x01142046, size: 11 bytes, params: 2, frame: 1
return a0.now_playing_num_cards;
}
function _fun42777(a0) { // fn#42777, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:5057:1006, offset: 0x01142051, size: 11 bytes, params: 2, frame: 1
return a0.channel_type;
}
function _fun42780(a0) { // fn#42780, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:5057:1208, offset: 0x0114205c, size: 11 bytes, params: 2, frame: 1
return a0.load_duration_ms;
}
function _fun42781(a0) { // fn#42781, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:5057:1260, offset: 0x01142067, size: 11 bytes, params: 2, frame: 1
return a0.were_messages_cached;
}
function _fun42782(a0) { // fn#42782, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:5057:1309, offset: 0x01142072, size: 11 bytes, params: 2, frame: 1
return a0.is_first_load;
}
@@ -0,0 +1,17 @@
/* Metro module 13097; source: modules/app_analytics/native/useTrackNavigatorScreenImpression.tsx; dependencies: [8742, 480, 2] */
function _fun100150(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#100150, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13287:6, offset: 0x021df976, size: 103 bytes, params: 8, frame: 18
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/app_analytics/native/useTrackNavigatorScreenImpression.tsx');
exports.useTrackNavigatorScreenImpression = useTrackNavigatorScreenImpression_100151;
}
function useTrackNavigatorScreenImpression_100151({impressionName, impressionProperties}, a1) { // fn#100151, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13287:228, offset: 0x021df9dd, size: 119 bytes, params: 3, frame: 16
const r3 = typeof impressionProperties !== 'function' ? impressionProperties : impressionProperties(a1.params);
const defaultImport = importDefault(8742) /* metro dependency 8742: useTrackImpression */;
const ImpressionTypes = (require(480) /* metro dependency 480: AnalyticsUtils */).ImpressionTypes;
const PAGE = ImpressionTypes.PAGE;
defaultImport({type: PAGE, name: impressionName, properties: r3});
}
@@ -0,0 +1,33 @@
/* Metro module 15126; source: modules/app_analytics/track/channel_opened/getChannelOpenedRouteTrackingProps.tsx; dependencies: [1379, 7162, 1230, 2] */
function _fun115319(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#115319, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15323:6, offset: 0x0245c84c, size: 114 bytes, params: 8, frame: 18
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const channelStore = importDefault(1379) /* metro dependency 1379: ChannelStore */;
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/app_analytics/track/channel_opened/getChannelOpenedRouteTrackingProps.tsx');
exports.getChannelOpenedRouteTrackingProps = getChannelOpenedRouteTrackingProps;
}
function getChannelOpenedRouteTrackingProps(a0) { // fn#115320, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15323:258, offset: 0x0245c8be, size: 153 bytes, params: 2, frame: 16
var r3;
var r6;
var value;
const value2 = undefined;
const moduleValue = require(dependencyMap[1]);
const value4 = moduleValue.collectThreadMetadata(ChannelStore.getChannel(a0), true);
const location = value4 == null ? value2 : value4.location;
if (location != null) {
r3 = location;
r6 = ChannelStore;
} else {
value = require(dependencyMap[2]);
value = value.getLastRouteChangeSource();
r3 = value;
r6 = dependencyMap;
}
const object2 = {};
copyDataProperties(object2, value4 ?? ({}), r6);
copyDataProperties(object2, r3 != null ? {location: r3} : {}, r6);
return object2;
}
@@ -0,0 +1,62 @@
/* Metro module 7163; source: modules/app_analytics/track/channel_opened/trackChannelOpenedClickstream.tsx; dependencies: [1379, 661, 1386, 4878, 2] */
function _fun57491(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#57491, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7341:6, offset: 0x013e6fb0, size: 166 bytes, params: 8, frame: 18
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const channelStore = importDefault(1379) /* metro dependency 1379: ChannelStore */;
const constantsModule = require(661) /* metro dependency 661: Constants */;
const env0_3 = constantsModule.ChannelTypes;
const env0_4 = constantsModule.AnalyticEvents;
const env0_5 = (require(1386) /* metro dependency 1386: ChannelConstants */).StaticChannelRoute;
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/app_analytics/track/channel_opened/trackChannelOpenedClickstream.tsx');
exports.default = trackChannelOpenedClickstream;
}
function trackChannelOpenedClickstream({channelId}) { // fn#57492, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7341:301, offset: 0x013e7056, size: 280 bytes, params: 2, frame: 19
const CHANNEL_BROWSER = StaticChannelRoute.CHANNEL_BROWSER;
if (CHANNEL_BROWSER !== channelId) {
var GUILD_HOME = StaticChannelRoute.GUILD_HOME;
if (GUILD_HOME === channelId) {
return undefined;
}
var GUILD_SHOP = StaticChannelRoute.GUILD_SHOP;
if (GUILD_SHOP === channelId) {
return undefined;
}
var GAME_SHOP = StaticChannelRoute.GAME_SHOP;
if (GAME_SHOP === channelId) {
return undefined;
}
var MEMBER_APPLICATIONS = StaticChannelRoute.MEMBER_APPLICATIONS;
if (MEMBER_APPLICATIONS === channelId) {
return undefined;
}
var ROLE_SUBSCRIPTIONS = StaticChannelRoute.ROLE_SUBSCRIPTIONS;
if (ROLE_SUBSCRIPTIONS === channelId) {
return undefined;
}
var CUSTOMIZE_COMMUNITY = StaticChannelRoute.CUSTOMIZE_COMMUNITY;
if (CUSTOMIZE_COMMUNITY === channelId) {
return undefined;
}
var MEMBER_SAFETY = StaticChannelRoute.MEMBER_SAFETY;
if (MEMBER_SAFETY === channelId) {
return undefined;
}
var GUILD_ONBOARDING = StaticChannelRoute.GUILD_ONBOARDING;
if (GUILD_ONBOARDING === channelId) {
return undefined;
}
var GUILD_BOOSTS = StaticChannelRoute.GUILD_BOOSTS;
if (GUILD_BOOSTS === channelId) {
return undefined;
}
var moduleValue = require(4878) /* metro dependency 4878: Clickstream */;
var trackClickstream = moduleValue.trackClickstream;
var CHANNEL_OPENED_CLICKSTREAM = AnalyticEvents.CHANNEL_OPENED_CLICKSTREAM;
var object2 = {channel_id: channelId};
object2.channel_type = ChannelStore.getChannel(channelId)?.type ?? ChannelTypes.UNKNOWN;
Reflect.apply(trackClickstream, moduleValue, [CHANNEL_OPENED_CLICKSTREAM, object2]);
}
}
@@ -0,0 +1,53 @@
/* Metro module 15137; source: modules/app_analytics/track/friends_list_viewed/getTrackFriendsListViewedData.native.tsx; dependencies: [11996, 5244, 5242, 5040, 3793, 661, 3829, 1391, 15138, 11997, 2] */
function _fun115390(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#115390, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15334:6, offset: 0x0245f173, size: 220 bytes, params: 8, frame: 19
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = (require(11996) /* metro dependency 11996: ContactSyncPersistedStore */).useContactSyncStore;
const friendSuggestionStore = importDefault(5244) /* metro dependency 5244: FriendSuggestionStore */;
const gameRelationshipStore = importDefault(5242) /* metro dependency 5242: GameRelationshipStore */;
const connectedAccountsStore = importDefault(5040) /* metro dependency 5040: ConnectedAccountsStore */;
const relationshipStore = importDefault(3793) /* metro dependency 3793: RelationshipStore */;
const constantsModule = require(661) /* metro dependency 661: Constants */;
const env0_8 = constantsModule.PlatformTypes;
const env0_9 = constantsModule.FriendDiscoveryFlags;
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/app_analytics/track/friends_list_viewed/getTrackFriendsListViewedData.native.tsx');
exports.default = getTrackFriendsListViewedData;
}
function getTrackFriendsListViewedData() { // fn#115391, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15334:352, offset: 0x0245f24f, size: 402 bytes, params: 1, frame: 22
const getLocalAccount = ConnectedAccountsStore.getLocalAccount;
const CONTACTS = PlatformTypes.CONTACTS;
const value2 = Reflect.apply(getLocalAccount, ConnectedAccountsStore, [CONTACTS]);
const FriendDiscoverySettings = (require(3829) /* metro dependency 3829: UserSettings */).FriendDiscoverySettings;
const setting = FriendDiscoverySettings.getSetting();
const flagUtilsModule = require(1391) /* metro dependency 1391: FlagUtils */;
let hasFlag = flagUtilsModule.hasFlag;
const FIND_BY_PHONE = FriendDiscoveryFlags.FIND_BY_PHONE;
const hasFlag2 = Reflect.apply(hasFlag, flagUtilsModule, [setting, FIND_BY_PHONE]);
const moduleValue2 = flagUtilsModule;
hasFlag = moduleValue2.hasFlag;
const FIND_BY_EMAIL = FriendDiscoveryFlags.FIND_BY_EMAIL;
const hasFlag3 = Reflect.apply(hasFlag, moduleValue2, [setting, FIND_BY_EMAIL]);
const suggestionCount = FriendSuggestionStore.getSuggestionCount();
const getState = useContactSyncStore.getState;
const upsellCTADismissed = Reflect.apply(getState, useContactSyncStore, []).upsellCTADismissed;
const object2 = {};
object2.num_friends = RelationshipStore.getFriendCount();
copyDataProperties(object2, (importDefault(15138) /* metro dependency 15138: getFriendStatusCounts */)(),
importDefault);
object2['num_outgoing_requests'] = RelationshipStore.getOutgoingCount();
object2['num_incoming_requests'] = RelationshipStore.getPendingCount();
object2['num_game_friends'] = GameRelationshipStore.getGameFriendCount();
object2['num_game_outgoing_requests'] = GameRelationshipStore.getPendingOutgoingCount();
object2['num_game_incoming_requests'] = GameRelationshipStore.getPendingIncomingCount();
object2['num_suggestions'] = suggestionCount;
object2['was_dismissed'] = upsellCTADismissed;
let value = require(11997) /* metro dependency 11997: ContactSyncUtils */;
value = value.isContactSyncEnabled(value2);
object2['contact_sync_is_enabled'] = value;
object2['is_discoverable_email'] = hasFlag3;
object2['is_discoverable_phone'] = hasFlag2;
return object2;
}
@@ -0,0 +1,16 @@
/* Metro module 15139; source: modules/app_analytics/track/friends_list_viewed/trackFriendListClicked.tsx; dependencies: [661, 15137, 683, 2] */
function _fun115397(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#115397, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15336:6, offset: 0x0245f6d8, size: 120 bytes, params: 8, frame: 18
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_2 = (require(661) /* metro dependency 661: Constants */).AnalyticEvents;
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/app_analytics/track/friends_list_viewed/trackFriendListClicked.tsx');
exports.default = function({tab_opened, source}) {
var value2 = importDefault(dependencyMap[1])();
var defaultImport = importDefault(dependencyMap[2]);
var FRIENDS_LIST_CLICKED = AnalyticEvents.FRIENDS_LIST_CLICKED;
var object = {tab_opened: tab_opened, source: source};
copyDataProperties(object, value2, tab_opened);
defaultImport.track(FRIENDS_LIST_CLICKED, object);
};
}
@@ -0,0 +1,29 @@
/* Metro module 15136; source: modules/app_analytics/track/friends_list_viewed/trackFriendListViewed.tsx; dependencies: [661, 15137, 683, 4878, 2] */
function _fun115388(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#115388, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15333:6, offset: 0x0245f016, size: 124 bytes, params: 8, frame: 18
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = (require(661) /* metro dependency 661: Constants */).AnalyticEvents;
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/app_analytics/track/friends_list_viewed/trackFriendListViewed.tsx');
exports.default = trackFriendsListViewed;
}
function trackFriendsListViewed({tab_opened, source}) { // fn#115389, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15333:238, offset: 0x0245f092, size: 225 bytes, params: 2, frame: 21
const value2 = (importDefault(15137) /* metro dependency 15137: getTrackFriendsListViewedDataNative */)();
const defaultImport = importDefault(683) /* metro dependency 683: AnalyticsUtils */;
const track = defaultImport.track;
const FRIENDS_LIST_VIEWED = AnalyticEvents.FRIENDS_LIST_VIEWED;
const object2 = {tab_opened: tab_opened, source: source};
copyDataProperties(object2, value2, undefined);
Reflect.apply(track, defaultImport, [FRIENDS_LIST_VIEWED, object2]);
const clickstreamModule = require(4878) /* metro dependency 4878: Clickstream */;
const trackClickstream = clickstreamModule.trackClickstream;
const FRIENDS_LIST_VIEWED_CLICKSTREAM = AnalyticEvents.FRIENDS_LIST_VIEWED_CLICKSTREAM;
const num_friends = value2.num_friends;
const now_playing_visible = value2.now_playing_visible;
Reflect.apply(trackClickstream, clickstreamModule, [FRIENDS_LIST_VIEWED_CLICKSTREAM,
{tab_opened: tab_opened ?? 'tabless', num_friends: num_friends ?? 0,
now_playing_visible: now_playing_visible != null && now_playing_visible,
now_playing_num_cards: value2.now_playing_num_cards ?? 0}]);
}
@@ -0,0 +1,70 @@
/* Metro module 6771; source: modules/app_analytics/useAnalyticsLocations.tsx; dependencies: [57, 31, 33, 22, 644, 2] */
function _fun53326(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#53326, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6949:6, offset: 0x013460b7, size: 212 bytes, params: 8, frame: 19
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_2 = importDefault(57) /* metro dependency 57 */;
let value = importAll(31) /* metro dependency 31 */;
const env0_4 = (require(33) /* metro dependency 33 */).jsx;
value = value.createContext([]);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/app_analytics/useAnalyticsLocations.tsx');
exports.default = useAnalyticsLocations;
exports.LocationContext = value;
exports.AnalyticsLocationProvider = AnalyticsLocationProvider;
exports.useLocationStackFromLocationContext = useLocationStackFromLocationContext;
}
function mergeLocations(a0, a1) { // fn#53327, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6949:152, offset: 0x0134618b, size: 83 bytes, params: 3, frame: 16
if (a1.length === 0) {
return a0;
}
let value = importDefault(22) /* metro dependency 22 */;
value = value.flatten(a1);
const items2 = [];
arraySpread(items2, value, arraySpread(items2, a0, 0, importDefault), importDefault);
return items2;
}
function useAnalyticsLocations(a0) { // fn#53328, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6949:340, offset: 0x013461de, size: 220 bytes, params: 2, frame: 19
const value = copyRestArgs(0, undefined);
const binding = env0_3;
const [property, env0_2] = env0_2Binding(binding.useState(value), 2);
const value5 = binding.useContext(env0_5);
const value6 = binding.useMemo(_fun53329, [property, value5]);
const value7 = binding.useMemo(_fun53330, [property, value5]);
binding.useEffect(_fun53331, [value, property]);
return {analyticsLocations: value6, sourceAnalyticsLocations: value7,
parentAnalyticsLocation: value7[value7.length - 1], newestAnalyticsLocation: value6[value6.length - 1]};
}
function AnalyticsLocationProvider({children, value}) { // fn#53332, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6949:776, offset: 0x01346347, size: 50 bytes, params: 2, frame: 14
const Provider = env0_5.Provider;
return (
<Provider value={value}>
{children}
</Provider>
);
}
function useLocationStackFromLocationContext() { // fn#53333, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6949:914, offset: 0x01346379, size: 34 bytes, params: 1, frame: 11
return env0_3.useContext(env0_5) ?? [];
}
function _fun53329() { // fn#53329, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6949:451, offset: 0x013462ba, size: 28 bytes, params: 1, frame: 13
return mergeLocations(env0_3, env0_1);
}
function _fun53330() { // fn#53330, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6949:496, offset: 0x013462d6, size: 53 bytes, params: 1, frame: 15
const value = environment.__proto__;
const mergeLocationsBinding = mergeLocations;
const binding = env0_3;
const binding2 = env0_1;
return mergeLocationsBinding(binding, binding2.slice(0, binding2.length - 1));
}
function _fun53331() { // fn#53331, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6949:568, offset: 0x0134630b, size: 60 bytes, params: 1, frame: 14
const value = environment.__proto__;
if (!(importDefault(644) /* metro dependency 644 */)(env0_0, env0_1)) {
env0_2(env0_0);
}
}
@@ -0,0 +1,204 @@
/* Metro module 8742; source: modules/app_analytics/useTrackImpression.tsx; dependencies: [31, 1379, 1934, 3969, 684, 480, 683, 694, 4863, 644, 5081, 4594, 2] */
function _fun68449(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#68449, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8927:6, offset: 0x01c4ef14, size: 326 bytes, params: 8, frame: 21
var object2;
const env0_0 = require;
const closure = trackImpression;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importAll(31) /* metro dependency 31 */;
const channelStore = importDefault(1379) /* metro dependency 1379: ChannelStore */;
const selectedChannelStore = importDefault(1934) /* metro dependency 1934: SelectedChannelStore */;
const selectedGuildStore = importDefault(3969) /* metro dependency 3969: SelectedGuildStore */;
let value = require(684) /* metro dependency 684: ImpressionStore */;
const env0_7 = value.setCurrentImpression;
const env0_8 = value.cleanupImpression;
const env0_9 = value.setDebugTrackedData;
const env0_10 = value.getLocation;
const env0_11 = value.getImpressionStack;
value = require(480) /* metro dependency 480: AnalyticsUtils */;
const trackMaker = value.trackMaker;
object2 = {};
const AnalyticEventConfigs = (require(683) /* metro dependency 683: AnalyticsUtils */).AnalyticEventConfigs;
object2.analyticEventConfigs = AnalyticEventConfigs;
object2.dispatcher = importDefault(694) /* metro dependency 694: Dispatcher */;
object2.TRACK_ACTION_NAME = 'TRACK';
const env0_12 = Reflect.apply(trackMaker, value, [object2]);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/app_analytics/useTrackImpression.tsx');
exports.default = useTrackImpression;
exports.trackImpression = closure;
}
function trackImpression(a0) { // fn#68450, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8927:375, offset: 0x01c4f05a, size: 418 bytes, params: 2, frame: 27
var r17;
var r15;
var impressionStack;
var moduleValue;
var expandEventProperties;
var object2;
var moduleValue2;
var moduleValue3;
var value7;
const value = a1;
const value2 = a2;
const value3 = undefined;
const r3 = value !== value3 ? value : false;
const r2 = value2 !== value3 ? value2 : false;
const name = a0.name;
const type = a0.type;
const properties = a0.properties;
const type2 = a0.type;
const ImpressionTypes = (require(480) /* metro dependency 480: AnalyticsUtils */).ImpressionTypes;
const MODAL = ImpressionTypes.MODAL;
if (type2 !== MODAL) {
if (!r2) {
setCurrentImpression(a0);
}
r17 = (properties == null ? value3 : properties.guild_id) ?? SelectedGuildStore.getGuildId();
r15 = (properties == null ? value3 : properties.channel_id) ?? SelectedChannelStore.getChannelId(r17);
moduleValue = require(683) /* metro dependency 683: AnalyticsUtils */;
expandEventProperties = moduleValue.expandEventProperties;
object2 = {impression_type: type};
object2.location = getLocation();
moduleValue2 = require(4863) /* metro dependency 4863: AppAnalyticsUtils */;
copyDataProperties(object2, moduleValue2.collectGuildAnalyticsMetadata(r17), r17);
moduleValue3 = require(4863) /* metro dependency 4863: AppAnalyticsUtils */;
copyDataProperties(object2, moduleValue3.collectChannelAnalyticsMetadata(ChannelStore.getChannel(r15)), r17);
copyDataProperties(object2, properties, r17);
value7 = Reflect.apply(expandEventProperties, moduleValue, [object2]);
if (r3) {
setDebugTrackedData(null, null);
} else {
if (name != null && type != null) {
(require(683) /* metro dependency 683: AnalyticsUtils */).debugLogEvent(name, value7);
env0_12(name, value7);
}
setDebugTrackedData(name, value7);
}
} else if (a0.name != null) {
if (!r2) {
setCurrentImpression(a0);
}
r17 = (properties == null ? value3 : properties.guild_id) ?? SelectedGuildStore.getGuildId();
r15 = (properties == null ? value3 : properties.channel_id) ?? SelectedChannelStore.getChannelId(r17);
moduleValue = require(683) /* metro dependency 683: AnalyticsUtils */;
expandEventProperties = moduleValue.expandEventProperties;
object2 = {impression_type: type};
object2.location = getLocation();
moduleValue2 = require(4863) /* metro dependency 4863: AppAnalyticsUtils */;
copyDataProperties(object2, moduleValue2.collectGuildAnalyticsMetadata(r17), r17);
moduleValue3 = require(4863) /* metro dependency 4863: AppAnalyticsUtils */;
copyDataProperties(object2, moduleValue3.collectChannelAnalyticsMetadata(ChannelStore.getChannel(r15)), r17);
copyDataProperties(object2, properties, r17);
value7 = Reflect.apply(expandEventProperties, moduleValue, [object2]);
if (r3) {
setDebugTrackedData(null, null);
} else {
if (name != null && type != null) {
(require(683) /* metro dependency 683: AnalyticsUtils */).debugLogEvent(name, value7);
env0_12(name, value7);
}
setDebugTrackedData(name, value7);
}
} else {
impressionStack = getImpressionStack();
if (!impressionStack.some(function({_stackContext}) {
return _stackContext?.isSlide;
})) {
if (!r2) {
setCurrentImpression(a0);
}
r17 = (properties == null ? value3 : properties.guild_id) ?? SelectedGuildStore.getGuildId();
r15 = (properties == null ? value3 : properties.channel_id) ?? SelectedChannelStore.getChannelId(r17);
moduleValue = require(683) /* metro dependency 683: AnalyticsUtils */;
expandEventProperties = moduleValue.expandEventProperties;
object2 = {impression_type: type};
object2.location = getLocation();
moduleValue2 = require(4863) /* metro dependency 4863: AppAnalyticsUtils */;
copyDataProperties(object2, moduleValue2.collectGuildAnalyticsMetadata(r17), r17);
moduleValue3 = require(4863) /* metro dependency 4863: AppAnalyticsUtils */;
copyDataProperties(object2, moduleValue3.collectChannelAnalyticsMetadata(ChannelStore.getChannel(r15)),
r17);
copyDataProperties(object2, properties, r17);
value7 = Reflect.apply(expandEventProperties, moduleValue, [object2]);
if (r3) {
setDebugTrackedData(null, null);
} else {
if (name != null && type != null) {
(require(683) /* metro dependency 683: AnalyticsUtils */).debugLogEvent(name, value7);
env0_12(name, value7);
}
setDebugTrackedData(name, value7);
}
}
}
return value3;
}
function useTrackImpression(a0) { // fn#68452, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8927:1056, offset: 0x01c4f21c, size: 152 bytes, params: 2, frame: 14
const value = a1;
const env0_0 = a0;
const env0_1 = value !== undefined ? value : {'disableTrack': false, 'trackOnInitialLoad': false};
const env0_2 = a2;
let env0_3 = undefined;
const binding = env0_3;
env0_3 = binding.useRef(undefined);
const env0_4 = binding.useRef(undefined);
(importDefault(4594) /* metro dependency 4594: useMountEffect */)(_fun68455);
binding.useEffect(_fun68456);
}
function trackImpressionEffect() { // fn#68453, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8927:1195, owner: useTrackImpression.trackImpressionEffect, offset: 0x01c4f2b4, size: 219 bytes, params: 1, frame: 17
var r7;
var binding;
var object2;
const value3 = (importDefault(644) /* metro dependency 644 */)(env0_3.current, env0_0);
if (!value3) {
env0_3.current = env0_0;
}
const defaultImport2 = importDefault(644) /* metro dependency 644 */;
const value4 = defaultImport2(env0_4.current, importDefault);
if (value4) {
r7 = defaultImport2;
} else {
binding = env0_4;
binding.current = importDefault;
r7 = binding;
}
if (value3) {
if (value4) {
return undefined;
}
object2 = {};
copyDataProperties(object2, env0_0, r7);
object2['sequenceId'] = (importDefault(5081) /* metro dependency 5081 */)('impression_');
trackImpression(object2, env0_1.disableTrack);
} else {
object2 = {};
copyDataProperties(object2, env0_0, r7);
object2['sequenceId'] = (importDefault(5081) /* metro dependency 5081 */)('impression_');
trackImpression(object2, env0_1.disableTrack);
}
return _fun68454;
}
function _fun68455() { // fn#68455, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8927:1420, offset: 0x01c4f3b2, size: 30 bytes, params: 1, frame: 10
if (env0_1.trackOnInitialLoad) {
return trackImpressionEffect();
}
}
function _fun68456() { // fn#68456, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8927:1496, offset: 0x01c4f3d0, size: 30 bytes, params: 1, frame: 10
if (env0_1.trackOnInitialLoad) {
return undefined;
}
return trackImpressionEffect();
}
function _fun68454() { // fn#68454, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8927:1388, offset: 0x01c4f38f, size: 35 bytes, params: 1, frame: 11
var value2;
if (env0_0 != null) {
value2 = environment.__proto__.__proto__;
cleanupImpression(env0_0);
}
}