/* Metro module 1348; source: modules/user_settings/UserSettingsProtoStore.tsx; dependencies: [6, 7, 15, 17, 18, 670, 1314, 1349, 44, 1350, 1351, 22, 1344, 1352, 566, 694, 2] */ 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 Module00022 from '../../by-id/module-00022.js'; /* Metro dependency 22 */ import Module00044 from '../../by-id/module-00044.js'; /* Metro dependency 44 */ import Flux from '../../external/discord_common/js/packages/flux/index.tsx'; /* Metro dependency 566 */ import UserSettingsMigrationsByType from './UserSettingsMigrationsByType.tsx'; /* Metro dependency 1351 */ import * as FileImportTrackerModule from '../../by-id/module-00002-FileImportTracker.js'; /* Metro dependency 2 */ import * as UserSettingsConstantsModule from './UserSettingsConstants.tsx'; /* Metro dependency 670 */ import * as Preloaded_user_settingsModule from '../../external/discord_common/js/packages/protos/discord_protos/discord_users/v1/preloaded_user_settings.tsx'; /* Metro dependency 1314 */ import * as Frecency_user_settingsModule from '../../external/discord_common/js/packages/protos/discord_protos/discord_users/v1/frecency_user_settings.tsx'; /* Metro dependency 1349 */ import * as UserSettingsUtilsModule from './UserSettingsUtils.tsx'; /* Metro dependency 1350 */ function _fun15372(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#15372, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1475:6, offset: 0x00e2f06b, size: 590 bytes, params: 8, frame: 26 const env0_0 = require; const closure = function() { clearInFlightTimeouts(); }; const resetEditInfo_ = function(a0) { if (a0.editInfo.timeout != null) { global.clearTimeout(a0.editInfo.timeout); } a0.editInfo = createEmptyEditInfo(); }; const USER_SETTINGS_PROTO_UPDATE_153802 = USER_SETTINGS_PROTO_UPDATE_15380; const Object = global.Object; Object.defineProperty(exports, '__esModule', {value: true}); let value = UserSettingsConstantsModule; const UserSettingsTypes = value.UserSettingsTypes; const createEmptyEditInfo = value.createEmptyEditInfo; object = {}; const PreloadedUserSettings = (Preloaded_user_settingsModule).PreloadedUserSettings; object.ProtoClass = PreloadedUserSettings; object.proto = PreloadedUserSettings.create(); object.lazyLoaded = false; object.editInfo = createEmptyEditInfo(); const object2 = {}; const FrecencyUserSettings = (Frecency_user_settingsModule).FrecencyUserSettings; object2.ProtoClass = FrecencyUserSettings; object2.proto = FrecencyUserSettings.create(); object2.lazyLoaded = true; object2.editInfo = createEmptyEditInfo(); const object3 = {}; const PRELOADED_USER_SETTINGS = UserSettingsTypes.PRELOADED_USER_SETTINGS; object3[PRELOADED_USER_SETTINGS] = object; const FRECENCY_AND_FAVORITES_SETTINGS = UserSettingsTypes.FRECENCY_AND_FAVORITES_SETTINGS; object3[FRECENCY_AND_FAVORITES_SETTINGS] = object2; const PersistedStore = (Flux).PersistedStore; value = _fun15383(PersistedStore); value.displayName = 'UserSettingsProtoStore'; value.persistKey = 'UserSettingsProtoStore-Cache'; value = new value(importDefault(694) /* metro dependency 694: Dispatcher */, {CACHE_LOADED: function({userSettings}) { loadFromCache(userSettings); }, USER_SETTINGS_PROTO_UPDATE: USER_SETTINGS_PROTO_UPDATE_153802, USER_SETTINGS_PROTO_ENQUEUE_UPDATE: USER_SETTINGS_PROTO_UPDATE_153802, USER_SETTINGS_PROTO_UPDATE_EDIT_INFO: USER_SETTINGS_PROTO_UPDATE_EDIT_INFO, CONNECTION_OPEN: CONNECTION_OPEN_15405, CONNECTION_CLOSED: closure, CONNECTION_RESUMED: closure, OVERLAY_INITIALIZE: OVERLAY_INITIALIZE_15407, LOGOUT: LOGOUT_15408}); (FileImportTrackerModule).fileFinishedImporting('modules/user_settings/UserSettingsProtoStore.tsx'); exports.default = value; function _isNativeReflectConstruct_15373() { // fn#15373, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1475:204, offset: 0x00e2f2b9, 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_15373_isNativeReflectConstruct = function() { return !!result; })(); } function clearInFlightTimeouts() { // fn#15377, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1475:777, offset: 0x00e2f326, size: 46 bytes, params: 1, frame: 11 const Object = global.Object; Object.values(env0_12).forEach(_fun15378); } function USER_SETTINGS_PROTO_ENQUEUE_UPDATE({settings, partial, resetEditInfo, local}) { // fn#15380, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1475:1209, offset: 0x00e2f433, size: 262 bytes, params: 2, frame: 19 var editInfo; var moduleValue; let proto = settings.proto; const type = settings.type; var value; result = !local; const property = env0_12[type]; if (resetEditInfo) { resetEditInfo_(property); } if (partial) { moduleValue = require(1350) /* metro dependency 1350: UserSettingsUtils */; property.proto = moduleValue.mergeTopLevelFields(property.ProtoClass, property.proto, proto); value = importDefault(44) /* metro dependency 44 */; proto = property.proto; value(typeof proto !== 'string', 'UserSettingsProto cannot be a string'); } else { property.proto = proto; value = importDefault(44) /* metro dependency 44 */; proto = property.proto; value(typeof proto !== 'string', 'UserSettingsProto cannot be a string'); editInfo = property.editInfo; editInfo.loaded = true; editInfo = property.editInfo; editInfo.loading = false; } } function loadFromCache(a0) { // fn#15381, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1475:1613, offset: 0x00e2f539, size: 64 bytes, params: 2, frame: 14 var defaultImport; const env0_0 = a0; if (a0 != null) { defaultImport = importDefault(22) /* metro dependency 22 */; defaultImport.forEach(env0_12, _fun15382); } function _fun15382(a0, a1) { // fn#15382, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1475:1668, offset: 0x00e2f579, size: 285 bytes, params: 3, frame: 19 var proto; var r9; var protoToSave; var r7; var value4; var moduleValue; var value5; var moduleValue2; var value6; var editInfo; const binding = env0_0; const Number = global.Number; const value = undefined; const property = binding[Number(a1)]; const value2 = null; if (value2 != property) { proto = value2 == property ? value : property.proto; r9 = value2 != proto ? proto : ''; value4 = environment.__proto__; moduleValue = require(1350) /* metro dependency 1350: UserSettingsUtils */; value5 = moduleValue.b64ToProto(a0.ProtoClass, r9); if (value2 != value5) { a0.proto = value5; (importDefault(44) /* metro dependency 44 */)(typeof a0.proto !== 'string', 'UserSettingsProto cannot be a string'); protoToSave = value2 == property ? value : property.protoToSave; r7 = value2 != protoToSave ? protoToSave : value2; if (value2 != r7) { if (value2 != property.offlineEditDataVersion) { moduleValue2 = require(1350) /* metro dependency 1350: UserSettingsUtils */; value6 = moduleValue2.b64ToProto(a0.ProtoClass, r7); if (value2 != value6) { editInfo = a0.editInfo; editInfo.protoToSave = value6; editInfo = a0.editInfo; editInfo.offlineEditDataVersion = property.offlineEditDataVersion; } } } } } return value; } } function _fun15383(a0) { // fn#15383, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1475:2131, offset: 0x00e2f696, size: 419 bytes, params: 2, frame: 16 const UserSettingsProtoStore2 = UserSettingsProtoStore; Inherits(UserSettingsProtoStore2, a0); return CreateClass(UserSettingsProtoStore2, [{key: 'initialize', value: function(a0) { loadFromCache(a0); }}, {key: 'getState', value: function() { }}, {key: 'computeState', value: value_15387}, {key: 'hasLoaded', value: value_15389}, {key: 'settings', get: get_15390}, {key: 'frecencyWithoutFetchingLatest', get: get_15391}, {key: 'wasMostRecentUpdateFromServer', get: get_15392}, {key: 'getFullState', value: value_15393}, {key: 'getGuildFolders', value: value_15394}, {key: 'getGuildRecentsDismissedAt', value: value_15396}, {key: 'getDismissedGuildContent', value: function(a0) { var value = null; return value == a0 ? value : value == this.settings.guilds || value == this.settings.guilds.guilds || value == this.settings.guilds.guilds[a0] ? undefined : this.settings.guilds.guilds[a0].dismissedGuildContent; }}, {key: 'getGuildDismissedContentState', value: function(a0) { var property = this.settings.guilds; return property == null || property.guilds == null || property.guilds[a0] == null ? undefined : property.guilds[a0].guildDismissibleContentStates; }}, {key: 'getGuildsProto', value: function() { var r1; var guilds = this.settings.guilds; var value = null; r1 = value == guilds ? undefined : guilds.guilds; return value != r1 ? r1 : value; }}, {key: 'getDefaultGuildThemePreference', value: function() { var r0; r0 = this.settings.appearance?.defaultGuildThemePreference; r0 = r0 ?? require(dependencyMap[6]).GuildThemeSourcePreference.UNSPECIFIED; return r0; }}, {key: 'getGuildThemeSourcePreferenceOverride', value: value_15401}, {key: 'resolveGuildThemeSourcePreference', value: value_15402}]); function UserSettingsProtoStore() { // fn#15384, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1475:2143, offset: 0x00e2f839, size: 113 bytes, params: 1, frame: 20 const value = environment.__proto__; env1_3(this, UserSettingsProtoStore); const value3 = env1_6(UserSettingsProtoStore); return env1_5(this, _isNativeReflectConstruct_15373() ? global.Reflect.construct(value3, arguments, env1_6(this).constructor) : value3.apply(this, arguments)); } function value_15387() { // fn#15387, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1475:2564, offset: 0x00e2f8bd, size: 50 bytes, params: 1, frame: 13 const defaultImport = Module00022; return defaultImport.mapValues(env1_12, _fun15388); function _fun15388(a0) { // fn#15388, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1475:2604, offset: 0x00e2f8ef, size: 172 bytes, params: 2, frame: 18 const object = {}; let value = environment.__proto__.__proto__; let protoToB64 = UserSettingsUtilsModule.protoToB64; let ProtoClass = a0.ProtoClass; object.proto = Reflect.apply(protoToB64, UserSettingsUtilsModule, [ProtoClass, a0.proto]); let editInfo = a0.editInfo; if (editInfo.offlineEditDataVersion != null && a0.editInfo.protoToSave != null) { value = UserSettingsUtilsModule; protoToB64 = value.protoToB64; ProtoClass = a0.ProtoClass; editInfo = a0.editInfo; object.protoToSave = Reflect.apply(protoToB64, value, [ProtoClass, editInfo.protoToSave]); editInfo = a0.editInfo; object.offlineEditDataVersion = editInfo.offlineEditDataVersion; } return object; } } function value_15389(a0) { // fn#15389, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1475:2902, offset: 0x00e2f99b, size: 28 bytes, params: 2, frame: 2 return env1_12[a0].editInfo.loaded; } function get_15390() { // fn#15390, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1475:2964, offset: 0x00e2f9b7, size: 15 bytes, params: 1, frame: 1 return env1_10.proto; } function get_15391() { // fn#15391, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1475:3033, offset: 0x00e2f9c6, size: 15 bytes, params: 1, frame: 1 return env1_11.proto; } function get_15392() { // fn#15392, offset: 0x00e2f9d5, size: 9 bytes, params: 1, frame: 1 return env1_13; } function value_15393() { // fn#15393, offset: 0x00e2f9de, size: 9 bytes, params: 1, frame: 1 return env1_12; } function value_15394() { // fn#15394, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1475:3201, offset: 0x00e2f9e7, size: 64 bytes, params: 1, frame: 12 var environment; let value = environment.__proto__; const guildFolders = env1_10.proto.guildFolders; value = null; const folders = value == guildFolders ? undefined : guildFolders.folders; return value == folders ? value : folders.map(_fun15395); } function value_15396(a0) { // fn#15396, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1475:3563, offset: 0x00e2fab1, size: 125 bytes, params: 2, frame: 14 var r0; var value3; if (a0 == null) { return 0; } const guilds = this.settings.guilds; let value = undefined; const guildRecentsDismissedAt = guilds == null || guilds.guilds[a0] == null ? value : guilds.guilds[a0].guildRecentsDismissedAt; if (guildRecentsDismissedAt == null) { r0 = 0; } else { value3 = environment.__proto__; value = (require(1344) /* metro dependency 1344: timestamp */).Timestamp.toDate(guildRecentsDismissedAt); value = value.getTime(); r0 = value; } return r0; } function value_15401(a0) { // fn#15401, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1475:4478, offset: 0x00e2fc35, size: 149 bytes, params: 2, frame: 14 const GuildThemeSourcePreference = (Preloaded_user_settingsModule).GuildThemeSourcePreference; return a0 == null ? GuildThemeSourcePreference.UNSPECIFIED : (this.settings.guilds == null || this.settings.guilds.guilds == null ? undefined : this.settings.guilds.guilds[a0]?.guildThemeSourcePreference) ?? GuildThemeSourcePreference.UNSPECIFIED; } function value_15402(a0) { // fn#15402, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1475:4771, offset: 0x00e2fcca, size: 68 bytes, params: 2, frame: 14 let value = environment.__proto__; value = require(1352) /* metro dependency 1352: GuildThemeSourcePreferenceUtils */; const resolveGuildThemeSourcePreference = value.resolveGuildThemeSourcePreference; const guildThemeSourcePreferenceOverride = this.getGuildThemeSourcePreferenceOverride(a0); const getDefaultGuildThemePreference = this.getDefaultGuildThemePreference; return Reflect.apply(resolveGuildThemeSourcePreference, value, [guildThemeSourcePreferenceOverride, Reflect.apply(getDefaultGuildThemePreference, this, [])]); } } function USER_SETTINGS_PROTO_UPDATE_EDIT_INFO({settings}) { // fn#15404, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1475:5288, offset: 0x00e2fd27, size: 102 bytes, params: 2, frame: 16 const type = settings.type; const changes = settings.changes; (Module00044)(true, 'this cannot run in the overlay'); const property = env0_12[type]; property.editInfo = {...property.editInfo, ...changes}; return false; } function CONNECTION_OPEN_15405({userSettingsProto}) { // fn#15405, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1475:5482, offset: 0x00e2fd8d, size: 336 bytes, params: 2, frame: 17 var binding; if (userSettingsProto != null) { binding = env0_10; binding.proto = userSettingsProto; (importDefault(44) /* metro dependency 44 */)(typeof binding.proto !== 'string', 'UserSettingsProto cannot be a string'); } const runMigrations = UserSettingsUtilsModule.runMigrations; protoBinding = env0_10.proto; const defaultImport = UserSettingsMigrationsByType; const PRELOADED_USER_SETTINGS = UserSettingsTypes.PRELOADED_USER_SETTINGS; var {proto, isDirty, cleanupFuncs} = Reflect.apply(runMigrations, UserSettingsUtilsModule, [protoBinding, defaultImport[PRELOADED_USER_SETTINGS]]); if (isDirty) { resetEditInfo_(env0_10); } binding = env0_10; binding.proto = protoBinding; (importDefault(44) /* metro dependency 44 */)(typeof binding.proto !== 'string', 'UserSettingsProto cannot be a string'); binding.editInfo.triggeredMigrations = isDirty; binding.editInfo.cleanupFuncs = cleanupFuncs; binding.editInfo.loaded = true; const Object = global.Object; Object.values(env0_12).forEach(function(a0) { if (a0.lazyLoaded) { a0.editInfo.loaded = false; a0.editInfo.loading = false; } }); clearInFlightTimeouts(); } function OVERLAY_INITIALIZE_15407({userSettingsProto}) { // fn#15407, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1475:6162, offset: 0x00e2ff07, size: 102 bytes, params: 2, frame: 16 const binding = env0_10; binding.proto = (require(1350) /* metro dependency 1350: UserSettingsUtils */).b64ToPreloadedUserSettingsProto(userSettingsProto); (Module00044)(typeof binding.proto !== 'string', 'UserSettingsProto cannot be a string'); } function LOGOUT_15408() { // fn#15408, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1475:6350, offset: 0x00e2ff6d, size: 54 bytes, params: 1, frame: 12 clearInFlightTimeouts(); const Object = global.Object; Object.values(env0_12).forEach(function(a0) { var ProtoClass = a0.ProtoClass; a0.proto = ProtoClass.create(); a0.editInfo = createEmptyEditInfo(); }); } } function _fun15378(a0) { // fn#15378, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1475:836, offset: 0x00e2f354, size: 154 bytes, params: 2, frame: 14 var dataVersion; var clearTimeout; var value; var versions; let editInfo = a0.editInfo; let timeout = editInfo.timeout; if (timeout != null) { clearTimeout = global.clearTimeout; editInfo = a0.editInfo; timeout = editInfo.timeout; value = undefined; clearTimeout(timeout); editInfo = a0.editInfo; editInfo.timeout = value; editInfo = a0.editInfo; editInfo.timeoutDelay = global.Number.MAX_SAFE_INTEGER; editInfo = a0.editInfo; editInfo.rateLimited = false; editInfo = a0.editInfo; versions = a0.proto.versions; dataVersion = versions == null ? value : versions.dataVersion; value = 0; editInfo.offlineEditDataVersion = dataVersion ?? value; } } function _fun15395({id, color, guildIds, name}) { // fn#15395, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1475:3295, offset: 0x00e2fa27, size: 138 bytes, params: 2, frame: 16 const value = undefined; const r7 = id == null ? value : id.value; const r3 = color == null ? value : color.value; const object = {}; object.guildIds = guildIds; object.folderId = r7 == null ? value : global.Number(r7); object.folderName = name == null ? value : name.value; object.folderColor = r3 == null ? value : global.Number(r3); return object; } global.__d(_fun15372, 1348, [6, 7, 15, 17, 18, 670, 1314, 1349, 44, 1350, 1351, 22, 1344, 1352, 566, 694, 2]) /* metro module 1348, dependencies: [6, 7, 15, 17, 18, 670, 1314, 1349, 44, 1350, 1351, 22, 1344, 1352, 566, 694, 2] */;