forked from Ivasoft/mattermost-mobile
release-2.6 #4
@@ -110,8 +110,8 @@ android {
|
||||
applicationId "com.mattermost.rnbeta"
|
||||
minSdkVersion rootProject.ext.minSdkVersion
|
||||
targetSdkVersion rootProject.ext.targetSdkVersion
|
||||
versionCode 476
|
||||
versionName "2.5.1"
|
||||
versionCode 479
|
||||
versionName "2.6.0"
|
||||
testBuildType System.getProperty('testBuildType', 'debug')
|
||||
testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ public class Network {
|
||||
private static final Promise emptyPromise = new ResolvePromise();
|
||||
|
||||
public static void init(Context context) {
|
||||
final ReactApplicationContext reactContext = new ReactApplicationContext(context);
|
||||
final ReactApplicationContext reactContext = (APIClientModule.context == null) ? new ReactApplicationContext(context) : APIClientModule.context;
|
||||
clientModule = new APIClientModule(reactContext);
|
||||
createClientOptions();
|
||||
}
|
||||
|
||||
@@ -221,6 +221,11 @@ public class MattermostManagedModule extends ReactContextBaseJavaModule {
|
||||
}
|
||||
}
|
||||
|
||||
@ReactMethod
|
||||
public void invalidateKeychainCache(String serverUrl) {
|
||||
// Not using cache
|
||||
}
|
||||
|
||||
private static class SaveDataTask extends GuardedResultAsyncTask<Object> {
|
||||
private final WeakReference<Context> weakContext;
|
||||
private final String fromFile;
|
||||
|
||||
@@ -180,6 +180,13 @@ export const backgroundNotification = async (serverUrl: string, notification: No
|
||||
};
|
||||
|
||||
export const openNotification = async (serverUrl: string, notification: NotificationWithData) => {
|
||||
// Wait for initial launch to kick in if needed
|
||||
await new Promise((r) => setTimeout(r, 500));
|
||||
|
||||
if (EphemeralStore.getProcessingNotification() === notification.identifier) {
|
||||
return {};
|
||||
}
|
||||
|
||||
EphemeralStore.setNotificationTapped(true);
|
||||
|
||||
const channelId = notification.payload!.channel_id!;
|
||||
|
||||
@@ -13,13 +13,13 @@ import {useTheme} from '@context/theme';
|
||||
import {nonBreakingString} from '@utils/strings';
|
||||
import {makeStyleSheetFromTheme, changeOpacity} from '@utils/theme';
|
||||
import {typography} from '@utils/typography';
|
||||
import {displayUsername, getUserCustomStatus, isBot, isCustomStatusExpired, isGuest, isShared} from '@utils/user';
|
||||
import {displayUsername, getUserCustomStatus, isBot, isCustomStatusExpired, isDeactivated, isGuest, isShared} from '@utils/user';
|
||||
|
||||
import type UserModel from '@typings/database/models/servers/user';
|
||||
|
||||
type AtMentionItemProps = {
|
||||
FooterComponent?: ReactNode;
|
||||
user: UserProfile | UserModel;
|
||||
user?: UserProfile | UserModel;
|
||||
containerStyle?: StyleProp<ViewStyle>;
|
||||
currentUserId: string;
|
||||
includeMargin?: boolean;
|
||||
@@ -115,13 +115,12 @@ const UserItem = ({
|
||||
const bot = user ? isBot(user) : false;
|
||||
const guest = user ? isGuest(user.roles) : false;
|
||||
const shared = user ? isShared(user) : false;
|
||||
const deactivated = user ? isDeactivated(user) : false;
|
||||
|
||||
const isCurrentUser = currentUserId === user?.id;
|
||||
const customStatus = getUserCustomStatus(user);
|
||||
const customStatusExpired = isCustomStatusExpired(user);
|
||||
|
||||
const deleteAt = 'deleteAt' in user ? user.deleteAt : user.delete_at;
|
||||
|
||||
let displayName = displayUsername(user, locale, teammateNameDisplay);
|
||||
const showTeammateDisplay = displayName !== user?.username;
|
||||
if (isCurrentUser) {
|
||||
@@ -142,11 +141,15 @@ const UserItem = ({
|
||||
}, [disabled, padding, includeMargin]);
|
||||
|
||||
const onPress = useCallback(() => {
|
||||
onUserPress?.(user);
|
||||
if (user) {
|
||||
onUserPress?.(user);
|
||||
}
|
||||
}, [user, onUserPress]);
|
||||
|
||||
const onLongPress = useCallback(() => {
|
||||
onUserLongPress?.(user);
|
||||
if (user) {
|
||||
onUserLongPress?.(user);
|
||||
}
|
||||
}, [user, onUserLongPress]);
|
||||
|
||||
return (
|
||||
@@ -175,15 +178,15 @@ const UserItem = ({
|
||||
testID={`${userItemTestId}.display_name`}
|
||||
>
|
||||
{nonBreakingString(displayName)}
|
||||
{Boolean(showTeammateDisplay) && (
|
||||
{Boolean(showTeammateDisplay) && Boolean(user?.username) && (
|
||||
<Text
|
||||
style={style.rowUsername}
|
||||
testID={`${userItemTestId}.username`}
|
||||
>
|
||||
{nonBreakingString(` @${user!.username}`)}
|
||||
{nonBreakingString(` @${user?.username}`)}
|
||||
</Text>
|
||||
)}
|
||||
{Boolean(deleteAt) && (
|
||||
{deactivated && (
|
||||
<Text
|
||||
style={style.rowUsername}
|
||||
testID={`${userItemTestId}.deactivated`}
|
||||
|
||||
@@ -12,8 +12,17 @@ import SessionManager from '@managers/session_manager';
|
||||
import WebsocketManager from '@managers/websocket_manager';
|
||||
import {registerScreens} from '@screens/index';
|
||||
import {registerNavigationListeners} from '@screens/navigation';
|
||||
import EphemeralStore from '@store/ephemeral_store';
|
||||
import NavigationStore from '@store/navigation_store';
|
||||
|
||||
// Controls whether the main initialization (database, etc...) is done, either on app launch
|
||||
// or on the Share Extension, for example.
|
||||
let baseAppInitialized = false;
|
||||
|
||||
// Controls whether the app initialization (websockets, screen listeners, etc...) is done, mainly
|
||||
// on app launch
|
||||
let mainAppInitialized = false;
|
||||
|
||||
let alreadyInitialized = false;
|
||||
let serverCredentials: ServerCredential[];
|
||||
|
||||
// Fallback Polyfill for Promise.allSettle
|
||||
@@ -31,8 +40,8 @@ Promise.allSettled = Promise.allSettled || (<T>(promises: Array<Promise<T>>) =>
|
||||
));
|
||||
|
||||
export async function initialize() {
|
||||
if (!alreadyInitialized) {
|
||||
alreadyInitialized = true;
|
||||
if (!baseAppInitialized) {
|
||||
baseAppInitialized = true;
|
||||
serverCredentials = await getAllServerCredentials();
|
||||
const serverUrls = serverCredentials.map((credential) => credential.serverUrl);
|
||||
|
||||
@@ -46,12 +55,25 @@ export async function initialize() {
|
||||
}
|
||||
|
||||
export async function start() {
|
||||
if (baseAppInitialized) {
|
||||
// Clean relevant information on ephemeral stores
|
||||
NavigationStore.reset();
|
||||
EphemeralStore.setCurrentThreadId('');
|
||||
EphemeralStore.setProcessingNotification('');
|
||||
}
|
||||
|
||||
await initialize();
|
||||
|
||||
PushNotifications.init(serverCredentials.length > 0);
|
||||
if (!mainAppInitialized) {
|
||||
mainAppInitialized = true;
|
||||
|
||||
PushNotifications.init(serverCredentials.length > 0);
|
||||
|
||||
registerNavigationListeners();
|
||||
registerScreens();
|
||||
|
||||
await WebsocketManager.init(serverCredentials);
|
||||
}
|
||||
|
||||
registerNavigationListeners();
|
||||
registerScreens();
|
||||
await WebsocketManager.init(serverCredentials);
|
||||
initialLaunch();
|
||||
}
|
||||
|
||||
@@ -42,7 +42,9 @@ export const initialLaunch = async () => {
|
||||
tapped = delivered.find((d) => (d as unknown as NotificationData).ack_id === notification?.payload.ack_id) == null;
|
||||
}
|
||||
if (initialNotificationTypes.includes(notification?.payload?.type) && tapped) {
|
||||
return launchAppFromNotification(convertToNotificationData(notification!), true);
|
||||
const notificationData = convertToNotificationData(notification!);
|
||||
EphemeralStore.setProcessingNotification(notificationData.identifier);
|
||||
return launchAppFromNotification(notificationData, true);
|
||||
}
|
||||
|
||||
const coldStart = notification ? (tapped || AppState.currentState === 'active') : true;
|
||||
|
||||
@@ -22,6 +22,7 @@ import {getThemeFromState} from '@screens/navigation';
|
||||
import EphemeralStore from '@store/ephemeral_store';
|
||||
import {deleteFileCache, deleteFileCacheByDir} from '@utils/file';
|
||||
import {isMainActivity} from '@utils/helpers';
|
||||
import {invalidateKeychainCache} from '@utils/mattermost_managed';
|
||||
import {addNewServer} from '@utils/server';
|
||||
|
||||
import type {LaunchType} from '@typings/launch';
|
||||
@@ -115,6 +116,7 @@ class SessionManager {
|
||||
private terminateSession = async (serverUrl: string, removeServer: boolean) => {
|
||||
cancelSessionNotification(serverUrl);
|
||||
await removeServerCredentials(serverUrl);
|
||||
invalidateKeychainCache(serverUrl);
|
||||
PushNotifications.removeServerNotifications(serverUrl);
|
||||
|
||||
NetworkManager.invalidateClient(serverUrl);
|
||||
|
||||
@@ -14,6 +14,7 @@ import {NOT_READY} from '@constants/screens';
|
||||
import {getDefaultThemeByAppearance} from '@context/theme';
|
||||
import EphemeralStore from '@store/ephemeral_store';
|
||||
import NavigationStore from '@store/navigation_store';
|
||||
import {logError} from '@utils/log';
|
||||
import {appearanceControlledScreens, mergeNavigationOptions} from '@utils/navigation';
|
||||
import {changeOpacity, setNavigatorStyles} from '@utils/theme';
|
||||
|
||||
@@ -449,6 +450,11 @@ export function goToScreen(name: AvailableScreens, title: string, passProps = {}
|
||||
const theme = getThemeFromState();
|
||||
const isDark = tinyColor(theme.sidebarBg).isDark();
|
||||
const componentId = NavigationStore.getVisibleScreen();
|
||||
if (!componentId) {
|
||||
logError('Trying to go to screen without any screen on the navigation store');
|
||||
return '';
|
||||
}
|
||||
|
||||
const defaultOptions: Options = {
|
||||
layout: {
|
||||
componentBackgroundColor: theme.centerChannelBg,
|
||||
|
||||
@@ -1,26 +1,31 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import React from 'react';
|
||||
import React, {useEffect} from 'react';
|
||||
import {useIntl} from 'react-intl';
|
||||
import {Keyboard} from 'react-native';
|
||||
|
||||
import {fetchUsersByIds} from '@actions/remote/user';
|
||||
import UserItem from '@components/user_item';
|
||||
import {Screens} from '@constants';
|
||||
import {useServerUrl} from '@context/server';
|
||||
import {useTheme} from '@context/theme';
|
||||
import {dismissBottomSheet, openAsBottomSheet} from '@screens/navigation';
|
||||
|
||||
import type ReactionModel from '@typings/database/models/servers/reaction';
|
||||
import type UserModel from '@typings/database/models/servers/user';
|
||||
|
||||
type Props = {
|
||||
channelId: string;
|
||||
location: string;
|
||||
user: UserModel;
|
||||
reaction: ReactionModel;
|
||||
user?: UserModel;
|
||||
}
|
||||
|
||||
const Reactor = ({channelId, location, user}: Props) => {
|
||||
const Reactor = ({channelId, location, reaction, user}: Props) => {
|
||||
const intl = useIntl();
|
||||
const theme = useTheme();
|
||||
const serverUrl = useServerUrl();
|
||||
const openUserProfile = async () => {
|
||||
if (user) {
|
||||
await dismissBottomSheet(Screens.REACTIONS);
|
||||
@@ -34,6 +39,12 @@ const Reactor = ({channelId, location, user}: Props) => {
|
||||
}
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
if (!user) {
|
||||
fetchUsersByIds(serverUrl, [reaction.userId]);
|
||||
}
|
||||
}, []);
|
||||
|
||||
return (
|
||||
<UserItem
|
||||
user={user}
|
||||
|
||||
@@ -38,6 +38,16 @@ class EphemeralStore {
|
||||
private notificationTapped = false;
|
||||
private enablingCRT = false;
|
||||
|
||||
// There are some corner cases where the react context is not loaded (and therefore
|
||||
// launch will be called) but the notification callbacks are registered. This is used
|
||||
// so the notification is processed only once (preferably on launch).
|
||||
private processingNotification = '';
|
||||
|
||||
setProcessingNotification = (v: string) => {
|
||||
this.processingNotification = v;
|
||||
};
|
||||
getProcessingNotification = () => this.processingNotification;
|
||||
|
||||
addLoadingMessagesForChannel = (serverUrl: string, channelId: string) => {
|
||||
if (!this.loadingMessagesForChannel[serverUrl]) {
|
||||
this.loadingMessagesForChannel[serverUrl] = new Set();
|
||||
|
||||
@@ -9,6 +9,13 @@ class NavigationStore {
|
||||
private visibleTab = 'Home';
|
||||
private tosOpen = false;
|
||||
|
||||
reset = () => {
|
||||
this.screensInStack = [];
|
||||
this.modalsInStack = [];
|
||||
this.visibleTab = 'Home';
|
||||
this.tosOpen = false;
|
||||
};
|
||||
|
||||
addModalToStack = (modalId: AvailableScreens) => {
|
||||
this.removeModalFromStack(modalId);
|
||||
this.addScreenToStack(modalId);
|
||||
|
||||
@@ -64,3 +64,7 @@ export const deleteEntititesFile = (callback?: (success: boolean) => void) => {
|
||||
callback(true);
|
||||
}
|
||||
};
|
||||
|
||||
export const invalidateKeychainCache = (serverUrl: string) => {
|
||||
MattermostManaged.invalidateKeychainCache(serverUrl);
|
||||
};
|
||||
|
||||
@@ -234,6 +234,10 @@ export function isShared(user: UserProfile | UserModel): boolean {
|
||||
return ('remoteId' in user) ? Boolean(user.remoteId) : Boolean(user.remote_id);
|
||||
}
|
||||
|
||||
export function isDeactivated(user: UserProfile | UserModel): boolean {
|
||||
return Boolean('deleteAt' in user ? user.deleteAt : user.delete_at);
|
||||
}
|
||||
|
||||
export function removeUserFromList(userId: string, originalList: UserProfile[]): UserProfile[] {
|
||||
const list = [...originalList];
|
||||
for (let i = list.length - 1; i >= 0; i--) {
|
||||
|
||||
3
index.ts
3
index.ts
@@ -8,7 +8,7 @@ import {RUNNING_E2E} from 'react-native-dotenv';
|
||||
import 'react-native-gesture-handler';
|
||||
import {Navigation} from 'react-native-navigation';
|
||||
|
||||
import {initialize, start} from './app/init/app';
|
||||
import {start} from './app/init/app';
|
||||
import setFontFamily from './app/utils/font_family';
|
||||
import {logInfo} from './app/utils/log';
|
||||
|
||||
@@ -59,6 +59,5 @@ if (Platform.OS === 'android') {
|
||||
}
|
||||
|
||||
Navigation.events().registerAppLaunchedListener(async () => {
|
||||
await initialize();
|
||||
start();
|
||||
});
|
||||
|
||||
@@ -100,6 +100,10 @@ public class Keychain: NSObject {
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
public func invalidateToken(for serverUrl: String) {
|
||||
tokenCache.removeValue(forKey: serverUrl)
|
||||
}
|
||||
|
||||
private func buildIdentityQuery(for host: String) throws -> [CFString: Any] {
|
||||
guard let hostData = host.data(using: .utf8) else {
|
||||
|
||||
@@ -42,4 +42,8 @@ import Gekidou
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
@objc func invalidateToken(for url: String) {
|
||||
Keychain.default.invalidateToken(for: url)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1923,7 +1923,7 @@
|
||||
CODE_SIGN_ENTITLEMENTS = Mattermost/Mattermost.entitlements;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
CURRENT_PROJECT_VERSION = 476;
|
||||
CURRENT_PROJECT_VERSION = 479;
|
||||
DEVELOPMENT_TEAM = UQ8HT4Q2XM;
|
||||
ENABLE_BITCODE = NO;
|
||||
HEADER_SEARCH_PATHS = (
|
||||
@@ -1967,7 +1967,7 @@
|
||||
CODE_SIGN_ENTITLEMENTS = Mattermost/Mattermost.entitlements;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
CURRENT_PROJECT_VERSION = 476;
|
||||
CURRENT_PROJECT_VERSION = 479;
|
||||
DEVELOPMENT_TEAM = UQ8HT4Q2XM;
|
||||
ENABLE_BITCODE = NO;
|
||||
HEADER_SEARCH_PATHS = (
|
||||
@@ -2110,7 +2110,7 @@
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 476;
|
||||
CURRENT_PROJECT_VERSION = 479;
|
||||
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||
DEVELOPMENT_TEAM = UQ8HT4Q2XM;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||
@@ -2159,7 +2159,7 @@
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
COPY_PHASE_STRIP = NO;
|
||||
CURRENT_PROJECT_VERSION = 476;
|
||||
CURRENT_PROJECT_VERSION = 479;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
DEVELOPMENT_TEAM = UQ8HT4Q2XM;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>2.5.1</string>
|
||||
<string>2.6.0</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleURLTypes</key>
|
||||
@@ -37,7 +37,7 @@
|
||||
</dict>
|
||||
</array>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>476</string>
|
||||
<string>479</string>
|
||||
<key>ITSAppUsesNonExemptEncryption</key>
|
||||
<false/>
|
||||
<key>LSRequiresIPhoneOS</key>
|
||||
|
||||
@@ -153,6 +153,10 @@ RCT_EXPORT_METHOD(removeListeners:(double)count) {
|
||||
// Keep: Required for RN built in Event Emitter Calls.
|
||||
}
|
||||
|
||||
RCT_EXPORT_METHOD(invalidateKeychainCache:(NSString *) serverUrl)
|
||||
{
|
||||
[[GekidouWrapper default] invalidateTokenFor:serverUrl];
|
||||
}
|
||||
|
||||
RCT_EXPORT_METHOD(createThumbnail:(NSDictionary *)config findEventsWithResolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject)
|
||||
{
|
||||
|
||||
@@ -19,9 +19,9 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>XPC!</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>2.5.1</string>
|
||||
<string>2.6.0</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>476</string>
|
||||
<string>479</string>
|
||||
<key>UIAppFonts</key>
|
||||
<array>
|
||||
<string>OpenSans-Bold.ttf</string>
|
||||
|
||||
@@ -19,9 +19,9 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>XPC!</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>2.5.1</string>
|
||||
<string>2.6.0</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>476</string>
|
||||
<string>479</string>
|
||||
<key>NSExtension</key>
|
||||
<dict>
|
||||
<key>NSExtensionPointIdentifier</key>
|
||||
|
||||
143
package-lock.json
generated
143
package-lock.json
generated
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "mattermost-mobile",
|
||||
"version": "2.5.1",
|
||||
"version": "2.6.0",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
@@ -22261,7 +22261,8 @@
|
||||
"version": "7.21.0-placeholder-for-preset-env.2",
|
||||
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz",
|
||||
"integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==",
|
||||
"requires": {}
|
||||
"requires": {
|
||||
}
|
||||
},
|
||||
"@babel/plugin-proposal-unicode-property-regex": {
|
||||
"version": "7.18.6",
|
||||
@@ -24098,7 +24099,8 @@
|
||||
"version": "1.3.5",
|
||||
"resolved": "https://registry.npmjs.org/@mattermost/react-native-emm/-/react-native-emm-1.3.5.tgz",
|
||||
"integrity": "sha512-REdUEsm/RA6lI1Rt4b009jvWn28f7H+e27gd4hlNk6zesIh/dlfiHwYfInW/vwbNFBdSPpvHy7Qi2mdcvrNqhg==",
|
||||
"requires": {}
|
||||
"requires": {
|
||||
}
|
||||
},
|
||||
"@mattermost/react-native-network-client": {
|
||||
"version": "1.3.4",
|
||||
@@ -24144,7 +24146,8 @@
|
||||
"version": "0.2.3",
|
||||
"resolved": "https://registry.npmjs.org/@mattermost/react-native-turbo-log/-/react-native-turbo-log-0.2.3.tgz",
|
||||
"integrity": "sha512-usWyD8zVAHzrYqgPH1ne5I14gCOkhS2mefK58g5v4DewZfCm0/Uc0w8MRuPS/9jyOPPq1rUZj8U1AqKgEne9tQ==",
|
||||
"requires": {}
|
||||
"requires": {
|
||||
}
|
||||
},
|
||||
"@msgpack/msgpack": {
|
||||
"version": "2.8.0",
|
||||
@@ -24240,13 +24243,15 @@
|
||||
"version": "5.6.0",
|
||||
"resolved": "https://registry.npmjs.org/@react-native-camera-roll/camera-roll/-/camera-roll-5.6.0.tgz",
|
||||
"integrity": "sha512-a/GYwnBTxj1yKWB9m/qy8GzjowSocML8NbLT81wdMh0JzZYXCLze51BR2cb8JNDgRPzA9xe7KpD3j9qQOSOjag==",
|
||||
"requires": {}
|
||||
"requires": {
|
||||
}
|
||||
},
|
||||
"@react-native-clipboard/clipboard": {
|
||||
"version": "1.11.2",
|
||||
"resolved": "https://registry.npmjs.org/@react-native-clipboard/clipboard/-/clipboard-1.11.2.tgz",
|
||||
"integrity": "sha512-bHyZVW62TuleiZsXNHS1Pv16fWc0fh8O9WvBzl4h2fykqZRW9a+Pv/RGTH56E3X2PqzHP38K5go8zmCZUoIsoQ==",
|
||||
"requires": {}
|
||||
"requires": {
|
||||
}
|
||||
},
|
||||
"@react-native-community/cli": {
|
||||
"version": "10.2.4",
|
||||
@@ -25403,7 +25408,8 @@
|
||||
"version": "9.3.10",
|
||||
"resolved": "https://registry.npmjs.org/@react-native-community/netinfo/-/netinfo-9.3.10.tgz",
|
||||
"integrity": "sha512-OwnqoJUp/4sa9e3ju+wQavAa8l0fiA3DheeLMKzKxtKeAe0CA7bNxWRM752JvRQ6A/igPnt1V0zSlu5owvQEuA==",
|
||||
"requires": {}
|
||||
"requires": {
|
||||
}
|
||||
},
|
||||
"@react-native-cookies/cookies": {
|
||||
"version": "6.2.1",
|
||||
@@ -25479,7 +25485,8 @@
|
||||
"version": "1.3.17",
|
||||
"resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-1.3.17.tgz",
|
||||
"integrity": "sha512-sui8AzHm6TxeEvWT/NEXlz3egYvCUog4tlXA4Xlb2Vxvy3purVXDq/XsM56lJl344U5Aj/jDzkVanOTMWyk4UA==",
|
||||
"requires": {}
|
||||
"requires": {
|
||||
}
|
||||
},
|
||||
"@react-navigation/native": {
|
||||
"version": "6.1.6",
|
||||
@@ -25763,63 +25770,72 @@
|
||||
"version": "0.10.3",
|
||||
"resolved": "https://registry.npmjs.org/@stream-io/flat-list-mvcp/-/flat-list-mvcp-0.10.3.tgz",
|
||||
"integrity": "sha512-2ZK8piYlEfKIPZrH8BpZz9uj8HZcUvMCV0X7qSLSAc/vhLOANBfR0SSn0OaWPbqb2mFGAd4FxmLSPp1zKEYuaw==",
|
||||
"requires": {}
|
||||
"requires": {
|
||||
}
|
||||
},
|
||||
"@svgr/babel-plugin-add-jsx-attribute": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.0.0.tgz",
|
||||
"integrity": "sha512-MdPdhdWLtQsjd29Wa4pABdhWbaRMACdM1h31BY+c6FghTZqNGT7pEYdBoaGeKtdTOBC/XNFQaKVj+r/Ei2ryWA==",
|
||||
"dev": true,
|
||||
"requires": {}
|
||||
"requires": {
|
||||
}
|
||||
},
|
||||
"@svgr/babel-plugin-remove-jsx-attribute": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-6.0.0.tgz",
|
||||
"integrity": "sha512-aVdtfx9jlaaxc3unA6l+M9YRnKIZjOhQPthLKqmTXC8UVkBLDRGwPKo+r8n3VZN8B34+yVajzPTZ+ptTSuZZCw==",
|
||||
"dev": true,
|
||||
"requires": {}
|
||||
"requires": {
|
||||
}
|
||||
},
|
||||
"@svgr/babel-plugin-remove-jsx-empty-expression": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-6.0.0.tgz",
|
||||
"integrity": "sha512-Ccj42ApsePD451AZJJf1QzTD1B/BOU392URJTeXFxSK709i0KUsGtbwyiqsKu7vsYxpTM0IA5clAKDyf9RCZyA==",
|
||||
"dev": true,
|
||||
"requires": {}
|
||||
"requires": {
|
||||
}
|
||||
},
|
||||
"@svgr/babel-plugin-replace-jsx-attribute-value": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.0.0.tgz",
|
||||
"integrity": "sha512-88V26WGyt1Sfd1emBYmBJRWMmgarrExpKNVmI9vVozha4kqs6FzQJ/Kp5+EYli1apgX44518/0+t9+NU36lThQ==",
|
||||
"dev": true,
|
||||
"requires": {}
|
||||
"requires": {
|
||||
}
|
||||
},
|
||||
"@svgr/babel-plugin-svg-dynamic-title": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.0.0.tgz",
|
||||
"integrity": "sha512-F7YXNLfGze+xv0KMQxrl2vkNbI9kzT9oDK55/kUuymh1ACyXkMV+VZWX1zEhSTfEKh7VkHVZGmVtHg8eTZ6PRg==",
|
||||
"dev": true,
|
||||
"requires": {}
|
||||
"requires": {
|
||||
}
|
||||
},
|
||||
"@svgr/babel-plugin-svg-em-dimensions": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.0.0.tgz",
|
||||
"integrity": "sha512-+rghFXxdIqJNLQK08kwPBD3Z22/0b2tEZ9lKiL/yTfuyj1wW8HUXu4bo/XkogATIYuXSghVQOOCwURXzHGKyZA==",
|
||||
"dev": true,
|
||||
"requires": {}
|
||||
"requires": {
|
||||
}
|
||||
},
|
||||
"@svgr/babel-plugin-transform-react-native-svg": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.0.0.tgz",
|
||||
"integrity": "sha512-VaphyHZ+xIKv5v0K0HCzyfAaLhPGJXSk2HkpYfXIOKb7DjLBv0soHDxNv6X0vr2titsxE7klb++u7iOf7TSrFQ==",
|
||||
"dev": true,
|
||||
"requires": {}
|
||||
"requires": {
|
||||
}
|
||||
},
|
||||
"@svgr/babel-plugin-transform-svg-component": {
|
||||
"version": "6.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.1.0.tgz",
|
||||
"integrity": "sha512-1zacrn08K5RyV2NtXahOZ5Im/+aB1Y0LVh6QpzwgQV05sY7H5Npq+OcW/UqXbfB2Ua/WnHsFossFQqigCjarYg==",
|
||||
"dev": true,
|
||||
"requires": {}
|
||||
"requires": {
|
||||
}
|
||||
},
|
||||
"@svgr/babel-preset": {
|
||||
"version": "6.1.0",
|
||||
@@ -26602,7 +26618,8 @@
|
||||
"resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.1.0.tgz",
|
||||
"integrity": "sha512-ttOkEkoalEHa7RaFYpM0ErK1xc4twg3Am9hfHhL7MVqlHebnkYd2wuI/ZqTDj0cVzZho6PdinY0phFZV3O0Mzg==",
|
||||
"dev": true,
|
||||
"requires": {}
|
||||
"requires": {
|
||||
}
|
||||
},
|
||||
"@webpack-cli/info": {
|
||||
"version": "1.4.0",
|
||||
@@ -26618,7 +26635,8 @@
|
||||
"resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.6.0.tgz",
|
||||
"integrity": "sha512-ZkVeqEmRpBV2GHvjjUZqEai2PpUbuq8Bqd//vEYsp63J8WyexI8ppCqVS3Zs0QADf6aWuPdU+0XsPI647PVlQA==",
|
||||
"dev": true,
|
||||
"requires": {}
|
||||
"requires": {
|
||||
}
|
||||
},
|
||||
"@xtuc/ieee754": {
|
||||
"version": "1.2.0",
|
||||
@@ -26673,14 +26691,16 @@
|
||||
"integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==",
|
||||
"dev": true,
|
||||
"peer": true,
|
||||
"requires": {}
|
||||
"requires": {
|
||||
}
|
||||
},
|
||||
"acorn-jsx": {
|
||||
"version": "5.3.2",
|
||||
"resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
|
||||
"integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
|
||||
"dev": true,
|
||||
"requires": {}
|
||||
"requires": {
|
||||
}
|
||||
},
|
||||
"adm-zip": {
|
||||
"version": "0.5.9",
|
||||
@@ -26742,7 +26762,8 @@
|
||||
"integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
|
||||
"dev": true,
|
||||
"peer": true,
|
||||
"requires": {}
|
||||
"requires": {
|
||||
}
|
||||
},
|
||||
"anser": {
|
||||
"version": "1.4.10",
|
||||
@@ -26978,7 +26999,8 @@
|
||||
"version": "7.0.0-bridge.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz",
|
||||
"integrity": "sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==",
|
||||
"requires": {}
|
||||
"requires": {
|
||||
}
|
||||
},
|
||||
"babel-jest": {
|
||||
"version": "29.5.0",
|
||||
@@ -29002,7 +29024,8 @@
|
||||
"resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz",
|
||||
"integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==",
|
||||
"dev": true,
|
||||
"requires": {}
|
||||
"requires": {
|
||||
}
|
||||
},
|
||||
"eslint-import-resolver-node": {
|
||||
"version": "0.3.7",
|
||||
@@ -29090,7 +29113,8 @@
|
||||
"resolved": "https://registry.npmjs.org/eslint-plugin-header/-/eslint-plugin-header-3.1.1.tgz",
|
||||
"integrity": "sha512-9vlKxuJ4qf793CmeeSrZUvVClw6amtpghq3CuWcB5cUNnWHQhgcqy5eF8oVKFk1G3Y/CbchGfEaw3wiIJaNmVg==",
|
||||
"dev": true,
|
||||
"requires": {}
|
||||
"requires": {
|
||||
}
|
||||
},
|
||||
"eslint-plugin-import": {
|
||||
"version": "2.27.5",
|
||||
@@ -29226,7 +29250,8 @@
|
||||
"resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz",
|
||||
"integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==",
|
||||
"dev": true,
|
||||
"requires": {}
|
||||
"requires": {
|
||||
}
|
||||
},
|
||||
"eslint-plugin-react-native": {
|
||||
"version": "4.0.0",
|
||||
@@ -31601,7 +31626,8 @@
|
||||
"resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz",
|
||||
"integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==",
|
||||
"dev": true,
|
||||
"requires": {}
|
||||
"requires": {
|
||||
}
|
||||
},
|
||||
"jest-regex-util": {
|
||||
"version": "29.4.3",
|
||||
@@ -34981,7 +35007,8 @@
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/react-freeze/-/react-freeze-1.0.3.tgz",
|
||||
"integrity": "sha512-ZnXwLQnGzrDpHBHiC56TXFXvmolPeMjTn1UOm610M4EXGzbEDR7oOIyS2ZiItgbs6eZc4oU/a0hpk8PrcKvv5g==",
|
||||
"requires": {}
|
||||
"requires": {
|
||||
}
|
||||
},
|
||||
"react-intl": {
|
||||
"version": "6.4.4",
|
||||
@@ -35159,7 +35186,8 @@
|
||||
"version": "2.4.1",
|
||||
"resolved": "https://registry.npmjs.org/react-native-background-timer/-/react-native-background-timer-2.4.1.tgz",
|
||||
"integrity": "sha512-TE4Kiy7jUyv+hugxDxitzu38sW1NqjCk4uE5IgU2WevLv7sZacaBc6PZKOShNRPGirLl1NWkaG3LDEkdb9Um5g==",
|
||||
"requires": {}
|
||||
"requires": {
|
||||
}
|
||||
},
|
||||
"react-native-button": {
|
||||
"version": "3.1.0",
|
||||
@@ -35212,13 +35240,15 @@
|
||||
"version": "1.6.4",
|
||||
"resolved": "https://registry.npmjs.org/react-native-create-thumbnail/-/react-native-create-thumbnail-1.6.4.tgz",
|
||||
"integrity": "sha512-JWuKXswDXtqUPfuqh6rjCVMvTSSG3kUtwvSK/YdaNU0i+nZKxeqHmt/CO2+TyI/WSUFynGVmWT1xOHhCZAFsRQ==",
|
||||
"requires": {}
|
||||
"requires": {
|
||||
}
|
||||
},
|
||||
"react-native-device-info": {
|
||||
"version": "10.6.0",
|
||||
"resolved": "https://registry.npmjs.org/react-native-device-info/-/react-native-device-info-10.6.0.tgz",
|
||||
"integrity": "sha512-/MmINdojWdw2/9rwYpH/dX+1gFP0o78p8yYPjwxiPhoySSL2rZaNi+Mq9VwC+zFi/yQmJUvHntkKSw2KUc7rFw==",
|
||||
"requires": {}
|
||||
"requires": {
|
||||
}
|
||||
},
|
||||
"react-native-document-picker": {
|
||||
"version": "9.0.1",
|
||||
@@ -35255,19 +35285,22 @@
|
||||
"version": "2.10.10",
|
||||
"resolved": "https://registry.npmjs.org/react-native-exception-handler/-/react-native-exception-handler-2.10.10.tgz",
|
||||
"integrity": "sha512-otAXGoZDl1689OoUJWN/rXxVbdoZ3xcmyF1uq/CsizdLwwyZqVGd6d+p/vbYvnF996FfEyAEBnHrdFxulTn51w==",
|
||||
"requires": {}
|
||||
"requires": {
|
||||
}
|
||||
},
|
||||
"react-native-fast-image": {
|
||||
"version": "8.6.3",
|
||||
"resolved": "https://registry.npmjs.org/react-native-fast-image/-/react-native-fast-image-8.6.3.tgz",
|
||||
"integrity": "sha512-Sdw4ESidXCXOmQ9EcYguNY2swyoWmx53kym2zRsvi+VeFCHEdkO+WG1DK+6W81juot40bbfLNhkc63QnWtesNg==",
|
||||
"requires": {}
|
||||
"requires": {
|
||||
}
|
||||
},
|
||||
"react-native-file-viewer": {
|
||||
"version": "2.1.5",
|
||||
"resolved": "https://registry.npmjs.org/react-native-file-viewer/-/react-native-file-viewer-2.1.5.tgz",
|
||||
"integrity": "sha512-MGC6sx9jsqHdefhVQ6o0akdsPGpkXgiIbpygb2Sg4g4bh7v6K1cardLV1NwGB9A6u1yICOSDT/MOC//9Ez6EUg==",
|
||||
"requires": {}
|
||||
"requires": {
|
||||
}
|
||||
},
|
||||
"react-native-fs": {
|
||||
"version": "2.20.0",
|
||||
@@ -35306,19 +35339,22 @@
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://registry.npmjs.org/react-native-haptic-feedback/-/react-native-haptic-feedback-2.0.3.tgz",
|
||||
"integrity": "sha512-7+qvcxXZts/hA+HOOIFyM1x9m9fn/TJVSTgXaoQ8uT4gLc97IMvqHQ559tDmnlth+hHMzd3HRMpmRLWoKPL0DA==",
|
||||
"requires": {}
|
||||
"requires": {
|
||||
}
|
||||
},
|
||||
"react-native-hw-keyboard-event": {
|
||||
"version": "0.0.4",
|
||||
"resolved": "https://registry.npmjs.org/react-native-hw-keyboard-event/-/react-native-hw-keyboard-event-0.0.4.tgz",
|
||||
"integrity": "sha512-G8qp0nm17PHigLb/axgdF9xg51BKCG2p1AGeq//J/luLp5zNczIcQJh+nm02R1MeEUE3e53wqO4LMe0MV3raZg==",
|
||||
"requires": {}
|
||||
"requires": {
|
||||
}
|
||||
},
|
||||
"react-native-image-picker": {
|
||||
"version": "5.4.2",
|
||||
"resolved": "https://registry.npmjs.org/react-native-image-picker/-/react-native-image-picker-5.4.2.tgz",
|
||||
"integrity": "sha512-C/k3cYAh8fBImoGEwmiChNwHx9fJGqAIu2E4BUJdI1XlL17tSYjfTDx/bsuF4amZwa7hxZdQnZmpk0EnwIEUaw==",
|
||||
"requires": {}
|
||||
"requires": {
|
||||
}
|
||||
},
|
||||
"react-native-in-app-review": {
|
||||
"version": "4.3.3",
|
||||
@@ -35328,13 +35364,15 @@
|
||||
"react-native-incall-manager": {
|
||||
"version": "git+ssh://git@github.com/react-native-webrtc/react-native-incall-manager.git#6d927ef24c6e47c6134177a4bb14a71054f85b65",
|
||||
"from": "react-native-incall-manager@4.0.1",
|
||||
"requires": {}
|
||||
"requires": {
|
||||
}
|
||||
},
|
||||
"react-native-iphone-x-helper": {
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/react-native-iphone-x-helper/-/react-native-iphone-x-helper-1.3.1.tgz",
|
||||
"integrity": "sha512-HOf0jzRnq2/aFUcdCJ9w9JGzN3gdEg0zFE4FyYlp4jtidqU03D5X7ZegGKfT1EWteR0gPBGp9ye5T5FvSWi9Yg==",
|
||||
"requires": {}
|
||||
"requires": {
|
||||
}
|
||||
},
|
||||
"react-native-keyboard-aware-scroll-view": {
|
||||
"version": "0.9.5",
|
||||
@@ -35349,7 +35387,8 @@
|
||||
"version": "5.7.0",
|
||||
"resolved": "https://registry.npmjs.org/react-native-keyboard-tracking-view/-/react-native-keyboard-tracking-view-5.7.0.tgz",
|
||||
"integrity": "sha512-MDeEwAbn9LJDOfHq0QLCGaZirVLk2X/tHqkAqz3y6uxryTRdSl9PwleOVar5Jx2oAPEg4J9BXbUD1wwOOi+5Kg==",
|
||||
"requires": {}
|
||||
"requires": {
|
||||
}
|
||||
},
|
||||
"react-native-keychain": {
|
||||
"version": "8.1.1",
|
||||
@@ -35360,13 +35399,15 @@
|
||||
"version": "2.7.2",
|
||||
"resolved": "https://registry.npmjs.org/react-native-linear-gradient/-/react-native-linear-gradient-2.7.2.tgz",
|
||||
"integrity": "sha512-c1mNtmQrD+nzlIePQ5XZR/6IuEaNcYvE+N7MnOHDSOkXmxfLVbyicT15KEYnXQqbTLwTrFNJPZot241lWRVC3g==",
|
||||
"requires": {}
|
||||
"requires": {
|
||||
}
|
||||
},
|
||||
"react-native-localize": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/react-native-localize/-/react-native-localize-3.0.0.tgz",
|
||||
"integrity": "sha512-B8taYRLuLIYDzBTKIglA3K6ntjaEwbk6mwQ72ogZYl5ovM00NnpbiZ3sRq8KRVe/V1NGczxT33uVqG6BUWGWhg==",
|
||||
"requires": {}
|
||||
"requires": {
|
||||
}
|
||||
},
|
||||
"react-native-math-view": {
|
||||
"version": "3.9.5",
|
||||
@@ -35402,7 +35443,8 @@
|
||||
"version": "4.3.5",
|
||||
"resolved": "https://registry.npmjs.org/react-native-notifications/-/react-native-notifications-4.3.5.tgz",
|
||||
"integrity": "sha512-tCKkPaauN8/RIwPTeWdyezHXt5i4iDJViZGZ7/EBBuHB9kl9Oq3UjKFZeDfnM4DmJt+m7K2FQ7NaAuh3Kg1FCA==",
|
||||
"requires": {}
|
||||
"requires": {
|
||||
}
|
||||
},
|
||||
"react-native-permissions": {
|
||||
"version": "3.8.0",
|
||||
@@ -35443,7 +35485,8 @@
|
||||
"version": "4.5.3",
|
||||
"resolved": "https://registry.npmjs.org/react-native-safe-area-context/-/react-native-safe-area-context-4.5.3.tgz",
|
||||
"integrity": "sha512-ihYeGDEBSkYH+1aWnadNhVtclhppVgd/c0tm4mj0+HV11FoiWJ8N6ocnnZnRLvM5Fxc+hUqxR9bm5AXU3rXiyA==",
|
||||
"requires": {}
|
||||
"requires": {
|
||||
}
|
||||
},
|
||||
"react-native-screens": {
|
||||
"version": "3.21.0",
|
||||
@@ -35476,7 +35519,8 @@
|
||||
"version": "0.3.1",
|
||||
"resolved": "https://registry.npmjs.org/react-native-size-matters/-/react-native-size-matters-0.3.1.tgz",
|
||||
"integrity": "sha512-mKOfBLIBFBcs9br1rlZDvxD5+mAl8Gfr5CounwJtxI6Z82rGrMO+Kgl9EIg3RMVf3G855a85YVqHJL2f5EDRlw==",
|
||||
"requires": {}
|
||||
"requires": {
|
||||
}
|
||||
},
|
||||
"react-native-svg": {
|
||||
"version": "13.9.0",
|
||||
@@ -37424,13 +37468,15 @@
|
||||
"version": "0.1.6",
|
||||
"resolved": "https://registry.npmjs.org/use-latest-callback/-/use-latest-callback-0.1.6.tgz",
|
||||
"integrity": "sha512-VO/P91A/PmKH9bcN9a7O3duSuxe6M14ZoYXgA6a8dab8doWNdhiIHzEkX/jFeTTRBsX0Ubk6nG4q2NIjNsj+bg==",
|
||||
"requires": {}
|
||||
"requires": {
|
||||
}
|
||||
},
|
||||
"use-sync-external-store": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz",
|
||||
"integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==",
|
||||
"requires": {}
|
||||
"requires": {
|
||||
}
|
||||
},
|
||||
"utf8": {
|
||||
"version": "3.0.0",
|
||||
@@ -37751,7 +37797,8 @@
|
||||
"version": "7.5.5",
|
||||
"resolved": "https://registry.npmjs.org/ws/-/ws-7.5.5.tgz",
|
||||
"integrity": "sha512-BAkMFcAzl8as1G/hArkxOxq3G7pjUqQ3gzYbLL0/5zNkph70e+lCoxBGnm6AW1+/aiNeV4fnKqZ8m4GZewmH2w==",
|
||||
"requires": {}
|
||||
"requires": {
|
||||
}
|
||||
},
|
||||
"xdate": {
|
||||
"version": "0.8.2",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "mattermost-mobile",
|
||||
"version": "2.5.1",
|
||||
"version": "2.6.0",
|
||||
"description": "Mattermost Mobile with React Native",
|
||||
"repository": "git@github.com:mattermost/mattermost-mobile.git",
|
||||
"author": "Mattermost, Inc.",
|
||||
|
||||
Reference in New Issue
Block a user