Initial commit

This commit is contained in:
janisslsm committed 2026-07-27 16:20:00 +03:00
commit af3b49f756
16065 files changed
+2938410

No files matched your search

@@ -0,0 +1,156 @@
/* Metro module 15818; source: modules/rtc/RTCLatencyTestManager.tsx; dependencies: [6, 7, 15, 17, 18, 4259, 4402, 4291, 672, 3, 15819, 477, 4860, 2] */
function _fun121563(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#121563, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16026:6, offset: 0x0254af89, size: 401 bytes, params: 8, frame: 20
const env0_0 = require;
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 mediaEngineStore = importDefault(4259) /* metro dependency 4259: MediaEngineStore */;
const rtcRegionStore = importDefault(4402) /* metro dependency 4402: RTCRegionStore */;
const env0_10 = (require(4291) /* metro dependency 4291: Constants */).Features;
let Millis = (importDefault(672) /* metro dependency 672: Durations */).Millis;
let SECOND = Millis.SECOND;
const env0_11 = 1 * SECOND;
Millis = (importDefault(672) /* metro dependency 672: Durations */).Millis;
SECOND = Millis.SECOND;
const env0_12 = 30 * SECOND;
let value = importDefault(3) /* metro dependency 3: Logger */;
value = new value('RTCLatencyTestManager');
value.enableNativeLogger(true);
value = importDefault(4860) /* metro dependency 4860: AutomaticLifecycleManager */;
value = _fun121567(value);
value = new value();
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/rtc/RTCLatencyTestManager.tsx');
exports.default = value;
}
function _isNativeReflectConstruct_121564() { // fn#121564, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16026:187, offset: 0x0254b11a, 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_121564_isNativeReflectConstruct = function() {
return !!result;
})();
}
function _fun121567(a0) { // fn#121567, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16026:512, offset: 0x0254b17c, size: 72 bytes, params: 2, frame: 15
const closure = RTCLatencyTestManager;
env0_7(closure, a0);
return env0_4(closure, [{key: '_terminate', value: function() {
if (this.refetchTimeout != null) {
global.clearTimeout(this.refetchTimeout);
}
}}]);
}
function RTCLatencyTestManager(a0) { // fn#121568, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16026:524, offset: 0x0254b1c4, size: 191 bytes, params: 2, frame: 20
var r0;
var Reflect;
let value = copyRestArgs(0, undefined);
let binding = env1_3;
binding(this, RTCLatencyTestManager);
const items = [];
arraySpread(items, value, 0, items);
value = env1_6(RTCLatencyTestManager);
binding = env1_5;
if (_isNativeReflectConstruct_121564()) {
Reflect = global.Reflect;
value = Reflect.construct(value, items, env1_6(this).constructor);
r0 = value;
} else {
value = value.apply(this, items);
r0 = value;
}
value = binding(this, r0);
value.actions = {POST_CONNECTION_OPEN: POST_CONNECTION_OPEN_121569};
value._handleTestRegionsResponse = _handleTestRegionsResponse;
value._fetchAndScheduleRefetch = _fetchAndScheduleRefetch;
value._handleConnectionOpen = _handleConnectionOpen_121577;
return value;
}
function _handleTestRegionsResponse(a0) { // fn#121570, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16026:865, owner: RTCLatencyTestManager._handleTestRegionsResponse, offset: 0x0254b283, size: 168 bytes, params: 2, frame: 16
var binding;
let value = a0.map(function(a0) {
return a0.region;
});
if (RTCRegionStore.shouldPerformLatencyTest(value)) {
value = MediaEngineStore.getMediaEngine();
value = value.rankRtcRegions(a0);
value = value.then(_fun121572);
value.catch(_fun121573);
} else {
binding = env2_13;
binding.verbose('RTC cached ranked preferred regions are ' + RTCRegionStore.getPreferredRegions());
}
}
function _fetchAndScheduleRefetch() { // fn#121574, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16026:1214, owner: RTCLatencyTestManager._fetchAndScheduleRefetch, offset: 0x0254b393, size: 180 bytes, params: 1, frame: 16
const supports = MediaEngineStore.supports;
const PORT_AWARE_LATENCY_TESTING = Features.PORT_AWARE_LATENCY_TESTING;
(require(15819) /* metro dependency 15819: RTCLatencyTestActionCreators */).fetchRTCLatencyTestRegions(Reflect.apply(supports,
MediaEngineStore, [PORT_AWARE_LATENCY_TESTING]) ? 2 : 1).then(_fun121575).catch(_fun121576);
const binding = env0_0;
const setTimeout = global.setTimeout;
const _fetchAndScheduleRefetch = binding._fetchAndScheduleRefetch;
const Millis = (importDefault(672) /* metro dependency 672: Durations */).Millis;
const MINUTE = Millis.MINUTE;
binding.refetchTimeout = setTimeout(_fetchAndScheduleRefetch, 360 * MINUTE);
}
function RTCLatencyTestManager_handleConnectionOpen() { // fn#121577, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16026:1486, owner: RTCLatencyTestManager._handleConnectionOpen, offset: 0x0254b463, size: 155 bytes, params: 1, frame: 17
var Math;
var floor;
var binding;
let value = environment.__proto__.__proto__;
if ((require(477) /* metro dependency 477: PlatformUtils */).isPlatformEmbedded) {
Math = global.Math;
floor = Math.floor;
binding = env2_11;
value = Reflect.apply(floor, Math, [binding + global.Math.random() * env2_12]);
if (env0_0.refetchTimeout != null) {
global.clearTimeout(env0_0.refetchTimeout);
}
binding = env0_0;
binding.refetchTimeout = global.setTimeout(binding._fetchAndScheduleRefetch, value);
}
}
function _fun121572(a0) { // fn#121572, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16026:969, offset: 0x0254b336, size: 71 bytes, params: 2, frame: 14
const value = environment.__proto__.__proto__.__proto__;
env3_13.verbose('RTC region latency test completed, ranked regions are: ', a0);
(require(15819) /* metro dependency 15819: RTCLatencyTestActionCreators */).completeRTCLatencyTest(a0, env0_0);
}
function _fun121573(a0) { // fn#121573, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16026:1091, offset: 0x0254b37d, size: 22 bytes, params: 2, frame: 11
return env3_13.warn(a0);
}
function _fun121575({body}) { // fn#121575, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16026:1315, offset: 0x0254b447, size: 28 bytes, params: 2, frame: 11
return env1_0._handleTestRegionsResponse(body);
}
@@ -0,0 +1,296 @@
/* Metro module 9278; source: modules/rtc/SecureFramesActionCreators.tsx; dependencies: [5, 1226, 1379, 4297, 9277, 661, 694, 9275, 4131, 4647, 1244, 9279, 4796, 2] */
function _fun72556(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#72556, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9464:6, offset: 0x01d49aea, size: 336 bytes, params: 8, frame: 19
var object2;
const env0_0 = require;
const savePersistentCodesEnabled = function() {
return _savePersistentCodesEnabled.apply(this, arguments);
};
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importDefault(5) /* metro dependency 5 */;
const authenticationStore = importDefault(1226) /* metro dependency 1226: AuthenticationStore */;
const channelStore = importDefault(1379) /* metro dependency 1379: ChannelStore */;
const voiceStateStore = importDefault(4297) /* metro dependency 4297: VoiceStateStore */;
const env0_7 = (require(9277) /* metro dependency 9277: SecureFramesConstants */).SECURE_FRAMES_PUBLIC_KEY_VERSION;
const env0_8 = (require(661) /* metro dependency 661: Constants */).ChannelTypes;
object2 = {clearUploadedKeyVersions: clearUploadedKeyVersions, updatePersistentCodesEnabled: function() {
return _updatePersistentCodesEnabled.apply(this, arguments);
}, addUploadedKeyVersion: addUploadedKeyVersion, createSecureFramesVerifiedKey: createSecureFramesVerifiedKey,
deleteSecureFramesVerifiedKey: deleteSecureFramesVerifiedKey,
deleteSecureFramesUserVerifiedKeys: deleteSecureFramesUserVerifiedKeys,
createSecureFramesTransientKey: createSecureFramesTransientKey,
deleteSecureFramesTransientKey: deleteSecureFramesTransientKey};
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/rtc/SecureFramesActionCreators.tsx');
exports.default = object2;
}
function _savePersistentCodesEnabled() { // fn#72558, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9464:299, offset: 0x01d49c3a, size: 50 bytes, params: 1, frame: 14
return env0_3(_fun72560).apply(this, arguments);
}
function _updatePersistentCodesEnabled() { // fn#72561, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9464:934, offset: 0x01d49e17, size: 50 bytes, params: 1, frame: 14
return env0_3(_fun72563).apply(this, arguments);
}
function clearUploadedKeyVersions() { // fn#72568, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9464:1855, offset: 0x01d4a0b8, size: 49 bytes, params: 1, frame: 13
(importDefault(694) /* metro dependency 694: Dispatcher */).dispatch({type: 'SECURE_FRAMES_UPLOADED_KEY_VERSION_CLEAR'});
}
function addUploadedKeyVersion(a0) { // fn#72570, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9464:2111, offset: 0x01d4a0e9, size: 57 bytes, params: 2, frame: 13
(importDefault(694) /* metro dependency 694: Dispatcher */).dispatch({type: 'SECURE_FRAMES_UPLOADED_KEY_VERSION_ADD',
keyVersion: a0});
}
function createSecureFramesVerifiedKey(a0, a1) { // fn#72571, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9464:2255, offset: 0x01d4a122, size: 61 bytes, params: 3, frame: 13
(importDefault(694) /* metro dependency 694: Dispatcher */).dispatch({type: 'SECURE_FRAMES_VERIFIED_KEY_CREATE',
userId: a0, key: a1});
}
function deleteSecureFramesVerifiedKey(a0, a1) { // fn#72572, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9464:2406, offset: 0x01d4a15f, size: 62 bytes, params: 3, frame: 13
(importDefault(694) /* metro dependency 694: Dispatcher */).dispatch({type: 'SECURE_FRAMES_VERIFIED_KEY_DELETE',
userId: a0, serializedKey: a1});
}
function deleteSecureFramesUserVerifiedKeys(a0) { // fn#72573, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9464:2572, offset: 0x01d4a19d, size: 54 bytes, params: 2, frame: 13
(importDefault(694) /* metro dependency 694: Dispatcher */).dispatch({type: 'SECURE_FRAMES_USER_VERIFIED_KEYS_DELETE',
userId: a0});
}
function createSecureFramesTransientKey(a0, a1) { // fn#72574, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9464:2727, offset: 0x01d4a1d3, size: 61 bytes, params: 3, frame: 13
(importDefault(694) /* metro dependency 694: Dispatcher */).dispatch({type: 'SECURE_FRAMES_TRANSIENT_KEY_CREATE',
userId: a0, key: a1});
}
function deleteSecureFramesTransientKey(a0) { // fn#72575, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9464:2881, offset: 0x01d4a210, size: 54 bytes, params: 2, frame: 13
(importDefault(694) /* metro dependency 694: Dispatcher */).dispatch({type: 'SECURE_FRAMES_TRANSIENT_KEY_DELETE',
userId: a0});
}
function* _fun72560(a0, a1) { // fn#72560, original name: ?anon_0_, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9464:376, offset: 0x01d49c77, size: 416 bytes, params: 3, frame: 21
var r5;
var binding;
var value3;
var dispatch;
var object2;
var binding2;
var property;
var value4;
var ensureCurrentUserPublicKey;
var value5;
var value6;
var value7;
var value8;
var error;
var binding3;
var APIError;
var prototype;
var value9;
var aPIError;
var value10;
var binding4;
var value11;
var value12;
var show;
var intl;
var string;
var t;
var R0RpRX;
var getAnyErrorMessage;
var value13;
var binding5;
var eAn6z2;
let value = undefined;
if (false) {
return value;
}
reduciblePort22: while (true) {
exceptionLanding19: while (true) {
value = environment.__proto__.__proto__;
binding = env2_1;
value3 = binding(env2_2[6]);
dispatch = value3.dispatch;
Reflect.apply(dispatch, value3, [{type: 'SECURE_FRAMES_SETTINGS_UPDATE', persistentCodesEnabled: a0}]);
if (a0) {
try {
binding = env2_0;
} catch (error) {
break exceptionLanding19;
}
try {
binding2 = env2_2;
} catch (error) {
break exceptionLanding19;
}
try {
property = binding2[7];
} catch (error) {
break exceptionLanding19;
}
try {
value4 = binding(property);
} catch (error) {
break exceptionLanding19;
}
try {
ensureCurrentUserPublicKey = value4.ensureCurrentUserPublicKey;
} catch (error) {
break exceptionLanding19;
}
try {
binding = env2_7;
} catch (error) {
break exceptionLanding19;
}
try {
value5 = Reflect.apply(ensureCurrentUserPublicKey, value4, [binding]);
} catch (error) {
break exceptionLanding19;
}
yield value5;
try {
value6 = undefined;
value7 = false;
} catch (error) {
break exceptionLanding19;
}
if (value7) {
return value6;
}
try {
value8 = a1 == null;
} catch (error) {
break exceptionLanding19;
}
if (value8) {
break reduciblePort22;
}
try {
a1();
} catch (error) {
break exceptionLanding19;
}
break reduciblePort22;
}
if (a1 == null) {
break reduciblePort22;
}
a1();
break reduciblePort22;
}
binding = env2_0;
binding3 = env2_2;
APIError = binding(binding3[8]).APIError;
prototype = APIError.prototype;
value9 = Object.create(prototype, {constructor: {value: APIError}});
aPIError = new APIError();
value10 = aPIError instanceof Object ? aPIError : value9;
binding4 = env2_1;
value11 = binding4(binding3[6]);
dispatch = value11.dispatch;
Reflect.apply(dispatch, value11, [{'type': 'SECURE_FRAMES_SETTINGS_UPDATE', 'persistentCodesEnabled': false}]);
value12 = binding4(binding3[9]);
show = value12.show;
object2 = {};
intl = binding(binding3[10]).intl;
string = intl.string;
t = binding(binding3[10]).t;
R0RpRX = t.R0RpRX;
object2.title = Reflect.apply(string, intl, [R0RpRX]);
getAnyErrorMessage = value10.getAnyErrorMessage;
value13 = Reflect.apply(getAnyErrorMessage, value10, []);
reducibleJoin21: while (true) {
if (value13 != null) {
r5 = value13;
break reducibleJoin21;
}
binding = env2_0;
binding5 = env2_2;
intl = binding(binding5[10]).intl;
string = intl.string;
t = binding(binding5[10]).t;
eAn6z2 = t.eAn6z2;
value = Reflect.apply(string, intl, [eAn6z2]);
r5 = value;
break reducibleJoin21;
}
object2.body = r5;
Reflect.apply(show, value12, [object2]);
break reduciblePort22;
}
}
function* _fun72563(a0) { // fn#72563, original name: ?anon_0_, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9464:1015, offset: 0x01d49e54, size: 480 bytes, params: 2, frame: 22
var value10;
var openSecureFramesUpdateConfirmation;
var object2;
var binding3;
var intl;
var string;
var t;
var binding4;
var binding5;
if (false) {
return undefined;
}
const env0_0 = a0;
value = undefined;
var env0_1;
let binding = env2_6;
const getVoiceStateForUser = binding.getVoiceStateForUser;
const binding2 = env2_4;
const getId = binding2.getId;
const value4 = Reflect.apply(getVoiceStateForUser, binding, [Reflect.apply(getId, binding2, [])]);
binding = env2_5;
const value5 = null;
const channel = binding.getChannel(value5 == value4 ? value : value4.channelId);
if (value5 != (env2_4.getSessionId() !== (value5 == value4 ? value : value4.sessionId) ? value5 : value5 != channel ? channel.type === env2_8.GUILD_STAGE_VOICE ? value5 : channel.id : value5)) {
binding = env2_1;
value10 = binding(env2_2[11]);
openSecureFramesUpdateConfirmation = value10.openSecureFramesUpdateConfirmation;
object2 = {};
binding = env2_0;
binding3 = env2_2;
intl = binding(binding3[10]).intl;
string = intl.string;
t = binding(binding3[10]).t;
object2.title = a0 ? Reflect.apply(string, intl, [t.DRFN1B]) : Reflect.apply(string, intl, [t.q29xJz]);
binding = env2_0;
binding4 = env2_2;
intl = binding(binding4[10]).intl;
string = intl.string;
t = binding(binding4[10]).t;
object2.subtitle = a0 ? Reflect.apply(string, intl, [t.y015ZY]) : Reflect.apply(string, intl, [t.E66FQn]);
binding = env2_0;
binding5 = env2_2;
intl = binding(binding5[10]).intl;
string = intl.string;
t = binding(binding5[10]).t;
object2.confirmText = Reflect.apply(string, intl, [t.aTuFYT]);
binding = env2_3;
env0_1 = binding(_fun72565);
object2.onConfirm = onConfirm_72567;
Reflect.apply(openSecureFramesUpdateConfirmation, value10, [object2]);
} else {
yield env2_9(a0);
}
return value;
}
function* _fun72565() { // fn#72565, original name: ?anon_0_, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9464:1574, offset: 0x01d4a03f, size: 57 bytes, params: 1, frame: 14
var environment;
if (true) {
value = environment.__proto__.__proto__.__proto__.__proto__;
var binding = env4_9;
value = environment.__proto__;
yield binding(env1_0, _fun72566);
}
}
function _fun72566() { // fn#72566, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9464:1622, offset: 0x01d4a078, size: 64 bytes, params: 1, frame: 14
const value = environment.__proto__.__proto__.__proto__.__proto__.__proto__;
const binding = env5_1;
const binding2 = env5_2;
binding(binding2[12]).disconnect();
binding(binding2[12]).selectVoiceChannel(env2_2);
}
@@ -0,0 +1,28 @@
/* Metro module 9277; source: modules/rtc/SecureFramesConstants.tsx; dependencies: [2] */
function _fun72555(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#72555, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9463:6, offset: 0x01d499a1, size: 329 bytes, params: 8, frame: 18
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/rtc/SecureFramesConstants.tsx');
exports.SECURE_FRAMES_LINKING_BOTTOM_SHEET_KEY = 'secure_frames_linking_bottom_sheet_key';
exports.SECURE_FRAMES_CALL_VERIFICATION_BOTTOM_SHEET_KEY = 'secure_frames_call_verification_bottom_sheet_key';
exports.SECURE_FRAMES_STREAM_VERIFICATION_BOTTOM_SHEET_KEY = 'secure_frames_stream_verification_bottom_sheet_key';
exports.SECURE_FRAMES_USER_VERIFICATION_MODAL_KEY = 'secure_frames_user_verification_modal_key';
exports.EPOCH_AUTHENTICATOR_CHUNK_SIZE = 5;
exports.EPOCH_AUTHENTICATOR_LENGTH = 30;
exports.EPOCH_AUTHENTICATOR_COLUMNS = 3;
exports.USER_VERIFICATION_CHUNK_SIZE = 5;
exports.USER_VERIFICATION_LENGTH = 45;
exports.USER_VERIFICATION_NUM_COLUMNS = 3;
exports.USER_VERIFIED_TOAST_KEY = 'user_verified_toast_key';
exports.AnalyticsSecureFramesUserVerification = {MATCH: 'match',
OTHER_USER_ALREADY_VERIFIED: 'other_user_already_verified',
OTHER_USER_INCONSISTENT_KEYS: 'other_user_inconsistent_keys', FINGERPRINT_MISMATCH: 'fingerprint_mismatch',
UNABLE_TO_VERIFY: 'unable_to_verify', OTHER_USER_DISCONNECTED: 'other_user_disconnected',
CURRENT_USER_DISCONNECTED: 'current_user_disconnected'};
exports.END_TO_END_ENCRYPTION_DISABLED = 0;
exports.AnalyticsRTCConnectionPanelTab = {RTC_DEBUG_PANEL: 'rtc_debug_panel',
RTC_SECURE_FRAMES: 'rtc_secure_frames'};
exports.SECURE_FRAMES_PUBLIC_KEY_VERSION = 1;
exports.SECURE_FRAMES_GENERATE_FINGERPRINT_VERSION = 0;
}
@@ -0,0 +1,20 @@
/* Metro module 4248; source: modules/rtc/SecureFramesDeeplinkExperiment.tsx; dependencies: [4249, 2] */
function _fun35290(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#35290, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4420:6, offset: 0x0106de0b, size: 185 bytes, params: 8, frame: 20
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_0 = (importDefault(4249) /* metro dependency 4249: createExperiment */)({'kind': 'user',
'id': '2024-09_secure_frames_deeplink', 'label': 'Secure Frames Deeplinks', defaultConfig: {enabled: false},
treatments: [{'id': 1, 'label': 'Enabled.', config: {enabled: true}}]});
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/rtc/SecureFramesDeeplinkExperiment.tsx');
exports.useSecureFramesDeeplinkExperiment = useSecureFramesDeeplinkExperiment;
exports.getSecureFramesDeeplinkExperiment = getSecureFramesDeeplinkExperiment;
}
function useSecureFramesDeeplinkExperiment({location}) { // fn#35291, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4420:389, offset: 0x0106dec4, size: 44 bytes, params: 2, frame: 14
return env0_0.useExperiment({location: location}, {autoTrackExposure: true});
}
function getSecureFramesDeeplinkExperiment({location}) { // fn#35292, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4420:543, offset: 0x0106def0, size: 44 bytes, params: 2, frame: 14
return env0_0.getCurrentConfig({location: location}, {autoTrackExposure: true});
}
@@ -0,0 +1,213 @@
/* Metro module 9276; source: modules/rtc/SecureFramesPersistedStore.tsx; dependencies: [6, 7, 15, 17, 18, 566, 694, 2] */
function _fun72539(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#72539, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9462:6, offset: 0x01d494fa, size: 341 bytes, params: 8, frame: 18
const _arrayLikeToArray_72545 = 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});
const env0_0 = importDefault(6) /* metro dependency 6 */;
const env0_1 = importDefault(7) /* metro dependency 7 */;
const env0_2 = importDefault(15) /* metro dependency 15 */;
const env0_3 = importDefault(17) /* metro dependency 17 */;
const env0_4 = importDefault(18) /* metro dependency 18 */;
object = [];
const PersistedStore = (importDefault(566) /* metro dependency 566: flux */).PersistedStore;
let value = _fun72546(PersistedStore);
value.displayName = 'SecureFramesPersistedStore';
value.persistKey = 'SecureFramesPersistedStore';
value = new value(importDefault(694) /* metro dependency 694: Dispatcher */,
{SECURE_FRAMES_SETTINGS_UPDATE: function(a0) {
env0_6 = a0.persistentCodesEnabled;
}, SECURE_FRAMES_UPLOADED_KEY_VERSION_ADD: SECURE_FRAMES_UPLOADED_KEY_VERSION_ADD,
SECURE_FRAMES_UPLOADED_KEY_VERSION_CLEAR: SECURE_FRAMES_UPLOADED_KEY_VERSION_CLEAR});
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/rtc/SecureFramesPersistedStore.tsx');
exports.default = value;
}
function _isNativeReflectConstruct_72540() { // fn#72540, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9462:150, offset: 0x01d4964f, 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_72540_isNativeReflectConstruct = function() {
return !!result;
})();
}
function _createForOfIteratorHelperLoose_72543(a0, a1) { // fn#72543, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9462:343, offset: 0x01d496b1, 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 _fun72544;
}
value = undefined;
if (a0) {
if (typeof a0 === 'string') {
value = _arrayLikeToArray_72545(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_72545(a0, value);
r6 = value;
} else {
regexp = RegExp('^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$', '');
if (regexp.test(r9)) {
value = _arrayLikeToArray_72545(a0, value);
r6 = value;
} else {
r6 = value;
}
}
r5 = r6;
}
} else {
r5 = value;
}
if (r5) {
if (r5) {
}
return _fun72544;
}
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 _fun72546(a0) { // fn#72546, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9462:1277, offset: 0x01d49825, size: 149 bytes, params: 2, frame: 16
const closure = SecureFramesPersistedStore;
env0_4(closure, a0);
return env0_1(closure, [{key: 'initialize', value: value_72548}, {key: 'getState', value: value_72549},
{key: 'getPersistentCodesEnabled', value: value_72550}, {key: 'getUploadedKeyVersionsCached',
value: value_72551}]);
}
function SECURE_FRAMES_UPLOADED_KEY_VERSION_ADD(a0) { // fn#72553, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9462:2257, offset: 0x01d4992b, size: 103 bytes, params: 2, frame: 16
var value4;
var keyVersion;
var push;
var value5;
const items2 = [];
const value2 = _createForOfIteratorHelperLoose_72543(env0_7);
const value3 = value2();
let done = value3.done;
if (done) {
items2.push(a0.keyVersion);
} else {
var r5 = value3;
loopExit1: while (true) {
value4 = r5.value;
keyVersion = a0.keyVersion;
if (value4 === keyVersion) {
break loopExit1;
}
push = items2.push;
Reflect.apply(push, items2, [value4]);
value5 = value2();
done = value5.done;
if (done) {
items2.push(a0.keyVersion);
env0_7 = items2;
return undefined;
}
r5 = value5;
continue;
}
}
}
function SECURE_FRAMES_UPLOADED_KEY_VERSION_CLEAR() { // fn#72554, offset: 0x01d49992, size: 15 bytes, params: 1, frame: 2
}
function value_72548(a0) { // fn#72548, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9462:1637, offset: 0x01d498ba, size: 68 bytes, params: 2, frame: 6
const value = undefined;
const persistentCodesEnabled = a0 == null ? value : a0.persistentCodesEnabled;
let r1 = persistentCodesEnabled != null && persistentCodesEnabled;
r1 = (a0 == null ? value : a0.uploadedKeyVersions) ?? env1_5;
return value;
}
function value_72549() { // fn#72549, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9462:1789, offset: 0x01d498fe, size: 25 bytes, params: 1, frame: 3
return {persistentCodesEnabled: env1_6, uploadedKeyVersions: env1_7};
}
@@ -0,0 +1,82 @@
/* Metro module 9279; source: modules/rtc/SecureFramesPlatformUtils.native.tsx; dependencies: [1379, 4294, 9277, 661, 5080, 9280, 1962, 4080, 9289, 1244, 4496, 1305, 6837, 9292, 2] */
function _fun72576(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#72576, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9465:6, offset: 0x01d4a246, size: 251 bytes, params: 8, frame: 19
var object2;
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const channelStore = importDefault(1379) /* metro dependency 1379: ChannelStore */;
const rtcConnectionStore = importDefault(4294) /* metro dependency 4294: RTCConnectionStore */;
let value = require(9277) /* metro dependency 9277: SecureFramesConstants */;
const env0_5 = value.SECURE_FRAMES_LINKING_BOTTOM_SHEET_KEY;
const env0_6 = value.SECURE_FRAMES_STREAM_VERIFICATION_BOTTOM_SHEET_KEY;
const env0_7 = value.SECURE_FRAMES_USER_VERIFICATION_MODAL_KEY;
value = require(661) /* metro dependency 661: Constants */;
const env0_8 = value.ME;
const env0_9 = value.Routes;
object2 = {openSecureFramesStreamVerification: function(a0, a1) {
importDefault(dependencyMap[7]).openLazy(require(dependencyMap[6])(dependencyMap[8], dependencyMap.paths),
SECURE_FRAMES_STREAM_VERIFICATION_BOTTOM_SHEET_KEY, {streamKey: a0, channelId: a1});
}, openSecureFramesUserVerificationModal: openSecureFramesUserVerificationModal,
openSecureFramesUpdateConfirmation: openSecureFramesUpdateConfirmation,
handleSecureFramesUserVerificationLink: handleSecureFramesUserVerificationLink};
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/rtc/SecureFramesPlatformUtils.native.tsx');
exports.default = object2;
}
function openSecureFramesUserVerificationModal(a0, a1, a2) { // fn#72578, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9465:496, offset: 0x01d4a3a0, size: 104 bytes, params: 4, frame: 17
var defaultImport;
if (a2()) {
defaultImport = importDefault(dependencyMap[4]);
defaultImport.pushLazy(require(dependencyMap[6])(dependencyMap[5], dependencyMap.paths), {userId: a0,
channelId: a1}, SECURE_FRAMES_USER_VERIFICATION_MODAL_KEY);
}
}
function openSecureFramesUpdateConfirmation({title, subtitle, confirmText, onConfirm}) { // fn#72579, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9465:656, offset: 0x01d4a408, size: 249 bytes, params: 2, frame: 19
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
const t = (require(1244) /* metro dependency 1244: indexNative */).t;
const r6 = confirmText !== undefined ? confirmText : intl.string(t['cY+Oob']);
const defaultImport = importDefault(4496) /* metro dependency 4496: AlertActionCreators */;
const confirm = defaultImport.confirm;
const object2 = {title: title, body: subtitle, confirmText: r6};
object2.cancelText = intl.string(t['ETE/oC']);
const ButtonColors = (require(1305) /* metro dependency 1305: native */).ButtonColors;
const RED = ButtonColors.RED;
object2.confirmColor = RED;
Reflect.apply(confirm, defaultImport, [object2]).then(_fun72580);
}
function handleSecureFramesUserVerificationLink({userId, fingerprint}) { // fn#72581, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9465:989, offset: 0x01d4a518, size: 353 bytes, params: 2, frame: 25
var defaultImport;
var show;
var object2;
const intl = require(dependencyMap[9]).intl;
const t = require(dependencyMap[9]).t;
var defaultImport3;
const channelId = RTCConnectionStore.getChannelId();
const channel = ChannelStore.getChannel(channelId);
let r7 = channel?.getGuildId();
r7 = r7 ?? ME;
if (channelId == null) {
defaultImport = importDefault(dependencyMap[10]);
show = defaultImport.show;
object2 = {};
object2.title = intl.string(t['5ICxE6']);
object2.body = intl.string(t['v1eXp/']);
Reflect.apply(show, defaultImport, [object2]);
} else if (channel != null) {
importDefault(dependencyMap[12])(Routes.CHANNEL(r7, channelId));
defaultImport3 = importDefault(dependencyMap[7]);
defaultImport3.openLazy(require(dependencyMap[6])(dependencyMap[13], dependencyMap.paths),
SECURE_FRAMES_LINKING_BOTTOM_SHEET_KEY, {userId: userId, channelId: channelId, guildId: r7,
fingerprint: fingerprint});
} else {
defaultImport = importDefault(dependencyMap[10]);
show = defaultImport.show;
object2 = {};
object2.title = intl.string(t['5ICxE6']);
object2.body = intl.string(t['v1eXp/']);
Reflect.apply(show, defaultImport, [object2]);
}
}
@@ -0,0 +1,134 @@
/* Metro module 9284; source: modules/rtc/SecureFramesTracking.tsx; dependencies: [1379, 661, 4863, 8515, 683, 2] */
function _fun72619(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#72619, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9470:6, offset: 0x01d4be2c, size: 315 bytes, params: 8, frame: 19
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const channelStore = importDefault(1379) /* metro dependency 1379: ChannelStore */;
const env0_4 = (require(661) /* metro dependency 661: Constants */).AnalyticEvents;
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/rtc/SecureFramesTracking.tsx');
exports.trackRTCPanelViewed = function({channelId, selectedTab}) {
var defaultImport = importDefault(dependencyMap[2]);
var RTC_PANEL_VIEWED = AnalyticEvents.RTC_PANEL_VIEWED;
var object = {channel_id: channelId};
object.guild_id = getGuildId_72620(channelId);
object.selected_tab = selectedTab;
defaultImport.trackWithMetadata(RTC_PANEL_VIEWED, object);
};
exports.trackE2EEUserVerificationViewed = trackE2EEUserVerificationViewed;
exports.trackE2EEUserVerified = trackE2EEUserVerified;
exports.trackE2EEUserVerificationFailed = trackE2EEUserVerificationFailed;
exports.trackE2EEUserVerificationShareClicked = trackE2EEUserVerificationShareClicked;
exports.trackE2EEUserVerificationCopied = trackE2EEUserVerificationCopied;
exports.trackE2EECallVerificationShareClicked = function({channelId}) {
var defaultImport = importDefault(dependencyMap[2]);
var E2EE_CALL_VERIFICATION_SHARE_CLICKED = AnalyticEvents.E2EE_CALL_VERIFICATION_SHARE_CLICKED;
var object = {channel_id: channelId};
object.guild_id = getGuildId_72620(channelId);
defaultImport.trackWithMetadata(E2EE_CALL_VERIFICATION_SHARE_CLICKED, object);
};
exports.trackE2EECallVerificationCopied = function({channelId}) {
var defaultImport = importDefault(dependencyMap[2]);
var E2EE_CALL_VERIFICATION_CODE_COPIED = AnalyticEvents.E2EE_CALL_VERIFICATION_CODE_COPIED;
var object = {channel_id: channelId};
object.guild_id = getGuildId_72620(channelId);
defaultImport.trackWithMetadata(E2EE_CALL_VERIFICATION_CODE_COPIED, object);
};
exports.trackE2EEStreamVerificationShareClicked = function({channelId}) {
var defaultImport = importDefault(dependencyMap[2]);
var E2EE_STREAM_VERIFICATION_SHARE_CLICKED = AnalyticEvents.E2EE_STREAM_VERIFICATION_SHARE_CLICKED;
var object = {channel_id: channelId};
object.guild_id = getGuildId_72620(channelId);
defaultImport.trackWithMetadata(E2EE_STREAM_VERIFICATION_SHARE_CLICKED, object);
};
exports.trackE2EEStreamVerificationCopied = function({channelId}) {
var defaultImport = importDefault(dependencyMap[2]);
var E2EE_STREAM_VERIFICATION_CODE_COPIED = AnalyticEvents.E2EE_STREAM_VERIFICATION_CODE_COPIED;
var object = {channel_id: channelId};
object.guild_id = getGuildId_72620(channelId);
defaultImport.trackWithMetadata(E2EE_STREAM_VERIFICATION_CODE_COPIED, object);
};
exports.trackE2EESettingsUserDelete = function() {
importDefault(dependencyMap[4]).track(AnalyticEvents.E2EE_SETTINGS_USER_DELETE);
};
exports.trackE2EESettingsDeviceDelete = function() {
importDefault(dependencyMap[4]).track(AnalyticEvents.E2EE_SETTINGS_DEVICE_DELETE);
};
exports.trackE2EEPublicKeyMismatch = function(a0) {
var defaultImport = importDefault(dependencyMap[4]);
var E2EE_PUBLIC_KEY_MISMATCH = AnalyticEvents.E2EE_PUBLIC_KEY_MISMATCH;
defaultImport.track(E2EE_PUBLIC_KEY_MISMATCH, {key_version: '' + a0});
};
}
function getGuildId_72620(a0) { // fn#72620, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9470:131, offset: 0x01d4bf67, size: 38 bytes, params: 2, frame: 11
return ChannelStore.getChannel(a0)?.guild_id;
}
function trackE2EEUserVerificationViewed({channelId, userId}) { // fn#72622, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9470:495, offset: 0x01d4bfe6, size: 121 bytes, params: 2, frame: 19
const defaultImport = importDefault(4863) /* metro dependency 4863: AppAnalyticsUtils */;
const trackWithMetadata = defaultImport.trackWithMetadata;
const E2EE_USER_VERIFICATION_VIEWED = AnalyticEvents.E2EE_USER_VERIFICATION_VIEWED;
const object2 = {channel_id: channelId};
object2.guild_id = getGuildId_72620(channelId);
const userProfileAnalyticsUtilsModule = require(8515) /* metro dependency 8515: UserProfileAnalyticsUtils */;
const getTrackUserRelationshipProperties = userProfileAnalyticsUtilsModule.getTrackUserRelationshipProperties;
copyDataProperties(object2, Reflect.apply(getTrackUserRelationshipProperties, userProfileAnalyticsUtilsModule,
[{userId: userId}]), channelId);
Reflect.apply(trackWithMetadata, defaultImport, [E2EE_USER_VERIFICATION_VIEWED, object2]);
}
function trackE2EEUserVerified({channelId, userId, analyticsLocation}) { // fn#72623, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9470:740, offset: 0x01d4c05f, size: 131 bytes, params: 2, frame: 20
const defaultImport = importDefault(4863) /* metro dependency 4863: AppAnalyticsUtils */;
const trackWithMetadata = defaultImport.trackWithMetadata;
const E2EE_USER_VERIFIED = AnalyticEvents.E2EE_USER_VERIFIED;
const object2 = {channel_id: channelId};
object2.guild_id = getGuildId_72620(channelId);
object2.location = analyticsLocation;
const userProfileAnalyticsUtilsModule = require(8515) /* metro dependency 8515: UserProfileAnalyticsUtils */;
const getTrackUserRelationshipProperties = userProfileAnalyticsUtilsModule.getTrackUserRelationshipProperties;
copyDataProperties(object2, Reflect.apply(getTrackUserRelationshipProperties, userProfileAnalyticsUtilsModule,
[{userId: userId}]), channelId);
Reflect.apply(trackWithMetadata, defaultImport, [E2EE_USER_VERIFIED, object2]);
}
function trackE2EEUserVerificationFailed({channelId, userId, keyVersion, reason}) { // fn#72624, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9470:1005, offset: 0x01d4c0e2, size: 165 bytes, params: 2, frame: 21
const defaultImport = importDefault(4863) /* metro dependency 4863: AppAnalyticsUtils */;
const trackWithMetadata = defaultImport.trackWithMetadata;
const E2EE_USER_VERIFICATION_FAILED = AnalyticEvents.E2EE_USER_VERIFICATION_FAILED;
const object2 = {channel_id: channelId};
object2.guild_id = getGuildId_72620(channelId);
object2.failure_reason = reason;
object2.key_version = '' + keyVersion;
const userProfileAnalyticsUtilsModule = require(8515) /* metro dependency 8515: UserProfileAnalyticsUtils */;
const getTrackUserRelationshipProperties = userProfileAnalyticsUtilsModule.getTrackUserRelationshipProperties;
copyDataProperties(object2, Reflect.apply(getTrackUserRelationshipProperties, userProfileAnalyticsUtilsModule,
[{userId: userId}]), channelId);
Reflect.apply(trackWithMetadata, defaultImport, [E2EE_USER_VERIFICATION_FAILED, object2]);
}
function trackE2EEUserVerificationShareClicked({channelId, userId}) { // fn#72625, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9470:1324, offset: 0x01d4c187, size: 121 bytes, params: 2, frame: 19
const defaultImport = importDefault(4863) /* metro dependency 4863: AppAnalyticsUtils */;
const trackWithMetadata = defaultImport.trackWithMetadata;
const E2EE_USER_VERIFICATION_SHARE_CLICKED = AnalyticEvents.E2EE_USER_VERIFICATION_SHARE_CLICKED;
const object2 = {channel_id: channelId};
object2.guild_id = getGuildId_72620(channelId);
const userProfileAnalyticsUtilsModule = require(8515) /* metro dependency 8515: UserProfileAnalyticsUtils */;
const getTrackUserRelationshipProperties = userProfileAnalyticsUtilsModule.getTrackUserRelationshipProperties;
copyDataProperties(object2, Reflect.apply(getTrackUserRelationshipProperties, userProfileAnalyticsUtilsModule,
[{userId: userId}]), channelId);
Reflect.apply(trackWithMetadata, defaultImport, [E2EE_USER_VERIFICATION_SHARE_CLICKED, object2]);
}
function trackE2EEUserVerificationCopied({channelId, userId}) { // fn#72626, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9470:1592, offset: 0x01d4c200, size: 121 bytes, params: 2, frame: 19
const defaultImport = importDefault(4863) /* metro dependency 4863: AppAnalyticsUtils */;
const trackWithMetadata = defaultImport.trackWithMetadata;
const E2EE_USER_VERIFICATION_CODE_COPIED = AnalyticEvents.E2EE_USER_VERIFICATION_CODE_COPIED;
const object2 = {channel_id: channelId};
object2.guild_id = getGuildId_72620(channelId);
const userProfileAnalyticsUtilsModule = require(8515) /* metro dependency 8515: UserProfileAnalyticsUtils */;
const getTrackUserRelationshipProperties = userProfileAnalyticsUtilsModule.getTrackUserRelationshipProperties;
copyDataProperties(object2, Reflect.apply(getTrackUserRelationshipProperties, userProfileAnalyticsUtilsModule,
[{userId: userId}]), channelId);
Reflect.apply(trackWithMetadata, defaultImport, [E2EE_USER_VERIFICATION_CODE_COPIED, object2]);
}
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,354 @@
/* Metro module 9257; source: modules/rtc/SecureFramesVerifiedStore.tsx; dependencies: [6, 7, 15, 17, 18, 1226, 4294, 4395, 9258, 9259, 661, 9275, 4285, 4406, 566, 694, 2] */
function _fun72309(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#72309, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9442:6, offset: 0x01d42290, size: 569 bytes, params: 8, frame: 22
const env0_0 = require;
const _arrayLikeToArray_72315 = 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 = SECURE_FRAMES_TRANSIENT_KEY_CREATE;
const closure2 = CONNECTION_OPEN_72320;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_2 = importDefault(6) /* metro dependency 6 */;
const env0_3 = importDefault(7) /* metro dependency 7 */;
const env0_4 = importDefault(15) /* metro dependency 15 */;
const env0_5 = importDefault(17) /* metro dependency 17 */;
const env0_6 = importDefault(18) /* metro dependency 18 */;
const authenticationStore = importDefault(1226) /* metro dependency 1226: AuthenticationStore */;
const rtcConnectionStore = importDefault(4294) /* metro dependency 4294: RTCConnectionStore */;
const streamRTCConnectionStore = importDefault(4395) /* metro dependency 4395: StreamRTCConnectionStore */;
const transientKeyStore = importDefault(9258) /* metro dependency 9258: TransientKeyStore */;
const verifiedKeyStore = importDefault(9259) /* metro dependency 9259: VerifiedKeyStore */;
const env0_12 = (require(661) /* metro dependency 661: Constants */).RTCConnectionStates;
let Map = global.Map;
let map = new Map();
Map = global.Map;
map = new Map();
const Store = (importDefault(566) /* metro dependency 566: flux */).Store;
_fun72321(Store).displayName = 'SecureFramesVerifiedStore';
map = new map(importDefault(694) /* metro dependency 694: Dispatcher */, {CONNECTION_OPEN: closure2,
VOICE_CHANNEL_SELECT: VOICE_CHANNEL_SELECT_72327, RTC_CONNECTION_STATE: RTC_CONNECTION_STATE_72328,
RTC_CONNECTION_ROSTER_MAP_UPDATE: RTC_CONNECTION_ROSTER_MAP_UPDATE, SECURE_FRAMES_TRANSIENT_KEY_CREATE: closure,
SECURE_FRAMES_TRANSIENT_KEY_DELETE: closure, SECURE_FRAMES_VERIFIED_KEY_CREATE: closure,
SECURE_FRAMES_VERIFIED_KEY_DELETE: closure, SECURE_FRAMES_USER_VERIFIED_KEYS_DELETE: closure});
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/rtc/SecureFramesVerifiedStore.tsx');
exports.default = map;
}
function _isNativeReflectConstruct_72310() { // fn#72310, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9442:232, offset: 0x01d424c9, 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_72310_isNativeReflectConstruct = function() {
return !!result;
})();
}
function _createForOfIteratorHelperLoose_72313(a0, a1) { // fn#72313, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9442:425, offset: 0x01d4252b, 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 _fun72314;
}
value = undefined;
if (a0) {
if (typeof a0 === 'string') {
value = _arrayLikeToArray_72315(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_72315(a0, value);
r6 = value;
} else {
regexp = RegExp('^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$', '');
if (regexp.test(r9)) {
value = _arrayLikeToArray_72315(a0, value);
r6 = value;
} else {
r6 = value;
}
}
r5 = r6;
}
} else {
r5 = value;
}
if (r5) {
if (r5) {
}
return _fun72314;
}
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 computeStreamVerifications() { // fn#72316, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9442:1371, offset: 0x01d4269f, size: 42 bytes, params: 1, frame: 13
return StreamRTCConnectionStore.getAllActiveStreamKeys().reduce(_fun72317, false);
}
function computeCallVerification() { // fn#72318, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9442:1564, offset: 0x01d4273c, size: 155 bytes, params: 1, frame: 19
var r1;
var r3;
var Set;
var prototype;
var value3;
var set;
var value4;
var value9;
var binding;
var get;
var value10;
var value11;
var value12;
const userIds = RTCConnectionStore.getUserIds();
reducibleJoin2: while (true) {
if (userIds != null) {
r1 = userIds;
break reducibleJoin2;
}
Set = global.Set;
prototype = Set.prototype;
value3 = Object.create(prototype, {constructor: {value: Set}});
set = new Set();
value4 = set instanceof Object ? set : value3;
r1 = value4;
break reducibleJoin2;
}
const id = AuthenticationStore.getId();
const value6 = _createForOfIteratorHelperLoose_72313(r1);
const value7 = value6();
let done = value7.done;
const value8 = true;
if (done) {
r1 = value8;
} else {
r3 = value7;
reducibleLoop3: while (true) {
value9 = r3.value;
if (id !== value9) {
binding = env0_13;
get = binding.get;
value10 = Reflect.apply(get, binding, [value9]);
value11 = false;
reducibleJoin5: while (true) {
if (value8 !== value10) {
r1 = value11;
break reducibleLoop3;
}
break reducibleJoin5;
}
}
value12 = value6();
done = value12.done;
if (done) {
r1 = value8;
break reducibleLoop3;
}
r3 = value12;
continue reducibleLoop3;
}
}
return r1 !== env0_15;
}
function SECURE_FRAMES_TRANSIENT_KEY_CREATE({userId}) { // fn#72319, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9442:1794, offset: 0x01d427d7, size: 256 bytes, params: 2, frame: 17
var r5;
var r0;
var uint8Array;
var moduleValue;
var binding;
var value8;
const getId = AuthenticationStore.getId;
if (Reflect.apply(getId, AuthenticationStore, []) === userId) {
return false;
}
const secureFramesRosterMapEntry = RTCConnectionStore.getSecureFramesRosterMapEntry(userId);
if (secureFramesRosterMapEntry == null) {
r0 = false;
} else {
uint8Array = new global.Uint8Array(secureFramesRosterMapEntry);
r5 = VerifiedKeyStore.isKeyVerified(userId, uint8Array) || TransientKeyStore.isKeyVerified(userId, uint8Array);
moduleValue = require(9275) /* metro dependency 9275: SecureFramesUtils */;
r5 = r5 && !moduleValue.getIsSecureFramesKeyInconsistent(userId, [RTCConnectionStore,
StreamRTCConnectionStore]);
binding = env0_13;
value8 = r5 !== binding.get(userId);
binding = env0_13;
binding.set(userId, r5);
r0 = value8;
}
const streamVerifications = computeStreamVerifications();
const callVerification = computeCallVerification();
r0 = !r0 ? streamVerifications : r0;
r0 = !r0 ? callVerification : r0;
return r0;
}
function CONNECTION_OPEN_72320() { // fn#72320, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9442:2205, offset: 0x01d428d7, size: 41 bytes, params: 1, frame: 10
env0_13.clear();
env0_14.clear();
}
function _fun72321(a0) { // fn#72321, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9442:2259, offset: 0x01d42900, size: 153 bytes, params: 2, frame: 16
const closure = SecureFramesVerifiedStore;
env0_6(closure, a0);
return env0_3(closure, [{key: 'initialize', value: function() {
this.waitFor(AuthenticationStore, RTCConnectionStore, StreamRTCConnectionStore, TransientKeyStore,
VerifiedKeyStore);
}}, {key: 'isCallVerified', value: value_72324}, {key: 'isStreamVerified', value: value_72325},
{key: 'isUserVerified', value: value_72326}]);
}
function VOICE_CHANNEL_SELECT_72327({channelId}) { // fn#72327, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9442:2951, offset: 0x01d429c4, size: 39 bytes, params: 2, frame: 10
if (channelId === env0_16) {
return false;
}
CONNECTION_OPEN_72320();
}
function RTC_CONNECTION_STATE_72328({streamKey, state, context}) { // fn#72328, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9442:3058, offset: 0x01d429eb, size: 154 bytes, params: 2, frame: 15
var r0;
var value2;
const DISCONNECTED = RTCConnectionStates.DISCONNECTED;
if (state !== DISCONNECTED) {
return false;
}
const MediaEngineContextTypes = (require(4406) /* metro dependency 4406: mediaEngine */).MediaEngineContextTypes;
const STREAM = MediaEngineContextTypes.STREAM;
if (STREAM === context) {
value2 = streamKey != null;
if (value2) {
env0_14.delete(streamKey);
r0 = computeCallVerification();
} else {
r0 = value2;
}
return r0;
}
const DEFAULT = MediaEngineContextTypes.DEFAULT;
if (DEFAULT === context) {
CONNECTION_OPEN_72320();
}
}
function RTC_CONNECTION_ROSTER_MAP_UPDATE({userIds}) { // fn#72329, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9442:3364, offset: 0x01d42a85, size: 85 bytes, params: 2, frame: 14
const env0_0 = AuthenticationStore.getId();
const value2 = userIds.reduce(_fun72330, false);
const streamVerifications = computeStreamVerifications();
const callVerification = computeCallVerification();
let r0 = value2 || streamVerifications;
r0 = !r0 ? callVerification : r0;
return r0;
}
function _fun72317(a0, a1) { // fn#72317, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9442:1451, offset: 0x01d426c9, size: 115 bytes, params: 3, frame: 15
const value = a0;
const streamKeyUtilsModule = require(4285) /* metro dependency 4285: StreamKeyUtils */;
const ownerId = streamKeyUtilsModule.decodeStreamKey(a1).ownerId;
let binding = env1_13;
let get = binding.get;
const value4 = Reflect.apply(get, binding, [ownerId]) === true;
binding = env1_14;
get = binding.get;
const value5 = Reflect.apply(get, binding, [a1]) !== value4;
env1_14.set(a1, value4);
return value5 ? !!value5 : value;
}
function _fun72330(a0, a1) { // fn#72330, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9442:3435, offset: 0x01d42ada, size: 57 bytes, params: 3, frame: 13
var r0;
var value3;
var value4;
const value = a0;
if (env0_0 === a1) {
r0 = value;
} else {
value3 = environment.__proto__;
value4 = SECURE_FRAMES_TRANSIENT_KEY_CREATE({userId: a1});
r0 = value4 ? !!value4 : value;
}
return r0;
}
+106
View File
@@ -0,0 +1,106 @@
/* Metro module 9258; source: modules/rtc/TransientKeyStore.tsx; dependencies: [6, 7, 15, 17, 18, 566, 694, 2] */
function _fun72331(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#72331, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9443:6, offset: 0x01d42b13, size: 319 bytes, params: 8, frame: 19
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_0 = importDefault(6) /* metro dependency 6 */;
const env0_1 = importDefault(7) /* metro dependency 7 */;
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 Map = global.Map;
let map = new Map();
const Store = (importDefault(566) /* metro dependency 566: flux */).Store;
_fun72335(Store).displayName = 'TransientKeyStore';
map = new map(importDefault(694) /* metro dependency 694: Dispatcher */, {CONNECTION_OPEN: CONNECTION_OPEN_72339,
SECURE_FRAMES_TRANSIENT_KEY_CREATE: SECURE_FRAMES_TRANSIENT_KEY_CREATE_72340,
SECURE_FRAMES_TRANSIENT_KEY_DELETE: SECURE_FRAMES_TRANSIENT_KEY_DELETE});
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/rtc/TransientKeyStore.tsx');
exports.default = map;
}
function _isNativeReflectConstruct_72332() { // fn#72332, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9443:154, offset: 0x01d42c52, 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_72332_isNativeReflectConstruct = function() {
return !!result;
})();
}
function _fun72335(a0) { // fn#72335, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9443:367, offset: 0x01d42cb4, size: 97 bytes, params: 2, frame: 16
const closure = TransientKeyStore;
env0_4(closure, a0);
return env0_1(closure, [{key: 'getUsers', value: value_72337}, {key: 'isKeyVerified', value: value_72338}]);
}
function CONNECTION_OPEN_72339() { // fn#72339, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9443:961, offset: 0x01d42d76, size: 21 bytes, params: 1, frame: 9
env0_5.clear();
}
function SECURE_FRAMES_TRANSIENT_KEY_CREATE_72340({userId, key}) { // fn#72340, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9443:1039, offset: 0x01d42d8b, size: 63 bytes, params: 2, frame: 13
const Uint8Array = global.Uint8Array;
env0_5.set(userId, new Uint8Array(key));
}
function SECURE_FRAMES_TRANSIENT_KEY_DELETE({userId}) { // fn#72341, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9443:1174, offset: 0x01d42dca, size: 27 bytes, params: 2, frame: 11
return env0_5.delete(userId);
}
function value_72338(a0, a1) { // fn#72338, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9443:729, offset: 0x01d42d15, size: 97 bytes, params: 3, frame: 13
var r1;
var property;
var value3;
let value = environment.__proto__;
value = env1_5.get(a0);
if (a1 == null) {
return false;
}
if (value == null) {
return false;
}
let length = value.length;
if (length !== a1.length) {
return false;
}
length = a1.length;
const value2 = 0;
if (value2 < length) {
r1 = value2;
loopExit4: while (true) {
property = a1[r1];
if (property !== value[r1]) {
return false;
}
value3 = typeof r1 === 'bigint' ? r1 + 1n : +r1 + 1;
length = a1.length;
if (value3 < length) {
r1 = value3;
continue;
}
break loopExit4;
}
}
return true;
}
+116
View File
@@ -0,0 +1,116 @@
/* Metro module 9259; source: modules/rtc/VerifiedKeyStore.tsx; dependencies: [6, 7, 15, 17, 18, 9260, 21, 566, 694, 2] */
function _fun72342(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#72342, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9444:6, offset: 0x01d42de5, size: 313 bytes, params: 8, frame: 19
const env0_0 = require;
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 env0_8 = {};
const PersistedStore = (importDefault(566) /* metro dependency 566: flux */).PersistedStore;
let value = _fun72346(PersistedStore);
value.displayName = 'VerifiedKeyStore';
value.persistKey = 'VerifiedKeyStore';
value = new value(importDefault(694) /* metro dependency 694: Dispatcher */,
{SECURE_FRAMES_VERIFIED_KEY_CREATE: SECURE_FRAMES_VERIFIED_KEY_CREATE,
SECURE_FRAMES_VERIFIED_KEY_DELETE: SECURE_FRAMES_VERIFIED_KEY_DELETE,
SECURE_FRAMES_USER_VERIFIED_KEYS_DELETE: SECURE_FRAMES_USER_VERIFIED_KEYS_DELETE});
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/rtc/VerifiedKeyStore.tsx');
exports.default = value;
}
function _isNativeReflectConstruct_72343() { // fn#72343, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9444:148, offset: 0x01d42f1e, 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_72343_isNativeReflectConstruct = function() {
return !!result;
})();
}
function _fun72346(a0) { // fn#72346, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9444:356, offset: 0x01d42f80, size: 199 bytes, params: 2, frame: 16
const closure = VerifiedKeyStore;
env0_7(closure, a0);
return env0_4(closure, [{key: 'initialize', value: function(a0) {
var r2;
var value = undefined;
r2 = a0 == null ? value : a0.users;
r2 = r2 ?? ({});
env1_8 = r2;
return value;
}}, {key: 'getState', value: value_72349}, {key: 'getKeyTrustedAt', value: value_72350}, {key: 'isKeyVerified',
value: function(a0, a1) {
return this.getKeyTrustedAt(a0, a1) != null;
}}, {key: 'getUserIds', value: value_72352}, {key: 'getUserVerifiedKeys', value: value_72353}]);
}
function SECURE_FRAMES_VERIFIED_KEY_CREATE({userId, key}) { // fn#72354, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9444:1236, offset: 0x01d43105, size: 125 bytes, params: 2, frame: 14
const r3 = env0_8[userId] ?? ({});
env0_8[userId] = r3;
const Uint8Array = global.Uint8Array;
const uint8Array = new Uint8Array(key);
let value = require(9260) /* metro dependency 9260: libdave */;
value = value.serializeKey(uint8Array);
const Date = global.Date;
r3[value] = Date.now();
}
function SECURE_FRAMES_VERIFIED_KEY_DELETE({userId, serializedKey}) { // fn#72355, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9444:1486, offset: 0x01d43182, size: 88 bytes, params: 2, frame: 14
var r1;
const property = env0_8[userId];
if (property == null) {
return false;
}
const value2 = delete property[serializedKey];
const Object = global.Object;
if (Object.keys(property).length !== 0) {
r1 = false;
} else {
delete env0_8[userId];
r1 = true;
}
return value2 || r1;
}
function SECURE_FRAMES_USER_VERIFIED_KEYS_DELETE({userId}) { // fn#72356, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9444:1712, offset: 0x01d431da, size: 38 bytes, params: 2, frame: 4
return env0_8[userId] != null && delete env0_8[userId];
}
function value_72349() { // fn#72349, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9444:748, offset: 0x01d4306c, size: 16 bytes, params: 1, frame: 2
return {users: env1_8};
}
function value_72350(a0, a1) { // fn#72350, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9444:806, offset: 0x01d4307c, size: 65 bytes, params: 3, frame: 13
const value2 = undefined;
const value3 = (require(9260) /* metro dependency 9260: libdave */).serializeKey(a1);
const property = env1_8[a0];
return property == null ? value2 : property[value3];
}
function value_72352() { // fn#72352, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9444:994, offset: 0x01d430dc, size: 41 bytes, params: 1, frame: 12
return (importDefault(21) /* metro dependency 21: SnowflakeUtils */).keys(env1_8);
}
@@ -0,0 +1,65 @@
/* Metro module 9298; source: modules/rtc/hooks/useIsEmptyRTCConnection.tsx; dependencies: [1226, 4294, 4395, 566, 2] */
function _fun72687(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#72687, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9484:6, offset: 0x01d4e75b, size: 170 bytes, params: 8, frame: 19
let env0_0 = require;
const isEmpty_72688 = function(a0, a1) {
return a0.size === 0 || a0.size === 1 && a0.has(a1);
};
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const authenticationStore = importDefault(1226) /* metro dependency 1226: AuthenticationStore */;
const rtcConnectionStore = importDefault(4294) /* metro dependency 4294: RTCConnectionStore */;
const streamRTCConnectionStore = importDefault(4395) /* metro dependency 4395: StreamRTCConnectionStore */;
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/rtc/hooks/useIsEmptyRTCConnection.tsx');
exports.useIsStreamRTCConnectionEmpty = function(a0) {
var env0_0 = a0;
return require(dependencyMap[3]).useStateFromStores([StreamRTCConnectionStore, AuthenticationStore], _fun72690);
};
exports.useIsCallRTCConnectionEmpty = function() {
return require(dependencyMap[3]).useStateFromStores([RTCConnectionStore, AuthenticationStore], _fun72692);
};
}
function useIsStreamRTCConnectionEmpty(a0) { // fn#72689, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9484:299, offset: 0x01d4e837, size: 74 bytes, params: 2, frame: 15
const env0_0 = a0;
return (require(566) /* metro dependency 566: flux */).useStateFromStores([StreamRTCConnectionStore,
AuthenticationStore], _fun72690);
}
function useIsCallRTCConnectionEmpty() { // fn#72691, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9484:500, offset: 0x01d4e8cb, size: 67 bytes, params: 1, frame: 14
return (require(566) /* metro dependency 566: flux */).useStateFromStores([RTCConnectionStore, AuthenticationStore],
_fun72692);
}
function _fun72690() { // fn#72690, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9484:382, offset: 0x01d4e881, size: 74 bytes, params: 1, frame: 14
var r0;
var isEmpty_726882;
if (env0_0 == null) {
return true;
}
const value3 = StreamRTCConnectionStore.getUserIds(env0_0) == null;
if (value3) {
r0 = value3;
} else {
isEmpty_726882 = isEmpty_72688(isEmpty_726882, AuthenticationStore.getId());
r0 = isEmpty_726882;
}
return r0;
}
function _fun72692() { // fn#72692, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9484:580, offset: 0x01d4e90e, size: 54 bytes, params: 1, frame: 14
var r0;
var isEmpty_72688Binding;
let value = environment.__proto__;
const userIds = RTCConnectionStore.getUserIds();
const value3 = userIds == null;
if (value3) {
r0 = value3;
} else {
isEmpty_72688Binding = isEmpty_72688;
value = AuthenticationStore.getId();
value = isEmpty_72688Binding(userIds, value);
r0 = value;
}
return r0;
}
@@ -0,0 +1,306 @@
/* Metro module 9283; source: modules/rtc/hooks/useIsPersistentSecureFramesFingerprint.tsx; dependencies: [5, 57, 31, 4294, 9277, 566, 9275, 2] */
function _fun72611(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#72611, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9469:6, offset: 0x01d4baf5, size: 187 bytes, params: 8, frame: 19
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_2 = importDefault(5) /* metro dependency 5 */;
const env0_3 = importDefault(57) /* metro dependency 57 */;
const env0_4 = importAll(31) /* metro dependency 31 */;
const rtcConnectionStore = importDefault(4294) /* metro dependency 4294: RTCConnectionStore */;
const env0_6 = (require(9277) /* metro dependency 9277: SecureFramesConstants */).SECURE_FRAMES_PUBLIC_KEY_VERSION;
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/rtc/hooks/useIsPersistentSecureFramesFingerprint.tsx');
exports.useIsPersistentSecureFramesFingerprint = useIsPersistentSecureFramesFingerprint;
}
function useIsPersistentSecureFramesFingerprint({userId}) { // fn#72612, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9469:317, offset: 0x01d4bbb0, size: 260 bytes, params: 2, frame: 22
const secureFramesRosterMapEntry = (require(566) /* metro dependency 566: flux */).useStateFromStores([RTCConnectionStore],
function() {
return RTCConnectionStore.getSecureFramesRosterMapEntry(userId);
});
const binding = env0_4;
let useState = binding.useState;
const value2 = Reflect.apply(useState, binding, [true]);
const binding2 = env0_3;
let value = binding2(value2, 2);
const property = value[0];
const env0_2 = value[1];
useState = binding.useState;
value = binding2(Reflect.apply(useState, binding, [false]), 2);
const property2 = value[0];
var env0_3 = value[1];
useState = binding.useState;
value = binding2(Reflect.apply(useState, binding, [false]), 2);
const property3 = value[0];
var env0_4 = value[1];
const useCallback = binding.useCallback;
value = _fun72614();
value = Reflect.apply(useCallback, binding, [value, []]);
binding.useEffect(_fun72618, [secureFramesRosterMapEntry, value, userId]);
return {loading: property, isCurrentUserKeyPersistent: property2, isOtherUserKeyPersistent: property3};
}
function _fun72614() { // fn#72614, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9469:592, offset: 0x01d4bccf, size: 36 bytes, params: 1, frame: 12
const env0_0 = env1_2(_fun72616);
return _fun72617;
}
function _fun72618() { // fn#72618, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9469:858, offset: 0x01d4bde6, size: 70 bytes, params: 1, frame: 14
if (secureFramesRosterMapEntry == null) {
env0_3(false);
env0_4(false);
env0_2(false);
} else {
env0_5(userId, secureFramesRosterMapEntry);
}
}
function* _fun72616(a0, a1) { // fn#72616, original name: ?anon_0_, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9469:612, offset: 0x01d4bcfe, size: 232 bytes, params: 3, frame: 22
var value;
var value2;
var value3;
var binding;
var binding2;
var binding3;
var property;
var value4;
var isCurrentUserPublicKeyMatch;
var isCurrentUserPublicKeyMatch2;
var value5;
var value6;
var binding4;
var binding5;
var value7;
var isPublicKeyMatch;
var isPublicKeyMatch2;
var value8;
var value9;
var error;
exceptionLanding39: while (true) {
value = undefined;
value2 = false;
if (value2) {
return value;
}
value = environment.__proto__.__proto__;
env2_2(true);
value3 = environment.__proto__.__proto__.__proto__;
reducibleJoin4: while (true) {
reduciblePort38: while (true) {
exceptionLanding32: while (true) {
try {
try {
binding = env3_6;
} catch (error) {
break exceptionLanding32;
}
} catch (error) {
break exceptionLanding39;
}
break reducibleJoin4;
}
try {
binding = env2_3;
} catch (error) {
break exceptionLanding39;
}
try {
binding(false);
} catch (error) {
break exceptionLanding39;
}
try {
binding = env2_4;
} catch (error) {
break exceptionLanding39;
}
try {
binding(false);
} catch (error) {
break exceptionLanding39;
}
break reduciblePort38;
}
env2_2(false);
return undefined;
}
try {
try {
binding2 = env3_0;
} catch (error) {
break exceptionLanding32;
}
} catch (error) {
break exceptionLanding39;
}
try {
try {
binding3 = env3_1;
} catch (error) {
break exceptionLanding32;
}
} catch (error) {
break exceptionLanding39;
}
try {
try {
property = binding3[6];
} catch (error) {
break exceptionLanding32;
}
} catch (error) {
break exceptionLanding39;
}
try {
try {
value4 = binding2(property);
} catch (error) {
break exceptionLanding32;
}
} catch (error) {
break exceptionLanding39;
}
try {
try {
isCurrentUserPublicKeyMatch = value4.isCurrentUserPublicKeyMatch;
} catch (error) {
break exceptionLanding32;
}
} catch (error) {
break exceptionLanding39;
}
try {
try {
isCurrentUserPublicKeyMatch2 = Reflect.apply(isCurrentUserPublicKeyMatch, value4, [binding]);
} catch (error) {
break exceptionLanding32;
}
} catch (error) {
break exceptionLanding39;
}
yield isCurrentUserPublicKeyMatch2;
try {
try {
value5 = undefined;
value6 = false;
} catch (error) {
break exceptionLanding32;
}
} catch (error) {
break exceptionLanding39;
}
if (value6) {
env2_2(false);
return value5;
}
try {
try {
binding4 = env3_0;
} catch (error) {
break exceptionLanding32;
}
} catch (error) {
break exceptionLanding39;
}
try {
try {
binding5 = env3_1;
} catch (error) {
break exceptionLanding32;
}
} catch (error) {
break exceptionLanding39;
}
try {
try {
property = binding5[6];
} catch (error) {
break exceptionLanding32;
}
} catch (error) {
break exceptionLanding39;
}
try {
try {
value7 = binding4(property);
} catch (error) {
break exceptionLanding32;
}
} catch (error) {
break exceptionLanding39;
}
try {
try {
isPublicKeyMatch = value7.isPublicKeyMatch;
} catch (error) {
break exceptionLanding32;
}
} catch (error) {
break exceptionLanding39;
}
try {
try {
isPublicKeyMatch2 = Reflect.apply(isPublicKeyMatch, value7, [a0, a1, binding]);
} catch (error) {
break exceptionLanding32;
}
} catch (error) {
break exceptionLanding39;
}
yield isPublicKeyMatch2;
try {
try {
value8 = undefined;
value9 = false;
} catch (error) {
break exceptionLanding32;
}
} catch (error) {
break exceptionLanding39;
}
if (value9) {
env2_2(false);
return value8;
}
try {
try {
binding = env2_3;
} catch (error) {
break exceptionLanding32;
}
} catch (error) {
break exceptionLanding39;
}
try {
try {
binding(value5);
} catch (error) {
break exceptionLanding32;
}
} catch (error) {
break exceptionLanding39;
}
try {
try {
binding = env2_4;
} catch (error) {
break exceptionLanding32;
}
} catch (error) {
break exceptionLanding39;
}
try {
try {
binding(value8);
} catch (error) {
break exceptionLanding32;
}
} catch (error) {
break exceptionLanding39;
}
env2_2(false);
return undefined;
}
env2_2(false);
throw error;
}
@@ -0,0 +1,60 @@
/* Metro module 9285; source: modules/rtc/hooks/useIsSecureFramesKeyInconsistent.tsx; dependencies: [31, 4294, 4395, 566, 9275, 2] */
function _fun72634(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#72634, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9471:6, offset: 0x01d4c457, size: 166 bytes, params: 8, frame: 20
const env0_0 = require;
const closure = function({userId}) {
return require(dependencyMap[3]).useStateFromStores([RTCConnectionStore, StreamRTCConnectionStore], _fun72636);
};
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_2 = importAll(31) /* metro dependency 31 */;
const rtcConnectionStore = importDefault(4294) /* metro dependency 4294: RTCConnectionStore */;
const streamRTCConnectionStore = importDefault(4395) /* metro dependency 4395: StreamRTCConnectionStore */;
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/rtc/hooks/useIsSecureFramesKeyInconsistent.tsx');
exports.useIsSecureFramesKeyInconsistent = closure;
exports.useAlertIfSecureFramesKeyInconsistent = useAlertIfSecureFramesKeyInconsistent;
}
function useIsSecureFramesKeyInconsistent({userId}) { // fn#72635, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9471:126, offset: 0x01d4c4fd, size: 79 bytes, params: 2, frame: 15
return (require(566) /* metro dependency 566: flux */).useStateFromStores([RTCConnectionStore,
StreamRTCConnectionStore], function() {
return require(dependencyMap[4]).getIsSecureFramesKeyInconsistent(userId, [RTCConnectionStore,
StreamRTCConnectionStore]);
});
}
function useAlertIfSecureFramesKeyInconsistent({channelId, userId, nickname, onAlertOpen}) { // fn#72637, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9471:473, offset: 0x01d4c58e, size: 131 bytes, params: 2, frame: 19
const env0_2 = nickname;
const value2 = useIsSecureFramesKeyInconsistent({userId: userId});
const binding = env0_2;
const env0_5 = binding.useRef(null);
binding.useEffect(_fun72638, [channelId, value2, nickname, onAlertOpen, userId]);
}
function _fun72638() { // fn#72638, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9471:650, offset: 0x01d4c611, size: 122 bytes, params: 1, frame: 16
var clearTimeout;
var binding;
if (env0_4) {
if (env0_5.current == null) {
env0_5.current = global.setTimeout(function() {
onAlertOpen();
require(dependencyMap[4]).showSecureFramesKeyInconsistentAlert({userId: userId, channelId: channelId,
nickname: nickname});
}, 1000);
} else {
clearTimeout = global.clearTimeout;
binding = env0_5;
clearTimeout(binding.current);
binding.current = null;
}
} else {
clearTimeout = global.clearTimeout;
binding = env0_5;
clearTimeout(binding.current);
binding.current = null;
}
const current = env0_5.current;
return function() {
global.clearTimeout(current);
};
}
@@ -0,0 +1,83 @@
/* Metro module 9293; source: modules/rtc/hooks/useIsSecureFramesUIEnabled.tsx; dependencies: [1379, 4294, 9277, 566, 2] */
function _fun72678(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#72678, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9479:6, offset: 0x01d4e3e9, size: 152 bytes, params: 8, frame: 19
let env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const channelStore = importDefault(1379) /* metro dependency 1379: ChannelStore */;
const rtcConnectionStore = importDefault(4294) /* metro dependency 4294: RTCConnectionStore */;
const env0_4 = (require(9277) /* metro dependency 9277: SecureFramesConstants */).END_TO_END_ENCRYPTION_DISABLED;
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/rtc/hooks/useIsSecureFramesUIEnabled.tsx');
exports.useIsSecureFramesUIEnabled = function({channelId}) {
var env0_0 = channelId;
return require(dependencyMap[3]).useStateFromStores([RTCConnectionStore, ChannelStore], _fun72680, [channelId]);
};
}
function useIsSecureFramesUIEnabled({channelId}) { // fn#72679, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9479:268, offset: 0x01d4e481, size: 88 bytes, params: 2, frame: 17
return (require(566) /* metro dependency 566: flux */).useStateFromStores([RTCConnectionStore, ChannelStore],
_fun72680, [channelId]);
}
function _fun72680() { // fn#72680, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9479:360, offset: 0x01d4e4d9, size: 226 bytes, params: 1, frame: 18
var r1;
var r0;
var r7;
var version;
var item3;
var value4;
var channel;
var secureFramesState;
const channelIdBinding = channelId;
const value = environment.__proto__;
const items2 = [RTCConnectionStore];
items2[1] = ChannelStore;
const value2 = undefined;
const iterator = (items2 !== value2 ? items2 : [RTCConnectionStore, ChannelStore])[Symbol.iterator]();
const iterator2 = iterator.next;
let item2 = Reflect.apply(iterator2, iterator, []);
let item = item2.value;
item2 = item2.done ? undefined : iterator;
const value3 = item2 === value2;
const r5 = value3 ? value2 : item;
if (value3) {
r0 = item2;
r1 = value3;
r7 = value2;
} else {
item3 = Reflect.apply(iterator2, item2, []);
item = item3.value;
item3 = item3.done ? undefined : item2;
value4 = item3 === value2;
if (value4) {
r0 = item3;
r1 = value4;
r7 = value2;
} else {
r0 = item3;
r1 = value4;
r7 = item;
}
}
if (!r1) {
r0.return();
}
const value5 = false;
if (channelIdBinding == null) {
r0 = value5;
} else if (r5.getChannelId() !== channelIdBinding) {
r0 = value5;
} else {
channel = r7.getChannel(channelIdBinding);
if (channel == null) {
r0 = value5;
} else if (channel.isGuildStageVoice()) {
r0 = value5;
} else {
secureFramesState = r5.getSecureFramesState();
version = secureFramesState == null ? value2 : secureFramesState.version;
r0 = version != null && version !== END_TO_END_ENCRYPTION_DISABLED;
}
}
return r0;
}
@@ -0,0 +1,74 @@
/* Metro module 9256; source: modules/rtc/hooks/useIsSecureFramesVerified.tsx; dependencies: [1226, 4294, 9257, 9293, 566, 9298, 4285, 2] */
function _fun72302(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#72302, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9441:6, offset: 0x01d41f1e, size: 172 bytes, params: 8, frame: 19
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const authenticationStore = importDefault(1226) /* metro dependency 1226: AuthenticationStore */;
const rtcConnectionStore = importDefault(4294) /* metro dependency 4294: RTCConnectionStore */;
const secureFramesVerifiedStore = importDefault(9257) /* metro dependency 9257: SecureFramesVerifiedStore */;
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/rtc/hooks/useIsSecureFramesVerified.tsx');
exports.useIsUserSecureFramesVerified = useIsUserSecureFramesVerified;
exports.useIsStreamSecureFramesVerified = useIsStreamSecureFramesVerified;
exports.useIsCallSecureFramesVerified = useIsCallSecureFramesVerified;
}
function useIsUserSecureFramesVerified({userId, channelId}) { // fn#72303, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9441:239, offset: 0x01d41fca, size: 138 bytes, params: 2, frame: 20
return (require(566) /* metro dependency 566: flux */).useStateFromStores([SecureFramesVerifiedStore,
AuthenticationStore, RTCConnectionStore], _fun72304,
[(require(9293) /* metro dependency 9293: useIsSecureFramesUIEnabled */).useIsSecureFramesUIEnabled({channelId: channelId}),
userId]);
}
function useIsStreamSecureFramesVerified({streamKey, channelId}) { // fn#72305, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9441:517, offset: 0x01d420ba, size: 162 bytes, params: 2, frame: 20
return (require(566) /* metro dependency 566: flux */).useStateFromStores([SecureFramesVerifiedStore,
AuthenticationStore], _fun72306,
[(require(9298) /* metro dependency 9298: useIsEmptyRTCConnection */).useIsStreamRTCConnectionEmpty(streamKey),
(require(9293) /* metro dependency 9293: useIsSecureFramesUIEnabled */).useIsSecureFramesUIEnabled({channelId: channelId}),
streamKey]);
}
function useIsCallSecureFramesVerified({channelId}) { // fn#72307, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9441:897, offset: 0x01d421d9, size: 139 bytes, params: 2, frame: 19
return (require(566) /* metro dependency 566: flux */).useStateFromStores([SecureFramesVerifiedStore], _fun72308,
[(require(9298) /* metro dependency 9298: useIsEmptyRTCConnection */).useIsCallRTCConnectionEmpty(),
(require(9293) /* metro dependency 9293: useIsSecureFramesUIEnabled */).useIsSecureFramesUIEnabled({channelId: channelId})]);
}
function _fun72304() { // fn#72304, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9441:401, offset: 0x01d42054, size: 102 bytes, params: 1, frame: 13
let r0 = userId != null && env0_1 && RTCConnectionStore.isUserConnected(userId);
r0 = r0 && AuthenticationStore.getId() !== userId && SecureFramesVerifiedStore.isUserVerified(userId);
return r0;
}
function _fun72306() { // fn#72306, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9441:725, offset: 0x01d4215c, size: 125 bytes, params: 1, frame: 14
var value2;
var id;
var moduleValue;
if (env0_1) {
if (env0_2) {
return false;
}
if (streamKey == null) {
return false;
}
value2 = environment.__proto__;
id = AuthenticationStore.getId();
moduleValue = require(4285) /* metro dependency 4285: StreamKeyUtils */;
return moduleValue.decodeStreamKey(streamKey).ownerId !== id && SecureFramesVerifiedStore.isStreamVerified(streamKey);
}
return false;
}
function _fun72308() { // fn#72308, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9441:1086, offset: 0x01d42264, size: 44 bytes, params: 1, frame: 10
const binding = env0_0;
let r0 = binding ? env0_1 : !binding;
let value = !r0;
if (r0) {
r0 = value;
} else {
value = environment.__proto__;
value = SecureFramesVerifiedStore.isCallVerified();
r0 = value;
}
return r0;
}
@@ -0,0 +1,52 @@
/* Metro module 9282; source: modules/rtc/hooks/useReadableSecureFramesFingerprint.tsx; dependencies: [31, 206, 9260, 2] */
function _fun72608(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#72608, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9468:6, offset: 0x01d4b91d, size: 121 bytes, params: 8, frame: 18
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importAll(31) /* metro dependency 31 */;
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/rtc/hooks/useReadableSecureFramesFingerprint.tsx');
exports.useReadableSecureFramesFingerprint = useReadableSecureFramesFingerprint;
}
function useReadableSecureFramesFingerprint({fingerprintBase64, chunkSize, desiredLength}) { // fn#72609, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9468:233, offset: 0x01d4b996, size: 132 bytes, params: 2, frame: 16
const value = env0_3.useMemo(_fun72610, [chunkSize, fingerprintBase64, desiredLength]);
if (fingerprintBase64 != null) {
if (fingerprintBase64 === '') {
return value;
}
if (value == null) {
throw new global.Error('[useReadableSecureFramesCode] Failed to parse base 64 code.');
}
}
return value;
}
function _fun72610() { // fn#72610, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9468:345, offset: 0x01d4ba1a, size: 219 bytes, params: 1, frame: 18
var r1;
const fingerprintBase64Binding = fingerprintBase64;
const value2 = null;
if (value2 == fingerprintBase64Binding) {
return value2;
}
if (fingerprintBase64 === '') {
return value2;
}
const defaultImport = importDefault(206) /* metro dependency 206 */;
const value4 = defaultImport.toByteArray(fingerprintBase64);
const libdaveModule = require(9260) /* metro dependency 9260: libdave */;
const value5 = libdaveModule.generateDisplayableCode(value4, desiredLength, chunkSize);
if (value2 == value5) {
return value2;
}
const RegExp = global.RegExp;
let regExp = new RegExp('.{1,' + chunkSize + '}', 'g');
regExp = value5.match(regExp);
if (value2 == regExp) {
r1 = value2;
} else {
regExp = global.Array.from(regExp);
r1 = regExp;
}
return r1;
}
@@ -0,0 +1,126 @@
/* Metro module 9281; source: modules/rtc/hooks/useSecureFramesPairwiseFingerprint.tsx; dependencies: [5, 57, 31, 1226, 4259, 4294, 9277, 4291, 566, 44, 206, 9260, 2] */
function _fun72593(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#72593, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9467:6, offset: 0x01d4b3eb, size: 245 bytes, params: 8, frame: 19
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importDefault(5) /* metro dependency 5 */;
const env0_4 = importDefault(57) /* metro dependency 57 */;
const env0_5 = importAll(31) /* metro dependency 31 */;
const authenticationStore = importDefault(1226) /* metro dependency 1226: AuthenticationStore */;
const mediaEngineStore = importDefault(4259) /* metro dependency 4259: MediaEngineStore */;
const rtcConnectionStore = importDefault(4294) /* metro dependency 4294: RTCConnectionStore */;
const env0_9 = (require(9277) /* metro dependency 9277: SecureFramesConstants */).SECURE_FRAMES_GENERATE_FINGERPRINT_VERSION;
const env0_10 = (require(4291) /* metro dependency 4291: Constants */).Features;
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/rtc/hooks/useSecureFramesPairwiseFingerprint.tsx');
exports.useSecureFramesPairwiseFingerprint = useSecureFramesPairwiseFingerprint;
}
function useSecureFramesPairwiseFingerprint({userId}) { // fn#72594, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9467:356, offset: 0x01d4b4e0, size: 423 bytes, params: 2, frame: 26
const id = (require(566) /* metro dependency 566: flux */).useStateFromStores([AuthenticationStore], function() {
return AuthenticationStore.getId();
});
(importDefault(44) /* metro dependency 44 */)(id !== userId,
'[useSecureFramesPairwiseFingerprint] Should not pass current user id.');
const binding = env0_5;
let useState = binding.useState;
const value2 = Reflect.apply(useState, binding, [null]);
const binding2 = env0_4;
const value3 = binding2(value2, 2);
const property = value3[0];
const env0_3 = value3[1];
useState = binding.useState;
const value4 = binding2(Reflect.apply(useState, binding, [false]), 2);
const property2 = value4[0];
var env0_5 = value4[1];
const secureFramesRosterMapEntry = (require(566) /* metro dependency 566: flux */).useStateFromStores([RTCConnectionStore],
function() {
return RTCConnectionStore.getSecureFramesRosterMapEntry(userId);
});
const secureFramesRosterMapEntry2 = (require(566) /* metro dependency 566: flux */).useStateFromStores([RTCConnectionStore],
function() {
return RTCConnectionStore.getSecureFramesRosterMapEntry(id);
});
value = binding.useCallback(_fun72598, []);
value = binding.useCallback(_fun72599(), [value]);
const env0_10 = binding.useRef(null);
binding.useEffect(_fun72604, [id, secureFramesRosterMapEntry2, value, userId, secureFramesRosterMapEntry]);
return binding.useMemo(_fun72607, [property, property2, secureFramesRosterMapEntry]);
}
function _fun72598(a0) { // fn#72598, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9467:806, offset: 0x01d4b6bd, size: 64 bytes, params: 2, frame: 14
const binding = env0_3;
const defaultImport = importDefault(206) /* metro dependency 206 */;
binding(defaultImport.fromByteArray(a0));
env0_5(false);
}
function _fun72599() { // fn#72599, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9467:867, offset: 0x01d4b6fd, size: 36 bytes, params: 1, frame: 12
const env0_0 = env1_3(_fun72601);
return _fun72603;
}
function _fun72604() { // fn#72604, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9467:1250, offset: 0x01d4b847, size: 113 bytes, params: 1, frame: 16
if (secureFramesRosterMapEntry != null && secureFramesRosterMapEntry != null && env0_10.current == null) {
env0_5(true);
env0_10.current = global.setTimeout(_fun72605, 0);
}
const env0_0 = env0_10.current;
return function() {
if (current != null) {
global.clearTimeout(current);
}
};
}
function _fun72607() { // fn#72607, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9467:1418, offset: 0x01d4b8fb, size: 34 bytes, params: 1, frame: 3
return {fingerprint: env0_2, userKey: secureFramesRosterMapEntry, loading: env0_4};
}
function* _fun72601(a0, a1, a2, a3) { // fn#72601, original name: ?anon_0_, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9467:887, offset: 0x01d4b72c, size: 236 bytes, params: 5, frame: 23
var environment;
var rTCConnection;
if (true) {
value = environment.__proto__.__proto__.__proto__;
var binding = env3_7;
var supports = binding.supports;
var MLS_PAIRWISE_FINGERPRINTS = env3_10.MLS_PAIRWISE_FINGERPRINTS;
if (Reflect.apply(supports, binding, [MLS_PAIRWISE_FINGERPRINTS])) {
rTCConnection = env3_8.getRTCConnection();
if (rTCConnection != null) {
rTCConnection.getMLSPairwiseFingerprint(env3_9, a2, _fun72602);
}
} else {
binding = env3_0;
var value3 = binding(env3_2[11]);
var generatePairwiseFingerprint = value3.generatePairwiseFingerprint;
binding = env3_9;
var Uint8Array = global.Uint8Array;
var prototype = Uint8Array.prototype;
value = Object.create(prototype, {constructor: {value: Uint8Array}});
var uint8Array = new Uint8Array(a1);
value = uint8Array instanceof Object ? uint8Array : value;
Uint8Array = global.Uint8Array;
prototype = Uint8Array.prototype;
var value4 = Object.create(prototype, {constructor: {value: Uint8Array}});
uint8Array = new Uint8Array(a3);
yield Reflect.apply(generatePairwiseFingerprint, value3, [binding, value, a0,
uint8Array instanceof Object ? uint8Array : value4, a2]);
value = undefined;
if (false) {
return value;
}
RTCConnectionStore(value);
}
}
}
function _fun72605() { // fn#72605, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9467:1319, offset: 0x01d4b8b8, size: 31 bytes, params: 1, frame: 17
return env1_9(id, secureFramesRosterMapEntry, userId, secureFramesRosterMapEntry);
}
function _fun72602(a0) { // fn#72602, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9467:1021, offset: 0x01d4b818, size: 47 bytes, params: 2, frame: 12
const value = environment.__proto__.__proto__.__proto__;
const Uint8Array = global.Uint8Array;
RTCConnectionStore(new Uint8Array(a0));
}
@@ -0,0 +1,69 @@
/* Metro module 14089; source: modules/rtc/hooks/useSecureFramesUserVerifiedKeys.tsx; dependencies: [9259, 566, 22, 2] */
function _fun106745(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#106745, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:14286:6, offset: 0x022e9040, size: 118 bytes, params: 8, frame: 19
let env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const verifiedKeyStore = importDefault(9259) /* metro dependency 9259: VerifiedKeyStore */;
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/rtc/hooks/useSecureFramesUserVerifiedKeys.tsx');
exports.useSecureFramesUserVerifiedKeys = function(a0) {
var env0_0 = a0;
return require(dependencyMap[1]).useStateFromStoresArray([VerifiedKeyStore], _fun106747);
};
}
function useSecureFramesUserVerifiedKeys(a0) { // fn#106746, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:14286:227, offset: 0x022e90b6, size: 67 bytes, params: 2, frame: 14
const env0_0 = a0;
return (require(566) /* metro dependency 566: flux */).useStateFromStoresArray([VerifiedKeyStore], _fun106747);
}
function _fun106747() { // fn#106747, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:14286:315, offset: 0x022e90f9, size: 110 bytes, params: 1, frame: 14
var environment;
let value = environment.__proto__;
const defaultImport = importDefault(22) /* metro dependency 22 */;
const getUserVerifiedKeys = VerifiedKeyStore.getUserVerifiedKeys;
value = defaultImport(Reflect.apply(getUserVerifiedKeys, VerifiedKeyStore, [env0_0]));
value = value.entries();
value = value.map(function(a0) {
var r0;
var r1;
var r3;
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;
var r2 = value2 ? value : item;
if (value2) {
r0 = item2;
r1 = value;
r3 = value2;
} else {
item3 = Reflect.apply(iterator2, item2, []);
item = item3.value;
item3 = item3.done ? undefined : item2;
value3 = item3 === value;
if (value3) {
r0 = item3;
r1 = value;
r3 = value3;
} else {
r0 = item3;
r1 = item;
r3 = value3;
}
}
if (!r3) {
r0.return();
}
return {verifiedKey: r2, timestamp: r1};
});
value = value.sortBy(function(a0) {
return -1 * a0.timestamp;
});
return value.value();
}
@@ -0,0 +1,38 @@
/* Metro module 9287; source: modules/rtc/hooks/useSecureFramesUserVerifiedKeysCount.tsx; dependencies: [31, 9259, 9260, 566, 2] */
function _fun72643(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#72643, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9473:6, offset: 0x01d4c884, size: 133 bytes, params: 8, frame: 18
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_2 = importAll(31) /* metro dependency 31 */;
const verifiedKeyStore = importDefault(9259) /* metro dependency 9259: VerifiedKeyStore */;
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/rtc/hooks/useSecureFramesUserVerifiedKeysCount.tsx');
exports.useSecureFramesUserVerifiedKeysCount = useSecureFramesUserVerifiedKeysCount;
}
function useSecureFramesUserVerifiedKeysCount({userId, keyToOmit}) { // fn#72644, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9473:247, offset: 0x01d4c909, size: 128 bytes, params: 2, frame: 17
return (require(566) /* metro dependency 566: flux */).useStateFromStores([VerifiedKeyStore], _fun72646,
[env0_2.useMemo(_fun72645, [keyToOmit]), userId]);
}
function _fun72645() { // fn#72645, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9473:334, offset: 0x01d4c989, size: 85 bytes, params: 1, frame: 13
if (keyToOmit == null) {
return null;
}
const Uint8Array = global.Uint8Array;
return (require(9260) /* metro dependency 9260: libdave */).serializeKey(new Uint8Array(keyToOmit));
}
function _fun72646() { // fn#72646, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9473:463, offset: 0x01d4c9de, size: 80 bytes, params: 1, frame: 12
var environment;
var length;
let value = environment.__proto__;
value = VerifiedKeyStore.getUserVerifiedKeys(userId);
if (value == null) {
length = 0;
} else {
value = global.Object.keys(value);
length = value.filter(_fun72647).length;
}
return length;
}
@@ -0,0 +1,18 @@
/* Metro module 14087; source: modules/rtc/hooks/useSecureFramesVerifiedUsers.tsx; dependencies: [9259, 566, 2] */
function _fun106728(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#106728, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:14284:6, offset: 0x022e86bf, size: 114 bytes, params: 8, frame: 18
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const verifiedKeyStore = importDefault(9259) /* metro dependency 9259: VerifiedKeyStore */;
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/rtc/hooks/useSecureFramesVerifiedUsers.tsx');
exports.useSecureFramesVerifiedUserIds = function() {
return require(dependencyMap[1]).useStateFromStoresArray([VerifiedKeyStore], _fun106730);
};
}
function useSecureFramesVerifiedUserIds() { // fn#106729, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:14284:223, offset: 0x022e8731, size: 60 bytes, params: 1, frame: 13
return (require(566) /* metro dependency 566: flux */).useStateFromStoresArray([VerifiedKeyStore], function() {
return VerifiedKeyStore.getUserIds();
});
}
@@ -0,0 +1,41 @@
/* Metro module 15465; source: modules/rtc/native/SecureFramesCallVerificationBottomSheet.tsx; dependencies: [31, 4294, 661, 33, 566, 9284, 9212, 9290, 1244, 9275, 2] */
function _fun118382(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#118382, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15662:6, offset: 0x024d9c68, size: 180 bytes, params: 8, frame: 19
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importAll(31) /* metro dependency 31 */;
const rtcConnectionStore = importDefault(4294) /* metro dependency 4294: RTCConnectionStore */;
const env0_5 = (require(661) /* metro dependency 661: Constants */).AnalyticsSections;
const env0_6 = (require(33) /* metro dependency 33 */).jsx;
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/rtc/native/SecureFramesCallVerificationBottomSheet.tsx');
exports.default = SecureFramesCallVerificationBottomSheet;
}
function SecureFramesCallVerificationBottomSheet({channelId}) { // fn#118383, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15662:265, offset: 0x024d9d1c, size: 322 bytes, params: 2, frame: 22
var object4;
const value2 = (require(566) /* metro dependency 566: flux */).useStateFromStores([RTCConnectionStore], _fun118384);
const value3 = env0_3.useCallback(function(a0) {
require(dependencyMap[5]).trackE2EECallVerificationShareClicked({channelId: channelId});
require(dependencyMap[6]).showShareActionSheet({message: a0},
AnalyticsSections.SECURE_FRAMES_STREAM_BOTTOM_SHEET);
}, [channelId]);
const secureFramesVerificationBottomSheet = importDefault(9290) /* metro dependency 9290: SecureFramesVerificationBottomSheet */;
object4 = {};
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
object4.title = intl.string((require(1244) /* metro dependency 1244: indexNative */).t.cTQI5t);
object4.subtitle = intl.string((require(1244) /* metro dependency 1244: indexNative */).t['MPp7+C']);
const format = intl.format;
const wKxADe = (require(1244) /* metro dependency 1244: indexNative */).t.wKxADe;
const object3 = {};
object3.helpArticle = (require(9275) /* metro dependency 9275: SecureFramesUtils */).getSecureFramesHelpdeskArticle();
object4.footer = Reflect.apply(format, intl, [wKxADe, object3]);
object4.epochAuthenticator = value2;
object4.onShareClick = value3;
return ((Component) => <Component {...object4} />)(secureFramesVerificationBottomSheet);
}
function _fun118384() { // fn#118384, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15662:367, offset: 0x024d9e5e, size: 36 bytes, params: 1, frame: 10
const value = environment.__proto__;
return RTCConnectionStore.getSecureFramesState()?.epochAuthenticator;
}
@@ -0,0 +1,137 @@
/* Metro module 9288; source: modules/rtc/native/SecureFramesCode.tsx; dependencies: [31, 27, 482, 33, 4501, 697, 4573, 2] */
function _fun72648(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#72648, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9474:6, offset: 0x01d4ca2e, size: 522 bytes, params: 8, frame: 22
var object2;
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_2 = importAll(31) /* metro dependency 31 */;
let value = require(27) /* metro dependency 27 */;
const env0_3 = value.ActivityIndicator;
const env0_4 = value.View;
const Fonts = (require(482) /* metro dependency 482: Constants */).Fonts;
value = require(33) /* metro dependency 33 */;
const env0_5 = value.jsx;
const env0_6 = value.jsxs;
const env0_7 = value.Fragment;
value = require(4501) /* metro dependency 4501: createStyles */;
const createStyles = value.createStyles;
object2 = {};
const CODE_NORMAL = Fonts.CODE_NORMAL;
object2.codeText = {fontFamily: CODE_NORMAL};
object2.row = {'flexDirection': 'row', 'justifyContent': 'space-around', 'paddingVertical': 8};
let BORDER_SUBTLE = (importDefault(697) /* metro dependency 697: native */).colors.BORDER_SUBTLE;
object2.divider = {height: 1, backgroundColor: BORDER_SUBTLE};
const object3 = {'backgroundColor': null, 'borderTopRightRadius': null, 'borderTopLeftRadius': null,
'paddingVertical': 10, 'paddingHorizontal': 16, 'justifyContent': 'space-between', 'alignItems': 'center',
'flexDirection': 'row'};
const BACKGROUND_BASE_LOWEST = (importDefault(697) /* metro dependency 697: native */).colors.BACKGROUND_BASE_LOWEST;
object3.backgroundColor = BACKGROUND_BASE_LOWEST;
object3.borderTopRightRadius = (importDefault(697) /* metro dependency 697: native */).radii.lg;
object3.borderTopLeftRadius = (importDefault(697) /* metro dependency 697: native */).radii.lg;
object2.codeHeader = object3;
const object6 = {'backgroundColor': null, 'paddingVertical': 8, 'paddingHorizontal': 16};
BORDER_SUBTLE = (importDefault(697) /* metro dependency 697: native */).colors.BORDER_SUBTLE;
object6.backgroundColor = BORDER_SUBTLE;
object6.borderBottomRightRadius = (importDefault(697) /* metro dependency 697: native */).radii.lg;
object6.borderBottomLeftRadius = (importDefault(697) /* metro dependency 697: native */).radii.lg;
object2.code = object6;
object2.loading = {minHeight: 126};
const env0_8 = Reflect.apply(createStyles, value, [object2]);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/rtc/native/SecureFramesCode.tsx');
exports.default = SecureFramesCode;
}
function SecureFramesCodeGrid({chunks, columns}) { // fn#72649, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9474:852, offset: 0x01d4cc38, size: 119 bytes, params: 2, frame: 17
return (
<>
{useStyles().useMemo(function() {
var r1;
var r7;
var items2;
var value4;
var value5;
var value6;
var items = [];
var Math = global.Math;
var value2 = Math.ceil(chunks.length / columns);
var value3 = 0;
if (value3 < value2) {
r1 = value3;
reducibleLoop1: while (true) {
items2 = [];
columnsBinding = columns;
if (value3 < columnsBinding) {
r7 = value3;
reducibleLoop2: while (true) {
columnsBinding = columns;
value4 = r1 * columnsBinding + r7;
items2.push(chunks[value4]);
value5 = typeof r7 === 'bigint' ? r7 + 1n : +r7 + 1;
if (value5 < columnsBinding) {
r7 = value5;
continue reducibleLoop2;
}
break reducibleLoop2;
}
}
items.push(items2);
value6 = typeof r1 === 'bigint' ? r1 + 1n : +r1 + 1;
if (value6 < value2) {
r1 = value6;
continue reducibleLoop1;
}
break reducibleLoop1;
}
}
return items;
}, [chunks, columns]).map(_fun72651)}
</>
);
}
function SecureFramesCode({title, trailing, chunks, columns}) { // fn#72653, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9474:1408, offset: 0x01d4ce63, size: 253 bytes, params: 2, frame: 25
const styles = useStyles();
const jsxRuntimeEnv0_7Binding = jsxRuntimeEnv0_7;
const Text = (require(4573) /* metro dependency 4573: Text */).Text;
return (
<>
<View style={styles.codeHeader}>
<Text color="mobile-text-heading-primary" variant="heading-md/semibold">
{title}
</Text>
{trailing}
</View>
<View style={styles.code}>
{chunks != null ? <SecureFramesCodeGrid chunks={chunks} columns={columns} /> : <ActivityIndicator style={styles.loading} />}
</View>
</>
);
}
function _fun72651(a0, a1) { // fn#72651, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9474:1089, offset: 0x01d4cd2e, size: 195 bytes, params: 3, frame: 22
var environment;
const value = environment.__proto__;
return (
<View key={'' + a0.join(' ') + '-' + a1}>
<View style={styles.row}>
{a0.map(_fun72652)}
</View>
{a1 < env0_3.length - 1 && <View style={styles.divider} />}
</View>
);
}
function _fun72652(a0, a1) { // fn#72652, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9474:1144, offset: 0x01d4cdf1, size: 114 bytes, params: 3, frame: 19
const Text = (require(4573) /* metro dependency 4573: Text */).Text;
return (
<Text
style={styles.codeText}
variant="text-md/normal"
color="text-default"
key={'' + a0 + '-' + a1}
>
{a0}
</Text>
);
}
@@ -0,0 +1,36 @@
/* Metro module 9291; source: modules/rtc/native/SecureFramesCopyIcon.tsx; dependencies: [31, 33, 3856, 6797, 8341, 4060, 1244, 2] */
function _fun72662(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#72662, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9477:6, offset: 0x01d4d790, size: 135 bytes, params: 8, frame: 18
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_2 = importAll(31) /* metro dependency 31 */;
const env0_3 = (require(33) /* metro dependency 33 */).jsx;
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/rtc/native/SecureFramesCopyIcon.tsx');
exports.default = SecureFramesCopyIcon;
}
function SecureFramesCopyIcon({chunks}) { // fn#72663, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9477:207, offset: 0x01d4d817, size: 225 bytes, params: 2, frame: 20
var object2;
const binding = env0_2;
const useMemo = binding.useMemo;
const value3 = binding.useCallback(_fun72665, [Reflect.apply(useMemo, binding, [function() {
return chunks.join(' ');
}, [chunks]])]);
const IconButton = (require(8341) /* metro dependency 8341: IconButtonNative */).IconButton;
object2 = {};
const CopyIcon = (require(4060) /* metro dependency 4060: CopyIcon */).CopyIcon;
object2.icon = <CopyIcon size="sm" />;
object2.variant = 'secondary';
object2.onPress = value3;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
object2.accessibilityLabel = intl.string((require(1244) /* metro dependency 1244: indexNative */).t.e7GWjQ);
object2.size = 'sm';
return <IconButton {...object2} />;
}
function _fun72665() { // fn#72665, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9477:305, offset: 0x01d4d911, size: 67 bytes, params: 1, frame: 13
const value = environment.__proto__;
(require(3856) /* metro dependency 3856: ToastUtils */).presentCopiedToClipboard();
(require(6797) /* metro dependency 6797: ClipboardUtilsNative */).copy(env0_1);
}
@@ -0,0 +1,33 @@
/* Metro module 9286; source: modules/rtc/native/SecureFramesExistingVerificationsHelpMessage.tsx; dependencies: [27, 33, 4501, 9287, 1305, 1244, 2] */
function _fun72641(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#72641, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9472:6, offset: 0x01d4c6d7, size: 181 bytes, params: 8, frame: 20
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_2 = (require(27) /* metro dependency 27 */).View;
const env0_3 = (require(33) /* metro dependency 33 */).jsx;
const env0_4 = (require(4501) /* metro dependency 4501: createStyles */).createStyles({container: {width: '100%'}});
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/rtc/native/SecureFramesExistingVerificationsHelpMessage.tsx');
exports.default = SecureFramesExistingVerificationsHelpMessage;
}
function SecureFramesExistingVerificationsHelpMessage({style, userId, userKey}) { // fn#72642, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9472:182, offset: 0x01d4c78c, size: 248 bytes, params: 2, frame: 22
var r0;
var HelpMessage;
var intl;
const styles = useStyles();
const value2 = (require(9287) /* metro dependency 9287: useSecureFramesUserVerifiedKeysCount */).useSecureFramesUserVerifiedKeysCount({userId: userId,
keyToOmit: userKey});
if (value2 === 0) {
r0 = null;
} else {
var viewBindingProps = {style: [styles.container, style]};
HelpMessage = (require(1305) /* metro dependency 1305: native */).HelpMessage;
var helpMessageProps = {messageType: (require(1305) /* metro dependency 1305: native */).HelpMessageTypes.INFO};
intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
r0 = <View {...viewBindingProps}><HelpMessage {...helpMessageProps}>{intl.format((require(1244) /* metro dependency 1244: indexNative */).t.uZDkz0,
{count: value2})}</HelpMessage></View>;
}
return r0;
}
@@ -0,0 +1,44 @@
/* Metro module 9289; source: modules/rtc/native/SecureFramesStreamVerificationBottomSheet.tsx; dependencies: [31, 4395, 661, 33, 566, 9284, 9212, 9290, 1244, 9275, 2] */
function _fun72654(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#72654, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9475:6, offset: 0x01d4cf60, size: 180 bytes, params: 8, frame: 19
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importAll(31) /* metro dependency 31 */;
const streamRTCConnectionStore = importDefault(4395) /* metro dependency 4395: StreamRTCConnectionStore */;
const env0_5 = (require(661) /* metro dependency 661: Constants */).AnalyticsSections;
const env0_6 = (require(33) /* metro dependency 33 */).jsx;
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/rtc/native/SecureFramesStreamVerificationBottomSheet.tsx');
exports.default = SecureFramesStreamVerificationBottomSheet;
}
function SecureFramesStreamVerificationBottomSheet({channelId, streamKey}) { // fn#72655, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9475:267, offset: 0x01d4d014, size: 332 bytes, params: 2, frame: 22
var object4;
const value2 = (require(566) /* metro dependency 566: flux */).useStateFromStores([StreamRTCConnectionStore],
_fun72656);
const value3 = env0_3.useCallback(function(a0) {
require(dependencyMap[5]).trackE2EEStreamVerificationShareClicked({channelId: channelId});
require(dependencyMap[6]).showShareActionSheet({message: a0},
AnalyticsSections.SECURE_FRAMES_STREAM_BOTTOM_SHEET);
}, [channelId]);
const secureFramesVerificationBottomSheet = importDefault(9290) /* metro dependency 9290: SecureFramesVerificationBottomSheet */;
object4 = {};
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
const string = intl.string;
const QogHld = (require(1244) /* metro dependency 1244: indexNative */).t.QogHld;
object4.title = Reflect.apply(string, intl, [QogHld]);
object4.subtitle = intl.string((require(1244) /* metro dependency 1244: indexNative */).t.qODBkW);
const format = intl.format;
const property = (require(1244) /* metro dependency 1244: indexNative */).t['H3+ktv'];
const object3 = {};
object3.helpArticle = (require(9275) /* metro dependency 9275: SecureFramesUtils */).getSecureFramesHelpdeskArticle();
object4.footer = Reflect.apply(format, intl, [property, object3]);
object4.epochAuthenticator = value2;
object4.onShareClick = value3;
return ((Component) => <Component {...object4} />)(secureFramesVerificationBottomSheet);
}
function _fun72656() { // fn#72656, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9475:383, offset: 0x01d4d160, size: 44 bytes, params: 1, frame: 11
const value = environment.__proto__;
return StreamRTCConnectionStore.getSecureFramesState(streamKey)?.epochAuthenticator;
}
@@ -0,0 +1,178 @@
/* Metro module 9292; source: modules/rtc/native/SecureFramesUserVerificationBottomSheet.tsx; dependencies: [57, 31, 27, 4294, 1878, 9277, 661, 33, 4501, 697, 9281, 9293, 9256, 9283, 566, 9285, 8061, 4617, 9275, 9284, 9294, 9296, 4080, 3857, 4073, 1244, 6275, 6758, 6806, 4573, 9286, 4572, 4578, 2] */
function _fun72666(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#72666, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9478:6, offset: 0x01d4d954, size: 453 bytes, params: 8, frame: 22
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importDefault(57) /* metro dependency 57 */;
const env0_4 = importAll(31) /* metro dependency 31 */;
let value = require(27) /* metro dependency 27 */;
const env0_5 = value.ActivityIndicator;
const env0_6 = value.View;
const rtcConnectionStore = importDefault(4294) /* metro dependency 4294: RTCConnectionStore */;
const userStore = importDefault(1878) /* metro dependency 1878: UserStore */;
value = require(9277) /* metro dependency 9277: SecureFramesConstants */;
const env0_9 = value.AnalyticsSecureFramesUserVerification;
const env0_10 = value.SECURE_FRAMES_PUBLIC_KEY_VERSION;
const env0_11 = value.USER_VERIFIED_TOAST_KEY;
const env0_12 = (require(661) /* metro dependency 661: Constants */).AnalyticsLocations;
value = require(33) /* metro dependency 33 */;
const env0_13 = value.jsx;
const env0_14 = value.jsxs;
value = require(4501) /* metro dependency 4501: createStyles */;
const createStyles = value.createStyles;
const BACKGROUND_MOD_STRONG = (importDefault(697) /* metro dependency 697: native */).colors.BACKGROUND_MOD_STRONG;
const env0_15 = Reflect.apply(createStyles, value, [{iconContainer: {'height': 80, 'width': 80, 'borderRadius': 40,
'alignItems': 'center', 'justifyContent': 'center', 'backgroundColor': null, 'marginBottom': 16,
backgroundColor: BACKGROUND_MOD_STRONG}, icon: {'height': 48, 'width': 48}, content: {'padding': 16,
'justifyContent': 'center', 'alignItems': 'center'}, subtitle: {'textAlign': 'center', 'marginTop': 8,
'marginBottom': 40}, buttons: {marginTop: 40}, helpMessage: {marginTop: 16}}]);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/rtc/native/SecureFramesUserVerificationBottomSheet.tsx');
exports.default = SecureFramesUserVerificationBottomSheet;
}
function SecureFramesUserVerificationBottomSheet({userId, channelId, guildId, fingerprint}) { // fn#72667, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9478:745, offset: 0x01d4db19, size: 1325 bytes, params: 2, frame: 35
var object2;
const styles = useStyles();
const env0_3 = styles;
const value2 = (require(9281) /* metro dependency 9281: useSecureFramesPairwiseFingerprint */).useSecureFramesPairwiseFingerprint({userId: userId});
const userKey = value2.userKey;
const env0_4 = userKey;
const fingerprint2 = value2.fingerprint;
const loading = value2.loading;
const value3 = (require(9293) /* metro dependency 9293: useIsSecureFramesUIEnabled */).useIsSecureFramesUIEnabled({channelId: channelId});
const value4 = (require(9256) /* metro dependency 9256: useIsSecureFramesVerified */).useIsUserSecureFramesVerified({userId: userId,
channelId: channelId});
const value5 = (require(9283) /* metro dependency 9283: useIsPersistentSecureFramesFingerprint */).useIsPersistentSecureFramesFingerprint({userId: userId});
const isOtherUserKeyPersistent = value5.isOtherUserKeyPersistent;
const loading2 = value5.loading;
const value6 = (require(566) /* metro dependency 566: flux */).useStateFromStores([RTCConnectionStore], function() {
return RTCConnectionStore.isConnected();
});
const value7 = (require(566) /* metro dependency 566: flux */).useStateFromStores([RTCConnectionStore], function() {
return RTCConnectionStore.isUserConnected(userId);
});
const value8 = (require(9285) /* metro dependency 9285: useIsSecureFramesKeyInconsistent */).useIsSecureFramesKeyInconsistent({userId: userId});
const binding = env0_4;
let useMemo = binding.useMemo;
const value9 = Reflect.apply(useMemo, binding, [_fun72670, [fingerprint, channelId, fingerprint2, value6, value8,
value7, value3, value4]]);
binding.useEffect(_fun72671, [userId]);
const user = (require(566) /* metro dependency 566: flux */).useStateFromStores([UserStore], function() {
return UserStore.getUser(userId);
});
const value10 = (importDefault(4617) /* metro dependency 4617: NicknameUtils */).useName(guildId, channelId, user);
useMemo = binding.useMemo;
const value12 = env0_3(Reflect.apply(useMemo, binding, [_fun72673, [value9, value10]]), 2);
const property = value12[0];
const property2 = value12[1];
binding.useEffect(_fun72674, [channelId, value9, userId]);
const value13 = binding.useMemo(_fun72675, [value9, styles.icon]);
const value14 = binding.useCallback(_fun72676, []);
const value15 = binding.useCallback(_fun72677, [channelId, userKey, isOtherUserKeyPersistent, value10, userId]);
const BottomSheet = (require(6275) /* metro dependency 6275: BottomSheetNative */).BottomSheet;
object2 = {startExpanded: true};
const BottomSheetTitleHeader = (require(6758) /* metro dependency 6758: BottomSheetTitleHeaderNative */).BottomSheetTitleHeader;
const ActionSheetCloseButton = (require(6806) /* metro dependency 6806: ActionSheetCloseButtonNative */).ActionSheetCloseButton;
object2.header = <BottomSheetTitleHeader title={null} leading={<ActionSheetCloseButton onPress={value14} />} />;
const items2 = [<View style={styles.iconContainer}>{loading2 || loading ? <ActivityIndicator /> : fingerprint2 != null ? value13 : <ActivityIndicator />}</View>];
const Text = (require(4573) /* metro dependency 4573: Text */).Text;
items2[1] = <Text variant="heading-xl/bold" color="mobile-text-heading-primary">{property}</Text>;
items2[2] = <Text style={styles.subtitle} variant="text-md/medium" color="text-default">{property2}</Text>;
items2[3] = ((Component) => <Component style={styles.helpMessage} userId={userId} userKey={userKey} />)(importDefault(9286) /* metro dependency 9286: SecureFramesExistingVerificationsHelpMessage */);
const Stack = (require(4572) /* metro dependency 4572: StackNative */).Stack;
const Button = (require(4578) /* metro dependency 4578: ButtonNative */).Button;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
items2[4] = <Stack spacing={12} style={styles.buttons}><Button variant="primary" onPress={value15} text={intl.string((require(1244) /* metro dependency 1244: indexNative */).t['0tvNAn'])} disabled={loading2 || value9 !== AnalyticsSecureFramesUserVerification.MATCH} /><Button variant="secondary" onPress={value14} text={intl.string((require(1244) /* metro dependency 1244: indexNative */).t['ETE/oC'])} /></Stack>;
return (
<BottomSheet {...object2}>
<View style={styles.content}>
{items2}
</View>
</BottomSheet>
);
}
function _fun72670() { // fn#72670, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9478:1359, offset: 0x01d4e074, size: 177 bytes, params: 1, frame: 5
return channelId == null ? AnalyticsSecureFramesUserVerification.CURRENT_USER_DISCONNECTED : env0_9 ? env0_10 ? env0_6 ? env0_7 ? AnalyticsSecureFramesUserVerification.OTHER_USER_ALREADY_VERIFIED : env0_11 ? AnalyticsSecureFramesUserVerification.OTHER_USER_INCONSISTENT_KEYS : fingerprint !== fingerprint ? AnalyticsSecureFramesUserVerification.FINGERPRINT_MISMATCH : AnalyticsSecureFramesUserVerification.MATCH : AnalyticsSecureFramesUserVerification.UNABLE_TO_VERIFY : AnalyticsSecureFramesUserVerification.OTHER_USER_DISCONNECTED : AnalyticsSecureFramesUserVerification.CURRENT_USER_DISCONNECTED;
}
function _fun72671() { // fn#72671, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9478:1586, offset: 0x01d4e125, size: 45 bytes, params: 1, frame: 12
const value = environment.__proto__;
(require(8061) /* metro dependency 8061: UserActionCreators */).getUser(userId);
}
function _fun72673() { // fn#72673, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9478:1715, offset: 0x01d4e152, size: 50 bytes, params: 1, frame: 13
const value = environment.__proto__;
return (require(9275) /* metro dependency 9275: SecureFramesUtils */).getUserVerifyStateText(env0_12, env0_13);
}
function _fun72674() { // fn#72674, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9478:1800, offset: 0x01d4e184, size: 113 bytes, params: 1, frame: 15
const binding = env0_12;
const OTHER_USER_ALREADY_VERIFIED = AnalyticsSecureFramesUserVerification.OTHER_USER_ALREADY_VERIFIED;
if (OTHER_USER_ALREADY_VERIFIED !== binding) {
var MATCH = AnalyticsSecureFramesUserVerification.MATCH;
if (MATCH === binding) {
return undefined;
}
(require(9284) /* metro dependency 9284: SecureFramesTracking */).trackE2EEUserVerificationFailed({channelId: channelId,
userId: userId, reason: env0_12, keyVersion: SECURE_FRAMES_PUBLIC_KEY_VERSION});
}
}
function _fun72675() { // fn#72675, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9478:1994, offset: 0x01d4e1f5, size: 210 bytes, params: 1, frame: 18
const CheckmarkLargeBoldIcon = (require(9294) /* metro dependency 9294: CheckmarkLargeBoldIcon */).CheckmarkLargeBoldIcon;
const binding = env0_12;
const OTHER_USER_ALREADY_VERIFIED = AnalyticsSecureFramesUserVerification.OTHER_USER_ALREADY_VERIFIED;
if (OTHER_USER_ALREADY_VERIFIED === binding) {
return (
<CheckmarkLargeBoldIcon
style={styles.icon}
color={(importDefault(697) /* metro dependency 697: native */).colors.TEXT_FEEDBACK_POSITIVE}
/>
);
}
const MATCH = AnalyticsSecureFramesUserVerification.MATCH;
if (MATCH === binding) {
return (
<CheckmarkLargeBoldIcon
style={styles.icon}
color={(importDefault(697) /* metro dependency 697: native */).colors.TEXT_FEEDBACK_POSITIVE}
/>
);
}
const XLargeBoldIcon = (require(9296) /* metro dependency 9296: XLargeBoldIcon */).XLargeBoldIcon;
const TEXT_FEEDBACK_CRITICAL = (importDefault(697) /* metro dependency 697: native */).colors.TEXT_FEEDBACK_CRITICAL;
return <XLargeBoldIcon style={styles.icon} color={TEXT_FEEDBACK_CRITICAL} />;
}
function _fun72676() { // fn#72676, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9478:2291, offset: 0x01d4e2c7, size: 37 bytes, params: 1, frame: 11
const value = environment.__proto__;
(importDefault(4080) /* metro dependency 4080: ActionSheetActionCreators */).hideActionSheet();
}
function _fun72677() { // fn#72677, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9478:2346, offset: 0x01d4e2ec, size: 253 bytes, params: 1, frame: 24
var value4;
var moduleValue;
var defaultImport2;
var open;
var object2;
var intl;
if (channelId != null && userKey != null) {
value4 = environment.__proto__;
moduleValue = require(9275) /* metro dependency 9275: SecureFramesUtils */;
moduleValue.addVerification(userId, userKey, isOtherUserKeyPersistent, channelId, AnalyticsLocations.DEEP_LINK);
(importDefault(4080) /* metro dependency 4080: ActionSheetActionCreators */).hideActionSheet();
defaultImport2 = importDefault(3857) /* metro dependency 3857: ToastActionCreators */;
open = defaultImport2.open;
object2 = {};
object2.key = USER_VERIFIED_TOAST_KEY;
object2.iconColor = 'text-feedback-positive';
object2.IconComponent = (require(4073) /* metro dependency 4073: CircleCheckIcon */).CircleCheckIcon;
intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
object2.content = intl.formatToPlainString((require(1244) /* metro dependency 1244: indexNative */).t.Gwu134,
{username: env0_13});
Reflect.apply(open, defaultImport2, [object2]);
}
}
@@ -0,0 +1,232 @@
/* Metro module 9280; source: modules/rtc/native/SecureFramesUserVerificationModal.tsx; dependencies: [57, 31, 27, 1379, 1878, 9277, 661, 1309, 33, 4501, 697, 566, 4617, 9281, 9282, 9256, 9283, 9275, 5080, 3857, 4073, 1244, 4248, 9284, 9212, 6771, 8743, 9285, 1305, 6618, 5278, 5284, 4573, 4572, 9286, 9288, 4578, 2] */
function _fun72582(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#72582, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9466:6, offset: 0x01d4a679, size: 499 bytes, params: 8, frame: 22
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importDefault(57) /* metro dependency 57 */;
const env0_4 = importAll(31) /* metro dependency 31 */;
let value = require(27) /* metro dependency 27 */;
const env0_5 = value.ActivityIndicator;
const env0_6 = value.View;
const channelStore = importDefault(1379) /* metro dependency 1379: ChannelStore */;
const userStore = importDefault(1878) /* metro dependency 1878: UserStore */;
value = require(9277) /* metro dependency 9277: SecureFramesConstants */;
const env0_9 = value.USER_VERIFICATION_CHUNK_SIZE;
const env0_10 = value.USER_VERIFICATION_LENGTH;
const env0_11 = value.USER_VERIFICATION_NUM_COLUMNS;
const env0_12 = value.USER_VERIFIED_TOAST_KEY;
value = require(661) /* metro dependency 661: Constants */;
const env0_13 = value.AnalyticsLocations;
const env0_14 = value.AnalyticsSections;
const env0_15 = (require(1309) /* metro dependency 1309: FormConstants */).ANDROID_FOREGROUND_RIPPLE;
value = require(33) /* metro dependency 33 */;
const env0_16 = value.jsx;
const env0_17 = value.jsxs;
value = require(4501) /* metro dependency 4501: createStyles */;
const createStyles = value.createStyles;
const BACKGROUND_BASE_LOW = (importDefault(697) /* metro dependency 697: native */).colors.BACKGROUND_BASE_LOW;
const env0_18 = Reflect.apply(createStyles, value, [{container: {'flex': 1, 'padding': 16,
'flexDirection': 'column', backgroundColor: BACKGROUND_BASE_LOW}, footer: {'flex': 1, 'gap': 16,
'justifyContent': 'flex-end'}, footerText: {textAlign: 'center'}, header: {'height': 56, 'flexDirection': 'row',
'alignItems': 'center', 'justifyContent': 'space-between'}, subtitle: {textAlign: 'center'},
code: {marginTop: 24}, helpMessage: {marginBottom: 16}}]);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/rtc/native/SecureFramesUserVerificationModal.tsx');
exports.default = SecureFramesUserVerificationModal;
}
function SecureFramesUserVerificationModal({userId, channelId}) { // fn#72583, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9466:912, offset: 0x01d4a86c, size: 1954 bytes, params: 2, frame: 44
var object3;
var object2;
var RDE0Sc;
const Text = (require(4573) /* metro dependency 4573: Text */).Text;
const styles = useStyles();
const user = (require(566) /* metro dependency 566: flux */).useStateFromStores([UserStore], function() {
return UserStore.getUser(userId);
});
const value3 = (importDefault(4617) /* metro dependency 4617: NicknameUtils */).useName((require(566) /* metro dependency 566: flux */).useStateFromStores([ChannelStore],
_fun72585), null, user);
const value4 = (require(9281) /* metro dependency 9281: useSecureFramesPairwiseFingerprint */).useSecureFramesPairwiseFingerprint({userId: userId});
const fingerprint = value4.fingerprint;
const env0_3 = fingerprint;
const userKey = value4.userKey;
const env0_4 = userKey;
const value5 = (require(9282) /* metro dependency 9282: useReadableSecureFramesFingerprint */).useReadableSecureFramesFingerprint({fingerprintBase64: fingerprint,
chunkSize: USER_VERIFICATION_CHUNK_SIZE, desiredLength: USER_VERIFICATION_LENGTH});
const value6 = (require(9256) /* metro dependency 9256: useIsSecureFramesVerified */).useIsUserSecureFramesVerified({userId: userId,
channelId: channelId});
const {isCurrentUserKeyPersistent, isOtherUserKeyPersistent,
loading} = (require(9283) /* metro dependency 9283: useIsPersistentSecureFramesFingerprint */).useIsPersistentSecureFramesFingerprint({userId: userId});
const binding = env0_4;
const value8 = binding.useCallback(_fun72586, [channelId, userKey, isOtherUserKeyPersistent, value3, userId]);
const value9 = binding.useCallback(_fun72587, [userKey, isOtherUserKeyPersistent, userId]);
const secureFramesDeeplinkExperimentModule = require(4248) /* metro dependency 4248: SecureFramesDeeplinkExperiment */;
const useSecureFramesDeeplinkExperiment = secureFramesDeeplinkExperimentModule.useSecureFramesDeeplinkExperiment;
const value10 = binding.useCallback(_fun72588, [channelId, value5, fingerprint,
Reflect.apply(useSecureFramesDeeplinkExperiment, secureFramesDeeplinkExperimentModule,
[{location: 'SecureFramesUserVerificationModal'}]).enabled, userId]);
const value11 = binding.useCallback(_fun72589,
[(importDefault(6771) /* metro dependency 6771: useAnalyticsLocations */)().analyticsLocations, channelId,
userId]);
const useIsSecureFramesKeyInconsistentModule = require(9285) /* metro dependency 9285: useIsSecureFramesKeyInconsistent */;
const useAlertIfSecureFramesKeyInconsistent = useIsSecureFramesKeyInconsistentModule.useAlertIfSecureFramesKeyInconsistent;
object3 = {channelId: channelId, userId: userId, nickname: value3};
object3.onAlertOpen = (importDefault(5080) /* metro dependency 5080: ModalActionCreators */).pop;
Reflect.apply(useAlertIfSecureFramesKeyInconsistent, useIsSecureFramesKeyInconsistentModule, [object3]);
const useMemo = binding.useMemo;
const value13 = env0_3(Reflect.apply(useMemo, binding, [_fun72590, [value6]]), 2);
const property = value13[0];
const property2 = value13[1];
const value14 = binding.useMemo(_fun72591, [isCurrentUserKeyPersistent, isOtherUserKeyPersistent, value3]);
binding.useEffect(_fun72592, [channelId, userId]);
const SafeAreaPaddingView = (require(6618) /* metro dependency 6618: SafeAreaView */).SafeAreaPaddingView;
const PressableOpacity = (require(5278) /* metro dependency 5278: Pressables */).PressableOpacity;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
let string = intl.string;
const t = (require(1244) /* metro dependency 1244: indexNative */).t;
const cpT0Cq = t.cpT0Cq;
const ArrowLargeLeftIcon = (require(5284) /* metro dependency 5284: ArrowLargeLeftIcon */).ArrowLargeLeftIcon;
const pressableOpacity = <PressableOpacity accessibilityRole="button" accessibilityLabel={Reflect.apply(string,
intl,
[cpT0Cq])} androidRippleConfig={ANDROID_FOREGROUND_RIPPLE} hitSlop={8} onPress={value11}><ArrowLargeLeftIcon size="md" /></PressableOpacity>;
let r7 = fingerprint != null && value5 != null;
if (r7) {
object2 = {accessibilityRole: 'button'};
string = intl.string;
RDE0Sc = t.RDE0Sc;
object2.accessibilityLabel = Reflect.apply(string, intl, [RDE0Sc]);
object2.androidRippleConfig = ANDROID_FOREGROUND_RIPPLE;
object2.hitSlop = 8;
object2.onPress = value10;
string = intl.string;
RDE0Sc = t.RDE0Sc;
r7 = <PressableOpacity {...object2}><Text variant="text-md/semibold" color="text-brand">{Reflect.apply(string,
intl,
[RDE0Sc])}</Text></PressableOpacity>;
}
const items2 = [<View style={styles.header}>{pressableOpacity}{r7}</View>];
const Stack = (require(4572) /* metro dependency 4572: StackNative */).Stack;
items2[1] = <Stack spacing={8} justify="center" align="center" direction="vertical"><Text variant="heading-xl/bold" color="mobile-text-heading-primary">{intl.string((require(1244) /* metro dependency 1244: indexNative */).t['/WPGnF'])}</Text><Text style={styles.subtitle} variant="text-md/medium" color="text-default">{intl.format((require(1244) /* metro dependency 1244: indexNative */).t.oc2kce,
{username: value3})}</Text></Stack>;
items2[2] = <View style={styles.code}>{((Component) => <Component style={styles.helpMessage} userId={userId} userKey={userKey} />)(importDefault(9286) /* metro dependency 9286: SecureFramesExistingVerificationsHelpMessage */)}{((Component) => <Component title={intl.string((require(1244) /* metro dependency 1244: indexNative */).t['/WPGnF'])} chunks={value5} columns={USER_VERIFICATION_NUM_COLUMNS} trailing={value5 == null ? <ActivityIndicator /> : ((TextBadge) => <TextBadge color={property2} text={property} />)((require(1305) /* metro dependency 1305: native */).TextBadge)} />)(importDefault(9288) /* metro dependency 9288: SecureFramesCode */)}</View>;
const text = <Text style={styles.footerText} variant="text-xs/normal" color="text-default">{value14}</Text>;
const Button = (require(4578) /* metro dependency 4578: ButtonNative */).Button;
const r16 = value5 == null || loading;
const r14 = value6 ? value9 : value8;
string = intl.string;
items2[3] = <View style={styles.footer}>{text}<Button disabled={r16} variant="primary" onPress={r14} text={value6 ? Reflect.apply(string,
intl, [t['Osb+/n']]) : Reflect.apply(string, intl, [t['0tvNAn']])} /></View>;
return (
<SafeAreaPaddingView
top
bottom
style={styles.container}
>
{items2}
</SafeAreaPaddingView>
);
}
function _fun72585() { // fn#72585, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9466:1078, offset: 0x01d4b00e, size: 47 bytes, params: 1, frame: 11
var r0;
let value = environment.__proto__;
value = ChannelStore.getChannel(channelId);
if (value == null) {
r0 = undefined;
} else {
value = value.getGuildId();
r0 = value;
}
return r0;
}
function _fun72586() { // fn#72586, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9466:1575, offset: 0x01d4b03d, size: 239 bytes, params: 1, frame: 24
var value2;
var moduleValue;
var defaultImport2;
var open;
var object2;
var intl;
if (userKey != null) {
value2 = environment.__proto__;
moduleValue = require(9275) /* metro dependency 9275: SecureFramesUtils */;
moduleValue.addVerification(userId, userKey, isOtherUserKeyPersistent, channelId,
AnalyticsLocations.E2EE_USER_VERIFY_MODAL);
(importDefault(5080) /* metro dependency 5080: ModalActionCreators */).pop();
defaultImport2 = importDefault(3857) /* metro dependency 3857: ToastActionCreators */;
open = defaultImport2.open;
object2 = {};
object2.key = USER_VERIFIED_TOAST_KEY;
object2.iconColor = 'text-feedback-positive';
object2.IconComponent = (require(4073) /* metro dependency 4073: CircleCheckIcon */).CircleCheckIcon;
intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
object2.content = intl.formatToPlainString((require(1244) /* metro dependency 1244: indexNative */).t.Gwu134,
{username: env0_2});
Reflect.apply(open, defaultImport2, [object2]);
}
}
function _fun72587() { // fn#72587, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9466:1868, offset: 0x01d4b12c, size: 93 bytes, params: 1, frame: 18
var value2;
var moduleValue;
if (userKey != null) {
value2 = environment.__proto__;
moduleValue = require(9275) /* metro dependency 9275: SecureFramesUtils */;
moduleValue.deleteVerification(userId, userKey, isOtherUserKeyPersistent);
(importDefault(5080) /* metro dependency 5080: ModalActionCreators */).pop();
}
}
function _fun72588() { // fn#72588, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9466:2063, offset: 0x01d4b189, size: 228 bytes, params: 1, frame: 16
var r4;
var value2;
var moduleValue2;
if (fingerprint != null) {
if (env0_5 != null) {
value2 = environment.__proto__;
(importDefault(5080) /* metro dependency 5080: ModalActionCreators */).pop();
(require(9284) /* metro dependency 9284: SecureFramesTracking */).trackE2EEUserVerificationShareClicked({userId: userId,
channelId: channelId});
if (enabled) {
moduleValue2 = require(9275) /* metro dependency 9275: SecureFramesUtils */;
r4 = moduleValue2.getUserVerificationDeeplink(userId, fingerprint);
} else {
r4 = env0_5.join(' ');
}
(require(9212) /* metro dependency 9212: showShareActionSheetAndroid */).showShareActionSheet({message: r4},
AnalyticsSections.SECURE_FRAMES_VOICE_BOTTOM_SHEET);
}
}
}
function _fun72589() { // fn#72589, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9466:2380, offset: 0x01d4b26d, size: 91 bytes, params: 1, frame: 13
const value = environment.__proto__;
(importDefault(5080) /* metro dependency 5080: ModalActionCreators */).pop();
(importDefault(8743) /* metro dependency 8743: showUserProfileActionSheet */)({userId: userId, channelId: channelId,
isVoiceContext: true, sourceAnalyticsLocations: analyticsLocations});
}
function _fun72590() { // fn#72590, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9466:2613, offset: 0x01d4b2c8, size: 162 bytes, params: 1, frame: 16
const BadgeColors = (require(1305) /* metro dependency 1305: native */).BadgeColors;
const binding = env0_6;
const value = environment.__proto__;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
const string = intl.string;
const t = (require(1244) /* metro dependency 1244: indexNative */).t;
return binding ? [Reflect.apply(string, intl, [t.UNUuem]), BadgeColors.INFO] : [Reflect.apply(string, intl,
[t.y2b7CA]), BadgeColors.DANGER];
}
function _fun72591() { // fn#72591, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9466:2799, offset: 0x01d4b36a, size: 70 bytes, params: 1, frame: 13
const value = environment.__proto__;
return (require(9275) /* metro dependency 9275: SecureFramesUtils */).getUserVerificationFooterText({isCurrentUserKeyPersistent: isCurrentUserKeyPersistent,
isOtherUserKeyPersistent: isOtherUserKeyPersistent, otherUserNickname: env0_2});
}
function _fun72592() { // fn#72592, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9466:2951, offset: 0x01d4b3b0, size: 59 bytes, params: 1, frame: 14
const value = environment.__proto__;
(require(9284) /* metro dependency 9284: SecureFramesTracking */).trackE2EEUserVerificationViewed({userId: userId,
channelId: channelId});
}
@@ -0,0 +1,86 @@
/* Metro module 9290; source: modules/rtc/native/SecureFramesVerificationBottomSheet.tsx; dependencies: [31, 27, 9277, 33, 4501, 697, 9282, 4080, 6275, 6758, 6806, 5278, 1244, 4573, 4572, 6705, 9288, 9291, 2] */
function _fun72658(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#72658, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9476:6, offset: 0x01d4d1ea, size: 367 bytes, params: 8, frame: 22
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importAll(31) /* metro dependency 31 */;
const env0_4 = (require(27) /* metro dependency 27 */).View;
let value = require(9277) /* metro dependency 9277: SecureFramesConstants */;
const env0_5 = value.EPOCH_AUTHENTICATOR_CHUNK_SIZE;
const env0_6 = value.EPOCH_AUTHENTICATOR_COLUMNS;
const env0_7 = value.EPOCH_AUTHENTICATOR_LENGTH;
value = require(33) /* metro dependency 33 */;
const env0_8 = value.jsx;
const env0_9 = value.jsxs;
value = require(4501) /* metro dependency 4501: createStyles */;
const createStyles = value.createStyles;
const BACKGROUND_MOD_STRONG = (importDefault(697) /* metro dependency 697: native */).colors.BACKGROUND_MOD_STRONG;
const env0_10 = Reflect.apply(createStyles, value, [{iconContainer: {'height': 80, 'width': 80, 'borderRadius': 40,
'alignItems': 'center', 'justifyContent': 'center', backgroundColor: BACKGROUND_MOD_STRONG},
icon: {'height': 48, 'width': 48}, share: {height: 24}, content: {padding: 16}, subtitle: {textAlign: 'center'},
footer: {'textAlign': 'center', 'marginTop': 8}}]);
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/rtc/native/SecureFramesVerificationBottomSheet.tsx');
exports.default = SecureFramesVerificationBottomSheet;
}
function SecureFramesVerificationBottomSheet({title, subtitle, footer, epochAuthenticator, onShareClick}) { // fn#72659, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9476:668, offset: 0x01d4d359, size: 961 bytes, params: 2, frame: 34
var object4;
const styles = useStyles();
const value2 = (require(9282) /* metro dependency 9282: useReadableSecureFramesFingerprint */).useReadableSecureFramesFingerprint({fingerprintBase64: epochAuthenticator,
chunkSize: EPOCH_AUTHENTICATOR_CHUNK_SIZE, desiredLength: EPOCH_AUTHENTICATOR_LENGTH});
const binding = env0_3;
const value3 = binding.useCallback(_fun72660, [value2, onShareClick]);
const value4 = binding.useCallback(_fun72661, []);
const BottomSheet = (require(6275) /* metro dependency 6275: BottomSheetNative */).BottomSheet;
object4 = {startExpanded: true};
const BottomSheetTitleHeader = (require(6758) /* metro dependency 6758: BottomSheetTitleHeaderNative */).BottomSheetTitleHeader;
const object3 = {title: null};
const ActionSheetCloseButton = (require(6806) /* metro dependency 6806: ActionSheetCloseButtonNative */).ActionSheetCloseButton;
object3.leading = <ActionSheetCloseButton onPress={value4} />;
const PressableOpacity = (require(5278) /* metro dependency 5278: Pressables */).PressableOpacity;
const pressableOpacityProps = {style: styles.share, hitSlop: 8, onPress: value3, disabled: value2 == null,
accessibilityRole: 'button'};
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
let string = intl.string;
let RDE0Sc = (require(1244) /* metro dependency 1244: indexNative */).t.RDE0Sc;
pressableOpacityProps.accessibilityLabel = Reflect.apply(string, intl, [RDE0Sc]);
const Text = (require(4573) /* metro dependency 4573: Text */).Text;
string = intl.string;
RDE0Sc = (require(1244) /* metro dependency 1244: indexNative */).t.RDE0Sc;
object3.trailing = <PressableOpacity {...pressableOpacityProps}><Text variant="text-md/semibold" color="text-brand">{Reflect.apply(string,
intl, [RDE0Sc])}</Text></PressableOpacity>;
object4.header = <BottomSheetTitleHeader {...object3} />;
const Stack = (require(4572) /* metro dependency 4572: StackNative */).Stack;
const LockIcon = (require(6705) /* metro dependency 6705: LockIcon */).LockIcon;
const TEXT_SUBTLE = (importDefault(697) /* metro dependency 697: native */).colors.TEXT_SUBTLE;
const items3 = [<View style={styles.iconContainer}><LockIcon style={styles.icon} color={TEXT_SUBTLE} /></View>];
items3[1] = <Text variant="heading-xl/bold" color="mobile-text-heading-primary">{title}</Text>;
items3[2] = <Text style={styles.subtitle} variant="text-md/medium" color="text-default">{subtitle}</Text>;
const items2 = [<Stack spacing={8} justify="center" align="center" direction="vertical">{items3}</Stack>];
items2[1] = ((Component) => <Component title={intl.string((require(1244) /* metro dependency 1244: indexNative */).t.cgBTyO)} trailing={value2 != null && ((Component) => <Component chunks={value2} />)(importDefault(9291) /* metro dependency 9291: SecureFramesCopyIcon */)} chunks={value2} columns={EPOCH_AUTHENTICATOR_COLUMNS} />)(importDefault(9288) /* metro dependency 9288: SecureFramesCode */);
items2[2] = <Text style={styles.footer} variant="text-xs/normal" color="text-muted">{footer}</Text>;
return (
<BottomSheet {...object4}>
<View style={styles.content}>
{items2}
</View>
</BottomSheet>
);
}
function _fun72660() { // fn#72660, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9476:903, offset: 0x01d4d71a, size: 81 bytes, params: 1, frame: 13
var value2;
var value3;
if (env0_1 != null) {
value2 = env0_1.join(' ');
value3 = environment.__proto__;
(importDefault(4080) /* metro dependency 4080: ActionSheetActionCreators */).hideActionSheet();
onShareClick(value2);
}
}
function _fun72661() { // fn#72661, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9476:996, offset: 0x01d4d76b, size: 37 bytes, params: 1, frame: 11
const value = environment.__proto__;
(importDefault(4080) /* metro dependency 4080: ActionSheetActionCreators */).hideActionSheet();
}