/* Metro module 1350; source: modules/user_settings/UserSettingsUtils.tsx; dependencies: [57, 670, 661, 1316, 1314, 1349, 1315, 22, 2] */ import Module00057 from '../../by-id/module-00057.js'; /* Metro dependency 57 */ import * as FileImportTrackerModule from '../../by-id/module-00002-FileImportTracker.js'; /* Metro dependency 2 */ import * as ConstantsModule from '../../Constants.tsx'; /* Metro dependency 661 */ 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 Module01316Module from '../../by-id/module-01316.js'; /* Metro dependency 1316 */ import * as Frecency_user_settingsModule from '../../external/discord_common/js/packages/protos/discord_protos/discord_users/v1/frecency_user_settings.tsx'; /* Metro dependency 1349 */ function _fun15515(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#15515, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1477:6, offset: 0x00e34eec, size: 405 bytes, params: 8, frame: 25 let env0_0 = require; const _arrayLikeToArray_15518 = 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 b64ToProto2 = b64ToProto; const protoToB642 = protoToB64; const mutateUserGuildSettings2 = mutateUserGuildSettings; const mutateUserGuildSettingsInternal2 = mutateUserGuildSettingsInternal; const mutateUserChannelSettingsInternal2 = mutateUserChannelSettingsInternal; const Object = global.Object; Object.defineProperty(exports, '__esModule', {value: true}); const UserSettingsTypes = (UserSettingsConstantsModule).UserSettingsTypes; object = {readerFactory: readerFactory_15524}; const object2 = {}; const PRELOADED_USER_SETTINGS = UserSettingsTypes.PRELOADED_USER_SETTINGS; let PreloadedUserSettings = (Preloaded_user_settingsModule).PreloadedUserSettings; object2[PRELOADED_USER_SETTINGS] = PreloadedUserSettings; const FRECENCY_AND_FAVORITES_SETTINGS = UserSettingsTypes.FRECENCY_AND_FAVORITES_SETTINGS; const FrecencyUserSettings = (Frecency_user_settingsModule).FrecencyUserSettings; object2[FRECENCY_AND_FAVORITES_SETTINGS] = FrecencyUserSettings; (FileImportTrackerModule).fileFinishedImporting('modules/user_settings/UserSettingsUtils.tsx'); exports.BINARY_READ_OPTIONS = object; exports.b64ToProtoWithType = b64ToProtoWithType; exports.b64ToProto = b64ToProto2; exports.b64ToPreloadedUserSettingsProto = function(a0) { var b64ToProtoBinding = b64ToProto; var PreloadedUserSettings = require(dependencyMap[4]).PreloadedUserSettings; return b64ToProtoBinding(PreloadedUserSettings, a0); }; exports.protoToB64WithType = protoToB64WithType; exports.protoToB64 = protoToB642; exports.mergeTopLevelFields = function(a0, a1, a2) { var r8; var propertyName; var object = {}; copyDataProperties(object, a1, r8); for (propertyName in a2) { delete object[propertyName]; } a0.mergePartial(object, a2); return object; }; exports.mutateUserGuildSettings = mutateUserGuildSettings2; exports.mutateUserGuildSettingsInternal = mutateUserGuildSettingsInternal2; exports.mutateUserChannelSettings = function(a0, a1, a2, a3) { var env0_0 = a2; var env0_1 = a3; return mutateUserGuildSettings(a0, a1, _fun15530); }; exports.mutateUserChannelSettingsInternal = mutateUserChannelSettingsInternal2; exports.runMigrations = runMigrations; exports.serializeUsageHistory = serializeUsageHistory; function _createForOfIteratorHelperLoose_15516(a0, a1) { // fn#15516, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1477:171, offset: 0x00e35081, size: 370 bytes, params: 3, frame: 20 var r6; var r9; var r5; var value3; var regexp; const env0_0 = a0; const Symbol = global.Symbol; let value = typeof Symbol !== 'undefined'; let r1 = value && a0[global.Symbol.iterator]; r1 = !r1 ? a0['@@iterator'] : r1; if (r1) { value = r1.call(a0); return value.next.bind(value); } const Array = global.Array; if (Array.isArray(a0)) { if (r1) { } return _fun15517; } value = undefined; if (a0) { if (typeof a0 === 'string') { value = _arrayLikeToArray_15518(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_15518(a0, value); r6 = value; } else { regexp = RegExp('^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$', ''); if (regexp.test(r9)) { value = _arrayLikeToArray_15518(a0, value); r6 = value; } else { r6 = value; } } r5 = r6; } } else { r5 = value; } if (r5) { if (r5) { } return _fun15517; } 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 _fun15517() { // fn#15517, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1477:742, 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 b64ToProto(a0, a1) { // fn#15519, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1477:1290, offset: 0x00e351f3, size: 130 bytes, params: 3, frame: 18 var fromBinary; var binding; var error; var Error; var prototype; var value3; if (a1 == null) { return null; } let value = environment; try { fromBinary = a0.fromBinary; binding = env0_5; value = Reflect.apply(fromBinary, a0, [(require(1316) /* metro dependency 1316 */).base64decode(a1), binding]); } catch (error) { Error = global.Error; value = 'Settings proto failed to deserialize (potentially corrupt): ' + error; prototype = Error.prototype; value3 = Object.create(prototype, {constructor: {value: Error}}); error = new Error(value); value = error instanceof Object ? error : value3; throw value; } return value; } function protoToB64(a0, a1) { // fn#15520, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1477:1492, offset: 0x00e35275, size: 55 bytes, params: 3, frame: 13 return Module01316Module.base64encode(a0.toBinary(a1)); } function mutateUserGuildSettings(a0, a1, a2) { // fn#15521, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1477:1561, offset: 0x00e352ac, size: 91 bytes, params: 4, frame: 15 var AllGuildSettings; if (a0.guilds == null) { AllGuildSettings = (require(1314) /* metro dependency 1314: preloaded_user_settings */).AllGuildSettings; a0.guilds = AllGuildSettings.create(); } return mutateUserGuildSettingsInternal(a0.guilds, a1, a2); } function mutateUserGuildSettingsInternal(a0, a1, a2) { // fn#15522, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1477:1716, offset: 0x00e35307, size: 118 bytes, params: 4, frame: 14 var GuildSettings; const value = a1; const r1 = value != null && value !== 'null' ? value : ZERO_STRING_GUILD_ID; let guilds = a0.guilds; if (!(r1 in guilds)) { guilds = a0.guilds; GuildSettings = (require(1314) /* metro dependency 1314: preloaded_user_settings */).GuildSettings; guilds[r1] = GuildSettings.create(); } return a2(a0.guilds[r1]); } function mutateUserChannelSettingsInternal(a0, a1, a2) { // fn#15523, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1477:1874, offset: 0x00e3537d, size: 91 bytes, params: 4, frame: 14 var ChannelSettings; let channels = a0.channels; if (!(a1 in channels)) { channels = a0.channels; ChannelSettings = (require(1314) /* metro dependency 1314: preloaded_user_settings */).ChannelSettings; channels[a1] = ChannelSettings.create(); } return a2(a0.channels[a1]); } function readerFactory_15524(a0) { // fn#15524, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1477:1102, offset: 0x00e353d8, size: 90 bytes, params: 2, frame: 13 const BinaryReader = (Module01316Module).BinaryReader; const TextDecoder = global.TextDecoder; const textDecoder = new TextDecoder('utf-8'); const value2 = Object.create(BinaryReader.prototype, {constructor: {value: BinaryReader}}); const binaryReader = new BinaryReader(a0, textDecoder); return binaryReader instanceof Object ? binaryReader : value2; } function b64ToProtoWithType(a0, a1) { // fn#15525, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1477:2140, offset: 0x00e35432, size: 58 bytes, params: 3, frame: 15 const value = null; return value == a1 ? value : a0 in env0_6 ? b64ToProto(env0_6[a0], a1) : value; } function protoToB64WithType(a0, a1) { // fn#15527, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1477:2404, offset: 0x00e3549a, size: 31 bytes, params: 3, frame: 13 return protoToB64(env0_6[a0], a1); } function mutateUserChannelSettings(a0, a1, a2, a3) { // fn#15529, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1477:2761, offset: 0x00e354f6, size: 45 bytes, params: 5, frame: 15 const env0_0 = a2; const env0_1 = a3; return mutateUserGuildSettings(a0, a1, function(a0) { return mutateUserChannelSettingsInternal(a0, importDefault, importAll); }); function _fun15530(a0) { // fn#15530, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1477:2841, offset: 0x00e35523, size: 32 bytes, params: 2, frame: 15 return mutateUserChannelSettingsInternal(a0, importDefault, importAll); } } function runMigrations(a0, a1) { // fn#15531, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1477:2976, offset: 0x00e35543, size: 418 bytes, params: 3, frame: 23 var r4; var version; var r5; var r12; var r2; var value; var Versions; var create; var value5; var version2; var value6; var value11; var clientVersion; var run; var value12; var cleanup; var value13; var push; var value14; let versions = a0.versions; reducibleJoin2: while (true) { if (versions != null) { break reducibleJoin2; } value = environment; Versions = (require(1315) /* metro dependency 1315: user_settings_shared */).Versions; create = Versions.create; a0.versions = Reflect.apply(create, Versions, []); break reducibleJoin2; } const value2 = _createForOfIteratorHelperLoose_15516(a1); const value3 = value2(); let done = value3.done; if (!done) { r4 = value3; version = 0; reducibleLoop3: while (true) { value5 = r4.value; version2 = value5.version; if (version2 <= version) { throw global.Error('Migrations are out of order or there is a duplicate version'); } version = value5.version; value6 = value2(); done = value6.done; if (done) { break reducibleLoop3; } r4 = value6; continue reducibleLoop3; } } const Math = global.Math; const value8 = Math.random() < 0.1; const items2 = []; value = _createForOfIteratorHelperLoose_15516(a1); const value9 = value(); done = value9.done; const value10 = false; if (done) { r2 = value10; } else { r4 = value10; r5 = value9; reducibleLoop7: while (true) { value11 = r5.value; version = value11.version; versions = a0.versions; clientVersion = versions.clientVersion; if (version <= clientVersion) { reducibleJoin16: while (true) { if (value8) { cleanup = value11.cleanup; if (cleanup == null) { r12 = r4; break reducibleJoin16; } cleanup = value11.cleanup; Reflect.apply(cleanup, value11, []); r12 = r4; break reducibleJoin16; } r12 = r4; break reducibleJoin16; } } else { run = value11.run; value12 = Reflect.apply(run, value11, [a0]); versions = a0.versions; version = value11.version; versions.clientVersion = version; if (value10 !== value12) { cleanup = value11.cleanup; value13 = true; reducibleJoin16: while (true) { if (cleanup != null) { push = items2.push; cleanup = value11.cleanup; Reflect.apply(push, items2, [cleanup]); r12 = value13; break reducibleJoin16; } r12 = value13; break reducibleJoin16; } } else { cleanup = value11.cleanup; reducibleJoin16: while (true) { if (cleanup == null) { r12 = r4; break reducibleJoin16; } cleanup = value11.cleanup; Reflect.apply(cleanup, value11, []); r12 = r4; break reducibleJoin16; } } } value14 = value(); done = value14.done; if (done) { r2 = r12; break reducibleLoop7; } r4 = r12; r5 = value14; continue reducibleLoop7; } } return {proto: a0, isDirty: r2, cleanupFuncs: items2}; } function serializeUsageHistory(a0, a1) { // fn#15532, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:1477:3626, offset: 0x00e356e5, size: 341 bytes, params: 3, frame: 26 var environment; var r2; var value2; var defaultImport; var sortBy; var reverse; var pop; var value5; var value6; var property; var property2; var FrecencyItem; var create; var value7; var frecency; var recentUses; var filter; var value8; var map; var String; var Math; var round; var score; var totalUses; var value9; const Object = global.Object; let value = Object.entries(a0); let length = value.length; reducibleJoin3: while (true) { if (!(length > a1)) { r2 = value; break reducibleJoin3; } value2 = environment; defaultImport = importDefault(22) /* metro dependency 22 */; sortBy = defaultImport.sortBy; value = Reflect.apply(sortBy, defaultImport, [value, function(a0) { var r0; var r1; var r2; var item3; var value3; var iterator = a0[Symbol.iterator](); var iterator2 = iterator.next; var item2 = Reflect.apply(iterator2, iterator, []); var item = item2.value; item2 = item2.done ? undefined : iterator; var value = undefined; var value2 = item2 === value; if (value2) { r0 = value; r1 = item2; r2 = value2; } else { item3 = Reflect.apply(iterator2, item2, []); item = item3.value; item3 = item3.done ? undefined : item2; value3 = item3 === value; if (value3) { r0 = value; r1 = item3; r2 = value3; } else { r0 = item; r1 = item3; r2 = value3; } } if (!r2) { r1.return(); } return r0.recentUses[r0.recentUses.length - 1]; }]); reverse = value.reverse; value = Reflect.apply(reverse, value, []); length = value.length; if (!(length > a1)) { r2 = value; break reducibleJoin3; } reducibleLoop2: while (true) { pop = value.pop; Reflect.apply(pop, value, []); length = value.length; if (length > a1) { continue reducibleLoop2; } r2 = value; break reducibleJoin3; } } const object = {}; let value3 = _createForOfIteratorHelperLoose_15516(r2); const value4 = value3(); let done = value4.done; if (!done) { r2 = value4; reducibleLoop4: while (true) { value5 = r2.value; value6 = Module00057(value5, 2); property = value6[0]; property2 = value6[1]; FrecencyItem = (require(1349) /* metro dependency 1349: frecency_user_settings */).FrecencyItem; create = FrecencyItem.create; value7 = Reflect.apply(create, FrecencyItem, []); frecency = property2.frecency; value7.frecency = frecency; recentUses = property2.recentUses; filter = recentUses.filter; value8 = Reflect.apply(filter, recentUses, [function(a0) { return a0 != null && a0 > 0; }]); map = value8.map; String = global.String; value7.recentUses = Reflect.apply(map, value8, [String]); Math = global.Math; round = Math.round; score = property2.score; value7.score = Reflect.apply(round, Math, [score]); totalUses = property2.totalUses; value7.totalUses = totalUses; object[property] = value7; value9 = value3(); done = value9.done; if (done) { break reducibleLoop4; } r2 = value9; continue reducibleLoop4; } } return object; } } global.__d(_fun15515, 1350, [57, 670, 661, 1316, 1314, 1349, 1315, 22, 2]) /* metro module 1350, dependencies: [57, 670, 661, 1316, 1314, 1349, 1315, 22, 2] */;