Files
discord-decomp/sources/modules/local_message_caching/LocalMessageCacheManager.native.tsx
T
2026-07-28 01:06:53 +03:00

1136 lines
58 KiB
TypeScript

/* Metro module 13094; source: modules/local_message_caching/LocalMessageCacheManager.native.tsx; dependencies: [6, 7, 15, 17, 18, 99, 100, 5, 57, 3794, 1226, 1379, 4814, 661, 13095, 3, 672, 587, 3738, 3826, 7141, 7067, 694, 11420, 11170, 1962, 9597, 4816, 4561, 2] */
import Logger from '../debug/Logger.tsx'; /* Metro dependency 3 */
import Module00005 from '../../by-id/module-00005.js'; /* Metro dependency 5 */
import ClassCallCheck from '../../by-id/module-00006-ClassCallCheck.js'; /* Metro dependency 6 */
import CreateClass from '../../by-id/module-00007-CreateClass.js'; /* Metro dependency 7 */
import PossibleConstructorReturn from '../../by-id/module-00015-PossibleConstructorReturn.js'; /* Metro dependency 15 */
import Module00017 from '../../by-id/module-00017.js'; /* Metro dependency 17 */
import Inherits from '../../by-id/module-00018-Inherits.js'; /* Metro dependency 18 */
import Module00057 from '../../by-id/module-00057.js'; /* Metro dependency 57 */
import Module00099 from '../../by-id/module-00099.js'; /* Metro dependency 99 */
import Module00100 from '../../by-id/module-00100.js'; /* Metro dependency 100 */
import Dispatcher from '../../Dispatcher.tsx'; /* Metro dependency 694 */
import AuthenticationStore from '../../stores/AuthenticationStore.tsx'; /* Metro dependency 1226 */
import ChannelStore from '../../stores/ChannelStore.tsx'; /* Metro dependency 1379 */
import MessageRecord from '../../records/MessageRecord.tsx'; /* Metro dependency 3794 */
import MessageStore from '../../stores/MessageStore.tsx'; /* Metro dependency 4814 */
import MessageActionCreators from '../../actions/MessageActionCreators.tsx'; /* Metro dependency 7067 */
import CreateMessage from '../messages/createMessage.tsx'; /* Metro dependency 7141 */
import * as FileImportTrackerModule from '../../by-id/module-00002-FileImportTracker.js'; /* Metro dependency 2 */
import * as StorageModule from '../../external/discord_common/js/packages/storage/Storage.tsx'; /* Metro dependency 587 */
import * as ConstantsModule from '../../Constants.tsx'; /* Metro dependency 661 */
import * as MutexUtilsModule from '../../external/discord_common/js/shared/utils/MutexUtils.tsx'; /* Metro dependency 13095 */
function _fun100057(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#100057, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13284:6, offset: 0x021dcf1c, size: 693 bytes, params: 8, frame: 22
const env0_0 = require;
const _arrayLikeToArray_100060 = 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 Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
let value = Module00100;
const env0_16 = (MutexUtilsModule).createLock();
let value5 = new (Logger)('LocalMessageCacheManager');
let Millis = (importDefault(672) /* metro dependency 672: Durations */).Millis;
const MINUTE = Millis.MINUTE;
const env0_18 = 5 * MINUTE;
Millis = (importDefault(672) /* metro dependency 672: Durations */).Millis;
const DAY = Millis.DAY;
const env0_19 = 14 * DAY;
const env0_31 = _fun100080();
const env0_32 = _fun100084();
const env0_33 = value('loadedChannels');
value = importDefault(4561) /* metro dependency 4561: LifecycleManager */;
value = _fun100088(value);
value = new value();
(FileImportTrackerModule).fileFinishedImporting('modules/local_message_caching/LocalMessageCacheManager.native.tsx');
exports.default = value;
function _createForOfIteratorHelperLoose_100058(a0, a1) { // fn#100058, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13284:259, offset: 0x021dd1d1, 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 _fun100059;
}
value = undefined;
if (a0) {
if (typeof a0 === 'string') {
value = _arrayLikeToArray_100060(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_100060(a0, value);
r6 = value;
} else {
regexp = RegExp('^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$', '');
if (regexp.test(r9)) {
value = _arrayLikeToArray_100060(a0, value);
r6 = value;
} else {
r6 = value;
}
}
r5 = r6;
}
} else {
r5 = value;
}
if (r5) {
if (r5) {
}
return _fun100059;
}
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 _fun100059() { // fn#100059, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13284:830, offset: 0x00c39d73, size: 69 bytes, params: 1, frame: 5
return env0_1 >= env0_0.length ? {done: true} : {done: false,
value: env0_0[typeof env0_1 === 'bigint' ? env0_1 : +env0_1]};
}
}
function _isNativeReflectConstruct_100061() { // fn#100061, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13284:1169, offset: 0x021dd345, 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_100061_isNativeReflectConstruct = function() {
return !!result;
})();
}
function _getMessages() { // fn#100064, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13284:1544, offset: 0x021dd3a7, size: 57 bytes, params: 1, frame: 11
const Storage = (StorageModule).Storage;
return Storage.get('LocalMessageCacheManagerMessageCacheKey') ?? ({});
}
function _getMessage(a0) { // fn#100065, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13284:1618, offset: 0x021dd3e0, size: 22 bytes, params: 2, frame: 9
return _getMessages()[a0];
}
function _writeMessage(a0, a1) { // fn#100066, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13284:1653, offset: 0x021dd3f6, size: 212 bytes, params: 3, frame: 20
var object;
let binding = env0_17;
const value2 = undefined;
binding.verbose('_writeMessage', a1 == null ? value2 : a1.id, a1 == null ? value2 : a1.channel_id);
const value3 = _getMessages();
if (a1 != null) {
object = {};
copyDataProperties(object, a1, undefined);
object['content'] = a1.content ?? '';
value3[a0] = object;
binding = env0_17;
binding.verbose('_writeMessage after write', value3[a0].id, value3[a0].channel_id);
} else {
delete value3[a0];
}
const Storage = (StorageModule).Storage;
Storage.set('LocalMessageCacheManagerMessageCacheKey', value3);
return value3;
}
function _getKeyForFileId(a0) { // fn#100067, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13284:1943, offset: 0x021dd4ca, size: 121 bytes, params: 2, frame: 22
var r3;
var id;
var property;
var value6;
var file;
var value7;
const _getMessagesBinding = _getMessages;
const value2 = undefined;
const value3 = _getMessagesBinding();
const Object = global.Object;
const value4 = Object.entries(value3);
let length = value4.length;
const value5 = 0;
if (value5 < length) {
r3 = value5;
while (true) {
property = value4[r3];
value6 = Module00057(property, 2);
property = value6[value5];
file = value6[1].file;
id = file == null ? value2 : file.id;
if (id === a0) {
return property;
}
value7 = typeof r3 === 'bigint' ? r3 + 1n : +r3 + 1;
length = value4.length;
if (value7 < length) {
r3 = value7;
continue;
}
break;
}
}
return value2;
}
function cacheSendingMessage({key, message, file, sendMessageOptions}) { // fn#100068, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13284:2111, offset: 0x021dd543, size: 146 bytes, params: 2, frame: 12
const env0_3 = message.content;
const env0_4 = message.id;
const env0_5 = message.channel_id;
const env0_6 = message.tts;
const env0_7 = message.nonce;
const env0_8 = message.timestamp;
const env0_9 = message.type;
const env0_10 = message.flags;
const env0_11 = message.state;
return env0_16(_fun100069);
function _fun100069() { // fn#100069, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13284:2270, offset: 0x021dd5d5, size: 258 bytes, params: 1, frame: 18
var object;
const value = environment.__proto__;
const _getMessageBinding = _getMessage;
const keyBinding = key;
const value3 = undefined;
const value4 = _getMessageBinding(keyBinding);
const _writeMessageBinding = _writeMessage;
const object2 = {};
object2.content = content;
object2.type = type;
let r4 = state ?? MessageStates.SENDING;
object2.state = r4;
object2.channel_id = channel_id;
object2.tts = tts;
object2.id = id;
object2.nonce = nonce;
object2.timestamp = typeof timestamp === 'string' ? timestamp : timestamp.toISOString();
object2.flags = flags;
object2.file = file ?? (value4 == null ? value3 : value4.file);
if (sendMessageOptions != null) {
object = {};
copyDataProperties(object, sendMessageOptions ?? ({}), null);
r4 = object;
} else {
r4 = value4 == null ? value3 : value4.sendMessageOptions;
}
object2.sendMessageOptions = r4;
_writeMessageBinding(keyBinding, object2);
return value3;
}
}
function removeCachedMessage(a0) { // fn#100070, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13284:2587, offset: 0x021dd6d7, size: 32 bytes, params: 2, frame: 11
const env0_0 = a0;
return env0_16(_fun100071);
function _fun100071() { // fn#100071, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13284:2593, offset: 0x021dd6f7, size: 26 bytes, params: 1, frame: 13
return _writeMessage(env0_0, null);
}
}
function removeCachedMessageWithMessageId(a0) { // fn#100072, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13284:2654, offset: 0x021dd711, size: 32 bytes, params: 2, frame: 11
const env0_0 = a0;
return env0_16(_fun100073);
function _fun100073() { // fn#100073, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13284:2660, offset: 0x021dd731, size: 129 bytes, params: 1, frame: 20
var r4;
var r3;
var property;
var value6;
var id;
var value7;
const binding = env0_0;
const _getMessagesBinding = _getMessages;
const value2 = undefined;
const value3 = _getMessagesBinding();
const Object = global.Object;
const value4 = Object.entries(value3);
let length = value4.length;
const value5 = 0;
if (value5 < length) {
r4 = value5;
while (true) {
property = value4[r4];
value6 = env1_10(property, 2);
property = value6[value5];
id = value6[1].id;
if (id === binding) {
r3 = property;
break;
}
value7 = typeof r4 === 'bigint' ? r4 + 1n : +r4 + 1;
length = value4.length;
if (value7 < length) {
r4 = value7;
continue;
}
r3 = value2;
break;
}
} else {
r3 = value2;
}
if (r3 != null) {
_writeMessage(r3, null);
}
return value2;
}
}
function updateCachedMessage(a0, a1) { // fn#100074, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13284:2852, offset: 0x021dd7b2, size: 39 bytes, params: 3, frame: 11
const env0_0 = a0;
const env0_1 = a1;
return env0_16(_fun100075);
function _fun100075() { // fn#100075, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13284:2862, offset: 0x021dd7d9, size: 66 bytes, params: 1, frame: 14
var object;
const value3 = _getMessage(env0_0);
if (value3 != null) {
object = {};
copyDataProperties(object, require, copyDataProperties(object, value3, value3));
_writeMessage(env0_0, object);
}
}
}
function getAllCachedMessages() { // fn#100076, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13284:2956, offset: 0x021dd81b, size: 20 bytes, params: 1, frame: 11
return env0_16(_getMessages);
}
function messageTimestampIsInInterval(a0, a1) { // fn#100077, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13284:3005, offset: 0x021dd82f, size: 90 bytes, params: 3, frame: 17
if (a0 != null) {
return (require(3826) /* metro dependency 3826: DateUtils */).isWithinInterval((importDefault(3738) /* metro dependency 3738 */)(),
(importDefault(3738) /* metro dependency 3738 */)(a0), a1);
}
return false;
}
function createFailedMessage({channel_id, content, tts, state, timestamp, file}) { // fn#100078, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13284:3127, offset: 0x021dd889, size: 210 bytes, params: 2, frame: 24
const defaultImport = CreateMessage;
const SEND_FAILED = MessageStates.SEND_FAILED;
const value2 = defaultImport({channelId: channel_id, content: content, tts: tts, state: SEND_FAILED});
value2.timestamp = timestamp;
const defaultImport2 = MessageActionCreators;
const receiveMessage = defaultImport2.receiveMessage;
const SENDING = MessageStates.SENDING;
Reflect.apply(receiveMessage, defaultImport2, [channel_id, value2, true,
{isHydratingExpiredPendingMessage: state === SENDING}]);
if (file != null) {
(importDefault(694) /* metro dependency 694: Dispatcher */).wait(_fun100079);
}
function _fun100079() { // fn#100079, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13284:3384, offset: 0x021dd95b, size: 55 bytes, params: 1, frame: 13
let value = environment.__proto__;
value = importDefault(11420) /* metro dependency 11420: UploadActionCreators */;
return value.restoreFailedUpload(env0_0.id, file);
}
}
function _fun100080() { // fn#100080, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13284:3430, offset: 0x021dd992, size: 36 bytes, params: 1, frame: 12
const env0_0 = Module00005(_fun100082);
return _fun100083;
function* _fun100082(a0) { // fn#100082, original name: ?anon_0_, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13284:3450, offset: 0x021dd9c1, size: 208 bytes, params: 2, frame: 21
if (false) {
return undefined;
}
const channel_id = a0.channel_id;
const file = a0.file;
const sendMessageOptions = a0.sendMessageOptions;
value = environment.__proto__.__proto__;
let binding = env2_13;
const channel = binding.getChannel(channel_id);
if (channel == null) {
return false;
}
const value4 = undefined;
const r4 = (file == null ? value4 : file.items) ?? value4;
binding = env2_0;
const binding2 = env2_2;
const value5 = binding(binding2[25]);
let property = binding2[24];
yield value5(property, binding2.paths);
const value6 = undefined;
if (false) {
return value6;
}
property = value6.default;
binding = env2_11;
const object = {};
copyDataProperties(object, a0, undefined);
property(channel, new binding(object), r4, sendMessageOptions);
return true;
}
function _fun100083() { // fn#100083, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13284:3687, offset: 0x00c3945f, size: 30 bytes, params: 1, frame: 13
return env0_0.apply(this, arguments);
}
}
function _fun100084() { // fn#100084, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13284:3735, offset: 0x021dda91, size: 36 bytes, params: 1, frame: 12
const env0_0 = Module00005(_fun100086);
return _fun100087;
function* _fun100086(a0) { // fn#100086, original name: ?anon_0_, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13284:3755, offset: 0x021ddac0, size: 460 bytes, params: 2, frame: 33
var r14;
var propertyName;
var propertyName2;
var property;
var channel_id;
var getMessage;
var id;
var timestamp;
var state;
var SENDING;
var info;
var JSON;
var stringify;
var value5;
var value6;
var value7;
var value8;
if (true) {
value = environment.__proto__.__proto__;
yield env2_28();
var value3 = undefined;
if (false) {
return value3;
}
var binding = env2_17;
var verbose = binding.verbose;
var Object = global.Object;
var length = Object.keys(value3).length;
var HermesInternal = global.HermesInternal;
Reflect.apply(verbose, binding, ['rehydrateFailedMessages with ' + length + ' messagess']);
var properties = Object.keys(value3);
var properties2 = 0;
var properties3 = properties.length;
if (properties !== undefined) {
r14 = properties2;
reducibleLoop4: while (true) {
propertyName = properties[r14];
propertyName2 = r14 + 1;
if (propertyName === undefined) {
return undefined;
}
property = value3[propertyName];
channel_id = property.channel_id;
if (channel_id !== a0) {
r14 = propertyName2;
continue reducibleLoop4;
}
env2_25(propertyName);
binding = env2_14;
getMessage = binding.getMessage;
id = property.id;
if (Reflect.apply(getMessage, binding, [a0, id]) != null) {
r14 = propertyName2;
continue reducibleLoop4;
}
timestamp = property.timestamp;
state = property.state;
binding = env2_29;
if (binding(timestamp, env2_19)) {
SENDING = env2_15.SENDING;
if (state === SENDING) {
binding = env2_29;
reducibleJoin11: while (true) {
if (binding(timestamp, env2_18)) {
binding = env2_17;
verbose = binding.verbose;
JSON = global.JSON;
stringify = JSON.stringify;
value6 = Reflect.apply(stringify, JSON, [property]);
HermesInternal = global.HermesInternal;
concat = HermesInternal.concat;
Reflect.apply(verbose, binding, ['sending message with data ' + value6]);
yield env2_31(property);
value7 = undefined;
value8 = false;
if (value8) {
return value7;
}
r14 = propertyName2;
continue reducibleLoop4;
}
break reducibleJoin11;
}
}
binding = env2_17;
info = binding.info;
JSON = global.JSON;
stringify = JSON.stringify;
value5 = Reflect.apply(stringify, JSON, [property]);
HermesInternal = global.HermesInternal;
concat = HermesInternal.concat;
Reflect.apply(info, binding, ['failed message with data ' + value5]);
env2_30(property);
r14 = propertyName2;
continue reducibleLoop4;
}
binding = env2_17;
verbose = binding.verbose;
HermesInternal = global.HermesInternal;
concat = HermesInternal.concat;
Reflect.apply(verbose, binding, ['dropping stale message, timestamp ' + timestamp]);
r14 = propertyName2;
continue reducibleLoop4;
}
}
}
}
function _fun100087() { // fn#100087, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13284:4310, offset: 0x00c3945f, size: 30 bytes, params: 1, frame: 13
return env0_0.apply(this, arguments);
}
}
function _fun100088(a0) { // fn#100088, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13284:4380, offset: 0x021ddc8c, size: 97 bytes, params: 2, frame: 16
const LocalMessageCacheManager2 = LocalMessageCacheManager;
Inherits(LocalMessageCacheManager2, a0);
return CreateClass(LocalMessageCacheManager2, [{key: '_terminate', value: value_100112}, {key: '_initialize',
value: value_100113}]);
function LocalMessageCacheManager(a0) { // fn#100089, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13284:4392, offset: 0x021ddced, size: 364 bytes, params: 2, frame: 21
var r0;
var Reflect;
let value = copyRestArgs(0, undefined);
let binding = env1_3;
binding(this, LocalMessageCacheManager);
const items2 = [];
arraySpread(items2, value, 0, items2);
value = env1_6(LocalMessageCacheManager);
binding = env1_5;
if (_isNativeReflectConstruct_100061()) {
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 Object = global.Object;
const defineProperty = Object.defineProperty;
binding = env1_33;
const Set = global.Set;
const value4 = Object.create(Set.prototype, {constructor: {value: Set}});
const set = new Set();
Reflect.apply(defineProperty, Object, [value, binding, {writable: true,
value: set instanceof Object ? set : value4}]);
value.handlePostConnectionOpen = env1_9(_fun100091);
value.handleMessageDelete = function({id}) {
removeCachedMessageWithMessageId(id);
};
value.handleLogout = handleLogout_100096;
value.handleMessageCreate = handleMessageCreate_100098;
value.handleLoadMessagesSuccess = handleLoadMessagesSuccess_100099;
value.handleCacheLoaded = handleCacheLoaded;
value.handleChannelLoaded = _fun100101();
value.handleFileUploadStart = handleFileUploadStart;
value.handleUploadProgress = handleUploadProgress;
value.handleUploadComplete = handleUploadComplete;
value.handleRestoreFailedUpload = function({file, messageId}) {
updateCachedMessage(messageId, {file: file});
};
value.handleTextMessageFailed = function({messageId}) {
updateCachedMessage(messageId, {state: MessageStates.SEND_FAILED});
};
return value;
function* _fun100091() { // fn#100091, original name: ?anon_0_, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13284:4735, offset: 0x021dde64, size: 406 bytes, params: 1, frame: 30
var r20;
var environment;
var r2;
var r4;
var r5;
var r6;
var r7;
var r8;
var r9;
var r14;
var r18;
var r19;
var r21;
var r3;
var property;
var channel_id;
var state;
var Symbol;
var iterator;
var next;
var done;
var error;
var value15;
var value16;
var value17;
var value18;
var value19;
let value = Object.create(environment);
if (false) {
return undefined;
}
const value4 = undefined;
var env0_0;
yield env3_28();
const value6 = undefined;
if (false) {
return value6;
}
const generator = loop_100093;
const value8 = global;
const Object = value8.Object;
const value9 = Object.values(value6);
let length = value9.length;
const value10 = 0;
if (value10 < length) {
r2 = value4;
r4 = 'iterator.next() did not return an object';
r5 = 'throw';
r6 = 'iterator.throw() did not return an object';
r7 = 'iterator is not an object';
r8 = value10;
r9 = value9;
reducibleLoop4: while (true) {
property = r9[r8];
channel_id = property.channel_id;
state = property.state;
env0_0 = state;
value = Reflect.apply(generator, r2, [channel_id]);
Symbol = value8.Symbol;
iterator = Symbol.iterator;
value = value[iterator]();
ensureObject(value, r7, r20);
next = value.next;
r14 = value;
r18 = value4;
r19 = next;
reduciblePort22: while (true) {
exceptionLanding8: while (true) {
reducibleLoop5: while (true) {
value = Reflect.apply(r19, r14, [r18]);
ensureObject(value, r4, r20);
done = value.done;
if (done) {
r3 = value;
break reduciblePort22;
}
try {
generatorSetDelegated(value);
} catch (error) {
break exceptionLanding8;
}
yield value;
reducibleLoop11: while (true) {
try {
value = undefined;
value15 = false;
} catch (error) {
break exceptionLanding8;
}
if (value15) {
value16 = getMethod(r14, 'return', r20);
if (value16 === r2) {
return value;
}
value = Reflect.apply(value16, r14, [value]);
ensureObject(value, 'iterator.return() did not return an object', value16);
done = value.done;
if (done) {
return value.value;
}
value17 = generatorSetDelegated(value);
yield value;
r20 = value17;
continue reducibleLoop11;
}
r18 = value;
continue reducibleLoop5;
}
continue reducibleLoop5;
}
break reduciblePort22;
}
exceptionRetry8: while (true) {
value = getMethod(r14, r5, r20);
if (value === r2) {
value = 'return';
value18 = getMethod(r14, value, r20);
reducibleJoin21: while (true) {
if (value18 === r2) {
r21 = value;
break reducibleJoin21;
}
value = Reflect.apply(value18, r14, []);
value19 = 'iterator.return() did not return an object';
ensureObject(value, value19, r20);
r21 = value19;
break reducibleJoin21;
}
throwTypeError('yield* delegate must have a .throw() method', r21);
throw r2;
}
value = Reflect.apply(value, r14, [error]);
ensureObject(value, r6, r20);
done = value.done;
reducibleJoin22: while (true) {
if (done) {
r3 = value;
break reducibleJoin22;
}
generatorSetDelegated(value);
yield value;
reducibleLoop11: while (true) {
try {
value = undefined;
value15 = false;
} catch (error) {
continue exceptionRetry8;
}
reducibleJoin13: while (true) {
if (value15) {
break reducibleJoin13;
}
r18 = value;
value = Reflect.apply(r19, r14, [r18]);
ensureObject(value, r4, r20);
done = value.done;
if (done) {
r3 = value;
break reducibleJoin22;
}
try {
generatorSetDelegated(value);
} catch (error) {
continue exceptionRetry8;
}
yield value;
continue reducibleLoop11;
}
value16 = getMethod(r14, 'return', r20);
if (value16 === r2) {
return value;
}
value = Reflect.apply(value16, r14, [value]);
ensureObject(value, 'iterator.return() did not return an object', value16);
done = value.done;
if (done) {
return value.value;
}
value17 = generatorSetDelegated(value);
yield value;
r20 = value17;
continue reducibleLoop11;
}
}
break reduciblePort22;
}
}
r3.value;
value = typeof r8 === 'bigint' ? r8 + 1n : +r8 + 1;
length = r9.length;
if (!(value < length)) {
return r2;
}
r8 = value;
continue reducibleLoop4;
}
} else {
r2 = value4;
}
return r2;
function* loop_100093(a0) { // fn#100093, original name: ?anon_0__loop, inferred name: loop_100093, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13284:4792, offset: 0x021de005, size: 73 bytes, params: 2, frame: 14
var environment;
if (true) {
var env0_0 = a0;
value = environment.__proto__;
var binding = env1_0;
value = environment.__proto__.__proto__.__proto__.__proto__.__proto__;
var SENDING = env5_15.SENDING;
if (binding === SENDING) {
global.setTimeout(_fun100094, 0);
}
}
function _fun100094() { // fn#100094, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13284:4832, offset: 0x021de04e, size: 51 bytes, params: 1, frame: 13
const value = environment.__proto__.__proto__.__proto__.__proto__.__proto__.__proto__;
env6_1(env6_2[26]).fetchMessages({channelId: env0_0});
}
}
}
function LocalMessageCacheManagerHandleLogout() { // fn#100096, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13284:5060, owner: LocalMessageCacheManager.handleLogout, offset: 0x021de099, size: 25 bytes, params: 1, frame: 11
env2_16(function() {
var Storage = require(dependencyMap[17]).Storage;
return Storage.remove('LocalMessageCacheManagerMessageCacheKey');
});
}
function LocalMessageCacheManagerHandleMessageCreate({message, sendMessageOptions}) { // fn#100098, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13284:5125, owner: LocalMessageCacheManager.handleMessageCreate, offset: 0x021de0e4, size: 192 bytes, params: 2, frame: 17
var r5;
var binding;
var binding2;
var binding3;
var property;
const id = message.author?.id;
const authenticationStoreBinding = AuthenticationStore;
const getId = authenticationStoreBinding.getId;
if (id === Reflect.apply(getId, authenticationStoreBinding, [])) {
r5 = message.nonce ?? message.id;
if (message.state === MessageStates.SENDING) {
binding = env2_8;
binding2 = env0_0;
binding3 = env2_33;
property = binding(binding2, binding3)[binding3];
property.add(message.channel_id);
cacheSendingMessage({key: r5, message: message, sendMessageOptions: sendMessageOptions});
} else if (message.state === MessageStates.SEND_FAILED) {
binding = env2_8;
binding2 = env0_0;
binding3 = env2_33;
property = binding(binding2, binding3)[binding3];
property.add(message.channel_id);
cacheSendingMessage({key: r5, message: message, sendMessageOptions: sendMessageOptions});
} else {
removeCachedMessage(r5);
}
}
}
function LocalMessageCacheManagerHandleLoadMessagesSuccess({channelId}) { // fn#100099, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13284:5438, owner: LocalMessageCacheManager.handleLoadMessagesSuccess, offset: 0x021de1a4, size: 30 bytes, params: 2, frame: 11
env0_0.handleChannelLoaded(channelId);
}
function handleCacheLoaded({privateChannels, initialGuildChannels}) { // fn#100100, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13284:5502, owner: LocalMessageCacheManager.handleCacheLoaded, offset: 0x021de1c2, size: 128 bytes, params: 2, frame: 18
var r4;
var r6;
var value4;
var done;
var value5;
var id;
var binding;
var handleChannelLoaded;
var value6;
const items2 = [privateChannels, initialGuildChannels];
let length = items2.length;
let value = 0;
if (value < length) {
r4 = value;
reducibleLoop1: while (true) {
value = _createForOfIteratorHelperLoose_100058(items2[r4]);
value4 = value();
done = value4.done;
if (!done) {
r6 = value4;
reducibleLoop2: while (true) {
value5 = r6.value;
id = value5.id;
binding = env0_0;
handleChannelLoaded = binding.handleChannelLoaded;
Reflect.apply(handleChannelLoaded, binding, [id]);
value6 = value();
done = value6.done;
if (done) {
break reducibleLoop2;
}
r6 = value6;
continue reducibleLoop2;
}
}
value = typeof r4 === 'bigint' ? r4 + 1n : +r4 + 1;
length = items2.length;
if (value < length) {
r4 = value;
continue reducibleLoop1;
}
break reducibleLoop1;
}
}
}
function _fun100101() { // fn#100101, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13284:5716, offset: 0x021de242, size: 36 bytes, params: 1, frame: 12
const env0_0 = env2_9(_fun100103);
return _fun100104;
function* _fun100103(a0) { // fn#100103, original name: ?anon_0_, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13284:5736, offset: 0x021de271, size: 91 bytes, params: 2, frame: 16
if (true) {
value = environment.__proto__.__proto__.__proto__.__proto__;
var binding = env4_8;
var binding2 = env4_33;
var property = binding(LocalMessageCacheManager, binding2)[binding2];
if (property.has(a0)) {
return undefined;
}
property.add(a0);
yield env4_32(a0);
}
}
function _fun100104(a0) { // fn#100104, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13284:5807, offset: 0x00c3945f, size: 30 bytes, params: 2, frame: 13
return env0_0.apply(this, arguments);
}
}
function handleFileUploadStart({message, file}) { // fn#100105, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13284:5878, owner: LocalMessageCacheManager.handleFileUploadStart, offset: 0x021de2cc, size: 68 bytes, params: 2, frame: 13
var r4;
var value;
if (message != null) {
r4 = message.nonce ?? message.id;
value = environment.__proto__.__proto__;
cacheSendingMessage({key: r4, message: message, file: file});
}
}
function handleUploadProgress({file}) { // fn#100106, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13284:6021, owner: LocalMessageCacheManager.handleUploadProgress, offset: 0x021de310, size: 38 bytes, params: 2, frame: 11
env2_16(function() {
var value3 = _getKeyForFileId(file.id);
if (value3 != null) {
updateCachedMessage(value3, {file: file});
}
});
}
function handleUploadComplete({aborted, file}) { // fn#100108, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13284:6139, owner: LocalMessageCacheManager.handleUploadComplete, offset: 0x021de36d, size: 51 bytes, params: 2, frame: 13
var environment;
var value;
if (aborted) {
value = environment.__proto__.__proto__;
env2_16(function() {
var value3 = _getKeyForFileId(file.id);
if (value3 != null) {
_writeMessage(value3, null);
}
});
}
}
}
function value_100112() { // fn#100112, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13284:6516, offset: 0x021de41b, size: 368 bytes, params: 1, frame: 18
let value = environment.__proto__;
value = importDefault(694) /* metro dependency 694: Dispatcher */;
value.unsubscribe('LOGOUT', this.handleLogout);
value = importDefault(694) /* metro dependency 694: Dispatcher */;
value.unsubscribe('MESSAGE_CREATE', this.handleMessageCreate);
value = importDefault(694) /* metro dependency 694: Dispatcher */;
value.unsubscribe('MESSAGE_SEND_FAILED', this.handleTextMessageFailed);
value = importDefault(694) /* metro dependency 694: Dispatcher */;
value.unsubscribe('UPLOAD_START', this.handleFileUploadStart);
value = importDefault(694) /* metro dependency 694: Dispatcher */;
value.unsubscribe('MESSAGE_DELETE', this.handleMessageDelete);
value = importDefault(694) /* metro dependency 694: Dispatcher */;
value.unsubscribe('UPLOAD_RESTORE_FAILED_UPLOAD', this.handleRestoreFailedUpload);
value = importDefault(694) /* metro dependency 694: Dispatcher */;
value.unsubscribe('UPLOAD_COMPLETE', this.handleUploadComplete);
value = importDefault(694) /* metro dependency 694: Dispatcher */;
value.unsubscribe('UPLOAD_PROGRESS', this.handleUploadProgress);
value = importDefault(694) /* metro dependency 694: Dispatcher */;
value.unsubscribe('LOAD_MESSAGES_SUCCESS', this.handleLoadMessagesSuccess);
value = importDefault(694) /* metro dependency 694: Dispatcher */;
value.unsubscribe('CACHE_LOADED', this.handleCacheLoaded);
value = importDefault(694) /* metro dependency 694: Dispatcher */;
value.unsubscribe('POST_CONNECTION_OPEN', this.handlePostConnectionOpen);
}
function value_100113() { // fn#100113, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13284:7307, offset: 0x021de58b, size: 353 bytes, params: 1, frame: 20
env1_17.verbose('cache manager initialize');
const defaultImport = Dispatcher;
defaultImport.subscribe('LOGOUT', this.handleLogout);
const defaultImport2 = defaultImport;
defaultImport2.subscribe('MESSAGE_CREATE', this.handleMessageCreate);
const defaultImport3 = defaultImport;
defaultImport3.subscribe('MESSAGE_SEND_FAILED', this.handleTextMessageFailed);
const defaultImport4 = defaultImport;
defaultImport4.subscribe('UPLOAD_START', this.handleFileUploadStart);
const defaultImport5 = defaultImport;
defaultImport5.subscribe('MESSAGE_DELETE', this.handleMessageDelete);
const defaultImport6 = defaultImport;
defaultImport6.subscribe('UPLOAD_RESTORE_FAILED_UPLOAD', this.handleRestoreFailedUpload);
const defaultImport7 = defaultImport;
defaultImport7.subscribe('UPLOAD_COMPLETE', this.handleUploadComplete);
const defaultImport8 = defaultImport;
defaultImport8.subscribe('UPLOAD_PROGRESS', this.handleUploadProgress);
const defaultImport9 = defaultImport;
defaultImport9.subscribe('POST_CONNECTION_OPEN', this.handlePostConnectionOpen);
env1_9(_fun100115)();
function* _fun100115() { // fn#100115, original name: ?anon_0_, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13284:7969, offset: 0x021de6f7, size: 435 bytes, params: 1, frame: 34
var r14;
var r6;
var channel_id;
var value8;
var get;
var value9;
var ready;
var cached;
var handleChannelLoaded;
var value10;
var value11;
var value12;
var binding2;
var subscribe;
if (true) {
value = environment.__proto__.__proto__.__proto__;
yield env3_28();
var value3 = undefined;
if (false) {
return value3;
}
var binding = env3_17;
var verbose = binding.verbose;
var Object = global.Object;
var length = Object.keys(value3).length;
var HermesInternal = global.HermesInternal;
Reflect.apply(verbose, binding, ['initialized with ' + length + ' messages in local cache']);
Object = global.Object;
var value5 = Object.values(value3);
length = value5.length;
var value6 = 0;
if (value6 < length) {
r14 = value6;
reducibleLoop4: while (true) {
channel_id = value5[r14].channel_id;
binding = env3_1;
value8 = binding(env3_2[27]);
get = value8.get;
value9 = Reflect.apply(get, value8, [channel_id]);
reducibleJoin6: while (true) {
if (value9 != null) {
r6 = value9;
break reducibleJoin6;
}
r6 = {'ready': false, 'cached': false};
break reducibleJoin6;
}
ready = r6.ready;
cached = r6.cached;
binding = env3_17;
verbose = binding.verbose;
HermesInternal = global.HermesInternal;
concat = HermesInternal.concat;
Reflect.apply(verbose, binding,
['rehydrating cached messages ' + channel_id + ' {ready: ' + ready + ', cached: ' + cached + '}']);
if (ready) {
binding = env3_17;
verbose = binding.verbose;
Reflect.apply(verbose, binding, ['manually invoking handleChannelLoaded']);
handleChannelLoaded = LocalMessageCacheManager.handleChannelLoaded;
yield Reflect.apply(handleChannelLoaded, LocalMessageCacheManager, [channel_id]);
value10 = undefined;
value11 = false;
reducibleJoin9: while (true) {
if (value11) {
return value10;
}
break reducibleJoin9;
}
}
value12 = typeof r14 === 'bigint' ? r14 + 1n : +r14 + 1;
length = value5.length;
if (!(value12 < length)) {
binding = env3_1;
binding2 = env3_2;
value = binding(binding2[22]);
subscribe = value.subscribe;
Reflect.apply(subscribe, value, ['LOAD_MESSAGES_SUCCESS',
LocalMessageCacheManager.handleLoadMessagesSuccess]);
value = binding(binding2[22]);
subscribe = value.subscribe;
Reflect.apply(subscribe, value, ['CACHE_LOADED', LocalMessageCacheManager.handleCacheLoaded]);
return undefined;
}
r14 = value12;
continue reducibleLoop4;
}
}
binding = env3_1;
binding2 = env3_2;
value = binding(binding2[22]);
value.subscribe('LOAD_MESSAGES_SUCCESS', LocalMessageCacheManager.handleLoadMessagesSuccess);
value = binding(binding2[22]);
value.subscribe('CACHE_LOADED', LocalMessageCacheManager.handleCacheLoaded);
}
}
}
}
}
global.__d(_fun100057, 13094, [6, 7, 15, 17, 18, 99, 100, 5, 57, 3794, 1226, 1379, 4814, 661, 13095, 3, 672, 587,
3738, 3826, 7141, 7067, 694, 11420, 11170, 1962, 9597, 4816, 4561,
2]) /* metro module 13094, dependencies: [6, 7, 15, 17, 18, 99, 100, 5, 57, 3794, 1226, 1379, 4814, 661, 13095, 3, 672, 587, 3738, 3826, 7141, 7067, 694, 11420, 11170, 1962, 9597, 4816, 4561, 2] */;