/* Metro module 12954; source: modules/icymi/ICYMISessionStore.tsx; dependencies: [15, 17, 18, 6, 7, 4107, 1220, 9582, 1226, 9569, 491, 9589, 566, 694, 2] */ function _fun98705(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#98705, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13144:6, offset: 0x021b29f7, size: 647 bytes, params: 8, frame: 21 const env0_0 = require; const _arrayLikeToArray_98711 = 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 = ICYMI_TAB_OPENED_98714; const Object = global.Object; Object.defineProperty(exports, '__esModule', {value: true}); const env0_2 = importDefault(15) /* metro dependency 15 */; const env0_3 = importDefault(17) /* metro dependency 17 */; const env0_4 = importDefault(18) /* metro dependency 18 */; const env0_5 = importDefault(6) /* metro dependency 6 */; const env0_6 = importDefault(7) /* metro dependency 7 */; const experimentStore = importDefault(4107) /* metro dependency 4107: ExperimentStore */; const apexExperimentStore = importDefault(1220) /* metro dependency 1220: ApexExperimentStore */; const labFeatureStore = importDefault(9582) /* metro dependency 9582: LabFeatureStore */; const authenticationStore = importDefault(1226) /* metro dependency 1226: AuthenticationStore */; const icymiStore = importDefault(9569) /* metro dependency 9569: ICYMIStore */; const env0_13 = []; const Map = global.Map; let map = new Map(); map = _fun98715(); const Store = (importDefault(566) /* metro dependency 566: flux */).Store; let value5 = new _fun98753(Store)(importDefault(694) /* metro dependency 694: Dispatcher */, {ICYMI_TAB_OPENED: closure, ICYMI_TAB_CLOSED: function() { return endCurrentSession(); }, ICYMI_SET_FOCUSED_TAB: ICYMI_SET_FOCUSED_TAB_98759, ICYMI_ITEMS_DWELL_START: ICYMI_ITEMS_DWELL_START, ICYMI_ITEMS_LONG_IMPRESSION: ICYMI_ITEMS_LONG_IMPRESSION, RELOAD_ICYMI: RELOAD_ICYMI_98763, LOAD_ICYMI_DEHYDRATED: LOAD_ICYMI_DEHYDRATED_98764, APP_STATE_UPDATE: APP_STATE_UPDATE_98765, CHANNEL_SELECT: CHANNEL_SELECT_98766, ICYMI_SET_CARD_HEIGHT: ICYMI_SET_CARD_HEIGHT, ICYMI_ITEM_INTERACTED: ICYMI_ITEM_INTERACTED, ICYMI_FEED_ITEM_ACTIONED: ICYMI_FEED_ITEM_ACTIONED, ICYMI_FEED_FILTER_ACTIONED: ICYMI_FEED_FILTER_ACTIONED, ICYMI_FEED_PAGE_ACTIONED: ICYMI_FEED_PAGE_ACTIONED}); (require(2) /* metro dependency 2 */).fileFinishedImporting('modules/icymi/ICYMISessionStore.tsx'); exports.default = value5; exports.resetGlobalState = resetGlobalState; exports.ICYMISession = map; } function _isNativeReflectConstruct_98706() { // fn#98706, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13144:211, offset: 0x021b2c7e, 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_98706_isNativeReflectConstruct = function() { return !!result; })(); } function _createForOfIteratorHelperLoose_98709(a0, a1) { // fn#98709, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13144:404, offset: 0x021b2ce0, size: 372 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 _fun98710; } value = undefined; if (a0) { if (typeof a0 === 'string') { value = _arrayLikeToArray_98711(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_98711(a0, value); r6 = value; } else { regexp = RegExp('^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$', ''); if (regexp.test(r9)) { value = _arrayLikeToArray_98711(a0, value); r6 = value; } else { r6 = value; } } r5 = r6; } } else { r5 = value; } if (r5) { if (r5) { } return _fun98710; } 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 endCurrentSession() { // fn#98712, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13144:9871, offset: 0x021b2e54, size: 34 bytes, params: 1, frame: 10 var r0; const value2 = env0_12 != null; if (value2) { env0_12.endSession(); r0 = true; } else { r0 = value2; } return r0; } function endCurrentSessionImpressions() { // fn#98713, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13144:9936, offset: 0x021b2e76, size: 34 bytes, params: 1, frame: 10 var r0; const value2 = env0_12 != null; if (value2) { env0_12.endAllImpressions(); r0 = true; } else { r0 = value2; } return r0; } function ICYMI_TAB_OPENED_98714() { // fn#98714, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13144:10019, offset: 0x021b2e98, size: 68 bytes, params: 1, frame: 15 var r0; var value4; if (env0_13.length > 0) { value4 = new env0_16(env0_13, 'focus'); r0 = true; } else { r0 = endCurrentSession(); } return r0; } function _fun98715() { // fn#98715, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13144:1356, offset: 0x021b2edc, size: 725 bytes, params: 1, frame: 15 return env0_6(ICYMISession, [{key: 'sessionId', get: function() { return this._sessionId; }}, {key: 'startTimestamp', get: function() { return this._startTimestamp; }}, {key: 'endTimestamp', get: function() { return this._endTimestamp; }}, {key: 'dwellCount', get: function() { return this._dwellCount; }}, {key: 'uniqueDwellCount', get: function() { return this._dwelledItemIdMap.size; }}, {key: 'impressionCount', get: function() { return this._impressionCount; }}, {key: 'uniqueImpressionCount', get: function() { return this._impressionItemIdMap.size; }}, {key: 'interactionCount', get: function() { return this._interactionCount; }}, {key: 'reloadCount', get: function() { return this._reloadCount; }}, {key: 'feedFetchCount', get: function() { return this._feedFetchCount; }}, {key: 'dwelledItemsChangedCount', get: function() { return this._dwelledItemsChangedCount; }}, {key: 'impressionItemTypes', get: function() { return this._impressionItemTypes; }}, {key: 'getImpression', value: function(a0) { var env0_0 = a0; return this._activeItems.find(_fun98732); }}, {key: 'startItemsDwell', value: value_98733}, {key: 'trackItemsLongImpression', value: value_98737}, {key: 'trackItemInteraction', value: value_98738}, {key: 'trackFeedItemActioned', value: value_98739}, {key: 'trackFeedFilterActioned', value: value_98740}, {key: 'trackFeedPageActioned', value: value_98741}, {key: 'incrementReloadCount', value: function() { this._resetTimeout(); var _reloadCount = this._reloadCount; this._reloadCount = typeof _reloadCount === 'bigint' ? _reloadCount + 1n : +_reloadCount + 1; }}, {key: 'incrementFeedFetchCount', value: function() { var _feedFetchCount = this._feedFetchCount; this._feedFetchCount = typeof _feedFetchCount === 'bigint' ? _feedFetchCount + 1n : +_feedFetchCount + 1; }}, {key: 'endAllImpressions', value: function() { var r3; var env0_0 = this; var _activeItems = this._activeItems; var items = []; arraySpread(items, _activeItems, 0, r3); items.forEach(_fun98745); }}, {key: 'endSession', value: value_98746}, {key: '_resetTimeout', value: function() { var env0_0 = this; global.clearTimeout(this._timeout); this._timeout = global.setTimeout(_fun98748, 300000); }}, {key: '_createImpression', value: value_98749}, {key: '_constructImpressionFromInput', value: value_98750}, {key: '_endImpression', value: value_98751}]); } function _fun98753(a0) { // fn#98753, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13144:9400, offset: 0x021b4020, size: 124 bytes, params: 2, frame: 16 const closure = ICYMISessionStore; env0_4(closure, a0); return env0_6(closure, [{key: 'initialize', value: function() { this.waitFor(ApexExperimentStore, AuthenticationStore, ICYMIStore, ExperimentStore, LabFeatureStore); }}, {key: 'currentSession', get: get_98756}, {key: 'endedSessionCount', get: get_98757}]); } function ICYMI_SET_FOCUSED_TAB_98759({focused}) { // fn#98759, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13144:10269, offset: 0x021b4138, size: 110 bytes, params: 2, frame: 12 var binding; var value2; if (focused) { if (env0_12 != null) { if (env0_13.length > 0) { binding = env0_13; value2 = binding.map(function(a0) { var r2; var object = {}; copyDataProperties(object, a0, r2); object['triggerType'] = 'focus'; object['isInitiallyVisible'] = true; return object; }); binding = env0_12; binding.startItemsDwell(value2); return true; } return false; } return ICYMI_TAB_OPENED_98714(); } return endCurrentSessionImpressions(); } function ICYMI_ITEMS_DWELL_START(a0) { // fn#98761, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13144:10542, offset: 0x021b41cc, size: 81 bytes, params: 2, frame: 14 var binding; var value3; if (env0_12 == null) { value3 = new env0_16(a0.items, 'list'); } else { binding = env0_12; binding.startItemsDwell(a0.items); } return true; } function ICYMI_ITEMS_LONG_IMPRESSION(a0) { // fn#98762, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13144:10674, offset: 0x021b421d, size: 81 bytes, params: 2, frame: 15 var value3; if (env0_12 == null) { value3 = new env0_16(a0.items, 'list'); } const binding = env0_12; binding.trackItemsLongImpression(a0.items); return true; } function RELOAD_ICYMI_98763() { // fn#98763, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13144:10807, offset: 0x021b426e, size: 36 bytes, params: 1, frame: 10 var r0; const value2 = env0_12 != null; if (value2) { env0_12.incrementReloadCount(); r0 = true; } else { r0 = value2; } return r0; } function LOAD_ICYMI_DEHYDRATED_98764() { // fn#98764, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13144:10905, offset: 0x021b4292, size: 46 bytes, params: 1, frame: 11 var r0; const value2 = env0_12 != null; if (value2) { env0_12.incrementFeedFetchCount(); endCurrentSessionImpressions(); r0 = true; } else { r0 = value2; } return r0; } function APP_STATE_UPDATE_98765({state}) { // fn#98765, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13144:11040, offset: 0x021b42c0, size: 50 bytes, params: 2, frame: 10 return state !== 'active' && env0_12 != null && endCurrentSession(); } function CHANNEL_SELECT_98766() { // fn#98766, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13144:11144, offset: 0x021b42f2, size: 28 bytes, params: 1, frame: 10 return env0_12 != null && endCurrentSessionImpressions(); } function ICYMI_SET_CARD_HEIGHT({itemId, height}) { // fn#98767, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13144:11247, offset: 0x021b430e, size: 36 bytes, params: 2, frame: 13 env0_15.set(itemId, height); return true; } function ICYMI_ITEM_INTERACTED({itemId, itemType, actionType}) { // fn#98768, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13144:11337, offset: 0x021b4332, size: 91 bytes, params: 2, frame: 16 var value3; if (env0_12 == null) { value3 = new env0_16(env0_13, 'focus'); } env0_12.trackItemInteraction(itemId, itemType, actionType); return true; } function ICYMI_FEED_ITEM_ACTIONED(a0) { // fn#98769, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13144:11493, offset: 0x021b438d, size: 71 bytes, params: 2, frame: 14 var value3; if (env0_12 == null) { value3 = new env0_16(env0_13, 'focus'); } env0_12.trackFeedItemActioned(a0); return true; } function ICYMI_FEED_FILTER_ACTIONED(a0) { // fn#98770, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13144:11623, offset: 0x021b43d4, size: 71 bytes, params: 2, frame: 14 var value3; if (env0_12 == null) { value3 = new env0_16(env0_13, 'focus'); } env0_12.trackFeedFilterActioned(a0); return true; } function ICYMI_FEED_PAGE_ACTIONED(a0) { // fn#98771, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13144:11755, offset: 0x021b441b, size: 71 bytes, params: 2, frame: 14 var value3; if (env0_12 == null) { value3 = new env0_16(env0_13, 'focus'); } env0_12.trackFeedPageActioned(a0); return true; } function resetGlobalState() { // fn#98772, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13144:11964, offset: 0x021b4462, size: 74 bytes, params: 1, frame: 13 if (env0_12 != null) { global.clearTimeout(env0_12._timeout); } env0_13 = []; env0_15.clear(); } function ICYMISession() { // fn#98716, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13144:1377, offset: 0x021b31b1, size: 432 bytes, params: 1, frame: 22 var environment; let value = a0; const value2 = a1; const r5 = value !== undefined ? value : []; const env0_1 = value2 !== undefined ? value2 : 'list'; value = environment.__proto__; env1_5(this, ICYMISession); const moduleValue = require(491) /* metro dependency 491 */; this._sessionId = moduleValue.v4(); const Date = global.Date; this._startTimestamp = Date.now(); this._endTimestamp = null; this._activeItems = []; this._dwellCount = 0; this._impressionCount = 0; let Map = global.Map; const value4 = Object.create(Map.prototype, {constructor: {value: Map}}); let map = new Map(); this._dwelledItemIdMap = map instanceof Object ? map : value4; Map = global.Map; const value6 = Object.create(Map.prototype, {constructor: {value: Map}}); map = new Map(); this._impressionItemIdMap = map instanceof Object ? map : value6; const Set = global.Set; const value8 = Object.create(Set.prototype, {constructor: {value: Set}}); const set = new Set(); this._impressionItemTypes = set instanceof Object ? set : value8; this._reloadCount = 0; this._feedFetchCount = 0; this._dwelledItemsChangedCount = 0; this._interactionCount = 0; this._actionCount = 0; this._latestDwellStartTimeMs = 0; this._timeout = global.setTimeout(_fun98717, 300000); const ICYMIAnalytics = (require(9589) /* metro dependency 9589: ICYMIAnalytics */).ICYMIAnalytics; const trackFeedSessionStarted = ICYMIAnalytics.trackFeedSessionStarted; const object2 = {}; object2.icymiSessionId = this._sessionId; object2.sessionStartTimeMs = this._startTimestamp; object2.previousIcymiSessionCount = env1_14; const DEFAULT_UX_VARIATION = (require(9589) /* metro dependency 9589: ICYMIAnalytics */).DEFAULT_UX_VARIATION; object2.uxVariation = DEFAULT_UX_VARIATION; Reflect.apply(trackFeedSessionStarted, ICYMIAnalytics, [object2]); if (r5.length > 0) { this.startItemsDwell(r5.map(_fun98718)); } } function value_98731(a0) { // fn#98731, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13144:3042, offset: 0x021b342b, size: 38 bytes, params: 2, frame: 11 const env0_0 = a0; return this._activeItems.find(_fun98732); } function value_98733(a0) { // fn#98733, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13144:3134, offset: 0x021b3451, size: 299 bytes, params: 2, frame: 20 var environment; var r5; var value6; var getImpression; var itemId; var value7; var push; var _createImpression; var value8; this._resetTimeout(); let value = environment.__proto__; env1_13 = a0; if (a0.length === this._activeItems.length) { reducibleJoin2: while (true) { if (a0.every(_fun98734)) { return this._activeItems; } break reducibleJoin2; } } const _dwelledItemsChangedCount = this._dwelledItemsChangedCount; this._dwelledItemsChangedCount = typeof _dwelledItemsChangedCount === 'bigint' ? _dwelledItemsChangedCount + 1n : +_dwelledItemsChangedCount + 1; const items2 = []; const Set = global.Set; const set = new Set(this._activeItems.map(function(a0) { return a0.itemId; })); value = _createForOfIteratorHelperLoose_98709(a0); const value5 = value(); let done = value5.done; if (!done) { r5 = value5; reducibleLoop3: while (true) { value6 = r5.value; getImpression = this.getImpression; itemId = value6.itemId; value7 = Reflect.apply(getImpression, this, [itemId]); if (value7 != null) { push = items2.push; Reflect.apply(push, items2, [value7]); itemId = value6.itemId; set.delete(itemId); } else { push = items2.push; _createImpression = this._createImpression; Reflect.apply(push, items2, [Reflect.apply(_createImpression, this, [value6])]); } value8 = value(); done = value8.done; if (done) { break reducibleLoop3; } r5 = value8; continue reducibleLoop3; } } set.forEach(_fun98736); this._activeItems = items2; return this._activeItems; } function value_98737(a0) { // fn#98737, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13144:3684, offset: 0x021b35c7, size: 497 bytes, params: 2, frame: 26 var r2; var r12; var r1; var r14; var r15; var r13; var value5; var getImpression; var itemId; var value6; var value7; var _impressionCount; var value8; var _impressionItemIdMap; var set; var _impressionItemIdMap2; var get; var itemId2; var value9; var value10; var ICYMIAnalytics; var trackFeedItemDwell1s; var object2; var _sessionId; var impressionId; var itemType; var impressionStartTimestamp; var triggerType; var _dwelledItemIdMap; var value11; var itemFeedIndex; var itemScore; var isInitiallyVisible; var itemChannelType; var binding; var value12; var itemCardHeight; var interactionActionTypes; var interactionCount; var uxVariation; var DEFAULT_UX_VARIATION; var sessionImpressionIndex; var value13; const value2 = _createForOfIteratorHelperLoose_98709(a0); const value3 = value2(); let done = value3.done; const value4 = null; if (!done) { r2 = value3; while (true) { value5 = r2.value; getImpression = this.getImpression; itemId = value5.itemId; value6 = Reflect.apply(getImpression, this, [itemId]); if (value4 != value6) { r12 = value6; } else { value7 = this._constructImpressionFromInput(value5); r12 = value7; } _impressionCount = this._impressionCount; value8 = typeof _impressionCount === 'bigint' ? _impressionCount + 1n : +_impressionCount + 1; this._impressionCount = value8; r12.sessionImpressionIndex = value8; _impressionItemIdMap = this._impressionItemIdMap; set = _impressionItemIdMap.set; itemId = value5.itemId; _impressionItemIdMap2 = this._impressionItemIdMap; get = _impressionItemIdMap2.get; itemId2 = value5.itemId; value9 = Reflect.apply(get, _impressionItemIdMap2, [itemId2]); value10 = 0; if (value4 != value9) { r1 = value9; continue; } r1 = value10; continue; Reflect.apply(set, _impressionItemIdMap, [itemId, r1 + 1]); ICYMIAnalytics = (require(9589) /* metro dependency 9589: ICYMIAnalytics */).ICYMIAnalytics; trackFeedItemDwell1s = ICYMIAnalytics.trackFeedItemDwell1s; object2 = {}; _sessionId = this._sessionId; object2.icymiSessionId = _sessionId; impressionId = r12.impressionId; object2.impressionId = impressionId; itemId = r12.itemId; object2.itemId = itemId; itemType = r12.itemType; object2.itemType = itemType; impressionStartTimestamp = r12.impressionStartTimestamp; object2.dwellStartTimeMs = impressionStartTimestamp; triggerType = r12.triggerType; object2.triggerType = triggerType; _dwelledItemIdMap = this._dwelledItemIdMap; get = _dwelledItemIdMap.get; itemId = r12.itemId; value11 = Reflect.apply(get, _dwelledItemIdMap, [itemId]); if (value4 != value11) { r14 = value11; continue; } r14 = value10; continue; object2.itemOccurenceCountInSession = r14; itemFeedIndex = r12.itemFeedIndex; object2.itemFeedIndex = itemFeedIndex; itemScore = r12.itemScore; object2.itemScore = itemScore; isInitiallyVisible = r12.isInitiallyVisible; object2.isInitiallyVisible = isInitiallyVisible; itemChannelType = r12.itemChannelType; object2.itemChannelType = itemChannelType; binding = env1_15; get = binding.get; itemId = r12.itemId; value12 = Reflect.apply(get, binding, [itemId]); if (value4 != value12) { r15 = value12; continue; } itemCardHeight = r12.itemCardHeight; r15 = itemCardHeight; if (value4 != r15) { r14 = r15; continue; } r14 = value4; continue; object2.itemCardHeight = r14; object2.isDwelling = value4 != value6; interactionActionTypes = r12.interactionActionTypes; object2.interactionActionTypes = interactionActionTypes; interactionCount = r12.interactionCount; object2.interactionCount = interactionCount; uxVariation = r12.uxVariation; if (value4 != uxVariation) { r13 = uxVariation; continue; } DEFAULT_UX_VARIATION = (require(9589) /* metro dependency 9589: ICYMIAnalytics */).DEFAULT_UX_VARIATION; r13 = DEFAULT_UX_VARIATION; object2.uxVariation = r13; sessionImpressionIndex = r12.sessionImpressionIndex; object2.sessionImpressionIndex = sessionImpressionIndex; Reflect.apply(trackFeedItemDwell1s, ICYMIAnalytics, [object2]); value13 = value2(); done = value13.done; if (done) { break; } r2 = value13; continue; } } } function value_98738(a0, a1, a2) { // fn#98738, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13144:4764, offset: 0x021b37b8, size: 217 bytes, params: 4, frame: 20 var interactionCount; const impression = this.getImpression(a0); const value3 = undefined; const ICYMIAnalytics = (require(9589) /* metro dependency 9589: ICYMIAnalytics */).ICYMIAnalytics; const trackItemInteraction = ICYMIAnalytics.trackItemInteraction; const object2 = {id: a0, type: a1, actionType: a2}; object2.impressionId = impression == null ? value3 : impression.impressionId; object2.uxVariation = (impression == null ? value3 : impression.uxVariation) ?? (require(9589) /* metro dependency 9589: ICYMIAnalytics */).DEFAULT_UX_VARIATION; const _interactionCount = this._interactionCount; const value4 = typeof _interactionCount === 'bigint' ? _interactionCount + 1n : +_interactionCount + 1; this._interactionCount = value4; object2.sessionInteractionIndex = value4; object2.icymiSessionId = this._sessionId; Reflect.apply(trackItemInteraction, ICYMIAnalytics, [object2]); if (impression != null) { impression.interactionActionTypes.push(a2); interactionCount = impression.interactionCount; impression.interactionCount = typeof interactionCount === 'bigint' ? interactionCount + 1n : +interactionCount + 1; } return value3; } function value_98739(a0) { // fn#98739, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13144:5193, offset: 0x021b3891, size: 214 bytes, params: 2, frame: 20 const impression = this.getImpression(a0.itemId); const value3 = undefined; const ICYMIAnalytics = (require(9589) /* metro dependency 9589: ICYMIAnalytics */).ICYMIAnalytics; const trackFeedItemActioned = ICYMIAnalytics.trackFeedItemActioned; const object2 = {}; object2.icymiSessionId = this._sessionId; const value4 = null; const uxVariation = value4 == impression ? value3 : impression.uxVariation; object2.uxVariation = value4 != uxVariation ? uxVariation : (require(9589) /* metro dependency 9589: ICYMIAnalytics */).DEFAULT_UX_VARIATION; const _actionCount = this._actionCount; const value5 = typeof _actionCount === 'bigint' ? _actionCount + 1n : +_actionCount + 1; this._actionCount = value5; object2.sessionActionIndex = value5; object2.itemId = a0.itemId; object2.itemType = a0.itemType; const impressionId = value4 == impression ? value3 : impression.impressionId; object2.impressionId = value4 != impressionId ? impressionId : value4; object2.actionParameters = a0.actionParameters; Reflect.apply(trackFeedItemActioned, ICYMIAnalytics, [object2]); return value3; } function value_98740(a0) { // fn#98740, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13144:5619, offset: 0x021b3967, size: 229 bytes, params: 2, frame: 20 const itemId = a0.itemId; const value = null; const r6 = value != itemId ? this.getImpression(a0.itemId) : value; const value4 = undefined; const ICYMIAnalytics = (require(9589) /* metro dependency 9589: ICYMIAnalytics */).ICYMIAnalytics; const trackFeedFilterActioned = ICYMIAnalytics.trackFeedFilterActioned; const object2 = {}; object2.icymiSessionId = this._sessionId; const uxVariation = value == r6 ? value4 : r6.uxVariation; object2.uxVariation = value != uxVariation ? uxVariation : (require(9589) /* metro dependency 9589: ICYMIAnalytics */).DEFAULT_UX_VARIATION; const _actionCount = this._actionCount; const value5 = typeof _actionCount === 'bigint' ? _actionCount + 1n : +_actionCount + 1; this._actionCount = value5; object2.sessionActionIndex = value5; object2.filterParameters = a0.filterParameters; object2.itemId = a0.itemId; object2.itemType = a0.itemType; const impressionId = value == r6 ? value4 : r6.impressionId; object2.impressionId = value != impressionId ? impressionId : value; Reflect.apply(trackFeedFilterActioned, ICYMIAnalytics, [object2]); return value4; } function value_98741(a0) { // fn#98741, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13144:6065, offset: 0x021b3a4c, size: 110 bytes, params: 2, frame: 18 let value = environment.__proto__; const ICYMIAnalytics = (require(9589) /* metro dependency 9589: ICYMIAnalytics */).ICYMIAnalytics; const trackFeedPageActioned = ICYMIAnalytics.trackFeedPageActioned; const object2 = {}; const _sessionId = this._sessionId; object2.icymiSessionId = _sessionId; const DEFAULT_UX_VARIATION = (require(9589) /* metro dependency 9589: ICYMIAnalytics */).DEFAULT_UX_VARIATION; object2.uxVariation = DEFAULT_UX_VARIATION; const _actionCount = this._actionCount; value = typeof _actionCount === 'bigint' ? _actionCount + 1n : +_actionCount + 1; this._actionCount = value; object2.sessionActionIndex = value; copyDataProperties(object2, a0, _sessionId); Reflect.apply(trackFeedPageActioned, ICYMIAnalytics, [object2]); } function value_98744() { // fn#98744, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13144:6439, offset: 0x021b3af0, size: 49 bytes, params: 1, frame: 14 const _activeItems = this._activeItems; const items2 = []; arraySpread(items2, _activeItems, 0, undefined); items2.forEach(_fun98745); } function value_98746() { // fn#98746, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13144:6543, offset: 0x021b3b3e, size: 349 bytes, params: 1, frame: 21 this.endAllImpressions(); const Date = global.Date; this._endTimestamp = Date.now(); const ICYMIAnalytics = (require(9589) /* metro dependency 9589: ICYMIAnalytics */).ICYMIAnalytics; const trackFeedSessionCompleted = ICYMIAnalytics.trackFeedSessionCompleted; const object2 = {}; object2.icymiSessionId = this._sessionId; object2.sessionDurationMs = this._endTimestamp - this._startTimestamp; object2.sessionStartTimeMs = this._startTimestamp; object2.sessionEndTimeMs = this._endTimestamp; object2.impressionCount = this._impressionCount; object2.uniqueImpressionCount = this._impressionItemIdMap.size; const Array = global.Array; object2.impressionItemTypes = Array.from(this._impressionItemTypes); object2.feedReloadCount = this._reloadCount; object2.feedDwelledItemsChangedCount = this._dwelledItemsChangedCount; object2.feedFetchCount = this._feedFetchCount; object2.latestDwellStartTimeMs = this._latestDwellStartTimeMs; object2.previousIcyMiSessionCount = env1_14; object2.interactionCount = this._interactionCount; object2.dwelledCount = this._dwellCount; object2.uniqueDwelledCount = this._dwelledItemIdMap.size; const DEFAULT_UX_VARIATION = (require(9589) /* metro dependency 9589: ICYMIAnalytics */).DEFAULT_UX_VARIATION; object2.uxVariation = DEFAULT_UX_VARIATION; Reflect.apply(trackFeedSessionCompleted, ICYMIAnalytics, [object2]); global.clearTimeout(this._timeout); const binding = env1_14; env1_14 = typeof binding === 'bigint' ? binding + 1n : +binding + 1; env1_15.clear(); return this; } function value_98747() { // fn#98747, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13144:7437, offset: 0x021b3c9b, size: 63 bytes, params: 1, frame: 15 global.clearTimeout(this._timeout); this._timeout = global.setTimeout(_fun98748, 300000); } function value_98749(a0) { // fn#98749, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13144:7561, offset: 0x021b3cda, size: 134 bytes, params: 2, frame: 18 const value = this._constructImpressionFromInput(a0); const _dwellCount = this._dwellCount; this._dwellCount = typeof _dwellCount === 'bigint' ? _dwellCount + 1n : +_dwellCount + 1; const _dwelledItemIdMap = this._dwelledItemIdMap; _dwelledItemIdMap.set(a0.itemId, (this._dwelledItemIdMap.get(a0.itemId) ?? 0) + 1); const _impressionItemTypes = this._impressionItemTypes; _impressionItemTypes.add(a0.itemType); this._latestDwellStartTimeMs = value.impressionStartTimestamp; return value; } function value_98750(a0) { // fn#98750, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13144:7882, offset: 0x021b3d60, size: 244 bytes, params: 2, frame: 15 const value2 = (require(491) /* metro dependency 491 */).v4(); const object2 = {}; object2.itemId = a0.itemId; object2.itemType = a0.itemType; object2.impressionId = value2; const Date = global.Date; object2.impressionStartTimestamp = Date.now(); object2.impressionComplete = false; object2.triggerType = a0.triggerType; object2.itemFeedIndex = a0.itemFeedIndex; object2.itemScore = a0.itemScore; object2.isInitiallyVisible = a0.isInitiallyVisible; object2.itemChannelType = a0.itemChannelType; const value3 = env1_15.get(a0.itemId); const value4 = null; object2.itemCardHeight = value4 != value3 ? value3 : value4; const DEFAULT_UX_VARIATION = (require(9589) /* metro dependency 9589: ICYMIAnalytics */).DEFAULT_UX_VARIATION; object2.uxVariation = DEFAULT_UX_VARIATION; object2.interactionActionTypes = []; object2.interactionCount = 0; object2.sessionImpressionIndex = value4; return object2; } function value_98751(a0) { // fn#98751, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13144:8380, offset: 0x021b3e54, size: 460 bytes, params: 2, frame: 23 var environment; var r7; var r12; var r0; var value2; var ICYMIAnalytics; var trackFeedItemDwelled; var object2; var impressionEndTimestamp; var impressionStartTimestamp; var itemId; var _dwelledItemIdMap; var get; var value3; var binding; var value5; var uxVariation; const env0_0 = a0; const index = this._activeItems.findIndex(_fun98752); const property = this._activeItems[index]; const value = null; if (value != property) { property.impressionEndTimestamp = global.Date.now(); property.impressionComplete = true; value2 = environment.__proto__; ICYMIAnalytics = (require(9589) /* metro dependency 9589: ICYMIAnalytics */).ICYMIAnalytics; trackFeedItemDwelled = ICYMIAnalytics.trackFeedItemDwelled; object2 = {}; object2.icymiSessionId = this._sessionId; object2.impressionId = property.impressionId; impressionEndTimestamp = property.impressionEndTimestamp; impressionStartTimestamp = property.impressionStartTimestamp; object2.dwellTimeMs = impressionEndTimestamp - impressionStartTimestamp; itemId = property.itemId; object2.itemId = itemId; object2.itemType = property.itemType; impressionStartTimestamp = property.impressionStartTimestamp; object2.dwellStartTimeMs = impressionStartTimestamp; impressionEndTimestamp = property.impressionEndTimestamp; object2.dwellEndTimeMs = impressionEndTimestamp; object2.triggerType = property.triggerType; _dwelledItemIdMap = this._dwelledItemIdMap; get = _dwelledItemIdMap.get; itemId = property.itemId; value3 = Reflect.apply(get, _dwelledItemIdMap, [itemId]); r7 = value != value3 ? value3 : 0; object2.itemOccurenceCountInSession = r7; object2.itemFeedIndex = property.itemFeedIndex; object2.itemScore = property.itemScore; object2.isInitiallyVisible = property.isInitiallyVisible; object2.itemChannelType = property.itemChannelType; binding = env1_15; get = binding.get; itemId = property.itemId; value5 = Reflect.apply(get, binding, [itemId]); r12 = value != value5 ? value5 : property.itemCardHeight; r7 = value != r12 ? r12 : value; object2.itemCardHeight = r7; uxVariation = property.uxVariation; r7 = value != uxVariation ? uxVariation : (require(9589) /* metro dependency 9589: ICYMIAnalytics */).DEFAULT_UX_VARIATION; object2.uxVariation = r7; object2.interactionActionTypes = property.interactionActionTypes; object2.interactionCount = property.interactionCount; object2.sessionImpressionIndex = property.sessionImpressionIndex; Reflect.apply(trackFeedItemDwelled, ICYMIAnalytics, [object2]); this._activeItems.splice(index, 1); r0 = property; } else { r0 = value; } return r0; } function ICYMISessionStore() { // fn#98754, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13144:9412, offset: 0x021b409c, size: 113 bytes, params: 1, frame: 20 const value = environment.__proto__; env1_5(this, ICYMISessionStore); const value3 = env1_3(ICYMISessionStore); return env1_2(this, _isNativeReflectConstruct_98706() ? global.Reflect.construct(value3, arguments, env1_3(this).constructor) : value3.apply(this, arguments)); } function _fun98717() { // fn#98717, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13144:1863, offset: 0x021b3361, size: 19 bytes, params: 1, frame: 9 return env0_0.endSession(); } function _fun98718(a0) { // fn#98718, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13144:2123, offset: 0x021b3374, size: 41 bytes, params: 2, frame: 12 const object2 = {}; copyDataProperties(object2, a0, undefined); object2['triggerType'] = env0_1; object2['isInitiallyVisible'] = true; return object2; } function _fun98734({itemId}, a1) { // fn#98734, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13144:3220, offset: 0x021b357c, size: 41 bytes, params: 3, frame: 2 const itemId = env0_0._activeItems[a1].itemId; return itemId === itemId; } function _fun98736(a0) { // fn#98736, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13144:3578, offset: 0x021b35b0, size: 23 bytes, params: 2, frame: 11 return env0_0._endImpression(a0); } function _fun98745({itemId}) { // fn#98745, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13144:6482, offset: 0x021b3b21, size: 29 bytes, params: 2, frame: 11 return env0_0._endImpression(itemId); }