[Gekidou] update dependencies (#5691)

This commit is contained in:
Elias Nahum 2021-09-23 14:44:50 -03:00 committed by GitHub
parent c236cd9ab8
commit 4e0688aef5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
52 changed files with 9253 additions and 24623 deletions

View file

@ -14,7 +14,7 @@ executors:
NODE_ENV: production
BABEL_ENV: production
docker:
- image: circleci/android:api-29-node
- image: circleci/android:api-30-node
working_directory: ~/mattermost-mobile
resource_class: <<parameters.resource_class>>
@ -24,7 +24,7 @@ executors:
NODE_ENV: production
BABEL_ENV: production
macos:
xcode: "12.1.0"
xcode: "13.0.0"
working_directory: ~/mattermost-mobile
shell: /bin/bash --login -o pipefail

View file

@ -64,4 +64,4 @@ untyped-import
untyped-type-import
[version]
^0.137.0
^0.149.0

View file

@ -196,6 +196,7 @@ repositories {
configurations.all {
resolutionStrategy {
force "com.facebook.soloader:soloader:0.10.1"
eachDependency { DependencyResolveDetails details ->
if (details.requested.name == 'play-services-base') {
details.useTarget group: details.requested.group, name: details.requested.name, version: '15.0.1'
@ -280,7 +281,7 @@ dependencies {
// Run this once to be able to run the application with BUCK
// puts all compile dependencies into folder libs for BUCK to use
task copyDownloadableDepsToLibs(type: Copy) {
from configurations.compile
from configurations.implementation
into 'libs'
}

View file

@ -2,25 +2,25 @@
buildscript {
ext {
buildToolsVersion = "29.0.3"
buildToolsVersion = "30.0.2"
minSdkVersion = 24
compileSdkVersion = 29
targetSdkVersion = 29
ndkVersion = "20.1.5948944"
supportLibVersion = "28.0.0"
compileSdkVersion = 30
targetSdkVersion = 30
ndkVersion = "21.4.7075529"
supportLibVersion = "30.0.0"
kotlinVersion = "1.5.30"
kotlin_version = "1.5.30"
firebaseVersion = "21.0.0"
RNNKotlinVersion = kotlinVersion
}
repositories {
mavenCentral()
mavenLocal()
jcenter()
google()
mavenLocal()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:4.1.0'
classpath 'com.android.tools.build:gradle:4.2.2'
classpath 'com.google.gms:google-services:4.2.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"

View file

@ -30,4 +30,4 @@ android.useAndroidX=true
android.enableJetifier=true
# Version of flipper SDK to use with React Native
FLIPPER_VERSION=0.75.1
FLIPPER_VERSION=0.93.0

View file

@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-6.9-all.zip

View file

@ -80,7 +80,7 @@ export async function doAppCall<Res=unknown>(serverUrl: string, call: AppCallReq
}
}
} catch (error) {
const errMsg = error.message || intl.formatMessage({
const errMsg = (error as Error).message || intl.formatMessage({
id: 'apps.error.responses.unexpected_error',
defaultMessage: 'Received an unexpected error.',
});

View file

@ -17,7 +17,7 @@ import type {Model} from '@nozbe/watermelondb';
export type MyChannelsRequest = {
channels?: Channel[];
memberships?: ChannelMembership[];
error?: never;
error?: unknown;
}
export const addMembersToChannel = async (serverUrl: string, channelId: string, userIds: string[], postRootId = '', fetchOnly = false) => {
@ -46,7 +46,7 @@ export const addMembersToChannel = async (serverUrl: string, channelId: string,
}
return {channelMemberships};
} catch (error) {
forceLogoutIfNecessary(serverUrl, error);
forceLogoutIfNecessary(serverUrl, error as ClientErrorProps);
return {error};
}
};
@ -71,7 +71,7 @@ export const fetchChannelByName = async (serverUrl: string, teamId: string, chan
return {channel};
} catch (error) {
forceLogoutIfNecessary(serverUrl, error);
forceLogoutIfNecessary(serverUrl, error as ClientErrorProps);
return {error};
}
};
@ -127,7 +127,7 @@ export const fetchMyChannelsForTeam = async (serverUrl: string, teamId: string,
return {channels, memberships};
} catch (error) {
forceLogoutIfNecessary(serverUrl, error);
forceLogoutIfNecessary(serverUrl, error as ClientErrorProps);
return {error};
}
};
@ -194,7 +194,7 @@ export const joinChannel = async (serverUrl: string, userId: string, teamId: str
}
}
} catch (error) {
forceLogoutIfNecessary(serverUrl, error);
forceLogoutIfNecessary(serverUrl, error as ClientErrorProps);
return {error};
}

View file

@ -77,7 +77,7 @@ export const getRedirectLocation = async (serverUrl: string, link: string) => {
return {expandedLink};
} catch (error) {
forceLogoutIfNecessary(serverUrl, error);
forceLogoutIfNecessary(serverUrl, error as ClientErrorProps);
return {error};
}
};

View file

@ -127,7 +127,7 @@ export const fetchGroupsForTeam = async (serverUrl: string, teamId: string) => {
}
return null;
} catch (error) {
forceLogoutIfNecessary(serverUrl, error);
forceLogoutIfNecessary(serverUrl, error as ClientErrorProps);
return {error};
}
};

View file

@ -15,7 +15,7 @@ import {forceLogoutIfNecessary} from './session';
import type {Client} from '@client/rest';
type PostsRequest = {
error?: never;
error?: unknown;
order?: string[];
posts?: Post[];
previousPostId?: string;
@ -110,7 +110,7 @@ export const fetchPosts = async (serverUrl: string, channelId: string, page = 0,
const data = await client.getPosts(channelId, page, perPage);
return processPostsFetched(serverUrl, ActionType.POSTS.RECEIVED_IN_CHANNEL, data, fetchOnly);
} catch (error) {
forceLogoutIfNecessary(serverUrl, error);
forceLogoutIfNecessary(serverUrl, error as ClientErrorProps);
return {error};
}
};
@ -127,7 +127,7 @@ export const fetchPostsSince = async (serverUrl: string, channelId: string, sinc
const data = await client.getPostsSince(channelId, since);
return processPostsFetched(serverUrl, ActionType.POSTS.RECEIVED_SINCE, data, fetchOnly);
} catch (error) {
forceLogoutIfNecessary(serverUrl, error);
forceLogoutIfNecessary(serverUrl, error as ClientErrorProps);
return {error};
}
};
@ -198,7 +198,7 @@ export const fetchPostAuthors = async (serverUrl: string, posts: Post[], fetchOn
return {authors: [] as UserProfile[]};
} catch (error) {
forceLogoutIfNecessary(serverUrl, error);
forceLogoutIfNecessary(serverUrl, error as ClientErrorProps);
return {error};
}
};
@ -230,7 +230,7 @@ export const postActionWithCookie = async (serverUrl: string, postId: string, ac
return {data};
} catch (error) {
forceLogoutIfNecessary(serverUrl, error);
forceLogoutIfNecessary(serverUrl, error as ClientErrorProps);
return {error};
}
};

View file

@ -8,7 +8,7 @@ import {forceLogoutIfNecessary} from './session';
export type MyPreferencesRequest = {
preferences?: PreferenceType[];
error?: never;
error?: unknown;
}
export const fetchMyPreferences = async (serverUrl: string, fetchOnly = false): Promise<MyPreferencesRequest> => {
@ -34,7 +34,7 @@ export const fetchMyPreferences = async (serverUrl: string, fetchOnly = false):
return {preferences};
} catch (error) {
forceLogoutIfNecessary(serverUrl, error);
forceLogoutIfNecessary(serverUrl, error as ClientErrorProps);
return {error};
}
};

View file

@ -42,7 +42,7 @@ export const addReaction = async (serverUrl: string, postId: string, emojiName:
return {reaction};
} catch (error) {
forceLogoutIfNecessary(serverUrl, error);
forceLogoutIfNecessary(serverUrl, error as ClientErrorProps);
return {error};
}
};
@ -79,7 +79,7 @@ export const removeReaction = async (serverUrl: string, postId: string, emojiNam
return {reaction};
} catch (error) {
forceLogoutIfNecessary(serverUrl, error);
forceLogoutIfNecessary(serverUrl, error as ClientErrorProps);
return {error};
}
};

View file

@ -8,7 +8,7 @@ import {queryRoles} from '@queries/servers/role';
import {forceLogoutIfNecessary} from './session';
export type RolesRequest = {
error?: never;
error?: unknown;
roles?: Role[];
}
@ -52,7 +52,7 @@ export const fetchRolesIfNeeded = async (serverUrl: string, updatedRoles: string
return {roles};
} catch (error) {
forceLogoutIfNecessary(serverUrl, error);
forceLogoutIfNecessary(serverUrl, error as ClientErrorProps);
return {error};
}
};

View file

@ -15,6 +15,7 @@ import {loginEntry} from './entry';
import {logError} from './error';
import {fetchDataRetentionPolicy} from './systems';
import type ClientError from '@client/rest/error';
import type {LoginArgs} from '@typings/database/database';
const HTTP_UNAUTHORIZED = 401;
@ -72,7 +73,7 @@ export const getSessions = async (serverUrl: string, currentUserId: string) => {
return await client.getSessions(currentUserId);
} catch (e) {
logError(e);
await forceLogoutIfNecessary(serverUrl, e);
await forceLogoutIfNecessary(serverUrl, e as ClientError);
}
return undefined;
@ -91,7 +92,7 @@ export const login = async (serverUrl: string, {ldapOnly = false, loginId, mfaTo
try {
client = NetworkManager.getClient(serverUrl);
} catch (error) {
return {error, failed: true};
return {error: error as Error, failed: true};
}
try {
@ -122,15 +123,15 @@ export const login = async (serverUrl: string, {ldapOnly = false, loginId, mfaTo
const csrfToken = await getCSRFFromCookie(serverUrl);
client.setCSRFToken(csrfToken);
} catch (error) {
return {error, failed: true};
return {error: error as Error, failed: true};
}
try {
const {error, hasTeams, time} = await loginEntry({serverUrl, user});
completeLogin(serverUrl, user);
return {error, failed: false, hasTeams, time};
return {error: error as ClientError, failed: false, hasTeams, time};
} catch (error) {
return {error, failed: false, time: 0};
return {error: error as ClientError, failed: false, time: 0};
}
};
@ -184,7 +185,7 @@ export const ssoLogin = async (serverUrl: string, bearerToken: string, csrfToken
try {
client = NetworkManager.getClient(serverUrl);
} catch (error) {
return {error, failed: true};
return {error: error as Error, failed: true};
}
client.setBearerToken(bearerToken);
@ -210,14 +211,14 @@ export const ssoLogin = async (serverUrl: string, bearerToken: string, csrfToken
prepareRecordsOnly: false,
});
} catch (e) {
return {error: e, failed: true};
return {error: e as ClientError, failed: true};
}
try {
const {error, hasTeams, time} = await loginEntry({serverUrl, user, deviceToken});
completeLogin(serverUrl, user);
return {error, failed: false, hasTeams, time};
return {error: error as ClientError, failed: false, hasTeams, time};
} catch (error) {
return {error, failed: false, time: 0};
return {error: error as ClientError, failed: false, time: 0};
}
};

View file

@ -11,10 +11,12 @@ import {getServerCredentials} from '@init/credentials';
import NetworkManager from '@init/network_manager';
import {queryCommonSystemValues} from '@queries/servers/system';
import type ClientError from '@client/rest/error';
export type ConfigAndLicenseRequest = {
config?: ClientConfig;
license?: ClientLicense;
error?: never;
error?: unknown;
}
export const fetchDataRetentionPolicy = async (serverUrl: string) => {
@ -29,7 +31,7 @@ export const fetchDataRetentionPolicy = async (serverUrl: string) => {
try {
data = await client.getDataRetentionPolicy();
} catch (error) {
forceLogoutIfNecessary(serverUrl, error);
forceLogoutIfNecessary(serverUrl, error as ClientError);
logError(error);
return {error};
@ -99,7 +101,7 @@ export const fetchConfigAndLicense = async (serverUrl: string, fetchOnly = false
return {config, license};
} catch (error) {
forceLogoutIfNecessary(serverUrl, error);
forceLogoutIfNecessary(serverUrl, error as ClientError);
return {error};
}
};

View file

@ -13,6 +13,7 @@ import {fetchPostsForUnreadChannels} from './post';
import {fetchRolesIfNeeded} from './role';
import {forceLogoutIfNecessary} from './session';
import type ClientError from '@client/rest/error';
import type TeamModel from '@typings/database/models/servers/team';
import type TeamMembershipModel from '@typings/database/models/servers/team_membership';
@ -20,7 +21,7 @@ export type MyTeamsRequest = {
teams?: Team[];
memberships?: TeamMembership[];
unreads?: TeamUnread[];
error?: never;
error?: unknown;
}
export const addUserToTeam = async (serverUrl: string, teamId: string, userId: string, fetchOnly = false) => {
@ -62,7 +63,7 @@ export const addUserToTeam = async (serverUrl: string, teamId: string, userId: s
return {member, unreads};
} catch (error) {
forceLogoutIfNecessary(serverUrl, error);
forceLogoutIfNecessary(serverUrl, error as ClientError);
return {error};
}
};
@ -102,7 +103,7 @@ export const fetchMyTeams = async (serverUrl: string, fetchOnly = false): Promis
return {teams, memberships, unreads};
} catch (error) {
forceLogoutIfNecessary(serverUrl, error);
forceLogoutIfNecessary(serverUrl, error as ClientError);
return {error};
}
};
@ -150,7 +151,7 @@ export const fetchTeamByName = async (serverUrl: string, teamName: string, fetch
return {team};
} catch (error) {
forceLogoutIfNecessary(serverUrl, error);
forceLogoutIfNecessary(serverUrl, error as ClientError);
return {error};
}
};
@ -190,7 +191,7 @@ export const removeUserFromTeam = async (serverUrl: string, teamId: string, user
return {error: undefined};
} catch (error) {
forceLogoutIfNecessary(serverUrl, error);
forceLogoutIfNecessary(serverUrl, error as ClientError);
return {error};
}
};

View file

@ -15,19 +15,20 @@ import {prepareUsers, queryCurrentUser, queryUsersById, queryUsersByUsername} fr
import {forceLogoutIfNecessary} from './session';
import type {Client} from '@client/rest';
import type ClientError from '@client/rest/error';
import type {LoadMeArgs} from '@typings/database/database';
import type RoleModel from '@typings/database/models/servers/role';
import type UserModel from '@typings/database/models/servers/user';
export type ProfilesPerChannelRequest = {
data?: ProfilesInChannelRequest[];
error?: never;
error?: unknown;
}
export type ProfilesInChannelRequest = {
users?: UserProfile[];
channelId: string;
error?: never;
error?: unknown;
}
export const fetchProfilesInChannel = async (serverUrl: string, channelId: string, excludeUserId?: string, fetchOnly = false): Promise<ProfilesInChannelRequest> => {
@ -56,7 +57,7 @@ export const fetchProfilesInChannel = async (serverUrl: string, channelId: strin
return {channelId, users: uniqueUsers};
} catch (error) {
forceLogoutIfNecessary(serverUrl, error);
forceLogoutIfNecessary(serverUrl, error as ClientError);
return {channelId, error};
}
};
@ -115,7 +116,7 @@ export const loadMe = async (serverUrl: string, {deviceToken, user}: LoadMeArgs)
currentUser = await client.getMe();
}
} catch (e) {
await forceLogoutIfNecessary(serverUrl, e);
await forceLogoutIfNecessary(serverUrl, e as ClientError);
return {
error: e,
currentUser: undefined,
@ -247,7 +248,7 @@ export const updateMe = async (serverUrl: string, user: UserModel) => {
try {
data = await client.patchMe(user._raw);
} catch (e) {
forceLogoutIfNecessary(serverUrl, e);
forceLogoutIfNecessary(serverUrl, e as ClientError);
return {error: e};
}
@ -304,7 +305,7 @@ export const fetchStatusByIds = async (serverUrl: string, userIds: string[], fet
return {statuses};
} catch (error) {
forceLogoutIfNecessary(serverUrl, error);
forceLogoutIfNecessary(serverUrl, error as ClientError);
return {error};
}
};
@ -340,7 +341,7 @@ export const fetchUsersByIds = async (serverUrl: string, userIds: string[], fetc
return {users};
} catch (error) {
forceLogoutIfNecessary(serverUrl, error);
forceLogoutIfNecessary(serverUrl, error as ClientError);
return {error};
}
};
@ -376,7 +377,7 @@ export const fetchUsersByUsernames = async (serverUrl: string, usernames: string
return {users};
} catch (error) {
forceLogoutIfNecessary(serverUrl, error);
forceLogoutIfNecessary(serverUrl, error as ClientError);
return {error};
}
};
@ -395,7 +396,7 @@ export const fetchMissinProfilesByIds = async (serverUrl: string, userIds: strin
}
return {users};
} catch (error) {
forceLogoutIfNecessary(serverUrl, error);
forceLogoutIfNecessary(serverUrl, error as ClientError);
return {error};
}
};
@ -414,7 +415,7 @@ export const fetchMissinProfilesByUsernames = async (serverUrl: string, username
}
return {users};
} catch (error) {
forceLogoutIfNecessary(serverUrl, error);
forceLogoutIfNecessary(serverUrl, error as ClientError);
return {error};
}
};

View file

@ -5,7 +5,7 @@ import {cleanUrlForLogging} from '@utils/url';
export default class ClientError extends Error {
url: string;
intl: { defaultMessage: string; id: string } | { defaultMessage: string; id: string } | { id: string; defaultMessage: string; values: any } | { id: string; defaultMessage: string };
intl: { defaultMessage: string; id: string; values?: any };
server_error_id: any;
status_code: any;
details: Error;

View file

@ -3,7 +3,9 @@
exports[`components/custom_status/clear_button should match snapshot 1`] = `
<View
accessible={true}
collapsable={false}
focusable={true}
nativeID="animatedComponent"
onClick={[Function]}
onResponderGrant={[Function]}
onResponderMove={[Function]}

View file

@ -3,7 +3,7 @@
import React, {PureComponent, ReactNode} from 'react';
import {injectIntl, IntlShape} from 'react-intl';
import {Dimensions, LayoutChangeEvent, Platform, ScaledSize, ScrollView, View} from 'react-native';
import {Dimensions, EventSubscription, LayoutChangeEvent, Platform, ScaledSize, ScrollView, View} from 'react-native';
import LinearGradient from 'react-native-linear-gradient';
import CompassIcon from '@components/compass_icon';
@ -37,6 +37,7 @@ type MarkdownTableProps = MarkdownTableInputProps & {
class MarkdownTable extends PureComponent<MarkdownTableProps, MarkdownTableState> {
private rowsSliced: boolean | undefined;
private colsSliced: boolean | undefined;
private dimensionsListener: EventSubscription | undefined;
state = {
containerWidth: 0,
@ -46,14 +47,14 @@ class MarkdownTable extends PureComponent<MarkdownTableProps, MarkdownTableState
};
componentDidMount() {
Dimensions.addEventListener('change', this.setMaxPreviewColumns);
this.dimensionsListener = Dimensions.addEventListener('change', this.setMaxPreviewColumns);
const window = Dimensions.get('window');
this.setMaxPreviewColumns({window});
}
componentWillUnmount() {
Dimensions.removeEventListener('change', this.setMaxPreviewColumns);
this.dimensionsListener?.remove();
}
setMaxPreviewColumns = ({window}: {window: ScaledSize}) => {

View file

@ -87,7 +87,7 @@ const ButtonBinding = ({currentTeamId, binding, post, teamID, theme}: Props) =>
pressed.current = false;
if (res.error) {
const errorResponse = res.error;
const errorResponse = res.error as AppCallResponse<unknown>;
const errorMessage = errorResponse.error || intl.formatMessage({
id: 'apps.error.unknown',
defaultMessage: 'Unknown error occurred.',

View file

@ -65,12 +65,12 @@ const MenuBinding = ({binding, currentTeamId, post, teamID, theme}: Props) => {
const res = await doAppCall(serverUrl, call, AppCallTypes.SUBMIT, intl, theme);
if (res.error) {
const errorResponse = res.error;
const errorResponse = res.error as AppCallResponse<unknown>;
const errorMessage = errorResponse.error || intl.formatMessage({
id: 'apps.error.unknown',
defaultMessage: 'Unknown error occurred.',
});
postEphemeralCallResponseForPost(serverUrl, res.error, errorMessage, post);
postEphemeralCallResponseForPost(serverUrl, errorResponse, errorMessage, post);
return;
}

View file

@ -94,7 +94,7 @@ const DocumentFile = forwardRef<DocumentFileRef, DocumentFileProps>(({background
setDownloading(false);
setProgress(0);
if (error.message !== 'cancelled') {
if ((error as Error).message !== 'cancelled') {
alertDownloadFailed(intl);
}
}

View file

@ -4,7 +4,7 @@
import {Q} from '@nozbe/watermelondb';
import withObservables from '@nozbe/with-observables';
import React, {ComponentType, createContext, useEffect} from 'react';
import {Appearance} from 'react-native';
import {Appearance, EventSubscription} from 'react-native';
import {Preferences} from '@constants';
import {MM_TABLES, SYSTEM_IDENTIFIERS} from '@constants/database';
@ -59,9 +59,10 @@ const ThemeProvider = ({currentTeamId, children, themes}: Props) => {
};
useEffect(() => {
Appearance.addChangeListener(getTheme);
// @ts-expect-error ts module not yet updated
const listener = Appearance.addChangeListener(getTheme) as EventSubscription;
return () => Appearance.removeChangeListener(getTheme);
return () => listener.remove();
}, []);
return (<Provider value={getTheme()}>{children}</Provider>);

View file

@ -187,7 +187,7 @@ export default class BaseDataOperator {
});
}
} catch (e) {
throw new DataOperatorException('batchRecords error ', e);
throw new DataOperatorException('batchRecords error ', e as Error);
}
};

View file

@ -82,7 +82,6 @@ exports[`ForgotPassword should match snapshot 1`] = `
To reset your password, enter the email address you used to sign up
</Text>
<TextInput
allowFontScaling={true}
autoCapitalize="none"
autoCorrect={false}
blurOnSubmit={false}
@ -91,7 +90,6 @@ exports[`ForgotPassword should match snapshot 1`] = `
onChangeText={[Function]}
placeholder="Email"
placeholderTextColor="rgba(63,67,80,0.5)"
rejectResponderTermination={true}
style={
Object {
"alignSelf": "stretch",
@ -112,7 +110,9 @@ exports[`ForgotPassword should match snapshot 1`] = `
<View
accessibilityRole="button"
accessible={true}
collapsable={false}
focusable={false}
nativeID="animatedComponent"
onClick={[Function]}
onResponderGrant={[Function]}
onResponderMove={[Function]}

View file

@ -47,7 +47,7 @@ const ForgotPassword = ({serverUrl, theme}: Props) => {
setIsPasswordLinkSent(true);
}
setError(apiError);
setError(apiError as string);
};
const onBlur = useCallback(() => {

View file

@ -2,28 +2,45 @@
// See LICENSE.txt for license information.
import {useRoute} from '@react-navigation/native';
import React from 'react';
import React, {useCallback, useState} from 'react';
import {Text} from 'react-native';
import Animated, {AnimatedLayout, FadeInLeft, FadeInRight} from 'react-native-reanimated';
import Animated, {useAnimatedStyle, withTiming} from 'react-native-reanimated';
import {SafeAreaView} from 'react-native-safe-area-context';
const AccountScreen = () => {
const route = useRoute();
const params = route.params! as {direction: string};
const entering = params.direction === 'left' ? FadeInLeft : FadeInRight;
const toLeft = params.direction === 'left';
const [start, setStart] = useState(false);
const onLayout = useCallback(() => {
setStart(true);
}, []);
const animated = useAnimatedStyle(() => {
if (start) {
return {
opacity: withTiming(1, {duration: 150}),
transform: [{translateX: withTiming(0, {duration: 150})}],
};
}
return {
opacity: withTiming(0, {duration: 150}),
transform: [{translateX: withTiming(toLeft ? -25 : 25, {duration: 150})}],
};
}, [start]);
return (
<SafeAreaView
style={{flex: 1, backgroundColor: 'green'}}
>
<AnimatedLayout style={{flex: 1}}>
<Animated.View
entering={entering.duration(150)}
style={{flex: 1, justifyContent: 'center', alignItems: 'center'}}
>
<Text style={{fontSize: 20, color: '#fff'}}>{'Account Screen'}</Text>
</Animated.View>
</AnimatedLayout>
<Animated.View
onLayout={onLayout}
style={[{flex: 1, justifyContent: 'center', alignItems: 'center'}, animated]}
>
<Text style={{fontSize: 20, color: '#fff'}}>{'Account Screen'}</Text>
</Animated.View>
</SafeAreaView>
);
};

View file

@ -2,28 +2,45 @@
// See LICENSE.txt for license information.
import {useRoute} from '@react-navigation/native';
import React from 'react';
import React, {useCallback, useState} from 'react';
import {Text} from 'react-native';
import Animated, {AnimatedLayout, FadeInLeft, FadeInRight} from 'react-native-reanimated';
import Animated, {useAnimatedStyle, withTiming} from 'react-native-reanimated';
import {SafeAreaView} from 'react-native-safe-area-context';
const RecentMentionsScreen = () => {
const route = useRoute();
const params = route.params! as {direction: string};
const entering = params.direction === 'left' ? FadeInLeft : FadeInRight;
const toLeft = params.direction === 'left';
const [start, setStart] = useState(false);
const onLayout = useCallback(() => {
setStart(true);
}, []);
const animated = useAnimatedStyle(() => {
if (start) {
return {
opacity: withTiming(1, {duration: 150}),
transform: [{translateX: withTiming(0, {duration: 150})}],
};
}
return {
opacity: withTiming(0, {duration: 150}),
transform: [{translateX: withTiming(toLeft ? -25 : 25, {duration: 150})}],
};
}, [start]);
return (
<SafeAreaView
style={{flex: 1, backgroundColor: 'brown'}}
>
<AnimatedLayout style={{flex: 1}}>
<Animated.View
entering={entering.duration(150)}
style={{flex: 1, justifyContent: 'center', alignItems: 'center'}}
>
<Text style={{fontSize: 20, color: '#fff'}}>{'Recent Mentions Screen'}</Text>
</Animated.View>
</AnimatedLayout>
<Animated.View
onLayout={onLayout}
style={[{flex: 1, justifyContent: 'center', alignItems: 'center'}, animated]}
>
<Text style={{fontSize: 20, color: '#fff'}}>{'Recent Mentions Screen'}</Text>
</Animated.View>
</SafeAreaView>
);
};

View file

@ -77,7 +77,6 @@ exports[`Login Login screen should match snapshot 1`] = `
}
/>
<TextInput
allowFontScaling={true}
autoCapitalize="none"
autoCorrect={false}
blurOnSubmit={false}
@ -87,7 +86,6 @@ exports[`Login Login screen should match snapshot 1`] = `
onSubmitEditing={[Function]}
placeholder="Email or Username"
placeholderTextColor="rgba(63,67,80,0.5)"
rejectResponderTermination={true}
returnKeyType="next"
style={
Object {
@ -108,7 +106,6 @@ exports[`Login Login screen should match snapshot 1`] = `
value=""
/>
<TextInput
allowFontScaling={true}
autoCapitalize="none"
autoCorrect={false}
disableFullscreenUI={true}
@ -116,7 +113,6 @@ exports[`Login Login screen should match snapshot 1`] = `
onSubmitEditing={[Function]}
placeholder="Password"
placeholderTextColor="rgba(63,67,80,0.5)"
rejectResponderTermination={true}
returnKeyType="go"
secureTextEntry={true}
style={
@ -140,7 +136,9 @@ exports[`Login Login screen should match snapshot 1`] = `
<View
accessibilityRole="button"
accessible={true}
collapsable={false}
focusable={true}
nativeID="animatedComponent"
onClick={[Function]}
onResponderGrant={[Function]}
onResponderMove={[Function]}
@ -180,7 +178,9 @@ exports[`Login Login screen should match snapshot 1`] = `
<View
accessibilityRole="button"
accessible={true}
collapsable={false}
focusable={true}
nativeID="animatedComponent"
onClick={[Function]}
onResponderGrant={[Function]}
onResponderMove={[Function]}

View file

@ -147,8 +147,9 @@ const Login: NavigationFunctionComponent = ({config, extra, launchError, launchT
const checkLoginResponse = (data: LoginActionResponse) => {
let errorId = '';
if (typeof data.error === 'object' && data.error.server_error_id) {
errorId = data.error.server_error_id;
const clientError = data.error as ClientErrorProps;
if (clientError && clientError.server_error_id) {
errorId = clientError.server_error_id;
}
if (data.failed && MFA_EXPECTED_ERRORS.includes(errorId)) {
@ -174,12 +175,12 @@ const Login: NavigationFunctionComponent = ({config, extra, launchError, launchT
goToScreen(screen, title, {goToChannel, loginId, password, config, license, serverUrl, theme});
};
const getLoginErrorMessage = (loginError: string | ClientErrorProps) => {
const getLoginErrorMessage = (loginError: string | ClientErrorProps | Error) => {
if (typeof loginError === 'string') {
return loginError;
}
return getServerErrorForLogin(loginError);
return getServerErrorForLogin(loginError as ClientErrorProps);
};
const getServerErrorForLogin = (serverError?: ClientErrorProps) => {

View file

@ -101,7 +101,6 @@ exports[`*** MFA Screen *** MFA screen should match snapshot 1`] = `
</Text>
<TextInput
allowFontScaling={true}
autoCapitalize="none"
autoCorrect={false}
disableFullscreenUI={true}
@ -110,7 +109,6 @@ exports[`*** MFA Screen *** MFA screen should match snapshot 1`] = `
onSubmitEditing={[Function]}
placeholder="MFA Token"
placeholderTextColor="rgba(63,67,80,0.5)"
rejectResponderTermination={true}
returnKeyType="go"
style={
Object {
@ -133,7 +131,9 @@ exports[`*** MFA Screen *** MFA screen should match snapshot 1`] = `
<View
accessibilityRole="button"
accessible={true}
collapsable={false}
focusable={true}
nativeID="animatedComponent"
onClick={[Function]}
onResponderGrant={[Function]}
onResponderMove={[Function]}

View file

@ -5,6 +5,7 @@ import React, {useCallback, useEffect, useRef, useState} from 'react';
import {useIntl} from 'react-intl';
import {
ActivityIndicator,
EventSubscription,
Image,
Keyboard,
KeyboardAvoidingView,
@ -17,6 +18,7 @@ import Button from 'react-native-button';
import {SafeAreaView} from 'react-native-safe-area-context';
import {login} from '@actions/remote/session';
import ClientError from '@client/rest/error';
import ErrorText from '@components/error_text';
import FormattedText from '@components/formatted_text';
import {t} from '@i18n';
@ -48,12 +50,13 @@ const MFA = ({config, goToChannel, license, loginId, password, serverUrl, theme}
}, []);
useEffect(() => {
let listener: undefined | EventSubscription;
if (Platform.OS === 'android') {
Keyboard.addListener('keyboardDidHide', onBlur);
listener = Keyboard.addListener('keyboardDidHide', onBlur);
}
return () => {
if (Platform.OS === 'android') {
Keyboard.removeListener('keyboardDidHide', onBlur);
if (listener) {
listener.remove();
}
};
}, []);
@ -83,7 +86,7 @@ const MFA = ({config, goToChannel, license, loginId, password, serverUrl, theme}
return;
}
if (result.error.intl) {
if (result.error instanceof ClientError && result.error.intl) {
setError(intl.formatMessage({id: result.error.intl.id, defaultMessage: result.error.intl.defaultMessage}, result.error.intl.values));
return;
}

View file

@ -28,6 +28,8 @@ import {preventDoubleTap} from '@utils/tap';
import {changeOpacity, makeStyleSheetFromTheme} from '@utils/theme';
import {getServerUrlAfterRedirect, isValidUrl, sanitizeUrl} from '@utils/url';
import type ClientError from '@client/rest/error';
interface ServerProps extends LaunchProps {
componentId: string;
theme: Theme;
@ -150,7 +152,7 @@ const Server: NavigationFunctionComponent = ({componentId, extra, launchType, la
const nurl = serverUrl.replace('https:', 'http:');
pingServer(nurl, false);
} else {
setError(result.error);
setError(result.error as ClientError);
setConnecting(false);
}
@ -159,7 +161,7 @@ const Server: NavigationFunctionComponent = ({componentId, extra, launchType, la
const data = await fetchConfigAndLicense(serverUrl);
if (data.error) {
setError(data.error);
setError(data.error as ClientError);
setConnecting(false);
return;
}

View file

@ -5,6 +5,7 @@ import {useManagedConfig} from '@mattermost/react-native-emm';
import React, {useState} from 'react';
import {ssoLogin} from '@actions/remote/session';
import ClientError from '@client/rest/error';
import {SSO as SSOEnum} from '@constants';
import {resetToChannel} from '@screens/navigation';
import {isMinimumServerVersion} from '@utils/helpers';
@ -57,7 +58,7 @@ const SSO = ({config, extra, launchError, launchType, serverUrl, ssoType, theme}
break;
}
const onLoadEndError = (e: ClientErrorProps | string) => {
const onLoadEndError = (e: ClientErrorProps | Error | string) => {
console.warn('Failed to set store from local data', e); // eslint-disable-line no-console
if (typeof e === 'string') {
setLoginError(e);
@ -65,7 +66,7 @@ const SSO = ({config, extra, launchError, launchType, serverUrl, ssoType, theme}
}
let errorMessage = e.message;
if (e.url) {
if (e instanceof ClientError && e.url) {
errorMessage += `\nURL: ${e.url}`;
}
setLoginError(errorMessage);

View file

@ -87,10 +87,10 @@ const SSOWithRedirectURL = ({doSSOLogin, loginError, loginUrl, serverUrl, setLog
}
};
Linking.addEventListener('url', onURLChange);
const listener = Linking.addEventListener('url', onURLChange);
init(false);
return () => {
Linking.removeEventListener('url', onURLChange);
listener.remove();
};
}, []);

View file

@ -16,6 +16,7 @@ module.exports = {
['@babel/plugin-proposal-decorators', {legacy: true}],
['@babel/plugin-transform-flow-strip-types'],
['@babel/plugin-proposal-class-properties', {loose: true}],
['@babel/plugin-proposal-private-property-in-object', {loose: true}],
['module-resolver', {
root: ['.'],
alias: {

2793
detox/package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -5,32 +5,34 @@
"author": "Mattermost, Inc.",
"devDependencies": {
"@babel/plugin-proposal-class-properties": "7.14.5",
"@babel/plugin-transform-modules-commonjs": "7.14.5",
"@babel/plugin-transform-runtime": "7.14.5",
"@babel/preset-env": "7.14.8",
"axios": "0.21.1",
"babel-jest": "27.0.6",
"@babel/plugin-transform-modules-commonjs": "7.15.4",
"@babel/plugin-transform-runtime": "7.15.0",
"@babel/preset-env": "7.15.6",
"axios": "0.21.4",
"babel-jest": "27.2.1",
"babel-plugin-module-resolver": "4.1.0",
"client-oauth2": "github:larkox/js-client-oauth2#e24e2eb5dfcbbbb3a59d095e831dbe0012b0ac49",
"deepmerge": "4.2.2",
"detox": "18.20.0",
"detox": "18.20.4",
"form-data": "4.0.0",
"jest": "27.0.6",
"jest-circus": "27.0.6",
"jest-cli": "27.0.6",
"jest": "27.2.1",
"jest-circus": "27.2.1",
"jest-cli": "27.2.1",
"jest-html-reporters": "2.1.6",
"jest-junit": "12.2.0",
"jest-junit": "12.3.0",
"sanitize-filename": "1.6.3",
"uuid": "8.3.2"
},
"scripts": {
"e2e:android-create-emulator": "avdmanager create avd -n detox_emu_api_30 -k 'system-images;android-30;google_apis;x86' -g google_apis -d 'pixel'",
"e2e:android-create-emulator": "./create_android_emulator.sh",
"e2e:android-build": "detox build -c android.emu.debug",
"e2e:android-test": "detox test -c android.emu.debug",
"e2e:android-build-release": "detox build -c android.emu.release",
"e2e:android-test-release": "detox test -c android.emu.release --record-logs failing --take-screenshots failing",
"e2e:ios-test": "IOS=true detox test -c ios.sim.debug",
"e2e:ios-build-release": "detox build -c ios.sim.release",
"e2e:ios-test-release": "IOS=true detox test -c ios.sim.release --record-logs failing --take-screenshots failing"
"e2e:ios-test-release": "IOS=true detox test -c ios.sim.release --record-logs failing --take-screenshots failing",
"start:webhook": "node webhook_server.js"
},
"jest": {
"transform": {

View file

@ -2,7 +2,7 @@ require_relative '../node_modules/react-native/scripts/react_native_pods'
require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'
require_relative '../node_modules/react-native-unimodules/cocoapods.rb'
platform :ios, '11.0'
platform :ios, '12.1'
target 'Mattermost' do
# Pods for Mattermost
@ -40,10 +40,13 @@ end
post_install do |installer|
react_native_post_install(installer)
puts 'Patching Alamofire to include X-Uncompressed-Content-Length to measure download progress'
%x(patch Pods/Alamofire/Source/SessionDelegate.swift < patches/SessionDelegate.patch)
puts 'Patching XCDYouTube so it can playback videos'
%x(patch Pods/XCDYouTubeKit/XCDYouTubeKit/XCDYouTubeVideoOperation.m < patches/XCDYouTubeVideoOperation.patch)
installer.pods_project.targets.each do |target|
if target.name != "RCT-Folly"
target.build_configurations.each do |config|
config.build_settings.delete 'IPHONEOS_DEPLOYMENT_TARGET'
end
end
end
end

View file

@ -1,10 +1,10 @@
PODS:
- Alamofire (5.4.3)
- Alamofire (5.4.4)
- boost-for-react-native (1.63.0)
- BVLinearGradient (2.5.6):
- React
- DoubleConversion (1.1.6)
- EXConstants (11.0.1):
- EXConstants (11.0.2):
- ExpoModulesCore
- UMCore
- EXFileSystem (11.1.3):
@ -19,14 +19,15 @@ PODS:
- ExpoModulesCore/Interfaces (0.2.0):
- ExpoModulesCore/Core
- UMCore
- FBLazyVector (0.64.2)
- FBReactNativeSpec (0.64.2):
- RCT-Folly (= 2020.01.13.00)
- RCTRequired (= 0.64.2)
- RCTTypeSafety (= 0.64.2)
- React-Core (= 0.64.2)
- React-jsi (= 0.64.2)
- ReactCommon/turbomodule/core (= 0.64.2)
- FBLazyVector (0.65.1)
- FBReactNativeSpec (0.65.1):
- RCT-Folly (= 2021.04.26.00)
- RCTRequired (= 0.65.1)
- RCTTypeSafety (= 0.65.1)
- React-Core (= 0.65.1)
- React-jsi (= 0.65.1)
- ReactCommon/turbomodule/core (= 0.65.1)
- fmt (6.2.1)
- glog (0.3.5)
- jail-monkey (2.6.0):
- React-Core
@ -43,309 +44,311 @@ PODS:
- RNPermissions
- Permission-PhotoLibrary (3.0.5):
- RNPermissions
- RCT-Folly (2020.01.13.00):
- RCT-Folly (2021.04.26.00):
- boost-for-react-native
- DoubleConversion
- fmt (~> 6.2.1)
- glog
- RCT-Folly/Default (= 2020.01.13.00)
- RCT-Folly/Default (2020.01.13.00):
- RCT-Folly/Default (= 2021.04.26.00)
- RCT-Folly/Default (2021.04.26.00):
- boost-for-react-native
- DoubleConversion
- fmt (~> 6.2.1)
- glog
- RCTRequired (0.64.2)
- RCTTypeSafety (0.64.2):
- FBLazyVector (= 0.64.2)
- RCT-Folly (= 2020.01.13.00)
- RCTRequired (= 0.64.2)
- React-Core (= 0.64.2)
- RCTRequired (0.65.1)
- RCTTypeSafety (0.65.1):
- FBLazyVector (= 0.65.1)
- RCT-Folly (= 2021.04.26.00)
- RCTRequired (= 0.65.1)
- React-Core (= 0.65.1)
- RCTYouTube (2.0.2):
- React
- YoutubePlayer-in-WKWebView (~> 0.3.1)
- React (0.64.2):
- React-Core (= 0.64.2)
- React-Core/DevSupport (= 0.64.2)
- React-Core/RCTWebSocket (= 0.64.2)
- React-RCTActionSheet (= 0.64.2)
- React-RCTAnimation (= 0.64.2)
- React-RCTBlob (= 0.64.2)
- React-RCTImage (= 0.64.2)
- React-RCTLinking (= 0.64.2)
- React-RCTNetwork (= 0.64.2)
- React-RCTSettings (= 0.64.2)
- React-RCTText (= 0.64.2)
- React-RCTVibration (= 0.64.2)
- React-callinvoker (0.64.2)
- React-Core (0.64.2):
- React (0.65.1):
- React-Core (= 0.65.1)
- React-Core/DevSupport (= 0.65.1)
- React-Core/RCTWebSocket (= 0.65.1)
- React-RCTActionSheet (= 0.65.1)
- React-RCTAnimation (= 0.65.1)
- React-RCTBlob (= 0.65.1)
- React-RCTImage (= 0.65.1)
- React-RCTLinking (= 0.65.1)
- React-RCTNetwork (= 0.65.1)
- React-RCTSettings (= 0.65.1)
- React-RCTText (= 0.65.1)
- React-RCTVibration (= 0.65.1)
- React-callinvoker (0.65.1)
- React-Core (0.65.1):
- glog
- RCT-Folly (= 2020.01.13.00)
- React-Core/Default (= 0.64.2)
- React-cxxreact (= 0.64.2)
- React-jsi (= 0.64.2)
- React-jsiexecutor (= 0.64.2)
- React-perflogger (= 0.64.2)
- RCT-Folly (= 2021.04.26.00)
- React-Core/Default (= 0.65.1)
- React-cxxreact (= 0.65.1)
- React-jsi (= 0.65.1)
- React-jsiexecutor (= 0.65.1)
- React-perflogger (= 0.65.1)
- Yoga
- React-Core/CoreModulesHeaders (0.64.2):
- React-Core/CoreModulesHeaders (0.65.1):
- glog
- RCT-Folly (= 2020.01.13.00)
- RCT-Folly (= 2021.04.26.00)
- React-Core/Default
- React-cxxreact (= 0.64.2)
- React-jsi (= 0.64.2)
- React-jsiexecutor (= 0.64.2)
- React-perflogger (= 0.64.2)
- React-cxxreact (= 0.65.1)
- React-jsi (= 0.65.1)
- React-jsiexecutor (= 0.65.1)
- React-perflogger (= 0.65.1)
- Yoga
- React-Core/Default (0.64.2):
- React-Core/Default (0.65.1):
- glog
- RCT-Folly (= 2020.01.13.00)
- React-cxxreact (= 0.64.2)
- React-jsi (= 0.64.2)
- React-jsiexecutor (= 0.64.2)
- React-perflogger (= 0.64.2)
- RCT-Folly (= 2021.04.26.00)
- React-cxxreact (= 0.65.1)
- React-jsi (= 0.65.1)
- React-jsiexecutor (= 0.65.1)
- React-perflogger (= 0.65.1)
- Yoga
- React-Core/DevSupport (0.64.2):
- React-Core/DevSupport (0.65.1):
- glog
- RCT-Folly (= 2020.01.13.00)
- React-Core/Default (= 0.64.2)
- React-Core/RCTWebSocket (= 0.64.2)
- React-cxxreact (= 0.64.2)
- React-jsi (= 0.64.2)
- React-jsiexecutor (= 0.64.2)
- React-jsinspector (= 0.64.2)
- React-perflogger (= 0.64.2)
- RCT-Folly (= 2021.04.26.00)
- React-Core/Default (= 0.65.1)
- React-Core/RCTWebSocket (= 0.65.1)
- React-cxxreact (= 0.65.1)
- React-jsi (= 0.65.1)
- React-jsiexecutor (= 0.65.1)
- React-jsinspector (= 0.65.1)
- React-perflogger (= 0.65.1)
- Yoga
- React-Core/RCTActionSheetHeaders (0.64.2):
- React-Core/RCTActionSheetHeaders (0.65.1):
- glog
- RCT-Folly (= 2020.01.13.00)
- RCT-Folly (= 2021.04.26.00)
- React-Core/Default
- React-cxxreact (= 0.64.2)
- React-jsi (= 0.64.2)
- React-jsiexecutor (= 0.64.2)
- React-perflogger (= 0.64.2)
- React-cxxreact (= 0.65.1)
- React-jsi (= 0.65.1)
- React-jsiexecutor (= 0.65.1)
- React-perflogger (= 0.65.1)
- Yoga
- React-Core/RCTAnimationHeaders (0.64.2):
- React-Core/RCTAnimationHeaders (0.65.1):
- glog
- RCT-Folly (= 2020.01.13.00)
- RCT-Folly (= 2021.04.26.00)
- React-Core/Default
- React-cxxreact (= 0.64.2)
- React-jsi (= 0.64.2)
- React-jsiexecutor (= 0.64.2)
- React-perflogger (= 0.64.2)
- React-cxxreact (= 0.65.1)
- React-jsi (= 0.65.1)
- React-jsiexecutor (= 0.65.1)
- React-perflogger (= 0.65.1)
- Yoga
- React-Core/RCTBlobHeaders (0.64.2):
- React-Core/RCTBlobHeaders (0.65.1):
- glog
- RCT-Folly (= 2020.01.13.00)
- RCT-Folly (= 2021.04.26.00)
- React-Core/Default
- React-cxxreact (= 0.64.2)
- React-jsi (= 0.64.2)
- React-jsiexecutor (= 0.64.2)
- React-perflogger (= 0.64.2)
- React-cxxreact (= 0.65.1)
- React-jsi (= 0.65.1)
- React-jsiexecutor (= 0.65.1)
- React-perflogger (= 0.65.1)
- Yoga
- React-Core/RCTImageHeaders (0.64.2):
- React-Core/RCTImageHeaders (0.65.1):
- glog
- RCT-Folly (= 2020.01.13.00)
- RCT-Folly (= 2021.04.26.00)
- React-Core/Default
- React-cxxreact (= 0.64.2)
- React-jsi (= 0.64.2)
- React-jsiexecutor (= 0.64.2)
- React-perflogger (= 0.64.2)
- React-cxxreact (= 0.65.1)
- React-jsi (= 0.65.1)
- React-jsiexecutor (= 0.65.1)
- React-perflogger (= 0.65.1)
- Yoga
- React-Core/RCTLinkingHeaders (0.64.2):
- React-Core/RCTLinkingHeaders (0.65.1):
- glog
- RCT-Folly (= 2020.01.13.00)
- RCT-Folly (= 2021.04.26.00)
- React-Core/Default
- React-cxxreact (= 0.64.2)
- React-jsi (= 0.64.2)
- React-jsiexecutor (= 0.64.2)
- React-perflogger (= 0.64.2)
- React-cxxreact (= 0.65.1)
- React-jsi (= 0.65.1)
- React-jsiexecutor (= 0.65.1)
- React-perflogger (= 0.65.1)
- Yoga
- React-Core/RCTNetworkHeaders (0.64.2):
- React-Core/RCTNetworkHeaders (0.65.1):
- glog
- RCT-Folly (= 2020.01.13.00)
- RCT-Folly (= 2021.04.26.00)
- React-Core/Default
- React-cxxreact (= 0.64.2)
- React-jsi (= 0.64.2)
- React-jsiexecutor (= 0.64.2)
- React-perflogger (= 0.64.2)
- React-cxxreact (= 0.65.1)
- React-jsi (= 0.65.1)
- React-jsiexecutor (= 0.65.1)
- React-perflogger (= 0.65.1)
- Yoga
- React-Core/RCTSettingsHeaders (0.64.2):
- React-Core/RCTSettingsHeaders (0.65.1):
- glog
- RCT-Folly (= 2020.01.13.00)
- RCT-Folly (= 2021.04.26.00)
- React-Core/Default
- React-cxxreact (= 0.64.2)
- React-jsi (= 0.64.2)
- React-jsiexecutor (= 0.64.2)
- React-perflogger (= 0.64.2)
- React-cxxreact (= 0.65.1)
- React-jsi (= 0.65.1)
- React-jsiexecutor (= 0.65.1)
- React-perflogger (= 0.65.1)
- Yoga
- React-Core/RCTTextHeaders (0.64.2):
- React-Core/RCTTextHeaders (0.65.1):
- glog
- RCT-Folly (= 2020.01.13.00)
- RCT-Folly (= 2021.04.26.00)
- React-Core/Default
- React-cxxreact (= 0.64.2)
- React-jsi (= 0.64.2)
- React-jsiexecutor (= 0.64.2)
- React-perflogger (= 0.64.2)
- React-cxxreact (= 0.65.1)
- React-jsi (= 0.65.1)
- React-jsiexecutor (= 0.65.1)
- React-perflogger (= 0.65.1)
- Yoga
- React-Core/RCTVibrationHeaders (0.64.2):
- React-Core/RCTVibrationHeaders (0.65.1):
- glog
- RCT-Folly (= 2020.01.13.00)
- RCT-Folly (= 2021.04.26.00)
- React-Core/Default
- React-cxxreact (= 0.64.2)
- React-jsi (= 0.64.2)
- React-jsiexecutor (= 0.64.2)
- React-perflogger (= 0.64.2)
- React-cxxreact (= 0.65.1)
- React-jsi (= 0.65.1)
- React-jsiexecutor (= 0.65.1)
- React-perflogger (= 0.65.1)
- Yoga
- React-Core/RCTWebSocket (0.64.2):
- React-Core/RCTWebSocket (0.65.1):
- glog
- RCT-Folly (= 2020.01.13.00)
- React-Core/Default (= 0.64.2)
- React-cxxreact (= 0.64.2)
- React-jsi (= 0.64.2)
- React-jsiexecutor (= 0.64.2)
- React-perflogger (= 0.64.2)
- RCT-Folly (= 2021.04.26.00)
- React-Core/Default (= 0.65.1)
- React-cxxreact (= 0.65.1)
- React-jsi (= 0.65.1)
- React-jsiexecutor (= 0.65.1)
- React-perflogger (= 0.65.1)
- Yoga
- React-CoreModules (0.64.2):
- FBReactNativeSpec (= 0.64.2)
- RCT-Folly (= 2020.01.13.00)
- RCTTypeSafety (= 0.64.2)
- React-Core/CoreModulesHeaders (= 0.64.2)
- React-jsi (= 0.64.2)
- React-RCTImage (= 0.64.2)
- ReactCommon/turbomodule/core (= 0.64.2)
- React-cxxreact (0.64.2):
- React-CoreModules (0.65.1):
- FBReactNativeSpec (= 0.65.1)
- RCT-Folly (= 2021.04.26.00)
- RCTTypeSafety (= 0.65.1)
- React-Core/CoreModulesHeaders (= 0.65.1)
- React-jsi (= 0.65.1)
- React-RCTImage (= 0.65.1)
- ReactCommon/turbomodule/core (= 0.65.1)
- React-cxxreact (0.65.1):
- boost-for-react-native (= 1.63.0)
- DoubleConversion
- glog
- RCT-Folly (= 2020.01.13.00)
- React-callinvoker (= 0.64.2)
- React-jsi (= 0.64.2)
- React-jsinspector (= 0.64.2)
- React-perflogger (= 0.64.2)
- React-runtimeexecutor (= 0.64.2)
- React-jsi (0.64.2):
- RCT-Folly (= 2021.04.26.00)
- React-callinvoker (= 0.65.1)
- React-jsi (= 0.65.1)
- React-jsinspector (= 0.65.1)
- React-perflogger (= 0.65.1)
- React-runtimeexecutor (= 0.65.1)
- React-jsi (0.65.1):
- boost-for-react-native (= 1.63.0)
- DoubleConversion
- glog
- RCT-Folly (= 2020.01.13.00)
- React-jsi/Default (= 0.64.2)
- React-jsi/Default (0.64.2):
- RCT-Folly (= 2021.04.26.00)
- React-jsi/Default (= 0.65.1)
- React-jsi/Default (0.65.1):
- boost-for-react-native (= 1.63.0)
- DoubleConversion
- glog
- RCT-Folly (= 2020.01.13.00)
- React-jsiexecutor (0.64.2):
- RCT-Folly (= 2021.04.26.00)
- React-jsiexecutor (0.65.1):
- DoubleConversion
- glog
- RCT-Folly (= 2020.01.13.00)
- React-cxxreact (= 0.64.2)
- React-jsi (= 0.64.2)
- React-perflogger (= 0.64.2)
- React-jsinspector (0.64.2)
- RCT-Folly (= 2021.04.26.00)
- React-cxxreact (= 0.65.1)
- React-jsi (= 0.65.1)
- React-perflogger (= 0.65.1)
- React-jsinspector (0.65.1)
- react-native-cameraroll (4.0.4):
- React-Core
- react-native-cookies (6.0.8):
- react-native-cookies (6.0.10):
- React-Core
- react-native-document-picker (5.2.0):
- react-native-document-picker (6.0.4):
- React-Core
- react-native-emm (1.1.4):
- react-native-emm (1.1.5):
- React-Core
- react-native-hw-keyboard-event (0.0.4):
- React
- react-native-netinfo (6.0.0):
- react-native-netinfo (6.0.2):
- React-Core
- react-native-network-client (0.1.0):
- Alamofire (~> 5.4)
- React-Core
- Starscream (~> 4.0.4)
- SwiftyJSON (~> 5.0)
- react-native-notifications (4.1.1):
- react-native-notifications (4.1.2):
- React-Core
- react-native-paste-input (0.1.4):
- React-Core
- Swime (= 3.0.6)
- react-native-safe-area-context (3.2.0):
- react-native-safe-area-context (3.3.2):
- React-Core
- react-native-video (5.1.1):
- React-Core
- react-native-video/Video (= 5.1.1)
- react-native-video/Video (5.1.1):
- React-Core
- react-native-webview (11.6.5):
- react-native-webview (11.13.0):
- React-Core
- React-perflogger (0.64.2)
- React-RCTActionSheet (0.64.2):
- React-Core/RCTActionSheetHeaders (= 0.64.2)
- React-RCTAnimation (0.64.2):
- FBReactNativeSpec (= 0.64.2)
- RCT-Folly (= 2020.01.13.00)
- RCTTypeSafety (= 0.64.2)
- React-Core/RCTAnimationHeaders (= 0.64.2)
- React-jsi (= 0.64.2)
- ReactCommon/turbomodule/core (= 0.64.2)
- React-RCTBlob (0.64.2):
- FBReactNativeSpec (= 0.64.2)
- RCT-Folly (= 2020.01.13.00)
- React-Core/RCTBlobHeaders (= 0.64.2)
- React-Core/RCTWebSocket (= 0.64.2)
- React-jsi (= 0.64.2)
- React-RCTNetwork (= 0.64.2)
- ReactCommon/turbomodule/core (= 0.64.2)
- React-RCTImage (0.64.2):
- FBReactNativeSpec (= 0.64.2)
- RCT-Folly (= 2020.01.13.00)
- RCTTypeSafety (= 0.64.2)
- React-Core/RCTImageHeaders (= 0.64.2)
- React-jsi (= 0.64.2)
- React-RCTNetwork (= 0.64.2)
- ReactCommon/turbomodule/core (= 0.64.2)
- React-RCTLinking (0.64.2):
- FBReactNativeSpec (= 0.64.2)
- React-Core/RCTLinkingHeaders (= 0.64.2)
- React-jsi (= 0.64.2)
- ReactCommon/turbomodule/core (= 0.64.2)
- React-RCTNetwork (0.64.2):
- FBReactNativeSpec (= 0.64.2)
- RCT-Folly (= 2020.01.13.00)
- RCTTypeSafety (= 0.64.2)
- React-Core/RCTNetworkHeaders (= 0.64.2)
- React-jsi (= 0.64.2)
- ReactCommon/turbomodule/core (= 0.64.2)
- React-RCTSettings (0.64.2):
- FBReactNativeSpec (= 0.64.2)
- RCT-Folly (= 2020.01.13.00)
- RCTTypeSafety (= 0.64.2)
- React-Core/RCTSettingsHeaders (= 0.64.2)
- React-jsi (= 0.64.2)
- ReactCommon/turbomodule/core (= 0.64.2)
- React-RCTText (0.64.2):
- React-Core/RCTTextHeaders (= 0.64.2)
- React-RCTVibration (0.64.2):
- FBReactNativeSpec (= 0.64.2)
- RCT-Folly (= 2020.01.13.00)
- React-Core/RCTVibrationHeaders (= 0.64.2)
- React-jsi (= 0.64.2)
- ReactCommon/turbomodule/core (= 0.64.2)
- React-runtimeexecutor (0.64.2):
- React-jsi (= 0.64.2)
- ReactCommon/turbomodule/core (0.64.2):
- React-perflogger (0.65.1)
- React-RCTActionSheet (0.65.1):
- React-Core/RCTActionSheetHeaders (= 0.65.1)
- React-RCTAnimation (0.65.1):
- FBReactNativeSpec (= 0.65.1)
- RCT-Folly (= 2021.04.26.00)
- RCTTypeSafety (= 0.65.1)
- React-Core/RCTAnimationHeaders (= 0.65.1)
- React-jsi (= 0.65.1)
- ReactCommon/turbomodule/core (= 0.65.1)
- React-RCTBlob (0.65.1):
- FBReactNativeSpec (= 0.65.1)
- RCT-Folly (= 2021.04.26.00)
- React-Core/RCTBlobHeaders (= 0.65.1)
- React-Core/RCTWebSocket (= 0.65.1)
- React-jsi (= 0.65.1)
- React-RCTNetwork (= 0.65.1)
- ReactCommon/turbomodule/core (= 0.65.1)
- React-RCTImage (0.65.1):
- FBReactNativeSpec (= 0.65.1)
- RCT-Folly (= 2021.04.26.00)
- RCTTypeSafety (= 0.65.1)
- React-Core/RCTImageHeaders (= 0.65.1)
- React-jsi (= 0.65.1)
- React-RCTNetwork (= 0.65.1)
- ReactCommon/turbomodule/core (= 0.65.1)
- React-RCTLinking (0.65.1):
- FBReactNativeSpec (= 0.65.1)
- React-Core/RCTLinkingHeaders (= 0.65.1)
- React-jsi (= 0.65.1)
- ReactCommon/turbomodule/core (= 0.65.1)
- React-RCTNetwork (0.65.1):
- FBReactNativeSpec (= 0.65.1)
- RCT-Folly (= 2021.04.26.00)
- RCTTypeSafety (= 0.65.1)
- React-Core/RCTNetworkHeaders (= 0.65.1)
- React-jsi (= 0.65.1)
- ReactCommon/turbomodule/core (= 0.65.1)
- React-RCTSettings (0.65.1):
- FBReactNativeSpec (= 0.65.1)
- RCT-Folly (= 2021.04.26.00)
- RCTTypeSafety (= 0.65.1)
- React-Core/RCTSettingsHeaders (= 0.65.1)
- React-jsi (= 0.65.1)
- ReactCommon/turbomodule/core (= 0.65.1)
- React-RCTText (0.65.1):
- React-Core/RCTTextHeaders (= 0.65.1)
- React-RCTVibration (0.65.1):
- FBReactNativeSpec (= 0.65.1)
- RCT-Folly (= 2021.04.26.00)
- React-Core/RCTVibrationHeaders (= 0.65.1)
- React-jsi (= 0.65.1)
- ReactCommon/turbomodule/core (= 0.65.1)
- React-runtimeexecutor (0.65.1):
- React-jsi (= 0.65.1)
- ReactCommon/turbomodule/core (0.65.1):
- DoubleConversion
- glog
- RCT-Folly (= 2020.01.13.00)
- React-callinvoker (= 0.64.2)
- React-Core (= 0.64.2)
- React-cxxreact (= 0.64.2)
- React-jsi (= 0.64.2)
- React-perflogger (= 0.64.2)
- RCT-Folly (= 2021.04.26.00)
- React-callinvoker (= 0.65.1)
- React-Core (= 0.65.1)
- React-cxxreact (= 0.65.1)
- React-jsi (= 0.65.1)
- React-perflogger (= 0.65.1)
- ReactNativeART (1.2.0):
- React
- ReactNativeExceptionHandler (2.10.10):
- React-Core
- ReactNativeKeyboardTrackingView (5.7.0):
- React
- ReactNativeNavigation (7.18.1):
- ReactNativeNavigation (7.21.0):
- React-Core
- React-RCTImage
- React-RCTText
- ReactNativeNavigation/Core (= 7.18.1)
- ReactNativeNavigation/Core (7.18.1):
- ReactNativeNavigation/Core (= 7.21.0)
- ReactNativeNavigation/Core (7.21.0):
- React-Core
- React-RCTImage
- React-RCTText
@ -355,29 +358,29 @@ PODS:
- React-Core
- RNCMaskedView (0.1.11):
- React
- RNDeviceInfo (8.1.4):
- RNDeviceInfo (8.3.3):
- React-Core
- RNDevMenu (4.0.2):
- React-Core
- React-Core/DevSupport
- React-RCTNetwork
- RNFastImage (8.3.7):
- RNFastImage (8.5.8):
- React-Core
- SDWebImage (~> 5.8)
- SDWebImageWebPCoder (~> 0.6.1)
- SDWebImage (~> 5.11.1)
- SDWebImageWebPCoder (~> 0.8.4)
- RNFileViewer (2.1.4):
- React-Core
- RNGestureHandler (1.10.3):
- React-Core
- RNKeychain (7.0.0):
- React-Core
- RNLocalize (2.1.1):
- RNLocalize (2.1.4):
- React-Core
- RNPermissions (3.0.5):
- React-Core
- RNReactNativeHapticFeedback (1.11.0):
- React-Core
- RNReanimated (2.3.0-alpha.2):
- RNReanimated (2.2.2):
- DoubleConversion
- FBLazyVector
- FBReactNativeSpec
@ -409,35 +412,35 @@ PODS:
- RNRudderSdk (1.0.0):
- React
- Rudder (>= 1.0.20)
- RNScreens (3.6.0):
- RNScreens (3.7.2):
- React-Core
- React-RCTImage
- RNSentry (2.6.1):
- RNSentry (3.1.1):
- React-Core
- Sentry (= 7.1.4)
- RNShare (6.5.0):
- Sentry (= 7.3.0)
- RNShare (7.1.1):
- React-Core
- RNSVG (12.1.1):
- React
- RNVectorIcons (8.1.0):
- React-Core
- Rudder (1.0.20)
- Rudder (1.0.22)
- SDWebImage (5.11.1):
- SDWebImage/Core (= 5.11.1)
- SDWebImage/Core (5.11.1)
- SDWebImageWebPCoder (0.6.1):
- SDWebImageWebPCoder (0.8.4):
- libwebp (~> 1.0)
- SDWebImage/Core (~> 5.7)
- Sentry (7.1.4):
- Sentry/Core (= 7.1.4)
- Sentry/Core (7.1.4)
- SDWebImage/Core (~> 5.10)
- Sentry (7.3.0):
- Sentry/Core (= 7.3.0)
- Sentry/Core (7.3.0)
- simdjson (0.9.6-fix2)
- Starscream (4.0.4)
- SwiftyJSON (5.0.1)
- Swime (3.0.6)
- UMAppLoader (2.2.0)
- UMCore (7.1.1)
- UMReactNativeAdapter (6.3.5):
- UMCore (7.1.2)
- UMReactNativeAdapter (6.3.7):
- ExpoModulesCore
- React-Core
- UMCore
@ -538,6 +541,7 @@ SPEC REPOS:
trunk:
- Alamofire
- boost-for-react-native
- fmt
- libwebp
- Rudder
- SDWebImage
@ -713,96 +717,97 @@ CHECKOUT OPTIONS:
:git: https://github.com/mattermost/Starscream.git
SPEC CHECKSUMS:
Alamofire: e447a2774a40c996748296fa2c55112fdbbc42f9
Alamofire: f3b09a368f1582ab751b3fff5460276e0d2cf5c9
boost-for-react-native: 39c7adb57c4e60d6c5479dd8623128eb5b3f0f2c
BVLinearGradient: e3aad03778a456d77928f594a649e96995f1c872
DoubleConversion: cf9b38bf0b2d048436d9a82ad2abe1404f11e7de
EXConstants: 3babb61f8f4bb7dffe85b8b7d6eaa31d903e4d7e
DoubleConversion: 831926d9b8bf8166fd87886c4abab286c2422662
EXConstants: 4cb52b6d8f636c767104a44bf7db3873e9c01a6f
EXFileSystem: 0a04aba8da751b9ac954065911bcf166503f8267
ExpoModulesCore: 2734852616127a6c1fc23012197890a6f3763dc7
FBLazyVector: e686045572151edef46010a6f819ade377dfeb4b
FBReactNativeSpec: cef0cc6d50abc92e8cf52f140aa22b5371cfec0b
glog: 73c2498ac6884b13ede40eda8228cb1eee9d9d62
FBLazyVector: 33c82491102f20ecddb6c6a2c273696ace3191e0
FBReactNativeSpec: df8f81d2a7541ee6755a047b398a5cb5a72acd0e
fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9
glog: 5337263514dd6f09803962437687240c5dc39aa4
jail-monkey: 07b83767601a373db876e939b8dbf3f5eb15f073
libwebp: e90b9c01d99205d03b6bb8f2c8c415e5a4ef66f0
Permission-Camera: ac603073e4128e51e6ca3c39129778f05b4082fa
Permission-PhotoLibrary: 0748c1a490fad126dfe36dbea8234dedfe59cc27
RCT-Folly: ec7a233ccc97cc556cf7237f0db1ff65b986f27c
RCTRequired: 6d3e854f0e7260a648badd0d44fc364bc9da9728
RCTTypeSafety: c1f31d19349c6b53085766359caac425926fafaa
RCT-Folly: 0dd9e1eb86348ecab5ba76f910b56f4b5fef3c46
RCTRequired: 6cf071ab2adfd769014b3d94373744ee6e789530
RCTTypeSafety: b829c59453478bb5b02487b8de3336386ab93ab1
RCTYouTube: a8bb45705622a6fc9decf64be04128d3658ed411
React: bda6b6d7ae912de97d7a61aa5c160db24aa2ad69
React-callinvoker: 9840ea7e8e88ed73d438edb725574820b29b5baa
React-Core: b5e385da7ce5f16a220fc60fd0749eae2c6120f0
React-CoreModules: 17071a4e2c5239b01585f4aa8070141168ab298f
React-cxxreact: 9be7b6340ed9f7c53e53deca7779f07cd66525ba
React-jsi: 67747b9722f6dab2ffe15b011bcf6b3f2c3f1427
React-jsiexecutor: 80c46bd381fd06e418e0d4f53672dc1d1945c4c3
React-jsinspector: cc614ec18a9ca96fd275100c16d74d62ee11f0ae
React: 29d8a785041b96a2754c25cc16ddea57b7a618ce
React-callinvoker: 2857b61132bd7878b736e282581f4b42fd93002b
React-Core: 001e21bad5ca41e59e9d90df5c0b53da04c3ce8e
React-CoreModules: 0a0410ab296a62ab38e2f8d321e822d1fcc2fe49
React-cxxreact: 8d904967134ae8ff0119c5357c42eaae976806f8
React-jsi: 12913c841713a15f64eabf5c9ad98592c0ec5940
React-jsiexecutor: 43f2542aed3c26e42175b339f8d37fe3dd683765
React-jsinspector: 41e58e5b8e3e0bf061fdf725b03f2144014a8fb0
react-native-cameraroll: 88f4e62d9ecd0e1f253abe4f685474f2ea14bfa2
react-native-cookies: 2cb6ef472da68610dfcf0eaee68464c244943abd
react-native-document-picker: f1b5398801b332c77bc62ae0eae2116f49bdff26
react-native-emm: 0bb1fcf708a59b20731033b53e1b11287df10086
react-native-cookies: 47ef7ec7839e99f738f6ee64fbb2d4d224e36a65
react-native-document-picker: a7950caaee8587002c9acbc7fe497a342094d93a
react-native-emm: 7b22d6d2f7f68d218e5e2a6149084f0e6bbc4f5e
react-native-hw-keyboard-event: b517cefb8d5c659a38049c582de85ff43337dc53
react-native-netinfo: e849fc21ca2f4128a5726c801a82fc6f4a6db50d
react-native-netinfo: 92e6e4476eb8bf6fc2d7c0a6ca0a1406f663d73a
react-native-network-client: 30ab97e7e6c8d6f2d2b10cc1ebad0cbf9c894c6e
react-native-notifications: b7391a61c9a3919a8cccf6e3a4c542b419cb5ee2
react-native-notifications: 97c14bf84c64bd6a6eb7bdcdb916036d93d33428
react-native-paste-input: 4d6ecc3875153212b5503b6da093277db4ace241
react-native-safe-area-context: f0906bf8bc9835ac9a9d3f97e8bde2a997d8da79
react-native-safe-area-context: 584dc04881deb49474363f3be89e4ca0e854c057
react-native-video: 0bb76b6d6b77da3009611586c7dbf817b947f30e
react-native-webview: 2e8fe70dc32b50d3231c23043f8e8b5a5525d346
React-perflogger: 25373e382fed75ce768a443822f07098a15ab737
React-RCTActionSheet: af7796ba49ffe4ca92e7277a5d992d37203f7da5
React-RCTAnimation: 6a2e76ab50c6f25b428d81b76a5a45351c4d77aa
React-RCTBlob: 02a2887023e0eed99391b6445b2e23a2a6f9226d
React-RCTImage: ce5bf8e7438f2286d9b646a05d6ab11f38b0323d
React-RCTLinking: ccd20742de14e020cb5f99d5c7e0bf0383aefbd9
React-RCTNetwork: dfb9d089ab0753e5e5f55fc4b1210858f7245647
React-RCTSettings: b14aef2d83699e48b410fb7c3ba5b66cd3291ae2
React-RCTText: 41a2e952dd9adc5caf6fb68ed46b275194d5da5f
React-RCTVibration: 24600e3b1aaa77126989bc58b6747509a1ba14f3
React-runtimeexecutor: a9904c6d0218fb9f8b19d6dd88607225927668f9
ReactCommon: 149906e01aa51142707a10665185db879898e966
react-native-webview: 133a6a5149f963259646e710b4545c67ef35d7c9
React-perflogger: fd28ee1f2b5b150b00043f0301d96bd417fdc339
React-RCTActionSheet: 7f3fa0855c346aa5d7c60f9ced16e067db6d29fa
React-RCTAnimation: 2119a18ee26159004b001bc56404ca5dbaae6077
React-RCTBlob: a493cc306deeaba0c0efa8ecec2da154afd3a798
React-RCTImage: 54999ddc896b7db6650af5760607aaebdf30425c
React-RCTLinking: 7fb3fa6397d3700c69c3d361870a299f04f1a2e6
React-RCTNetwork: 329ee4f75bd2deb8cf6c4b14231b5bb272cbd9af
React-RCTSettings: 1a659d58e45719bc77c280dbebce6a5a5a2733f5
React-RCTText: e12d7aae2a038be9ae72815436677a7c6549dd26
React-RCTVibration: 92d41c2442e5328cc4d342cd7f78e5876b68bae5
React-runtimeexecutor: 85187f19dd9c47a7c102f9994f9d14e4dc2110de
ReactCommon: eafed38eec7b591c31751bfa7494801618460459
ReactNativeART: 78edc68dd4a1e675338cd0cd113319cf3a65f2ab
ReactNativeExceptionHandler: b11ff67c78802b2f62eed0e10e75cb1ef7947c60
ReactNativeKeyboardTrackingView: 02137fac3b2ebd330d74fa54ead48b14750a2306
ReactNativeNavigation: 88128fa06b2c349b613e1e0fd3cdff2c58c01c55
ReactNativeNavigation: d6f27d4ba71887a161534a13e8ef3873b26c68b5
RNCAsyncStorage: b03032fdbdb725bea0bd9e5ec5a7272865ae7398
RNCClipboard: 41d8d918092ae8e676f18adada19104fa3e68495
RNCMaskedView: 0e1bc4bfa8365eba5fbbb71e07fbdc0555249489
RNDeviceInfo: 0b3e0154c1c659ea9779cb3e883e66ece92326a9
RNDeviceInfo: cc7de0772378f85d8f36ae439df20f05c590a651
RNDevMenu: fd325b5554b61fe7f48d9205a3877cf5ee88cd7c
RNFastImage: a7384db75df352500261e8e8f1ac2026def26102
RNFastImage: adef7f9c9a7aeca0141807ee5a8be8a3eb240dd8
RNFileViewer: 83cc066ad795b1f986791d03b56fe0ee14b6a69f
RNGestureHandler: a479ebd5ed4221a810967000735517df0d2db211
RNKeychain: f75b8c8b2f17d3b2aa1f25b4a0ac5b83d947ff8f
RNLocalize: 82a569022724d35461e2dc5b5d015a13c3ca995b
RNLocalize: 7f1e5792b65a839af55a9552d05b3558b66d017e
RNPermissions: 7043bacbf928eae25808275cfe73799b8f618911
RNReactNativeHapticFeedback: 653a8c126a0f5e88ce15ffe280b3ff37e1fbb285
RNReanimated: daebbd404c0cd9df6daa248d63dd940086bea9ff
RNReanimated: ad24db8af24e3fe1b5c462785bc3db8d5baae2ee
RNRudderSdk: 9aa881c2bf754dc3b05e392340a5e3663a970f0a
RNScreens: eb0dfb2d6b21d2d7f980ad46b14eb306d2f1062e
RNSentry: af7873b080a0beb74c020644644d247ef4771644
RNShare: 047d42214f875d731bde73a2b67418638af85ad9
RNScreens: 0591543e343c7444ea1756b6265d81a4295922c9
RNSentry: 49abc89b0190b4c8afe0fa5d065f98e36cb53233
RNShare: a22398d8d02336133e28bf8b6e0b47b31abade41
RNSVG: 551acb6562324b1d52a4e0758f7ca0ec234e278f
RNVectorIcons: 31cebfcf94e8cf8686eb5303ae0357da64d7a5a4
Rudder: 3eae52018e1a401d3610b3f16f6210026eb327c8
Rudder: 7fbbef54490e237945a6f3434a44cacaf27eed11
SDWebImage: a7f831e1a65eb5e285e3fb046a23fcfbf08e696d
SDWebImageWebPCoder: d0dac55073088d24b2ac1b191a71a8f8d0adac21
Sentry: 1d3eb1a25f8c5333c88dd5603904a6d461cd9fcf
SDWebImageWebPCoder: f93010f3f6c031e2f8fb3081ca4ee6966c539815
Sentry: 9a4e621430e2dae4477d791f2f7e905720b6efbf
simdjson: 85016870cd17207312b718ef6652eb6a1cd6a2b0
Starscream: 5178aed56b316f13fa3bc55694e583d35dd414d9
SwiftyJSON: 2f33a42c6fbc52764d96f13368585094bfd8aa5e
Swime: d7b2c277503b6cea317774aedc2dce05613f8b0b
UMAppLoader: 21af63390e55c82e037fb9752d93114a80ecf16e
UMCore: 2f671796d7439604a1cf8ac7bbe5809cd5c50437
UMReactNativeAdapter: f808906d586a16cebdc3844d86e1bdb8f114a873
UMCore: ce3a4faa010239063b8343895b29a6d97b01069d
UMReactNativeAdapter: bb7922210cf6fdb5768f78685f3c3a2060299119
UMTaskManagerInterface: 2be431101b73604e64fbfffcf759336f9d8fccbb
WatermelonDB: 577c61fceff16e9f9103b59d14aee4850c0307b6
XCDYouTubeKit: 79baadb0560673a67c771eba45f83e353fd12c1f
Yoga: 575c581c63e0d35c9a83f4b46d01d63abc1100ac
Yoga: aa0cb45287ebe1004c02a13f279c55a95f1572f4
YoutubePlayer-in-WKWebView: cfbf46da51d7370662a695a8f351e5fa1d3e1008
PODFILE CHECKSUM: ffe54846de075924f3ae637c97a327da67ac16d0
PODFILE CHECKSUM: a683a67f7ec27df6f844b6fde68d22067f26eea3
COCOAPODS: 1.10.1

29881
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -7,14 +7,14 @@
"license": "Apache 2.0",
"private": true,
"dependencies": {
"@babel/runtime": "7.14.8",
"@formatjs/intl-datetimeformat": "4.2.0",
"@formatjs/intl-getcanonicallocales": "1.7.1",
"@formatjs/intl-locale": "2.4.34",
"@formatjs/intl-numberformat": "7.2.0",
"@formatjs/intl-pluralrules": "4.1.0",
"@formatjs/intl-relativetimeformat": "9.2.0",
"@mattermost/react-native-emm": "1.1.4",
"@babel/runtime": "7.15.4",
"@formatjs/intl-datetimeformat": "4.2.3",
"@formatjs/intl-getcanonicallocales": "1.7.3",
"@formatjs/intl-locale": "2.4.37",
"@formatjs/intl-numberformat": "7.2.3",
"@formatjs/intl-pluralrules": "4.1.3",
"@formatjs/intl-relativetimeformat": "9.2.3",
"@mattermost/react-native-emm": "1.1.5",
"@mattermost/react-native-network-client": "github:mattermost/react-native-network-client",
"@mattermost/react-native-paste-input": "0.1.4",
"@nozbe/watermelondb": "0.23.0",
@ -24,12 +24,12 @@
"@react-native-community/cameraroll": "4.0.4",
"@react-native-community/clipboard": "1.5.1",
"@react-native-community/masked-view": "0.1.11",
"@react-native-community/netinfo": "6.0.0",
"@react-native-cookies/cookies": "6.0.8",
"@react-native-community/netinfo": "6.0.2",
"@react-native-cookies/cookies": "6.0.10",
"@react-navigation/bottom-tabs": "6.0.5",
"@react-navigation/native": "6.0.2",
"@rudderstack/rudder-sdk-react-native": "1.0.12",
"@sentry/react-native": "2.6.1",
"@sentry/react-native": "3.1.1",
"@types/mime-db": "1.43.1",
"commonmark": "0.30.0",
"commonmark-react-renderer": "4.3.5",
@ -38,21 +38,20 @@
"emoji-regex": "9.2.2",
"fuse.js": "6.4.6",
"jail-monkey": "2.6.0",
"mime-db": "1.49.0",
"mime-db": "1.50.0",
"moment-timezone": "0.5.33",
"nock": "13.1.1",
"prop-types": "15.7.2",
"react": "17.0.2",
"react-intl": "5.20.6",
"react-native": "0.64.2",
"react-intl": "5.20.10",
"react-native": "0.65.1",
"react-native-android-open-settings": "1.3.0",
"react-native-button": "3.0.1",
"react-native-calendars": "1.1264.0",
"react-native-device-info": "8.1.4",
"react-native-document-picker": "5.2.0",
"react-native-calendars": "1.1266.0",
"react-native-device-info": "8.3.3",
"react-native-document-picker": "6.0.4",
"react-native-elements": "3.4.2",
"react-native-exception-handler": "2.10.10",
"react-native-fast-image": "8.3.7",
"react-native-fast-image": "8.5.8",
"react-native-file-viewer": "2.1.4",
"react-native-gesture-handler": "1.10.3",
"react-native-haptic-feedback": "1.11.0",
@ -61,22 +60,22 @@
"react-native-keyboard-tracking-view": "5.7.0",
"react-native-keychain": "7.0.0",
"react-native-linear-gradient": "2.5.6",
"react-native-localize": "2.1.1",
"react-native-navigation": "7.18.1",
"react-native-localize": "2.1.4",
"react-native-navigation": "7.21.0",
"react-native-neomorph-shadows": "1.1.2",
"react-native-notifications": "4.1.1",
"react-native-notifications": "4.1.2",
"react-native-permissions": "3.0.5",
"react-native-reanimated": "2.3.0-alpha.2",
"react-native-redash": "16.1.1",
"react-native-safe-area-context": "3.2.0",
"react-native-screens": "3.6.0",
"react-native-share": "6.5.0",
"react-native-reanimated": "2.2.2",
"react-native-redash": "16.2.2",
"react-native-safe-area-context": "3.3.2",
"react-native-screens": "3.7.2",
"react-native-share": "7.1.1",
"react-native-slider": "0.11.0",
"react-native-svg": "12.1.1",
"react-native-unimodules": "0.14.6",
"react-native-unimodules": "0.14.8",
"react-native-vector-icons": "8.1.0",
"react-native-video": "5.1.1",
"react-native-webview": "11.6.5",
"react-native-webview": "11.13.0",
"react-native-youtube": "2.0.2",
"reanimated-bottom-sheet": "1.0.0-alpha.22",
"rn-placeholder": "3.0.3",
@ -87,63 +86,65 @@
"url-parse": "1.5.3"
},
"devDependencies": {
"@babel/cli": "7.14.8",
"@babel/core": "7.14.8",
"@babel/cli": "7.15.7",
"@babel/core": "7.15.5",
"@babel/plugin-proposal-class-properties": "7.14.5",
"@babel/plugin-proposal-decorators": "7.14.5",
"@babel/plugin-proposal-decorators": "7.15.4",
"@babel/plugin-transform-flow-strip-types": "7.14.5",
"@babel/plugin-transform-runtime": "7.14.5",
"@babel/preset-env": "7.14.8",
"@babel/preset-typescript": "7.14.5",
"@babel/register": "7.14.5",
"@react-native-community/eslint-config": "3.0.0",
"@babel/plugin-transform-runtime": "7.15.0",
"@babel/preset-env": "7.15.6",
"@babel/preset-typescript": "7.15.0",
"@babel/register": "7.15.3",
"@react-native-community/eslint-config": "3.0.1",
"@testing-library/react-native": "7.2.0",
"@types/commonmark": "0.27.5",
"@types/commonmark-react-renderer": "4.3.1",
"@types/deep-equal": "1.0.1",
"@types/jest": "26.0.24",
"@types/react": "17.0.15",
"@types/jest": "27.0.2",
"@types/react": "17.0.24",
"@types/react-intl": "3.0.0",
"@types/react-native": "0.64.12",
"@types/react-native": "0.65.1",
"@types/react-native-button": "3.0.1",
"@types/react-native-share": "3.3.3",
"@types/react-native-video": "5.0.8",
"@types/react-native-video": "5.0.9",
"@types/react-test-renderer": "17.0.1",
"@types/semver": "7.3.8",
"@types/shallow-equals": "1.0.0",
"@types/tinycolor2": "1.4.3",
"@types/url-parse": "1.4.3",
"@typescript-eslint/eslint-plugin": "4.28.5",
"@typescript-eslint/parser": "4.28.5",
"@types/url-parse": "1.4.4",
"@typescript-eslint/eslint-plugin": "4.31.2",
"@typescript-eslint/parser": "4.31.2",
"babel-eslint": "10.1.0",
"babel-jest": "27.0.6",
"babel-jest": "27.2.1",
"babel-loader": "8.2.2",
"babel-plugin-module-resolver": "4.1.0",
"babel-plugin-transform-remove-console": "6.9.4",
"deep-freeze": "0.0.1",
"detox": "18.20.0",
"eslint": "7.31.0",
"detox": "18.20.4",
"eslint": "7.32.0",
"eslint-plugin-header": "3.1.1",
"eslint-plugin-import": "2.23.4",
"eslint-plugin-jest": "24.4.0",
"eslint-plugin-import": "2.24.2",
"eslint-plugin-jest": "24.4.2",
"eslint-plugin-mattermost": "github:mattermost/eslint-plugin-mattermost#46ad99355644a719bf32082f472048f526605181",
"eslint-plugin-react": "7.24.0",
"eslint-plugin-react": "7.26.0",
"eslint-plugin-react-hooks": "4.2.0",
"husky": "7.0.1",
"husky": "7.0.2",
"isomorphic-fetch": "3.0.0",
"jest": "26.6.3",
"jest-cli": "26.6.3",
"jest": "27.2.1",
"jest-cli": "27.2.1",
"jetifier": "2.0.0",
"metro-react-native-babel-preset": "0.66.2",
"mmjstool": "github:mattermost/mattermost-utilities#519b99a4e51e6c67a0dbd46a6efdff27dc835aaa",
"mock-async-storage": "2.2.0",
"nock": "13.1.3",
"patch-package": "6.4.7",
"react-native-codegen": "0.0.8",
"react-native-dev-menu": "4.0.2",
"react-native-dotenv": "3.1.1",
"react-native-dotenv": "3.2.0",
"react-native-storybook-loader": "2.0.4",
"react-test-renderer": "17.0.2",
"ts-jest": "27.0.4",
"typescript": "4.3.5",
"ts-jest": "27.0.5",
"typescript": "4.4.3",
"underscore": "1.13.1",
"util": "0.12.4"
},
@ -171,7 +172,7 @@
"prestorybook": "rnstl",
"start": "react-native start",
"storybook": "start-storybook -p 7007",
"test": "jest --forceExit --runInBand --detectOpenHandles",
"test": "jest --forceExit --runInBand",
"test:coverage": "jest --coverage",
"test:watch": "npm test -- --watch",
"tsc": "NODE_OPTIONS=--max_old_space_size=12000 tsc --noEmit",

View file

@ -1,8 +1,29 @@
diff --git a/node_modules/react-native/Libraries/Components/ScrollView/ScrollView.js b/node_modules/react-native/Libraries/Components/ScrollView/ScrollView.js
index 8eca425..f0df04f 100644
--- a/node_modules/react-native/Libraries/Components/ScrollView/ScrollView.js
+++ b/node_modules/react-native/Libraries/Components/ScrollView/ScrollView.js
@@ -1768,9 +1768,15 @@ class ScrollView extends React.Component<Props, State> {
// Note: we should split props.style on the inner and outer props
// however, the ScrollView still needs the baseStyle to be scrollable
const {outer, inner} = splitLayoutProps(flattenStyle(props.style));
+ let inverted;
+ if (inner.scaleY) {
+ inverted = {scaleY: -1};
+ delete inner['scaleY']
+ }
+
return React.cloneElement(
refreshControl,
- {style: StyleSheet.compose(baseStyle, outer)},
+ {style: [baseStyle, outer, inverted]},
<NativeDirectionalScrollView
{...props}
style={StyleSheet.compose(baseStyle, inner)}
diff --git a/node_modules/react-native/Libraries/Lists/VirtualizedList.js b/node_modules/react-native/Libraries/Lists/VirtualizedList.js
index 2249d54..cc303b3 100644
index a7c1567..1531a45 100644
--- a/node_modules/react-native/Libraries/Lists/VirtualizedList.js
+++ b/node_modules/react-native/Libraries/Lists/VirtualizedList.js
@@ -18,6 +18,7 @@ const ScrollView = require('../Components/ScrollView/ScrollView');
@@ -16,6 +16,7 @@ const ScrollView = require('../Components/ScrollView/ScrollView');
const StyleSheet = require('../StyleSheet/StyleSheet');
const View = require('../Components/View/View');
const ViewabilityHelper = require('./ViewabilityHelper');
@ -10,7 +31,7 @@ index 2249d54..cc303b3 100644
const flattenStyle = require('../StyleSheet/flattenStyle');
const infoLog = require('../Utilities/infoLog');
@@ -2061,7 +2062,14 @@ function describeNestedLists(childList: {
@@ -2122,7 +2123,14 @@ function describeNestedLists(childList: {
const styles = StyleSheet.create({
verticallyInverted: {
@ -27,19 +48,19 @@ index 2249d54..cc303b3 100644
horizontallyInverted: {
transform: [{scaleX: -1}],
diff --git a/node_modules/react-native/react.gradle b/node_modules/react-native/react.gradle
index 5995ad5..dbae7e3 100644
index 84b1f60..0ffc592 100644
--- a/node_modules/react-native/react.gradle
+++ b/node_modules/react-native/react.gradle
@@ -157,7 +157,7 @@ afterEvaluate {
@@ -151,7 +151,7 @@ afterEvaluate {
// Set up dev mode
def devEnabled = !(config."devDisabledIn${targetName}"
- || targetName.toLowerCase().contains("release"))
+ || targetName.toLowerCase().contains("release") || targetName.toLowerCase().contains("unsigned"))
def extraArgs = config.extraPackagerArgs ?: [];
def extraArgs = []
@@ -177,7 +177,7 @@ afterEvaluate {
@@ -180,7 +180,7 @@ afterEvaluate {
def hermesFlags;
def hbcTempFile = file("${jsBundleFile}.hbc")
exec {
@ -48,7 +69,7 @@ index 5995ad5..dbae7e3 100644
// Can't use ?: since that will also substitute valid empty lists
hermesFlags = config.hermesFlagsRelease
if (hermesFlags == null) hermesFlags = ["-O", "-output-source-map"]
@@ -221,7 +221,7 @@ afterEvaluate {
@@ -224,7 +224,7 @@ afterEvaluate {
? config."bundleIn${targetName}"
: config."bundleIn${variant.buildType.name.capitalize()}" != null
? config."bundleIn${variant.buildType.name.capitalize()}"
@ -57,8 +78,8 @@ index 5995ad5..dbae7e3 100644
}
// Expose a minimal interface on the application variant and the task itself:
@@ -318,7 +318,7 @@ afterEvaluate {
// This should really be done by packaging all Hermes releated libs into
@@ -321,7 +321,7 @@ afterEvaluate {
// This should really be done by packaging all Hermes related libs into
// two separate HermesDebug and HermesRelease AARs, but until then we'll
// kludge it by deleting the .so files out of the /transforms/ directory.
- def isRelease = targetName.toLowerCase().contains("release")

View file

@ -1,15 +0,0 @@
diff --git a/node_modules/react-native-fast-image/dist/index.d.ts b/node_modules/react-native-fast-image/dist/index.d.ts
index 0b1afd5..2226715 100644
--- a/node_modules/react-native-fast-image/dist/index.d.ts
+++ b/node_modules/react-native-fast-image/dist/index.d.ts
@@ -89,6 +89,10 @@ export interface FastImageProps extends AccessibilityProps {
* Render children within the image.
*/
children?: React.ReactNode;
+ /**
+ * Native ID to used with shared elements transition
+ */
+ nativeID?: string;
}
interface FastImageStaticProperties {
resizeMode: typeof resizeMode;

View file

@ -0,0 +1,78 @@
diff --git a/node_modules/react-native-fast-image/android/src/main/java/com/dylanvann/fastimage/FastImageCookieJar.java b/node_modules/react-native-fast-image/android/src/main/java/com/dylanvann/fastimage/FastImageCookieJar.java
new file mode 100644
index 0000000..a302394
--- /dev/null
+++ b/node_modules/react-native-fast-image/android/src/main/java/com/dylanvann/fastimage/FastImageCookieJar.java
@@ -0,0 +1,45 @@
+package com.dylanvann.fastimage;
+
+import android.webkit.CookieManager;
+
+import java.util.Collections;
+import java.util.LinkedList;
+import java.util.List;
+
+import okhttp3.Cookie;
+import okhttp3.CookieJar;
+import okhttp3.HttpUrl;
+
+public class FastImageCookieJar implements CookieJar {
+ private CookieManager cookieManager;
+
+ private CookieManager getCookieManager() {
+ if (cookieManager == null) {
+ cookieManager = CookieManager.getInstance();
+ }
+
+ return cookieManager;
+ }
+
+ @Override
+ public void saveFromResponse(HttpUrl url, List<Cookie> cookies) {
+ // Do nothing
+ }
+
+ @Override
+ public List<Cookie> loadForRequest(HttpUrl url) {
+ String cookie = getCookieManager().getCookie(url.toString());
+
+ if (cookie == null || cookie.isEmpty()) {
+ return Collections.emptyList();
+ }
+
+ String[] pairs = cookie.split(";");
+ List<Cookie> cookies = new LinkedList<Cookie>();
+ for (String pair : pairs) {
+ cookies.add(Cookie.parse(url, pair));
+ }
+
+ return cookies;
+ }
+}
diff --git a/node_modules/react-native-fast-image/android/src/main/java/com/dylanvann/fastimage/FastImageOkHttpProgressGlideModule.java b/node_modules/react-native-fast-image/android/src/main/java/com/dylanvann/fastimage/FastImageOkHttpProgressGlideModule.java
index e659a61..1bdf34e 100644
--- a/node_modules/react-native-fast-image/android/src/main/java/com/dylanvann/fastimage/FastImageOkHttpProgressGlideModule.java
+++ b/node_modules/react-native-fast-image/android/src/main/java/com/dylanvann/fastimage/FastImageOkHttpProgressGlideModule.java
@@ -43,6 +43,7 @@ public class FastImageOkHttpProgressGlideModule extends LibraryGlideModule {
OkHttpClient client = OkHttpClientProvider
.getOkHttpClient()
.newBuilder()
+ .cookieJar(new FastImageCookieJar())
.addInterceptor(createInterceptor(progressListener))
.build();
OkHttpUrlLoader.Factory factory = new OkHttpUrlLoader.Factory(client);
diff --git a/node_modules/react-native-fast-image/dist/index.d.ts b/node_modules/react-native-fast-image/dist/index.d.ts
index 956fe5b..394db9a 100644
--- a/node_modules/react-native-fast-image/dist/index.d.ts
+++ b/node_modules/react-native-fast-image/dist/index.d.ts
@@ -89,6 +89,10 @@ export interface FastImageProps extends AccessibilityProps {
* Render children within the image.
*/
children?: React.ReactNode;
+ /**
+ * Native ID to used with shared elements transition
+ */
+ nativeID?: string;
}
export interface FastImageStaticProperties {
resizeMode: typeof resizeMode;

View file

@ -0,0 +1,19 @@
diff --git a/node_modules/react-native-keyboard-aware-scroll-view/lib/KeyboardAwareHOC.js b/node_modules/react-native-keyboard-aware-scroll-view/lib/KeyboardAwareHOC.js
index 3d94b82..88b037c 100644
--- a/node_modules/react-native-keyboard-aware-scroll-view/lib/KeyboardAwareHOC.js
+++ b/node_modules/react-native-keyboard-aware-scroll-view/lib/KeyboardAwareHOC.js
@@ -273,12 +273,12 @@ function KeyboardAwareHOC(
scrollToPosition = (x: number, y: number, animated: boolean = true) => {
const responder = this.getScrollResponder()
- responder && responder.scrollResponderScrollTo({ x, y, animated })
+ responder && responder.scrollTo({ x, y, animated })
}
scrollToEnd = (animated?: boolean = true) => {
const responder = this.getScrollResponder()
- responder && responder.scrollResponderScrollToEnd({ animated })
+ responder && responder.scrollToEnd({ animated })
}
scrollForExtraHeightOnAndroid = (extraHeight: number) => {

View file

@ -1,8 +1,8 @@
diff --git a/node_modules/react-native-navigation/lib/android/app/src/main/java/com/reactnativenavigation/react/NavigationModule.java b/node_modules/react-native-navigation/lib/android/app/src/main/java/com/reactnativenavigation/react/NavigationModule.java
index 2b30edf..5d01be0 100644
index 3eb6609..68a68bf 100644
--- a/node_modules/react-native-navigation/lib/android/app/src/main/java/com/reactnativenavigation/react/NavigationModule.java
+++ b/node_modules/react-native-navigation/lib/android/app/src/main/java/com/reactnativenavigation/react/NavigationModule.java
@@ -33,6 +33,8 @@ import androidx.annotation.Nullable;
@@ -33,6 +33,8 @@ import java.util.ArrayList;
import static com.reactnativenavigation.utils.UiUtils.pxToDp;
@ -100,18 +100,18 @@ index 2b30edf..5d01be0 100644
super.onCatalystInstanceDestroy();
}
diff --git a/node_modules/react-native-navigation/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/component/ComponentViewController.java b/node_modules/react-native-navigation/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/component/ComponentViewController.java
index 94e2a9b..ea77732 100644
index 51837db..14a5828 100644
--- a/node_modules/react-native-navigation/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/component/ComponentViewController.java
+++ b/node_modules/react-native-navigation/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/component/ComponentViewController.java
@@ -3,6 +3,7 @@ package com.reactnativenavigation.viewcontrollers.component;
import android.app.Activity;
@@ -4,6 +4,7 @@ import android.app.Activity;
import android.content.res.Configuration;
import android.view.View;
+import com.reactnativenavigation.options.params.NullBool;
import com.reactnativenavigation.viewcontrollers.viewcontroller.ScrollEventListener;
import com.reactnativenavigation.options.Options;
import com.reactnativenavigation.viewcontrollers.viewcontroller.Presenter;
@@ -147,7 +148,7 @@ public class ComponentViewController extends ChildController<ComponentLayout> {
@@ -148,7 +149,7 @@ public class ComponentViewController extends ChildController<ComponentLayout> {
@Override
public void destroy() {
@ -120,18 +120,6 @@ index 94e2a9b..ea77732 100644
if (blurOnUnmount) {
blurActivityFocus();
}
diff --git a/node_modules/react-native-navigation/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/viewcontroller/ViewController.java b/node_modules/react-native-navigation/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/viewcontroller/ViewController.java
index 1e5751e..5117993 100644
--- a/node_modules/react-native-navigation/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/viewcontroller/ViewController.java
+++ b/node_modules/react-native-navigation/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/viewcontroller/ViewController.java
@@ -9,7 +9,6 @@ import android.view.ViewTreeObserver;
import androidx.annotation.CallSuper;
import androidx.annotation.CheckResult;
import androidx.annotation.Nullable;
-import androidx.annotation.RestrictTo;
import androidx.annotation.VisibleForTesting;
import androidx.coordinatorlayout.widget.CoordinatorLayout;
diff --git a/node_modules/react-native-navigation/lib/ios/RNNOverlayWindow.m b/node_modules/react-native-navigation/lib/ios/RNNOverlayWindow.m
index 934e7e7..19169a3 100644
--- a/node_modules/react-native-navigation/lib/ios/RNNOverlayWindow.m

View file

@ -10,7 +10,7 @@ interface Session {
}
interface LoginActionResponse {
error?: ClientErrorProps | string;
error?: ClientErrorProps | Error | string;
hasTeams?: boolean;
failed: boolean;
time?: number;