Compare commits

..

8 Commits

Author SHA1 Message Date
Elias Nahum
ff73d946ae Bump app build number to 458 (#7147) 2023-02-17 16:19:49 +02:00
Carrie Warner (Mattermost)
b9f15afa81 Updated onboarding text (#7138)
* Updated onboarding text

https://mattermost.atlassian.net/browse/MM-46606

* Updated string in code
2023-02-16 15:55:44 +02:00
Elias Nahum
a11d3c6d2a Use config to set SAML and OpenId Button text (#7145) 2023-02-16 14:12:43 +02:00
Elias Nahum
3f2769aa0f allow scrolling in the login screen when keyboard is opened (#7144) 2023-02-16 14:00:26 +02:00
Elias Nahum
a78e6ff673 Do not dismiss keyboard when app is brought to the foreground (#7143) 2023-02-16 13:58:26 +02:00
Sudhanva-Nadiger
4416a61a77 fix: reset password bug (#7135)
* fix: reset password bug

* add suggested changes
2023-02-16 12:09:12 +02:00
Elias Nahum
77b0851213 Update Dependencies (#7140)
* upgrade android dependencies

* upgrade iOS dependencies

* Enable network plugin in flipper for Android

* update JS dependencies
2023-02-16 11:20:31 +02:00
Elias Nahum
86fff5c728 Sanitize sqlite like queries and allow non-latin characters (#7141) 2023-02-16 11:18:05 +02:00
37 changed files with 2221 additions and 3254 deletions

View File

@@ -1,8 +1,6 @@
apply plugin: "com.android.application"
apply plugin: "com.facebook.react"
apply plugin: 'kotlin-android'
import com.android.build.OutputFile
/**
* This is the configuration block to customize your React Native Android app.
@@ -112,7 +110,7 @@ android {
applicationId "com.mattermost.rnbeta"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 457
versionCode 458
versionName "2.1.0"
testBuildType System.getProperty('testBuildType', 'debug')
testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
@@ -173,10 +171,10 @@ android {
// For each separate APK per architecture, set a unique version code as described here:
// http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits
def versionCodes = ["armeabi-v7a":1, "x86":2, "arm64-v8a": 3, "x86_64": 4]
def abi = output.getFilter(OutputFile.ABI)
def abi = output.filters[0]
if (abi != null) { // null for the universal-debug, universal-release variants
output.versionCodeOverride =
versionCodes.get(abi) * 2000000 + defaultConfig.versionCode
versionCodes.get(abi.identifier) * 2000000 + defaultConfig.versionCode
}
}
}
@@ -192,7 +190,7 @@ dependencies {
// The version of react-native is set by the React Native Gradle Plugin
implementation("com.facebook.react:react-android")
implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.0.0")
implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.1.0")
debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}")
debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}") {
@@ -206,18 +204,19 @@ dependencies {
implementation jscFlavor
}
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.2'
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4'
implementation 'io.reactivex.rxjava3:rxjava:3.1.6'
implementation 'io.reactivex.rxjava3:rxandroid:3.0.2'
implementation 'androidx.window:window-rxjava3:1.0.0'
implementation 'androidx.window:window:1.0.0'
implementation 'androidx.appcompat:appcompat:1.4.1'
implementation 'com.google.android.material:material:1.0.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'com.google.android.material:material:1.8.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
implementation "com.google.firebase:firebase-messaging:$firebaseVersion"
androidTestImplementation('com.wix:detox:+')
implementation project(':reactnativenotifications')
implementation project(':watermelondb')
implementation project(':watermelondb-jsi')
}
@@ -225,16 +224,16 @@ configurations.all {
resolutionStrategy {
eachDependency { DependencyResolveDetails details ->
if (details.requested.name == 'play-services-base') {
details.useTarget group: details.requested.group, name: details.requested.name, version: '15.0.1'
details.useTarget group: details.requested.group, name: details.requested.name, version: '18.1.0'
}
if (details.requested.name == 'play-services-tasks') {
details.useTarget group: details.requested.group, name: details.requested.name, version: '15.0.1'
details.useTarget group: details.requested.group, name: details.requested.name, version: '18.0.2'
}
if (details.requested.name == 'play-services-stats') {
details.useTarget group: details.requested.group, name: details.requested.name, version: '15.0.1'
details.useTarget group: details.requested.group, name: details.requested.name, version: '17.0.3'
}
if (details.requested.name == 'play-services-basement') {
details.useTarget group: details.requested.group, name: details.requested.name, version: '15.0.1'
details.useTarget group: details.requested.group, name: details.requested.name, version: '18.1.0'
}
if (details.requested.name == 'okhttp') {
details.useTarget group: details.requested.group, name: details.requested.name, version: '4.10.0'

View File

@@ -22,7 +22,7 @@ import com.facebook.react.ReactInstanceEventListener;
import com.facebook.react.ReactInstanceManager;
import com.facebook.react.bridge.ReactContext;
import com.facebook.react.modules.network.NetworkingModule;
import okhttp3.OkHttpClient;
import com.mattermost.networkclient.RCTOkHttpClientFactory;
/**
* Class responsible of loading Flipper inside your React Native application. This is the debug
@@ -37,13 +37,9 @@ public class ReactNativeFlipper {
client.addPlugin(new SharedPreferencesFlipperPlugin(context));
client.addPlugin(CrashReporterPlugin.getInstance());
NetworkFlipperPlugin networkFlipperPlugin = new NetworkFlipperPlugin();
RCTOkHttpClientFactory.Companion.setFlipperPlugin(networkFlipperPlugin);
NetworkingModule.setCustomClientBuilder(
new NetworkingModule.CustomClientBuilder() {
@Override
public void apply(OkHttpClient.Builder builder) {
builder.addNetworkInterceptor(new FlipperOkhttpInterceptor(networkFlipperPlugin));
}
});
builder -> builder.addNetworkInterceptor(new FlipperOkhttpInterceptor(networkFlipperPlugin)));
client.addPlugin(networkFlipperPlugin);
client.start();
// Fresco Plugin needs to ensure that ImagePipelineFactory is initialized
@@ -56,12 +52,7 @@ public class ReactNativeFlipper {
public void onReactContextInitialized(ReactContext reactContext) {
reactInstanceManager.removeReactInstanceEventListener(this);
reactContext.runOnNativeModulesQueueThread(
new Runnable() {
@Override
public void run() {
client.addPlugin(new FrescoFlipperPlugin());
}
});
() -> client.addPlugin(new FrescoFlipperPlugin()));
}
});
} else {

View File

@@ -7,9 +7,9 @@ buildscript {
compileSdkVersion = 33
targetSdkVersion = 33
supportLibVersion = "33.0.0"
kotlinVersion = "1.5.30"
kotlin_version = "1.5.30"
firebaseVersion = "21.0.0"
kotlinVersion = "1.7.21"
kotlin_version = "1.7.21"
firebaseVersion = "23.1.1"
RNNKotlinVersion = kotlinVersion
// We use NDK 23 which has both M1 support and is the side-by-side NDK version from AGP.
@@ -23,7 +23,7 @@ buildscript {
dependencies {
classpath("com.android.tools.build:gradle:7.3.1")
classpath("com.facebook.react:react-native-gradle-plugin")
classpath('com.google.gms:google-services:4.3.14')
classpath('com.google.gms:google-services:4.3.15')
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion")
// NOTE: Do not place your application dependencies here; they belong

View File

@@ -29,7 +29,7 @@ android.useAndroidX=true
android.enableJetifier=true
# Version of flipper SDK to use with React Native
FLIPPER_VERSION=0.125.0
FLIPPER_VERSION=0.177.0
# Use this property to specify which architecture you want to build.
# You can also override it from the CLI using

View File

@@ -5,6 +5,8 @@ project(':reactnativenotifications').projectDir = new File(rootProject.projectDi
apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings)
include ':react-native-video'
project(':react-native-video').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-video/android-exoplayer')
include ':watermelondb'
project(':watermelondb').projectDir = new File(rootProject.projectDir, '../node_modules/@nozbe/watermelondb/native/android')
include ':watermelondb-jsi'
project(':watermelondb-jsi').projectDir = new File(rootProject.projectDir, '../node_modules/@nozbe/watermelondb/native/android-jsi')
includeBuild('../node_modules/react-native-gradle-plugin')

View File

@@ -245,7 +245,7 @@ export const sendPasswordResetEmail = async (serverUrl: string, email: string) =
return {error};
}
return {
data: response.data,
status: response.status,
error: undefined,
};
};

View File

@@ -134,12 +134,8 @@ export default function PostInput({
return {...style.input, maxHeight};
}, [maxHeight, style.input]);
const blur = () => {
inputRef.current?.blur();
};
const handleAndroidKeyboard = () => {
blur();
onBlur();
};
const onBlur = useCallback(() => {

View File

@@ -0,0 +1,43 @@
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
import {sanitizeLikeString} from '.';
describe('Test SQLite Sanitize like string with latin and non-latin characters', () => {
const disallowed = ',./;[]!@#$%^&*()_-=+~';
test('test (latin)', () => {
expect(sanitizeLikeString('test123')).toBe('test123');
expect(sanitizeLikeString(`test123${disallowed}`)).toBe(`test123${'_'.repeat(disallowed.length)}`);
});
test('test (arabic)', () => {
expect(sanitizeLikeString('اختبار123')).toBe('اختبار123');
expect(sanitizeLikeString(`اختبار123${disallowed}`)).toBe(`اختبار123${'_'.repeat(disallowed.length)}`);
});
test('test (greek)', () => {
expect(sanitizeLikeString(οκιμή123')).toBe(οκιμή123');
expect(sanitizeLikeString(`δοκιμή123${disallowed}`)).toBe(`δοκιμή123${'_'.repeat(disallowed.length)}`);
});
test('test (hebrew)', () => {
expect(sanitizeLikeString('חשבון123')).toBe('חשבון123');
expect(sanitizeLikeString(`חשבון123${disallowed}`)).toBe(`חשבון123${'_'.repeat(disallowed.length)}`);
});
test('test (russian)', () => {
expect(sanitizeLikeString(ест123')).toBe(ест123');
expect(sanitizeLikeString(`тест123${disallowed}`)).toBe(`тест123${'_'.repeat(disallowed.length)}`);
});
test('test (chinese trad)', () => {
expect(sanitizeLikeString('測試123')).toBe('測試123');
expect(sanitizeLikeString(`測試123${disallowed}`)).toBe(`測試123${'_'.repeat(disallowed.length)}`);
});
test('test (japanese)', () => {
expect(sanitizeLikeString('テスト123')).toBe('テスト123');
expect(sanitizeLikeString(`テスト123${disallowed}`)).toBe(`テスト123${'_'.repeat(disallowed.length)}`);
});
});

View File

@@ -1,6 +1,8 @@
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
import xRegExp from 'xregexp';
import {General} from '@constants';
import type Model from '@nozbe/watermelondb/Model';
@@ -91,3 +93,7 @@ export const filterAndSortMyChannels = ([myChannels, channels, notifyProps]: Fil
return [...mentions, ...unreads, ...mutedMentions];
};
// Matches letters from any alphabet and numbers
const sqliteLikeStringRegex = xRegExp('[^\\p{L}\\p{Nd}]', 'g');
export const sanitizeLikeString = (value: string) => value.replace(sqliteLikeStringRegex, '_');

View File

@@ -9,6 +9,7 @@ import {map as map$, switchMap, distinctUntilChanged} from 'rxjs/operators';
import {General, Permissions} from '@constants';
import {MM_TABLES} from '@constants/database';
import {sanitizeLikeString} from '@helpers/database';
import {hasPermission} from '@utils/role';
import {prepareDeletePost} from './post';
@@ -523,7 +524,7 @@ export function queryMyRecentChannels(database: Database, take: number) {
export const observeDirectChannelsByTerm = (database: Database, term: string, take = 20, matchStart = false) => {
const onlyDMs = term.startsWith('@') ? "AND c.type='D'" : '';
const value = Q.sanitizeLikeString(term.startsWith('@') ? term.substring(1) : term);
const value = sanitizeLikeString(term.startsWith('@') ? term.substring(1) : term);
let username = `u.username LIKE '${value}%'`;
let displayname = `c.display_name LIKE '${value}%'`;
if (!matchStart) {
@@ -549,7 +550,7 @@ export const observeDirectChannelsByTerm = (database: Database, term: string, ta
export const observeNotDirectChannelsByTerm = (database: Database, term: string, take = 20, matchStart = false) => {
const teammateNameSetting = observeTeammateNameDisplay(database);
const value = Q.sanitizeLikeString(term.startsWith('@') ? term.substring(1) : term);
const value = sanitizeLikeString(term.startsWith('@') ? term.substring(1) : term);
let username = `u.username LIKE '${value}%'`;
let nickname = `u.nickname LIKE '${value}%'`;
let displayname = `(u.first_name || ' ' || u.last_name) LIKE '${value}%'`;
@@ -590,7 +591,7 @@ export const observeJoinedChannelsByTerm = (database: Database, term: string, ta
return of$([]);
}
const value = Q.sanitizeLikeString(term);
const value = sanitizeLikeString(term);
let displayname = `c.display_name LIKE '${value}%'`;
if (!matchStart) {
displayname = `c.display_name LIKE '%${value}%' AND c.display_name NOT LIKE '${value}%'`;
@@ -608,7 +609,7 @@ export const observeArchiveChannelsByTerm = (database: Database, term: string, t
return of$([]);
}
const value = Q.sanitizeLikeString(term);
const value = sanitizeLikeString(term);
const displayname = `%${value}%`;
return database.get<MyChannelModel>(MY_CHANNEL).query(
Q.on(CHANNEL, Q.and(
@@ -639,7 +640,7 @@ export const observeChannelsByLastPostAt = (database: Database, myChannels: MyCh
};
export const queryChannelsForAutocomplete = (database: Database, matchTerm: string, isSearch: boolean, teamId: string) => {
const likeTerm = `%${Q.sanitizeLikeString(matchTerm)}%`;
const likeTerm = `%${sanitizeLikeString(matchTerm)}%`;
const clauses: Q.Clause[] = [];
if (isSearch) {
clauses.push(

View File

@@ -4,6 +4,7 @@
import {Database, Q} from '@nozbe/watermelondb';
import {MM_TABLES} from '@constants/database';
import {sanitizeLikeString} from '@helpers/database';
import type GroupModel from '@typings/database/models/servers/group';
import type GroupChannelModel from '@typings/database/models/servers/group_channel';
@@ -14,7 +15,7 @@ const {SERVER: {GROUP, GROUP_CHANNEL, GROUP_MEMBERSHIP, GROUP_TEAM}} = MM_TABLES
export const queryGroupsByName = (database: Database, name: string) => {
return database.collections.get<GroupModel>(GROUP).query(
Q.where('name', Q.like(`%${Q.sanitizeLikeString(name)}%`)),
Q.where('name', Q.like(`%${sanitizeLikeString(name)}%`)),
);
};
@@ -27,14 +28,14 @@ export const queryGroupsByNames = (database: Database, names: string[]) => {
export const queryGroupsByNameInTeam = (database: Database, name: string, teamId: string) => {
return database.collections.get<GroupModel>(GROUP).query(
Q.on(GROUP_TEAM, 'team_id', teamId),
Q.where('name', Q.like(`%${Q.sanitizeLikeString(name)}%`)),
Q.where('name', Q.like(`%${sanitizeLikeString(name)}%`)),
);
};
export const queryGroupsByNameInChannel = (database: Database, name: string, channelId: string) => {
return database.collections.get<GroupModel>(GROUP).query(
Q.on(GROUP_CHANNEL, 'channel_id', channelId),
Q.where('name', Q.like(`%${Q.sanitizeLikeString(name)}%`)),
Q.where('name', Q.like(`%${sanitizeLikeString(name)}%`)),
);
};

View File

@@ -7,6 +7,7 @@ import {distinctUntilChanged, switchMap} from 'rxjs/operators';
import {MM_TABLES} from '@constants/database';
import {getTeammateNameDisplaySetting} from '@helpers/api/preference';
import {sanitizeLikeString} from '@helpers/database';
import {queryDisplayNamePreferences} from './preference';
import {observeCurrentUserId, observeLicense, getCurrentUserId, getConfig, getLicense, observeConfigValue} from './system';
@@ -86,7 +87,7 @@ export async function getTeammateNameDisplay(database: Database) {
export const queryUsersLike = (database: Database, likeUsername: string) => {
return database.get<UserModel>(USER).query(
Q.where('username', Q.like(
`%${Q.sanitizeLikeString(likeUsername)}%`,
`%${sanitizeLikeString(likeUsername)}%`,
)),
);
};

View File

@@ -136,9 +136,8 @@ const ForgotPassword = ({componentId, serverUrl, theme}: Props) => {
return;
}
const {data} = await sendPasswordResetEmail(serverUrl, email);
if (data) {
const {status} = await sendPasswordResetEmail(serverUrl, email);
if (status === 'OK') {
setIsPasswordLinkSent(true);
return;
}

View File

@@ -2,9 +2,9 @@
// See LICENSE.txt for license information.
import {useManagedConfig} from '@mattermost/react-native-emm';
import React, {MutableRefObject, useCallback, useEffect, useMemo, useRef, useState} from 'react';
import React, {useCallback, useEffect, useMemo, useRef, useState} from 'react';
import {useIntl} from 'react-intl';
import {Keyboard, Platform, TextInput, TouchableOpacity, useWindowDimensions, View} from 'react-native';
import {Keyboard, TextInput, TouchableOpacity, View} from 'react-native';
import Button from 'react-native-button';
import {login} from '@actions/remote/session';
@@ -14,7 +14,6 @@ import FloatingTextInput from '@components/floating_text_input_label';
import FormattedText from '@components/formatted_text';
import Loading from '@components/loading';
import {FORGOT_PASSWORD, MFA} from '@constants/screens';
import {useIsTablet} from '@hooks/device';
import {t} from '@i18n';
import {goToScreen, loginAnimationOptions, resetToHome, resetToTeams} from '@screens/navigation';
import {buttonBackgroundStyle, buttonTextStyle} from '@utils/buttonStyles';
@@ -23,13 +22,10 @@ import {preventDoubleTap} from '@utils/tap';
import {changeOpacity, makeStyleSheetFromTheme} from '@utils/theme';
import type {LaunchProps} from '@typings/launch';
import type {KeyboardAwareScrollView} from 'react-native-keyboard-aware-scroll-view';
interface LoginProps extends LaunchProps {
config: Partial<ClientConfig>;
keyboardAwareRef: MutableRefObject<KeyboardAwareScrollView | null>;
license: Partial<ClientLicense>;
numberSSOs: number;
serverDisplayName: string;
theme: Theme;
}
@@ -53,6 +49,7 @@ const getStyleSheet = makeStyleSheetFromTheme((theme: Theme) => ({
},
forgotPasswordBtn: {
borderColor: 'transparent',
width: '50%',
},
forgotPasswordError: {
marginTop: 30,
@@ -76,10 +73,8 @@ const getStyleSheet = makeStyleSheetFromTheme((theme: Theme) => ({
},
}));
const LoginForm = ({config, extra, keyboardAwareRef, numberSSOs, serverDisplayName, launchError, launchType, license, serverUrl, theme}: LoginProps) => {
const LoginForm = ({config, extra, serverDisplayName, launchError, launchType, license, serverUrl, theme}: LoginProps) => {
const styles = getStyleSheet(theme);
const isTablet = useIsTablet();
const dimensions = useWindowDimensions();
const loginRef = useRef<TextInput>(null);
const passwordRef = useRef<TextInput>(null);
const intl = useIntl();
@@ -94,33 +89,6 @@ const LoginForm = ({config, extra, keyboardAwareRef, numberSSOs, serverDisplayNa
const usernameEnabled = config.EnableSignInWithUsername === 'true';
const ldapEnabled = license.IsLicensed === 'true' && config.EnableLdap === 'true' && license.LDAP === 'true';
const focus = () => {
if (Platform.OS === 'ios') {
let ssoOffset = 0;
switch (numberSSOs) {
case 0:
ssoOffset = 0;
break;
case 1:
case 2:
ssoOffset = 48;
break;
default:
ssoOffset = 3 * 48;
break;
}
let offsetY = 150 - ssoOffset;
if (isTablet) {
const {width, height} = dimensions;
const isLandscape = width > height;
offsetY = (isLandscape ? 230 : 150) - ssoOffset;
}
requestAnimationFrame(() => {
keyboardAwareRef.current?.scrollToPosition(0, offsetY);
});
}
};
const preSignIn = preventDoubleTap(async () => {
setIsLoading(true);
@@ -231,19 +199,6 @@ const LoginForm = ({config, extra, keyboardAwareRef, numberSSOs, serverDisplayNa
passwordRef?.current?.focus();
}, []);
const onBlur = useCallback(() => {
if (Platform.OS === 'ios') {
const reset = !passwordRef.current?.isFocused() && !loginRef.current?.isFocused();
if (reset) {
keyboardAwareRef.current?.scrollToPosition(0, 0);
}
}
}, []);
const onFocus = useCallback(() => {
focus();
}, [dimensions]);
const onLogin = useCallback(() => {
Keyboard.dismiss();
preSignIn();
@@ -360,9 +315,7 @@ const LoginForm = ({config, extra, keyboardAwareRef, numberSSOs, serverDisplayNa
error={error ? ' ' : ''}
keyboardType='email-address'
label={createLoginPlaceholder()}
onBlur={onBlur}
onChangeText={onLoginChange}
onFocus={onFocus}
onSubmitEditing={focusPassword}
ref={loginRef}
returnKeyType='next'
@@ -382,9 +335,7 @@ const LoginForm = ({config, extra, keyboardAwareRef, numberSSOs, serverDisplayNa
error={error}
keyboardType='default'
label={intl.formatMessage({id: 'login.password', defaultMessage: 'Password'})}
onBlur={onBlur}
onChangeText={onPasswordChange}
onFocus={onFocus}
onSubmitEditing={onLogin}
ref={passwordRef}
returnKeyType='join'

View File

@@ -35,7 +35,7 @@ export interface LoginOptionsProps extends LaunchProps {
license: ClientLicense;
serverDisplayName: string;
serverUrl: string;
ssoOptions: Record<string, boolean>;
ssoOptions: SsoWithOptions;
theme: Theme;
}
@@ -85,7 +85,7 @@ const LoginOptions = ({
const isTablet = useIsTablet();
const translateX = useSharedValue(dimensions.width);
const numberSSOs = useMemo(() => {
return Object.values(ssoOptions).filter((v) => v).length;
return Object.values(ssoOptions).filter((v) => v.enabled).length;
}, [ssoOptions]);
const description = useMemo(() => {
if (hasLoginForm) {
@@ -211,7 +211,7 @@ const LoginOptions = ({
<KeyboardAwareScrollView
bounces={true}
contentContainerStyle={[styles.innerContainer, additionalContainerStyle]}
enableAutomaticScroll={Platform.OS === 'android'}
enableAutomaticScroll={true}
enableOnAndroid={false}
enableResetScrollToCoords={true}
extraScrollHeight={0}
@@ -228,11 +228,9 @@ const LoginOptions = ({
<Form
config={config}
extra={extra}
keyboardAwareRef={keyboardAwareRef}
license={license}
launchError={launchError}
launchType={launchType}
numberSSOs={numberSSOs}
theme={theme}
serverDisplayName={serverDisplayName}
serverUrl={serverUrl}

View File

@@ -2,19 +2,17 @@
// See LICENSE.txt for license information.
import React from 'react';
import {Image, ImageSourcePropType, View} from 'react-native';
import {useIntl} from 'react-intl';
import {Image, ImageSourcePropType, Text, View} from 'react-native';
import Button from 'react-native-button';
import CompassIcon from '@components/compass_icon';
import FormattedText from '@components/formatted_text';
import {Sso} from '@constants';
import {t} from '@i18n';
import {buttonBackgroundStyle} from '@utils/buttonStyles';
import {makeStyleSheetFromTheme, changeOpacity} from '@utils/theme';
type SsoInfo = {
defaultMessage: string;
id: string;
text: string;
imageSrc?: ImageSourcePropType;
compassIcon?: string;
};
@@ -22,40 +20,38 @@ type SsoInfo = {
type Props = {
goToSso: (ssoType: string) => void;
ssoOnly: boolean;
ssoOptions: Record<string, boolean>;
ssoOptions: SsoWithOptions;
theme: Theme;
}
const SsoOptions = ({goToSso, ssoOnly, ssoOptions, theme}: Props) => {
const {formatMessage} = useIntl();
const styles = getStyleSheet(theme);
const styleButtonBackground = buttonBackgroundStyle(theme, 'lg', 'primary');
const getSsoButtonOptions = ((ssoType: string): SsoInfo => {
const sso: SsoInfo = {} as SsoInfo;
const options = ssoOptions[ssoType];
switch (ssoType) {
case Sso.SAML:
sso.defaultMessage = 'SAML';
sso.text = options.text || formatMessage({id: 'mobile.login_options.saml', defaultMessage: 'SAML'});
sso.compassIcon = 'lock';
sso.id = t('mobile.login_options.saml');
break;
case Sso.GITLAB:
sso.defaultMessage = 'GitLab';
sso.text = formatMessage({id: 'mobile.login_options.gitlab', defaultMessage: 'GitLab'});
sso.imageSrc = require('@assets/images/Icon_Gitlab.png');
sso.id = t('mobile.login_options.gitlab');
break;
case Sso.GOOGLE:
sso.defaultMessage = 'Google';
sso.text = formatMessage({id: 'mobile.login_options.google', defaultMessage: 'Google'});
sso.imageSrc = require('@assets/images/Icon_Google.png');
sso.id = t('mobile.login_options.google');
break;
case Sso.OFFICE365:
sso.defaultMessage = 'Office 365';
sso.text = formatMessage({id: 'mobile.login_options.office365', defaultMessage: 'Office 365'});
sso.imageSrc = require('@assets/images/Icon_Office.png');
sso.id = t('mobile.login_options.office365');
break;
case Sso.OPENID:
sso.defaultMessage = 'Open ID';
sso.id = t('mobile.login_options.openid');
sso.text = options.text || formatMessage({id: 'mobile.login_options.openid', defaultMessage: 'Open ID'});
sso.imageSrc = require('@assets/images/Icon_Openid.png');
break;
default:
@@ -64,7 +60,7 @@ const SsoOptions = ({goToSso, ssoOnly, ssoOptions, theme}: Props) => {
});
const enabledSSOs = Object.keys(ssoOptions).filter(
(ssoType: string) => ssoOptions[ssoType],
(ssoType: string) => ssoOptions[ssoType].enabled,
);
let styleViewContainer;
@@ -76,7 +72,7 @@ const SsoOptions = ({goToSso, ssoOnly, ssoOptions, theme}: Props) => {
const componentArray = [];
for (const ssoType of enabledSSOs) {
const {compassIcon, defaultMessage, id, imageSrc} = getSsoButtonOptions(ssoType);
const {compassIcon, text, imageSrc} = getSsoButtonOptions(ssoType);
const handlePress = () => {
goToSso(ssoType);
};
@@ -105,21 +101,21 @@ const SsoOptions = ({goToSso, ssoOnly, ssoOptions, theme}: Props) => {
style={styles.buttonTextContainer}
>
{ssoOnly && (
<FormattedText
key={'pretext' + id}
id='mobile.login_options.sso_continue'
<Text
key={'pretext' + text}
style={styles.buttonText}
defaultMessage={'Continue with '}
testID={'pretext' + id}
/>
testID={'pretext' + text}
>
{text}
</Text>
)}
<FormattedText
<Text
key={ssoType}
id={id}
style={styles.buttonText}
defaultMessage={defaultMessage}
testID={id}
/>
testID={text}
>
{text}
</Text>
</View>
</Button>,
);

View File

@@ -79,7 +79,7 @@ const ServerHeader = ({additionalServer, theme}: Props) => {
}
{title}
<FormattedText
defaultMessage="A Server is your team's communication hub which is accessed through a unique URL"
defaultMessage="A server is your team's communication hub accessed using a unique URL"
id='mobile.components.select_server_view.msg_description'
style={styles.description}
testID='server_header.description'

View File

@@ -75,12 +75,12 @@ export function loginOptions(config: ClientConfig, license: ClientLicense) {
}
const ldapEnabled = isLicensed && config.EnableLdap === 'true' && license.LDAP === 'true';
const hasLoginForm = config.EnableSignInWithEmail === 'true' || config.EnableSignInWithUsername === 'true' || ldapEnabled;
const ssoOptions: Record<string, boolean> = {
[Sso.SAML]: samlEnabled,
[Sso.GITLAB]: gitlabEnabled,
[Sso.GOOGLE]: googleEnabled,
[Sso.OFFICE365]: o365Enabled,
[Sso.OPENID]: openIdEnabled,
const ssoOptions: SsoWithOptions = {
[Sso.SAML]: {enabled: samlEnabled, text: config.SamlLoginButtonText},
[Sso.GITLAB]: {enabled: gitlabEnabled},
[Sso.GOOGLE]: {enabled: googleEnabled},
[Sso.OFFICE365]: {enabled: o365Enabled},
[Sso.OPENID]: {enabled: openIdEnabled, text: config.OpenIdButtonText},
};
const enabledSSOs = Object.keys(ssoOptions).filter((key) => ssoOptions[key]);
const numberSSOs = enabledSSOs.length;

View File

@@ -475,7 +475,7 @@
"mobile.components.select_server_view.displayName": "Display Name",
"mobile.components.select_server_view.enterServerUrl": "Enter Server URL",
"mobile.components.select_server_view.msg_connect": "Lets Connect to a Server",
"mobile.components.select_server_view.msg_description": "A Server is your team's communication hub which is accessed through a unique URL",
"mobile.components.select_server_view.msg_description": "A server is your team's communication hub accessed using a unique URL",
"mobile.components.select_server_view.msg_welcome": "Welcome",
"mobile.components.select_server_view.proceed": "Proceed",
"mobile.create_channel": "Create",

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

2444
detox/package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -8,25 +8,25 @@
"@babel/plugin-transform-modules-commonjs": "7.20.11",
"@babel/plugin-transform-runtime": "7.19.6",
"@babel/preset-env": "7.20.2",
"@jest/test-sequencer": "29.4.1",
"@jest/test-sequencer": "29.4.3",
"@types/jest": "29.4.0",
"@types/tough-cookie": "4.0.2",
"@types/uuid": "9.0.0",
"aws-sdk": "2.1305.0",
"axios": "1.3.0",
"aws-sdk": "2.1315.0",
"axios": "1.3.3",
"axios-cookiejar-support": "4.0.6",
"babel-jest": "29.4.1",
"babel-jest": "29.4.3",
"babel-plugin-module-resolver": "5.0.0",
"client-oauth2": "4.3.3",
"deepmerge": "4.3.0",
"detox": "20.1.2",
"detox": "20.1.3",
"form-data": "4.0.0",
"jest": "29.4.1",
"jest-circus": "29.4.1",
"jest-cli": "29.4.1",
"jest-html-reporters": "3.1.1",
"jest": "29.4.3",
"jest-circus": "29.4.3",
"jest-cli": "29.4.3",
"jest-html-reporters": "3.1.3",
"jest-junit": "15.0.0",
"jest-stare": "2.4.1",
"jest-stare": "2.5.0",
"junit-report-merger": "4.0.0",
"moment-timezone": "0.5.40",
"recursive-readdir": "2.2.3",

View File

@@ -1128,7 +1128,7 @@
CODE_SIGN_ENTITLEMENTS = Mattermost/Mattermost.entitlements;
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CURRENT_PROJECT_VERSION = 457;
CURRENT_PROJECT_VERSION = 458;
DEVELOPMENT_TEAM = UQ8HT4Q2XM;
ENABLE_BITCODE = NO;
HEADER_SEARCH_PATHS = (
@@ -1172,7 +1172,7 @@
CODE_SIGN_ENTITLEMENTS = Mattermost/Mattermost.entitlements;
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CURRENT_PROJECT_VERSION = 457;
CURRENT_PROJECT_VERSION = 458;
DEVELOPMENT_TEAM = UQ8HT4Q2XM;
ENABLE_BITCODE = NO;
HEADER_SEARCH_PATHS = (
@@ -1315,7 +1315,7 @@
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 457;
CURRENT_PROJECT_VERSION = 458;
DEBUG_INFORMATION_FORMAT = dwarf;
DEVELOPMENT_TEAM = UQ8HT4Q2XM;
GCC_C_LANGUAGE_STANDARD = gnu11;
@@ -1366,7 +1366,7 @@
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CODE_SIGN_STYLE = Automatic;
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 457;
CURRENT_PROJECT_VERSION = 458;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEVELOPMENT_TEAM = UQ8HT4Q2XM;
GCC_C_LANGUAGE_STANDARD = gnu11;

View File

@@ -15,7 +15,7 @@
"repositoryURL": "https://github.com/getsentry/sentry-cocoa.git",
"state": {
"branch": "8.0.0",
"revision": "1a18683901844a2970ccfb633e4ebae565361817",
"revision": "4f6838af2688f8f762afdaea5bef941121e7d473",
"version": null
}
},

View File

@@ -37,7 +37,7 @@
</dict>
</array>
<key>CFBundleVersion</key>
<string>457</string>
<string>458</string>
<key>ITSAppUsesNonExemptEncryption</key>
<false/>
<key>LSRequiresIPhoneOS</key>

View File

@@ -21,7 +21,7 @@
<key>CFBundleShortVersionString</key>
<string>2.1.0</string>
<key>CFBundleVersion</key>
<string>457</string>
<string>458</string>
<key>UIAppFonts</key>
<array>
<string>OpenSans-Bold.ttf</string>

View File

@@ -21,7 +21,7 @@
<key>CFBundleShortVersionString</key>
<string>2.1.0</string>
<key>CFBundleVersion</key>
<string>457</string>
<string>458</string>
<key>NSExtension</key>
<dict>
<key>NSExtensionPointIdentifier</key>

View File

@@ -8,14 +8,14 @@ PODS:
- CocoaLumberjack/Core (= 3.8.0)
- CocoaLumberjack/Core (3.8.0)
- DoubleConversion (1.1.6)
- FBLazyVector (0.71.2)
- FBReactNativeSpec (0.71.2):
- FBLazyVector (0.71.3)
- FBReactNativeSpec (0.71.3):
- RCT-Folly (= 2021.07.22.00)
- RCTRequired (= 0.71.2)
- RCTTypeSafety (= 0.71.2)
- React-Core (= 0.71.2)
- React-jsi (= 0.71.2)
- ReactCommon/turbomodule/core (= 0.71.2)
- RCTRequired (= 0.71.3)
- RCTTypeSafety (= 0.71.3)
- React-Core (= 0.71.3)
- React-jsi (= 0.71.3)
- ReactCommon/turbomodule/core (= 0.71.3)
- Flipper (0.125.0):
- Flipper-Folly (~> 2.6)
- Flipper-RSocket (~> 1.4)
@@ -79,9 +79,9 @@ PODS:
- FlipperKit/FlipperKitNetworkPlugin
- fmt (6.2.1)
- glog (0.3.5)
- hermes-engine (0.71.2):
- hermes-engine/Pre-built (= 0.71.2)
- hermes-engine/Pre-built (0.71.2)
- hermes-engine (0.71.3):
- hermes-engine/Pre-built (= 0.71.3)
- hermes-engine/Pre-built (0.71.3)
- HMSegmentedControl (1.5.6)
- jail-monkey (2.8.0):
- React-Core
@@ -96,7 +96,7 @@ PODS:
- libwebp/mux (1.2.4):
- libwebp/demux
- libwebp/webp (1.2.4)
- mattermost-react-native-turbo-log (0.2.2):
- mattermost-react-native-turbo-log (0.2.3):
- CocoaLumberjack
- RCT-Folly (= 2021.07.22.00)
- React-Core
@@ -126,26 +126,26 @@ PODS:
- fmt (~> 6.2.1)
- glog
- libevent
- RCTRequired (0.71.2)
- RCTTypeSafety (0.71.2):
- FBLazyVector (= 0.71.2)
- RCTRequired (= 0.71.2)
- React-Core (= 0.71.2)
- React (0.71.2):
- React-Core (= 0.71.2)
- React-Core/DevSupport (= 0.71.2)
- React-Core/RCTWebSocket (= 0.71.2)
- React-RCTActionSheet (= 0.71.2)
- React-RCTAnimation (= 0.71.2)
- React-RCTBlob (= 0.71.2)
- React-RCTImage (= 0.71.2)
- React-RCTLinking (= 0.71.2)
- React-RCTNetwork (= 0.71.2)
- React-RCTSettings (= 0.71.2)
- React-RCTText (= 0.71.2)
- React-RCTVibration (= 0.71.2)
- React-callinvoker (0.71.2)
- React-Codegen (0.71.2):
- RCTRequired (0.71.3)
- RCTTypeSafety (0.71.3):
- FBLazyVector (= 0.71.3)
- RCTRequired (= 0.71.3)
- React-Core (= 0.71.3)
- React (0.71.3):
- React-Core (= 0.71.3)
- React-Core/DevSupport (= 0.71.3)
- React-Core/RCTWebSocket (= 0.71.3)
- React-RCTActionSheet (= 0.71.3)
- React-RCTAnimation (= 0.71.3)
- React-RCTBlob (= 0.71.3)
- React-RCTImage (= 0.71.3)
- React-RCTLinking (= 0.71.3)
- React-RCTNetwork (= 0.71.3)
- React-RCTSettings (= 0.71.3)
- React-RCTText (= 0.71.3)
- React-RCTVibration (= 0.71.3)
- React-callinvoker (0.71.3)
- React-Codegen (0.71.3):
- FBReactNativeSpec
- hermes-engine
- RCT-Folly
@@ -156,214 +156,214 @@ PODS:
- React-jsiexecutor
- ReactCommon/turbomodule/bridging
- ReactCommon/turbomodule/core
- React-Core (0.71.2):
- React-Core (0.71.3):
- glog
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
- React-Core/Default (= 0.71.2)
- React-cxxreact (= 0.71.2)
- React-Core/Default (= 0.71.3)
- React-cxxreact (= 0.71.3)
- React-hermes
- React-jsi (= 0.71.2)
- React-jsiexecutor (= 0.71.2)
- React-perflogger (= 0.71.2)
- React-jsi (= 0.71.3)
- React-jsiexecutor (= 0.71.3)
- React-perflogger (= 0.71.3)
- Yoga
- React-Core/CoreModulesHeaders (0.71.2):
- React-Core/CoreModulesHeaders (0.71.3):
- glog
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
- React-Core/Default
- React-cxxreact (= 0.71.2)
- React-cxxreact (= 0.71.3)
- React-hermes
- React-jsi (= 0.71.2)
- React-jsiexecutor (= 0.71.2)
- React-perflogger (= 0.71.2)
- React-jsi (= 0.71.3)
- React-jsiexecutor (= 0.71.3)
- React-perflogger (= 0.71.3)
- Yoga
- React-Core/Default (0.71.2):
- React-Core/Default (0.71.3):
- glog
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
- React-cxxreact (= 0.71.2)
- React-cxxreact (= 0.71.3)
- React-hermes
- React-jsi (= 0.71.2)
- React-jsiexecutor (= 0.71.2)
- React-perflogger (= 0.71.2)
- React-jsi (= 0.71.3)
- React-jsiexecutor (= 0.71.3)
- React-perflogger (= 0.71.3)
- Yoga
- React-Core/DevSupport (0.71.2):
- React-Core/DevSupport (0.71.3):
- glog
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
- React-Core/Default (= 0.71.2)
- React-Core/RCTWebSocket (= 0.71.2)
- React-cxxreact (= 0.71.2)
- React-Core/Default (= 0.71.3)
- React-Core/RCTWebSocket (= 0.71.3)
- React-cxxreact (= 0.71.3)
- React-hermes
- React-jsi (= 0.71.2)
- React-jsiexecutor (= 0.71.2)
- React-jsinspector (= 0.71.2)
- React-perflogger (= 0.71.2)
- React-jsi (= 0.71.3)
- React-jsiexecutor (= 0.71.3)
- React-jsinspector (= 0.71.3)
- React-perflogger (= 0.71.3)
- Yoga
- React-Core/RCTActionSheetHeaders (0.71.2):
- React-Core/RCTActionSheetHeaders (0.71.3):
- glog
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
- React-Core/Default
- React-cxxreact (= 0.71.2)
- React-cxxreact (= 0.71.3)
- React-hermes
- React-jsi (= 0.71.2)
- React-jsiexecutor (= 0.71.2)
- React-perflogger (= 0.71.2)
- React-jsi (= 0.71.3)
- React-jsiexecutor (= 0.71.3)
- React-perflogger (= 0.71.3)
- Yoga
- React-Core/RCTAnimationHeaders (0.71.2):
- React-Core/RCTAnimationHeaders (0.71.3):
- glog
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
- React-Core/Default
- React-cxxreact (= 0.71.2)
- React-cxxreact (= 0.71.3)
- React-hermes
- React-jsi (= 0.71.2)
- React-jsiexecutor (= 0.71.2)
- React-perflogger (= 0.71.2)
- React-jsi (= 0.71.3)
- React-jsiexecutor (= 0.71.3)
- React-perflogger (= 0.71.3)
- Yoga
- React-Core/RCTBlobHeaders (0.71.2):
- React-Core/RCTBlobHeaders (0.71.3):
- glog
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
- React-Core/Default
- React-cxxreact (= 0.71.2)
- React-cxxreact (= 0.71.3)
- React-hermes
- React-jsi (= 0.71.2)
- React-jsiexecutor (= 0.71.2)
- React-perflogger (= 0.71.2)
- React-jsi (= 0.71.3)
- React-jsiexecutor (= 0.71.3)
- React-perflogger (= 0.71.3)
- Yoga
- React-Core/RCTImageHeaders (0.71.2):
- React-Core/RCTImageHeaders (0.71.3):
- glog
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
- React-Core/Default
- React-cxxreact (= 0.71.2)
- React-cxxreact (= 0.71.3)
- React-hermes
- React-jsi (= 0.71.2)
- React-jsiexecutor (= 0.71.2)
- React-perflogger (= 0.71.2)
- React-jsi (= 0.71.3)
- React-jsiexecutor (= 0.71.3)
- React-perflogger (= 0.71.3)
- Yoga
- React-Core/RCTLinkingHeaders (0.71.2):
- React-Core/RCTLinkingHeaders (0.71.3):
- glog
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
- React-Core/Default
- React-cxxreact (= 0.71.2)
- React-cxxreact (= 0.71.3)
- React-hermes
- React-jsi (= 0.71.2)
- React-jsiexecutor (= 0.71.2)
- React-perflogger (= 0.71.2)
- React-jsi (= 0.71.3)
- React-jsiexecutor (= 0.71.3)
- React-perflogger (= 0.71.3)
- Yoga
- React-Core/RCTNetworkHeaders (0.71.2):
- React-Core/RCTNetworkHeaders (0.71.3):
- glog
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
- React-Core/Default
- React-cxxreact (= 0.71.2)
- React-cxxreact (= 0.71.3)
- React-hermes
- React-jsi (= 0.71.2)
- React-jsiexecutor (= 0.71.2)
- React-perflogger (= 0.71.2)
- React-jsi (= 0.71.3)
- React-jsiexecutor (= 0.71.3)
- React-perflogger (= 0.71.3)
- Yoga
- React-Core/RCTSettingsHeaders (0.71.2):
- React-Core/RCTSettingsHeaders (0.71.3):
- glog
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
- React-Core/Default
- React-cxxreact (= 0.71.2)
- React-cxxreact (= 0.71.3)
- React-hermes
- React-jsi (= 0.71.2)
- React-jsiexecutor (= 0.71.2)
- React-perflogger (= 0.71.2)
- React-jsi (= 0.71.3)
- React-jsiexecutor (= 0.71.3)
- React-perflogger (= 0.71.3)
- Yoga
- React-Core/RCTTextHeaders (0.71.2):
- React-Core/RCTTextHeaders (0.71.3):
- glog
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
- React-Core/Default
- React-cxxreact (= 0.71.2)
- React-cxxreact (= 0.71.3)
- React-hermes
- React-jsi (= 0.71.2)
- React-jsiexecutor (= 0.71.2)
- React-perflogger (= 0.71.2)
- React-jsi (= 0.71.3)
- React-jsiexecutor (= 0.71.3)
- React-perflogger (= 0.71.3)
- Yoga
- React-Core/RCTVibrationHeaders (0.71.2):
- React-Core/RCTVibrationHeaders (0.71.3):
- glog
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
- React-Core/Default
- React-cxxreact (= 0.71.2)
- React-cxxreact (= 0.71.3)
- React-hermes
- React-jsi (= 0.71.2)
- React-jsiexecutor (= 0.71.2)
- React-perflogger (= 0.71.2)
- React-jsi (= 0.71.3)
- React-jsiexecutor (= 0.71.3)
- React-perflogger (= 0.71.3)
- Yoga
- React-Core/RCTWebSocket (0.71.2):
- React-Core/RCTWebSocket (0.71.3):
- glog
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
- React-Core/Default (= 0.71.2)
- React-cxxreact (= 0.71.2)
- React-Core/Default (= 0.71.3)
- React-cxxreact (= 0.71.3)
- React-hermes
- React-jsi (= 0.71.2)
- React-jsiexecutor (= 0.71.2)
- React-perflogger (= 0.71.2)
- React-jsi (= 0.71.3)
- React-jsiexecutor (= 0.71.3)
- React-perflogger (= 0.71.3)
- Yoga
- React-CoreModules (0.71.2):
- React-CoreModules (0.71.3):
- RCT-Folly (= 2021.07.22.00)
- RCTTypeSafety (= 0.71.2)
- React-Codegen (= 0.71.2)
- React-Core/CoreModulesHeaders (= 0.71.2)
- React-jsi (= 0.71.2)
- RCTTypeSafety (= 0.71.3)
- React-Codegen (= 0.71.3)
- React-Core/CoreModulesHeaders (= 0.71.3)
- React-jsi (= 0.71.3)
- React-RCTBlob
- React-RCTImage (= 0.71.2)
- ReactCommon/turbomodule/core (= 0.71.2)
- React-cxxreact (0.71.2):
- React-RCTImage (= 0.71.3)
- ReactCommon/turbomodule/core (= 0.71.3)
- React-cxxreact (0.71.3):
- boost (= 1.76.0)
- DoubleConversion
- glog
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
- React-callinvoker (= 0.71.2)
- React-jsi (= 0.71.2)
- React-jsinspector (= 0.71.2)
- React-logger (= 0.71.2)
- React-perflogger (= 0.71.2)
- React-runtimeexecutor (= 0.71.2)
- React-hermes (0.71.2):
- React-callinvoker (= 0.71.3)
- React-jsi (= 0.71.3)
- React-jsinspector (= 0.71.3)
- React-logger (= 0.71.3)
- React-perflogger (= 0.71.3)
- React-runtimeexecutor (= 0.71.3)
- React-hermes (0.71.3):
- DoubleConversion
- glog
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
- RCT-Folly/Futures (= 2021.07.22.00)
- React-cxxreact (= 0.71.2)
- React-cxxreact (= 0.71.3)
- React-jsi
- React-jsiexecutor (= 0.71.2)
- React-jsinspector (= 0.71.2)
- React-perflogger (= 0.71.2)
- React-jsc (0.71.2):
- React-jsc/Fabric (= 0.71.2)
- React-jsi (= 0.71.2)
- React-jsc/Fabric (0.71.2):
- React-jsi (= 0.71.2)
- React-jsi (0.71.2):
- React-jsiexecutor (= 0.71.3)
- React-jsinspector (= 0.71.3)
- React-perflogger (= 0.71.3)
- React-jsc (0.71.3):
- React-jsc/Fabric (= 0.71.3)
- React-jsi (= 0.71.3)
- React-jsc/Fabric (0.71.3):
- React-jsi (= 0.71.3)
- React-jsi (0.71.3):
- boost (= 1.76.0)
- DoubleConversion
- glog
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
- React-jsiexecutor (0.71.2):
- React-jsiexecutor (0.71.3):
- DoubleConversion
- glog
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
- React-cxxreact (= 0.71.2)
- React-jsi (= 0.71.2)
- React-perflogger (= 0.71.2)
- React-jsinspector (0.71.2)
- React-logger (0.71.2):
- React-cxxreact (= 0.71.3)
- React-jsi (= 0.71.3)
- React-perflogger (= 0.71.3)
- React-jsinspector (0.71.3)
- React-logger (0.71.3):
- glog
- react-native-background-timer (2.4.1):
- React-Core
@@ -375,24 +375,24 @@ PODS:
- React-Core
- react-native-document-picker (8.1.3):
- React-Core
- react-native-emm (1.3.4):
- react-native-emm (1.3.5):
- React-Core
- react-native-hw-keyboard-event (0.0.4):
- React
- react-native-image-picker (5.0.1):
- react-native-image-picker (5.0.2):
- React-Core
- react-native-in-app-review (4.2.1):
- React-Core
- react-native-netinfo (9.3.7):
- React-Core
- react-native-network-client (1.3.0):
- react-native-network-client (1.3.1):
- Alamofire (~> 5.6.4)
- React-Core
- Starscream (~> 4.0.4)
- SwiftyJSON (~> 5.0)
- react-native-notifications (4.3.3):
- React-Core
- react-native-paste-input (0.6.1):
- react-native-paste-input (0.6.2):
- React-Core
- Swime (= 3.0.6)
- react-native-safe-area-context (4.5.0):
@@ -401,7 +401,7 @@ PODS:
- RCTTypeSafety
- React-Core
- ReactCommon/turbomodule/core
- react-native-turbo-mailer (0.2.3):
- react-native-turbo-mailer (0.2.4):
- RCT-Folly (= 2021.07.22.00)
- React-Core
- react-native-video (5.2.1):
@@ -414,112 +414,112 @@ PODS:
- React-Core
- react-native-webview (11.26.1):
- React-Core
- React-perflogger (0.71.2)
- React-RCTActionSheet (0.71.2):
- React-Core/RCTActionSheetHeaders (= 0.71.2)
- React-RCTAnimation (0.71.2):
- React-perflogger (0.71.3)
- React-RCTActionSheet (0.71.3):
- React-Core/RCTActionSheetHeaders (= 0.71.3)
- React-RCTAnimation (0.71.3):
- RCT-Folly (= 2021.07.22.00)
- RCTTypeSafety (= 0.71.2)
- React-Codegen (= 0.71.2)
- React-Core/RCTAnimationHeaders (= 0.71.2)
- React-jsi (= 0.71.2)
- ReactCommon/turbomodule/core (= 0.71.2)
- React-RCTAppDelegate (0.71.2):
- RCTTypeSafety (= 0.71.3)
- React-Codegen (= 0.71.3)
- React-Core/RCTAnimationHeaders (= 0.71.3)
- React-jsi (= 0.71.3)
- ReactCommon/turbomodule/core (= 0.71.3)
- React-RCTAppDelegate (0.71.3):
- RCT-Folly
- RCTRequired
- RCTTypeSafety
- React-Core
- ReactCommon/turbomodule/core
- React-RCTBlob (0.71.2):
- React-RCTBlob (0.71.3):
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
- React-Codegen (= 0.71.2)
- React-Core/RCTBlobHeaders (= 0.71.2)
- React-Core/RCTWebSocket (= 0.71.2)
- React-jsi (= 0.71.2)
- React-RCTNetwork (= 0.71.2)
- ReactCommon/turbomodule/core (= 0.71.2)
- React-RCTImage (0.71.2):
- React-Codegen (= 0.71.3)
- React-Core/RCTBlobHeaders (= 0.71.3)
- React-Core/RCTWebSocket (= 0.71.3)
- React-jsi (= 0.71.3)
- React-RCTNetwork (= 0.71.3)
- ReactCommon/turbomodule/core (= 0.71.3)
- React-RCTImage (0.71.3):
- RCT-Folly (= 2021.07.22.00)
- RCTTypeSafety (= 0.71.2)
- React-Codegen (= 0.71.2)
- React-Core/RCTImageHeaders (= 0.71.2)
- React-jsi (= 0.71.2)
- React-RCTNetwork (= 0.71.2)
- ReactCommon/turbomodule/core (= 0.71.2)
- React-RCTLinking (0.71.2):
- React-Codegen (= 0.71.2)
- React-Core/RCTLinkingHeaders (= 0.71.2)
- React-jsi (= 0.71.2)
- ReactCommon/turbomodule/core (= 0.71.2)
- React-RCTNetwork (0.71.2):
- RCTTypeSafety (= 0.71.3)
- React-Codegen (= 0.71.3)
- React-Core/RCTImageHeaders (= 0.71.3)
- React-jsi (= 0.71.3)
- React-RCTNetwork (= 0.71.3)
- ReactCommon/turbomodule/core (= 0.71.3)
- React-RCTLinking (0.71.3):
- React-Codegen (= 0.71.3)
- React-Core/RCTLinkingHeaders (= 0.71.3)
- React-jsi (= 0.71.3)
- ReactCommon/turbomodule/core (= 0.71.3)
- React-RCTNetwork (0.71.3):
- RCT-Folly (= 2021.07.22.00)
- RCTTypeSafety (= 0.71.2)
- React-Codegen (= 0.71.2)
- React-Core/RCTNetworkHeaders (= 0.71.2)
- React-jsi (= 0.71.2)
- ReactCommon/turbomodule/core (= 0.71.2)
- React-RCTSettings (0.71.2):
- RCTTypeSafety (= 0.71.3)
- React-Codegen (= 0.71.3)
- React-Core/RCTNetworkHeaders (= 0.71.3)
- React-jsi (= 0.71.3)
- ReactCommon/turbomodule/core (= 0.71.3)
- React-RCTSettings (0.71.3):
- RCT-Folly (= 2021.07.22.00)
- RCTTypeSafety (= 0.71.2)
- React-Codegen (= 0.71.2)
- React-Core/RCTSettingsHeaders (= 0.71.2)
- React-jsi (= 0.71.2)
- ReactCommon/turbomodule/core (= 0.71.2)
- React-RCTText (0.71.2):
- React-Core/RCTTextHeaders (= 0.71.2)
- React-RCTVibration (0.71.2):
- RCTTypeSafety (= 0.71.3)
- React-Codegen (= 0.71.3)
- React-Core/RCTSettingsHeaders (= 0.71.3)
- React-jsi (= 0.71.3)
- ReactCommon/turbomodule/core (= 0.71.3)
- React-RCTText (0.71.3):
- React-Core/RCTTextHeaders (= 0.71.3)
- React-RCTVibration (0.71.3):
- RCT-Folly (= 2021.07.22.00)
- React-Codegen (= 0.71.2)
- React-Core/RCTVibrationHeaders (= 0.71.2)
- React-jsi (= 0.71.2)
- ReactCommon/turbomodule/core (= 0.71.2)
- React-runtimeexecutor (0.71.2):
- React-jsi (= 0.71.2)
- ReactCommon/turbomodule/bridging (0.71.2):
- React-Codegen (= 0.71.3)
- React-Core/RCTVibrationHeaders (= 0.71.3)
- React-jsi (= 0.71.3)
- ReactCommon/turbomodule/core (= 0.71.3)
- React-runtimeexecutor (0.71.3):
- React-jsi (= 0.71.3)
- ReactCommon/turbomodule/bridging (0.71.3):
- DoubleConversion
- glog
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
- React-callinvoker (= 0.71.2)
- React-Core (= 0.71.2)
- React-cxxreact (= 0.71.2)
- React-jsi (= 0.71.2)
- React-logger (= 0.71.2)
- React-perflogger (= 0.71.2)
- ReactCommon/turbomodule/core (0.71.2):
- React-callinvoker (= 0.71.3)
- React-Core (= 0.71.3)
- React-cxxreact (= 0.71.3)
- React-jsi (= 0.71.3)
- React-logger (= 0.71.3)
- React-perflogger (= 0.71.3)
- ReactCommon/turbomodule/core (0.71.3):
- DoubleConversion
- glog
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
- React-callinvoker (= 0.71.2)
- React-Core (= 0.71.2)
- React-cxxreact (= 0.71.2)
- React-jsi (= 0.71.2)
- React-logger (= 0.71.2)
- React-perflogger (= 0.71.2)
- React-callinvoker (= 0.71.3)
- React-Core (= 0.71.3)
- React-cxxreact (= 0.71.3)
- React-jsi (= 0.71.3)
- React-logger (= 0.71.3)
- React-perflogger (= 0.71.3)
- ReactNativeExceptionHandler (2.10.10):
- React-Core
- ReactNativeIncallManager (4.0.0):
- React-Core
- ReactNativeKeyboardTrackingView (5.7.0):
- React
- ReactNativeNavigation (7.31.1):
- ReactNativeNavigation (7.32.1):
- HMSegmentedControl
- React-Core
- React-RCTImage
- React-RCTText
- ReactNativeNavigation/Core (= 7.31.1)
- ReactNativeNavigation/Core (7.31.1):
- ReactNativeNavigation/Core (= 7.32.1)
- ReactNativeNavigation/Core (7.32.1):
- HMSegmentedControl
- React-Core
- React-RCTImage
- React-RCTText
- RNCClipboard (1.11.1):
- React-Core
- RNDateTimePicker (6.7.3):
- RNDateTimePicker (6.7.5):
- React-Core
- RNDeviceInfo (10.3.0):
- RNDeviceInfo (10.4.0):
- React-Core
- RNFastImage (8.6.3):
- React-Core
@@ -566,16 +566,16 @@ PODS:
- React-RCTText
- ReactCommon/turbomodule/core
- Yoga
- RNRudderSdk (1.6.0):
- RNRudderSdk (1.6.1):
- React
- Rudder (~> 1.6.0)
- RNScreens (3.19.0):
- RNScreens (3.20.0):
- React-Core
- React-RCTImage
- RNSentry (4.14.0):
- React-Core
- Sentry/HybridSDK (= 7.31.5)
- RNShare (8.1.0):
- RNShare (8.2.0):
- React-Core
- RNSVG (13.8.0):
- React-Core
@@ -927,8 +927,8 @@ SPEC CHECKSUMS:
CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99
CocoaLumberjack: 78abfb691154e2a9df8ded4350d504ee19d90732
DoubleConversion: 5189b271737e1565bdce30deb4a08d647e3f5f54
FBLazyVector: d58428b28fe1f5070fe993495b0e2eaf701d3820
FBReactNativeSpec: 225fb0f0ab00493ce0731f954da3658638d9b191
FBLazyVector: 60195509584153283780abdac5569feffb8f08cc
FBReactNativeSpec: 9c191fb58d06dc05ab5559a5505fc32139e9e4a2
Flipper: 26fc4b7382499f1281eb8cb921e5c3ad6de91fe0
Flipper-Boost-iOSX: fd1e2b8cbef7e662a122412d7ac5f5bea715403c
Flipper-DoubleConversion: 2dc99b02f658daf147069aad9dbd29d8feb06d30
@@ -940,71 +940,71 @@ SPEC CHECKSUMS:
FlipperKit: cbdee19bdd4e7f05472a66ce290f1b729ba3cb86
fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9
glog: 04b94705f318337d7ead9e6d17c019bd9b1f6b1b
hermes-engine: 6351580c827b3b03e5f25aadcf989f582d0b0a86
hermes-engine: 38bfe887e456b33b697187570a08de33969f5db7
HMSegmentedControl: 34c1f54d822d8308e7b24f5d901ec674dfa31352
jail-monkey: a71b35d482a70ecba844a90f002994012cf12a5d
JitsiWebRTC: f441eb0e2d67f0588bf24e21c5162e97342714fb
libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913
libwebp: f62cb61d0a484ba548448a4bd52aabf150ff6eef
mattermost-react-native-turbo-log: 3c56c4e6e1d706b70d652e5509d1254eef914153
mattermost-react-native-turbo-log: a00b39dafdef7905164110466e7d725f6f079751
OpenSSL-Universal: ebc357f1e6bc71fa463ccb2fe676756aff50e88c
Permission-Camera: bf6791b17c7f614b6826019fcfdcc286d3a107f6
Permission-Microphone: 48212dd4d28025d9930d583e3c7a56da7268665c
Permission-Notifications: 150484ae586eb9be4e32217582a78350a9bb31c3
Permission-PhotoLibrary: 5b34ca67279f7201ae109cef36f9806a6596002d
RCT-Folly: 424b8c9a7a0b9ab2886ffe9c3b041ef628fd4fb1
RCTRequired: c154ebcfbf41d6fef86c52674fc1aa08837ff538
RCTTypeSafety: 3063e5a1e5b1dc2cbeda5c8f8926c0ad1a6b0871
React: 0a1a36e8e81cfaac244ed88b97f23ab56e5434f0
React-callinvoker: 679a09fbfe1a8bbf0c8588b588bf3ef85e7e4922
React-Codegen: 78f8966839f22b54d3303a6aca2679bce5723c3f
React-Core: 679e5ff1eb0e3122463976d0b2049bebcb7b33d6
React-CoreModules: 06cbf15185e6daf9fb3aec02c963f4807bd794b3
React-cxxreact: 645dc75c9deba4c15698b1b5902236d6a766461f
React-hermes: bc7bcfeaaa7cb98dc9f9252f2f3eca66f06f01e2
React-jsc: a7ada8baac0b07c60e27a4d25150357e316be2b0
React-jsi: 82625f9f1f8d7abf716d897612a9ea06ecf6db6e
React-jsiexecutor: c7e028406112db456ac3cf5720d266bc7bc20938
React-jsinspector: ea8101acf525ec08b2d87ddf0637d45f8e3b4148
React-logger: 97987f46779d8dd24656474ad0c43a5b459f31d6
RCTRequired: bec48f07daf7bcdc2655a0cde84e07d24d2a9e2a
RCTTypeSafety: 171394eebacf71e1cfad79dbfae7ee8fc16ca80a
React: d7433ccb6a8c36e4cbed59a73c0700fc83c3e98a
React-callinvoker: 15f165009bd22ae829b2b600e50bcc98076ce4b8
React-Codegen: b5910000eaf1e0c2f47d29be6f82f5f1264420d7
React-Core: b6f2f78d580a90b83fd7b0d1c6911c799f6eac82
React-CoreModules: e0cbc1a4f4f3f60e23c476fef7ab37be363ea8c1
React-cxxreact: c87f3f124b2117d00d410b35f16c2257e25e50fa
React-hermes: c64ca6bdf16a7069773103c9bedaf30ec90ab38f
React-jsc: 30670396f92f5f9bab121bf8c303f5a0a507061b
React-jsi: 39729361645568e238081b3b3180fbad803f25a4
React-jsiexecutor: 515b703d23ffadeac7687bc2d12fb08b90f0aaa1
React-jsinspector: 9f7c9137605e72ca0343db4cea88006cb94856dd
React-logger: 957e5dc96d9dbffc6e0f15e0ee4d2b42829ff207
react-native-background-timer: 17ea5e06803401a379ebf1f20505b793ac44d0fe
react-native-cameraroll: 5b25d0be40185d02e522bf2abf8a1ba4e8faa107
react-native-cookies: f54fcded06bb0cda05c11d86788020b43528a26c
react-native-create-thumbnail: e022bcdcba8a0b4529a50d3fa1a832ec921be39d
react-native-document-picker: 958e2bc82e128be69055be261aeac8d872c8d34c
react-native-emm: 8439515a27ad8723dfd37f554ea6c944882a49bc
react-native-emm: 5aaacd33453894ec64b9c774f735b6bf1a92b89f
react-native-hw-keyboard-event: b517cefb8d5c659a38049c582de85ff43337dc53
react-native-image-picker: 8cb4280e2c1efc3daeb2d9d597f9429a60472e40
react-native-image-picker: a5dddebb4d2955ac4712a4ed66b00a85f62a63ac
react-native-in-app-review: a073f67c5f3392af6ea7fb383217cdb1aa2aa726
react-native-netinfo: 2517ad504b3d303e90d7a431b0fcaef76d207983
react-native-network-client: 019b790a27f21c116ddfc43c0fc68f77f0a1b20f
react-native-network-client: 116ec02566020bff98cddd9c4825e7665306ad6c
react-native-notifications: 83b4fd4a127a6c918fc846cae90da60f84819e44
react-native-paste-input: fb7156dc75960c9895ddd9b9d68eeb874c9f323a
react-native-paste-input: 3392800944a47c00dddbff23c31c281482209679
react-native-safe-area-context: 39c2d8be3328df5d437ac1700f4f3a4f75716acc
react-native-turbo-mailer: fa3f18b5a274fa32ebe43af125caf041f7cc4cbf
react-native-turbo-mailer: dec932ffe8c20dfd22b43c23ee5890ceea909620
react-native-video: c26780b224543c62d5e1b2a7244a5cd1b50e8253
react-native-webrtc: ef315d8adb68e78298b22100377d12ef168efdb5
react-native-webview: 9f111dfbcfc826084d6c507f569e5e03342ee1c1
React-perflogger: c7ccda3d1d1da837f7ff4e54e816022a6803ee87
React-RCTActionSheet: 01c125aebbad462a24228f68c584c7a921d6c28e
React-RCTAnimation: 5277a9440acffc4a5b7baa6ae3880fe467277ae6
React-RCTAppDelegate: 3977201606125157aa94872b4171ca316478939b
React-RCTBlob: 8e15fc9091d8947f406ba706f11505b38b1b5e40
React-RCTImage: 65319acfe82b85219b2d410725a593abe19ac795
React-RCTLinking: a5fc2b9d7a346d6e7d34de8093bb5d1064042508
React-RCTNetwork: 5d1efcd01ca7f08ebf286d68be544f747a5d315a
React-RCTSettings: fa760b0add819ac3ad73b06715f9547316acdf20
React-RCTText: 05c244b135d75d4395eb35c012949a5326f8ab70
React-RCTVibration: 0af3babdeee1b2d052811a2f86977d1e1c81ebd1
React-runtimeexecutor: 4bf9a9086d27f74065fce1dddac274aa95216952
ReactCommon: f697c0ac52e999aa818e43e2b6f277787c735e2d
React-perflogger: af8a3d31546077f42d729b949925cc4549f14def
React-RCTActionSheet: 57cc5adfefbaaf0aae2cf7e10bccd746f2903673
React-RCTAnimation: 11c61e94da700c4dc915cf134513764d87fc5e2b
React-RCTAppDelegate: c3980adeaadcfd6cb495532e928b36ac6db3c14a
React-RCTBlob: ccc5049d742b41971141415ca86b83b201495695
React-RCTImage: 7a9226b0944f1e76e8e01e35a9245c2477cdbabb
React-RCTLinking: bbe8cc582046a9c04f79c235b73c93700263e8b4
React-RCTNetwork: fc2ca322159dc54e06508d4f5c3e934da63dc013
React-RCTSettings: f1e9db2cdf946426d3f2b210e4ff4ce0f0d842ef
React-RCTText: 1c41dd57e5d742b1396b4eeb251851ce7ff0fca1
React-RCTVibration: 5199a180d04873366a83855de55ac33ce60fe4d5
React-runtimeexecutor: 7bf0dafc7b727d93c8cb94eb00a9d3753c446c3e
ReactCommon: 6f65ea5b7d84deb9e386f670dd11ce499ded7b40
ReactNativeExceptionHandler: b11ff67c78802b2f62eed0e10e75cb1ef7947c60
ReactNativeIncallManager: b169b57d3064d8f62478f8fc3c485da6c75045d1
ReactNativeKeyboardTrackingView: 02137fac3b2ebd330d74fa54ead48b14750a2306
ReactNativeNavigation: c3e1e813b46d4c7219949cfbb67feb90b8315058
ReactNativeNavigation: d79d9d53e6025851936bb8b3d13760b86302a669
RNCClipboard: 2834e1c4af68697089cdd455ee4a4cdd198fa7dd
RNDateTimePicker: 00247f26c34683c80be94207f488f6f13448586e
RNDeviceInfo: 4701f0bf2a06b34654745053db0ce4cb0c53ada7
RNDateTimePicker: 65e1d202799460b286ff5e741d8baf54695e8abd
RNDeviceInfo: 749f2e049dcd79e2e44f134f66b73a06951b5066
RNFastImage: 0ee8f7e39df8190d3ca3a5b0c4ea0109c0ff132e
RNFileViewer: ce7ca3ac370e18554d35d6355cffd7c30437c592
RNFS: 4ac0f0ea233904cb798630b3c077808c06931688
@@ -1014,10 +1014,10 @@ SPEC CHECKSUMS:
RNPermissions: dcdb7b99796bbeda6975a6e79ad519c41b251b1c
RNReactNativeHapticFeedback: 1e3efeca9628ff9876ee7cdd9edec1b336913f8c
RNReanimated: cc5e3aa479cb9170bcccf8204291a6950a3be128
RNRudderSdk: c2e707ce96c78137950980e060acd4ad5dc141ac
RNScreens: ea4cd3a853063cda19a4e3c28d2e52180c80f4eb
RNRudderSdk: 59d86a619602ae880796d7f235fb9161cbfdb2ac
RNScreens: 218801c16a2782546d30bd2026bb625c0302d70f
RNSentry: 7e90aec2633d2fdad8aeb839c9915e4376fd27d1
RNShare: 48b3113cd089a2be8ff0515c3ae7a46a4db8a76b
RNShare: b089c33619bbfb0a32bc4069c858b9274e694187
RNSVG: c1e76b81c76cdcd34b4e1188852892dc280eb902
RNVectorIcons: fcc2f6cb32f5735b586e66d14103a74ce6ad61f8
Rudder: 7c080303528ea612f58c9f9e8fcfab92b5dbcca8
@@ -1030,7 +1030,7 @@ SPEC CHECKSUMS:
SwiftyJSON: 2f33a42c6fbc52764d96f13368585094bfd8aa5e
Swime: d7b2c277503b6cea317774aedc2dce05613f8b0b
WatermelonDB: 6ae836b52d11281d87187ff2283480e44b111771
Yoga: 5b0304b3dbef2b52e078052138e23a19c7dacaef
Yoga: 5ed1699acbba8863755998a4245daa200ff3817b
YogaKit: f782866e155069a2cca2517aafea43200b01fd5a
PODFILE CHECKSUM: 9f76739ed16bbdc0f4b1049ecb366fb5d23a0f3a

2140
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -15,23 +15,23 @@
"@formatjs/intl-relativetimeformat": "11.1.8",
"@gorhom/bottom-sheet": "4.4.5",
"@mattermost/compass-icons": "0.1.35",
"@mattermost/react-native-emm": "1.3.4",
"@mattermost/react-native-network-client": "1.3.0",
"@mattermost/react-native-paste-input": "0.6.1",
"@mattermost/react-native-turbo-log": "0.2.2",
"@mattermost/react-native-turbo-mailer": "0.2.3",
"@mattermost/react-native-emm": "1.3.5",
"@mattermost/react-native-network-client": "1.3.1",
"@mattermost/react-native-paste-input": "0.6.2",
"@mattermost/react-native-turbo-log": "0.2.3",
"@mattermost/react-native-turbo-mailer": "0.2.4",
"@msgpack/msgpack": "2.8.0",
"@nozbe/watermelondb": "0.25.5",
"@nozbe/with-observables": "1.4.1",
"@react-native-camera-roll/camera-roll": "5.2.3",
"@react-native-clipboard/clipboard": "1.11.1",
"@react-native-community/datetimepicker": "6.7.3",
"@react-native-community/datetimepicker": "6.7.5",
"@react-native-community/netinfo": "9.3.7",
"@react-native-cookies/cookies": "6.2.1",
"@react-navigation/bottom-tabs": "6.5.4",
"@react-navigation/native": "6.1.3",
"@react-navigation/stack": "6.3.12",
"@rudderstack/rudder-sdk-react-native": "1.6.0",
"@react-navigation/bottom-tabs": "6.5.5",
"@react-navigation/native": "6.1.4",
"@react-navigation/stack": "6.3.14",
"@rudderstack/rudder-sdk-react-native": "1.6.1",
"@sentry/react-native": "4.14.0",
"@stream-io/flat-list-mvcp": "0.10.2",
"base-64": "1.0.0",
@@ -48,15 +48,15 @@
"pako": "2.1.0",
"react": "18.2.0",
"react-freeze": "1.0.3",
"react-intl": "6.2.7",
"react-native": "0.71.2",
"react-intl": "6.2.8",
"react-native": "0.71.3",
"react-native-android-open-settings": "1.3.0",
"react-native-animated-numbers": "0.4.1",
"react-native-background-timer": "2.4.1",
"react-native-button": "3.0.1",
"react-native-calendars": "1.1293.0",
"react-native-create-thumbnail": "1.6.4",
"react-native-device-info": "10.3.0",
"react-native-device-info": "10.4.0",
"react-native-document-picker": "8.1.3",
"react-native-dotenv": "3.4.7",
"react-native-elements": "3.4.3",
@@ -67,7 +67,7 @@
"react-native-gesture-handler": "2.9.0",
"react-native-haptic-feedback": "1.14.0",
"react-native-hw-keyboard-event": "0.0.4",
"react-native-image-picker": "5.0.1",
"react-native-image-picker": "5.0.2",
"react-native-in-app-review": "4.2.1",
"react-native-incall-manager": "github:cpoile/react-native-incall-manager",
"react-native-keyboard-aware-scroll-view": "0.9.5",
@@ -76,15 +76,15 @@
"react-native-linear-gradient": "2.6.2",
"react-native-localize": "2.2.4",
"react-native-math-view": "3.9.5",
"react-native-navigation": "7.31.1",
"react-native-navigation": "7.32.1",
"react-native-notifications": "4.3.3",
"react-native-permissions": "3.6.1",
"react-native-reanimated": "2.14.4",
"react-native-safe-area-context": "4.5.0",
"react-native-screens": "3.19.0",
"react-native-screens": "3.20.0",
"react-native-section-list-get-item-layout": "2.2.3",
"react-native-shadow-2": "7.0.6",
"react-native-share": "8.1.0",
"react-native-share": "8.2.0",
"react-native-svg": "13.8.0",
"react-native-vector-icons": "9.2.0",
"react-native-video": "5.2.1",
@@ -96,7 +96,7 @@
"semver": "7.3.8",
"serialize-error": "11.0.0",
"shallow-equals": "1.0.0",
"tinycolor2": "1.5.2",
"tinycolor2": "1.6.0",
"url-parse": "1.5.10"
},
"devDependencies": {
@@ -113,7 +113,7 @@
"@babel/runtime": "7.20.13",
"@react-native-community/eslint-config": "3.2.0",
"@testing-library/react-hooks": "8.0.1",
"@testing-library/react-native": "11.5.1",
"@testing-library/react-native": "11.5.2",
"@types/base-64": "1.0.0",
"@types/commonmark": "0.27.5",
"@types/commonmark-react-renderer": "4.3.1",
@@ -122,7 +122,7 @@
"@types/lodash": "4.14.191",
"@types/mime-db": "1.43.1",
"@types/querystringify": "2.0.0",
"@types/react": "18.0.27",
"@types/react": "18.0.28",
"@types/react-native-background-timer": "2.0.0",
"@types/react-native-button": "3.0.1",
"@types/react-native-dotenv": "0.2.0",
@@ -137,16 +137,16 @@
"@types/tough-cookie": "4.0.2",
"@types/url-parse": "1.4.8",
"@types/uuid": "9.0.0",
"@typescript-eslint/eslint-plugin": "5.50.0",
"@typescript-eslint/parser": "5.50.0",
"axios": "1.3.1",
"@typescript-eslint/eslint-plugin": "5.52.0",
"@typescript-eslint/parser": "5.52.0",
"axios": "1.3.3",
"axios-cookiejar-support": "4.0.6",
"babel-jest": "29.4.1",
"babel-jest": "29.4.3",
"babel-loader": "9.1.2",
"babel-plugin-module-resolver": "5.0.0",
"deep-freeze": "0.0.1",
"detox": "20.1.2",
"eslint": "8.33.0",
"detox": "20.1.3",
"eslint": "8.34.0",
"eslint-plugin-header": "3.1.1",
"eslint-plugin-import": "2.27.5",
"eslint-plugin-jest": "27.2.1",
@@ -154,15 +154,15 @@
"eslint-plugin-react-hooks": "4.6.0",
"husky": "8.0.3",
"isomorphic-fetch": "3.0.0",
"jest": "29.4.1",
"jest-cli": "29.4.1",
"jest": "29.4.3",
"jest-cli": "29.4.3",
"jetifier": "2.0.0",
"metro-react-native-babel-preset": "0.75.0",
"mmjstool": "github:mattermost/mattermost-utilities#010f456ea8be5beebafdb8776177cba515c1969e",
"mock-async-storage": "2.2.0",
"nock": "13.3.0",
"patch-package": "6.5.1",
"react-devtools-core": "4.27.1",
"react-devtools-core": "4.27.2",
"react-native-svg-transformer": "1.0.0",
"react-test-renderer": "18.2.0",
"tough-cookie": "4.1.2",

9
types/screens/login.d.ts vendored Normal file
View File

@@ -0,0 +1,9 @@
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
type SsoOption = {
enabled: boolean;
text?: string;
};
type SsoWithOptions = Record<string, SsoOption>;