Merge 4.35.0 into single-server (#4852)
This commit is contained in:
commit
8f89d850ae
|
@ -3,7 +3,7 @@ defaults: &defaults
|
||||||
|
|
||||||
macos: &macos
|
macos: &macos
|
||||||
macos:
|
macos:
|
||||||
xcode: "13.3.0"
|
xcode: "14.2.0"
|
||||||
resource_class: large
|
resource_class: large
|
||||||
|
|
||||||
bash-env: &bash-env
|
bash-env: &bash-env
|
||||||
|
@ -51,14 +51,14 @@ save-gems-cache: &save-gems-cache
|
||||||
update-fastlane-ios: &update-fastlane-ios
|
update-fastlane-ios: &update-fastlane-ios
|
||||||
name: Update Fastlane
|
name: Update Fastlane
|
||||||
command: |
|
command: |
|
||||||
echo "ruby-2.6.4" > ~/.ruby-version
|
echo "ruby-2.7.7" > ~/.ruby-version
|
||||||
bundle install
|
bundle install
|
||||||
working_directory: ios
|
working_directory: ios
|
||||||
|
|
||||||
update-fastlane-android: &update-fastlane-android
|
update-fastlane-android: &update-fastlane-android
|
||||||
name: Update Fastlane
|
name: Update Fastlane
|
||||||
command: |
|
command: |
|
||||||
echo "ruby-2.6.4" > ~/.ruby-version
|
echo "ruby-2.7.7" > ~/.ruby-version
|
||||||
bundle install
|
bundle install
|
||||||
working_directory: android
|
working_directory: android
|
||||||
|
|
||||||
|
@ -118,26 +118,26 @@ commands:
|
||||||
if [[ $CIRCLE_JOB == "android-build-official" ]]; then
|
if [[ $CIRCLE_JOB == "android-build-official" ]]; then
|
||||||
echo -e "APPLICATION_ID=chat.rocket.android" >> ./gradle.properties
|
echo -e "APPLICATION_ID=chat.rocket.android" >> ./gradle.properties
|
||||||
echo -e "BugsnagAPIKey=$BUGSNAG_KEY_OFFICIAL" >> ./gradle.properties
|
echo -e "BugsnagAPIKey=$BUGSNAG_KEY_OFFICIAL" >> ./gradle.properties
|
||||||
echo $CHAT_ROCKET_ANDROID_STORE_FILE_BASE64_JKS | base64 --decode > ./app/$KEYSTORE_OFFICIAL
|
echo $KEYSTORE_OFFICIAL_BASE64 | base64 --decode > ./app/$KEYSTORE_OFFICIAL
|
||||||
echo -e "KEYSTORE=$KEYSTORE_OFFICIAL" >> ./gradle.properties
|
echo -e "KEYSTORE=$KEYSTORE_OFFICIAL" >> ./gradle.properties
|
||||||
echo -e "KEYSTORE_PASSWORD=$CHAT_ROCKET_ANDROID_STORE_PASSWORD" >> ./gradle.properties
|
echo -e "KEYSTORE_PASSWORD=$KEYSTORE_OFFICIAL_PASSWORD" >> ./gradle.properties
|
||||||
echo -e "KEY_ALIAS=$CHAT_ROCKET_ANDROID_KEY_ALIAS" >> ./gradle.properties
|
echo -e "KEY_ALIAS=$KEYSTORE_OFFICIAL_ALIAS" >> ./gradle.properties
|
||||||
echo -e "KEY_PASSWORD=$CHAT_ROCKET_ANDROID_KEY_PASSWORD" >> ./gradle.properties
|
echo -e "KEY_PASSWORD=$KEYSTORE_OFFICIAL_PASSWORD" >> ./gradle.properties
|
||||||
else
|
else
|
||||||
echo -e "APPLICATION_ID=chat.rocket.reactnative" >> ./gradle.properties
|
echo -e "APPLICATION_ID=chat.rocket.reactnative" >> ./gradle.properties
|
||||||
echo -e "BugsnagAPIKey=$BUGSNAG_KEY" >> ./gradle.properties
|
echo -e "BugsnagAPIKey=$BUGSNAG_KEY" >> ./gradle.properties
|
||||||
echo $KEYSTORE_BASE64 | base64 --decode > ./app/$KEYSTORE
|
echo $KEYSTORE_EXPERIMENTAL_BASE64 | base64 --decode > ./app/$KEYSTORE_EXPERIMENTAL
|
||||||
echo -e "KEYSTORE=$KEYSTORE" >> ./gradle.properties
|
echo -e "KEYSTORE=$KEYSTORE_EXPERIMENTAL" >> ./gradle.properties
|
||||||
echo -e "KEYSTORE_PASSWORD=$KEYSTORE_PASSWORD" >> ./gradle.properties
|
echo -e "KEYSTORE_PASSWORD=$KEYSTORE_EXPERIMENTAL_PASSWORD" >> ./gradle.properties
|
||||||
echo -e "KEY_ALIAS=$KEY_ALIAS" >> ./gradle.properties
|
echo -e "KEY_ALIAS=$KEYSTORE_EXPERIMENTAL_ALIAS" >> ./gradle.properties
|
||||||
echo -e "KEY_PASSWORD=$KEYSTORE_PASSWORD" >> ./gradle.properties
|
echo -e "KEY_PASSWORD=$KEYSTORE_EXPERIMENTAL_PASSWORD" >> ./gradle.properties
|
||||||
fi
|
fi
|
||||||
working_directory: android
|
working_directory: android
|
||||||
|
|
||||||
- run:
|
- run:
|
||||||
name: Set Google Services
|
name: Set Google Services
|
||||||
command: |
|
command: |
|
||||||
if [[ $KEYSTORE ]]; then
|
if [[ $GOOGLE_SERVICES_ANDROID ]]; then
|
||||||
echo $GOOGLE_SERVICES_ANDROID | base64 --decode > google-services.json
|
echo $GOOGLE_SERVICES_ANDROID | base64 --decode > google-services.json
|
||||||
fi
|
fi
|
||||||
working_directory: android/app
|
working_directory: android/app
|
||||||
|
@ -151,7 +151,7 @@ commands:
|
||||||
if [[ $CIRCLE_JOB == "android-build-experimental" || "android-automatic-build-experimental" ]]; then
|
if [[ $CIRCLE_JOB == "android-build-experimental" || "android-automatic-build-experimental" ]]; then
|
||||||
./gradlew bundleExperimentalPlayRelease
|
./gradlew bundleExperimentalPlayRelease
|
||||||
fi
|
fi
|
||||||
if [[ ! $KEYSTORE ]]; then
|
if [[ ! $GOOGLE_SERVICES_ANDROID ]]; then
|
||||||
./gradlew assembleExperimentalPlayDebug
|
./gradlew assembleExperimentalPlayDebug
|
||||||
fi
|
fi
|
||||||
working_directory: android
|
working_directory: android
|
||||||
|
@ -200,8 +200,12 @@ commands:
|
||||||
- run:
|
- run:
|
||||||
name: Set Google Services
|
name: Set Google Services
|
||||||
command: |
|
command: |
|
||||||
if [[ $KEYSTORE ]]; then
|
if [[ $APP_STORE_CONNECT_API_KEY_BASE64 ]]; then
|
||||||
echo $GOOGLE_SERVICES_IOS | base64 --decode > GoogleService-Info.plist
|
if [[ $CIRCLE_JOB == "ios-build-official" ]]; then
|
||||||
|
echo $GOOGLE_SERVICES_IOS | base64 --decode > GoogleService-Info.plist
|
||||||
|
else
|
||||||
|
echo $GOOGLE_SERVICES_IOS_EXPERIMENTAL | base64 --decode > GoogleService-Info.plist
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
working_directory: ios
|
working_directory: ios
|
||||||
- run:
|
- run:
|
||||||
|
@ -223,12 +227,12 @@ commands:
|
||||||
/usr/libexec/PlistBuddy -c "Set IS_OFFICIAL NO" ./NotificationService/Info.plist
|
/usr/libexec/PlistBuddy -c "Set IS_OFFICIAL NO" ./NotificationService/Info.plist
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ $APP_STORE_CONNECT_API_BASE64 ]]; then
|
if [[ $APP_STORE_CONNECT_API_KEY_BASE64 ]]; then
|
||||||
echo $APP_STORE_CONNECT_API_BASE64 | base64 --decode > ./fastlane/app_store_connect_api_key.p8
|
echo $APP_STORE_CONNECT_API_KEY_BASE64 | base64 --decode > ./fastlane/app_store_connect_api_key.p8
|
||||||
if [[ $CIRCLE_JOB == "ios-build-official" ]]; then
|
if [[ $CIRCLE_JOB == "ios-build-official" ]]; then
|
||||||
bundle exec fastlane ios build_official
|
bundle exec fastlane ios build_official
|
||||||
else
|
else
|
||||||
if [[ $KEYSTORE ]]; then
|
if [[ $APP_STORE_CONNECT_API_KEY_BASE64 ]]; then
|
||||||
bundle exec fastlane ios build_experimental
|
bundle exec fastlane ios build_experimental
|
||||||
else
|
else
|
||||||
bundle exec fastlane ios build_fork
|
bundle exec fastlane ios build_fork
|
||||||
|
@ -318,7 +322,7 @@ commands:
|
||||||
- run:
|
- run:
|
||||||
name: Fastlane Tesflight Upload
|
name: Fastlane Tesflight Upload
|
||||||
command: |
|
command: |
|
||||||
echo $APP_STORE_CONNECT_API_BASE64 | base64 --decode > ./fastlane/app_store_connect_api_key.p8
|
echo $APP_STORE_CONNECT_API_KEY_BASE64 | base64 --decode > ./fastlane/app_store_connect_api_key.p8
|
||||||
bundle exec fastlane ios beta official:<< parameters.official >>
|
bundle exec fastlane ios beta official:<< parameters.official >>
|
||||||
working_directory: ios
|
working_directory: ios
|
||||||
- save_cache: *save-gems-cache
|
- save_cache: *save-gems-cache
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
2.7.4
|
2.7.7
|
||||||
|
|
2
Gemfile
2
Gemfile
|
@ -1,4 +1,4 @@
|
||||||
source 'https://rubygems.org'
|
source 'https://rubygems.org'
|
||||||
# You may use http://rbenv.org/ or https://rvm.io/ to install and use this version
|
# You may use http://rbenv.org/ or https://rvm.io/ to install and use this version
|
||||||
ruby '2.7.4'
|
ruby '2.7.7'
|
||||||
gem 'cocoapods', '~> 1.11', '>= 1.11.2'
|
gem 'cocoapods', '~> 1.11', '>= 1.11.2'
|
|
@ -147,7 +147,7 @@ android {
|
||||||
minSdkVersion rootProject.ext.minSdkVersion
|
minSdkVersion rootProject.ext.minSdkVersion
|
||||||
targetSdkVersion rootProject.ext.targetSdkVersion
|
targetSdkVersion rootProject.ext.targetSdkVersion
|
||||||
versionCode VERSIONCODE as Integer
|
versionCode VERSIONCODE as Integer
|
||||||
versionName "4.34.0"
|
versionName "4.35.0"
|
||||||
vectorDrawables.useSupportLibrary = true
|
vectorDrawables.useSupportLibrary = true
|
||||||
if (!isFoss) {
|
if (!isFoss) {
|
||||||
manifestPlaceholders = [BugsnagAPIKey: BugsnagAPIKey as String]
|
manifestPlaceholders = [BugsnagAPIKey: BugsnagAPIKey as String]
|
||||||
|
|
|
@ -1,25 +0,0 @@
|
||||||
package chat.rocket.reactnative;
|
|
||||||
|
|
||||||
import android.content.Context;
|
|
||||||
|
|
||||||
import com.facebook.react.ReactInstanceManager;
|
|
||||||
|
|
||||||
public class MainDebugApplication extends MainApplication {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCreate() {
|
|
||||||
super.onCreate();
|
|
||||||
initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Loads Flipper in React Native templates. Call this in the onCreate method with something like
|
|
||||||
* initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
|
|
||||||
*
|
|
||||||
* @param context
|
|
||||||
* @param reactInstanceManager
|
|
||||||
*/
|
|
||||||
private static void initializeFlipper(Context context, ReactInstanceManager reactInstanceManager) {
|
|
||||||
ReactNativeFlipper.initializeFlipper(context, reactInstanceManager);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -11,6 +11,15 @@
|
||||||
<uses-permission android:name="android.permission.VIDEO_CAPTURE" />
|
<uses-permission android:name="android.permission.VIDEO_CAPTURE" />
|
||||||
<uses-permission android:name="android.permission.AUDIO_CAPTURE" />
|
<uses-permission android:name="android.permission.AUDIO_CAPTURE" />
|
||||||
|
|
||||||
|
<!-- permissions related to jitsi call -->
|
||||||
|
<uses-permission android:name="android.permission.BLUETOOTH" android:maxSdkVersion="30" />
|
||||||
|
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" android:maxSdkVersion="30" />
|
||||||
|
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" android:usesPermissionFlags="neverForLocation" tools:targetApi="s" />
|
||||||
|
<uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
|
||||||
|
<uses-permission android:name="android.permission.BLUETOOTH_ADVERTISE" />
|
||||||
|
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" android:maxSdkVersion="28"/>
|
||||||
|
<uses-permission-sdk-23 android:name="android.permission.ACCESS_FINE_LOCATION" tools:targetApi="Q"/>
|
||||||
|
|
||||||
<application
|
<application
|
||||||
android:name="chat.rocket.reactnative.MainApplication"
|
android:name="chat.rocket.reactnative.MainApplication"
|
||||||
android:allowBackup="false"
|
android:allowBackup="false"
|
||||||
|
|
|
@ -9,13 +9,16 @@ import com.facebook.react.ReactApplication;
|
||||||
import com.facebook.react.ReactNativeHost;
|
import com.facebook.react.ReactNativeHost;
|
||||||
import com.facebook.react.ReactPackage;
|
import com.facebook.react.ReactPackage;
|
||||||
import com.facebook.react.config.ReactFeatureFlags;
|
import com.facebook.react.config.ReactFeatureFlags;
|
||||||
|
import com.facebook.react.ReactInstanceManager;
|
||||||
import com.facebook.soloader.SoLoader;
|
import com.facebook.soloader.SoLoader;
|
||||||
import com.reactnativecommunity.viewpager.RNCViewPagerPackage;
|
import com.reactnativecommunity.viewpager.RNCViewPagerPackage;
|
||||||
import com.facebook.react.bridge.JSIModulePackage;
|
import com.facebook.react.bridge.JSIModulePackage;
|
||||||
import com.swmansion.reanimated.ReanimatedJSIModulePackage;
|
import com.swmansion.reanimated.ReanimatedJSIModulePackage;
|
||||||
|
import android.content.Context;
|
||||||
import android.content.res.Configuration;
|
import android.content.res.Configuration;
|
||||||
import expo.modules.ApplicationLifecycleDispatcher;
|
import expo.modules.ApplicationLifecycleDispatcher;
|
||||||
import expo.modules.ReactNativeHostWrapper;
|
import expo.modules.ReactNativeHostWrapper;
|
||||||
|
import java.lang.reflect.InvocationTargetException;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -76,6 +79,7 @@ public class MainApplication extends Application implements ReactApplication {
|
||||||
// If you opted-in for the New Architecture, we enable the TurboModule system
|
// If you opted-in for the New Architecture, we enable the TurboModule system
|
||||||
ReactFeatureFlags.useTurboModules = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;
|
ReactFeatureFlags.useTurboModules = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;
|
||||||
SoLoader.init(this, /* native exopackage */ false);
|
SoLoader.init(this, /* native exopackage */ false);
|
||||||
|
initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
|
||||||
ApplicationLifecycleDispatcher.onApplicationCreate(this);
|
ApplicationLifecycleDispatcher.onApplicationCreate(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -84,4 +88,35 @@ public class MainApplication extends Application implements ReactApplication {
|
||||||
super.onConfigurationChanged(newConfig);
|
super.onConfigurationChanged(newConfig);
|
||||||
ApplicationLifecycleDispatcher.onConfigurationChanged(this, newConfig);
|
ApplicationLifecycleDispatcher.onConfigurationChanged(this, newConfig);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Loads Flipper in React Native templates. Call this in the onCreate method with something like
|
||||||
|
* initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
|
||||||
|
*
|
||||||
|
* @param context
|
||||||
|
* @param reactInstanceManager
|
||||||
|
*/
|
||||||
|
private static void initializeFlipper(
|
||||||
|
Context context, ReactInstanceManager reactInstanceManager) {
|
||||||
|
if (BuildConfig.DEBUG) {
|
||||||
|
try {
|
||||||
|
/*
|
||||||
|
We use reflection here to pick up the class that initializes Flipper,
|
||||||
|
since Flipper library is not available in release mode
|
||||||
|
*/
|
||||||
|
Class<?> aClass = Class.forName("chat.rocket.reactnative.ReactNativeFlipper");
|
||||||
|
aClass
|
||||||
|
.getMethod("initializeFlipper", Context.class, ReactInstanceManager.class)
|
||||||
|
.invoke(null, context, reactInstanceManager);
|
||||||
|
} catch (ClassNotFoundException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
} catch (NoSuchMethodException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
} catch (IllegalAccessException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
} catch (InvocationTargetException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,7 +23,7 @@ android.useAndroidX=true
|
||||||
android.enableJetifier=true
|
android.enableJetifier=true
|
||||||
|
|
||||||
# Version of flipper SDK to use with React Native
|
# Version of flipper SDK to use with React Native
|
||||||
FLIPPER_VERSION=0.125.0
|
FLIPPER_VERSION=0.175.0
|
||||||
|
|
||||||
# Use this property to specify which architecture you want to build.
|
# Use this property to specify which architecture you want to build.
|
||||||
# You can also override it from the CLI using
|
# You can also override it from the CLI using
|
||||||
|
|
|
@ -28,7 +28,9 @@ export const ROOM = createRequestTypes('ROOM', [
|
||||||
'DELETE',
|
'DELETE',
|
||||||
'REMOVED',
|
'REMOVED',
|
||||||
'FORWARD',
|
'FORWARD',
|
||||||
'USER_TYPING'
|
'USER_TYPING',
|
||||||
|
'HISTORY_REQUEST',
|
||||||
|
'HISTORY_FINISHED'
|
||||||
]);
|
]);
|
||||||
export const INQUIRY = createRequestTypes('INQUIRY', [
|
export const INQUIRY = createRequestTypes('INQUIRY', [
|
||||||
...defaultTypes,
|
...defaultTypes,
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import { Action } from 'redux';
|
import { Action } from 'redux';
|
||||||
|
|
||||||
import { ERoomType } from '../definitions/ERoomType';
|
import { ERoomType, RoomType } from '../definitions';
|
||||||
import { ROOM } from './actionsTypes';
|
import { ROOM } from './actionsTypes';
|
||||||
|
|
||||||
// TYPE RETURN RELATED
|
// TYPE RETURN RELATED
|
||||||
|
@ -44,7 +44,24 @@ interface IUserTyping extends Action {
|
||||||
status: boolean;
|
status: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
export type TActionsRoom = TSubscribeRoom & TUnsubscribeRoom & ILeaveRoom & IDeleteRoom & IForwardRoom & IUserTyping;
|
export interface IRoomHistoryRequest extends Action {
|
||||||
|
rid: string;
|
||||||
|
t: RoomType;
|
||||||
|
loaderId: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface IRoomHistoryFinished extends Action {
|
||||||
|
loaderId: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export type TActionsRoom = TSubscribeRoom &
|
||||||
|
TUnsubscribeRoom &
|
||||||
|
ILeaveRoom &
|
||||||
|
IDeleteRoom &
|
||||||
|
IForwardRoom &
|
||||||
|
IUserTyping &
|
||||||
|
IRoomHistoryRequest &
|
||||||
|
IRoomHistoryFinished;
|
||||||
|
|
||||||
export function subscribeRoom(rid: string): TSubscribeRoom {
|
export function subscribeRoom(rid: string): TSubscribeRoom {
|
||||||
return {
|
return {
|
||||||
|
@ -99,3 +116,19 @@ export function userTyping(rid: string, status = true): IUserTyping {
|
||||||
status
|
status
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function roomHistoryRequest({ rid, t, loaderId }: { rid: string; t: RoomType; loaderId: string }): IRoomHistoryRequest {
|
||||||
|
return {
|
||||||
|
type: ROOM.HISTORY_REQUEST,
|
||||||
|
rid,
|
||||||
|
t,
|
||||||
|
loaderId
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
export function roomHistoryFinished({ loaderId }: { loaderId: string }): IRoomHistoryFinished {
|
||||||
|
return {
|
||||||
|
type: ROOM.HISTORY_FINISHED,
|
||||||
|
loaderId
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
|
@ -302,7 +302,7 @@ class MessageBox extends Component<IMessageBoxProps, IMessageBoxState> {
|
||||||
if (usedCannedResponse !== nextProps.usedCannedResponse) {
|
if (usedCannedResponse !== nextProps.usedCannedResponse) {
|
||||||
this.onChangeText(nextProps.usedCannedResponse ?? '');
|
this.onChangeText(nextProps.usedCannedResponse ?? '');
|
||||||
}
|
}
|
||||||
if (sharing) {
|
if (sharing && !replying) {
|
||||||
this.setInput(nextProps.message.msg ?? '');
|
this.setInput(nextProps.message.msg ?? '');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -857,14 +857,21 @@ class MessageBox extends Component<IMessageBoxProps, IMessageBoxState> {
|
||||||
};
|
};
|
||||||
|
|
||||||
openShareView = (attachments: any) => {
|
openShareView = (attachments: any) => {
|
||||||
const { message, replyCancel, replyWithMention } = this.props;
|
const { message, replyCancel, replyWithMention, replying } = this.props;
|
||||||
// Start a thread with an attachment
|
// Start a thread with an attachment
|
||||||
let value: TThreadModel | IMessage = this.thread;
|
let value: TThreadModel | IMessage = this.thread;
|
||||||
if (replyWithMention) {
|
if (replyWithMention) {
|
||||||
value = message;
|
value = message;
|
||||||
replyCancel();
|
replyCancel();
|
||||||
}
|
}
|
||||||
Navigation.navigate('ShareView', { room: this.room, thread: value, attachments });
|
Navigation.navigate('ShareView', {
|
||||||
|
room: this.room,
|
||||||
|
thread: value,
|
||||||
|
attachments,
|
||||||
|
replying,
|
||||||
|
replyingMessage: message,
|
||||||
|
closeReply: replyCancel
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
createDiscussion = () => {
|
createDiscussion = () => {
|
||||||
|
@ -1042,16 +1049,7 @@ class MessageBox extends Component<IMessageBoxProps, IMessageBoxState> {
|
||||||
|
|
||||||
// Legacy reply or quote (quote is a reply without mention)
|
// Legacy reply or quote (quote is a reply without mention)
|
||||||
} else {
|
} else {
|
||||||
const { user, roomType } = this.props;
|
const msg = await this.formatReplyMessage(replyingMessage, message);
|
||||||
const permalink = await this.getPermalink(replyingMessage);
|
|
||||||
let msg = `[ ](${permalink}) `;
|
|
||||||
|
|
||||||
// if original message wasn't sent by current user and neither from a direct room
|
|
||||||
if (user.username !== replyingMessage?.u?.username && roomType !== 'd' && replyWithMention) {
|
|
||||||
msg += `@${replyingMessage?.u?.username} `;
|
|
||||||
}
|
|
||||||
|
|
||||||
msg = `${msg} ${message}`;
|
|
||||||
onSubmit(msg);
|
onSubmit(msg);
|
||||||
}
|
}
|
||||||
replyCancel();
|
replyCancel();
|
||||||
|
@ -1063,6 +1061,19 @@ class MessageBox extends Component<IMessageBoxProps, IMessageBoxState> {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
formatReplyMessage = async (replyingMessage: IMessage, message = '') => {
|
||||||
|
const { user, roomType, replyWithMention } = this.props;
|
||||||
|
const permalink = await this.getPermalink(replyingMessage);
|
||||||
|
let msg = `[ ](${permalink}) `;
|
||||||
|
|
||||||
|
// if original message wasn't sent by current user and neither from a direct room
|
||||||
|
if (user.username !== replyingMessage?.u?.username && roomType !== 'd' && replyWithMention) {
|
||||||
|
msg += `@${replyingMessage?.u?.username} `;
|
||||||
|
}
|
||||||
|
|
||||||
|
return `${msg} ${message}`;
|
||||||
|
};
|
||||||
|
|
||||||
updateMentions = (keyword: any, type: string) => {
|
updateMentions = (keyword: any, type: string) => {
|
||||||
if (type === MENTIONS_TRACKING_TYPE_USERS) {
|
if (type === MENTIONS_TRACKING_TYPE_USERS) {
|
||||||
this.getUsers(keyword);
|
this.getUsers(keyword);
|
||||||
|
|
|
@ -2,13 +2,13 @@ import React, { useEffect, useReducer, useRef } from 'react';
|
||||||
import { Subscription } from 'rxjs';
|
import { Subscription } from 'rxjs';
|
||||||
|
|
||||||
import I18n from '../../i18n';
|
import I18n from '../../i18n';
|
||||||
import { useAppSelector } from '../../lib/hooks';
|
|
||||||
import { getUserPresence } from '../../lib/methods';
|
import { getUserPresence } from '../../lib/methods';
|
||||||
import { isGroupChat } from '../../lib/methods/helpers';
|
import { isGroupChat } from '../../lib/methods/helpers';
|
||||||
import { formatDate } from '../../lib/methods/helpers/room';
|
import { formatDate } from '../../lib/methods/helpers/room';
|
||||||
import { IRoomItemContainerProps } from './interfaces';
|
import { IRoomItemContainerProps } from './interfaces';
|
||||||
import RoomItem from './RoomItem';
|
import RoomItem from './RoomItem';
|
||||||
import { ROW_HEIGHT, ROW_HEIGHT_CONDENSED } from './styles';
|
import { ROW_HEIGHT, ROW_HEIGHT_CONDENSED } from './styles';
|
||||||
|
import { useUserStatus } from './useUserStatus';
|
||||||
|
|
||||||
export { ROW_HEIGHT, ROW_HEIGHT_CONDENSED };
|
export { ROW_HEIGHT, ROW_HEIGHT_CONDENSED };
|
||||||
|
|
||||||
|
@ -42,11 +42,11 @@ const RoomItemContainer = React.memo(
|
||||||
const isRead = getIsRead(item);
|
const isRead = getIsRead(item);
|
||||||
const date = item.roomUpdatedAt && formatDate(item.roomUpdatedAt);
|
const date = item.roomUpdatedAt && formatDate(item.roomUpdatedAt);
|
||||||
const alert = item.alert || item.tunread?.length;
|
const alert = item.alert || item.tunread?.length;
|
||||||
const connected = useAppSelector(state => state.meteor.connected);
|
|
||||||
const userStatus = useAppSelector(state => state.activeUsers[id || '']?.status);
|
|
||||||
const [_, forceUpdate] = useReducer(x => x + 1, 1);
|
const [_, forceUpdate] = useReducer(x => x + 1, 1);
|
||||||
const roomSubscription = useRef<Subscription | null>(null);
|
const roomSubscription = useRef<Subscription | null>(null);
|
||||||
|
|
||||||
|
const { connected, status } = useUserStatus(item.t, item?.visitor?.status, id);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const init = () => {
|
const init = () => {
|
||||||
if (item?.observe) {
|
if (item?.observe) {
|
||||||
|
@ -85,8 +85,6 @@ const RoomItemContainer = React.memo(
|
||||||
accessibilityLabel = `, ${I18n.t('last_message')} ${date}`;
|
accessibilityLabel = `, ${I18n.t('last_message')} ${date}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
const status = item.t === 'l' ? item.visitor?.status || item.v?.status : userStatus;
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<RoomItem
|
<RoomItem
|
||||||
name={name}
|
name={name}
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
import { TUserStatus } from '../../definitions';
|
||||||
|
import { useAppSelector } from '../../lib/hooks';
|
||||||
|
import { RoomTypes } from '../../lib/methods';
|
||||||
|
|
||||||
|
export const useUserStatus = (
|
||||||
|
type: RoomTypes,
|
||||||
|
liveChatStatus?: TUserStatus,
|
||||||
|
id?: string
|
||||||
|
): { connected: boolean; status: TUserStatus } => {
|
||||||
|
const connected = useAppSelector(state => state.meteor.connected);
|
||||||
|
const userStatus = useAppSelector(state => state.activeUsers[id || '']?.status);
|
||||||
|
let status = 'loading';
|
||||||
|
if (connected) {
|
||||||
|
if (type === 'd') {
|
||||||
|
status = userStatus || 'loading';
|
||||||
|
} else if (type === 'l' && liveChatStatus) {
|
||||||
|
status = liveChatStatus;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
connected,
|
||||||
|
status: status as TUserStatus
|
||||||
|
};
|
||||||
|
};
|
|
@ -0,0 +1,62 @@
|
||||||
|
import React from 'react';
|
||||||
|
import { View, StyleSheet, Text, ViewStyle } from 'react-native';
|
||||||
|
|
||||||
|
import sharedStyles from '../views/Styles';
|
||||||
|
import { useTheme } from '../theme';
|
||||||
|
import openLink from '../lib/methods/helpers/openLink';
|
||||||
|
import { useAppSelector } from '../lib/hooks';
|
||||||
|
import I18n from '../i18n';
|
||||||
|
|
||||||
|
const styles = StyleSheet.create({
|
||||||
|
bottomContainer: {
|
||||||
|
flexDirection: 'column',
|
||||||
|
alignItems: 'center',
|
||||||
|
marginBottom: 32,
|
||||||
|
marginHorizontal: 30
|
||||||
|
},
|
||||||
|
bottomContainerText: {
|
||||||
|
...sharedStyles.textRegular,
|
||||||
|
fontSize: 13
|
||||||
|
},
|
||||||
|
bottomContainerTextBold: {
|
||||||
|
...sharedStyles.textSemibold,
|
||||||
|
fontSize: 13
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
const UGCRules = ({ styleContainer }: { styleContainer?: ViewStyle }) => {
|
||||||
|
const { colors, theme } = useTheme();
|
||||||
|
const { server } = useAppSelector(state => ({
|
||||||
|
server: state.server.server
|
||||||
|
}));
|
||||||
|
|
||||||
|
const openContract = (route: string) => {
|
||||||
|
if (!server) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
openLink(`${server}/${route}`, theme);
|
||||||
|
};
|
||||||
|
return (
|
||||||
|
<View style={[styles.bottomContainer, styleContainer]}>
|
||||||
|
<Text style={[styles.bottomContainerText, { color: colors.auxiliaryText }]}>
|
||||||
|
{`${I18n.t('Onboarding_agree_terms')}\n`}
|
||||||
|
<Text
|
||||||
|
style={[styles.bottomContainerTextBold, { color: colors.actionTintColor }]}
|
||||||
|
onPress={() => openContract('terms-of-service')}
|
||||||
|
>
|
||||||
|
{I18n.t('Terms_of_Service')}
|
||||||
|
</Text>{' '}
|
||||||
|
{I18n.t('and')}
|
||||||
|
<Text
|
||||||
|
style={[styles.bottomContainerTextBold, { color: colors.actionTintColor }]}
|
||||||
|
onPress={() => openContract('privacy-policy')}
|
||||||
|
>
|
||||||
|
{' '}
|
||||||
|
{I18n.t('Privacy_Policy')}
|
||||||
|
</Text>
|
||||||
|
</Text>
|
||||||
|
</View>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default UGCRules;
|
|
@ -407,7 +407,8 @@ class MessageContainer extends React.Component<IMessageContainerProps, IMessageC
|
||||||
threadBadgeColor,
|
threadBadgeColor,
|
||||||
toggleFollowThread,
|
toggleFollowThread,
|
||||||
replies
|
replies
|
||||||
}}>
|
}}
|
||||||
|
>
|
||||||
{/* @ts-ignore*/}
|
{/* @ts-ignore*/}
|
||||||
<Message
|
<Message
|
||||||
id={id}
|
id={id}
|
||||||
|
|
|
@ -8,7 +8,15 @@ import { TThreadMessageModel } from './IThreadMessage';
|
||||||
import { TThreadModel } from './IThread';
|
import { TThreadModel } from './IThread';
|
||||||
import { IUrl, IUrlFromServer } from './IUrl';
|
import { IUrl, IUrlFromServer } from './IUrl';
|
||||||
|
|
||||||
export type MessageType = 'jitsi_call_started' | 'discussion-created' | 'e2e' | 'load_more' | 'rm' | 'uj' | MessageTypeLoad | MessageTypesValues;
|
export type MessageType =
|
||||||
|
| 'jitsi_call_started'
|
||||||
|
| 'discussion-created'
|
||||||
|
| 'e2e'
|
||||||
|
| 'load_more'
|
||||||
|
| 'rm'
|
||||||
|
| 'uj'
|
||||||
|
| MessageTypeLoad
|
||||||
|
| MessageTypesValues;
|
||||||
|
|
||||||
export interface IUserMessage {
|
export interface IUserMessage {
|
||||||
_id: string;
|
_id: string;
|
||||||
|
|
|
@ -91,6 +91,7 @@ export interface ISubscription {
|
||||||
livechatData?: any;
|
livechatData?: any;
|
||||||
tags?: string[];
|
tags?: string[];
|
||||||
E2EKey?: string;
|
E2EKey?: string;
|
||||||
|
E2ESuggestedKey?: string;
|
||||||
encrypted?: boolean;
|
encrypted?: boolean;
|
||||||
e2eKeyId?: string;
|
e2eKeyId?: string;
|
||||||
avatarETag?: string;
|
avatarETag?: string;
|
||||||
|
@ -145,6 +146,7 @@ export interface IServerSubscription extends IRocketChatRecord {
|
||||||
onHold?: boolean;
|
onHold?: boolean;
|
||||||
encrypted?: boolean;
|
encrypted?: boolean;
|
||||||
E2EKey?: string;
|
E2EKey?: string;
|
||||||
|
E2ESuggestedKey?: string;
|
||||||
unreadAlert?: 'default' | 'all' | 'mentions' | 'nothing';
|
unreadAlert?: 'default' | 'all' | 'mentions' | 'nothing';
|
||||||
|
|
||||||
fname?: unknown;
|
fname?: unknown;
|
||||||
|
|
|
@ -5,6 +5,7 @@ export interface IUpload {
|
||||||
rid?: string;
|
rid?: string;
|
||||||
path: string;
|
path: string;
|
||||||
name?: string;
|
name?: string;
|
||||||
|
tmid?: string;
|
||||||
description?: string;
|
description?: string;
|
||||||
size: number;
|
size: number;
|
||||||
type?: string;
|
type?: string;
|
||||||
|
@ -12,6 +13,7 @@ export interface IUpload {
|
||||||
progress?: number;
|
progress?: number;
|
||||||
error?: boolean;
|
error?: boolean;
|
||||||
subscription?: { id: string };
|
subscription?: { id: string };
|
||||||
|
msg?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export type TUploadModel = IUpload & Model;
|
export type TUploadModel = IUpload & Model;
|
||||||
|
|
|
@ -29,6 +29,7 @@ export * from './ISearch';
|
||||||
export * from './TUserStatus';
|
export * from './TUserStatus';
|
||||||
export * from './IProfile';
|
export * from './IProfile';
|
||||||
export * from './IReaction';
|
export * from './IReaction';
|
||||||
|
export * from './ERoomType';
|
||||||
|
|
||||||
export interface IBaseScreen<T extends Record<string, object | undefined>, S extends string> {
|
export interface IBaseScreen<T extends Record<string, object | undefined>, S extends string> {
|
||||||
navigation: StackNavigationProp<T, S>;
|
navigation: StackNavigationProp<T, S>;
|
||||||
|
|
|
@ -12,6 +12,12 @@ export type E2eEndpoints = {
|
||||||
'e2e.updateGroupKey': {
|
'e2e.updateGroupKey': {
|
||||||
POST: (params: { uid: string; rid: string; key: string }) => {};
|
POST: (params: { uid: string; rid: string; key: string }) => {};
|
||||||
};
|
};
|
||||||
|
'e2e.acceptSuggestedGroupKey': {
|
||||||
|
POST: (params: { rid: string }) => {};
|
||||||
|
};
|
||||||
|
'e2e.rejectSuggestedGroupKey': {
|
||||||
|
POST: (params: { rid: string }) => {};
|
||||||
|
};
|
||||||
'e2e.setRoomKeyID': {
|
'e2e.setRoomKeyID': {
|
||||||
POST: (params: { rid: string; keyID: string }) => {};
|
POST: (params: { rid: string; keyID: string }) => {};
|
||||||
};
|
};
|
||||||
|
|
|
@ -123,6 +123,8 @@ export default class Subscription extends Model {
|
||||||
|
|
||||||
@field('e2e_key') E2EKey;
|
@field('e2e_key') E2EKey;
|
||||||
|
|
||||||
|
@field('e2e_suggested_key') E2ESuggestedKey;
|
||||||
|
|
||||||
@field('encrypted') encrypted;
|
@field('encrypted') encrypted;
|
||||||
|
|
||||||
@field('e2e_key_id') e2eKeyId;
|
@field('e2e_key_id') e2eKeyId;
|
||||||
|
|
|
@ -16,6 +16,8 @@ export default class Upload extends Model {
|
||||||
|
|
||||||
@field('name') name;
|
@field('name') name;
|
||||||
|
|
||||||
|
@field('tmid') tmid;
|
||||||
|
|
||||||
@field('description') description;
|
@field('description') description;
|
||||||
|
|
||||||
@field('size') size;
|
@field('size') size;
|
||||||
|
|
|
@ -239,6 +239,24 @@ export default schemaMigrations({
|
||||||
columns: [{ name: 'hide_mention_status', type: 'boolean', isOptional: true }]
|
columns: [{ name: 'hide_mention_status', type: 'boolean', isOptional: true }]
|
||||||
})
|
})
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
toVersion: 19,
|
||||||
|
steps: [
|
||||||
|
addColumns({
|
||||||
|
table: 'uploads',
|
||||||
|
columns: [{ name: 'tmid', type: 'string', isOptional: true }]
|
||||||
|
})
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
toVersion: 20,
|
||||||
|
steps: [
|
||||||
|
addColumns({
|
||||||
|
table: 'subscriptions',
|
||||||
|
columns: [{ name: 'e2e_suggested_key', type: 'string', isOptional: true }]
|
||||||
|
})
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import { appSchema, tableSchema } from '@nozbe/watermelondb';
|
import { appSchema, tableSchema } from '@nozbe/watermelondb';
|
||||||
|
|
||||||
export default appSchema({
|
export default appSchema({
|
||||||
version: 18,
|
version: 20,
|
||||||
tables: [
|
tables: [
|
||||||
tableSchema({
|
tableSchema({
|
||||||
name: 'subscriptions',
|
name: 'subscriptions',
|
||||||
|
@ -55,6 +55,7 @@ export default appSchema({
|
||||||
{ name: 'livechat_data', type: 'string', isOptional: true },
|
{ name: 'livechat_data', type: 'string', isOptional: true },
|
||||||
{ name: 'tags', type: 'string', isOptional: true },
|
{ name: 'tags', type: 'string', isOptional: true },
|
||||||
{ name: 'e2e_key', type: 'string', isOptional: true },
|
{ name: 'e2e_key', type: 'string', isOptional: true },
|
||||||
|
{ name: 'e2e_suggested_key', type: 'string', isOptional: true },
|
||||||
{ name: 'encrypted', type: 'boolean', isOptional: true },
|
{ name: 'encrypted', type: 'boolean', isOptional: true },
|
||||||
{ name: 'e2e_key_id', type: 'string', isOptional: true },
|
{ name: 'e2e_key_id', type: 'string', isOptional: true },
|
||||||
{ name: 'avatar_etag', type: 'string', isOptional: true },
|
{ name: 'avatar_etag', type: 'string', isOptional: true },
|
||||||
|
@ -222,6 +223,7 @@ export default appSchema({
|
||||||
{ name: 'path', type: 'string', isOptional: true },
|
{ name: 'path', type: 'string', isOptional: true },
|
||||||
{ name: 'rid', type: 'string', isIndexed: true },
|
{ name: 'rid', type: 'string', isIndexed: true },
|
||||||
{ name: 'name', type: 'string', isOptional: true },
|
{ name: 'name', type: 'string', isOptional: true },
|
||||||
|
{ name: 'tmid', type: 'string', isOptional: true },
|
||||||
{ name: 'description', type: 'string', isOptional: true },
|
{ name: 'description', type: 'string', isOptional: true },
|
||||||
{ name: 'size', type: 'number' },
|
{ name: 'size', type: 'number' },
|
||||||
{ name: 'type', type: 'string', isOptional: true },
|
{ name: 'type', type: 'string', isOptional: true },
|
||||||
|
|
|
@ -34,6 +34,7 @@ class Encryption {
|
||||||
handshake: Function;
|
handshake: Function;
|
||||||
decrypt: Function;
|
decrypt: Function;
|
||||||
encrypt: Function;
|
encrypt: Function;
|
||||||
|
importRoomKey: Function;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -97,6 +98,10 @@ class Encryption {
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
stopRoom = (rid: string) => {
|
||||||
|
delete this.roomInstances[rid];
|
||||||
|
};
|
||||||
|
|
||||||
// When a new participant join and request a new room encryption key
|
// When a new participant join and request a new room encryption key
|
||||||
provideRoomKeyToUser = async (keyId: string, rid: string) => {
|
provideRoomKeyToUser = async (keyId: string, rid: string) => {
|
||||||
// If the client is not ready
|
// If the client is not ready
|
||||||
|
@ -220,6 +225,19 @@ class Encryption {
|
||||||
return roomE2E;
|
return roomE2E;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
evaluateSuggestedKey = async (rid: string, E2ESuggestedKey: string) => {
|
||||||
|
try {
|
||||||
|
if (this.privateKey) {
|
||||||
|
const roomE2E = await this.getRoomInstance(rid);
|
||||||
|
await roomE2E.importRoomKey(E2ESuggestedKey, this.privateKey);
|
||||||
|
delete this.roomInstances[rid];
|
||||||
|
await Services.e2eAcceptSuggestedGroupKey(rid);
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
await Services.e2eRejectSuggestedGroupKey(rid);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
// Logic to decrypt all pending messages/threads/threadMessages
|
// Logic to decrypt all pending messages/threads/threadMessages
|
||||||
// after initialize the encryption client
|
// after initialize the encryption client
|
||||||
decryptPendingMessages = async (roomId?: string) => {
|
decryptPendingMessages = async (roomId?: string) => {
|
||||||
|
|
|
@ -74,7 +74,10 @@ export default class EncryptionRoom {
|
||||||
if (E2EKey && Encryption.privateKey) {
|
if (E2EKey && Encryption.privateKey) {
|
||||||
// We're establishing a new room encryption client
|
// We're establishing a new room encryption client
|
||||||
this.establishing = true;
|
this.establishing = true;
|
||||||
await this.importRoomKey(E2EKey, Encryption.privateKey);
|
const { keyID, roomKey, sessionKeyExportedString } = await this.importRoomKey(E2EKey, Encryption.privateKey);
|
||||||
|
this.keyID = keyID;
|
||||||
|
this.roomKey = roomKey;
|
||||||
|
this.sessionKeyExportedString = sessionKeyExportedString;
|
||||||
this.readyPromise.resolve();
|
this.readyPromise.resolve();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -96,20 +99,33 @@ export default class EncryptionRoom {
|
||||||
};
|
};
|
||||||
|
|
||||||
// Import roomKey as an AES Decrypt key
|
// Import roomKey as an AES Decrypt key
|
||||||
importRoomKey = async (E2EKey: string, privateKey: string) => {
|
importRoomKey = async (
|
||||||
const roomE2EKey = E2EKey.slice(12);
|
E2EKey: string,
|
||||||
|
privateKey: string
|
||||||
|
): Promise<{ sessionKeyExportedString: string | ByteBuffer; roomKey: ArrayBuffer; keyID: string }> => {
|
||||||
|
try {
|
||||||
|
const roomE2EKey = E2EKey.slice(12);
|
||||||
|
|
||||||
const decryptedKey = await SimpleCrypto.RSA.decrypt(roomE2EKey, privateKey);
|
const decryptedKey = await SimpleCrypto.RSA.decrypt(roomE2EKey, privateKey);
|
||||||
this.sessionKeyExportedString = toString(decryptedKey);
|
const sessionKeyExportedString = toString(decryptedKey);
|
||||||
|
|
||||||
this.keyID = Base64.encode(this.sessionKeyExportedString as string).slice(0, 12);
|
const keyID = Base64.encode(sessionKeyExportedString as string).slice(0, 12);
|
||||||
|
|
||||||
// Extract K from Web Crypto Secret Key
|
// Extract K from Web Crypto Secret Key
|
||||||
// K is a base64URL encoded array of bytes
|
// K is a base64URL encoded array of bytes
|
||||||
// Web Crypto API uses this as a private key to decrypt/encrypt things
|
// Web Crypto API uses this as a private key to decrypt/encrypt things
|
||||||
// Reference: https://www.javadoc.io/doc/com.nimbusds/nimbus-jose-jwt/5.1/com/nimbusds/jose/jwk/OctetSequenceKey.html
|
// Reference: https://www.javadoc.io/doc/com.nimbusds/nimbus-jose-jwt/5.1/com/nimbusds/jose/jwk/OctetSequenceKey.html
|
||||||
const { k } = EJSON.parse(this.sessionKeyExportedString as string);
|
const { k } = EJSON.parse(sessionKeyExportedString as string);
|
||||||
this.roomKey = b64ToBuffer(k);
|
const roomKey = b64ToBuffer(k);
|
||||||
|
|
||||||
|
return {
|
||||||
|
sessionKeyExportedString,
|
||||||
|
roomKey,
|
||||||
|
keyID
|
||||||
|
};
|
||||||
|
} catch (e: any) {
|
||||||
|
throw new Error(e);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// Create a key to a room
|
// Create a key to a room
|
||||||
|
|
|
@ -4,12 +4,17 @@ import { sanitizeLikeString } from '../database/utils';
|
||||||
import { store } from '../store/auxStore';
|
import { store } from '../store/auxStore';
|
||||||
import log from './helpers/log';
|
import log from './helpers/log';
|
||||||
|
|
||||||
|
const DEFAULT_EXTENSION = 'mp3';
|
||||||
|
|
||||||
const sanitizeString = (value: string) => sanitizeLikeString(value.substring(value.lastIndexOf('/') + 1));
|
const sanitizeString = (value: string) => sanitizeLikeString(value.substring(value.lastIndexOf('/') + 1));
|
||||||
|
|
||||||
const parseFilename = (value: string) => {
|
const getExtension = (value: string) => {
|
||||||
const extension = value.substring(value.lastIndexOf('.') + 1);
|
let extension = DEFAULT_EXTENSION;
|
||||||
const filename = sanitizeString(value.substring(value.lastIndexOf('/') + 1).split('.')[0]);
|
const filename = value.split('/').pop();
|
||||||
return `${filename}.${extension}`;
|
if (filename?.includes('.')) {
|
||||||
|
extension = value.substring(value.lastIndexOf('.') + 1);
|
||||||
|
}
|
||||||
|
return extension;
|
||||||
};
|
};
|
||||||
|
|
||||||
const ensureDirAsync = async (dir: string, intermediates = true): Promise<void> => {
|
const ensureDirAsync = async (dir: string, intermediates = true): Promise<void> => {
|
||||||
|
@ -27,7 +32,7 @@ export const downloadAudioFile = async (url: string, fileUrl: string, messageId:
|
||||||
const serverUrl = store.getState().server.server;
|
const serverUrl = store.getState().server.server;
|
||||||
const serverUrlParsed = sanitizeString(serverUrl);
|
const serverUrlParsed = sanitizeString(serverUrl);
|
||||||
const folderPath = `${FileSystem.documentDirectory}audios/${serverUrlParsed}`;
|
const folderPath = `${FileSystem.documentDirectory}audios/${serverUrlParsed}`;
|
||||||
const filename = `${messageId}_${parseFilename(fileUrl)}`;
|
const filename = `${messageId}.${getExtension(fileUrl)}`;
|
||||||
const filePath = `${folderPath}/${filename}`;
|
const filePath = `${folderPath}/${filename}`;
|
||||||
await ensureDirAsync(folderPath);
|
await ensureDirAsync(folderPath);
|
||||||
const file = await FileSystem.getInfoAsync(filePath);
|
const file = await FileSystem.getInfoAsync(filePath);
|
||||||
|
|
|
@ -1,16 +1,14 @@
|
||||||
import { SubscriptionType, TAnyMessageModel } from '../../../definitions';
|
import { SubscriptionType, TAnyMessageModel } from '../../definitions';
|
||||||
import { loadNextMessages, loadMessagesForRoom } from '../../../lib/methods';
|
import { loadNextMessages, loadMessagesForRoom } from '.';
|
||||||
import { MessageTypeLoad } from '../../../lib/constants';
|
import { MessageTypeLoad } from '../constants';
|
||||||
|
|
||||||
const getMoreMessages = ({
|
const getMoreMessages = ({
|
||||||
rid,
|
rid,
|
||||||
t,
|
t,
|
||||||
tmid,
|
|
||||||
loaderItem
|
loaderItem
|
||||||
}: {
|
}: {
|
||||||
rid: string;
|
rid: string;
|
||||||
t: SubscriptionType;
|
t: SubscriptionType;
|
||||||
tmid?: string;
|
|
||||||
loaderItem: TAnyMessageModel;
|
loaderItem: TAnyMessageModel;
|
||||||
}): Promise<void> => {
|
}): Promise<void> => {
|
||||||
if ([MessageTypeLoad.MORE, MessageTypeLoad.PREVIOUS_CHUNK].includes(loaderItem.t as MessageTypeLoad)) {
|
if ([MessageTypeLoad.MORE, MessageTypeLoad.PREVIOUS_CHUNK].includes(loaderItem.t as MessageTypeLoad)) {
|
||||||
|
@ -25,7 +23,6 @@ const getMoreMessages = ({
|
||||||
if (loaderItem.t === MessageTypeLoad.NEXT_CHUNK) {
|
if (loaderItem.t === MessageTypeLoad.NEXT_CHUNK) {
|
||||||
return loadNextMessages({
|
return loadNextMessages({
|
||||||
rid,
|
rid,
|
||||||
tmid,
|
|
||||||
ts: loaderItem.ts as Date,
|
ts: loaderItem.ts as Date,
|
||||||
loaderItem
|
loaderItem
|
||||||
});
|
});
|
|
@ -16,6 +16,7 @@ export * from './getSingleMessage';
|
||||||
export * from './getSlashCommands';
|
export * from './getSlashCommands';
|
||||||
export * from './getThreadName';
|
export * from './getThreadName';
|
||||||
export * from './getUsersPresence';
|
export * from './getUsersPresence';
|
||||||
|
export * from './getMoreMessages';
|
||||||
export * from './loadMessagesForRoom';
|
export * from './loadMessagesForRoom';
|
||||||
export * from './loadMissedMessages';
|
export * from './loadMissedMessages';
|
||||||
export * from './loadNextMessages';
|
export * from './loadNextMessages';
|
||||||
|
|
|
@ -15,7 +15,6 @@ const COUNT = 50;
|
||||||
interface ILoadNextMessages {
|
interface ILoadNextMessages {
|
||||||
rid: string;
|
rid: string;
|
||||||
ts: Date;
|
ts: Date;
|
||||||
tmid?: string;
|
|
||||||
loaderItem: TMessageModel;
|
loaderItem: TMessageModel;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -32,7 +31,6 @@ export function loadNextMessages(args: ILoadNextMessages): Promise<void> {
|
||||||
const loadMoreItem = {
|
const loadMoreItem = {
|
||||||
_id: generateLoadMoreId(lastMessage._id),
|
_id: generateLoadMoreId(lastMessage._id),
|
||||||
rid: lastMessage.rid,
|
rid: lastMessage.rid,
|
||||||
tmid: args.tmid,
|
|
||||||
ts: moment(lastMessage.ts).add(1, 'millisecond'),
|
ts: moment(lastMessage.ts).add(1, 'millisecond'),
|
||||||
t: MessageTypeLoad.NEXT_CHUNK
|
t: MessageTypeLoad.NEXT_CHUNK
|
||||||
};
|
};
|
||||||
|
|
|
@ -19,9 +19,6 @@ export function loadSurroundingMessages({ messageId, rid }: { messageId: string;
|
||||||
let messages: IMessage[] = EJSON.fromJSONValue(data?.messages);
|
let messages: IMessage[] = EJSON.fromJSONValue(data?.messages);
|
||||||
messages = orderBy(messages, 'ts');
|
messages = orderBy(messages, 'ts');
|
||||||
|
|
||||||
const message = messages.find(m => m._id === messageId);
|
|
||||||
const tmid = message?.tmid;
|
|
||||||
|
|
||||||
if (messages?.length) {
|
if (messages?.length) {
|
||||||
if (data?.moreBefore) {
|
if (data?.moreBefore) {
|
||||||
const firstMessage = messages[0];
|
const firstMessage = messages[0];
|
||||||
|
@ -30,7 +27,6 @@ export function loadSurroundingMessages({ messageId, rid }: { messageId: string;
|
||||||
const loadMoreItem = {
|
const loadMoreItem = {
|
||||||
_id: generateLoadMoreId(firstMessage._id),
|
_id: generateLoadMoreId(firstMessage._id),
|
||||||
rid: firstMessage.rid,
|
rid: firstMessage.rid,
|
||||||
tmid,
|
|
||||||
ts: moment(firstMessage.ts).subtract(1, 'millisecond').toDate(),
|
ts: moment(firstMessage.ts).subtract(1, 'millisecond').toDate(),
|
||||||
t: MessageTypeLoad.PREVIOUS_CHUNK,
|
t: MessageTypeLoad.PREVIOUS_CHUNK,
|
||||||
msg: firstMessage.msg
|
msg: firstMessage.msg
|
||||||
|
@ -46,7 +42,6 @@ export function loadSurroundingMessages({ messageId, rid }: { messageId: string;
|
||||||
const loadMoreItem = {
|
const loadMoreItem = {
|
||||||
_id: generateLoadMoreId(lastMessage._id),
|
_id: generateLoadMoreId(lastMessage._id),
|
||||||
rid: lastMessage.rid,
|
rid: lastMessage.rid,
|
||||||
tmid,
|
|
||||||
ts: moment(lastMessage.ts).add(1, 'millisecond').toDate(),
|
ts: moment(lastMessage.ts).add(1, 'millisecond').toDate(),
|
||||||
t: MessageTypeLoad.NEXT_CHUNK,
|
t: MessageTypeLoad.NEXT_CHUNK,
|
||||||
msg: lastMessage.msg
|
msg: lastMessage.msg
|
||||||
|
|
|
@ -46,7 +46,8 @@ export function sendFileMessage(
|
||||||
fileInfo: IUpload,
|
fileInfo: IUpload,
|
||||||
tmid: string | undefined,
|
tmid: string | undefined,
|
||||||
server: string,
|
server: string,
|
||||||
user: Partial<Pick<IUser, 'id' | 'token'>>
|
user: Partial<Pick<IUser, 'id' | 'token'>>,
|
||||||
|
isForceTryAgain?: boolean
|
||||||
): Promise<FetchBlobResponse | void> {
|
): Promise<FetchBlobResponse | void> {
|
||||||
return new Promise(async (resolve, reject) => {
|
return new Promise(async (resolve, reject) => {
|
||||||
try {
|
try {
|
||||||
|
@ -62,7 +63,7 @@ export function sendFileMessage(
|
||||||
let uploadRecord: TUploadModel;
|
let uploadRecord: TUploadModel;
|
||||||
try {
|
try {
|
||||||
uploadRecord = await uploadsCollection.find(uploadPath);
|
uploadRecord = await uploadsCollection.find(uploadPath);
|
||||||
if (uploadRecord.id) {
|
if (uploadRecord.id && !isForceTryAgain) {
|
||||||
return Alert.alert(i18n.t('FileUpload_Error'), i18n.t('Upload_in_progress'));
|
return Alert.alert(i18n.t('FileUpload_Error'), i18n.t('Upload_in_progress'));
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
@ -71,6 +72,9 @@ export function sendFileMessage(
|
||||||
uploadRecord = await uploadsCollection.create(u => {
|
uploadRecord = await uploadsCollection.create(u => {
|
||||||
u._raw = sanitizedRaw({ id: uploadPath }, uploadsCollection.schema);
|
u._raw = sanitizedRaw({ id: uploadPath }, uploadsCollection.schema);
|
||||||
Object.assign(u, fileInfo);
|
Object.assign(u, fileInfo);
|
||||||
|
if (tmid) {
|
||||||
|
u.tmid = tmid;
|
||||||
|
}
|
||||||
if (u.subscription) {
|
if (u.subscription) {
|
||||||
u.subscription.id = rid;
|
u.subscription.id = rid;
|
||||||
}
|
}
|
||||||
|
@ -96,6 +100,13 @@ export function sendFileMessage(
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (fileInfo.msg) {
|
||||||
|
formData.push({
|
||||||
|
name: 'msg',
|
||||||
|
data: fileInfo.msg
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
if (tmid) {
|
if (tmid) {
|
||||||
formData.push({
|
formData.push({
|
||||||
name: 'tmid',
|
name: 'tmid',
|
||||||
|
|
|
@ -102,6 +102,7 @@ const createOrUpdateSubscription = async (subscription: ISubscription, room: ISe
|
||||||
encrypted: s.encrypted,
|
encrypted: s.encrypted,
|
||||||
e2eKeyId: s.e2eKeyId,
|
e2eKeyId: s.e2eKeyId,
|
||||||
E2EKey: s.E2EKey,
|
E2EKey: s.E2EKey,
|
||||||
|
E2ESuggestedKey: s.E2ESuggestedKey,
|
||||||
avatarETag: s.avatarETag,
|
avatarETag: s.avatarETag,
|
||||||
onHold: s.onHold,
|
onHold: s.onHold,
|
||||||
hideMentionStatus: s.hideMentionStatus
|
hideMentionStatus: s.hideMentionStatus
|
||||||
|
@ -165,6 +166,8 @@ const createOrUpdateSubscription = async (subscription: ISubscription, room: ISe
|
||||||
tmp = (await Encryption.decryptSubscription(tmp)) as ISubscription;
|
tmp = (await Encryption.decryptSubscription(tmp)) as ISubscription;
|
||||||
// Decrypt all pending messages of this room in parallel
|
// Decrypt all pending messages of this room in parallel
|
||||||
Encryption.decryptPendingMessages(tmp.rid);
|
Encryption.decryptPendingMessages(tmp.rid);
|
||||||
|
} else if (sub && subscription.E2ESuggestedKey) {
|
||||||
|
await Encryption.evaluateSuggestedKey(sub.rid, subscription.E2ESuggestedKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
const batch: Model[] = [];
|
const batch: Model[] = [];
|
||||||
|
@ -320,6 +323,8 @@ export default function subscribeRooms() {
|
||||||
await db.batch(sub.prepareDestroyPermanently(), ...messagesToDelete, ...threadsToDelete, ...threadMessagesToDelete);
|
await db.batch(sub.prepareDestroyPermanently(), ...messagesToDelete, ...threadsToDelete, ...threadMessagesToDelete);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Encryption.stopRoom(data.rid);
|
||||||
|
|
||||||
const roomState = store.getState().room;
|
const roomState = store.getState().room;
|
||||||
// Delete and remove events come from this stream
|
// Delete and remove events come from this stream
|
||||||
// Here we identify which one was triggered
|
// Here we identify which one was triggered
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
import { PermissionsAndroid } from 'react-native';
|
import { PermissionsAndroid, Permission } from 'react-native';
|
||||||
|
import DeviceInfo from 'react-native-device-info';
|
||||||
|
|
||||||
import i18n from '../../i18n';
|
import i18n from '../../i18n';
|
||||||
import navigation from '../navigation/appNavigation';
|
import navigation from '../navigation/appNavigation';
|
||||||
|
@ -7,14 +8,27 @@ import { isAndroid, showErrorAlert } from './helpers';
|
||||||
import log from './helpers/log';
|
import log from './helpers/log';
|
||||||
import openLink from './helpers/openLink';
|
import openLink from './helpers/openLink';
|
||||||
|
|
||||||
|
const handleBltPermission = async (): Promise<Permission[]> => {
|
||||||
|
const systemVersion = await DeviceInfo.getApiLevel();
|
||||||
|
if (systemVersion <= 28) {
|
||||||
|
return [PermissionsAndroid.PERMISSIONS.BLUETOOTH_CONNECT, PermissionsAndroid.PERMISSIONS.BLUETOOTH_SCAN];
|
||||||
|
}
|
||||||
|
if (systemVersion === 29) {
|
||||||
|
return [PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION];
|
||||||
|
}
|
||||||
|
return [PermissionsAndroid.PERMISSIONS.ACCESS_COARSE_LOCATION];
|
||||||
|
};
|
||||||
|
|
||||||
export const videoConfJoin = async (callId: string, cam: boolean) => {
|
export const videoConfJoin = async (callId: string, cam: boolean) => {
|
||||||
try {
|
try {
|
||||||
const result = await Services.videoConferenceJoin(callId, cam);
|
const result = await Services.videoConferenceJoin(callId, cam);
|
||||||
if (result.success) {
|
if (result.success) {
|
||||||
if (isAndroid) {
|
if (isAndroid) {
|
||||||
|
const bltPermission = await handleBltPermission();
|
||||||
await PermissionsAndroid.requestMultiple([
|
await PermissionsAndroid.requestMultiple([
|
||||||
PermissionsAndroid.PERMISSIONS.CAMERA,
|
PermissionsAndroid.PERMISSIONS.CAMERA,
|
||||||
PermissionsAndroid.PERMISSIONS.RECORD_AUDIO
|
PermissionsAndroid.PERMISSIONS.RECORD_AUDIO,
|
||||||
|
...bltPermission
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
const { url, providerName } = result;
|
const { url, providerName } = result;
|
||||||
|
|
|
@ -3,7 +3,7 @@ import EJSON from 'ejson';
|
||||||
import { store } from '../store/auxStore';
|
import { store } from '../store/auxStore';
|
||||||
import { deepLinkingOpen } from '../../actions/deepLinking';
|
import { deepLinkingOpen } from '../../actions/deepLinking';
|
||||||
import { isFDroidBuild } from '../constants';
|
import { isFDroidBuild } from '../constants';
|
||||||
import { deviceToken, pushNotificationConfigure, setNotificationsBadgeCount } from './push';
|
import { deviceToken, pushNotificationConfigure, setNotificationsBadgeCount, removeAllNotifications } from './push';
|
||||||
import { INotification, SubscriptionType } from '../../definitions';
|
import { INotification, SubscriptionType } from '../../definitions';
|
||||||
|
|
||||||
interface IEjson {
|
interface IEjson {
|
||||||
|
@ -49,6 +49,10 @@ export const onNotification = (push: INotification): void => {
|
||||||
|
|
||||||
export const getDeviceToken = (): string => deviceToken;
|
export const getDeviceToken = (): string => deviceToken;
|
||||||
export const setBadgeCount = (count?: number): void => setNotificationsBadgeCount(count);
|
export const setBadgeCount = (count?: number): void => setNotificationsBadgeCount(count);
|
||||||
|
export const removeNotificationsAndBadge = () => {
|
||||||
|
removeAllNotifications();
|
||||||
|
setBadgeCount();
|
||||||
|
};
|
||||||
export const initializePushNotifications = (): Promise<INotification> | undefined => {
|
export const initializePushNotifications = (): Promise<INotification> | undefined => {
|
||||||
if (!isFDroidBuild) {
|
if (!isFDroidBuild) {
|
||||||
setBadgeCount();
|
setBadgeCount();
|
||||||
|
|
|
@ -21,6 +21,10 @@ export const setNotificationsBadgeCount = (count = 0): void => {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const removeAllNotifications = (): void => {
|
||||||
|
Notifications.removeAllDeliveredNotifications();
|
||||||
|
};
|
||||||
|
|
||||||
export const pushNotificationConfigure = (onNotification: (notification: INotification) => void): Promise<any> => {
|
export const pushNotificationConfigure = (onNotification: (notification: INotification) => void): Promise<any> => {
|
||||||
if (isIOS) {
|
if (isIOS) {
|
||||||
// init
|
// init
|
||||||
|
|
|
@ -74,6 +74,14 @@ export const e2eRequestRoomKey = (rid: string, e2eKeyId: string): Promise<{ mess
|
||||||
// RC 0.70.0
|
// RC 0.70.0
|
||||||
sdk.methodCallWrapper('stream-notify-room-users', `${rid}/e2ekeyRequest`, rid, e2eKeyId);
|
sdk.methodCallWrapper('stream-notify-room-users', `${rid}/e2ekeyRequest`, rid, e2eKeyId);
|
||||||
|
|
||||||
|
export const e2eAcceptSuggestedGroupKey = (rid: string): Promise<{ success: boolean }> =>
|
||||||
|
// RC 5.5
|
||||||
|
sdk.post('e2e.acceptSuggestedGroupKey', { rid });
|
||||||
|
|
||||||
|
export const e2eRejectSuggestedGroupKey = (rid: string): Promise<{ success: boolean }> =>
|
||||||
|
// RC 5.5
|
||||||
|
sdk.post('e2e.rejectSuggestedGroupKey', { rid });
|
||||||
|
|
||||||
export const updateJitsiTimeout = (roomId: string) =>
|
export const updateJitsiTimeout = (roomId: string) =>
|
||||||
// RC 0.74.0
|
// RC 0.74.0
|
||||||
sdk.post('video-conference/jitsi.update-timeout', { roomId });
|
sdk.post('video-conference/jitsi.update-timeout', { roomId });
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
// https://github.com/bamlab/redux-enhancer-react-native-appstate
|
// https://github.com/bamlab/redux-enhancer-react-native-appstate
|
||||||
import { AppState } from 'react-native';
|
import { AppState } from 'react-native';
|
||||||
|
|
||||||
|
import { removeNotificationsAndBadge } from '../notifications';
|
||||||
import { APP_STATE } from '../../actions/actionsTypes';
|
import { APP_STATE } from '../../actions/actionsTypes';
|
||||||
|
|
||||||
export default () =>
|
export default () =>
|
||||||
|
@ -16,6 +17,7 @@ export default () =>
|
||||||
let type;
|
let type;
|
||||||
if (nextAppState === 'active') {
|
if (nextAppState === 'active') {
|
||||||
type = APP_STATE.FOREGROUND;
|
type = APP_STATE.FOREGROUND;
|
||||||
|
removeNotificationsAndBadge();
|
||||||
} else if (nextAppState === 'background') {
|
} else if (nextAppState === 'background') {
|
||||||
type = APP_STATE.BACKGROUND;
|
type = APP_STATE.BACKGROUND;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,13 @@
|
||||||
import { deleteRoom, forwardRoom, leaveRoom, removedRoom, subscribeRoom, unsubscribeRoom } from '../actions/room';
|
import {
|
||||||
|
deleteRoom,
|
||||||
|
forwardRoom,
|
||||||
|
leaveRoom,
|
||||||
|
removedRoom,
|
||||||
|
roomHistoryFinished,
|
||||||
|
roomHistoryRequest,
|
||||||
|
subscribeRoom,
|
||||||
|
unsubscribeRoom
|
||||||
|
} from '../actions/room';
|
||||||
import { ERoomType } from '../definitions/ERoomType';
|
import { ERoomType } from '../definitions/ERoomType';
|
||||||
import { mockedStore } from './mockedStore';
|
import { mockedStore } from './mockedStore';
|
||||||
import { initialState } from './room';
|
import { initialState } from './room';
|
||||||
|
@ -48,4 +57,16 @@ describe('test room reducer', () => {
|
||||||
const { isDeleting } = mockedStore.getState().room;
|
const { isDeleting } = mockedStore.getState().room;
|
||||||
expect(isDeleting).toEqual(false);
|
expect(isDeleting).toEqual(false);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should return historyLoaders with one item after call historyRequest', () => {
|
||||||
|
mockedStore.dispatch(roomHistoryRequest({ rid: 'GENERAL', t: 'c', loaderId: 'loader' }));
|
||||||
|
const { historyLoaders } = mockedStore.getState().room;
|
||||||
|
expect(historyLoaders).toEqual(['loader']);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should return historyLoaders with empty array after call historyFinished', () => {
|
||||||
|
mockedStore.dispatch(roomHistoryFinished({ loaderId: 'loader' }));
|
||||||
|
const { historyLoaders } = mockedStore.getState().room;
|
||||||
|
expect(historyLoaders).toEqual([]);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -7,12 +7,14 @@ export interface IRoom {
|
||||||
rid: string;
|
rid: string;
|
||||||
isDeleting: boolean;
|
isDeleting: boolean;
|
||||||
subscribedRoom: string;
|
subscribedRoom: string;
|
||||||
|
historyLoaders: string[];
|
||||||
}
|
}
|
||||||
|
|
||||||
export const initialState: IRoom = {
|
export const initialState: IRoom = {
|
||||||
rid: '',
|
rid: '',
|
||||||
isDeleting: false,
|
isDeleting: false,
|
||||||
subscribedRoom: ''
|
subscribedRoom: '',
|
||||||
|
historyLoaders: []
|
||||||
};
|
};
|
||||||
|
|
||||||
export default function (state = initialState, action: TActionsRoom): IRoom {
|
export default function (state = initialState, action: TActionsRoom): IRoom {
|
||||||
|
@ -56,6 +58,16 @@ export default function (state = initialState, action: TActionsRoom): IRoom {
|
||||||
...state,
|
...state,
|
||||||
isDeleting: false
|
isDeleting: false
|
||||||
};
|
};
|
||||||
|
case ROOM.HISTORY_REQUEST:
|
||||||
|
return {
|
||||||
|
...state,
|
||||||
|
historyLoaders: [...state.historyLoaders, action.loaderId]
|
||||||
|
};
|
||||||
|
case ROOM.HISTORY_FINISHED:
|
||||||
|
return {
|
||||||
|
...state,
|
||||||
|
historyLoaders: state.historyLoaders.filter(loaderId => loaderId !== action.loaderId)
|
||||||
|
};
|
||||||
default:
|
default:
|
||||||
return state;
|
return state;
|
||||||
}
|
}
|
||||||
|
|
|
@ -51,13 +51,6 @@ const handleEncryptionInit = function* handleEncryptionInit() {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// If the user has a private key stored, but never entered the password
|
|
||||||
const storedRandomPassword = UserPreferences.getString(`${server}-${E2E_RANDOM_PASSWORD_KEY}`);
|
|
||||||
|
|
||||||
if (storedRandomPassword) {
|
|
||||||
yield put(encryptionSet(true, E2E_BANNER_TYPE.SAVE_PASSWORD));
|
|
||||||
}
|
|
||||||
|
|
||||||
// Fetch stored public e2e key for this server
|
// Fetch stored public e2e key for this server
|
||||||
let storedPublicKey = UserPreferences.getString(`${server}-${E2E_PUBLIC_KEY}`);
|
let storedPublicKey = UserPreferences.getString(`${server}-${E2E_PUBLIC_KEY}`);
|
||||||
|
|
||||||
|
@ -66,14 +59,21 @@ const handleEncryptionInit = function* handleEncryptionInit() {
|
||||||
storedPublicKey = EJSON.parse(storedPublicKey);
|
storedPublicKey = EJSON.parse(storedPublicKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (storedPublicKey && storedPrivateKey && !storedRandomPassword) {
|
if (storedPublicKey && storedPrivateKey) {
|
||||||
// Persist these keys
|
// Persist these keys
|
||||||
yield Encryption.persistKeys(server, storedPublicKey, storedPrivateKey);
|
yield Encryption.persistKeys(server, storedPublicKey, storedPrivateKey);
|
||||||
yield put(encryptionSet(true));
|
|
||||||
} else {
|
} else {
|
||||||
// Create new keys since the user doesn't have any
|
// Create new keys since the user doesn't have any
|
||||||
yield Encryption.createKeys(user.id, server);
|
yield Encryption.createKeys(user.id, server);
|
||||||
|
}
|
||||||
|
|
||||||
|
// If the user has a private key stored, but never entered the password
|
||||||
|
const storedRandomPassword = UserPreferences.getString(`${server}-${E2E_RANDOM_PASSWORD_KEY}`);
|
||||||
|
|
||||||
|
if (storedRandomPassword) {
|
||||||
yield put(encryptionSet(true, E2E_BANNER_TYPE.SAVE_PASSWORD));
|
yield put(encryptionSet(true, E2E_BANNER_TYPE.SAVE_PASSWORD));
|
||||||
|
} else {
|
||||||
|
yield put(encryptionSet(true));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Decrypt all pending messages/subscriptions
|
// Decrypt all pending messages/subscriptions
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import { Alert } from 'react-native';
|
import { Alert } from 'react-native';
|
||||||
import { delay, put, race, select, take, takeLatest } from 'redux-saga/effects';
|
import { delay, put, race, select, take, takeLatest, actionChannel } from 'redux-saga/effects';
|
||||||
|
|
||||||
import EventEmitter from '../lib/methods/helpers/events';
|
import EventEmitter from '../lib/methods/helpers/events';
|
||||||
import Navigation from '../lib/navigation/appNavigation';
|
import Navigation from '../lib/navigation/appNavigation';
|
||||||
|
@ -10,6 +10,26 @@ import I18n from '../i18n';
|
||||||
import { showErrorAlert } from '../lib/methods/helpers/info';
|
import { showErrorAlert } from '../lib/methods/helpers/info';
|
||||||
import { LISTENER } from '../containers/Toast';
|
import { LISTENER } from '../containers/Toast';
|
||||||
import { Services } from '../lib/services';
|
import { Services } from '../lib/services';
|
||||||
|
import getMoreMessages from '../lib/methods/getMoreMessages';
|
||||||
|
import { getMessageById } from '../lib/database/services/Message';
|
||||||
|
|
||||||
|
function* watchHistoryRequests() {
|
||||||
|
const requestChan = yield actionChannel(types.ROOM.HISTORY_REQUEST);
|
||||||
|
while (true) {
|
||||||
|
const { rid, t, tmid, loaderId } = yield take(requestChan);
|
||||||
|
|
||||||
|
const loaderItem = yield getMessageById(loaderId);
|
||||||
|
if (loaderItem) {
|
||||||
|
try {
|
||||||
|
yield getMoreMessages({ rid, t, tmid, loaderItem });
|
||||||
|
} catch (e) {
|
||||||
|
log(e);
|
||||||
|
} finally {
|
||||||
|
yield put({ type: types.ROOM.HISTORY_FINISHED, loaderId });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const watchUserTyping = function* watchUserTyping({ rid, status }) {
|
const watchUserTyping = function* watchUserTyping({ rid, status }) {
|
||||||
const auth = yield select(state => state.login.isAuthenticated);
|
const auth = yield select(state => state.login.isAuthenticated);
|
||||||
|
@ -132,5 +152,6 @@ const root = function* root() {
|
||||||
yield takeLatest(types.ROOM.LEAVE, handleLeaveRoom);
|
yield takeLatest(types.ROOM.LEAVE, handleLeaveRoom);
|
||||||
yield takeLatest(types.ROOM.DELETE, handleDeleteRoom);
|
yield takeLatest(types.ROOM.DELETE, handleDeleteRoom);
|
||||||
yield takeLatest(types.ROOM.FORWARD, handleForwardRoom);
|
yield takeLatest(types.ROOM.FORWARD, handleForwardRoom);
|
||||||
|
yield watchHistoryRequests();
|
||||||
};
|
};
|
||||||
export default root;
|
export default root;
|
||||||
|
|
|
@ -66,7 +66,7 @@ const handleRoomsRequest = function* handleRoomsRequest({ params }) {
|
||||||
*/
|
*/
|
||||||
.filter(sub => subscribedRoom !== sub.rid)
|
.filter(sub => subscribedRoom !== sub.rid)
|
||||||
.map(sub => sub.lastMessage && buildMessage(sub.lastMessage))
|
.map(sub => sub.lastMessage && buildMessage(sub.lastMessage))
|
||||||
.filter(lm => lm);
|
.filter(lm => lm && lm._id && lm.rid);
|
||||||
const lastMessagesIds = lastMessages.map(lm => lm._id).filter(lm => lm);
|
const lastMessagesIds = lastMessages.map(lm => lm._id).filter(lm => lm);
|
||||||
const existingMessages = yield messagesCollection.query(Q.where('id', Q.oneOf(lastMessagesIds))).fetch();
|
const existingMessages = yield messagesCollection.query(Q.where('id', Q.oneOf(lastMessagesIds))).fetch();
|
||||||
const messagesToUpdate = existingMessages.filter(i1 => lastMessages.find(i2 => i1.id === i2._id));
|
const messagesToUpdate = existingMessages.filter(i1 => lastMessages.find(i2 => i1.id === i2._id));
|
||||||
|
|
|
@ -5,7 +5,6 @@ import { localAuthenticate, saveLastLocalAuthenticationSession } from '../lib/me
|
||||||
import { APP_STATE } from '../actions/actionsTypes';
|
import { APP_STATE } from '../actions/actionsTypes';
|
||||||
import { RootEnum } from '../definitions';
|
import { RootEnum } from '../definitions';
|
||||||
import { Services } from '../lib/services';
|
import { Services } from '../lib/services';
|
||||||
import { setBadgeCount } from '../lib/notifications';
|
|
||||||
|
|
||||||
const appHasComeBackToForeground = function* appHasComeBackToForeground() {
|
const appHasComeBackToForeground = function* appHasComeBackToForeground() {
|
||||||
const appRoot = yield select(state => state.app.root);
|
const appRoot = yield select(state => state.app.root);
|
||||||
|
@ -20,7 +19,6 @@ const appHasComeBackToForeground = function* appHasComeBackToForeground() {
|
||||||
try {
|
try {
|
||||||
yield localAuthenticate(server.server);
|
yield localAuthenticate(server.server);
|
||||||
Services.checkAndReopen();
|
Services.checkAndReopen();
|
||||||
setBadgeCount();
|
|
||||||
return yield Services.setUserPresenceOnline();
|
return yield Services.setUserPresenceOnline();
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
log(e);
|
log(e);
|
||||||
|
|
|
@ -272,6 +272,9 @@ export type InsideStackParamList = {
|
||||||
text: string;
|
text: string;
|
||||||
room: TSubscriptionModel;
|
room: TSubscriptionModel;
|
||||||
thread: TThreadModel;
|
thread: TThreadModel;
|
||||||
|
replying?: boolean;
|
||||||
|
replyingMessage?: IMessage;
|
||||||
|
closeReply?: Function;
|
||||||
};
|
};
|
||||||
ModalBlockView: {
|
ModalBlockView: {
|
||||||
data: any; // TODO: Change;
|
data: any; // TODO: Change;
|
||||||
|
|
|
@ -16,8 +16,8 @@ import { Services } from '../lib/services';
|
||||||
import { IApplicationState, ICredentials } from '../definitions';
|
import { IApplicationState, ICredentials } from '../definitions';
|
||||||
|
|
||||||
const userAgent = isIOS
|
const userAgent = isIOS
|
||||||
? 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1'
|
? 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.5 Mobile/15E148 Safari/604.1'
|
||||||
: 'Mozilla/5.0 (Linux; Android 6.0.1; SM-G920V Build/MMB29K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.98 Mobile Safari/537.36';
|
: 'Mozilla/5.0 (Linux; Android 12; SM-A315G) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Mobile Safari/537.36';
|
||||||
|
|
||||||
// iframe uses a postMessage to send the token to the client
|
// iframe uses a postMessage to send the token to the client
|
||||||
// We'll handle this sending the token to the hash of the window.location
|
// We'll handle this sending the token to the hash of the window.location
|
||||||
|
|
|
@ -4,6 +4,7 @@ import BackgroundTimer from 'react-native-background-timer';
|
||||||
import { isAppInstalled, openAppWithUri } from 'react-native-send-intent';
|
import { isAppInstalled, openAppWithUri } from 'react-native-send-intent';
|
||||||
import WebView from 'react-native-webview';
|
import WebView from 'react-native-webview';
|
||||||
import { WebViewMessage, WebViewNavigation } from 'react-native-webview/lib/WebViewTypes';
|
import { WebViewMessage, WebViewNavigation } from 'react-native-webview/lib/WebViewTypes';
|
||||||
|
import { activateKeepAwake, deactivateKeepAwake } from 'expo-keep-awake';
|
||||||
|
|
||||||
import { IBaseScreen } from '../definitions';
|
import { IBaseScreen } from '../definitions';
|
||||||
import { events, logEvent } from '../lib/methods/helpers/log';
|
import { events, logEvent } from '../lib/methods/helpers/log';
|
||||||
|
@ -44,6 +45,7 @@ class JitsiMeetView extends React.Component<TJitsiMeetViewProps> {
|
||||||
.catch(() => {});
|
.catch(() => {});
|
||||||
this.onConferenceJoined();
|
this.onConferenceJoined();
|
||||||
this.backHandler = BackHandler.addEventListener('hardwareBackPress', () => true);
|
this.backHandler = BackHandler.addEventListener('hardwareBackPress', () => true);
|
||||||
|
activateKeepAwake();
|
||||||
}
|
}
|
||||||
|
|
||||||
componentWillUnmount() {
|
componentWillUnmount() {
|
||||||
|
@ -54,6 +56,7 @@ class JitsiMeetView extends React.Component<TJitsiMeetViewProps> {
|
||||||
BackgroundTimer.stopBackgroundTimer();
|
BackgroundTimer.stopBackgroundTimer();
|
||||||
}
|
}
|
||||||
this.backHandler.remove();
|
this.backHandler.remove();
|
||||||
|
deactivateKeepAwake();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Jitsi Update Timeout needs to be called every 10 seconds to make sure
|
// Jitsi Update Timeout needs to be called every 10 seconds to make sure
|
||||||
|
|
|
@ -1,137 +1,78 @@
|
||||||
import React from 'react';
|
// @ts-ignore
|
||||||
import { StyleSheet } from 'react-native';
|
// eslint-disable-next-line import/no-unresolved
|
||||||
import BackgroundTimer from 'react-native-background-timer';
|
import JitsiMeet from '@socialcode-rob1/react-native-jitsimeet-custom';
|
||||||
import JitsiMeet, { JitsiMeetView as RNJitsiMeetView } from 'react-native-jitsi-meet';
|
import React, { useEffect } from 'react';
|
||||||
import { connect } from 'react-redux';
|
import { RouteProp, useNavigation, useRoute } from '@react-navigation/native';
|
||||||
|
|
||||||
import RCActivityIndicator from '../containers/ActivityIndicator';
|
import RCActivityIndicator from '../containers/ActivityIndicator';
|
||||||
import { IApplicationState, IBaseScreen, IUser } from '../definitions';
|
import { useAppSelector } from '../lib/hooks';
|
||||||
import { events, logEvent } from '../lib/methods/helpers/log';
|
import { events, logEvent } from '../lib/methods/helpers/log';
|
||||||
import { Services } from '../lib/services';
|
|
||||||
import { getUserSelector } from '../selectors/login';
|
import { getUserSelector } from '../selectors/login';
|
||||||
import { ChatsStackParamList } from '../stacks/types';
|
import { ChatsStackParamList } from '../stacks/types';
|
||||||
import { withTheme } from '../theme';
|
|
||||||
|
|
||||||
const formatUrl = (url: string, baseUrl: string, uriSize: number, avatarAuthURLFragment: string) =>
|
const formatUrl = (url: string, baseUrl: string, uriSize: number, avatarAuthURLFragment: string) =>
|
||||||
`${baseUrl}/avatar/${url}?format=png&width=${uriSize}&height=${uriSize}${avatarAuthURLFragment}`;
|
`${baseUrl}/avatar/${url}?format=png&width=${uriSize}&height=${uriSize}${avatarAuthURLFragment}`;
|
||||||
|
|
||||||
interface IJitsiMeetViewState {
|
const JitsiMeetView = (): React.ReactElement => {
|
||||||
userInfo: {
|
const { goBack } = useNavigation();
|
||||||
displayName: string;
|
const {
|
||||||
avatar: string;
|
params: { url, onlyAudio, videoConf }
|
||||||
};
|
} = useRoute<RouteProp<ChatsStackParamList, 'JitsiMeetView'>>();
|
||||||
loading: boolean;
|
const user = useAppSelector(state => getUserSelector(state));
|
||||||
}
|
const baseUrl = useAppSelector(state => state.server.server);
|
||||||
|
|
||||||
interface IJitsiMeetViewProps extends IBaseScreen<ChatsStackParamList, 'JitsiMeetView'> {
|
useEffect(() => {
|
||||||
baseUrl: string;
|
initJitsi();
|
||||||
user: IUser;
|
}, []);
|
||||||
}
|
|
||||||
|
|
||||||
class JitsiMeetView extends React.Component<IJitsiMeetViewProps, IJitsiMeetViewState> {
|
const initJitsi = async () => {
|
||||||
private rid: string;
|
const audioOnly = onlyAudio ?? false;
|
||||||
private url: string;
|
|
||||||
private videoConf: boolean;
|
|
||||||
private jitsiTimeout: number | null;
|
|
||||||
|
|
||||||
constructor(props: IJitsiMeetViewProps) {
|
|
||||||
super(props);
|
|
||||||
this.rid = props.route.params?.rid;
|
|
||||||
this.url = props.route.params?.url;
|
|
||||||
this.videoConf = !!props.route.params?.videoConf;
|
|
||||||
this.jitsiTimeout = null;
|
|
||||||
|
|
||||||
const { user, baseUrl } = props;
|
|
||||||
const { name, id: userId, token, username } = user;
|
const { name, id: userId, token, username } = user;
|
||||||
const avatarAuthURLFragment = `&rc_token=${token}&rc_uid=${userId}`;
|
const avatarAuthURLFragment = `&rc_token=${token}&rc_uid=${userId}`;
|
||||||
const avatar = formatUrl(username, baseUrl, 100, avatarAuthURLFragment);
|
const avatar = formatUrl(username, baseUrl, 100, avatarAuthURLFragment);
|
||||||
this.state = {
|
|
||||||
userInfo: {
|
const userInfo = {
|
||||||
displayName: name as string,
|
displayName: name as string,
|
||||||
avatar
|
avatar
|
||||||
},
|
|
||||||
loading: true
|
|
||||||
};
|
};
|
||||||
}
|
const regex = /(?:\/.*\/)(.*)/;
|
||||||
|
const urlWithoutServer = regex.exec(url)![1];
|
||||||
|
const serverUrl = url.replace(`/${urlWithoutServer}`, '');
|
||||||
|
const room = urlWithoutServer.split('#')[0];
|
||||||
|
|
||||||
componentDidMount() {
|
const conferenceOptions = {
|
||||||
const { route } = this.props;
|
room,
|
||||||
const { userInfo } = this.state;
|
serverUrl,
|
||||||
|
userInfo: {
|
||||||
setTimeout(() => {
|
displayName: userInfo.displayName,
|
||||||
const onlyAudio = route.params?.onlyAudio ?? false;
|
avatar: userInfo.avatar
|
||||||
if (onlyAudio) {
|
},
|
||||||
JitsiMeet.audioCall(this.url, userInfo);
|
subject: room,
|
||||||
} else {
|
audioOnly,
|
||||||
JitsiMeet.call(this.url, userInfo);
|
audioMuted: false,
|
||||||
|
videoMuted: audioOnly,
|
||||||
|
featureFlags: {
|
||||||
|
'live-streaming.enabled': false,
|
||||||
|
'calendar.enabled': false,
|
||||||
|
'call-integration.enabled': false,
|
||||||
|
'pip.enabled': false,
|
||||||
|
'invite.enabled': false,
|
||||||
|
'welcomepage.enabled': false,
|
||||||
|
'add-people.enabled': false
|
||||||
|
},
|
||||||
|
configOverrides: {
|
||||||
|
'breakoutRooms.hideAddRoomButton': false,
|
||||||
|
'breakoutRooms.hideAutoAssignButton': false,
|
||||||
|
'breakoutRooms.hideJoinRoomButton': false
|
||||||
}
|
}
|
||||||
this.setState({ loading: false });
|
};
|
||||||
}, 1000);
|
logEvent(videoConf ? events.LIVECHAT_VIDEOCONF_JOIN : events.JM_CONFERENCE_JOIN);
|
||||||
}
|
await JitsiMeet.launchJitsiMeetView(conferenceOptions);
|
||||||
|
logEvent(videoConf ? events.LIVECHAT_VIDEOCONF_TERMINATE : events.JM_CONFERENCE_TERMINATE);
|
||||||
componentWillUnmount() {
|
goBack();
|
||||||
logEvent(events.JM_CONFERENCE_TERMINATE);
|
|
||||||
if (this.jitsiTimeout && !this.videoConf) {
|
|
||||||
BackgroundTimer.clearInterval(this.jitsiTimeout);
|
|
||||||
this.jitsiTimeout = null;
|
|
||||||
BackgroundTimer.stopBackgroundTimer();
|
|
||||||
}
|
|
||||||
JitsiMeet.endCall();
|
|
||||||
}
|
|
||||||
|
|
||||||
onConferenceWillJoin = () => {
|
|
||||||
this.setState({ loading: false });
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// Jitsi Update Timeout needs to be called every 10 seconds to make sure
|
return <RCActivityIndicator absolute size='large' />;
|
||||||
// call is not ended and is available to web users.
|
};
|
||||||
onConferenceJoined = () => {
|
|
||||||
logEvent(this.videoConf ? events.LIVECHAT_VIDEOCONF_JOIN : events.JM_CONFERENCE_JOIN);
|
|
||||||
this.setState({ loading: false });
|
|
||||||
if (this.rid && !this.videoConf) {
|
|
||||||
Services.updateJitsiTimeout(this.rid).catch((e: unknown) => console.log(e));
|
|
||||||
if (this.jitsiTimeout) {
|
|
||||||
BackgroundTimer.clearInterval(this.jitsiTimeout);
|
|
||||||
BackgroundTimer.stopBackgroundTimer();
|
|
||||||
this.jitsiTimeout = null;
|
|
||||||
}
|
|
||||||
this.jitsiTimeout = BackgroundTimer.setInterval(() => {
|
|
||||||
Services.updateJitsiTimeout(this.rid).catch((e: unknown) => console.log(e));
|
|
||||||
}, 10000);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
onConferenceTerminated = () => {
|
export default JitsiMeetView;
|
||||||
const { navigation } = this.props;
|
|
||||||
logEvent(this.videoConf ? events.LIVECHAT_VIDEOCONF_TERMINATE : events.JM_CONFERENCE_TERMINATE);
|
|
||||||
// fix to go back when the call ends
|
|
||||||
setTimeout(() => {
|
|
||||||
JitsiMeet.endCall();
|
|
||||||
navigation.pop();
|
|
||||||
}, 200);
|
|
||||||
};
|
|
||||||
|
|
||||||
render() {
|
|
||||||
const { loading } = this.state;
|
|
||||||
|
|
||||||
return (
|
|
||||||
<>
|
|
||||||
<RNJitsiMeetView
|
|
||||||
onConferenceWillJoin={this.onConferenceWillJoin}
|
|
||||||
onConferenceTerminated={this.onConferenceTerminated}
|
|
||||||
onConferenceJoined={this.onConferenceJoined}
|
|
||||||
style={StyleSheet.absoluteFill}
|
|
||||||
options={null}
|
|
||||||
/>
|
|
||||||
{loading ? <RCActivityIndicator absolute size='large' /> : null}
|
|
||||||
</>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const mapStateToProps = (state: IApplicationState) => ({
|
|
||||||
user: getUserSelector(state),
|
|
||||||
baseUrl: state.server.server
|
|
||||||
});
|
|
||||||
|
|
||||||
export default connect(mapStateToProps)(withTheme(JitsiMeetView));
|
|
||||||
|
|
|
@ -15,6 +15,7 @@ import I18n from '../i18n';
|
||||||
import { OutsideParamList } from '../stacks/types';
|
import { OutsideParamList } from '../stacks/types';
|
||||||
import { withTheme } from '../theme';
|
import { withTheme } from '../theme';
|
||||||
import sharedStyles from './Styles';
|
import sharedStyles from './Styles';
|
||||||
|
import UGCRules from '../containers/UserGeneratedContentRules';
|
||||||
|
|
||||||
const styles = StyleSheet.create({
|
const styles = StyleSheet.create({
|
||||||
registerDisabled: {
|
registerDisabled: {
|
||||||
|
@ -31,8 +32,7 @@ const styles = StyleSheet.create({
|
||||||
},
|
},
|
||||||
bottomContainer: {
|
bottomContainer: {
|
||||||
flexDirection: 'column',
|
flexDirection: 'column',
|
||||||
alignItems: 'center',
|
alignItems: 'center'
|
||||||
marginBottom: 32
|
|
||||||
},
|
},
|
||||||
bottomContainerText: {
|
bottomContainerText: {
|
||||||
...sharedStyles.textRegular,
|
...sharedStyles.textRegular,
|
||||||
|
@ -44,6 +44,9 @@ const styles = StyleSheet.create({
|
||||||
},
|
},
|
||||||
loginButton: {
|
loginButton: {
|
||||||
marginTop: 16
|
marginTop: 16
|
||||||
|
},
|
||||||
|
ugcContainer: {
|
||||||
|
marginTop: 32
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -224,6 +227,7 @@ class LoginView extends React.Component<ILoginViewProps, ILoginViewState> {
|
||||||
{Accounts_RegistrationForm_LinkReplacementText}
|
{Accounts_RegistrationForm_LinkReplacementText}
|
||||||
</Text>
|
</Text>
|
||||||
)}
|
)}
|
||||||
|
<UGCRules styleContainer={styles.ugcContainer} />
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
|
@ -17,9 +17,9 @@ import { OutsideParamList } from '../stacks/types';
|
||||||
import { withTheme } from '../theme';
|
import { withTheme } from '../theme';
|
||||||
import { showErrorAlert, isValidEmail } from '../lib/methods/helpers';
|
import { showErrorAlert, isValidEmail } from '../lib/methods/helpers';
|
||||||
import log, { events, logEvent } from '../lib/methods/helpers/log';
|
import log, { events, logEvent } from '../lib/methods/helpers/log';
|
||||||
import openLink from '../lib/methods/helpers/openLink';
|
|
||||||
import sharedStyles from './Styles';
|
import sharedStyles from './Styles';
|
||||||
import { Services } from '../lib/services';
|
import { Services } from '../lib/services';
|
||||||
|
import UGCRules from '../containers/UserGeneratedContentRules';
|
||||||
|
|
||||||
const styles = StyleSheet.create({
|
const styles = StyleSheet.create({
|
||||||
title: {
|
title: {
|
||||||
|
@ -50,7 +50,6 @@ const styles = StyleSheet.create({
|
||||||
});
|
});
|
||||||
|
|
||||||
interface IProps extends IBaseScreen<OutsideParamList, 'RegisterView'> {
|
interface IProps extends IBaseScreen<OutsideParamList, 'RegisterView'> {
|
||||||
server: string;
|
|
||||||
Site_Name: string;
|
Site_Name: string;
|
||||||
Gitlab_URL: string;
|
Gitlab_URL: string;
|
||||||
CAS_enabled: boolean;
|
CAS_enabled: boolean;
|
||||||
|
@ -156,14 +155,6 @@ class RegisterView extends React.Component<IProps, any> {
|
||||||
this.setState({ saving: false });
|
this.setState({ saving: false });
|
||||||
};
|
};
|
||||||
|
|
||||||
openContract = (route: string) => {
|
|
||||||
const { server, theme } = this.props;
|
|
||||||
if (!server) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
openLink(`${server}/${route}`, theme);
|
|
||||||
};
|
|
||||||
|
|
||||||
renderCustomFields = () => {
|
renderCustomFields = () => {
|
||||||
const { customFields } = this.state;
|
const { customFields } = this.state;
|
||||||
const { Accounts_CustomFields } = this.props;
|
const { Accounts_CustomFields } = this.props;
|
||||||
|
@ -315,25 +306,7 @@ class RegisterView extends React.Component<IProps, any> {
|
||||||
style={styles.registerButton}
|
style={styles.registerButton}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<View style={styles.bottomContainer}>
|
<UGCRules />
|
||||||
<Text style={[styles.bottomContainerText, { color: themes[theme].auxiliaryText }]}>
|
|
||||||
{`${I18n.t('Onboarding_agree_terms')}\n`}
|
|
||||||
<Text
|
|
||||||
style={[styles.bottomContainerTextBold, { color: themes[theme].actionTintColor }]}
|
|
||||||
onPress={() => this.openContract('terms-of-service')}
|
|
||||||
>
|
|
||||||
{I18n.t('Terms_of_Service')}
|
|
||||||
</Text>{' '}
|
|
||||||
{I18n.t('and')}
|
|
||||||
<Text
|
|
||||||
style={[styles.bottomContainerTextBold, { color: themes[theme].actionTintColor }]}
|
|
||||||
onPress={() => this.openContract('privacy-policy')}
|
|
||||||
>
|
|
||||||
{' '}
|
|
||||||
{I18n.t('Privacy_Policy')}
|
|
||||||
</Text>
|
|
||||||
</Text>
|
|
||||||
</View>
|
|
||||||
|
|
||||||
{showLoginButton ? (
|
{showLoginButton ? (
|
||||||
<View style={styles.bottomContainer}>
|
<View style={styles.bottomContainer}>
|
||||||
|
@ -352,7 +325,6 @@ class RegisterView extends React.Component<IProps, any> {
|
||||||
}
|
}
|
||||||
|
|
||||||
const mapStateToProps = (state: IApplicationState) => ({
|
const mapStateToProps = (state: IApplicationState) => ({
|
||||||
server: state.server.server,
|
|
||||||
Site_Name: state.settings.Site_Name as string,
|
Site_Name: state.settings.Site_Name as string,
|
||||||
Gitlab_URL: state.settings.API_Gitlab_URL as string,
|
Gitlab_URL: state.settings.API_Gitlab_URL as string,
|
||||||
CAS_enabled: state.settings.CAS_enabled as boolean,
|
CAS_enabled: state.settings.CAS_enabled as boolean,
|
||||||
|
|
|
@ -110,8 +110,8 @@ const RoomMembersView = (): React.ReactElement => {
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const subscription = params?.room?.observe && params.room.observe().subscribe(changes => updateState({ room: changes }));
|
const subscription = params?.room?.observe && params.room.observe().subscribe(changes => updateState({ room: changes }));
|
||||||
setHeader(true);
|
setHeader(false);
|
||||||
fetchMembers(true);
|
fetchMembers(false);
|
||||||
return () => subscription?.unsubscribe();
|
return () => subscription?.unsubscribe();
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
|
|
|
@ -11,28 +11,28 @@ export default {
|
||||||
title: 'RoomView/LoadMore'
|
title: 'RoomView/LoadMore'
|
||||||
};
|
};
|
||||||
|
|
||||||
const load = () => new Promise(res => setTimeout(res, 1000));
|
const LoadMore = ({ ...props }) => (
|
||||||
|
<LoadMoreComponent rid='rid' t='c' loaderId='loaderId' type={MessageTypeLoad.MORE} runOnRender={false} {...props} />
|
||||||
const LoadMore = ({ ...props }) => <LoadMoreComponent type={MessageTypeLoad.MORE} load={load} runOnRender={false} {...props} />;
|
);
|
||||||
|
|
||||||
export const Basic = () => (
|
export const Basic = () => (
|
||||||
<>
|
<>
|
||||||
<LoadMore />
|
<LoadMore loaderId='1' />
|
||||||
<LoadMore runOnRender />
|
<LoadMore loaderId='2' runOnRender />
|
||||||
<LoadMore type={MessageTypeLoad.PREVIOUS_CHUNK} />
|
<LoadMore loaderId='3' type={MessageTypeLoad.PREVIOUS_CHUNK} />
|
||||||
<LoadMore type={MessageTypeLoad.NEXT_CHUNK} />
|
<LoadMore loaderId='4' type={MessageTypeLoad.NEXT_CHUNK} />
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
|
|
||||||
const ThemeStory = ({ theme }: { theme: TSupportedThemes }) => (
|
const ThemeStory = ({ theme }: { theme: TSupportedThemes }) => (
|
||||||
<ThemeContext.Provider value={{ theme, colors: themes[theme] }}>
|
<ThemeContext.Provider value={{ theme, colors: themes[theme] }}>
|
||||||
<ScrollView style={{ backgroundColor: themes[theme].backgroundColor }}>
|
<ScrollView style={{ backgroundColor: themes[theme].backgroundColor }}>
|
||||||
<LoadMore type={MessageTypeLoad.PREVIOUS_CHUNK} />
|
<LoadMore loaderId='5' type={MessageTypeLoad.PREVIOUS_CHUNK} />
|
||||||
<Message msg='Hey!' theme={theme} />
|
<Message msg='Hey!' theme={theme} />
|
||||||
<Message msg={longText} theme={theme} isHeader={false} />
|
<Message msg={longText} theme={theme} isHeader={false} />
|
||||||
<Message msg='Older message' theme={theme} isHeader={false} />
|
<Message msg='Older message' theme={theme} isHeader={false} />
|
||||||
<LoadMore type={MessageTypeLoad.NEXT_CHUNK} />
|
<LoadMore loaderId='6' type={MessageTypeLoad.NEXT_CHUNK} />
|
||||||
<LoadMore type={MessageTypeLoad.MORE} />
|
<LoadMore loaderId='7' type={MessageTypeLoad.MORE} />
|
||||||
<Message msg={longText} theme={theme} />
|
<Message msg={longText} theme={theme} />
|
||||||
<Message msg='This is the third message' isHeader={false} theme={theme} />
|
<Message msg='This is the third message' isHeader={false} theme={theme} />
|
||||||
<Message msg='This is the second message' isHeader={false} theme={theme} />
|
<Message msg='This is the second message' isHeader={false} theme={theme} />
|
||||||
|
|
|
@ -1,12 +1,15 @@
|
||||||
import React, { useCallback, useEffect, useState } from 'react';
|
import React, { useEffect } from 'react';
|
||||||
import { ActivityIndicator, StyleSheet, Text } from 'react-native';
|
import { ActivityIndicator, StyleSheet, Text } from 'react-native';
|
||||||
|
import { useDispatch } from 'react-redux';
|
||||||
|
|
||||||
import { MessageTypeLoad, themes } from '../../../lib/constants';
|
import { MessageTypeLoad } from '../../../lib/constants';
|
||||||
import { MessageType } from '../../../definitions';
|
import { MessageType, RoomType } from '../../../definitions';
|
||||||
import { useTheme } from '../../../theme';
|
import { useTheme } from '../../../theme';
|
||||||
import Touch from '../../../containers/Touch';
|
import Touch from '../../../containers/Touch';
|
||||||
import sharedStyles from '../../Styles';
|
import sharedStyles from '../../Styles';
|
||||||
import I18n from '../../../i18n';
|
import I18n from '../../../i18n';
|
||||||
|
import { roomHistoryRequest } from '../../../actions/room';
|
||||||
|
import { useAppSelector } from '../../../lib/hooks';
|
||||||
|
|
||||||
const styles = StyleSheet.create({
|
const styles = StyleSheet.create({
|
||||||
button: {
|
button: {
|
||||||
|
@ -20,53 +23,50 @@ const styles = StyleSheet.create({
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
const LoadMore = ({
|
const LoadMore = React.memo(
|
||||||
load,
|
({
|
||||||
type,
|
rid,
|
||||||
runOnRender
|
t,
|
||||||
}: {
|
loaderId,
|
||||||
load: Function;
|
type,
|
||||||
type: MessageType;
|
runOnRender
|
||||||
runOnRender: boolean;
|
}: {
|
||||||
}): React.ReactElement => {
|
rid: string;
|
||||||
const { theme } = useTheme();
|
t: RoomType;
|
||||||
const [loading, setLoading] = useState(false);
|
loaderId: string;
|
||||||
|
type: MessageType;
|
||||||
|
runOnRender: boolean;
|
||||||
|
}): React.ReactElement => {
|
||||||
|
const { colors } = useTheme();
|
||||||
|
const dispatch = useDispatch();
|
||||||
|
const loading = useAppSelector(state => state.room.historyLoaders.some(historyLoader => historyLoader === loaderId));
|
||||||
|
|
||||||
const handleLoad = useCallback(async () => {
|
const handleLoad = () => dispatch(roomHistoryRequest({ rid, t, loaderId }));
|
||||||
try {
|
|
||||||
if (loading) {
|
useEffect(() => {
|
||||||
return;
|
if (runOnRender) {
|
||||||
|
handleLoad();
|
||||||
}
|
}
|
||||||
setLoading(true);
|
}, []);
|
||||||
await load();
|
|
||||||
} finally {
|
let text = 'Load_More';
|
||||||
setLoading(false);
|
if (type === MessageTypeLoad.NEXT_CHUNK) {
|
||||||
|
text = 'Load_Newer';
|
||||||
}
|
}
|
||||||
}, [loading]);
|
if (type === MessageTypeLoad.PREVIOUS_CHUNK) {
|
||||||
|
text = 'Load_Older';
|
||||||
useEffect(() => {
|
|
||||||
if (runOnRender) {
|
|
||||||
handleLoad();
|
|
||||||
}
|
}
|
||||||
}, []);
|
|
||||||
|
|
||||||
let text = 'Load_More';
|
return (
|
||||||
if (type === MessageTypeLoad.NEXT_CHUNK) {
|
<Touch onPress={handleLoad} style={styles.button} enabled={!loading}>
|
||||||
text = 'Load_Newer';
|
{loading ? (
|
||||||
|
<ActivityIndicator color={colors.auxiliaryText} />
|
||||||
|
) : (
|
||||||
|
<Text style={[styles.text, { color: colors.titleText }]}>{I18n.t(text)}</Text>
|
||||||
|
)}
|
||||||
|
</Touch>
|
||||||
|
);
|
||||||
}
|
}
|
||||||
if (type === MessageTypeLoad.PREVIOUS_CHUNK) {
|
);
|
||||||
text = 'Load_Older';
|
|
||||||
}
|
|
||||||
|
|
||||||
return (
|
|
||||||
<Touch onPress={handleLoad} style={styles.button} enabled={!loading}>
|
|
||||||
{loading ? (
|
|
||||||
<ActivityIndicator color={themes[theme].auxiliaryText} />
|
|
||||||
) : (
|
|
||||||
<Text style={[styles.text, { color: themes[theme].titleText }]}>{I18n.t(text)}</Text>
|
|
||||||
)}
|
|
||||||
</Touch>
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
export default LoadMore;
|
export default LoadMore;
|
||||||
|
|
|
@ -160,7 +160,7 @@ class UploadProgress extends Component<IUploadProgressProps, IUploadProgressStat
|
||||||
item.error = false;
|
item.error = false;
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
await sendFileMessage(rid, item, undefined, server, user);
|
await sendFileMessage(rid, item, item.tmid, server, user, true);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
log(e);
|
log(e);
|
||||||
}
|
}
|
||||||
|
|
|
@ -75,7 +75,8 @@ import {
|
||||||
TThreadModel,
|
TThreadModel,
|
||||||
ICustomEmojis,
|
ICustomEmojis,
|
||||||
IEmoji,
|
IEmoji,
|
||||||
TGetCustomEmoji
|
TGetCustomEmoji,
|
||||||
|
RoomType
|
||||||
} from '../../definitions';
|
} from '../../definitions';
|
||||||
import { E2E_MESSAGE_TYPE, E2E_STATUS, MESSAGE_TYPE_ANY_LOAD, MessageTypeLoad, themes } from '../../lib/constants';
|
import { E2E_MESSAGE_TYPE, E2E_STATUS, MESSAGE_TYPE_ANY_LOAD, MessageTypeLoad, themes } from '../../lib/constants';
|
||||||
import { TListRef } from './List/List';
|
import { TListRef } from './List/List';
|
||||||
|
@ -388,7 +389,7 @@ class RoomView extends React.Component<IRoomViewProps, IRoomViewState> {
|
||||||
|
|
||||||
if (appState === 'foreground' && appState !== prevProps.appState && this.rid) {
|
if (appState === 'foreground' && appState !== prevProps.appState && this.rid) {
|
||||||
// Fire List.query() just to keep observables working
|
// Fire List.query() just to keep observables working
|
||||||
if (this.list && this.list.current) {
|
if (this.list && this.list.current && !isIOS) {
|
||||||
this.list.current?.query();
|
this.list.current?.query();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -685,7 +686,11 @@ class RoomView extends React.Component<IRoomViewProps, IRoomViewState> {
|
||||||
await loadThreadMessages({ tmid: this.tmid, rid: this.rid });
|
await loadThreadMessages({ tmid: this.tmid, rid: this.rid });
|
||||||
} else {
|
} else {
|
||||||
const newLastOpen = new Date();
|
const newLastOpen = new Date();
|
||||||
await RoomServices.getMessages(room);
|
await RoomServices.getMessages({
|
||||||
|
rid: room.rid,
|
||||||
|
t: room.t as RoomType,
|
||||||
|
...('lastOpen' in room && room.lastOpen ? { lastOpen: room.lastOpen } : {})
|
||||||
|
});
|
||||||
|
|
||||||
// if room is joined
|
// if room is joined
|
||||||
if (joined && 'id' in room) {
|
if (joined && 'id' in room) {
|
||||||
|
@ -1301,16 +1306,6 @@ class RoomView extends React.Component<IRoomViewProps, IRoomViewState> {
|
||||||
return false;
|
return false;
|
||||||
};
|
};
|
||||||
|
|
||||||
onLoadMoreMessages = (loaderItem: TAnyMessageModel) => {
|
|
||||||
const { room } = this.state;
|
|
||||||
return RoomServices.getMoreMessages({
|
|
||||||
rid: room.rid,
|
|
||||||
tmid: this.tmid,
|
|
||||||
t: room.t as any,
|
|
||||||
loaderItem
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
goToCannedResponses = () => {
|
goToCannedResponses = () => {
|
||||||
const { room } = this.state;
|
const { room } = this.state;
|
||||||
Navigation.navigate('CannedResponsesListView', { rid: room.rid });
|
Navigation.navigate('CannedResponsesListView', { rid: room.rid });
|
||||||
|
@ -1337,7 +1332,9 @@ class RoomView extends React.Component<IRoomViewProps, IRoomViewState> {
|
||||||
if (item.t && MESSAGE_TYPE_ANY_LOAD.includes(item.t as MessageTypeLoad)) {
|
if (item.t && MESSAGE_TYPE_ANY_LOAD.includes(item.t as MessageTypeLoad)) {
|
||||||
content = (
|
content = (
|
||||||
<LoadMore
|
<LoadMore
|
||||||
load={() => this.onLoadMoreMessages(item)}
|
rid={room.rid}
|
||||||
|
t={room.t as RoomType}
|
||||||
|
loaderId={item.id}
|
||||||
type={item.t}
|
type={item.t}
|
||||||
runOnRender={item.t === MessageTypeLoad.MORE && !previousItem}
|
runOnRender={item.t === MessageTypeLoad.MORE && !previousItem}
|
||||||
/>
|
/>
|
||||||
|
|
|
@ -1,23 +1,22 @@
|
||||||
import { loadMessagesForRoom, loadMissedMessages } from '../../../lib/methods';
|
import { loadMessagesForRoom, loadMissedMessages, RoomTypes } from '../../../lib/methods';
|
||||||
|
|
||||||
// TODO: clarify latest vs lastOpen
|
interface IBaseParams {
|
||||||
const getMessages = ({
|
|
||||||
rid,
|
|
||||||
t,
|
|
||||||
latest,
|
|
||||||
lastOpen,
|
|
||||||
loaderItem
|
|
||||||
}: {
|
|
||||||
rid: string;
|
rid: string;
|
||||||
t?: string;
|
}
|
||||||
latest?: Date;
|
|
||||||
lastOpen?: Date;
|
interface ILoadMessagesForRoomParams extends IBaseParams {
|
||||||
loaderItem?: any; // TODO: type this
|
t: RoomTypes;
|
||||||
}): Promise<void> => {
|
}
|
||||||
if (lastOpen) {
|
|
||||||
return loadMissedMessages({ rid, lastOpen });
|
interface ILoadMissedMessagesParams extends IBaseParams {
|
||||||
|
lastOpen: Date;
|
||||||
|
}
|
||||||
|
|
||||||
|
const getMessages = (params: ILoadMissedMessagesParams | ILoadMessagesForRoomParams): Promise<void> => {
|
||||||
|
if ('lastOpen' in params) {
|
||||||
|
return loadMissedMessages(params);
|
||||||
}
|
}
|
||||||
return loadMessagesForRoom({ rid, t: t as any, latest, loaderItem });
|
return loadMessagesForRoom(params);
|
||||||
};
|
};
|
||||||
|
|
||||||
export default getMessages;
|
export default getMessages;
|
||||||
|
|
|
@ -1,9 +1,7 @@
|
||||||
import getMessages from './getMessages';
|
import getMessages from './getMessages';
|
||||||
import getMoreMessages from './getMoreMessages';
|
|
||||||
import getMessageInfo from './getMessageInfo';
|
import getMessageInfo from './getMessageInfo';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
getMessages,
|
getMessages,
|
||||||
getMoreMessages,
|
|
||||||
getMessageInfo
|
getMessageInfo
|
||||||
};
|
};
|
||||||
|
|
|
@ -593,8 +593,11 @@ class RoomsListView extends React.Component<IRoomsListViewProps, IRoomsListViewS
|
||||||
|
|
||||||
initSearching = () => {
|
initSearching = () => {
|
||||||
logEvent(events.RL_SEARCH);
|
logEvent(events.RL_SEARCH);
|
||||||
const { dispatch } = this.props;
|
const { dispatch, showServerDropdown } = this.props;
|
||||||
this.internalSetState({ searching: true }, () => {
|
this.internalSetState({ searching: true }, () => {
|
||||||
|
if (showServerDropdown) {
|
||||||
|
dispatch(closeServerDropdown());
|
||||||
|
}
|
||||||
dispatch(openSearchHeader());
|
dispatch(openSearchHeader());
|
||||||
this.handleSearch('');
|
this.handleSearch('');
|
||||||
this.setHeader();
|
this.setHeader();
|
||||||
|
|
|
@ -22,7 +22,15 @@ import Thumbs from './Thumbs';
|
||||||
import Preview from './Preview';
|
import Preview from './Preview';
|
||||||
import Header from './Header';
|
import Header from './Header';
|
||||||
import styles from './styles';
|
import styles from './styles';
|
||||||
import { IApplicationState, IServer, IShareAttachment, IUser, TSubscriptionModel, TThreadModel } from '../../definitions';
|
import {
|
||||||
|
IApplicationState,
|
||||||
|
IMessage,
|
||||||
|
IServer,
|
||||||
|
IShareAttachment,
|
||||||
|
IUser,
|
||||||
|
TSubscriptionModel,
|
||||||
|
TThreadModel
|
||||||
|
} from '../../definitions';
|
||||||
import { sendFileMessage, sendMessage } from '../../lib/methods';
|
import { sendFileMessage, sendMessage } from '../../lib/methods';
|
||||||
import { hasPermission, isAndroid, canUploadFile, isReadOnly, isBlocked } from '../../lib/methods/helpers';
|
import { hasPermission, isAndroid, canUploadFile, isReadOnly, isBlocked } from '../../lib/methods/helpers';
|
||||||
|
|
||||||
|
@ -50,11 +58,14 @@ interface IShareViewProps {
|
||||||
server: string;
|
server: string;
|
||||||
FileUpload_MediaTypeWhiteList?: string;
|
FileUpload_MediaTypeWhiteList?: string;
|
||||||
FileUpload_MaxFileSize?: number;
|
FileUpload_MaxFileSize?: number;
|
||||||
|
replying?: boolean;
|
||||||
|
replyingMessage?: IMessage;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface IMessageBoxShareView {
|
interface IMessageBoxShareView {
|
||||||
text: string;
|
text: string;
|
||||||
forceUpdate(): void;
|
forceUpdate(): void;
|
||||||
|
formatReplyMessage: (replyingMessage: IMessage, message?: any) => Promise<string>;
|
||||||
}
|
}
|
||||||
|
|
||||||
class ShareView extends Component<IShareViewProps, IShareViewState> {
|
class ShareView extends Component<IShareViewProps, IShareViewState> {
|
||||||
|
@ -62,6 +73,9 @@ class ShareView extends Component<IShareViewProps, IShareViewState> {
|
||||||
private files: any[];
|
private files: any[];
|
||||||
private isShareExtension: boolean;
|
private isShareExtension: boolean;
|
||||||
private serverInfo: IServer;
|
private serverInfo: IServer;
|
||||||
|
private replying?: boolean;
|
||||||
|
private replyingMessage?: IMessage;
|
||||||
|
private closeReply?: Function;
|
||||||
|
|
||||||
constructor(props: IShareViewProps) {
|
constructor(props: IShareViewProps) {
|
||||||
super(props);
|
super(props);
|
||||||
|
@ -69,6 +83,9 @@ class ShareView extends Component<IShareViewProps, IShareViewState> {
|
||||||
this.files = props.route.params?.attachments ?? [];
|
this.files = props.route.params?.attachments ?? [];
|
||||||
this.isShareExtension = props.route.params?.isShareExtension;
|
this.isShareExtension = props.route.params?.isShareExtension;
|
||||||
this.serverInfo = props.route.params?.serverInfo ?? {};
|
this.serverInfo = props.route.params?.serverInfo ?? {};
|
||||||
|
this.replying = props.route.params?.replying;
|
||||||
|
this.replyingMessage = props.route.params?.replyingMessage;
|
||||||
|
this.closeReply = props.route.params?.closeReply;
|
||||||
|
|
||||||
this.state = {
|
this.state = {
|
||||||
selected: {} as IShareAttachment,
|
selected: {} as IShareAttachment,
|
||||||
|
@ -92,6 +109,12 @@ class ShareView extends Component<IShareViewProps, IShareViewState> {
|
||||||
|
|
||||||
componentWillUnmount = () => {
|
componentWillUnmount = () => {
|
||||||
console.countReset(`${this.constructor.name}.render calls`);
|
console.countReset(`${this.constructor.name}.render calls`);
|
||||||
|
// close reply from the RoomView
|
||||||
|
setTimeout(() => {
|
||||||
|
if (this.closeReply) {
|
||||||
|
this.closeReply();
|
||||||
|
}
|
||||||
|
}, 300);
|
||||||
};
|
};
|
||||||
|
|
||||||
setHeader = () => {
|
setHeader = () => {
|
||||||
|
@ -214,6 +237,11 @@ class ShareView extends Component<IShareViewProps, IShareViewState> {
|
||||||
navigation.pop();
|
navigation.pop();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let msg: string | undefined;
|
||||||
|
if (this.replying && this.replyingMessage) {
|
||||||
|
msg = await this.messagebox.current?.formatReplyMessage(this.replyingMessage);
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// Send attachment
|
// Send attachment
|
||||||
if (attachments.length) {
|
if (attachments.length) {
|
||||||
|
@ -228,7 +256,8 @@ class ShareView extends Component<IShareViewProps, IShareViewState> {
|
||||||
size,
|
size,
|
||||||
type,
|
type,
|
||||||
path,
|
path,
|
||||||
store: 'Uploads'
|
store: 'Uploads',
|
||||||
|
msg
|
||||||
},
|
},
|
||||||
thread?.id,
|
thread?.id,
|
||||||
server,
|
server,
|
||||||
|
@ -313,11 +342,12 @@ class ShareView extends Component<IShareViewProps, IShareViewState> {
|
||||||
roomType={room.t}
|
roomType={room.t}
|
||||||
theme={theme}
|
theme={theme}
|
||||||
onSubmit={this.send}
|
onSubmit={this.send}
|
||||||
message={{ msg: selected?.description ?? '' }}
|
message={this.replyingMessage}
|
||||||
navigation={navigation}
|
navigation={navigation}
|
||||||
isFocused={navigation.isFocused}
|
isFocused={navigation.isFocused}
|
||||||
iOSScrollBehavior={NativeModules.KeyboardTrackingViewManager?.KeyboardTrackingScrollBehaviorNone}
|
iOSScrollBehavior={NativeModules.KeyboardTrackingViewManager?.KeyboardTrackingScrollBehaviorNone}
|
||||||
isActionsEnabled={false}
|
isActionsEnabled={false}
|
||||||
|
replying={this.replying}
|
||||||
>
|
>
|
||||||
<Thumbs
|
<Thumbs
|
||||||
attachments={attachments}
|
attachments={attachments}
|
||||||
|
|
|
@ -17,7 +17,7 @@ import log from '../../lib/methods/helpers/log';
|
||||||
|
|
||||||
const UserNotificationPreferencesView = () => {
|
const UserNotificationPreferencesView = () => {
|
||||||
const [preferences, setPreferences] = useState({} as INotificationPreferences);
|
const [preferences, setPreferences] = useState({} as INotificationPreferences);
|
||||||
const [loading, setLoading] = useState(false);
|
const [loading, setLoading] = useState(true);
|
||||||
|
|
||||||
const navigation = useNavigation<StackNavigationProp<ProfileStackParamList, 'UserNotificationPrefView'>>();
|
const navigation = useNavigation<StackNavigationProp<ProfileStackParamList, 'UserNotificationPrefView'>>();
|
||||||
const userId = useAppSelector(state => getUserSelector(state).id);
|
const userId = useAppSelector(state => getUserSelector(state).id);
|
||||||
|
@ -33,10 +33,11 @@ const UserNotificationPreferencesView = () => {
|
||||||
try {
|
try {
|
||||||
const result = await Services.getUserPreferences(userId);
|
const result = await Services.getUserPreferences(userId);
|
||||||
if (result.success) {
|
if (result.success) {
|
||||||
setLoading(true);
|
setLoading(false);
|
||||||
setPreferences(result.preferences);
|
setPreferences(result.preferences);
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
setLoading(false);
|
||||||
log(error);
|
log(error);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -63,6 +64,8 @@ const UserNotificationPreferencesView = () => {
|
||||||
<StatusBar />
|
<StatusBar />
|
||||||
<List.Container>
|
<List.Container>
|
||||||
{loading ? (
|
{loading ? (
|
||||||
|
<ActivityIndicator />
|
||||||
|
) : (
|
||||||
<>
|
<>
|
||||||
<List.Section title='Desktop_Notifications'>
|
<List.Section title='Desktop_Notifications'>
|
||||||
<List.Separator />
|
<List.Separator />
|
||||||
|
@ -103,8 +106,6 @@ const UserNotificationPreferencesView = () => {
|
||||||
<List.Info info='You_need_to_verifiy_your_email_address_to_get_notications' />
|
<List.Info info='You_need_to_verifiy_your_email_address_to_get_notications' />
|
||||||
</List.Section>
|
</List.Section>
|
||||||
</>
|
</>
|
||||||
) : (
|
|
||||||
<ActivityIndicator />
|
|
||||||
)}
|
)}
|
||||||
</List.Container>
|
</List.Container>
|
||||||
</SafeAreaView>
|
</SafeAreaView>
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
|
|
||||||
Either
|
Either
|
||||||
|
|
||||||
* Install Rocket.Chat meteor app by following this [guide](https://docs.rocket.chat/guides/developer/quick-start).
|
* Install Rocket.Chat meteor app by following this [guide](https://developer.rocket.chat/rocket.chat/rocket-chat-environment-setup).
|
||||||
|
|
||||||
Or
|
Or
|
||||||
|
|
||||||
|
|
|
@ -32,8 +32,9 @@ describe('InApp Notification', () => {
|
||||||
.withTimeout(2000);
|
.withTimeout(2000);
|
||||||
await sleep(500);
|
await sleep(500);
|
||||||
await element(by.id(`in-app-notification-${text}`)).tap();
|
await element(by.id(`in-app-notification-${text}`)).tap();
|
||||||
await sleep(500);
|
await waitFor(element(by.id('room-view')))
|
||||||
await expect(element(by.id('room-header'))).toExist();
|
.toBeVisible()
|
||||||
|
.withTimeout(5000);
|
||||||
await expect(element(by.id(`room-view-title-${data.users.alternate.username}`))).toExist();
|
await expect(element(by.id(`room-view-title-${data.users.alternate.username}`))).toExist();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -9,28 +9,28 @@ GEM
|
||||||
minitest (>= 5.1)
|
minitest (>= 5.1)
|
||||||
tzinfo (~> 2.0)
|
tzinfo (~> 2.0)
|
||||||
zeitwerk (~> 2.3)
|
zeitwerk (~> 2.3)
|
||||||
addressable (2.8.0)
|
addressable (2.8.1)
|
||||||
public_suffix (>= 2.0.2, < 5.0)
|
public_suffix (>= 2.0.2, < 6.0)
|
||||||
algoliasearch (1.27.5)
|
algoliasearch (1.27.5)
|
||||||
httpclient (~> 2.8, >= 2.8.3)
|
httpclient (~> 2.8, >= 2.8.3)
|
||||||
json (>= 1.5.1)
|
json (>= 1.5.1)
|
||||||
artifactory (3.0.15)
|
artifactory (3.0.15)
|
||||||
atomos (0.1.3)
|
atomos (0.1.3)
|
||||||
aws-eventstream (1.2.0)
|
aws-eventstream (1.2.0)
|
||||||
aws-partitions (1.600.0)
|
aws-partitions (1.696.0)
|
||||||
aws-sdk-core (3.131.2)
|
aws-sdk-core (3.169.0)
|
||||||
aws-eventstream (~> 1, >= 1.0.2)
|
aws-eventstream (~> 1, >= 1.0.2)
|
||||||
aws-partitions (~> 1, >= 1.525.0)
|
aws-partitions (~> 1, >= 1.651.0)
|
||||||
aws-sigv4 (~> 1.1)
|
aws-sigv4 (~> 1.5)
|
||||||
jmespath (~> 1, >= 1.6.1)
|
jmespath (~> 1, >= 1.6.1)
|
||||||
aws-sdk-kms (1.57.0)
|
aws-sdk-kms (1.62.0)
|
||||||
aws-sdk-core (~> 3, >= 3.127.0)
|
aws-sdk-core (~> 3, >= 3.165.0)
|
||||||
aws-sigv4 (~> 1.1)
|
aws-sigv4 (~> 1.1)
|
||||||
aws-sdk-s3 (1.114.0)
|
aws-sdk-s3 (1.118.0)
|
||||||
aws-sdk-core (~> 3, >= 3.127.0)
|
aws-sdk-core (~> 3, >= 3.165.0)
|
||||||
aws-sdk-kms (~> 1)
|
aws-sdk-kms (~> 1)
|
||||||
aws-sigv4 (~> 1.4)
|
aws-sigv4 (~> 1.4)
|
||||||
aws-sigv4 (1.5.0)
|
aws-sigv4 (1.5.2)
|
||||||
aws-eventstream (~> 1, >= 1.0.2)
|
aws-eventstream (~> 1, >= 1.0.2)
|
||||||
babosa (1.0.4)
|
babosa (1.0.4)
|
||||||
claide (1.1.0)
|
claide (1.1.0)
|
||||||
|
@ -81,13 +81,13 @@ GEM
|
||||||
rake (>= 12.0.0, < 14.0.0)
|
rake (>= 12.0.0, < 14.0.0)
|
||||||
domain_name (0.5.20190701)
|
domain_name (0.5.20190701)
|
||||||
unf (>= 0.0.5, < 1.0.0)
|
unf (>= 0.0.5, < 1.0.0)
|
||||||
dotenv (2.7.6)
|
dotenv (2.8.1)
|
||||||
emoji_regex (3.2.3)
|
emoji_regex (3.2.3)
|
||||||
escape (0.0.4)
|
escape (0.0.4)
|
||||||
ethon (0.15.0)
|
ethon (0.15.0)
|
||||||
ffi (>= 1.15.0)
|
ffi (>= 1.15.0)
|
||||||
excon (0.92.3)
|
excon (0.97.1)
|
||||||
faraday (1.10.0)
|
faraday (1.10.3)
|
||||||
faraday-em_http (~> 1.0)
|
faraday-em_http (~> 1.0)
|
||||||
faraday-em_synchrony (~> 1.0)
|
faraday-em_synchrony (~> 1.0)
|
||||||
faraday-excon (~> 1.1)
|
faraday-excon (~> 1.1)
|
||||||
|
@ -116,7 +116,7 @@ GEM
|
||||||
faraday_middleware (1.2.0)
|
faraday_middleware (1.2.0)
|
||||||
faraday (~> 1.0)
|
faraday (~> 1.0)
|
||||||
fastimage (2.2.6)
|
fastimage (2.2.6)
|
||||||
fastlane (2.206.2)
|
fastlane (2.211.0)
|
||||||
CFPropertyList (>= 2.3, < 4.0.0)
|
CFPropertyList (>= 2.3, < 4.0.0)
|
||||||
addressable (>= 2.8, < 3.0.0)
|
addressable (>= 2.8, < 3.0.0)
|
||||||
artifactory (~> 3.0)
|
artifactory (~> 3.0)
|
||||||
|
@ -164,9 +164,9 @@ GEM
|
||||||
gh_inspector (1.1.3)
|
gh_inspector (1.1.3)
|
||||||
git (1.11.0)
|
git (1.11.0)
|
||||||
rchardet (~> 1.8)
|
rchardet (~> 1.8)
|
||||||
google-apis-androidpublisher_v3 (0.22.0)
|
google-apis-androidpublisher_v3 (0.32.0)
|
||||||
google-apis-core (>= 0.5, < 2.a)
|
google-apis-core (>= 0.9.1, < 2.a)
|
||||||
google-apis-core (0.6.0)
|
google-apis-core (0.9.5)
|
||||||
addressable (~> 2.5, >= 2.5.1)
|
addressable (~> 2.5, >= 2.5.1)
|
||||||
googleauth (>= 0.16.2, < 2.a)
|
googleauth (>= 0.16.2, < 2.a)
|
||||||
httpclient (>= 2.8.1, < 3.a)
|
httpclient (>= 2.8.1, < 3.a)
|
||||||
|
@ -175,27 +175,27 @@ GEM
|
||||||
retriable (>= 2.0, < 4.a)
|
retriable (>= 2.0, < 4.a)
|
||||||
rexml
|
rexml
|
||||||
webrick
|
webrick
|
||||||
google-apis-iamcredentials_v1 (0.12.0)
|
google-apis-iamcredentials_v1 (0.16.0)
|
||||||
google-apis-core (>= 0.6, < 2.a)
|
google-apis-core (>= 0.9.1, < 2.a)
|
||||||
google-apis-playcustomapp_v1 (0.9.0)
|
google-apis-playcustomapp_v1 (0.12.0)
|
||||||
google-apis-core (>= 0.6, < 2.a)
|
google-apis-core (>= 0.9.1, < 2.a)
|
||||||
google-apis-storage_v1 (0.15.0)
|
google-apis-storage_v1 (0.19.0)
|
||||||
google-apis-core (>= 0.5, < 2.a)
|
google-apis-core (>= 0.9.0, < 2.a)
|
||||||
google-cloud-core (1.6.0)
|
google-cloud-core (1.6.0)
|
||||||
google-cloud-env (~> 1.0)
|
google-cloud-env (~> 1.0)
|
||||||
google-cloud-errors (~> 1.0)
|
google-cloud-errors (~> 1.0)
|
||||||
google-cloud-env (1.6.0)
|
google-cloud-env (1.6.0)
|
||||||
faraday (>= 0.17.3, < 3.0)
|
faraday (>= 0.17.3, < 3.0)
|
||||||
google-cloud-errors (1.2.0)
|
google-cloud-errors (1.3.0)
|
||||||
google-cloud-storage (1.36.2)
|
google-cloud-storage (1.44.0)
|
||||||
addressable (~> 2.8)
|
addressable (~> 2.8)
|
||||||
digest-crc (~> 0.4)
|
digest-crc (~> 0.4)
|
||||||
google-apis-iamcredentials_v1 (~> 0.1)
|
google-apis-iamcredentials_v1 (~> 0.1)
|
||||||
google-apis-storage_v1 (~> 0.1)
|
google-apis-storage_v1 (~> 0.19.0)
|
||||||
google-cloud-core (~> 1.6)
|
google-cloud-core (~> 1.6)
|
||||||
googleauth (>= 0.16.2, < 2.a)
|
googleauth (>= 0.16.2, < 2.a)
|
||||||
mini_mime (~> 1.0)
|
mini_mime (~> 1.0)
|
||||||
googleauth (1.2.0)
|
googleauth (1.3.0)
|
||||||
faraday (>= 0.17.3, < 3.a)
|
faraday (>= 0.17.3, < 3.a)
|
||||||
jwt (>= 1.4, < 3.0)
|
jwt (>= 1.4, < 3.0)
|
||||||
memoist (~> 0.16)
|
memoist (~> 0.16)
|
||||||
|
@ -208,11 +208,11 @@ GEM
|
||||||
httpclient (2.8.3)
|
httpclient (2.8.3)
|
||||||
i18n (1.10.0)
|
i18n (1.10.0)
|
||||||
concurrent-ruby (~> 1.0)
|
concurrent-ruby (~> 1.0)
|
||||||
jmespath (1.6.1)
|
jmespath (1.6.2)
|
||||||
json (2.6.2)
|
json (2.6.3)
|
||||||
jwt (2.4.1)
|
jwt (2.6.0)
|
||||||
memoist (0.16.2)
|
memoist (0.16.2)
|
||||||
mini_magick (4.11.0)
|
mini_magick (4.12.0)
|
||||||
mini_mime (1.1.2)
|
mini_mime (1.1.2)
|
||||||
minitest (5.16.1)
|
minitest (5.16.1)
|
||||||
molinillo (0.8.0)
|
molinillo (0.8.0)
|
||||||
|
|
|
@ -35,8 +35,6 @@ def all_pods
|
||||||
end
|
end
|
||||||
|
|
||||||
abstract_target 'defaults' do
|
abstract_target 'defaults' do
|
||||||
# force use our own JitsiMeetSDK
|
|
||||||
pod 'JitsiMeetSDK', :git => 'https://github.com/RocketChat/jitsi-meet-ios-sdk-releases.git'
|
|
||||||
|
|
||||||
all_pods
|
all_pods
|
||||||
|
|
||||||
|
@ -52,6 +50,9 @@ post_install do |installer|
|
||||||
installer.pods_project.targets.each do |target|
|
installer.pods_project.targets.each do |target|
|
||||||
target.build_configurations.each do |config|
|
target.build_configurations.each do |config|
|
||||||
config.build_settings['APPLICATION_EXTENSION_API_ONLY'] = 'NO'
|
config.build_settings['APPLICATION_EXTENSION_API_ONLY'] = 'NO'
|
||||||
|
config.build_settings['EXPANDED_CODE_SIGN_IDENTITY'] = ""
|
||||||
|
config.build_settings['CODE_SIGNING_REQUIRED'] = "NO"
|
||||||
|
config.build_settings['CODE_SIGNING_ALLOWED'] = "NO"
|
||||||
case target.name
|
case target.name
|
||||||
when 'RCT-Folly'
|
when 'RCT-Folly'
|
||||||
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '9.0'
|
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '9.0'
|
||||||
|
|
|
@ -82,54 +82,56 @@ PODS:
|
||||||
- GoogleUtilities/Network (~> 7.7)
|
- GoogleUtilities/Network (~> 7.7)
|
||||||
- "GoogleUtilities/NSData+zlib (~> 7.7)"
|
- "GoogleUtilities/NSData+zlib (~> 7.7)"
|
||||||
- nanopb (~> 2.30908.0)
|
- nanopb (~> 2.30908.0)
|
||||||
- GoogleDataTransport (9.1.4):
|
- GoogleDataTransport (9.2.0):
|
||||||
- GoogleUtilities/Environment (~> 7.7)
|
- GoogleUtilities/Environment (~> 7.7)
|
||||||
- nanopb (< 2.30910.0, >= 2.30908.0)
|
- nanopb (< 2.30910.0, >= 2.30908.0)
|
||||||
- PromisesObjC (< 3.0, >= 1.2)
|
- PromisesObjC (< 3.0, >= 1.2)
|
||||||
- GoogleUtilities/AppDelegateSwizzler (7.7.0):
|
- GoogleUtilities/AppDelegateSwizzler (7.11.0):
|
||||||
- GoogleUtilities/Environment
|
- GoogleUtilities/Environment
|
||||||
- GoogleUtilities/Logger
|
- GoogleUtilities/Logger
|
||||||
- GoogleUtilities/Network
|
- GoogleUtilities/Network
|
||||||
- GoogleUtilities/Environment (7.7.0):
|
- GoogleUtilities/Environment (7.11.0):
|
||||||
- PromisesObjC (< 3.0, >= 1.2)
|
- PromisesObjC (< 3.0, >= 1.2)
|
||||||
- GoogleUtilities/Logger (7.7.0):
|
- GoogleUtilities/Logger (7.11.0):
|
||||||
- GoogleUtilities/Environment
|
- GoogleUtilities/Environment
|
||||||
- GoogleUtilities/MethodSwizzler (7.7.0):
|
- GoogleUtilities/MethodSwizzler (7.11.0):
|
||||||
- GoogleUtilities/Logger
|
- GoogleUtilities/Logger
|
||||||
- GoogleUtilities/Network (7.7.0):
|
- GoogleUtilities/Network (7.11.0):
|
||||||
- GoogleUtilities/Logger
|
- GoogleUtilities/Logger
|
||||||
- "GoogleUtilities/NSData+zlib"
|
- "GoogleUtilities/NSData+zlib"
|
||||||
- GoogleUtilities/Reachability
|
- GoogleUtilities/Reachability
|
||||||
- "GoogleUtilities/NSData+zlib (7.7.0)"
|
- "GoogleUtilities/NSData+zlib (7.11.0)"
|
||||||
- GoogleUtilities/Reachability (7.7.0):
|
- GoogleUtilities/Reachability (7.11.0):
|
||||||
- GoogleUtilities/Logger
|
- GoogleUtilities/Logger
|
||||||
- GoogleUtilities/UserDefaults (7.7.0):
|
- GoogleUtilities/UserDefaults (7.11.0):
|
||||||
- GoogleUtilities/Logger
|
- GoogleUtilities/Logger
|
||||||
- hermes-engine (0.11.0)
|
- hermes-engine (0.11.0)
|
||||||
- iosMath (0.9.4)
|
- iosMath (0.9.4)
|
||||||
- JitsiMeetSDK (3.6.0)
|
- JitsiMeetSDKLite (7.0.1-lite):
|
||||||
|
- JitsiWebRTC (~> 106.0)
|
||||||
|
- JitsiWebRTC (106.0.0)
|
||||||
- KeyCommands (2.0.3):
|
- KeyCommands (2.0.3):
|
||||||
- React
|
- React
|
||||||
- libevent (2.1.12)
|
- libevent (2.1.12)
|
||||||
- libwebp (1.2.1):
|
- libwebp (1.2.4):
|
||||||
- libwebp/demux (= 1.2.1)
|
- libwebp/demux (= 1.2.4)
|
||||||
- libwebp/mux (= 1.2.1)
|
- libwebp/mux (= 1.2.4)
|
||||||
- libwebp/webp (= 1.2.1)
|
- libwebp/webp (= 1.2.4)
|
||||||
- libwebp/demux (1.2.1):
|
- libwebp/demux (1.2.4):
|
||||||
- libwebp/webp
|
- libwebp/webp
|
||||||
- libwebp/mux (1.2.1):
|
- libwebp/mux (1.2.4):
|
||||||
- libwebp/demux
|
- libwebp/demux
|
||||||
- libwebp/webp (1.2.1)
|
- libwebp/webp (1.2.4)
|
||||||
- MMKV (1.2.13):
|
- MMKV (1.2.13):
|
||||||
- MMKVCore (~> 1.2.13)
|
- MMKVCore (~> 1.2.13)
|
||||||
- MMKVCore (1.2.14)
|
- MMKVCore (1.2.15)
|
||||||
- nanopb (2.30908.0):
|
- nanopb (2.30908.0):
|
||||||
- nanopb/decode (= 2.30908.0)
|
- nanopb/decode (= 2.30908.0)
|
||||||
- nanopb/encode (= 2.30908.0)
|
- nanopb/encode (= 2.30908.0)
|
||||||
- nanopb/decode (2.30908.0)
|
- nanopb/decode (2.30908.0)
|
||||||
- nanopb/encode (2.30908.0)
|
- nanopb/encode (2.30908.0)
|
||||||
- OpenSSL-Universal (1.1.1100)
|
- OpenSSL-Universal (1.1.1100)
|
||||||
- PromisesObjC (2.1.0)
|
- PromisesObjC (2.1.1)
|
||||||
- RCT-Folly (2021.06.28.00-v2):
|
- RCT-Folly (2021.06.28.00-v2):
|
||||||
- boost
|
- boost
|
||||||
- DoubleConversion
|
- DoubleConversion
|
||||||
|
@ -364,9 +366,9 @@ PODS:
|
||||||
- React-Core
|
- React-Core
|
||||||
- react-native-document-picker (8.1.2):
|
- react-native-document-picker (8.1.2):
|
||||||
- React-Core
|
- React-Core
|
||||||
- react-native-jitsi-meet (3.6.0):
|
- react-native-jitsimeet-custom (2.5.0):
|
||||||
- JitsiMeetSDK (= 3.6.0)
|
- JitsiMeetSDKLite (= 7.0.1-lite)
|
||||||
- React
|
- React-Core
|
||||||
- react-native-mmkv-storage (0.8.0):
|
- react-native-mmkv-storage (0.8.0):
|
||||||
- MMKV (= 1.2.13)
|
- MMKV (= 1.2.13)
|
||||||
- React-Core
|
- React-Core
|
||||||
|
@ -503,7 +505,7 @@ PODS:
|
||||||
- React-Core
|
- React-Core
|
||||||
- RNDateTimePicker (3.5.2):
|
- RNDateTimePicker (3.5.2):
|
||||||
- React-Core
|
- React-Core
|
||||||
- RNDeviceInfo (8.4.8):
|
- RNDeviceInfo (10.3.0):
|
||||||
- React-Core
|
- React-Core
|
||||||
- RNFastImage (8.5.12):
|
- RNFastImage (8.5.12):
|
||||||
- React-Core
|
- React-Core
|
||||||
|
@ -573,10 +575,10 @@ PODS:
|
||||||
- React-Core
|
- React-Core
|
||||||
- RNVectorIcons (9.1.0):
|
- RNVectorIcons (9.1.0):
|
||||||
- React-Core
|
- React-Core
|
||||||
- SDWebImage (5.12.5):
|
- SDWebImage (5.12.6):
|
||||||
- SDWebImage/Core (= 5.12.5)
|
- SDWebImage/Core (= 5.12.6)
|
||||||
- SDWebImage/Core (5.12.5)
|
- SDWebImage/Core (5.12.6)
|
||||||
- SDWebImageWebPCoder (0.8.4):
|
- SDWebImageWebPCoder (0.8.5):
|
||||||
- libwebp (~> 1.0)
|
- libwebp (~> 1.0)
|
||||||
- SDWebImage/Core (~> 5.10)
|
- SDWebImage/Core (~> 5.10)
|
||||||
- simdjson (0.9.6-fix2)
|
- simdjson (0.9.6-fix2)
|
||||||
|
@ -605,7 +607,6 @@ DEPENDENCIES:
|
||||||
- FBReactNativeSpec (from `../node_modules/react-native/React/FBReactNativeSpec`)
|
- FBReactNativeSpec (from `../node_modules/react-native/React/FBReactNativeSpec`)
|
||||||
- glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`)
|
- glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`)
|
||||||
- hermes-engine (~> 0.11.0)
|
- hermes-engine (~> 0.11.0)
|
||||||
- JitsiMeetSDK (from `https://github.com/RocketChat/jitsi-meet-ios-sdk-releases.git`)
|
|
||||||
- KeyCommands (from `../node_modules/react-native-keycommands`)
|
- KeyCommands (from `../node_modules/react-native-keycommands`)
|
||||||
- libevent (~> 2.1.12)
|
- libevent (~> 2.1.12)
|
||||||
- RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`)
|
- RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`)
|
||||||
|
@ -629,7 +630,7 @@ DEPENDENCIES:
|
||||||
- "react-native-cameraroll (from `../node_modules/@react-native-community/cameraroll`)"
|
- "react-native-cameraroll (from `../node_modules/@react-native-community/cameraroll`)"
|
||||||
- "react-native-cookies (from `../node_modules/@react-native-cookies/cookies`)"
|
- "react-native-cookies (from `../node_modules/@react-native-cookies/cookies`)"
|
||||||
- react-native-document-picker (from `../node_modules/react-native-document-picker`)
|
- react-native-document-picker (from `../node_modules/react-native-document-picker`)
|
||||||
- react-native-jitsi-meet (from `../node_modules/react-native-jitsi-meet`)
|
- "react-native-jitsimeet-custom (from `../node_modules/@socialcode-rob1/react-native-jitsimeet-custom`)"
|
||||||
- react-native-mmkv-storage (from `../node_modules/react-native-mmkv-storage`)
|
- react-native-mmkv-storage (from `../node_modules/react-native-mmkv-storage`)
|
||||||
- "react-native-netinfo (from `../node_modules/@react-native-community/netinfo`)"
|
- "react-native-netinfo (from `../node_modules/@react-native-community/netinfo`)"
|
||||||
- react-native-notifications (from `../node_modules/react-native-notifications`)
|
- react-native-notifications (from `../node_modules/react-native-notifications`)
|
||||||
|
@ -695,6 +696,8 @@ SPEC REPOS:
|
||||||
- GoogleUtilities
|
- GoogleUtilities
|
||||||
- hermes-engine
|
- hermes-engine
|
||||||
- iosMath
|
- iosMath
|
||||||
|
- JitsiMeetSDKLite
|
||||||
|
- JitsiWebRTC
|
||||||
- libevent
|
- libevent
|
||||||
- libwebp
|
- libwebp
|
||||||
- MMKV
|
- MMKV
|
||||||
|
@ -741,8 +744,6 @@ EXTERNAL SOURCES:
|
||||||
:path: "../node_modules/react-native/React/FBReactNativeSpec"
|
:path: "../node_modules/react-native/React/FBReactNativeSpec"
|
||||||
glog:
|
glog:
|
||||||
:podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec"
|
:podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec"
|
||||||
JitsiMeetSDK:
|
|
||||||
:git: https://github.com/RocketChat/jitsi-meet-ios-sdk-releases.git
|
|
||||||
KeyCommands:
|
KeyCommands:
|
||||||
:path: "../node_modules/react-native-keycommands"
|
:path: "../node_modules/react-native-keycommands"
|
||||||
RCT-Folly:
|
RCT-Folly:
|
||||||
|
@ -783,8 +784,8 @@ EXTERNAL SOURCES:
|
||||||
:path: "../node_modules/@react-native-cookies/cookies"
|
:path: "../node_modules/@react-native-cookies/cookies"
|
||||||
react-native-document-picker:
|
react-native-document-picker:
|
||||||
:path: "../node_modules/react-native-document-picker"
|
:path: "../node_modules/react-native-document-picker"
|
||||||
react-native-jitsi-meet:
|
react-native-jitsimeet-custom:
|
||||||
:path: "../node_modules/react-native-jitsi-meet"
|
:path: "../node_modules/@socialcode-rob1/react-native-jitsimeet-custom"
|
||||||
react-native-mmkv-storage:
|
react-native-mmkv-storage:
|
||||||
:path: "../node_modules/react-native-mmkv-storage"
|
:path: "../node_modules/react-native-mmkv-storage"
|
||||||
react-native-netinfo:
|
react-native-netinfo:
|
||||||
|
@ -886,11 +887,6 @@ EXTERNAL SOURCES:
|
||||||
Yoga:
|
Yoga:
|
||||||
:path: "../node_modules/react-native/ReactCommon/yoga"
|
:path: "../node_modules/react-native/ReactCommon/yoga"
|
||||||
|
|
||||||
CHECKOUT OPTIONS:
|
|
||||||
JitsiMeetSDK:
|
|
||||||
:commit: 23797290da02324c09998a63781cd1fe0047211d
|
|
||||||
:git: https://github.com/RocketChat/jitsi-meet-ios-sdk-releases.git
|
|
||||||
|
|
||||||
SPEC CHECKSUMS:
|
SPEC CHECKSUMS:
|
||||||
boost: a7c83b31436843459a1961bfd74b96033dc77234
|
boost: a7c83b31436843459a1961bfd74b96033dc77234
|
||||||
BugsnagReactNative: a97b3132c1854fd7bf92350fabd505e3ebdd7829
|
BugsnagReactNative: a97b3132c1854fd7bf92350fabd505e3ebdd7829
|
||||||
|
@ -917,19 +913,20 @@ SPEC CHECKSUMS:
|
||||||
fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9
|
fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9
|
||||||
glog: 476ee3e89abb49e07f822b48323c51c57124b572
|
glog: 476ee3e89abb49e07f822b48323c51c57124b572
|
||||||
GoogleAppMeasurement: 4c19f031220c72464d460c9daa1fb5d1acce958e
|
GoogleAppMeasurement: 4c19f031220c72464d460c9daa1fb5d1acce958e
|
||||||
GoogleDataTransport: 5fffe35792f8b96ec8d6775f5eccd83c998d5a3b
|
GoogleDataTransport: 1c8145da7117bd68bbbed00cf304edb6a24de00f
|
||||||
GoogleUtilities: e0913149f6b0625b553d70dae12b49fc62914fd1
|
GoogleUtilities: c2bdc4cf2ce786c4d2e6b3bcfd599a25ca78f06f
|
||||||
hermes-engine: 84e3af1ea01dd7351ac5d8689cbbea1f9903ffc3
|
hermes-engine: 84e3af1ea01dd7351ac5d8689cbbea1f9903ffc3
|
||||||
iosMath: f7a6cbadf9d836d2149c2a84c435b1effc244cba
|
iosMath: f7a6cbadf9d836d2149c2a84c435b1effc244cba
|
||||||
JitsiMeetSDK: 476329f72a866f714d2802bafe1729de6d644ccf
|
JitsiMeetSDKLite: d59573336ce887ec52327a9927aa8443f560d0b9
|
||||||
|
JitsiWebRTC: f441eb0e2d67f0588bf24e21c5162e97342714fb
|
||||||
KeyCommands: f66c535f698ed14b3d3a4e58859d79a827ea907e
|
KeyCommands: f66c535f698ed14b3d3a4e58859d79a827ea907e
|
||||||
libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913
|
libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913
|
||||||
libwebp: 98a37e597e40bfdb4c911fc98f2c53d0b12d05fc
|
libwebp: f62cb61d0a484ba548448a4bd52aabf150ff6eef
|
||||||
MMKV: aac95d817a100479445633f2b3ed8961b4ac5043
|
MMKV: aac95d817a100479445633f2b3ed8961b4ac5043
|
||||||
MMKVCore: 89f5c8a66bba2dcd551779dea4d412eeec8ff5bb
|
MMKVCore: ddf41b9d9262f058419f9ba7598719af56c02cd3
|
||||||
nanopb: a0ba3315591a9ae0a16a309ee504766e90db0c96
|
nanopb: a0ba3315591a9ae0a16a309ee504766e90db0c96
|
||||||
OpenSSL-Universal: ebc357f1e6bc71fa463ccb2fe676756aff50e88c
|
OpenSSL-Universal: ebc357f1e6bc71fa463ccb2fe676756aff50e88c
|
||||||
PromisesObjC: 99b6f43f9e1044bd87a95a60beff28c2c44ddb72
|
PromisesObjC: ab77feca74fa2823e7af4249b8326368e61014cb
|
||||||
RCT-Folly: 4d8508a426467c48885f1151029bc15fa5d7b3b8
|
RCT-Folly: 4d8508a426467c48885f1151029bc15fa5d7b3b8
|
||||||
RCTRequired: 3e917ea5377751094f38145fdece525aa90545a0
|
RCTRequired: 3e917ea5377751094f38145fdece525aa90545a0
|
||||||
RCTTypeSafety: c43c072a4bd60feb49a9570b0517892b4305c45e
|
RCTTypeSafety: c43c072a4bd60feb49a9570b0517892b4305c45e
|
||||||
|
@ -949,7 +946,7 @@ SPEC CHECKSUMS:
|
||||||
react-native-cameraroll: 2957f2bce63ae896a848fbe0d5352c1bd4d20866
|
react-native-cameraroll: 2957f2bce63ae896a848fbe0d5352c1bd4d20866
|
||||||
react-native-cookies: f54fcded06bb0cda05c11d86788020b43528a26c
|
react-native-cookies: f54fcded06bb0cda05c11d86788020b43528a26c
|
||||||
react-native-document-picker: f5ec1a712ca2a975c233117f044817bb8393cad4
|
react-native-document-picker: f5ec1a712ca2a975c233117f044817bb8393cad4
|
||||||
react-native-jitsi-meet: 3e3ac5d0445091154119f94342efd55c8b1124ce
|
react-native-jitsimeet-custom: a57ca376bfc1c69f639b138f2de2a10e0ed42c04
|
||||||
react-native-mmkv-storage: 8ba3c0216a6df283ece11205b442a3e435aec4e5
|
react-native-mmkv-storage: 8ba3c0216a6df283ece11205b442a3e435aec4e5
|
||||||
react-native-netinfo: e849fc21ca2f4128a5726c801a82fc6f4a6db50d
|
react-native-netinfo: e849fc21ca2f4128a5726c801a82fc6f4a6db50d
|
||||||
react-native-notifications: 83b4fd4a127a6c918fc846cae90da60f84819e44
|
react-native-notifications: 83b4fd4a127a6c918fc846cae90da60f84819e44
|
||||||
|
@ -982,7 +979,7 @@ SPEC CHECKSUMS:
|
||||||
RNConfigReader: 396da6a6444182a76e8ae0930b9436c7575045cb
|
RNConfigReader: 396da6a6444182a76e8ae0930b9436c7575045cb
|
||||||
RNCPicker: 914b557e20b3b8317b084aca9ff4b4edb95f61e4
|
RNCPicker: 914b557e20b3b8317b084aca9ff4b4edb95f61e4
|
||||||
RNDateTimePicker: 7658208086d86d09e1627b5c34ba0cf237c60140
|
RNDateTimePicker: 7658208086d86d09e1627b5c34ba0cf237c60140
|
||||||
RNDeviceInfo: 0400a6d0c94186d1120c3cbd97b23abc022187a9
|
RNDeviceInfo: 4701f0bf2a06b34654745053db0ce4cb0c53ada7
|
||||||
RNFastImage: d5510534be9cccc80e824bfec6369c116d212871
|
RNFastImage: d5510534be9cccc80e824bfec6369c116d212871
|
||||||
RNFBAnalytics: 091c8adcbb0da1e1680ce434fc6e8a0a501fe2e6
|
RNFBAnalytics: 091c8adcbb0da1e1680ce434fc6e8a0a501fe2e6
|
||||||
RNFBApp: b1b5a80a676a07dea17e778bda7c1e8b69b2f5ec
|
RNFBApp: b1b5a80a676a07dea17e778bda7c1e8b69b2f5ec
|
||||||
|
@ -997,13 +994,13 @@ SPEC CHECKSUMS:
|
||||||
RNScreens: 40a2cb40a02a609938137a1e0acfbf8fc9eebf19
|
RNScreens: 40a2cb40a02a609938137a1e0acfbf8fc9eebf19
|
||||||
RNSVG: 302bfc9905bd8122f08966dc2ce2d07b7b52b9f8
|
RNSVG: 302bfc9905bd8122f08966dc2ce2d07b7b52b9f8
|
||||||
RNVectorIcons: 7923e585eaeb139b9f4531d25a125a1500162a0b
|
RNVectorIcons: 7923e585eaeb139b9f4531d25a125a1500162a0b
|
||||||
SDWebImage: 0905f1b7760fc8ac4198cae0036600d67478751e
|
SDWebImage: a47aea9e3d8816015db4e523daff50cfd294499d
|
||||||
SDWebImageWebPCoder: f93010f3f6c031e2f8fb3081ca4ee6966c539815
|
SDWebImageWebPCoder: 908b83b6adda48effe7667cd2b7f78c897e5111d
|
||||||
simdjson: 85016870cd17207312b718ef6652eb6a1cd6a2b0
|
simdjson: 85016870cd17207312b718ef6652eb6a1cd6a2b0
|
||||||
TOCropViewController: edfd4f25713d56905ad1e0b9f5be3fbe0f59c863
|
TOCropViewController: edfd4f25713d56905ad1e0b9f5be3fbe0f59c863
|
||||||
WatermelonDB: 577c61fceff16e9f9103b59d14aee4850c0307b6
|
WatermelonDB: 577c61fceff16e9f9103b59d14aee4850c0307b6
|
||||||
Yoga: 99652481fcd320aefa4a7ef90095b95acd181952
|
Yoga: 99652481fcd320aefa4a7ef90095b95acd181952
|
||||||
|
|
||||||
PODFILE CHECKSUM: 052cbf741847405abc3b902c9e107c1ebb48b252
|
PODFILE CHECKSUM: 670cc455843e2a5aeeaabfba29cc1194a8948056
|
||||||
|
|
||||||
COCOAPODS: 1.11.3
|
COCOAPODS: 1.11.3
|
||||||
|
|
|
@ -8,7 +8,6 @@
|
||||||
|
|
||||||
/* Begin PBXBuildFile section */
|
/* Begin PBXBuildFile section */
|
||||||
0C6E2DE448364EA896869ADF /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = B37C79D9BD0742CE936B6982 /* libc++.tbd */; };
|
0C6E2DE448364EA896869ADF /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = B37C79D9BD0742CE936B6982 /* libc++.tbd */; };
|
||||||
0DAF353368B2DE2714B6DCE8 /* libPods-defaults-Rocket.Chat.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5F1EEB258E879574E6F9EADA /* libPods-defaults-Rocket.Chat.a */; };
|
|
||||||
13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
|
13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
|
||||||
13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
|
13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
|
||||||
1E01C81C2511208400FEF824 /* URL+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E01C81B2511208400FEF824 /* URL+Extensions.swift */; };
|
1E01C81C2511208400FEF824 /* URL+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E01C81B2511208400FEF824 /* URL+Extensions.swift */; };
|
||||||
|
@ -78,9 +77,8 @@
|
||||||
1EFEB5982493B6640072EDC0 /* NotificationService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1EFEB5972493B6640072EDC0 /* NotificationService.swift */; };
|
1EFEB5982493B6640072EDC0 /* NotificationService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1EFEB5972493B6640072EDC0 /* NotificationService.swift */; };
|
||||||
1EFEB59C2493B6640072EDC0 /* NotificationService.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 1EFEB5952493B6640072EDC0 /* NotificationService.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
|
1EFEB59C2493B6640072EDC0 /* NotificationService.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 1EFEB5952493B6640072EDC0 /* NotificationService.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
|
||||||
24A2AEF2383D44B586D31C01 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 06BB44DD4855498082A744AD /* libz.tbd */; };
|
24A2AEF2383D44B586D31C01 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 06BB44DD4855498082A744AD /* libz.tbd */; };
|
||||||
4BC950FF98C56CFA992BBAFE /* libPods-defaults-ShareRocketChatRN.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3982B430BE28C2D93FD9AF5C /* libPods-defaults-ShareRocketChatRN.a */; };
|
460E782729C913ACC2B8EA57 /* libPods-defaults-Rocket.Chat.a in Frameworks */ = {isa = PBXBuildFile; fileRef = EFDB72665B51D50D102E732D /* libPods-defaults-Rocket.Chat.a */; };
|
||||||
4C4C8603EF082F0A33A95522 /* ExpoModulesProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45D5C142B655F8EFD006792C /* ExpoModulesProvider.swift */; };
|
4C4C8603EF082F0A33A95522 /* ExpoModulesProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45D5C142B655F8EFD006792C /* ExpoModulesProvider.swift */; };
|
||||||
58B1112437C7F012923203ED /* libPods-defaults-RocketChatRN.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 674E4FB148AE2FB17415683F /* libPods-defaults-RocketChatRN.a */; };
|
|
||||||
7A006F14229C83B600803143 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 7A006F13229C83B600803143 /* GoogleService-Info.plist */; };
|
7A006F14229C83B600803143 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 7A006F13229C83B600803143 /* GoogleService-Info.plist */; };
|
||||||
7A0D62D2242AB187006D5C06 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 7A0D62D1242AB187006D5C06 /* LaunchScreen.storyboard */; };
|
7A0D62D2242AB187006D5C06 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 7A0D62D1242AB187006D5C06 /* LaunchScreen.storyboard */; };
|
||||||
7A14FCED257FEB3A005BDCD4 /* Experimental.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 7A14FCEC257FEB3A005BDCD4 /* Experimental.xcassets */; };
|
7A14FCED257FEB3A005BDCD4 /* Experimental.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 7A14FCEC257FEB3A005BDCD4 /* Experimental.xcassets */; };
|
||||||
|
@ -140,9 +138,11 @@
|
||||||
7AE10C0628A59530003593CB /* Inter.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 7AE10C0528A59530003593CB /* Inter.ttf */; };
|
7AE10C0628A59530003593CB /* Inter.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 7AE10C0528A59530003593CB /* Inter.ttf */; };
|
||||||
7AE10C0728A59530003593CB /* Inter.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 7AE10C0528A59530003593CB /* Inter.ttf */; };
|
7AE10C0728A59530003593CB /* Inter.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 7AE10C0528A59530003593CB /* Inter.ttf */; };
|
||||||
7AE10C0828A59530003593CB /* Inter.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 7AE10C0528A59530003593CB /* Inter.ttf */; };
|
7AE10C0828A59530003593CB /* Inter.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 7AE10C0528A59530003593CB /* Inter.ttf */; };
|
||||||
|
7CD6EA74BD37266C0BCAC972 /* libPods-defaults-ShareRocketChatRN.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A99BB53A40C30B4B264BFA5 /* libPods-defaults-ShareRocketChatRN.a */; };
|
||||||
85160EB6C143E0493FE5F014 /* ExpoModulesProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 194D9A8897F4A486C2C6F89A /* ExpoModulesProvider.swift */; };
|
85160EB6C143E0493FE5F014 /* ExpoModulesProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 194D9A8897F4A486C2C6F89A /* ExpoModulesProvider.swift */; };
|
||||||
A965681B9D9B1DB968676F54 /* libPods-defaults-NotificationService.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DEC0A8A825375FCCDCDFEFE2 /* libPods-defaults-NotificationService.a */; };
|
A809BED7D6DCDD5DC5D2140F /* libPods-defaults-RocketChatRN.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A6EDFA9E4FA6C0BDF77CD23B /* libPods-defaults-RocketChatRN.a */; };
|
||||||
BC404914E86821389EEB543D /* ExpoModulesProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 391C4F7AA7023CD41EEBD106 /* ExpoModulesProvider.swift */; };
|
BC404914E86821389EEB543D /* ExpoModulesProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 391C4F7AA7023CD41EEBD106 /* ExpoModulesProvider.swift */; };
|
||||||
|
CF05A6FEE970FC0F23969445 /* libPods-defaults-NotificationService.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7107AAFABF867C2E02778938 /* libPods-defaults-NotificationService.a */; };
|
||||||
D94D81FB9E10756FAA03F203 /* ExpoModulesProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 016747EF3B9FED8DE2C9DA14 /* ExpoModulesProvider.swift */; };
|
D94D81FB9E10756FAA03F203 /* ExpoModulesProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 016747EF3B9FED8DE2C9DA14 /* ExpoModulesProvider.swift */; };
|
||||||
DD2BA30A89E64F189C2C24AC /* libWatermelonDB.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BA7E862283664608B3894E34 /* libWatermelonDB.a */; };
|
DD2BA30A89E64F189C2C24AC /* libWatermelonDB.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BA7E862283664608B3894E34 /* libWatermelonDB.a */; };
|
||||||
/* End PBXBuildFile section */
|
/* End PBXBuildFile section */
|
||||||
|
@ -208,8 +208,9 @@
|
||||||
/* Begin PBXFileReference section */
|
/* Begin PBXFileReference section */
|
||||||
008F07F21AC5B25A0029DE68 /* main.jsbundle */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = main.jsbundle; sourceTree = "<group>"; };
|
008F07F21AC5B25A0029DE68 /* main.jsbundle */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = main.jsbundle; sourceTree = "<group>"; };
|
||||||
016747EF3B9FED8DE2C9DA14 /* ExpoModulesProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExpoModulesProvider.swift; path = "Pods/Target Support Files/Pods-defaults-ShareRocketChatRN/ExpoModulesProvider.swift"; sourceTree = "<group>"; };
|
016747EF3B9FED8DE2C9DA14 /* ExpoModulesProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExpoModulesProvider.swift; path = "Pods/Target Support Files/Pods-defaults-ShareRocketChatRN/ExpoModulesProvider.swift"; sourceTree = "<group>"; };
|
||||||
04CABACAE3DF5FF44121FC30 /* Pods-defaults-Rocket.Chat.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-defaults-Rocket.Chat.debug.xcconfig"; path = "Target Support Files/Pods-defaults-Rocket.Chat/Pods-defaults-Rocket.Chat.debug.xcconfig"; sourceTree = "<group>"; };
|
|
||||||
06BB44DD4855498082A744AD /* libz.tbd */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; };
|
06BB44DD4855498082A744AD /* libz.tbd */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; };
|
||||||
|
06C3117EECD04F11CB1C29A9 /* Pods-defaults-Rocket.Chat.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-defaults-Rocket.Chat.release.xcconfig"; path = "Target Support Files/Pods-defaults-Rocket.Chat/Pods-defaults-Rocket.Chat.release.xcconfig"; sourceTree = "<group>"; };
|
||||||
|
0A99BB53A40C30B4B264BFA5 /* libPods-defaults-ShareRocketChatRN.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-defaults-ShareRocketChatRN.a"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
13B07F961A680F5B00A75B9A /* Rocket.Chat Experimental.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Rocket.Chat Experimental.app"; sourceTree = BUILT_PRODUCTS_DIR; };
|
13B07F961A680F5B00A75B9A /* Rocket.Chat Experimental.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Rocket.Chat Experimental.app"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = RocketChatRN/AppDelegate.h; sourceTree = "<group>"; };
|
13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = RocketChatRN/AppDelegate.h; sourceTree = "<group>"; };
|
||||||
13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = RocketChatRN/Images.xcassets; sourceTree = "<group>"; };
|
13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = RocketChatRN/Images.xcassets; sourceTree = "<group>"; };
|
||||||
|
@ -262,13 +263,12 @@
|
||||||
1EFEB5992493B6640072EDC0 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
1EFEB5992493B6640072EDC0 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||||
1EFEB5A12493B67D0072EDC0 /* NotificationService.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = NotificationService.entitlements; sourceTree = "<group>"; };
|
1EFEB5A12493B67D0072EDC0 /* NotificationService.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = NotificationService.entitlements; sourceTree = "<group>"; };
|
||||||
391C4F7AA7023CD41EEBD106 /* ExpoModulesProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExpoModulesProvider.swift; path = "Pods/Target Support Files/Pods-defaults-Rocket.Chat/ExpoModulesProvider.swift"; sourceTree = "<group>"; };
|
391C4F7AA7023CD41EEBD106 /* ExpoModulesProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExpoModulesProvider.swift; path = "Pods/Target Support Files/Pods-defaults-Rocket.Chat/ExpoModulesProvider.swift"; sourceTree = "<group>"; };
|
||||||
3982B430BE28C2D93FD9AF5C /* libPods-defaults-ShareRocketChatRN.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-defaults-ShareRocketChatRN.a"; sourceTree = BUILT_PRODUCTS_DIR; };
|
|
||||||
3AD43034372030994471D0E9 /* Pods-defaults-Rocket.Chat.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-defaults-Rocket.Chat.release.xcconfig"; path = "Target Support Files/Pods-defaults-Rocket.Chat/Pods-defaults-Rocket.Chat.release.xcconfig"; sourceTree = "<group>"; };
|
|
||||||
45D5C142B655F8EFD006792C /* ExpoModulesProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExpoModulesProvider.swift; path = "Pods/Target Support Files/Pods-defaults-RocketChatRN/ExpoModulesProvider.swift"; sourceTree = "<group>"; };
|
45D5C142B655F8EFD006792C /* ExpoModulesProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExpoModulesProvider.swift; path = "Pods/Target Support Files/Pods-defaults-RocketChatRN/ExpoModulesProvider.swift"; sourceTree = "<group>"; };
|
||||||
48A6FD916DB2F924F1360A4A /* Pods-defaults-RocketChatRN.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-defaults-RocketChatRN.debug.xcconfig"; path = "Target Support Files/Pods-defaults-RocketChatRN/Pods-defaults-RocketChatRN.debug.xcconfig"; sourceTree = "<group>"; };
|
496B9AFC1A3BFACA18566761 /* Pods-defaults-RocketChatRN.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-defaults-RocketChatRN.release.xcconfig"; path = "Target Support Files/Pods-defaults-RocketChatRN/Pods-defaults-RocketChatRN.release.xcconfig"; sourceTree = "<group>"; };
|
||||||
5F1EEB258E879574E6F9EADA /* libPods-defaults-Rocket.Chat.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-defaults-Rocket.Chat.a"; sourceTree = BUILT_PRODUCTS_DIR; };
|
4E3D7377D5EE259A4C9889A7 /* Pods-defaults-RocketChatRN.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-defaults-RocketChatRN.debug.xcconfig"; path = "Target Support Files/Pods-defaults-RocketChatRN/Pods-defaults-RocketChatRN.debug.xcconfig"; sourceTree = "<group>"; };
|
||||||
60B2A6A31FC4588700BD58E5 /* RocketChatRN.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; name = RocketChatRN.entitlements; path = RocketChatRN/RocketChatRN.entitlements; sourceTree = "<group>"; };
|
60B2A6A31FC4588700BD58E5 /* RocketChatRN.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; name = RocketChatRN.entitlements; path = RocketChatRN/RocketChatRN.entitlements; sourceTree = "<group>"; };
|
||||||
674E4FB148AE2FB17415683F /* libPods-defaults-RocketChatRN.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-defaults-RocketChatRN.a"; sourceTree = BUILT_PRODUCTS_DIR; };
|
65360F272979AA1500778C04 /* JitsiMeetViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = JitsiMeetViewController.swift; path = "../node_modules/@socialcode-rob1/react-native-jitsimeet-custom/ios/JitsiMeetViewController.swift"; sourceTree = "<group>"; };
|
||||||
|
7107AAFABF867C2E02778938 /* libPods-defaults-NotificationService.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-defaults-NotificationService.a"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
7A006F13229C83B600803143 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = "<group>"; };
|
7A006F13229C83B600803143 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = "<group>"; };
|
||||||
7A0D62D1242AB187006D5C06 /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = LaunchScreen.storyboard; sourceTree = "<group>"; };
|
7A0D62D1242AB187006D5C06 /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = LaunchScreen.storyboard; sourceTree = "<group>"; };
|
||||||
7A14FCEC257FEB3A005BDCD4 /* Experimental.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Experimental.xcassets; sourceTree = "<group>"; };
|
7A14FCEC257FEB3A005BDCD4 /* Experimental.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Experimental.xcassets; sourceTree = "<group>"; };
|
||||||
|
@ -279,14 +279,15 @@
|
||||||
7AAB3E52257E6A6E00707CF6 /* Rocket.Chat.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Rocket.Chat.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
7AAB3E52257E6A6E00707CF6 /* Rocket.Chat.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Rocket.Chat.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
7ACD4853222860DE00442C55 /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
|
7ACD4853222860DE00442C55 /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
|
||||||
7AE10C0528A59530003593CB /* Inter.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = Inter.ttf; sourceTree = "<group>"; };
|
7AE10C0528A59530003593CB /* Inter.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = Inter.ttf; sourceTree = "<group>"; };
|
||||||
7E01AFB7FFC99A24DE24A9E7 /* Pods-defaults-NotificationService.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-defaults-NotificationService.release.xcconfig"; path = "Target Support Files/Pods-defaults-NotificationService/Pods-defaults-NotificationService.release.xcconfig"; sourceTree = "<group>"; };
|
A6EDFA9E4FA6C0BDF77CD23B /* libPods-defaults-RocketChatRN.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-defaults-RocketChatRN.a"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
8009E8CCFAA4804CCED401D8 /* Pods-defaults-NotificationService.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-defaults-NotificationService.debug.xcconfig"; path = "Target Support Files/Pods-defaults-NotificationService/Pods-defaults-NotificationService.debug.xcconfig"; sourceTree = "<group>"; };
|
B2632520781ADB17C1AC1FAC /* Pods-defaults-ShareRocketChatRN.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-defaults-ShareRocketChatRN.debug.xcconfig"; path = "Target Support Files/Pods-defaults-ShareRocketChatRN/Pods-defaults-ShareRocketChatRN.debug.xcconfig"; sourceTree = "<group>"; };
|
||||||
94EB1DBE281212E61157DDEE /* Pods-defaults-ShareRocketChatRN.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-defaults-ShareRocketChatRN.release.xcconfig"; path = "Target Support Files/Pods-defaults-ShareRocketChatRN/Pods-defaults-ShareRocketChatRN.release.xcconfig"; sourceTree = "<group>"; };
|
|
||||||
AC87BFDE8CC75468C2E87328 /* Pods-defaults-RocketChatRN.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-defaults-RocketChatRN.release.xcconfig"; path = "Target Support Files/Pods-defaults-RocketChatRN/Pods-defaults-RocketChatRN.release.xcconfig"; sourceTree = "<group>"; };
|
|
||||||
B37C79D9BD0742CE936B6982 /* libc++.tbd */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libc++.tbd"; path = "usr/lib/libc++.tbd"; sourceTree = SDKROOT; };
|
B37C79D9BD0742CE936B6982 /* libc++.tbd */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libc++.tbd"; path = "usr/lib/libc++.tbd"; sourceTree = SDKROOT; };
|
||||||
|
B387EBF6D5D60163EA71AE10 /* Pods-defaults-Rocket.Chat.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-defaults-Rocket.Chat.debug.xcconfig"; path = "Target Support Files/Pods-defaults-Rocket.Chat/Pods-defaults-Rocket.Chat.debug.xcconfig"; sourceTree = "<group>"; };
|
||||||
|
B90637B65093B8C2B7C93A26 /* Pods-defaults-NotificationService.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-defaults-NotificationService.debug.xcconfig"; path = "Target Support Files/Pods-defaults-NotificationService/Pods-defaults-NotificationService.debug.xcconfig"; sourceTree = "<group>"; };
|
||||||
BA7E862283664608B3894E34 /* libWatermelonDB.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libWatermelonDB.a; sourceTree = "<group>"; };
|
BA7E862283664608B3894E34 /* libWatermelonDB.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libWatermelonDB.a; sourceTree = "<group>"; };
|
||||||
C84BF59D4FEA8C08AD41906D /* Pods-defaults-ShareRocketChatRN.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-defaults-ShareRocketChatRN.debug.xcconfig"; path = "Target Support Files/Pods-defaults-ShareRocketChatRN/Pods-defaults-ShareRocketChatRN.debug.xcconfig"; sourceTree = "<group>"; };
|
CEDD8A84B710A696B2834686 /* Pods-defaults-NotificationService.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-defaults-NotificationService.release.xcconfig"; path = "Target Support Files/Pods-defaults-NotificationService/Pods-defaults-NotificationService.release.xcconfig"; sourceTree = "<group>"; };
|
||||||
DEC0A8A825375FCCDCDFEFE2 /* libPods-defaults-NotificationService.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-defaults-NotificationService.a"; sourceTree = BUILT_PRODUCTS_DIR; };
|
D49C1A8553D7BEA6FA98C6B9 /* Pods-defaults-ShareRocketChatRN.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-defaults-ShareRocketChatRN.release.xcconfig"; path = "Target Support Files/Pods-defaults-ShareRocketChatRN/Pods-defaults-ShareRocketChatRN.release.xcconfig"; sourceTree = "<group>"; };
|
||||||
|
EFDB72665B51D50D102E732D /* libPods-defaults-Rocket.Chat.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-defaults-Rocket.Chat.a"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
/* End PBXFileReference section */
|
/* End PBXFileReference section */
|
||||||
|
|
||||||
/* Begin PBXFrameworksBuildPhase section */
|
/* Begin PBXFrameworksBuildPhase section */
|
||||||
|
@ -307,7 +308,7 @@
|
||||||
7ACD4897222860DE00442C55 /* JavaScriptCore.framework in Frameworks */,
|
7ACD4897222860DE00442C55 /* JavaScriptCore.framework in Frameworks */,
|
||||||
24A2AEF2383D44B586D31C01 /* libz.tbd in Frameworks */,
|
24A2AEF2383D44B586D31C01 /* libz.tbd in Frameworks */,
|
||||||
DD2BA30A89E64F189C2C24AC /* libWatermelonDB.a in Frameworks */,
|
DD2BA30A89E64F189C2C24AC /* libWatermelonDB.a in Frameworks */,
|
||||||
58B1112437C7F012923203ED /* libPods-defaults-RocketChatRN.a in Frameworks */,
|
A809BED7D6DCDD5DC5D2140F /* libPods-defaults-RocketChatRN.a in Frameworks */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
|
@ -316,7 +317,7 @@
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
1E25743422CBA2CF005A877F /* JavaScriptCore.framework in Frameworks */,
|
1E25743422CBA2CF005A877F /* JavaScriptCore.framework in Frameworks */,
|
||||||
4BC950FF98C56CFA992BBAFE /* libPods-defaults-ShareRocketChatRN.a in Frameworks */,
|
7CD6EA74BD37266C0BCAC972 /* libPods-defaults-ShareRocketChatRN.a in Frameworks */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
|
@ -324,7 +325,7 @@
|
||||||
isa = PBXFrameworksBuildPhase;
|
isa = PBXFrameworksBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
A965681B9D9B1DB968676F54 /* libPods-defaults-NotificationService.a in Frameworks */,
|
CF05A6FEE970FC0F23969445 /* libPods-defaults-NotificationService.a in Frameworks */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
|
@ -345,7 +346,7 @@
|
||||||
7AAB3E3D257E6A6E00707CF6 /* JavaScriptCore.framework in Frameworks */,
|
7AAB3E3D257E6A6E00707CF6 /* JavaScriptCore.framework in Frameworks */,
|
||||||
7AAB3E3E257E6A6E00707CF6 /* libz.tbd in Frameworks */,
|
7AAB3E3E257E6A6E00707CF6 /* libz.tbd in Frameworks */,
|
||||||
7AAB3E3F257E6A6E00707CF6 /* libWatermelonDB.a in Frameworks */,
|
7AAB3E3F257E6A6E00707CF6 /* libWatermelonDB.a in Frameworks */,
|
||||||
0DAF353368B2DE2714B6DCE8 /* libPods-defaults-Rocket.Chat.a in Frameworks */,
|
460E782729C913ACC2B8EA57 /* libPods-defaults-Rocket.Chat.a in Frameworks */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
|
@ -355,6 +356,7 @@
|
||||||
13B07FAE1A68108700A75B9A /* RocketChatRN */ = {
|
13B07FAE1A68108700A75B9A /* RocketChatRN */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
65360F272979AA1500778C04 /* JitsiMeetViewController.swift */,
|
||||||
60B2A6A31FC4588700BD58E5 /* RocketChatRN.entitlements */,
|
60B2A6A31FC4588700BD58E5 /* RocketChatRN.entitlements */,
|
||||||
008F07F21AC5B25A0029DE68 /* main.jsbundle */,
|
008F07F21AC5B25A0029DE68 /* main.jsbundle */,
|
||||||
13B07FAF1A68108700A75B9A /* AppDelegate.h */,
|
13B07FAF1A68108700A75B9A /* AppDelegate.h */,
|
||||||
|
@ -494,14 +496,14 @@
|
||||||
7AC2B09613AA7C3FEBAC9F57 /* Pods */ = {
|
7AC2B09613AA7C3FEBAC9F57 /* Pods */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
8009E8CCFAA4804CCED401D8 /* Pods-defaults-NotificationService.debug.xcconfig */,
|
B90637B65093B8C2B7C93A26 /* Pods-defaults-NotificationService.debug.xcconfig */,
|
||||||
7E01AFB7FFC99A24DE24A9E7 /* Pods-defaults-NotificationService.release.xcconfig */,
|
CEDD8A84B710A696B2834686 /* Pods-defaults-NotificationService.release.xcconfig */,
|
||||||
04CABACAE3DF5FF44121FC30 /* Pods-defaults-Rocket.Chat.debug.xcconfig */,
|
B387EBF6D5D60163EA71AE10 /* Pods-defaults-Rocket.Chat.debug.xcconfig */,
|
||||||
3AD43034372030994471D0E9 /* Pods-defaults-Rocket.Chat.release.xcconfig */,
|
06C3117EECD04F11CB1C29A9 /* Pods-defaults-Rocket.Chat.release.xcconfig */,
|
||||||
48A6FD916DB2F924F1360A4A /* Pods-defaults-RocketChatRN.debug.xcconfig */,
|
4E3D7377D5EE259A4C9889A7 /* Pods-defaults-RocketChatRN.debug.xcconfig */,
|
||||||
AC87BFDE8CC75468C2E87328 /* Pods-defaults-RocketChatRN.release.xcconfig */,
|
496B9AFC1A3BFACA18566761 /* Pods-defaults-RocketChatRN.release.xcconfig */,
|
||||||
C84BF59D4FEA8C08AD41906D /* Pods-defaults-ShareRocketChatRN.debug.xcconfig */,
|
B2632520781ADB17C1AC1FAC /* Pods-defaults-ShareRocketChatRN.debug.xcconfig */,
|
||||||
94EB1DBE281212E61157DDEE /* Pods-defaults-ShareRocketChatRN.release.xcconfig */,
|
D49C1A8553D7BEA6FA98C6B9 /* Pods-defaults-ShareRocketChatRN.release.xcconfig */,
|
||||||
);
|
);
|
||||||
path = Pods;
|
path = Pods;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
|
@ -592,10 +594,10 @@
|
||||||
7ACD4853222860DE00442C55 /* JavaScriptCore.framework */,
|
7ACD4853222860DE00442C55 /* JavaScriptCore.framework */,
|
||||||
B37C79D9BD0742CE936B6982 /* libc++.tbd */,
|
B37C79D9BD0742CE936B6982 /* libc++.tbd */,
|
||||||
06BB44DD4855498082A744AD /* libz.tbd */,
|
06BB44DD4855498082A744AD /* libz.tbd */,
|
||||||
DEC0A8A825375FCCDCDFEFE2 /* libPods-defaults-NotificationService.a */,
|
7107AAFABF867C2E02778938 /* libPods-defaults-NotificationService.a */,
|
||||||
5F1EEB258E879574E6F9EADA /* libPods-defaults-Rocket.Chat.a */,
|
EFDB72665B51D50D102E732D /* libPods-defaults-Rocket.Chat.a */,
|
||||||
674E4FB148AE2FB17415683F /* libPods-defaults-RocketChatRN.a */,
|
A6EDFA9E4FA6C0BDF77CD23B /* libPods-defaults-RocketChatRN.a */,
|
||||||
3982B430BE28C2D93FD9AF5C /* libPods-defaults-ShareRocketChatRN.a */,
|
0A99BB53A40C30B4B264BFA5 /* libPods-defaults-ShareRocketChatRN.a */,
|
||||||
);
|
);
|
||||||
name = Frameworks;
|
name = Frameworks;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
|
@ -615,7 +617,7 @@
|
||||||
isa = PBXNativeTarget;
|
isa = PBXNativeTarget;
|
||||||
buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "RocketChatRN" */;
|
buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "RocketChatRN" */;
|
||||||
buildPhases = (
|
buildPhases = (
|
||||||
E368867D90711EA1666BFF6A /* [CP] Check Pods Manifest.lock */,
|
DE29ABAFC51FDE8111D6F9EC /* [CP] Check Pods Manifest.lock */,
|
||||||
7AA5C63E23E30D110005C4A7 /* Start Packager */,
|
7AA5C63E23E30D110005C4A7 /* Start Packager */,
|
||||||
13B07F871A680F5B00A75B9A /* Sources */,
|
13B07F871A680F5B00A75B9A /* Sources */,
|
||||||
13B07F8C1A680F5B00A75B9A /* Frameworks */,
|
13B07F8C1A680F5B00A75B9A /* Frameworks */,
|
||||||
|
@ -624,8 +626,8 @@
|
||||||
1EC6ACF422CB9FC300A41C61 /* Embed App Extensions */,
|
1EC6ACF422CB9FC300A41C61 /* Embed App Extensions */,
|
||||||
1E1EA8082326CCE300E22452 /* ShellScript */,
|
1E1EA8082326CCE300E22452 /* ShellScript */,
|
||||||
7AAE9EB32891A0D20024F559 /* Upload source maps to Bugsnag */,
|
7AAE9EB32891A0D20024F559 /* Upload source maps to Bugsnag */,
|
||||||
DE93C39DFDB4F3759B84670D /* [CP] Embed Pods Frameworks */,
|
7841CD536EDA07B20BCE10B7 /* [CP] Embed Pods Frameworks */,
|
||||||
52CE06391F137AA82A402A69 /* [CP] Copy Pods Resources */,
|
8F1EAEDED27E942D30510BAC /* [CP] Copy Pods Resources */,
|
||||||
);
|
);
|
||||||
buildRules = (
|
buildRules = (
|
||||||
);
|
);
|
||||||
|
@ -642,12 +644,12 @@
|
||||||
isa = PBXNativeTarget;
|
isa = PBXNativeTarget;
|
||||||
buildConfigurationList = 1EC6ACF322CB9FC300A41C61 /* Build configuration list for PBXNativeTarget "ShareRocketChatRN" */;
|
buildConfigurationList = 1EC6ACF322CB9FC300A41C61 /* Build configuration list for PBXNativeTarget "ShareRocketChatRN" */;
|
||||||
buildPhases = (
|
buildPhases = (
|
||||||
943E61A9039C6FE02871CAD9 /* [CP] Check Pods Manifest.lock */,
|
FAE0F7AA2756A4362BC5B30B /* [CP] Check Pods Manifest.lock */,
|
||||||
1EC6ACAC22CB9FC300A41C61 /* Sources */,
|
1EC6ACAC22CB9FC300A41C61 /* Sources */,
|
||||||
1EC6ACAD22CB9FC300A41C61 /* Frameworks */,
|
1EC6ACAD22CB9FC300A41C61 /* Frameworks */,
|
||||||
1EC6ACAE22CB9FC300A41C61 /* Resources */,
|
1EC6ACAE22CB9FC300A41C61 /* Resources */,
|
||||||
1EFE4DC322CBF36300B766B7 /* ShellScript */,
|
1EFE4DC322CBF36300B766B7 /* ShellScript */,
|
||||||
1FB8D9B08356E6AC6201714D /* [CP] Copy Pods Resources */,
|
0201B0C2059B91755F2025E4 /* [CP] Copy Pods Resources */,
|
||||||
);
|
);
|
||||||
buildRules = (
|
buildRules = (
|
||||||
);
|
);
|
||||||
|
@ -662,11 +664,11 @@
|
||||||
isa = PBXNativeTarget;
|
isa = PBXNativeTarget;
|
||||||
buildConfigurationList = 1EFEB5A02493B6640072EDC0 /* Build configuration list for PBXNativeTarget "NotificationService" */;
|
buildConfigurationList = 1EFEB5A02493B6640072EDC0 /* Build configuration list for PBXNativeTarget "NotificationService" */;
|
||||||
buildPhases = (
|
buildPhases = (
|
||||||
AAFC671179263417C34C729A /* [CP] Check Pods Manifest.lock */,
|
63AF6819B463EFFEB422E5FA /* [CP] Check Pods Manifest.lock */,
|
||||||
1EFEB5912493B6640072EDC0 /* Sources */,
|
1EFEB5912493B6640072EDC0 /* Sources */,
|
||||||
1EFEB5922493B6640072EDC0 /* Frameworks */,
|
1EFEB5922493B6640072EDC0 /* Frameworks */,
|
||||||
1EFEB5932493B6640072EDC0 /* Resources */,
|
1EFEB5932493B6640072EDC0 /* Resources */,
|
||||||
996816F401E32166714ABD9E /* [CP] Copy Pods Resources */,
|
729BD34038A0BFBCE2E6E9B5 /* [CP] Copy Pods Resources */,
|
||||||
);
|
);
|
||||||
buildRules = (
|
buildRules = (
|
||||||
);
|
);
|
||||||
|
@ -681,7 +683,7 @@
|
||||||
isa = PBXNativeTarget;
|
isa = PBXNativeTarget;
|
||||||
buildConfigurationList = 7AAB3E4F257E6A6E00707CF6 /* Build configuration list for PBXNativeTarget "Rocket.Chat" */;
|
buildConfigurationList = 7AAB3E4F257E6A6E00707CF6 /* Build configuration list for PBXNativeTarget "Rocket.Chat" */;
|
||||||
buildPhases = (
|
buildPhases = (
|
||||||
CDFA7A6FA541A8BED7CE9EE7 /* [CP] Check Pods Manifest.lock */,
|
A21BC8746245EB1E7D8722FF /* [CP] Check Pods Manifest.lock */,
|
||||||
7AAB3E13257E6A6E00707CF6 /* Start Packager */,
|
7AAB3E13257E6A6E00707CF6 /* Start Packager */,
|
||||||
7AAB3E14257E6A6E00707CF6 /* Sources */,
|
7AAB3E14257E6A6E00707CF6 /* Sources */,
|
||||||
7AAB3E32257E6A6E00707CF6 /* Frameworks */,
|
7AAB3E32257E6A6E00707CF6 /* Frameworks */,
|
||||||
|
@ -690,8 +692,8 @@
|
||||||
7AAB3E48257E6A6E00707CF6 /* Embed App Extensions */,
|
7AAB3E48257E6A6E00707CF6 /* Embed App Extensions */,
|
||||||
7AAB3E4B257E6A6E00707CF6 /* ShellScript */,
|
7AAB3E4B257E6A6E00707CF6 /* ShellScript */,
|
||||||
7A10288726B1D15200E47EF8 /* Upload source maps to Bugsnag */,
|
7A10288726B1D15200E47EF8 /* Upload source maps to Bugsnag */,
|
||||||
CCA2F3534731DC8EE1FAB416 /* [CP] Embed Pods Frameworks */,
|
C1E9B0B4B7CD33AA69C229F5 /* [CP] Embed Pods Frameworks */,
|
||||||
DEE9CFB76371CE33773CB435 /* [CP] Copy Pods Resources */,
|
8DAD9AEDB28EC0ED2C88DCF8 /* [CP] Copy Pods Resources */,
|
||||||
);
|
);
|
||||||
buildRules = (
|
buildRules = (
|
||||||
);
|
);
|
||||||
|
@ -841,41 +843,7 @@
|
||||||
shellPath = /bin/sh;
|
shellPath = /bin/sh;
|
||||||
shellScript = "export EXTRA_PACKAGER_ARGS=\"--sourcemap-output $TMPDIR/$(md5 -qs \"$CONFIGURATION_BUILD_DIR\")-main.jsbundle.map\"\nexport NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh\n";
|
shellScript = "export EXTRA_PACKAGER_ARGS=\"--sourcemap-output $TMPDIR/$(md5 -qs \"$CONFIGURATION_BUILD_DIR\")-main.jsbundle.map\"\nexport NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh\n";
|
||||||
};
|
};
|
||||||
1E1EA8082326CCE300E22452 /* ShellScript */ = {
|
0201B0C2059B91755F2025E4 /* [CP] Copy Pods Resources */ = {
|
||||||
isa = PBXShellScriptBuildPhase;
|
|
||||||
buildActionMask = 2147483647;
|
|
||||||
files = (
|
|
||||||
);
|
|
||||||
inputFileListPaths = (
|
|
||||||
);
|
|
||||||
inputPaths = (
|
|
||||||
);
|
|
||||||
outputFileListPaths = (
|
|
||||||
);
|
|
||||||
outputPaths = (
|
|
||||||
);
|
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
|
||||||
shellPath = /bin/sh;
|
|
||||||
shellScript = "echo \"Target architectures: $ARCHS\"\n\nAPP_PATH=\"${TARGET_BUILD_DIR}/${WRAPPER_NAME}\"\n\nfind \"$APP_PATH\" -name '*.framework' -type d | while read -r FRAMEWORK\ndo\nFRAMEWORK_EXECUTABLE_NAME=$(defaults read \"$FRAMEWORK/Info.plist\" CFBundleExecutable)\nFRAMEWORK_EXECUTABLE_PATH=\"$FRAMEWORK/$FRAMEWORK_EXECUTABLE_NAME\"\necho \"Executable is $FRAMEWORK_EXECUTABLE_PATH\"\necho $(lipo -info \"$FRAMEWORK_EXECUTABLE_PATH\")\n\nFRAMEWORK_TMP_PATH=\"$FRAMEWORK_EXECUTABLE_PATH-tmp\"\n\n# remove simulator's archs if location is not simulator's directory\ncase \"${TARGET_BUILD_DIR}\" in\n*\"iphonesimulator\")\necho \"No need to remove archs\"\n;;\n*)\nif $(lipo \"$FRAMEWORK_EXECUTABLE_PATH\" -verify_arch \"i386\") ; then\nlipo -output \"$FRAMEWORK_TMP_PATH\" -remove \"i386\" \"$FRAMEWORK_EXECUTABLE_PATH\"\necho \"i386 architecture removed\"\nrm \"$FRAMEWORK_EXECUTABLE_PATH\"\nmv \"$FRAMEWORK_TMP_PATH\" \"$FRAMEWORK_EXECUTABLE_PATH\"\nfi\nif $(lipo \"$FRAMEWORK_EXECUTABLE_PATH\" -verify_arch \"x86_64\") ; then\nlipo -output \"$FRAMEWORK_TMP_PATH\" -remove \"x86_64\" \"$FRAMEWORK_EXECUTABLE_PATH\"\necho \"x86_64 architecture removed\"\nrm \"$FRAMEWORK_EXECUTABLE_PATH\"\nmv \"$FRAMEWORK_TMP_PATH\" \"$FRAMEWORK_EXECUTABLE_PATH\"\nfi\n;;\nesac\n\necho \"Completed for executable $FRAMEWORK_EXECUTABLE_PATH\"\necho $\n\ndone\n";
|
|
||||||
};
|
|
||||||
1EFE4DC322CBF36300B766B7 /* ShellScript */ = {
|
|
||||||
isa = PBXShellScriptBuildPhase;
|
|
||||||
buildActionMask = 2147483647;
|
|
||||||
files = (
|
|
||||||
);
|
|
||||||
inputFileListPaths = (
|
|
||||||
);
|
|
||||||
inputPaths = (
|
|
||||||
);
|
|
||||||
outputFileListPaths = (
|
|
||||||
);
|
|
||||||
outputPaths = (
|
|
||||||
);
|
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
|
||||||
shellPath = /bin/sh;
|
|
||||||
shellScript = "export EXTRA_PACKAGER_ARGS=\"--sourcemap-output $TMPDIR/$(md5 -qs \"$CONFIGURATION_BUILD_DIR\")-main.jsbundle.map\"\nexport NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh\n";
|
|
||||||
};
|
|
||||||
1FB8D9B08356E6AC6201714D /* [CP] Copy Pods Resources */ = {
|
|
||||||
isa = PBXShellScriptBuildPhase;
|
isa = PBXShellScriptBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
|
@ -931,13 +899,69 @@
|
||||||
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-defaults-ShareRocketChatRN/Pods-defaults-ShareRocketChatRN-resources.sh\"\n";
|
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-defaults-ShareRocketChatRN/Pods-defaults-ShareRocketChatRN-resources.sh\"\n";
|
||||||
showEnvVarsInLog = 0;
|
showEnvVarsInLog = 0;
|
||||||
};
|
};
|
||||||
52CE06391F137AA82A402A69 /* [CP] Copy Pods Resources */ = {
|
1E1EA8082326CCE300E22452 /* ShellScript */ = {
|
||||||
|
isa = PBXShellScriptBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
inputFileListPaths = (
|
||||||
|
);
|
||||||
|
inputPaths = (
|
||||||
|
);
|
||||||
|
outputFileListPaths = (
|
||||||
|
);
|
||||||
|
outputPaths = (
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
shellPath = /bin/sh;
|
||||||
|
shellScript = "echo \"Target architectures: $ARCHS\"\n\nAPP_PATH=\"${TARGET_BUILD_DIR}/${WRAPPER_NAME}\"\n\nfind \"$APP_PATH\" -name '*.framework' -type d | while read -r FRAMEWORK\ndo\nFRAMEWORK_EXECUTABLE_NAME=$(defaults read \"$FRAMEWORK/Info.plist\" CFBundleExecutable)\nFRAMEWORK_EXECUTABLE_PATH=\"$FRAMEWORK/$FRAMEWORK_EXECUTABLE_NAME\"\necho \"Executable is $FRAMEWORK_EXECUTABLE_PATH\"\necho $(lipo -info \"$FRAMEWORK_EXECUTABLE_PATH\")\n\nFRAMEWORK_TMP_PATH=\"$FRAMEWORK_EXECUTABLE_PATH-tmp\"\n\n# remove simulator's archs if location is not simulator's directory\ncase \"${TARGET_BUILD_DIR}\" in\n*\"iphonesimulator\")\necho \"No need to remove archs\"\n;;\n*)\nif $(lipo \"$FRAMEWORK_EXECUTABLE_PATH\" -verify_arch \"i386\") ; then\nlipo -output \"$FRAMEWORK_TMP_PATH\" -remove \"i386\" \"$FRAMEWORK_EXECUTABLE_PATH\"\necho \"i386 architecture removed\"\nrm \"$FRAMEWORK_EXECUTABLE_PATH\"\nmv \"$FRAMEWORK_TMP_PATH\" \"$FRAMEWORK_EXECUTABLE_PATH\"\nfi\nif $(lipo \"$FRAMEWORK_EXECUTABLE_PATH\" -verify_arch \"x86_64\") ; then\nlipo -output \"$FRAMEWORK_TMP_PATH\" -remove \"x86_64\" \"$FRAMEWORK_EXECUTABLE_PATH\"\necho \"x86_64 architecture removed\"\nrm \"$FRAMEWORK_EXECUTABLE_PATH\"\nmv \"$FRAMEWORK_TMP_PATH\" \"$FRAMEWORK_EXECUTABLE_PATH\"\nfi\n;;\nesac\n\necho \"Completed for executable $FRAMEWORK_EXECUTABLE_PATH\"\necho $\n\ndone\n";
|
||||||
|
};
|
||||||
|
1EFE4DC322CBF36300B766B7 /* ShellScript */ = {
|
||||||
|
isa = PBXShellScriptBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
inputFileListPaths = (
|
||||||
|
);
|
||||||
|
inputPaths = (
|
||||||
|
);
|
||||||
|
outputFileListPaths = (
|
||||||
|
);
|
||||||
|
outputPaths = (
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
shellPath = /bin/sh;
|
||||||
|
shellScript = "export EXTRA_PACKAGER_ARGS=\"--sourcemap-output $TMPDIR/$(md5 -qs \"$CONFIGURATION_BUILD_DIR\")-main.jsbundle.map\"\nexport NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh\n";
|
||||||
|
};
|
||||||
|
63AF6819B463EFFEB422E5FA /* [CP] Check Pods Manifest.lock */ = {
|
||||||
|
isa = PBXShellScriptBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
inputFileListPaths = (
|
||||||
|
);
|
||||||
|
inputPaths = (
|
||||||
|
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
|
||||||
|
"${PODS_ROOT}/Manifest.lock",
|
||||||
|
);
|
||||||
|
name = "[CP] Check Pods Manifest.lock";
|
||||||
|
outputFileListPaths = (
|
||||||
|
);
|
||||||
|
outputPaths = (
|
||||||
|
"$(DERIVED_FILE_DIR)/Pods-defaults-NotificationService-checkManifestLockResult.txt",
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
shellPath = /bin/sh;
|
||||||
|
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
|
||||||
|
showEnvVarsInLog = 0;
|
||||||
|
};
|
||||||
|
729BD34038A0BFBCE2E6E9B5 /* [CP] Copy Pods Resources */ = {
|
||||||
isa = PBXShellScriptBuildPhase;
|
isa = PBXShellScriptBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
);
|
);
|
||||||
inputPaths = (
|
inputPaths = (
|
||||||
"${PODS_ROOT}/Target Support Files/Pods-defaults-RocketChatRN/Pods-defaults-RocketChatRN-resources.sh",
|
"${PODS_ROOT}/Target Support Files/Pods-defaults-NotificationService/Pods-defaults-NotificationService-resources.sh",
|
||||||
"${PODS_CONFIGURATION_BUILD_DIR}/RNImageCropPicker/QBImagePicker.bundle",
|
"${PODS_CONFIGURATION_BUILD_DIR}/RNImageCropPicker/QBImagePicker.bundle",
|
||||||
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/AntDesign.ttf",
|
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/AntDesign.ttf",
|
||||||
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Entypo.ttf",
|
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Entypo.ttf",
|
||||||
|
@ -984,7 +1008,31 @@
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
shellPath = /bin/sh;
|
shellPath = /bin/sh;
|
||||||
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-defaults-RocketChatRN/Pods-defaults-RocketChatRN-resources.sh\"\n";
|
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-defaults-NotificationService/Pods-defaults-NotificationService-resources.sh\"\n";
|
||||||
|
showEnvVarsInLog = 0;
|
||||||
|
};
|
||||||
|
7841CD536EDA07B20BCE10B7 /* [CP] Embed Pods Frameworks */ = {
|
||||||
|
isa = PBXShellScriptBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
inputPaths = (
|
||||||
|
"${PODS_ROOT}/Target Support Files/Pods-defaults-RocketChatRN/Pods-defaults-RocketChatRN-frameworks.sh",
|
||||||
|
"${PODS_XCFRAMEWORKS_BUILD_DIR}/JitsiMeetSDKLite/JitsiMeetSDK.framework/JitsiMeetSDK",
|
||||||
|
"${PODS_XCFRAMEWORKS_BUILD_DIR}/JitsiWebRTC/WebRTC.framework/WebRTC",
|
||||||
|
"${PODS_XCFRAMEWORKS_BUILD_DIR}/OpenSSL-Universal/OpenSSL.framework/OpenSSL",
|
||||||
|
"${PODS_XCFRAMEWORKS_BUILD_DIR}/hermes-engine/hermes.framework/hermes",
|
||||||
|
);
|
||||||
|
name = "[CP] Embed Pods Frameworks";
|
||||||
|
outputPaths = (
|
||||||
|
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/JitsiMeetSDK.framework",
|
||||||
|
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/WebRTC.framework",
|
||||||
|
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OpenSSL.framework",
|
||||||
|
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/hermes.framework",
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
shellPath = /bin/sh;
|
||||||
|
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-defaults-RocketChatRN/Pods-defaults-RocketChatRN-frameworks.sh\"\n";
|
||||||
showEnvVarsInLog = 0;
|
showEnvVarsInLog = 0;
|
||||||
};
|
};
|
||||||
7A10288726B1D15200E47EF8 /* Upload source maps to Bugsnag */ = {
|
7A10288726B1D15200E47EF8 /* Upload source maps to Bugsnag */ = {
|
||||||
|
@ -1090,177 +1138,7 @@
|
||||||
shellPath = /bin/sh;
|
shellPath = /bin/sh;
|
||||||
shellScript = "SOURCE_MAP=\"$TMPDIR/$(md5 -qs \"$CONFIGURATION_BUILD_DIR\")-main.jsbundle.map\" ../node_modules/@bugsnag/react-native/bugsnag-react-native-xcode.sh\n";
|
shellScript = "SOURCE_MAP=\"$TMPDIR/$(md5 -qs \"$CONFIGURATION_BUILD_DIR\")-main.jsbundle.map\" ../node_modules/@bugsnag/react-native/bugsnag-react-native-xcode.sh\n";
|
||||||
};
|
};
|
||||||
943E61A9039C6FE02871CAD9 /* [CP] Check Pods Manifest.lock */ = {
|
8DAD9AEDB28EC0ED2C88DCF8 /* [CP] Copy Pods Resources */ = {
|
||||||
isa = PBXShellScriptBuildPhase;
|
|
||||||
buildActionMask = 2147483647;
|
|
||||||
files = (
|
|
||||||
);
|
|
||||||
inputFileListPaths = (
|
|
||||||
);
|
|
||||||
inputPaths = (
|
|
||||||
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
|
|
||||||
"${PODS_ROOT}/Manifest.lock",
|
|
||||||
);
|
|
||||||
name = "[CP] Check Pods Manifest.lock";
|
|
||||||
outputFileListPaths = (
|
|
||||||
);
|
|
||||||
outputPaths = (
|
|
||||||
"$(DERIVED_FILE_DIR)/Pods-defaults-ShareRocketChatRN-checkManifestLockResult.txt",
|
|
||||||
);
|
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
|
||||||
shellPath = /bin/sh;
|
|
||||||
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
|
|
||||||
showEnvVarsInLog = 0;
|
|
||||||
};
|
|
||||||
996816F401E32166714ABD9E /* [CP] Copy Pods Resources */ = {
|
|
||||||
isa = PBXShellScriptBuildPhase;
|
|
||||||
buildActionMask = 2147483647;
|
|
||||||
files = (
|
|
||||||
);
|
|
||||||
inputPaths = (
|
|
||||||
"${PODS_ROOT}/Target Support Files/Pods-defaults-NotificationService/Pods-defaults-NotificationService-resources.sh",
|
|
||||||
"${PODS_CONFIGURATION_BUILD_DIR}/RNImageCropPicker/QBImagePicker.bundle",
|
|
||||||
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/AntDesign.ttf",
|
|
||||||
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Entypo.ttf",
|
|
||||||
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/EvilIcons.ttf",
|
|
||||||
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Feather.ttf",
|
|
||||||
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome.ttf",
|
|
||||||
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Brands.ttf",
|
|
||||||
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Regular.ttf",
|
|
||||||
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Solid.ttf",
|
|
||||||
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Fontisto.ttf",
|
|
||||||
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Foundation.ttf",
|
|
||||||
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Ionicons.ttf",
|
|
||||||
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/MaterialCommunityIcons.ttf",
|
|
||||||
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/MaterialIcons.ttf",
|
|
||||||
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Octicons.ttf",
|
|
||||||
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/SimpleLineIcons.ttf",
|
|
||||||
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Zocial.ttf",
|
|
||||||
"${PODS_CONFIGURATION_BUILD_DIR}/React-Core/AccessibilityResources.bundle",
|
|
||||||
"${PODS_CONFIGURATION_BUILD_DIR}/TOCropViewController/TOCropViewControllerBundle.bundle",
|
|
||||||
"${PODS_CONFIGURATION_BUILD_DIR}/iosMath/mathFonts.bundle",
|
|
||||||
);
|
|
||||||
name = "[CP] Copy Pods Resources";
|
|
||||||
outputPaths = (
|
|
||||||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/QBImagePicker.bundle",
|
|
||||||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AntDesign.ttf",
|
|
||||||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Entypo.ttf",
|
|
||||||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/EvilIcons.ttf",
|
|
||||||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Feather.ttf",
|
|
||||||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome.ttf",
|
|
||||||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Brands.ttf",
|
|
||||||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Regular.ttf",
|
|
||||||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Solid.ttf",
|
|
||||||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Fontisto.ttf",
|
|
||||||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Foundation.ttf",
|
|
||||||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Ionicons.ttf",
|
|
||||||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MaterialCommunityIcons.ttf",
|
|
||||||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MaterialIcons.ttf",
|
|
||||||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Octicons.ttf",
|
|
||||||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/SimpleLineIcons.ttf",
|
|
||||||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Zocial.ttf",
|
|
||||||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AccessibilityResources.bundle",
|
|
||||||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/TOCropViewControllerBundle.bundle",
|
|
||||||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/mathFonts.bundle",
|
|
||||||
);
|
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
|
||||||
shellPath = /bin/sh;
|
|
||||||
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-defaults-NotificationService/Pods-defaults-NotificationService-resources.sh\"\n";
|
|
||||||
showEnvVarsInLog = 0;
|
|
||||||
};
|
|
||||||
AAFC671179263417C34C729A /* [CP] Check Pods Manifest.lock */ = {
|
|
||||||
isa = PBXShellScriptBuildPhase;
|
|
||||||
buildActionMask = 2147483647;
|
|
||||||
files = (
|
|
||||||
);
|
|
||||||
inputFileListPaths = (
|
|
||||||
);
|
|
||||||
inputPaths = (
|
|
||||||
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
|
|
||||||
"${PODS_ROOT}/Manifest.lock",
|
|
||||||
);
|
|
||||||
name = "[CP] Check Pods Manifest.lock";
|
|
||||||
outputFileListPaths = (
|
|
||||||
);
|
|
||||||
outputPaths = (
|
|
||||||
"$(DERIVED_FILE_DIR)/Pods-defaults-NotificationService-checkManifestLockResult.txt",
|
|
||||||
);
|
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
|
||||||
shellPath = /bin/sh;
|
|
||||||
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
|
|
||||||
showEnvVarsInLog = 0;
|
|
||||||
};
|
|
||||||
CCA2F3534731DC8EE1FAB416 /* [CP] Embed Pods Frameworks */ = {
|
|
||||||
isa = PBXShellScriptBuildPhase;
|
|
||||||
buildActionMask = 2147483647;
|
|
||||||
files = (
|
|
||||||
);
|
|
||||||
inputPaths = (
|
|
||||||
"${PODS_ROOT}/Target Support Files/Pods-defaults-Rocket.Chat/Pods-defaults-Rocket.Chat-frameworks.sh",
|
|
||||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/JitsiMeetSDK/JitsiMeetSDK.framework/JitsiMeetSDK",
|
|
||||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/JitsiMeetSDK/WebRTC.framework/WebRTC",
|
|
||||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/OpenSSL-Universal/OpenSSL.framework/OpenSSL",
|
|
||||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/hermes-engine/hermes.framework/hermes",
|
|
||||||
);
|
|
||||||
name = "[CP] Embed Pods Frameworks";
|
|
||||||
outputPaths = (
|
|
||||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/JitsiMeetSDK.framework",
|
|
||||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/WebRTC.framework",
|
|
||||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OpenSSL.framework",
|
|
||||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/hermes.framework",
|
|
||||||
);
|
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
|
||||||
shellPath = /bin/sh;
|
|
||||||
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-defaults-Rocket.Chat/Pods-defaults-Rocket.Chat-frameworks.sh\"\n";
|
|
||||||
showEnvVarsInLog = 0;
|
|
||||||
};
|
|
||||||
CDFA7A6FA541A8BED7CE9EE7 /* [CP] Check Pods Manifest.lock */ = {
|
|
||||||
isa = PBXShellScriptBuildPhase;
|
|
||||||
buildActionMask = 2147483647;
|
|
||||||
files = (
|
|
||||||
);
|
|
||||||
inputFileListPaths = (
|
|
||||||
);
|
|
||||||
inputPaths = (
|
|
||||||
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
|
|
||||||
"${PODS_ROOT}/Manifest.lock",
|
|
||||||
);
|
|
||||||
name = "[CP] Check Pods Manifest.lock";
|
|
||||||
outputFileListPaths = (
|
|
||||||
);
|
|
||||||
outputPaths = (
|
|
||||||
"$(DERIVED_FILE_DIR)/Pods-defaults-Rocket.Chat-checkManifestLockResult.txt",
|
|
||||||
);
|
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
|
||||||
shellPath = /bin/sh;
|
|
||||||
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
|
|
||||||
showEnvVarsInLog = 0;
|
|
||||||
};
|
|
||||||
DE93C39DFDB4F3759B84670D /* [CP] Embed Pods Frameworks */ = {
|
|
||||||
isa = PBXShellScriptBuildPhase;
|
|
||||||
buildActionMask = 2147483647;
|
|
||||||
files = (
|
|
||||||
);
|
|
||||||
inputPaths = (
|
|
||||||
"${PODS_ROOT}/Target Support Files/Pods-defaults-RocketChatRN/Pods-defaults-RocketChatRN-frameworks.sh",
|
|
||||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/JitsiMeetSDK/JitsiMeetSDK.framework/JitsiMeetSDK",
|
|
||||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/JitsiMeetSDK/WebRTC.framework/WebRTC",
|
|
||||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/OpenSSL-Universal/OpenSSL.framework/OpenSSL",
|
|
||||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/hermes-engine/hermes.framework/hermes",
|
|
||||||
);
|
|
||||||
name = "[CP] Embed Pods Frameworks";
|
|
||||||
outputPaths = (
|
|
||||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/JitsiMeetSDK.framework",
|
|
||||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/WebRTC.framework",
|
|
||||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OpenSSL.framework",
|
|
||||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/hermes.framework",
|
|
||||||
);
|
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
|
||||||
shellPath = /bin/sh;
|
|
||||||
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-defaults-RocketChatRN/Pods-defaults-RocketChatRN-frameworks.sh\"\n";
|
|
||||||
showEnvVarsInLog = 0;
|
|
||||||
};
|
|
||||||
DEE9CFB76371CE33773CB435 /* [CP] Copy Pods Resources */ = {
|
|
||||||
isa = PBXShellScriptBuildPhase;
|
isa = PBXShellScriptBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
|
@ -1316,7 +1194,109 @@
|
||||||
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-defaults-Rocket.Chat/Pods-defaults-Rocket.Chat-resources.sh\"\n";
|
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-defaults-Rocket.Chat/Pods-defaults-Rocket.Chat-resources.sh\"\n";
|
||||||
showEnvVarsInLog = 0;
|
showEnvVarsInLog = 0;
|
||||||
};
|
};
|
||||||
E368867D90711EA1666BFF6A /* [CP] Check Pods Manifest.lock */ = {
|
8F1EAEDED27E942D30510BAC /* [CP] Copy Pods Resources */ = {
|
||||||
|
isa = PBXShellScriptBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
inputPaths = (
|
||||||
|
"${PODS_ROOT}/Target Support Files/Pods-defaults-RocketChatRN/Pods-defaults-RocketChatRN-resources.sh",
|
||||||
|
"${PODS_CONFIGURATION_BUILD_DIR}/RNImageCropPicker/QBImagePicker.bundle",
|
||||||
|
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/AntDesign.ttf",
|
||||||
|
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Entypo.ttf",
|
||||||
|
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/EvilIcons.ttf",
|
||||||
|
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Feather.ttf",
|
||||||
|
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome.ttf",
|
||||||
|
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Brands.ttf",
|
||||||
|
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Regular.ttf",
|
||||||
|
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Solid.ttf",
|
||||||
|
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Fontisto.ttf",
|
||||||
|
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Foundation.ttf",
|
||||||
|
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Ionicons.ttf",
|
||||||
|
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/MaterialCommunityIcons.ttf",
|
||||||
|
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/MaterialIcons.ttf",
|
||||||
|
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Octicons.ttf",
|
||||||
|
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/SimpleLineIcons.ttf",
|
||||||
|
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Zocial.ttf",
|
||||||
|
"${PODS_CONFIGURATION_BUILD_DIR}/React-Core/AccessibilityResources.bundle",
|
||||||
|
"${PODS_CONFIGURATION_BUILD_DIR}/TOCropViewController/TOCropViewControllerBundle.bundle",
|
||||||
|
"${PODS_CONFIGURATION_BUILD_DIR}/iosMath/mathFonts.bundle",
|
||||||
|
);
|
||||||
|
name = "[CP] Copy Pods Resources";
|
||||||
|
outputPaths = (
|
||||||
|
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/QBImagePicker.bundle",
|
||||||
|
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AntDesign.ttf",
|
||||||
|
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Entypo.ttf",
|
||||||
|
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/EvilIcons.ttf",
|
||||||
|
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Feather.ttf",
|
||||||
|
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome.ttf",
|
||||||
|
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Brands.ttf",
|
||||||
|
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Regular.ttf",
|
||||||
|
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Solid.ttf",
|
||||||
|
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Fontisto.ttf",
|
||||||
|
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Foundation.ttf",
|
||||||
|
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Ionicons.ttf",
|
||||||
|
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MaterialCommunityIcons.ttf",
|
||||||
|
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MaterialIcons.ttf",
|
||||||
|
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Octicons.ttf",
|
||||||
|
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/SimpleLineIcons.ttf",
|
||||||
|
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Zocial.ttf",
|
||||||
|
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AccessibilityResources.bundle",
|
||||||
|
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/TOCropViewControllerBundle.bundle",
|
||||||
|
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/mathFonts.bundle",
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
shellPath = /bin/sh;
|
||||||
|
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-defaults-RocketChatRN/Pods-defaults-RocketChatRN-resources.sh\"\n";
|
||||||
|
showEnvVarsInLog = 0;
|
||||||
|
};
|
||||||
|
A21BC8746245EB1E7D8722FF /* [CP] Check Pods Manifest.lock */ = {
|
||||||
|
isa = PBXShellScriptBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
inputFileListPaths = (
|
||||||
|
);
|
||||||
|
inputPaths = (
|
||||||
|
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
|
||||||
|
"${PODS_ROOT}/Manifest.lock",
|
||||||
|
);
|
||||||
|
name = "[CP] Check Pods Manifest.lock";
|
||||||
|
outputFileListPaths = (
|
||||||
|
);
|
||||||
|
outputPaths = (
|
||||||
|
"$(DERIVED_FILE_DIR)/Pods-defaults-Rocket.Chat-checkManifestLockResult.txt",
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
shellPath = /bin/sh;
|
||||||
|
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
|
||||||
|
showEnvVarsInLog = 0;
|
||||||
|
};
|
||||||
|
C1E9B0B4B7CD33AA69C229F5 /* [CP] Embed Pods Frameworks */ = {
|
||||||
|
isa = PBXShellScriptBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
inputPaths = (
|
||||||
|
"${PODS_ROOT}/Target Support Files/Pods-defaults-Rocket.Chat/Pods-defaults-Rocket.Chat-frameworks.sh",
|
||||||
|
"${PODS_XCFRAMEWORKS_BUILD_DIR}/JitsiMeetSDKLite/JitsiMeetSDK.framework/JitsiMeetSDK",
|
||||||
|
"${PODS_XCFRAMEWORKS_BUILD_DIR}/JitsiWebRTC/WebRTC.framework/WebRTC",
|
||||||
|
"${PODS_XCFRAMEWORKS_BUILD_DIR}/OpenSSL-Universal/OpenSSL.framework/OpenSSL",
|
||||||
|
"${PODS_XCFRAMEWORKS_BUILD_DIR}/hermes-engine/hermes.framework/hermes",
|
||||||
|
);
|
||||||
|
name = "[CP] Embed Pods Frameworks";
|
||||||
|
outputPaths = (
|
||||||
|
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/JitsiMeetSDK.framework",
|
||||||
|
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/WebRTC.framework",
|
||||||
|
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OpenSSL.framework",
|
||||||
|
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/hermes.framework",
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
shellPath = /bin/sh;
|
||||||
|
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-defaults-Rocket.Chat/Pods-defaults-Rocket.Chat-frameworks.sh\"\n";
|
||||||
|
showEnvVarsInLog = 0;
|
||||||
|
};
|
||||||
|
DE29ABAFC51FDE8111D6F9EC /* [CP] Check Pods Manifest.lock */ = {
|
||||||
isa = PBXShellScriptBuildPhase;
|
isa = PBXShellScriptBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
|
@ -1338,6 +1318,28 @@
|
||||||
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
|
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
|
||||||
showEnvVarsInLog = 0;
|
showEnvVarsInLog = 0;
|
||||||
};
|
};
|
||||||
|
FAE0F7AA2756A4362BC5B30B /* [CP] Check Pods Manifest.lock */ = {
|
||||||
|
isa = PBXShellScriptBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
inputFileListPaths = (
|
||||||
|
);
|
||||||
|
inputPaths = (
|
||||||
|
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
|
||||||
|
"${PODS_ROOT}/Manifest.lock",
|
||||||
|
);
|
||||||
|
name = "[CP] Check Pods Manifest.lock";
|
||||||
|
outputFileListPaths = (
|
||||||
|
);
|
||||||
|
outputPaths = (
|
||||||
|
"$(DERIVED_FILE_DIR)/Pods-defaults-ShareRocketChatRN-checkManifestLockResult.txt",
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
shellPath = /bin/sh;
|
||||||
|
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
|
||||||
|
showEnvVarsInLog = 0;
|
||||||
|
};
|
||||||
/* End PBXShellScriptBuildPhase section */
|
/* End PBXShellScriptBuildPhase section */
|
||||||
|
|
||||||
/* Begin PBXSourcesBuildPhase section */
|
/* Begin PBXSourcesBuildPhase section */
|
||||||
|
@ -1495,7 +1497,7 @@
|
||||||
/* Begin XCBuildConfiguration section */
|
/* Begin XCBuildConfiguration section */
|
||||||
13B07F941A680F5B00A75B9A /* Debug */ = {
|
13B07F941A680F5B00A75B9A /* Debug */ = {
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
baseConfigurationReference = 48A6FD916DB2F924F1360A4A /* Pods-defaults-RocketChatRN.debug.xcconfig */;
|
baseConfigurationReference = 4E3D7377D5EE259A4C9889A7 /* Pods-defaults-RocketChatRN.debug.xcconfig */;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||||
APPLICATION_EXTENSION_API_ONLY = NO;
|
APPLICATION_EXTENSION_API_ONLY = NO;
|
||||||
|
@ -1552,7 +1554,7 @@
|
||||||
};
|
};
|
||||||
13B07F951A680F5B00A75B9A /* Release */ = {
|
13B07F951A680F5B00A75B9A /* Release */ = {
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
baseConfigurationReference = AC87BFDE8CC75468C2E87328 /* Pods-defaults-RocketChatRN.release.xcconfig */;
|
baseConfigurationReference = 496B9AFC1A3BFACA18566761 /* Pods-defaults-RocketChatRN.release.xcconfig */;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||||
APPLICATION_EXTENSION_API_ONLY = NO;
|
APPLICATION_EXTENSION_API_ONLY = NO;
|
||||||
|
@ -1608,8 +1610,9 @@
|
||||||
};
|
};
|
||||||
1EC6ACBC22CB9FC300A41C61 /* Debug */ = {
|
1EC6ACBC22CB9FC300A41C61 /* Debug */ = {
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
baseConfigurationReference = C84BF59D4FEA8C08AD41906D /* Pods-defaults-ShareRocketChatRN.debug.xcconfig */;
|
baseConfigurationReference = B2632520781ADB17C1AC1FAC /* Pods-defaults-ShareRocketChatRN.debug.xcconfig */;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
|
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(EMBEDDED_CONTENT_CONTAINS_SWIFT)";
|
||||||
APPLICATION_EXTENSION_API_ONLY = YES;
|
APPLICATION_EXTENSION_API_ONLY = YES;
|
||||||
CLANG_ANALYZER_NONNULL = YES;
|
CLANG_ANALYZER_NONNULL = YES;
|
||||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||||
|
@ -1676,8 +1679,9 @@
|
||||||
};
|
};
|
||||||
1EC6ACBD22CB9FC300A41C61 /* Release */ = {
|
1EC6ACBD22CB9FC300A41C61 /* Release */ = {
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
baseConfigurationReference = 94EB1DBE281212E61157DDEE /* Pods-defaults-ShareRocketChatRN.release.xcconfig */;
|
baseConfigurationReference = D49C1A8553D7BEA6FA98C6B9 /* Pods-defaults-ShareRocketChatRN.release.xcconfig */;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
|
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(EMBEDDED_CONTENT_CONTAINS_SWIFT)";
|
||||||
APPLICATION_EXTENSION_API_ONLY = YES;
|
APPLICATION_EXTENSION_API_ONLY = YES;
|
||||||
CLANG_ANALYZER_NONNULL = YES;
|
CLANG_ANALYZER_NONNULL = YES;
|
||||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||||
|
@ -1734,7 +1738,7 @@
|
||||||
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
|
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = chat.rocket.reactnative.ShareExtension;
|
PRODUCT_BUNDLE_IDENTIFIER = chat.rocket.reactnative.ShareExtension;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
PROVISIONING_PROFILE_SPECIFIER = "match AppStore chat.rocket.reactnative.ShareExtension";
|
PROVISIONING_PROFILE_SPECIFIER = "chat.rocket.reactnative.ShareExtension AppStore";
|
||||||
SKIP_INSTALL = YES;
|
SKIP_INSTALL = YES;
|
||||||
SWIFT_VERSION = 5.0;
|
SWIFT_VERSION = 5.0;
|
||||||
TARGETED_DEVICE_FAMILY = "1,2";
|
TARGETED_DEVICE_FAMILY = "1,2";
|
||||||
|
@ -1743,8 +1747,9 @@
|
||||||
};
|
};
|
||||||
1EFEB59D2493B6640072EDC0 /* Debug */ = {
|
1EFEB59D2493B6640072EDC0 /* Debug */ = {
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
baseConfigurationReference = 8009E8CCFAA4804CCED401D8 /* Pods-defaults-NotificationService.debug.xcconfig */;
|
baseConfigurationReference = B90637B65093B8C2B7C93A26 /* Pods-defaults-NotificationService.debug.xcconfig */;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
|
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(EMBEDDED_CONTENT_CONTAINS_SWIFT)";
|
||||||
CLANG_ANALYZER_NONNULL = YES;
|
CLANG_ANALYZER_NONNULL = YES;
|
||||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
||||||
|
@ -1762,7 +1767,7 @@
|
||||||
INFOPLIST_FILE = NotificationService/Info.plist;
|
INFOPLIST_FILE = NotificationService/Info.plist;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
|
||||||
MARKETING_VERSION = 4.34.0;
|
MARKETING_VERSION = 4.35.0;
|
||||||
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
|
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
|
||||||
MTL_FAST_MATH = YES;
|
MTL_FAST_MATH = YES;
|
||||||
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG";
|
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG";
|
||||||
|
@ -1780,8 +1785,9 @@
|
||||||
};
|
};
|
||||||
1EFEB59E2493B6640072EDC0 /* Release */ = {
|
1EFEB59E2493B6640072EDC0 /* Release */ = {
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
baseConfigurationReference = 7E01AFB7FFC99A24DE24A9E7 /* Pods-defaults-NotificationService.release.xcconfig */;
|
baseConfigurationReference = CEDD8A84B710A696B2834686 /* Pods-defaults-NotificationService.release.xcconfig */;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
|
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(EMBEDDED_CONTENT_CONTAINS_SWIFT)";
|
||||||
CLANG_ANALYZER_NONNULL = YES;
|
CLANG_ANALYZER_NONNULL = YES;
|
||||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
||||||
|
@ -1801,12 +1807,12 @@
|
||||||
INFOPLIST_FILE = NotificationService/Info.plist;
|
INFOPLIST_FILE = NotificationService/Info.plist;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
|
||||||
MARKETING_VERSION = 4.34.0;
|
MARKETING_VERSION = 4.35.0;
|
||||||
MTL_FAST_MATH = YES;
|
MTL_FAST_MATH = YES;
|
||||||
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
|
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = chat.rocket.reactnative.NotificationService;
|
PRODUCT_BUNDLE_IDENTIFIER = chat.rocket.reactnative.NotificationService;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
PROVISIONING_PROFILE_SPECIFIER = "match AppStore chat.rocket.reactnative.NotificationService";
|
PROVISIONING_PROFILE_SPECIFIER = "chat.rocket.reactnative.NotificationService AppStore";
|
||||||
SKIP_INSTALL = YES;
|
SKIP_INSTALL = YES;
|
||||||
SWIFT_OBJC_BRIDGING_HEADER = "NotificationService/NotificationService-Bridging-Header.h";
|
SWIFT_OBJC_BRIDGING_HEADER = "NotificationService/NotificationService-Bridging-Header.h";
|
||||||
SWIFT_OPTIMIZATION_LEVEL = "-O";
|
SWIFT_OPTIMIZATION_LEVEL = "-O";
|
||||||
|
@ -1817,7 +1823,7 @@
|
||||||
};
|
};
|
||||||
7AAB3E50257E6A6E00707CF6 /* Debug */ = {
|
7AAB3E50257E6A6E00707CF6 /* Debug */ = {
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
baseConfigurationReference = 04CABACAE3DF5FF44121FC30 /* Pods-defaults-Rocket.Chat.debug.xcconfig */;
|
baseConfigurationReference = B387EBF6D5D60163EA71AE10 /* Pods-defaults-Rocket.Chat.debug.xcconfig */;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||||
APPLICATION_EXTENSION_API_ONLY = NO;
|
APPLICATION_EXTENSION_API_ONLY = NO;
|
||||||
|
@ -1871,7 +1877,7 @@
|
||||||
};
|
};
|
||||||
7AAB3E51257E6A6E00707CF6 /* Release */ = {
|
7AAB3E51257E6A6E00707CF6 /* Release */ = {
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
baseConfigurationReference = 3AD43034372030994471D0E9 /* Pods-defaults-Rocket.Chat.release.xcconfig */;
|
baseConfigurationReference = 06C3117EECD04F11CB1C29A9 /* Pods-defaults-Rocket.Chat.release.xcconfig */;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||||
APPLICATION_EXTENSION_API_ONLY = NO;
|
APPLICATION_EXTENSION_API_ONLY = NO;
|
||||||
|
|
|
@ -55,16 +55,18 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
|
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
|
||||||
UIViewController *rootViewController = [self.reactDelegate createRootViewController];
|
UIViewController *rootViewController = [UIViewController new];
|
||||||
|
UINavigationController *navigationController = [[UINavigationController alloc]initWithRootViewController:rootViewController];
|
||||||
|
navigationController.navigationBarHidden = YES;
|
||||||
rootViewController.view = rootView;
|
rootViewController.view = rootView;
|
||||||
self.window.rootViewController = rootViewController;
|
self.window.rootViewController = navigationController;
|
||||||
[self.window makeKeyAndVisible];
|
[self.window makeKeyAndVisible];
|
||||||
[RNNotifications startMonitorNotifications];
|
[RNNotifications startMonitorNotifications];
|
||||||
[ReplyNotification configure];
|
[ReplyNotification configure];
|
||||||
|
|
||||||
// AppGroup MMKV
|
// AppGroup MMKV
|
||||||
NSString *groupDir = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:[[NSBundle mainBundle] objectForInfoDictionaryKey:@"AppGroup"]].path;
|
NSString *groupDir = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:[[NSBundle mainBundle] objectForInfoDictionaryKey:@"AppGroup"]].path;
|
||||||
[MMKV initializeMMKV:nil groupDir:groupDir logLevel:MMKVLogNone];
|
[MMKV initializeMMKV:nil groupDir:groupDir logLevel:MMKVLogInfo];
|
||||||
|
|
||||||
[RNBootSplash initWithStoryboard:@"LaunchScreen" rootView:rootView];
|
[RNBootSplash initWithStoryboard:@"LaunchScreen" rootView:rootView];
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
<key>CFBundlePackageType</key>
|
<key>CFBundlePackageType</key>
|
||||||
<string>APPL</string>
|
<string>APPL</string>
|
||||||
<key>CFBundleShortVersionString</key>
|
<key>CFBundleShortVersionString</key>
|
||||||
<string>4.34.0</string>
|
<string>4.35.0</string>
|
||||||
<key>CFBundleSignature</key>
|
<key>CFBundleSignature</key>
|
||||||
<string>????</string>
|
<string>????</string>
|
||||||
<key>CFBundleURLTypes</key>
|
<key>CFBundleURLTypes</key>
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
<key>CFBundlePackageType</key>
|
<key>CFBundlePackageType</key>
|
||||||
<string>XPC!</string>
|
<string>XPC!</string>
|
||||||
<key>CFBundleShortVersionString</key>
|
<key>CFBundleShortVersionString</key>
|
||||||
<string>4.34.0</string>
|
<string>4.35.0</string>
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>1</string>
|
<string>1</string>
|
||||||
<key>KeychainGroup</key>
|
<key>KeychainGroup</key>
|
||||||
|
|
|
@ -44,7 +44,7 @@ RCT_EXPORT_MODULE();
|
||||||
|
|
||||||
// AppGroup MMKV
|
// AppGroup MMKV
|
||||||
NSString *groupDir = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:[[NSBundle mainBundle] objectForInfoDictionaryKey:@"AppGroup"]].path;
|
NSString *groupDir = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:[[NSBundle mainBundle] objectForInfoDictionaryKey:@"AppGroup"]].path;
|
||||||
[MMKV initializeMMKV:nil groupDir:groupDir logLevel:MMKVLogNone];
|
[MMKV initializeMMKV:nil groupDir:groupDir logLevel:MMKVLogInfo];
|
||||||
|
|
||||||
return rootView;
|
return rootView;
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,8 +28,8 @@ platform :ios do
|
||||||
desc "Submit a new Beta Build to Apple TestFlight"
|
desc "Submit a new Beta Build to Apple TestFlight"
|
||||||
lane :beta do |options|
|
lane :beta do |options|
|
||||||
api_key = app_store_connect_api_key(
|
api_key = app_store_connect_api_key(
|
||||||
key_id: "F296L2294Y",
|
key_id: ENV["APP_STORE_CONNECT_API_KEY_ID"],
|
||||||
issuer_id: "69a6de8e-75cf-47e3-e053-5b8c7c11a4d1",
|
issuer_id: ENV["APP_STORE_CONNECT_API_KEY_ISSUER_ID"],
|
||||||
key_filepath: 'fastlane/app_store_connect_api_key.p8',
|
key_filepath: 'fastlane/app_store_connect_api_key.p8',
|
||||||
in_house: false
|
in_house: false
|
||||||
)
|
)
|
||||||
|
@ -49,8 +49,8 @@ platform :ios do
|
||||||
desc "Build Experimental app"
|
desc "Build Experimental app"
|
||||||
lane :build_experimental do
|
lane :build_experimental do
|
||||||
api_key = app_store_connect_api_key(
|
api_key = app_store_connect_api_key(
|
||||||
key_id: "F296L2294Y",
|
key_id: ENV["APP_STORE_CONNECT_API_KEY_ID"],
|
||||||
issuer_id: "69a6de8e-75cf-47e3-e053-5b8c7c11a4d1",
|
issuer_id: ENV["APP_STORE_CONNECT_API_KEY_ISSUER_ID"],
|
||||||
key_filepath: 'fastlane/app_store_connect_api_key.p8',
|
key_filepath: 'fastlane/app_store_connect_api_key.p8',
|
||||||
in_house: false
|
in_house: false
|
||||||
)
|
)
|
||||||
|
|
10
package.json
10
package.json
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "rocket-chat-reactnative",
|
"name": "rocket-chat-reactnative",
|
||||||
"version": "4.34.0",
|
"version": "4.35.0",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "react-native start",
|
"start": "react-native start",
|
||||||
|
@ -55,6 +55,7 @@
|
||||||
"@rocket.chat/message-parser": "^0.31.14",
|
"@rocket.chat/message-parser": "^0.31.14",
|
||||||
"@rocket.chat/sdk": "RocketChat/Rocket.Chat.js.SDK#mobile",
|
"@rocket.chat/sdk": "RocketChat/Rocket.Chat.js.SDK#mobile",
|
||||||
"@rocket.chat/ui-kit": "^0.31.19",
|
"@rocket.chat/ui-kit": "^0.31.19",
|
||||||
|
"@socialcode-rob1/react-native-jitsimeet-custom": "socialcode-rob1/react-native-jitsimeet-custom.git",
|
||||||
"bytebuffer": "^5.0.1",
|
"bytebuffer": "^5.0.1",
|
||||||
"color2k": "1.2.4",
|
"color2k": "1.2.4",
|
||||||
"commonmark": "git+https://github.com/RocketChat/commonmark.js.git",
|
"commonmark": "git+https://github.com/RocketChat/commonmark.js.git",
|
||||||
|
@ -81,13 +82,13 @@
|
||||||
"prop-types": "15.7.2",
|
"prop-types": "15.7.2",
|
||||||
"react": "17.0.2",
|
"react": "17.0.2",
|
||||||
"react-hook-form": "^7.34.2",
|
"react-hook-form": "^7.34.2",
|
||||||
"react-native": "RocketChat/react-native#0.68.2",
|
"react-native": "RocketChat/react-native#281140d2e39d66a8e486db397ce0bf5bd0e334fc",
|
||||||
"react-native-animatable": "^1.3.3",
|
"react-native-animatable": "^1.3.3",
|
||||||
"react-native-background-timer": "2.4.1",
|
"react-native-background-timer": "2.4.1",
|
||||||
"react-native-bootsplash": "^4.3.3",
|
"react-native-bootsplash": "^4.3.3",
|
||||||
"react-native-config-reader": "^4.1.1",
|
"react-native-config-reader": "^4.1.1",
|
||||||
"react-native-console-time-polyfill": "1.2.3",
|
"react-native-console-time-polyfill": "1.2.3",
|
||||||
"react-native-device-info": "8.4.8",
|
"react-native-device-info": "^10.3.0",
|
||||||
"react-native-document-picker": "^8.1.2",
|
"react-native-document-picker": "^8.1.2",
|
||||||
"react-native-easy-grid": "^0.2.2",
|
"react-native-easy-grid": "^0.2.2",
|
||||||
"react-native-easy-toast": "^1.2.0",
|
"react-native-easy-toast": "^1.2.0",
|
||||||
|
@ -96,7 +97,6 @@
|
||||||
"react-native-gesture-handler": "2.4.2",
|
"react-native-gesture-handler": "2.4.2",
|
||||||
"react-native-image-crop-picker": "RocketChat/react-native-image-crop-picker",
|
"react-native-image-crop-picker": "RocketChat/react-native-image-crop-picker",
|
||||||
"react-native-image-progress": "^1.1.1",
|
"react-native-image-progress": "^1.1.1",
|
||||||
"react-native-jitsi-meet": "RocketChat/react-native-jitsi-meet",
|
|
||||||
"react-native-keycommands": "2.0.3",
|
"react-native-keycommands": "2.0.3",
|
||||||
"react-native-linear-gradient": "^2.6.2",
|
"react-native-linear-gradient": "^2.6.2",
|
||||||
"react-native-localize": "2.1.1",
|
"react-native-localize": "2.1.1",
|
||||||
|
@ -134,7 +134,7 @@
|
||||||
"remove-markdown": "^0.3.0",
|
"remove-markdown": "^0.3.0",
|
||||||
"reselect": "4.0.0",
|
"reselect": "4.0.0",
|
||||||
"rn-extensions-share": "RocketChat/rn-extensions-share",
|
"rn-extensions-share": "RocketChat/rn-extensions-share",
|
||||||
"rn-fetch-blob": "0.12.0",
|
"rn-fetch-blob": "^0.12.0",
|
||||||
"rn-root-view": "RocketChat/rn-root-view",
|
"rn-root-view": "RocketChat/rn-root-view",
|
||||||
"semver": "^7.3.8",
|
"semver": "^7.3.8",
|
||||||
"ua-parser-js": "^1.0.32",
|
"ua-parser-js": "^1.0.32",
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
diff --git a/node_modules/@socialcode-rob1/react-native-jitsimeet-custom/react-native-jitsimeet-custom.podspec b/node_modules/@socialcode-rob1/react-native-jitsimeet-custom/react-native-jitsimeet-custom.podspec
|
||||||
|
index 80a584b..5b2f71c 100644
|
||||||
|
--- a/node_modules/@socialcode-rob1/react-native-jitsimeet-custom/react-native-jitsimeet-custom.podspec
|
||||||
|
+++ b/node_modules/@socialcode-rob1/react-native-jitsimeet-custom/react-native-jitsimeet-custom.podspec
|
||||||
|
@@ -16,5 +16,5 @@ Pod::Spec.new do |s|
|
||||||
|
s.source_files = "ios/**/*.{h,m,mm,swift}"
|
||||||
|
|
||||||
|
s.dependency "React-Core"
|
||||||
|
- s.dependency 'JitsiMeetSDK', '6.2.2'
|
||||||
|
+ s.dependency 'JitsiMeetSDKLite', '7.0.1-lite'
|
||||||
|
end
|
|
@ -1,5 +1,5 @@
|
||||||
diff --git a/node_modules/react-native-mmkv-storage/ios/SecureStorage.m b/node_modules/react-native-mmkv-storage/ios/SecureStorage.m
|
diff --git a/node_modules/react-native-mmkv-storage/ios/SecureStorage.m b/node_modules/react-native-mmkv-storage/ios/SecureStorage.m
|
||||||
index dbea26b..7b2083c 100644
|
index dbea26b..2483375 100644
|
||||||
--- a/node_modules/react-native-mmkv-storage/ios/SecureStorage.m
|
--- a/node_modules/react-native-mmkv-storage/ios/SecureStorage.m
|
||||||
+++ b/node_modules/react-native-mmkv-storage/ios/SecureStorage.m
|
+++ b/node_modules/react-native-mmkv-storage/ios/SecureStorage.m
|
||||||
@@ -40,14 +40,14 @@ - (NSString *) getSecureKey:(NSString *)key
|
@@ -40,14 +40,14 @@ - (NSString *) getSecureKey:(NSString *)key
|
||||||
|
@ -35,33 +35,3 @@ index dbea26b..7b2083c 100644
|
||||||
if(serviceName == nil){
|
if(serviceName == nil){
|
||||||
serviceName = [[NSBundle mainBundle] bundleIdentifier];
|
serviceName = [[NSBundle mainBundle] bundleIdentifier];
|
||||||
}
|
}
|
||||||
@@ -111,6 +114,9 @@ - (NSMutableDictionary *)newSearchDictionary:(NSString *)identifier {
|
|
||||||
[searchDictionary setObject:encodedIdentifier forKey:(id)kSecAttrAccount];
|
|
||||||
[searchDictionary setObject:serviceName forKey:(id)kSecAttrService];
|
|
||||||
|
|
||||||
+ NSString *keychainGroup = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"KeychainGroup"];
|
|
||||||
+ [searchDictionary setObject:keychainGroup forKey:(id)kSecAttrAccessGroup];
|
|
||||||
+
|
|
||||||
return searchDictionary;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -212,11 +218,14 @@ - (void)clearSecureKeyStore
|
|
||||||
|
|
||||||
- (void)handleAppUninstallation
|
|
||||||
{
|
|
||||||
- // if (![[NSUserDefaults standardUserDefaults] boolForKey:@"RnSksIsAppInstalled"]) {
|
|
||||||
- // [self clearSecureKeyStore];
|
|
||||||
- //[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"IsAppInstalled"];
|
|
||||||
- [[NSUserDefaults standardUserDefaults] synchronize];
|
|
||||||
- // }
|
|
||||||
+ // use app group user defaults to prevent clear when it's share extension
|
|
||||||
+ NSString *suiteName = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"AppGroup"];
|
|
||||||
+ NSUserDefaults *userDefaults = [[NSUserDefaults alloc] initWithSuiteName:suiteName];
|
|
||||||
+ if (![userDefaults boolForKey:@"RnSksIsAppInstalled"]) {
|
|
||||||
+ [self clearSecureKeyStore];
|
|
||||||
+ [userDefaults setBool:YES forKey:@"RnSksIsAppInstalled"];
|
|
||||||
+ [userDefaults synchronize];
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void) setServiceName:(NSString *)_serviceName
|
|
||||||
|
|
|
@ -197,16 +197,16 @@ index 02b4238..e0635ed 100644
|
||||||
+
|
+
|
||||||
+ // https://github.com/ammarahm-ed/react-native-mmkv-storage/blob/master/src/loader.js#L31
|
+ // https://github.com/ammarahm-ed/react-native-mmkv-storage/blob/master/src/loader.js#L31
|
||||||
+ NSString *key = [secureStorage getSecureKey:[self stringToHex:@"com.MMKV.default"]];
|
+ NSString *key = [secureStorage getSecureKey:[self stringToHex:@"com.MMKV.default"]];
|
||||||
|
+ NSURLCredential *credential = [NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust];
|
||||||
+
|
+
|
||||||
+ if (key == NULL) {
|
+ if (key == NULL) {
|
||||||
+ return;
|
+ return completionHandler(NSURLSessionAuthChallengePerformDefaultHandling, credential);
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ NSData *cryptKey = [key dataUsingEncoding:NSUTF8StringEncoding];
|
+ NSData *cryptKey = [key dataUsingEncoding:NSUTF8StringEncoding];
|
||||||
+ MMKV *mmkv = [MMKV mmkvWithID:@"default" cryptKey:cryptKey mode:MMKVMultiProcess];
|
+ MMKV *mmkv = [MMKV mmkvWithID:@"default" cryptKey:cryptKey mode:MMKVMultiProcess];
|
||||||
+ clientSSL = [mmkv getObjectOfClass:[NSDictionary class] forKey:host];
|
+ clientSSL = [mmkv getObjectOfClass:[NSDictionary class] forKey:host];
|
||||||
+
|
+
|
||||||
+ NSURLCredential *credential = [NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust];
|
|
||||||
+
|
+
|
||||||
+ if (clientSSL != (id)[NSNull null]) {
|
+ if (clientSSL != (id)[NSNull null]) {
|
||||||
+ NSString *path = [clientSSL objectForKey:@"path"];
|
+ NSString *path = [clientSSL objectForKey:@"path"];
|
||||||
|
|
|
@ -23,7 +23,7 @@ index 602d51d..920d975 100644
|
||||||
public String getName() {
|
public String getName() {
|
||||||
return "RNFetchBlob";
|
return "RNFetchBlob";
|
||||||
diff --git a/node_modules/rn-fetch-blob/ios/RNFetchBlobRequest.m b/node_modules/rn-fetch-blob/ios/RNFetchBlobRequest.m
|
diff --git a/node_modules/rn-fetch-blob/ios/RNFetchBlobRequest.m b/node_modules/rn-fetch-blob/ios/RNFetchBlobRequest.m
|
||||||
index cdbe6b1..c0ce9bd 100644
|
index cdbe6b1..04e5e7b 100644
|
||||||
--- a/node_modules/rn-fetch-blob/ios/RNFetchBlobRequest.m
|
--- a/node_modules/rn-fetch-blob/ios/RNFetchBlobRequest.m
|
||||||
+++ b/node_modules/rn-fetch-blob/ios/RNFetchBlobRequest.m
|
+++ b/node_modules/rn-fetch-blob/ios/RNFetchBlobRequest.m
|
||||||
@@ -15,6 +15,9 @@
|
@@ -15,6 +15,9 @@
|
||||||
|
@ -118,12 +118,12 @@ index cdbe6b1..c0ce9bd 100644
|
||||||
+
|
+
|
||||||
+ // https://github.com/ammarahm-ed/react-native-mmkv-storage/blob/master/src/loader.js#L31
|
+ // https://github.com/ammarahm-ed/react-native-mmkv-storage/blob/master/src/loader.js#L31
|
||||||
+ NSString *key = [secureStorage getSecureKey:[self stringToHex:@"com.MMKV.default"]];
|
+ NSString *key = [secureStorage getSecureKey:[self stringToHex:@"com.MMKV.default"]];
|
||||||
|
+ NSURLCredential *credential = [NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust];
|
||||||
+
|
+
|
||||||
+ if (key == NULL) {
|
+ if (key == NULL) {
|
||||||
+ return;
|
+ return completionHandler(NSURLSessionAuthChallengePerformDefaultHandling, credential);
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ NSURLCredential *credential = [NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust];
|
|
||||||
+ NSData *cryptKey = [key dataUsingEncoding:NSUTF8StringEncoding];
|
+ NSData *cryptKey = [key dataUsingEncoding:NSUTF8StringEncoding];
|
||||||
+ MMKV *mmkv = [MMKV mmkvWithID:@"default" cryptKey:cryptKey mode:MMKVMultiProcess];
|
+ MMKV *mmkv = [MMKV mmkvWithID:@"default" cryptKey:cryptKey mode:MMKVMultiProcess];
|
||||||
+ clientSSL = [mmkv getStringForKey:host];
|
+ clientSSL = [mmkv getStringForKey:host];
|
||||||
|
|
|
@ -15,7 +15,7 @@ module.exports = {
|
||||||
android: null
|
android: null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
'react-native-jitsi-meet': {
|
'@socialcode-rob1/react-native-jitsimeet-custom': {
|
||||||
platforms: {
|
platforms: {
|
||||||
android: null
|
android: null
|
||||||
}
|
}
|
||||||
|
|
374
yarn.lock
374
yarn.lock
|
@ -66,6 +66,11 @@
|
||||||
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.18.8.tgz#2483f565faca607b8535590e84e7de323f27764d"
|
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.18.8.tgz#2483f565faca607b8535590e84e7de323f27764d"
|
||||||
integrity sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==
|
integrity sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==
|
||||||
|
|
||||||
|
"@babel/compat-data@^7.20.5":
|
||||||
|
version "7.20.10"
|
||||||
|
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.10.tgz#9d92fa81b87542fff50e848ed585b4212c1d34ec"
|
||||||
|
integrity sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg==
|
||||||
|
|
||||||
"@babel/core@7.12.9":
|
"@babel/core@7.12.9":
|
||||||
version "7.12.9"
|
version "7.12.9"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.9.tgz#fd450c4ec10cdbb980e2928b7aa7a28484593fc8"
|
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.9.tgz#fd450c4ec10cdbb980e2928b7aa7a28484593fc8"
|
||||||
|
@ -153,24 +158,24 @@
|
||||||
source-map "^0.5.0"
|
source-map "^0.5.0"
|
||||||
|
|
||||||
"@babel/core@^7.13.16":
|
"@babel/core@^7.13.16":
|
||||||
version "7.18.9"
|
version "7.20.12"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.18.9.tgz#805461f967c77ff46c74ca0460ccf4fe933ddd59"
|
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.20.12.tgz#7930db57443c6714ad216953d1356dac0eb8496d"
|
||||||
integrity sha512-1LIb1eL8APMy91/IMW+31ckrfBM4yCoLaVzoDhZUKSM4cu1L1nIidyxkCgzPAgrC5WEz36IPEr/eSeSF9pIn+g==
|
integrity sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@ampproject/remapping" "^2.1.0"
|
"@ampproject/remapping" "^2.1.0"
|
||||||
"@babel/code-frame" "^7.18.6"
|
"@babel/code-frame" "^7.18.6"
|
||||||
"@babel/generator" "^7.18.9"
|
"@babel/generator" "^7.20.7"
|
||||||
"@babel/helper-compilation-targets" "^7.18.9"
|
"@babel/helper-compilation-targets" "^7.20.7"
|
||||||
"@babel/helper-module-transforms" "^7.18.9"
|
"@babel/helper-module-transforms" "^7.20.11"
|
||||||
"@babel/helpers" "^7.18.9"
|
"@babel/helpers" "^7.20.7"
|
||||||
"@babel/parser" "^7.18.9"
|
"@babel/parser" "^7.20.7"
|
||||||
"@babel/template" "^7.18.6"
|
"@babel/template" "^7.20.7"
|
||||||
"@babel/traverse" "^7.18.9"
|
"@babel/traverse" "^7.20.12"
|
||||||
"@babel/types" "^7.18.9"
|
"@babel/types" "^7.20.7"
|
||||||
convert-source-map "^1.7.0"
|
convert-source-map "^1.7.0"
|
||||||
debug "^4.1.0"
|
debug "^4.1.0"
|
||||||
gensync "^1.0.0-beta.2"
|
gensync "^1.0.0-beta.2"
|
||||||
json5 "^2.2.1"
|
json5 "^2.2.2"
|
||||||
semver "^6.3.0"
|
semver "^6.3.0"
|
||||||
|
|
||||||
"@babel/core@^7.14.0":
|
"@babel/core@^7.14.0":
|
||||||
|
@ -251,12 +256,12 @@
|
||||||
"@jridgewell/gen-mapping" "^0.3.2"
|
"@jridgewell/gen-mapping" "^0.3.2"
|
||||||
jsesc "^2.5.1"
|
jsesc "^2.5.1"
|
||||||
|
|
||||||
"@babel/generator@^7.14.0", "@babel/generator@^7.18.9":
|
"@babel/generator@^7.14.0", "@babel/generator@^7.20.7":
|
||||||
version "7.18.9"
|
version "7.20.7"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.9.tgz#68337e9ea8044d6ddc690fb29acae39359cca0a5"
|
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.7.tgz#f8ef57c8242665c5929fe2e8d82ba75460187b4a"
|
||||||
integrity sha512-wt5Naw6lJrL1/SGkipMiFxJjtyczUWTP38deiP1PO60HsBjDeKk08CGC3S8iVuvf0FmTdgKwU1KIXzSKL1G0Ug==
|
integrity sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/types" "^7.18.9"
|
"@babel/types" "^7.20.7"
|
||||||
"@jridgewell/gen-mapping" "^0.3.2"
|
"@jridgewell/gen-mapping" "^0.3.2"
|
||||||
jsesc "^2.5.1"
|
jsesc "^2.5.1"
|
||||||
|
|
||||||
|
@ -296,6 +301,15 @@
|
||||||
"@jridgewell/gen-mapping" "^0.3.2"
|
"@jridgewell/gen-mapping" "^0.3.2"
|
||||||
jsesc "^2.5.1"
|
jsesc "^2.5.1"
|
||||||
|
|
||||||
|
"@babel/generator@^7.18.9":
|
||||||
|
version "7.18.9"
|
||||||
|
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.9.tgz#68337e9ea8044d6ddc690fb29acae39359cca0a5"
|
||||||
|
integrity sha512-wt5Naw6lJrL1/SGkipMiFxJjtyczUWTP38deiP1PO60HsBjDeKk08CGC3S8iVuvf0FmTdgKwU1KIXzSKL1G0Ug==
|
||||||
|
dependencies:
|
||||||
|
"@babel/types" "^7.18.9"
|
||||||
|
"@jridgewell/gen-mapping" "^0.3.2"
|
||||||
|
jsesc "^2.5.1"
|
||||||
|
|
||||||
"@babel/generator@^7.9.6":
|
"@babel/generator@^7.9.6":
|
||||||
version "7.9.6"
|
version "7.9.6"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.9.6.tgz#5408c82ac5de98cda0d77d8124e99fa1f2170a43"
|
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.9.6.tgz#5408c82ac5de98cda0d77d8124e99fa1f2170a43"
|
||||||
|
@ -405,6 +419,17 @@
|
||||||
browserslist "^4.20.2"
|
browserslist "^4.20.2"
|
||||||
semver "^6.3.0"
|
semver "^6.3.0"
|
||||||
|
|
||||||
|
"@babel/helper-compilation-targets@^7.20.7":
|
||||||
|
version "7.20.7"
|
||||||
|
resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz#a6cd33e93629f5eb473b021aac05df62c4cd09bb"
|
||||||
|
integrity sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==
|
||||||
|
dependencies:
|
||||||
|
"@babel/compat-data" "^7.20.5"
|
||||||
|
"@babel/helper-validator-option" "^7.18.6"
|
||||||
|
browserslist "^4.21.3"
|
||||||
|
lru-cache "^5.1.1"
|
||||||
|
semver "^6.3.0"
|
||||||
|
|
||||||
"@babel/helper-create-class-features-plugin@^7.14.5":
|
"@babel/helper-create-class-features-plugin@^7.14.5":
|
||||||
version "7.14.5"
|
version "7.14.5"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.5.tgz#8842ec495516dd1ed8f6c572be92ba78b1e9beef"
|
resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.5.tgz#8842ec495516dd1ed8f6c572be92ba78b1e9beef"
|
||||||
|
@ -628,6 +653,14 @@
|
||||||
"@babel/template" "^7.18.6"
|
"@babel/template" "^7.18.6"
|
||||||
"@babel/types" "^7.18.9"
|
"@babel/types" "^7.18.9"
|
||||||
|
|
||||||
|
"@babel/helper-function-name@^7.19.0":
|
||||||
|
version "7.19.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz#941574ed5390682e872e52d3f38ce9d1bef4648c"
|
||||||
|
integrity sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==
|
||||||
|
dependencies:
|
||||||
|
"@babel/template" "^7.18.10"
|
||||||
|
"@babel/types" "^7.19.0"
|
||||||
|
|
||||||
"@babel/helper-function-name@^7.8.3", "@babel/helper-function-name@^7.9.5":
|
"@babel/helper-function-name@^7.8.3", "@babel/helper-function-name@^7.9.5":
|
||||||
version "7.9.5"
|
version "7.9.5"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz#2b53820d35275120e1874a82e5aabe1376920a5c"
|
resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz#2b53820d35275120e1874a82e5aabe1376920a5c"
|
||||||
|
@ -811,6 +844,20 @@
|
||||||
"@babel/traverse" "^7.18.0"
|
"@babel/traverse" "^7.18.0"
|
||||||
"@babel/types" "^7.18.0"
|
"@babel/types" "^7.18.0"
|
||||||
|
|
||||||
|
"@babel/helper-module-transforms@^7.20.11":
|
||||||
|
version "7.20.11"
|
||||||
|
resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz#df4c7af713c557938c50ea3ad0117a7944b2f1b0"
|
||||||
|
integrity sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-environment-visitor" "^7.18.9"
|
||||||
|
"@babel/helper-module-imports" "^7.18.6"
|
||||||
|
"@babel/helper-simple-access" "^7.20.2"
|
||||||
|
"@babel/helper-split-export-declaration" "^7.18.6"
|
||||||
|
"@babel/helper-validator-identifier" "^7.19.1"
|
||||||
|
"@babel/template" "^7.20.7"
|
||||||
|
"@babel/traverse" "^7.20.10"
|
||||||
|
"@babel/types" "^7.20.7"
|
||||||
|
|
||||||
"@babel/helper-module-transforms@^7.9.0":
|
"@babel/helper-module-transforms@^7.9.0":
|
||||||
version "7.9.0"
|
version "7.9.0"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz#43b34dfe15961918707d247327431388e9fe96e5"
|
resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz#43b34dfe15961918707d247327431388e9fe96e5"
|
||||||
|
@ -894,6 +941,11 @@
|
||||||
resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz#4b8aea3b069d8cb8a72cdfe28ddf5ceca695ef2f"
|
resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz#4b8aea3b069d8cb8a72cdfe28ddf5ceca695ef2f"
|
||||||
integrity sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w==
|
integrity sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w==
|
||||||
|
|
||||||
|
"@babel/helper-plugin-utils@^7.20.2":
|
||||||
|
version "7.20.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz#d1b9000752b18d0877cff85a5c376ce5c3121629"
|
||||||
|
integrity sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==
|
||||||
|
|
||||||
"@babel/helper-regex@^7.8.3":
|
"@babel/helper-regex@^7.8.3":
|
||||||
version "7.8.3"
|
version "7.8.3"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.8.3.tgz#139772607d51b93f23effe72105b319d2a4c6965"
|
resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.8.3.tgz#139772607d51b93f23effe72105b319d2a4c6965"
|
||||||
|
@ -1030,6 +1082,13 @@
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/types" "^7.18.6"
|
"@babel/types" "^7.18.6"
|
||||||
|
|
||||||
|
"@babel/helper-simple-access@^7.20.2":
|
||||||
|
version "7.20.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz#0ab452687fe0c2cfb1e2b9e0015de07fc2d62dd9"
|
||||||
|
integrity sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==
|
||||||
|
dependencies:
|
||||||
|
"@babel/types" "^7.20.2"
|
||||||
|
|
||||||
"@babel/helper-simple-access@^7.8.3":
|
"@babel/helper-simple-access@^7.8.3":
|
||||||
version "7.8.3"
|
version "7.8.3"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz#7f8109928b4dab4654076986af575231deb639ae"
|
resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz#7f8109928b4dab4654076986af575231deb639ae"
|
||||||
|
@ -1052,6 +1111,13 @@
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/types" "^7.18.9"
|
"@babel/types" "^7.18.9"
|
||||||
|
|
||||||
|
"@babel/helper-skip-transparent-expression-wrappers@^7.20.0":
|
||||||
|
version "7.20.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz#fbe4c52f60518cab8140d77101f0e63a8a230684"
|
||||||
|
integrity sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==
|
||||||
|
dependencies:
|
||||||
|
"@babel/types" "^7.20.0"
|
||||||
|
|
||||||
"@babel/helper-split-export-declaration@^7.10.4":
|
"@babel/helper-split-export-declaration@^7.10.4":
|
||||||
version "7.10.4"
|
version "7.10.4"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.4.tgz#2c70576eaa3b5609b24cb99db2888cc3fc4251d1"
|
resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.4.tgz#2c70576eaa3b5609b24cb99db2888cc3fc4251d1"
|
||||||
|
@ -1092,6 +1158,11 @@
|
||||||
resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz#181f22d28ebe1b3857fa575f5c290b1aaf659b56"
|
resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz#181f22d28ebe1b3857fa575f5c290b1aaf659b56"
|
||||||
integrity sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==
|
integrity sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==
|
||||||
|
|
||||||
|
"@babel/helper-string-parser@^7.19.4":
|
||||||
|
version "7.19.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63"
|
||||||
|
integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==
|
||||||
|
|
||||||
"@babel/helper-validator-identifier@^7.10.4":
|
"@babel/helper-validator-identifier@^7.10.4":
|
||||||
version "7.10.4"
|
version "7.10.4"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2"
|
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2"
|
||||||
|
@ -1112,6 +1183,11 @@
|
||||||
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz#9c97e30d31b2b8c72a1d08984f2ca9b574d7a076"
|
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz#9c97e30d31b2b8c72a1d08984f2ca9b574d7a076"
|
||||||
integrity sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==
|
integrity sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==
|
||||||
|
|
||||||
|
"@babel/helper-validator-identifier@^7.19.1":
|
||||||
|
version "7.19.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2"
|
||||||
|
integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==
|
||||||
|
|
||||||
"@babel/helper-validator-identifier@^7.9.0", "@babel/helper-validator-identifier@^7.9.5":
|
"@babel/helper-validator-identifier@^7.9.0", "@babel/helper-validator-identifier@^7.9.5":
|
||||||
version "7.9.5"
|
version "7.9.5"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz#90977a8e6fbf6b431a7dc31752eee233bf052d80"
|
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz#90977a8e6fbf6b431a7dc31752eee233bf052d80"
|
||||||
|
@ -1188,6 +1264,15 @@
|
||||||
"@babel/traverse" "^7.18.2"
|
"@babel/traverse" "^7.18.2"
|
||||||
"@babel/types" "^7.18.2"
|
"@babel/types" "^7.18.2"
|
||||||
|
|
||||||
|
"@babel/helpers@^7.20.7":
|
||||||
|
version "7.20.7"
|
||||||
|
resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.7.tgz#04502ff0feecc9f20ecfaad120a18f011a8e6dce"
|
||||||
|
integrity sha512-PBPjs5BppzsGaxHQCDKnZ6Gd9s6xl8bBCluz3vEInLGRJmnZan4F6BYCeqtyXqkk4W5IlPmjK4JlOuZkpJ3xZA==
|
||||||
|
dependencies:
|
||||||
|
"@babel/template" "^7.20.7"
|
||||||
|
"@babel/traverse" "^7.20.7"
|
||||||
|
"@babel/types" "^7.20.7"
|
||||||
|
|
||||||
"@babel/helpers@^7.9.6":
|
"@babel/helpers@^7.9.6":
|
||||||
version "7.9.6"
|
version "7.9.6"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.9.6.tgz#092c774743471d0bb6c7de3ad465ab3d3486d580"
|
resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.9.6.tgz#092c774743471d0bb6c7de3ad465ab3d3486d580"
|
||||||
|
@ -1257,10 +1342,10 @@
|
||||||
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.11.tgz#68bb07ab3d380affa9a3f96728df07969645d2d9"
|
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.11.tgz#68bb07ab3d380affa9a3f96728df07969645d2d9"
|
||||||
integrity sha512-9JKn5vN+hDt0Hdqn1PiJ2guflwP+B6Ga8qbDuoF0PzzVhrzsKIJo8yGqVk6CmMHiMei9w1C1Bp9IMJSIK+HPIQ==
|
integrity sha512-9JKn5vN+hDt0Hdqn1PiJ2guflwP+B6Ga8qbDuoF0PzzVhrzsKIJo8yGqVk6CmMHiMei9w1C1Bp9IMJSIK+HPIQ==
|
||||||
|
|
||||||
"@babel/parser@^7.13.16", "@babel/parser@^7.14.0", "@babel/parser@^7.18.9":
|
"@babel/parser@^7.13.16", "@babel/parser@^7.14.0", "@babel/parser@^7.20.7":
|
||||||
version "7.18.9"
|
version "7.20.7"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.9.tgz#f2dde0c682ccc264a9a8595efd030a5cc8fd2539"
|
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.7.tgz#66fe23b3c8569220817d5feb8b9dcdc95bb4f71b"
|
||||||
integrity sha512-9uJveS9eY9DJ0t64YbIBZICtJy8a5QrDEVdiLCG97fVLpDTpGX7t8mMSb6OWw6Lrnjqj4O8zwjELX3dhoMgiBg==
|
integrity sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg==
|
||||||
|
|
||||||
"@babel/parser@^7.14.5":
|
"@babel/parser@^7.14.5":
|
||||||
version "7.14.5"
|
version "7.14.5"
|
||||||
|
@ -1292,6 +1377,11 @@
|
||||||
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.8.tgz#822146080ac9c62dac0823bb3489622e0bc1cbdf"
|
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.8.tgz#822146080ac9c62dac0823bb3489622e0bc1cbdf"
|
||||||
integrity sha512-RSKRfYX20dyH+elbJK2uqAkVyucL+xXzhqlMD5/ZXx+dAAwpyB7HsvnHe/ZUGOF+xLr5Wx9/JoXVTj6BQE2/oA==
|
integrity sha512-RSKRfYX20dyH+elbJK2uqAkVyucL+xXzhqlMD5/ZXx+dAAwpyB7HsvnHe/ZUGOF+xLr5Wx9/JoXVTj6BQE2/oA==
|
||||||
|
|
||||||
|
"@babel/parser@^7.18.9":
|
||||||
|
version "7.18.9"
|
||||||
|
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.9.tgz#f2dde0c682ccc264a9a8595efd030a5cc8fd2539"
|
||||||
|
integrity sha512-9uJveS9eY9DJ0t64YbIBZICtJy8a5QrDEVdiLCG97fVLpDTpGX7t8mMSb6OWw6Lrnjqj4O8zwjELX3dhoMgiBg==
|
||||||
|
|
||||||
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.17.12":
|
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.17.12":
|
||||||
version "7.17.12"
|
version "7.17.12"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.17.12.tgz#1dca338caaefca368639c9ffb095afbd4d420b1e"
|
resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.17.12.tgz#1dca338caaefca368639c9ffb095afbd4d420b1e"
|
||||||
|
@ -1609,7 +1699,7 @@
|
||||||
"@babel/helper-plugin-utils" "^7.8.3"
|
"@babel/helper-plugin-utils" "^7.8.3"
|
||||||
"@babel/plugin-syntax-optional-chaining" "^7.8.0"
|
"@babel/plugin-syntax-optional-chaining" "^7.8.0"
|
||||||
|
|
||||||
"@babel/plugin-proposal-optional-chaining@^7.12.7", "@babel/plugin-proposal-optional-chaining@^7.13.12", "@babel/plugin-proposal-optional-chaining@^7.18.9":
|
"@babel/plugin-proposal-optional-chaining@^7.12.7", "@babel/plugin-proposal-optional-chaining@^7.18.9":
|
||||||
version "7.18.9"
|
version "7.18.9"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz#e8e8fe0723f2563960e4bf5e9690933691915993"
|
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz#e8e8fe0723f2563960e4bf5e9690933691915993"
|
||||||
integrity sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==
|
integrity sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==
|
||||||
|
@ -1618,6 +1708,15 @@
|
||||||
"@babel/helper-skip-transparent-expression-wrappers" "^7.18.9"
|
"@babel/helper-skip-transparent-expression-wrappers" "^7.18.9"
|
||||||
"@babel/plugin-syntax-optional-chaining" "^7.8.3"
|
"@babel/plugin-syntax-optional-chaining" "^7.8.3"
|
||||||
|
|
||||||
|
"@babel/plugin-proposal-optional-chaining@^7.13.12":
|
||||||
|
version "7.20.7"
|
||||||
|
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.20.7.tgz#49f2b372519ab31728cc14115bb0998b15bfda55"
|
||||||
|
integrity sha512-T+A7b1kfjtRM51ssoOfS1+wbyCVqorfyZhT99TvxxLMirPShD8CzKMRepMlCBGM5RpHMbn8s+5MMHnPstJH6mQ==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-plugin-utils" "^7.20.2"
|
||||||
|
"@babel/helper-skip-transparent-expression-wrappers" "^7.20.0"
|
||||||
|
"@babel/plugin-syntax-optional-chaining" "^7.8.3"
|
||||||
|
|
||||||
"@babel/plugin-proposal-optional-chaining@^7.17.12":
|
"@babel/plugin-proposal-optional-chaining@^7.17.12":
|
||||||
version "7.17.12"
|
version "7.17.12"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.17.12.tgz#f96949e9bacace3a9066323a5cf90cfb9de67174"
|
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.17.12.tgz#f96949e9bacace3a9066323a5cf90cfb9de67174"
|
||||||
|
@ -2286,15 +2385,14 @@
|
||||||
"@babel/helper-simple-access" "^7.8.3"
|
"@babel/helper-simple-access" "^7.8.3"
|
||||||
babel-plugin-dynamic-import-node "^2.3.3"
|
babel-plugin-dynamic-import-node "^2.3.3"
|
||||||
|
|
||||||
"@babel/plugin-transform-modules-commonjs@^7.13.8", "@babel/plugin-transform-modules-commonjs@^7.18.6":
|
"@babel/plugin-transform-modules-commonjs@^7.13.8":
|
||||||
version "7.18.6"
|
version "7.20.11"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz#afd243afba166cca69892e24a8fd8c9f2ca87883"
|
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.20.11.tgz#8cb23010869bf7669fd4b3098598b6b2be6dc607"
|
||||||
integrity sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q==
|
integrity sha512-S8e1f7WQ7cimJQ51JkAaDrEtohVEitXjgCGAS2N8S31Y42E+kWwfSz83LYz57QdBm7q9diARVqanIaH2oVgQnw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/helper-module-transforms" "^7.18.6"
|
"@babel/helper-module-transforms" "^7.20.11"
|
||||||
"@babel/helper-plugin-utils" "^7.18.6"
|
"@babel/helper-plugin-utils" "^7.20.2"
|
||||||
"@babel/helper-simple-access" "^7.18.6"
|
"@babel/helper-simple-access" "^7.20.2"
|
||||||
babel-plugin-dynamic-import-node "^2.3.3"
|
|
||||||
|
|
||||||
"@babel/plugin-transform-modules-commonjs@^7.18.2":
|
"@babel/plugin-transform-modules-commonjs@^7.18.2":
|
||||||
version "7.18.2"
|
version "7.18.2"
|
||||||
|
@ -2306,6 +2404,16 @@
|
||||||
"@babel/helper-simple-access" "^7.18.2"
|
"@babel/helper-simple-access" "^7.18.2"
|
||||||
babel-plugin-dynamic-import-node "^2.3.3"
|
babel-plugin-dynamic-import-node "^2.3.3"
|
||||||
|
|
||||||
|
"@babel/plugin-transform-modules-commonjs@^7.18.6":
|
||||||
|
version "7.18.6"
|
||||||
|
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz#afd243afba166cca69892e24a8fd8c9f2ca87883"
|
||||||
|
integrity sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-module-transforms" "^7.18.6"
|
||||||
|
"@babel/helper-plugin-utils" "^7.18.6"
|
||||||
|
"@babel/helper-simple-access" "^7.18.6"
|
||||||
|
babel-plugin-dynamic-import-node "^2.3.3"
|
||||||
|
|
||||||
"@babel/plugin-transform-modules-systemjs@^7.18.0":
|
"@babel/plugin-transform-modules-systemjs@^7.18.0":
|
||||||
version "7.18.4"
|
version "7.18.4"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.4.tgz#3d6fd9868c735cce8f38d6ae3a407fb7e61e6d46"
|
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.4.tgz#3d6fd9868c735cce8f38d6ae3a407fb7e61e6d46"
|
||||||
|
@ -3073,6 +3181,15 @@
|
||||||
"@babel/parser" "^7.18.6"
|
"@babel/parser" "^7.18.6"
|
||||||
"@babel/types" "^7.18.6"
|
"@babel/types" "^7.18.6"
|
||||||
|
|
||||||
|
"@babel/template@^7.20.7":
|
||||||
|
version "7.20.7"
|
||||||
|
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.20.7.tgz#a15090c2839a83b02aa996c0b4994005841fd5a8"
|
||||||
|
integrity sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==
|
||||||
|
dependencies:
|
||||||
|
"@babel/code-frame" "^7.18.6"
|
||||||
|
"@babel/parser" "^7.20.7"
|
||||||
|
"@babel/types" "^7.20.7"
|
||||||
|
|
||||||
"@babel/traverse@^7.1.6", "@babel/traverse@^7.12.11", "@babel/traverse@^7.12.9", "@babel/traverse@^7.18.10", "@babel/traverse@^7.18.11":
|
"@babel/traverse@^7.1.6", "@babel/traverse@^7.12.11", "@babel/traverse@^7.12.9", "@babel/traverse@^7.18.10", "@babel/traverse@^7.18.11":
|
||||||
version "7.18.11"
|
version "7.18.11"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.11.tgz#3d51f2afbd83ecf9912bcbb5c4d94e3d2ddaa16f"
|
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.11.tgz#3d51f2afbd83ecf9912bcbb5c4d94e3d2ddaa16f"
|
||||||
|
@ -3119,19 +3236,19 @@
|
||||||
debug "^4.1.0"
|
debug "^4.1.0"
|
||||||
globals "^11.1.0"
|
globals "^11.1.0"
|
||||||
|
|
||||||
"@babel/traverse@^7.14.0", "@babel/traverse@^7.18.9":
|
"@babel/traverse@^7.14.0", "@babel/traverse@^7.20.10", "@babel/traverse@^7.20.12", "@babel/traverse@^7.20.7":
|
||||||
version "7.18.9"
|
version "7.20.12"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.9.tgz#deeff3e8f1bad9786874cb2feda7a2d77a904f98"
|
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.12.tgz#7f0f787b3a67ca4475adef1f56cb94f6abd4a4b5"
|
||||||
integrity sha512-LcPAnujXGwBgv3/WHv01pHtb2tihcyW1XuL9wd7jqh1Z8AQkTd+QVjMrMijrln0T7ED3UXLIy36P9Ao7W75rYg==
|
integrity sha512-MsIbFN0u+raeja38qboyF8TIT7K0BFzz/Yd/77ta4MsUsmP2RAnidIlwq7d5HFQrH/OZJecGV6B71C4zAgpoSQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/code-frame" "^7.18.6"
|
"@babel/code-frame" "^7.18.6"
|
||||||
"@babel/generator" "^7.18.9"
|
"@babel/generator" "^7.20.7"
|
||||||
"@babel/helper-environment-visitor" "^7.18.9"
|
"@babel/helper-environment-visitor" "^7.18.9"
|
||||||
"@babel/helper-function-name" "^7.18.9"
|
"@babel/helper-function-name" "^7.19.0"
|
||||||
"@babel/helper-hoist-variables" "^7.18.6"
|
"@babel/helper-hoist-variables" "^7.18.6"
|
||||||
"@babel/helper-split-export-declaration" "^7.18.6"
|
"@babel/helper-split-export-declaration" "^7.18.6"
|
||||||
"@babel/parser" "^7.18.9"
|
"@babel/parser" "^7.20.7"
|
||||||
"@babel/types" "^7.18.9"
|
"@babel/types" "^7.20.7"
|
||||||
debug "^4.1.0"
|
debug "^4.1.0"
|
||||||
globals "^11.1.0"
|
globals "^11.1.0"
|
||||||
|
|
||||||
|
@ -3183,6 +3300,22 @@
|
||||||
debug "^4.1.0"
|
debug "^4.1.0"
|
||||||
globals "^11.1.0"
|
globals "^11.1.0"
|
||||||
|
|
||||||
|
"@babel/traverse@^7.18.9":
|
||||||
|
version "7.18.9"
|
||||||
|
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.9.tgz#deeff3e8f1bad9786874cb2feda7a2d77a904f98"
|
||||||
|
integrity sha512-LcPAnujXGwBgv3/WHv01pHtb2tihcyW1XuL9wd7jqh1Z8AQkTd+QVjMrMijrln0T7ED3UXLIy36P9Ao7W75rYg==
|
||||||
|
dependencies:
|
||||||
|
"@babel/code-frame" "^7.18.6"
|
||||||
|
"@babel/generator" "^7.18.9"
|
||||||
|
"@babel/helper-environment-visitor" "^7.18.9"
|
||||||
|
"@babel/helper-function-name" "^7.18.9"
|
||||||
|
"@babel/helper-hoist-variables" "^7.18.6"
|
||||||
|
"@babel/helper-split-export-declaration" "^7.18.6"
|
||||||
|
"@babel/parser" "^7.18.9"
|
||||||
|
"@babel/types" "^7.18.9"
|
||||||
|
debug "^4.1.0"
|
||||||
|
globals "^11.1.0"
|
||||||
|
|
||||||
"@babel/traverse@^7.7.2":
|
"@babel/traverse@^7.7.2":
|
||||||
version "7.14.7"
|
version "7.14.7"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.14.7.tgz#64007c9774cfdc3abd23b0780bc18a3ce3631753"
|
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.14.7.tgz#64007c9774cfdc3abd23b0780bc18a3ce3631753"
|
||||||
|
@ -3280,6 +3413,15 @@
|
||||||
"@babel/helper-validator-identifier" "^7.18.6"
|
"@babel/helper-validator-identifier" "^7.18.6"
|
||||||
to-fast-properties "^2.0.0"
|
to-fast-properties "^2.0.0"
|
||||||
|
|
||||||
|
"@babel/types@^7.19.0", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.20.7":
|
||||||
|
version "7.20.7"
|
||||||
|
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.7.tgz#54ec75e252318423fc07fb644dc6a58a64c09b7f"
|
||||||
|
integrity sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-string-parser" "^7.19.4"
|
||||||
|
"@babel/helper-validator-identifier" "^7.19.1"
|
||||||
|
to-fast-properties "^2.0.0"
|
||||||
|
|
||||||
"@bcoe/v8-coverage@^0.2.3":
|
"@bcoe/v8-coverage@^0.2.3":
|
||||||
version "0.2.3"
|
version "0.2.3"
|
||||||
resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
|
resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
|
||||||
|
@ -5033,7 +5175,12 @@
|
||||||
resolved "https://registry.yarnpkg.com/@react-native/assets/-/assets-1.0.0.tgz#c6f9bf63d274bafc8e970628de24986b30a55c8e"
|
resolved "https://registry.yarnpkg.com/@react-native/assets/-/assets-1.0.0.tgz#c6f9bf63d274bafc8e970628de24986b30a55c8e"
|
||||||
integrity sha512-KrwSpS1tKI70wuKl68DwJZYEvXktDHdZMG0k2AXD/rJVSlB23/X2CB2cutVR0HwNMJIal9HOUOBB2rVfa6UGtQ==
|
integrity sha512-KrwSpS1tKI70wuKl68DwJZYEvXktDHdZMG0k2AXD/rJVSlB23/X2CB2cutVR0HwNMJIal9HOUOBB2rVfa6UGtQ==
|
||||||
|
|
||||||
"@react-native/normalize-color@*", "@react-native/normalize-color@2.0.0", "@react-native/normalize-color@^2.0.0":
|
"@react-native/normalize-color@*":
|
||||||
|
version "2.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@react-native/normalize-color/-/normalize-color-2.1.0.tgz#939b87a9849e81687d3640c5efa2a486ac266f91"
|
||||||
|
integrity sha512-Z1jQI2NpdFJCVgpY+8Dq/Bt3d+YUi1928Q+/CZm/oh66fzM0RUl54vvuXlPJKybH4pdCZey1eDTPaLHkMPNgWA==
|
||||||
|
|
||||||
|
"@react-native/normalize-color@2.0.0", "@react-native/normalize-color@^2.0.0":
|
||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/@react-native/normalize-color/-/normalize-color-2.0.0.tgz#da955909432474a9a0fe1cbffc66576a0447f567"
|
resolved "https://registry.yarnpkg.com/@react-native/normalize-color/-/normalize-color-2.0.0.tgz#da955909432474a9a0fe1cbffc66576a0447f567"
|
||||||
integrity sha512-Wip/xsc5lw8vsBlmY2MO/gFLp3MvuZ2baBZjDeTjjndMgM0h5sxz7AZR62RDPGgstp8Np7JzjvVqVT7tpFZqsw==
|
integrity sha512-Wip/xsc5lw8vsBlmY2MO/gFLp3MvuZ2baBZjDeTjjndMgM0h5sxz7AZR62RDPGgstp8Np7JzjvVqVT7tpFZqsw==
|
||||||
|
@ -5186,9 +5333,9 @@
|
||||||
"@hapi/hoek" "^9.0.0"
|
"@hapi/hoek" "^9.0.0"
|
||||||
|
|
||||||
"@sideway/formula@^3.0.0":
|
"@sideway/formula@^3.0.0":
|
||||||
version "3.0.0"
|
version "3.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/@sideway/formula/-/formula-3.0.0.tgz#fe158aee32e6bd5de85044be615bc08478a0a13c"
|
resolved "https://registry.yarnpkg.com/@sideway/formula/-/formula-3.0.1.tgz#80fcbcbaf7ce031e0ef2dd29b1bfc7c3f583611f"
|
||||||
integrity sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==
|
integrity sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==
|
||||||
|
|
||||||
"@sideway/pinpoint@^2.0.0":
|
"@sideway/pinpoint@^2.0.0":
|
||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
|
@ -5214,6 +5361,10 @@
|
||||||
dependencies:
|
dependencies:
|
||||||
"@sinonjs/commons" "^1.7.0"
|
"@sinonjs/commons" "^1.7.0"
|
||||||
|
|
||||||
|
"@socialcode-rob1/react-native-jitsimeet-custom@socialcode-rob1/react-native-jitsimeet-custom.git":
|
||||||
|
version "2.5.0"
|
||||||
|
resolved "https://codeload.github.com/socialcode-rob1/react-native-jitsimeet-custom/tar.gz/b1f57cd065028fef2e806824e176d2b54e12cfaf"
|
||||||
|
|
||||||
"@storybook/addon-storyshots@6.3":
|
"@storybook/addon-storyshots@6.3":
|
||||||
version "6.3.13"
|
version "6.3.13"
|
||||||
resolved "https://registry.yarnpkg.com/@storybook/addon-storyshots/-/addon-storyshots-6.3.13.tgz#282a48880e5074baea7b84f5b091591eb21a9485"
|
resolved "https://registry.yarnpkg.com/@storybook/addon-storyshots/-/addon-storyshots-6.3.13.tgz#282a48880e5074baea7b84f5b091591eb21a9485"
|
||||||
|
@ -6762,7 +6913,7 @@ absolute-path@^0.0.0:
|
||||||
resolved "https://registry.yarnpkg.com/absolute-path/-/absolute-path-0.0.0.tgz#a78762fbdadfb5297be99b15d35a785b2f095bf7"
|
resolved "https://registry.yarnpkg.com/absolute-path/-/absolute-path-0.0.0.tgz#a78762fbdadfb5297be99b15d35a785b2f095bf7"
|
||||||
integrity sha512-HQiug4c+/s3WOvEnDRxXVmNtSG5s2gJM9r19BTcqjp7BWcE48PB+Y2G6jE65kqI0LpsQeMZygt/b60Gi4KxGyA==
|
integrity sha512-HQiug4c+/s3WOvEnDRxXVmNtSG5s2gJM9r19BTcqjp7BWcE48PB+Y2G6jE65kqI0LpsQeMZygt/b60Gi4KxGyA==
|
||||||
|
|
||||||
accepts@^1.3.7, accepts@^1.3.8, accepts@~1.3.5, accepts@~1.3.8:
|
accepts@^1.3.7, accepts@^1.3.8, accepts@~1.3.5, accepts@~1.3.7, accepts@~1.3.8:
|
||||||
version "1.3.8"
|
version "1.3.8"
|
||||||
resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e"
|
resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e"
|
||||||
integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==
|
integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==
|
||||||
|
@ -6770,14 +6921,6 @@ accepts@^1.3.7, accepts@^1.3.8, accepts@~1.3.5, accepts@~1.3.8:
|
||||||
mime-types "~2.1.34"
|
mime-types "~2.1.34"
|
||||||
negotiator "0.6.3"
|
negotiator "0.6.3"
|
||||||
|
|
||||||
accepts@~1.3.7:
|
|
||||||
version "1.3.7"
|
|
||||||
resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd"
|
|
||||||
integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==
|
|
||||||
dependencies:
|
|
||||||
mime-types "~2.1.24"
|
|
||||||
negotiator "0.6.2"
|
|
||||||
|
|
||||||
acorn-jsx@^5.3.1:
|
acorn-jsx@^5.3.1:
|
||||||
version "5.3.1"
|
version "5.3.1"
|
||||||
resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b"
|
resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b"
|
||||||
|
@ -7697,7 +7840,7 @@ balanced-match@^1.0.0:
|
||||||
base-64@0.1.0:
|
base-64@0.1.0:
|
||||||
version "0.1.0"
|
version "0.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/base-64/-/base-64-0.1.0.tgz#780a99c84e7d600260361511c4877613bf24f6bb"
|
resolved "https://registry.yarnpkg.com/base-64/-/base-64-0.1.0.tgz#780a99c84e7d600260361511c4877613bf24f6bb"
|
||||||
integrity sha1-eAqZyE59YAJgNhURxId2E78k9rs=
|
integrity sha512-Y5gU45svrR5tI2Vt/X9GPd3L0HNIKzGu202EjxrXMpuc2V2CiKgemAbUUsqYmZJvPtCXoUKjNZwBJzsNScUbXA==
|
||||||
|
|
||||||
base64-js@^1.0.2, base64-js@^1.1.2, base64-js@^1.2.3, base64-js@^1.3.0, base64-js@^1.3.1, base64-js@^1.5.1:
|
base64-js@^1.0.2, base64-js@^1.1.2, base64-js@^1.2.3, base64-js@^1.3.0, base64-js@^1.3.1, base64-js@^1.5.1:
|
||||||
version "1.5.1"
|
version "1.5.1"
|
||||||
|
@ -8259,21 +8402,21 @@ call-me-maybe@^1.0.1:
|
||||||
caller-callsite@^2.0.0:
|
caller-callsite@^2.0.0:
|
||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134"
|
resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134"
|
||||||
integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=
|
integrity sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
callsites "^2.0.0"
|
callsites "^2.0.0"
|
||||||
|
|
||||||
caller-path@^2.0.0:
|
caller-path@^2.0.0:
|
||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4"
|
resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4"
|
||||||
integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=
|
integrity sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==
|
||||||
dependencies:
|
dependencies:
|
||||||
caller-callsite "^2.0.0"
|
caller-callsite "^2.0.0"
|
||||||
|
|
||||||
callsites@^2.0.0:
|
callsites@^2.0.0:
|
||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50"
|
resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50"
|
||||||
integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=
|
integrity sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==
|
||||||
|
|
||||||
callsites@^3.0.0:
|
callsites@^3.0.0:
|
||||||
version "3.1.0"
|
version "3.1.0"
|
||||||
|
@ -8567,11 +8710,16 @@ cli-cursor@^3.1.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
restore-cursor "^3.1.0"
|
restore-cursor "^3.1.0"
|
||||||
|
|
||||||
cli-spinners@^2.0.0, cli-spinners@^2.5.0:
|
cli-spinners@^2.0.0:
|
||||||
version "2.6.1"
|
version "2.6.1"
|
||||||
resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.6.1.tgz#adc954ebe281c37a6319bfa401e6dd2488ffb70d"
|
resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.6.1.tgz#adc954ebe281c37a6319bfa401e6dd2488ffb70d"
|
||||||
integrity sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==
|
integrity sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==
|
||||||
|
|
||||||
|
cli-spinners@^2.5.0:
|
||||||
|
version "2.7.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.7.0.tgz#f815fd30b5f9eaac02db604c7a231ed7cb2f797a"
|
||||||
|
integrity sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==
|
||||||
|
|
||||||
cli-table3@^0.6.1:
|
cli-table3@^0.6.1:
|
||||||
version "0.6.2"
|
version "0.6.2"
|
||||||
resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.2.tgz#aaf5df9d8b5bf12634dc8b3040806a0c07120d2a"
|
resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.2.tgz#aaf5df9d8b5bf12634dc8b3040806a0c07120d2a"
|
||||||
|
@ -9357,9 +9505,9 @@ damerau-levenshtein@^1.0.7:
|
||||||
integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==
|
integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==
|
||||||
|
|
||||||
dayjs@^1.8.15:
|
dayjs@^1.8.15:
|
||||||
version "1.11.4"
|
version "1.11.7"
|
||||||
resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.4.tgz#3b3c10ca378140d8917e06ebc13a4922af4f433e"
|
resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.7.tgz#4b296922642f70999544d1144a2c25730fce63e2"
|
||||||
integrity sha512-Zj/lPM5hOvQ1Bf7uAvewDaUcsJoI6JmNqmHhHl3nyumwe0XHwt8sWdOVAPACJzCebL8gQCi+K49w7iKWnGwX9g==
|
integrity sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==
|
||||||
|
|
||||||
debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.9:
|
debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.9:
|
||||||
version "2.6.9"
|
version "2.6.9"
|
||||||
|
@ -11173,9 +11321,9 @@ flatted@^3.1.0:
|
||||||
integrity sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==
|
integrity sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==
|
||||||
|
|
||||||
flow-parser@0.*:
|
flow-parser@0.*:
|
||||||
version "0.183.0"
|
version "0.197.0"
|
||||||
resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.183.0.tgz#69bcd35608ef179c619df0036c2b61d0f84665ae"
|
resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.197.0.tgz#9a581ef7c0b1c3377b195cec0bbad794b88be67b"
|
||||||
integrity sha512-2e/aIZIM7iJpHCBxpqdXetYYoO3YQEJzA7M8v5bhWhXCu+lIfkeSfOWycWW0rhlnJyjMftbmwn6B2eenKeGlag==
|
integrity sha512-yhwkJPxH1JBg0aJunk/jVRy5p3UhVZBGkzL1hq/GK+GaBh6bKr2YKkv6gDuiufaw+i3pKWQgOLtD++1cvrgXLA==
|
||||||
|
|
||||||
flow-parser@^0.121.0:
|
flow-parser@^0.121.0:
|
||||||
version "0.121.0"
|
version "0.121.0"
|
||||||
|
@ -11632,7 +11780,7 @@ glob-to-regexp@^0.3.0:
|
||||||
glob@7.0.6:
|
glob@7.0.6:
|
||||||
version "7.0.6"
|
version "7.0.6"
|
||||||
resolved "https://registry.yarnpkg.com/glob/-/glob-7.0.6.tgz#211bafaf49e525b8cd93260d14ab136152b3f57a"
|
resolved "https://registry.yarnpkg.com/glob/-/glob-7.0.6.tgz#211bafaf49e525b8cd93260d14ab136152b3f57a"
|
||||||
integrity sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=
|
integrity sha512-f8c0rE8JiCxpa52kWPAOa3ZaYEnzofDzCQLCn3Vdk0Z5OVLq3BsRFJI4S4ykpeVW6QMGBUkMeUpoEgWnMTnw5Q==
|
||||||
dependencies:
|
dependencies:
|
||||||
fs.realpath "^1.0.0"
|
fs.realpath "^1.0.0"
|
||||||
inflight "^1.0.4"
|
inflight "^1.0.4"
|
||||||
|
@ -12318,7 +12466,7 @@ immer@8.0.1:
|
||||||
import-fresh@^2.0.0:
|
import-fresh@^2.0.0:
|
||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546"
|
resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546"
|
||||||
integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY=
|
integrity sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==
|
||||||
dependencies:
|
dependencies:
|
||||||
caller-path "^2.0.0"
|
caller-path "^2.0.0"
|
||||||
resolve-from "^3.0.0"
|
resolve-from "^3.0.0"
|
||||||
|
@ -12627,7 +12775,7 @@ is-descriptor@^1.0.0, is-descriptor@^1.0.2:
|
||||||
is-directory@^0.3.1:
|
is-directory@^0.3.1:
|
||||||
version "0.3.1"
|
version "0.3.1"
|
||||||
resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1"
|
resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1"
|
||||||
integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=
|
integrity sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==
|
||||||
|
|
||||||
is-docker@^2.0.0:
|
is-docker@^2.0.0:
|
||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
|
@ -13754,9 +13902,9 @@ jimp@^0.16.2:
|
||||||
regenerator-runtime "^0.13.3"
|
regenerator-runtime "^0.13.3"
|
||||||
|
|
||||||
joi@^17.2.1:
|
joi@^17.2.1:
|
||||||
version "17.6.0"
|
version "17.7.0"
|
||||||
resolved "https://registry.yarnpkg.com/joi/-/joi-17.6.0.tgz#0bb54f2f006c09a96e75ce687957bd04290054b2"
|
resolved "https://registry.yarnpkg.com/joi/-/joi-17.7.0.tgz#591a33b1fe1aca2bc27f290bcad9b9c1c570a6b3"
|
||||||
integrity sha512-OX5dG6DTbcr/kbMFj0KGYxuew69HPcAE3K/sZpEV2nP6e/j/C0HV+HNiBPCASxdx5T7DMoa0s8UeHWMnb6n2zw==
|
integrity sha512-1/ugc8djfn93rTE3WRKdCzGGt/EtiYKxITMO4Wiv6q5JL1gl9ePt4kBsl1S499nbosspfctIQTpYIhSmHA3WAg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@hapi/hoek" "^9.0.0"
|
"@hapi/hoek" "^9.0.0"
|
||||||
"@hapi/topo" "^5.0.0"
|
"@hapi/topo" "^5.0.0"
|
||||||
|
@ -13928,6 +14076,11 @@ json5@^2.1.0, json5@^2.1.2, json5@^2.1.3, json5@^2.2.1:
|
||||||
resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c"
|
resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c"
|
||||||
integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==
|
integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==
|
||||||
|
|
||||||
|
json5@^2.2.2:
|
||||||
|
version "2.2.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283"
|
||||||
|
integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==
|
||||||
|
|
||||||
jsonfile@^2.1.0:
|
jsonfile@^2.1.0:
|
||||||
version "2.4.0"
|
version "2.4.0"
|
||||||
resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8"
|
resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8"
|
||||||
|
@ -14126,9 +14279,9 @@ loader-utils@2.0.0, loader-utils@^2.0.0:
|
||||||
json5 "^2.1.2"
|
json5 "^2.1.2"
|
||||||
|
|
||||||
loader-utils@^1.2.3:
|
loader-utils@^1.2.3:
|
||||||
version "1.4.1"
|
version "1.4.2"
|
||||||
resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.1.tgz#278ad7006660bccc4d2c0c1578e17c5c78d5c0e0"
|
resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.2.tgz#29a957f3a63973883eb684f10ffd3d151fec01a3"
|
||||||
integrity sha512-1Qo97Y2oKaU+Ro2xnDMR26g1BwMT29jNbem1EvcujW2jqt+j5COXyscjM7bLQkM9HaxI7pkWeW7gnI072yMI9Q==
|
integrity sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==
|
||||||
dependencies:
|
dependencies:
|
||||||
big.js "^5.2.2"
|
big.js "^5.2.2"
|
||||||
emojis-list "^3.0.0"
|
emojis-list "^3.0.0"
|
||||||
|
@ -14212,7 +14365,7 @@ lodash.merge@^4.6.2:
|
||||||
lodash.throttle@^4.1.1:
|
lodash.throttle@^4.1.1:
|
||||||
version "4.1.1"
|
version "4.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4"
|
resolved "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4"
|
||||||
integrity sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=
|
integrity sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==
|
||||||
|
|
||||||
lodash.truncate@^4.4.2:
|
lodash.truncate@^4.4.2:
|
||||||
version "4.4.2"
|
version "4.4.2"
|
||||||
|
@ -15015,21 +15168,11 @@ minimatch@3.0.4:
|
||||||
dependencies:
|
dependencies:
|
||||||
brace-expansion "^1.1.7"
|
brace-expansion "^1.1.7"
|
||||||
|
|
||||||
minimist@^1.1.1, minimist@^1.2.5, "minimist@~ 1.2.0":
|
minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6, "minimist@~ 1.2.0":
|
||||||
version "1.2.5"
|
|
||||||
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
|
|
||||||
integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
|
|
||||||
|
|
||||||
minimist@^1.2.0:
|
|
||||||
version "1.2.7"
|
version "1.2.7"
|
||||||
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18"
|
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18"
|
||||||
integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==
|
integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==
|
||||||
|
|
||||||
minimist@^1.2.6:
|
|
||||||
version "1.2.6"
|
|
||||||
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44"
|
|
||||||
integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==
|
|
||||||
|
|
||||||
minipass-collect@^1.0.2:
|
minipass-collect@^1.0.2:
|
||||||
version "1.0.2"
|
version "1.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617"
|
resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617"
|
||||||
|
@ -15277,11 +15420,6 @@ ncp@~2.0.0:
|
||||||
resolved "https://registry.yarnpkg.com/ncp/-/ncp-2.0.0.tgz#195a21d6c46e361d2fb1281ba38b91e9df7bdbb3"
|
resolved "https://registry.yarnpkg.com/ncp/-/ncp-2.0.0.tgz#195a21d6c46e361d2fb1281ba38b91e9df7bdbb3"
|
||||||
integrity sha1-GVoh1sRuNh0vsSgbo4uR6d9727M=
|
integrity sha1-GVoh1sRuNh0vsSgbo4uR6d9727M=
|
||||||
|
|
||||||
negotiator@0.6.2:
|
|
||||||
version "0.6.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb"
|
|
||||||
integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==
|
|
||||||
|
|
||||||
negotiator@0.6.3:
|
negotiator@0.6.3:
|
||||||
version "0.6.3"
|
version "0.6.3"
|
||||||
resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd"
|
resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd"
|
||||||
|
@ -15327,7 +15465,7 @@ node-dir@^0.1.10, node-dir@^0.1.17:
|
||||||
dependencies:
|
dependencies:
|
||||||
minimatch "^3.0.2"
|
minimatch "^3.0.2"
|
||||||
|
|
||||||
node-fetch@2.6.7, node-fetch@^2.2.0, node-fetch@^2.6.0, node-fetch@^2.6.1, node-fetch@^2.6.7:
|
node-fetch@2.6.7, node-fetch@^2.6.0, node-fetch@^2.6.1, node-fetch@^2.6.7:
|
||||||
version "2.6.7"
|
version "2.6.7"
|
||||||
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad"
|
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad"
|
||||||
integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==
|
integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==
|
||||||
|
@ -15342,6 +15480,13 @@ node-fetch@^1.0.1:
|
||||||
encoding "^0.1.11"
|
encoding "^0.1.11"
|
||||||
is-stream "^1.0.1"
|
is-stream "^1.0.1"
|
||||||
|
|
||||||
|
node-fetch@^2.2.0:
|
||||||
|
version "2.6.8"
|
||||||
|
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.8.tgz#a68d30b162bc1d8fd71a367e81b997e1f4d4937e"
|
||||||
|
integrity sha512-RZ6dBYuj8dRSfxpUSu+NsdF1dpPpluJxwOp+6IoDp/sH2QNDSvurYsAa+F1WxY2RjA1iP93xhcsUoYbF2XBqVg==
|
||||||
|
dependencies:
|
||||||
|
whatwg-url "^5.0.0"
|
||||||
|
|
||||||
node-forge@^1.2.1, node-forge@^1.3.1:
|
node-forge@^1.2.1, node-forge@^1.3.1:
|
||||||
version "1.3.1"
|
version "1.3.1"
|
||||||
resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3"
|
resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3"
|
||||||
|
@ -16610,9 +16755,9 @@ promise@^7.1.1:
|
||||||
asap "~2.0.3"
|
asap "~2.0.3"
|
||||||
|
|
||||||
promise@^8.0.3:
|
promise@^8.0.3:
|
||||||
version "8.1.0"
|
version "8.3.0"
|
||||||
resolved "https://registry.yarnpkg.com/promise/-/promise-8.1.0.tgz#697c25c3dfe7435dd79fcd58c38a135888eaf05e"
|
resolved "https://registry.yarnpkg.com/promise/-/promise-8.3.0.tgz#8cb333d1edeb61ef23869fbb8a4ea0279ab60e0a"
|
||||||
integrity sha512-W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q==
|
integrity sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==
|
||||||
dependencies:
|
dependencies:
|
||||||
asap "~2.0.6"
|
asap "~2.0.6"
|
||||||
|
|
||||||
|
@ -16947,9 +17092,9 @@ react-dev-utils@^11.0.3:
|
||||||
text-table "0.2.0"
|
text-table "0.2.0"
|
||||||
|
|
||||||
react-devtools-core@^4.23.0:
|
react-devtools-core@^4.23.0:
|
||||||
version "4.25.0"
|
version "4.27.1"
|
||||||
resolved "https://registry.yarnpkg.com/react-devtools-core/-/react-devtools-core-4.25.0.tgz#78b11a2c9f81dd9ebff3745ab4ee2147cc96c12a"
|
resolved "https://registry.yarnpkg.com/react-devtools-core/-/react-devtools-core-4.27.1.tgz#167aa174383c65786cbb7e965a5b39c702f0a2d3"
|
||||||
integrity sha512-iewRrnu0ZnmfL+jJayKphXj04CFh6i3ezVnpCtcnZbTPSQgN09XqHAzXbKbqNDl7aTg9QLNkQRP6M3DvdrinWA==
|
integrity sha512-qXhcxxDWiFmFAOq48jts9YQYe1+wVoUXzJTlY4jbaATzyio6dd6CUGu3dXBhREeVgpZ+y4kg6vFJzIOZh6vY2w==
|
||||||
dependencies:
|
dependencies:
|
||||||
shell-quote "^1.6.1"
|
shell-quote "^1.6.1"
|
||||||
ws "^7"
|
ws "^7"
|
||||||
|
@ -17100,10 +17245,10 @@ react-native-console-time-polyfill@1.2.3:
|
||||||
resolved "https://registry.yarnpkg.com/react-native-console-time-polyfill/-/react-native-console-time-polyfill-1.2.3.tgz#1039dab1bb9e2d8040f5e19de68e0da781dc9b60"
|
resolved "https://registry.yarnpkg.com/react-native-console-time-polyfill/-/react-native-console-time-polyfill-1.2.3.tgz#1039dab1bb9e2d8040f5e19de68e0da781dc9b60"
|
||||||
integrity sha512-C7CUb1c6GsCssqvjtRuqVqnGwlfEHXxXDvCUuGNbq/gpZZt+9YbZD3ODmXBDxis3tDQA0k1lbT1VMTqWQw9rDg==
|
integrity sha512-C7CUb1c6GsCssqvjtRuqVqnGwlfEHXxXDvCUuGNbq/gpZZt+9YbZD3ODmXBDxis3tDQA0k1lbT1VMTqWQw9rDg==
|
||||||
|
|
||||||
react-native-device-info@8.4.8:
|
react-native-device-info@^10.3.0:
|
||||||
version "8.4.8"
|
version "10.3.0"
|
||||||
resolved "https://registry.yarnpkg.com/react-native-device-info/-/react-native-device-info-8.4.8.tgz#fc92ae423e47db6cfbf30c30012e09cee63727fa"
|
resolved "https://registry.yarnpkg.com/react-native-device-info/-/react-native-device-info-10.3.0.tgz#6bab64d84d3415dd00cc446c73ec5e2e61fddbe7"
|
||||||
integrity sha512-92676ZWHZHsPM/EW1ulgb2MuVfjYfMWRTWMbLcrCsipkcMaZ9Traz5mpsnCS7KZpsOksnvUinzDIjsct2XGc6Q==
|
integrity sha512-/ziZN1sA1REbJTv5mQZ4tXggcTvSbct+u5kCaze8BmN//lbxcTvWsU6NQd4IihLt89VkbX+14IGc9sVApSxd/w==
|
||||||
|
|
||||||
react-native-document-picker@^8.1.2:
|
react-native-document-picker@^8.1.2:
|
||||||
version "8.1.2"
|
version "8.1.2"
|
||||||
|
@ -17172,10 +17317,6 @@ react-native-iphone-x-helper@^1.0.3:
|
||||||
resolved "https://registry.yarnpkg.com/react-native-iphone-x-helper/-/react-native-iphone-x-helper-1.2.1.tgz#645e2ffbbb49e80844bb4cbbe34a126fda1e6772"
|
resolved "https://registry.yarnpkg.com/react-native-iphone-x-helper/-/react-native-iphone-x-helper-1.2.1.tgz#645e2ffbbb49e80844bb4cbbe34a126fda1e6772"
|
||||||
integrity sha512-/VbpIEp8tSNNHIvstuA3Swx610whci1Zpc9mqNkqn14DkMbw+ORviln2u0XyHG1kPvvwTNGZY6QpeFwxYaSdbQ==
|
integrity sha512-/VbpIEp8tSNNHIvstuA3Swx610whci1Zpc9mqNkqn14DkMbw+ORviln2u0XyHG1kPvvwTNGZY6QpeFwxYaSdbQ==
|
||||||
|
|
||||||
react-native-jitsi-meet@RocketChat/react-native-jitsi-meet:
|
|
||||||
version "3.6.0"
|
|
||||||
resolved "https://codeload.github.com/RocketChat/react-native-jitsi-meet/tar.gz/90bae9b9d779c13829d7dc618e31d11dba60140d"
|
|
||||||
|
|
||||||
react-native-keycommands@2.0.3:
|
react-native-keycommands@2.0.3:
|
||||||
version "2.0.3"
|
version "2.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/react-native-keycommands/-/react-native-keycommands-2.0.3.tgz#09b799c1f70832e5cd9fbdb712ddaa3ee683f70e"
|
resolved "https://registry.yarnpkg.com/react-native-keycommands/-/react-native-keycommands-2.0.3.tgz#09b799c1f70832e5cd9fbdb712ddaa3ee683f70e"
|
||||||
|
@ -17412,9 +17553,9 @@ react-native-webview@10.3.2:
|
||||||
escape-string-regexp "2.0.0"
|
escape-string-regexp "2.0.0"
|
||||||
invariant "2.2.4"
|
invariant "2.2.4"
|
||||||
|
|
||||||
react-native@RocketChat/react-native#0.68.2:
|
react-native@RocketChat/react-native#281140d2e39d66a8e486db397ce0bf5bd0e334fc:
|
||||||
version "0.68.2"
|
version "0.68.2"
|
||||||
resolved "https://codeload.github.com/RocketChat/react-native/tar.gz/fa9253e56a8533688e92de2e977bd120213d96aa"
|
resolved "https://codeload.github.com/RocketChat/react-native/tar.gz/281140d2e39d66a8e486db397ce0bf5bd0e334fc"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@jest/create-cache-key-function" "^27.0.1"
|
"@jest/create-cache-key-function" "^27.0.1"
|
||||||
"@react-native-community/cli" "^7.0.3"
|
"@react-native-community/cli" "^7.0.3"
|
||||||
|
@ -17764,7 +17905,12 @@ regenerate@^1.4.2:
|
||||||
resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a"
|
resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a"
|
||||||
integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==
|
integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==
|
||||||
|
|
||||||
regenerator-runtime@^0.13.2, regenerator-runtime@^0.13.3, regenerator-runtime@^0.13.4:
|
regenerator-runtime@^0.13.2:
|
||||||
|
version "0.13.11"
|
||||||
|
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9"
|
||||||
|
integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==
|
||||||
|
|
||||||
|
regenerator-runtime@^0.13.3, regenerator-runtime@^0.13.4:
|
||||||
version "0.13.5"
|
version "0.13.5"
|
||||||
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697"
|
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697"
|
||||||
integrity sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==
|
integrity sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==
|
||||||
|
@ -18009,7 +18155,7 @@ resolve-cwd@^3.0.0:
|
||||||
resolve-from@^3.0.0:
|
resolve-from@^3.0.0:
|
||||||
version "3.0.0"
|
version "3.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748"
|
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748"
|
||||||
integrity sha1-six699nWiBvItuZTM17rywoYh0g=
|
integrity sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==
|
||||||
|
|
||||||
resolve-from@^4.0.0:
|
resolve-from@^4.0.0:
|
||||||
version "4.0.0"
|
version "4.0.0"
|
||||||
|
@ -18148,7 +18294,7 @@ rn-extensions-share@RocketChat/rn-extensions-share:
|
||||||
version "2.4.1"
|
version "2.4.1"
|
||||||
resolved "https://codeload.github.com/RocketChat/rn-extensions-share/tar.gz/4d7c0e4c2f300e4fb116af7b7cc0dbbc8169150c"
|
resolved "https://codeload.github.com/RocketChat/rn-extensions-share/tar.gz/4d7c0e4c2f300e4fb116af7b7cc0dbbc8169150c"
|
||||||
|
|
||||||
rn-fetch-blob@0.12.0:
|
rn-fetch-blob@^0.12.0:
|
||||||
version "0.12.0"
|
version "0.12.0"
|
||||||
resolved "https://registry.yarnpkg.com/rn-fetch-blob/-/rn-fetch-blob-0.12.0.tgz#ec610d2f9b3f1065556b58ab9c106eeb256f3cba"
|
resolved "https://registry.yarnpkg.com/rn-fetch-blob/-/rn-fetch-blob-0.12.0.tgz#ec610d2f9b3f1065556b58ab9c106eeb256f3cba"
|
||||||
integrity sha512-+QnR7AsJ14zqpVVUbzbtAjq0iI8c9tCg49tIoKO2ezjzRunN7YL6zFSFSWZm6d+mE/l9r+OeDM3jmb2tBb2WbA==
|
integrity sha512-+QnR7AsJ14zqpVVUbzbtAjq0iI8c9tCg49tIoKO2ezjzRunN7YL6zFSFSWZm6d+mE/l9r+OeDM3jmb2tBb2WbA==
|
||||||
|
@ -18514,9 +18660,9 @@ shell-quote@1.7.2, shell-quote@^1.7.2:
|
||||||
integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==
|
integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==
|
||||||
|
|
||||||
shell-quote@^1.6.1, shell-quote@^1.7.3:
|
shell-quote@^1.6.1, shell-quote@^1.7.3:
|
||||||
version "1.7.3"
|
version "1.7.4"
|
||||||
resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.3.tgz#aa40edac170445b9a431e17bb62c0b881b9c4123"
|
resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.4.tgz#33fe15dee71ab2a81fcbd3a52106c5cfb9fb75d8"
|
||||||
integrity sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==
|
integrity sha512-8o/QEhSSRb1a5i7TFR0iM4G16Z0vYB2OQVs4G3aAFXjn3T6yEx8AZxy1PgDF7I00LZHYA3WxaSYIf5e5sAX8Rw==
|
||||||
|
|
||||||
side-channel@^1.0.4:
|
side-channel@^1.0.4:
|
||||||
version "1.0.4"
|
version "1.0.4"
|
||||||
|
@ -19959,9 +20105,9 @@ unbox-primitive@^1.0.2:
|
||||||
which-boxed-primitive "^1.0.2"
|
which-boxed-primitive "^1.0.2"
|
||||||
|
|
||||||
underscore@^1.8.3:
|
underscore@^1.8.3:
|
||||||
version "1.10.2"
|
version "1.13.6"
|
||||||
resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.10.2.tgz#73d6aa3668f3188e4adb0f1943bd12cfd7efaaaf"
|
resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.6.tgz#04786a1f589dc6c09f761fc5f45b89e935136441"
|
||||||
integrity sha512-N4P+Q/BuyuEKFJ43B9gYuOj4TQUHXX+j2FqguVOpjkssLUUrnJofCcBccJSCoeturDoZU6GorDTHSvUDlSQbTg==
|
integrity sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==
|
||||||
|
|
||||||
unfetch@^4.2.0:
|
unfetch@^4.2.0:
|
||||||
version "4.2.0"
|
version "4.2.0"
|
||||||
|
|
Loading…
Reference in New Issue