/* Metro module 7070; source: modules/messages/MessageRoundtripTrackerStore.tsx; dependencies: [6, 7, 15, 17, 18, 1379, 4111, 4401, 661, 3, 4873, 683, 7071, 566, 694, 2] */ function _fun56334(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#56334, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7248:6, offset: 0x013c52ba, size: 393 bytes, params: 8, frame: 19 const env0_0 = require; const isCompleted = function(a0) { return a0.apiResponseTimestamp != null && a0.gatewaySeenTimestamp != null; }; 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 channelStore = importDefault(1379) /* metro dependency 1379: ChannelStore */; const guildMemberCountStore = importDefault(4111) /* metro dependency 4111: GuildMemberCountStore */; const networkStore = importDefault(4401) /* metro dependency 4401: NetworkStore */; const env0_11 = (require(661) /* metro dependency 661: Constants */).AnalyticEvents; let value = importDefault(3) /* metro dependency 3: Logger */; value = new value('MessageRoundtripTrackerStore'); const Store = (importDefault(566) /* metro dependency 566: flux */).Store; value = _fun56340(Store); value = new value(importDefault(694) /* metro dependency 694: Dispatcher */, {MESSAGE_CREATE: MESSAGE_CREATE_56347}); (require(2) /* metro dependency 2 */).fileFinishedImporting('modules/messages/MessageRoundtripTrackerStore.tsx'); exports.default = value; } function _isNativeReflectConstruct_56335() { // fn#56335, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7248:203, offset: 0x013c5443, size: 94 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_56335_isNativeReflectConstruct = function() { return !!result; })(); } function trackRoundtrip(a0) { // fn#56339, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7248:537, offset: 0x013c54bf, size: 440 bytes, params: 2, frame: 24 var r11; var r10; var binding; var signalStrength; var defaultImport; var track; var SEND_MESSAGE_ROUNDTRIP; var object2; var guild_id; var getMemberCount; var value; const basicChannel = ChannelStore.getBasicChannel(a0.channelId); const value3 = null; if (value3 != basicChannel) { if (!(global.Math.random() > 0.1)) { r11 = value3 == a0.apiResponseTimestamp ? value3 : a0.apiResponseTimestamp - a0.initialSendTimestamp; r10 = value3 == a0.gatewaySeenTimestamp ? value3 : a0.gatewaySeenTimestamp - a0.initialSendTimestamp; signalStrength = require(dependencyMap[10]).getSignalStrength(); defaultImport = importDefault(dependencyMap[11]); track = defaultImport.track; SEND_MESSAGE_ROUNDTRIP = AnalyticEvents.SEND_MESSAGE_ROUNDTRIP; object2 = {}; copyDataProperties(object2, importDefault(dependencyMap[12])(), dependencyMap); object2['api_latency_ms'] = r11; object2['gateway_latency_ms'] = r10; object2['channel_id'] = basicChannel.id; object2['channel_type'] = basicChannel.type; guild_id = basicChannel.guild_id; object2['guild_id'] = guild_id; getMemberCount = GuildMemberCountStore.getMemberCount; guild_id = basicChannel.guild_id; object2['guild_size'] = Reflect.apply(getMemberCount, GuildMemberCountStore, [guild_id]); value = NetworkStore.getType(); object2['mobile_network_type'] = value; object2['num_attachments'] = a0.attachmentCount; value = value3 != signalStrength; copyDataProperties(object2, value && ({mobile_signal_strength_level: signalStrength}), dependencyMap); Reflect.apply(track, defaultImport, [SEND_MESSAGE_ROUNDTRIP, object2]); } } else { binding = env0_12; binding.warn('Ignoring a messageData for channel ' + a0.channelId + " because we can't find that channel."); } } function _fun56340(a0) { // fn#56340, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7248:1250, offset: 0x013c5677, size: 143 bytes, params: 2, frame: 16 const closure = MessageRoundtripTrackerStoreClass; env0_7(closure, a0); return env0_4(closure, [{key: 'initialize', value: function() { this.waitFor(ChannelStore, GuildMemberCountStore, NetworkStore); }}, {key: 'recordMessageSendAttempt', value: value_56343}, {key: 'recordMessageSendApiResponse', value: value_56345}, {key: 'recordGatewayResponse', value: value_56346}]); } function MESSAGE_CREATE_56347({optimistic, message}) { // fn#56347, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7248:2700, offset: 0x013c59b3, size: 56 bytes, params: 2, frame: 11 const nonce = message.nonce; if (!(optimistic || nonce == null)) { env0_13.recordGatewayResponse(nonce); } } function MessageRoundtripTrackerStoreClass(a0) { // fn#56341, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7248:1262, offset: 0x013c5706, size: 160 bytes, params: 2, frame: 19 var r0; var Reflect; let value = copyRestArgs(0, undefined); let binding = env1_3; binding(this, MessageRoundtripTrackerStoreClass); const items2 = []; arraySpread(items2, value, 0, items2); value = env1_6(MessageRoundtripTrackerStoreClass); binding = env1_5; if (_isNativeReflectConstruct_56335()) { 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); const Map = global.Map; const value4 = Object.create(Map.prototype, {constructor: {value: Map}}); const map = new Map(); value.pendingMessages = map instanceof Object ? map : value4; return value; } function value_56343(a0, a1) { // fn#56343, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7248:1753, offset: 0x013c57a6, size: 188 bytes, params: 3, frame: 19 let value = a2; const env0_1 = a1; const value2 = undefined; const r5 = value !== value2 ? value : {}; const attachments = r5.attachments; const r2 = (attachments == null ? value2 : attachments.length) ?? 0; const attachmentsToUpload = r5.attachmentsToUpload; value = r2 + ((attachmentsToUpload == null ? value2 : attachmentsToUpload.length) ?? value); const object2 = {'initialSendTimestamp': null, 'apiResponseTimestamp': null, 'gatewaySeenTimestamp': null}; const Date = global.Date; object2.initialSendTimestamp = Date.now(); object2.channelId = a0; object2.attachmentCount = value; this.pendingMessages.set(a1, object2); global.setTimeout(_fun56344, 30000); return value2; } function value_56345(a0) { // fn#56345, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7248:2216, offset: 0x013c58ad, size: 131 bytes, params: 2, frame: 16 var object2; let value = this.pendingMessages.get(a0); if (value != null) { object2 = {}; copyDataProperties(object2, value, undefined); value = global.Date.now(); object2['apiResponseTimestamp'] = value; value = environment.__proto__; if (isCompleted(object2)) { trackRoundtrip(object2); this.pendingMessages.delete(a0); } else { this.pendingMessages.set(a0, object2); } } } function value_56346(a0) { // fn#56346, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7248:2453, offset: 0x013c5930, size: 131 bytes, params: 2, frame: 16 var object2; let value = this.pendingMessages.get(a0); if (value != null) { object2 = {}; copyDataProperties(object2, value, undefined); value = global.Date.now(); object2['gatewaySeenTimestamp'] = value; value = environment.__proto__; if (isCompleted(object2)) { trackRoundtrip(object2); this.pendingMessages.delete(a0); } else { this.pendingMessages.set(a0, object2); } } } function _fun56344() { // fn#56344, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7248:2066, offset: 0x013c5862, size: 75 bytes, params: 1, frame: 12 var value3; const value2 = env0_0.pendingMessages.get(require); if (value2 != null) { value3 = environment.__proto__.__proto__; trackRoundtrip(value2); env0_0.pendingMessages.delete(require); } }