;
++ visible: boolean;
+ }
+
+ export interface NotifierInterface {
diff --git a/patches/react-native-webview+10.3.2.patch b/patches/react-native-webview+11.26.1.patch
similarity index 70%
rename from patches/react-native-webview+10.3.2.patch
rename to patches/react-native-webview+11.26.1.patch
index 6c9db9d55..35b11542f 100644
--- a/patches/react-native-webview+10.3.2.patch
+++ b/patches/react-native-webview+11.26.1.patch
@@ -1,10 +1,10 @@
diff --git a/node_modules/react-native-webview/android/src/main/java/com/reactnativecommunity/webview/RNCWebViewManager.java b/node_modules/react-native-webview/android/src/main/java/com/reactnativecommunity/webview/RNCWebViewManager.java
-index ab869cf..08ce7ce 100644
+index 9cfe821..b7fe976 100644
--- a/node_modules/react-native-webview/android/src/main/java/com/reactnativecommunity/webview/RNCWebViewManager.java
+++ b/node_modules/react-native-webview/android/src/main/java/com/reactnativecommunity/webview/RNCWebViewManager.java
-@@ -84,6 +84,12 @@ import java.util.Map;
-
- import javax.annotation.Nullable;
+@@ -102,6 +102,12 @@ import java.util.Locale;
+ import java.util.Map;
+ import java.util.concurrent.atomic.AtomicReference;
+import java.security.cert.X509Certificate;
+import java.security.PrivateKey;
@@ -15,16 +15,16 @@ index ab869cf..08ce7ce 100644
/**
* Manages instances of {@link WebView}
*
-@@ -140,6 +146,8 @@ public class RNCWebViewManager extends SimpleViewManager {
- protected @Nullable String mUserAgent = null;
- protected @Nullable String mUserAgentWithApplicationName = null;
+@@ -166,6 +172,8 @@ public class RNCWebViewManager extends SimpleViewManager {
+ protected @Nullable String mDownloadingMessage = null;
+ protected @Nullable String mLackPermissionToDownloadMessage = null;
+ private static String certificateAlias = null;
+
public RNCWebViewManager() {
mWebViewConfig = new WebViewConfig() {
public void configWebView(WebView webView) {
-@@ -151,6 +159,10 @@ public class RNCWebViewManager extends SimpleViewManager {
+@@ -177,6 +185,10 @@ public class RNCWebViewManager extends SimpleViewManager {
mWebViewConfig = webViewConfig;
}
@@ -32,10 +32,10 @@ index ab869cf..08ce7ce 100644
+ certificateAlias = alias;
+ }
+
- protected static void dispatchEvent(WebView webView, Event event) {
- ReactContext reactContext = (ReactContext) webView.getContext();
- EventDispatcher eventDispatcher =
-@@ -562,7 +574,7 @@ public class RNCWebViewManager extends SimpleViewManager {
+ @Override
+ public String getName() {
+ return REACT_CLASS;
+@@ -687,7 +699,7 @@ public class RNCWebViewManager extends SimpleViewManager {
@Override
protected void addEventEmitters(ThemedReactContext reactContext, WebView view) {
// Do not register default touch emitter and let WebView implementation handle touches
@@ -44,17 +44,12 @@ index ab869cf..08ce7ce 100644
}
@Override
-@@ -742,12 +754,56 @@ public class RNCWebViewManager extends SimpleViewManager {
-
- protected static class RNCWebViewClient extends WebViewClient {
-
-+ protected ReactContext reactContext;
- protected boolean mLastLoadFailed = false;
- protected @Nullable
- ReadableArray mUrlPrefixesForDefaultIntent;
+@@ -913,6 +925,50 @@ public class RNCWebViewManager extends SimpleViewManager {
protected RNCWebView.ProgressChangedFilter progressChangedFilter = null;
protected @Nullable String ignoreErrFailedForThisURL = null;
-
+ protected @Nullable BasicAuthCredential basicAuthCredential = null;
++ protected ReactContext reactContext;
++
+ public RNCWebViewClient(ReactContext reactContext) {
+ this.reactContext = reactContext;
+ }
@@ -97,12 +92,11 @@ index ab869cf..08ce7ce 100644
+ super.onReceivedClientCertRequest(view, request);
+ }
+ }
-+
+
public void setIgnoreErrFailedForThisURL(@Nullable String url) {
ignoreErrFailedForThisURL = url;
- }
diff --git a/node_modules/react-native-webview/apple/RNCWebView.m b/node_modules/react-native-webview/apple/RNCWebView.m
-index 02b4238..e0635ed 100644
+index 7570d8d..eaa0e5d 100644
--- a/node_modules/react-native-webview/apple/RNCWebView.m
+++ b/node_modules/react-native-webview/apple/RNCWebView.m
@@ -17,6 +17,9 @@
@@ -115,8 +109,8 @@ index 02b4238..e0635ed 100644
static NSTimer *keyboardTimer;
static NSString *const HistoryShimName = @"ReactNativeHistoryShim";
static NSString *const MessageHandlerName = @"ReactNativeWebView";
-@@ -737,6 +740,68 @@ static NSDictionary* customCertificatesForHost;
- customCertificatesForHost = certificates;
+@@ -963,6 +966,68 @@ + (void)setCustomCertificatesForHost:(nullable NSDictionary*)certificates {
+ customCertificatesForHost = certificates;
}
+-(NSURLCredential *)getUrlCredential:(NSURLAuthenticationChallenge *)challenge path:(NSString *)path password:(NSString *)password
@@ -184,37 +178,36 @@ index 02b4238..e0635ed 100644
- (void) webView:(WKWebView *)webView
didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge
completionHandler:(void (^)(NSURLSessionAuthChallengeDisposition disposition, NSURLCredential * _Nullable))completionHandler
-@@ -746,7 +811,32 @@ static NSDictionary* customCertificatesForHost;
- host = webView.URL.host;
- }
- if ([[challenge protectionSpace] authenticationMethod] == NSURLAuthenticationMethodClientCertificate) {
-- completionHandler(NSURLSessionAuthChallengeUseCredential, clientAuthenticationCredential);
-+ NSString *host = challenge.protectionSpace.host;
+@@ -972,7 +1037,31 @@ - (void) webView:(WKWebView *)webView
+ host = webView.URL.host;
+ }
+ if ([[challenge protectionSpace] authenticationMethod] == NSURLAuthenticationMethodClientCertificate) {
+- completionHandler(NSURLSessionAuthChallengeUseCredential, clientAuthenticationCredential);
++ NSString *host = challenge.protectionSpace.host;
+
-+ // Read the clientSSL info from MMKV
-+ __block NSDictionary *clientSSL;
-+ SecureStorage *secureStorage = [[SecureStorage alloc] init];
-+
-+ // https://github.com/ammarahm-ed/react-native-mmkv-storage/blob/master/src/loader.js#L31
-+ NSString *key = [secureStorage getSecureKey:[self stringToHex:@"com.MMKV.default"]];
-+ NSURLCredential *credential = [NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust];
-+
-+ if (key == NULL) {
-+ return completionHandler(NSURLSessionAuthChallengePerformDefaultHandling, credential);
-+ }
-+
-+ NSData *cryptKey = [key dataUsingEncoding:NSUTF8StringEncoding];
-+ MMKV *mmkv = [MMKV mmkvWithID:@"default" cryptKey:cryptKey mode:MMKVMultiProcess];
-+ clientSSL = [mmkv getObjectOfClass:[NSDictionary class] forKey:host];
-+
-+
-+ if (clientSSL != (id)[NSNull null]) {
-+ NSString *path = [clientSSL objectForKey:@"path"];
-+ NSString *password = [clientSSL objectForKey:@"password"];
-+ credential = [self getUrlCredential:challenge path:path password:password];
-+ }
-+
-+ completionHandler(NSURLSessionAuthChallengeUseCredential, credential);
- return;
- }
- if ([[challenge protectionSpace] serverTrust] != nil && customCertificatesForHost != nil && host != nil) {
++ // Read the clientSSL info from MMKV
++ __block NSDictionary *clientSSL;
++ SecureStorage *secureStorage = [[SecureStorage alloc] init];
++
++ // https://github.com/ammarahm-ed/react-native-mmkv-storage/blob/master/src/loader.js#L31
++ NSString *key = [secureStorage getSecureKey:[self stringToHex:@"com.MMKV.default"]];
++ NSURLCredential *credential = [NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust];
++
++ if (key == NULL) {
++ return completionHandler(NSURLSessionAuthChallengePerformDefaultHandling, credential);
++ }
++
++ NSData *cryptKey = [key dataUsingEncoding:NSUTF8StringEncoding];
++ MMKV *mmkv = [MMKV mmkvWithID:@"default" cryptKey:cryptKey mode:MMKVMultiProcess];
++ clientSSL = [mmkv getObjectOfClass:[NSDictionary class] forKey:host];
++
++ if (clientSSL != (id)[NSNull null]) {
++ NSString *path = [clientSSL objectForKey:@"path"];
++ NSString *password = [clientSSL objectForKey:@"password"];
++ credential = [self getUrlCredential:challenge path:path password:password];
++ }
++
++ completionHandler(NSURLSessionAuthChallengeUseCredential, credential);
+ return;
+ }
+ if ([[challenge protectionSpace] serverTrust] != nil && customCertificatesForHost != nil && host != nil) {
diff --git a/tsconfig.json b/tsconfig.json
index ae6926a81..edd328f50 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,7 +4,7 @@
/* Basic Options */
// "incremental": true, /* Enable incremental compilation */
- "target": "esnext" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', 'ES2021', or 'ESNEXT'. */,
+ "target": "ESNEXT" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', 'ES2021', or 'ESNEXT'. */,
"module": "commonjs" /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */,
// "lib": [], /* Specify library files to be included in the compilation. */
"allowJs": true /* Allow javascript files to be compiled. */,
diff --git a/yarn.lock b/yarn.lock
index a61f6de87..c5978b61f 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -830,6 +830,13 @@
dependencies:
"@babel/types" "^7.14.5"
+"@babel/helper-module-imports@^7.14.5", "@babel/helper-module-imports@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e"
+ integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==
+ dependencies:
+ "@babel/types" "^7.18.6"
+
"@babel/helper-module-imports@^7.16.7":
version "7.16.7"
resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz#25612a8091a999704461c8a222d0efec5d091437"
@@ -837,13 +844,6 @@
dependencies:
"@babel/types" "^7.16.7"
-"@babel/helper-module-imports@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e"
- integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==
- dependencies:
- "@babel/types" "^7.18.6"
-
"@babel/helper-module-transforms@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.10.4.tgz#ca1f01fdb84e48c24d7506bb818c961f1da8805d"
@@ -4476,6 +4476,13 @@
"@jridgewell/resolve-uri" "^3.0.3"
"@jridgewell/sourcemap-codec" "^1.4.10"
+"@koale/useworker@^4.0.2":
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/@koale/useworker/-/useworker-4.0.2.tgz#cb540a2581cd6025307c3ca6685bc60748773e58"
+ integrity sha512-xPIPADtom8/3/4FLNj7MvNcBM/Z2FleH85Fdx2O869eoKW8+PoEgtSVvoxWjCWMA46Sm9A5/R1TyzNGc+yM0wg==
+ dependencies:
+ dequal "^1.0.0"
+
"@mdx-js/mdx@^1.6.22":
version "1.6.22"
resolved "https://registry.yarnpkg.com/@mdx-js/mdx/-/mdx-1.6.22.tgz#8a723157bf90e78f17dc0f27995398e6c731f1ba"
@@ -4621,6 +4628,11 @@
dependencies:
merge-options "^3.0.4"
+"@react-native-camera-roll/camera-roll@^5.6.0":
+ version "5.6.0"
+ resolved "https://registry.yarnpkg.com/@react-native-camera-roll/camera-roll/-/camera-roll-5.6.0.tgz#385082d57d694f3fd5ae386f8b8ce24b0969c5f9"
+ integrity sha512-a/GYwnBTxj1yKWB9m/qy8GzjowSocML8NbLT81wdMh0JzZYXCLze51BR2cb8JNDgRPzA9xe7KpD3j9qQOSOjag==
+
"@react-native-clipboard/clipboard@^1.8.5":
version "1.8.5"
resolved "https://registry.yarnpkg.com/@react-native-clipboard/clipboard/-/clipboard-1.8.5.tgz#b11276e38ef288b0fd70c0a38506e2deecc5fa5a"
@@ -4640,11 +4652,6 @@
resolved "https://registry.yarnpkg.com/@react-native-community/blur/-/blur-4.1.0.tgz#ed1361a569150c2249aae9b734e278fd262b70cd"
integrity sha512-esfuAjbAoeysfI3RhmCHlYwlXobXzcsVGZEHgDhVGB88aO9RktY6b13mYbo2FXZ8XnntcccuvXlgckvoIsggWg==
-"@react-native-community/cameraroll@4.1.2":
- version "4.1.2"
- resolved "https://registry.yarnpkg.com/@react-native-community/cameraroll/-/cameraroll-4.1.2.tgz#489c6bb6137571540d93c543d5fcf8c652b548ec"
- integrity sha512-jkdhMByMKD2CZ/5MPeBieYn8vkCfC4MOTouPpBpps3I8N6HUYJk+1JnDdktVYl2WINnqXpQptDA2YptVyifYAg==
-
"@react-native-community/cli-clean@^10.1.1":
version "10.1.1"
resolved "https://registry.yarnpkg.com/@react-native-community/cli-clean/-/cli-clean-10.1.1.tgz#4c73ce93a63a24d70c0089d4025daac8184ff504"
@@ -4814,10 +4821,10 @@
dependencies:
invariant "^2.2.4"
-"@react-native-community/hooks@2.6.0":
- version "2.6.0"
- resolved "https://registry.yarnpkg.com/@react-native-community/hooks/-/hooks-2.6.0.tgz#dd5f19601eb3684c6bcdd3df3d0c04cf44c24cff"
- integrity sha512-emBGKvhJ0h++lLJQ5ejsj+od9G67nEaihjvfSx7/JWvNrQGAhP9U0OZqgb9dkKzor9Ufaj9SGt8RNY97cGzttw==
+"@react-native-community/hooks@3.0.0":
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/@react-native-community/hooks/-/hooks-3.0.0.tgz#af5f2ca32eea59b792ce9e3d9a4cf0354f9b195f"
+ integrity sha512-g2OyxXHfwIytXUJitBR6Z/ISoOfp0WKx5FOv+NqJ/CrWjRDcTw6zXE5I1C9axfuh30kJqzWchVfCDrkzZYTxqg==
"@react-native-community/netinfo@6.0.0":
version "6.0.0"
@@ -5008,7 +5015,7 @@
"@rocket.chat/sdk@RocketChat/Rocket.Chat.js.SDK#mobile":
version "1.3.0-mobile"
- resolved "https://codeload.github.com/RocketChat/Rocket.Chat.js.SDK/tar.gz/454b4ba784095057b8de862eb99340311b672e15"
+ resolved "https://codeload.github.com/RocketChat/Rocket.Chat.js.SDK/tar.gz/ad71e7daa5bcb1a3b457b5de20fb0fc86581d04d"
dependencies:
js-sha256 "^0.9.0"
lru-cache "^4.1.1"
@@ -7316,7 +7323,7 @@ babel-plugin-macros@^2.0.0, babel-plugin-macros@^2.8.0:
cosmiconfig "^6.0.0"
resolve "^1.12.0"
-babel-plugin-macros@^3.0.1:
+babel-plugin-macros@^3.0.1, babel-plugin-macros@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz#9ef6dc74deb934b4db344dc973ee851d148c50c1"
integrity sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==
@@ -9424,6 +9431,11 @@ deprecated-react-native-prop-types@^3.0.1:
invariant "*"
prop-types "*"
+dequal@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/dequal/-/dequal-1.0.1.tgz#dbbf9795ec626e9da8bd68782f4add1d23700d8b"
+ integrity sha512-Fx8jxibzkJX2aJgyfSdLhr9tlRoTnHKrRJuu2XHlAgKioN2j19/Bcbe0d4mFXYZ3+wpE2KVobUVTfDutcD17xQ==
+
dequal@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.2.tgz#85ca22025e3a87e65ef75a7a437b35284a7e319d"
@@ -10539,6 +10551,14 @@ expo-av@^13.2.1:
resolved "https://registry.yarnpkg.com/expo-av/-/expo-av-13.2.1.tgz#ce502a4c5d4a57962fd9f5f1a40c76c39c88f5ee"
integrity sha512-mC0mYSzaOaZgXjzhW2l4Ag325JjH6q5IbptfwD7gkMOFYy7VPOMxEMUnetadbs3DDzmgE6vUWrTjUIUbwq59qg==
+expo-camera@^13.2.1:
+ version "13.2.1"
+ resolved "https://registry.yarnpkg.com/expo-camera/-/expo-camera-13.2.1.tgz#bfd1e2248d10a5da43d43a4cc77e378e5acf25bb"
+ integrity sha512-fZdRyF402jJGGmLVlumrLcr5Em9+Y2SO1MIlxLBtHXnybyHbTRMRAbzVapKX1Aryfujqadh+Kl+sdsWYkMuJjg==
+ dependencies:
+ "@koale/useworker" "^4.0.2"
+ invariant "^2.2.4"
+
expo-constants@~14.2.0, expo-constants@~14.2.1:
version "14.2.1"
resolved "https://registry.yarnpkg.com/expo-constants/-/expo-constants-14.2.1.tgz#b5b6b8079d2082c31ccf2cbc7cf97a0e83c229c3"
@@ -17242,10 +17262,10 @@ react-native-vector-icons@^9.2.0:
prop-types "^15.7.2"
yargs "^16.1.1"
-react-native-webview@10.3.2:
- version "10.3.2"
- resolved "https://registry.yarnpkg.com/react-native-webview/-/react-native-webview-10.3.2.tgz#c634946152099c95d521a3abc71065d1d642e192"
- integrity sha512-4A8FKL/puonkqQ1FOKd+iPulqRXCG4inmIK4pQ60zv9Ua+YkBKLxxofQiCvRwIXSSgAXYT+AE3rOHr3bx4A/cw==
+react-native-webview@11.26.1:
+ version "11.26.1"
+ resolved "https://registry.yarnpkg.com/react-native-webview/-/react-native-webview-11.26.1.tgz#658c09ed5162dc170b361e48c2dd26c9712879da"
+ integrity sha512-hC7BkxOpf+z0UKhxFSFTPAM4shQzYmZHoELa6/8a/MspcjEP7ukYKpuSUTLDywQditT8yI9idfcKvfZDKQExGw==
dependencies:
escape-string-regexp "2.0.0"
invariant "2.2.4"
@@ -19640,6 +19660,13 @@ transformation-matrix@^2.8.0:
resolved "https://registry.yarnpkg.com/transformation-matrix/-/transformation-matrix-2.12.0.tgz#cb826a23aa5d675d18940215ccb7613b8587830f"
integrity sha512-BbzXM7el7rNwIr1s87m8tcffH5qgY+HYROLn3BStRU9Y6vYTL37YZKadfNPEvGbP813iA1h8qflo4pa2TomkyQ==
+transliteration@^2.3.5:
+ version "2.3.5"
+ resolved "https://registry.yarnpkg.com/transliteration/-/transliteration-2.3.5.tgz#8f92309575f69e4a8a525dab4ff705ebcf961c45"
+ integrity sha512-HAGI4Lq4Q9dZ3Utu2phaWgtm3vB6PkLUFqWAScg/UW+1eZ/Tg6Exo4oC0/3VUol/w4BlefLhUUSVBr/9/ZGQOw==
+ dependencies:
+ yargs "^17.5.1"
+
traverse@~0.6.6:
version "0.6.6"
resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137"
@@ -19820,6 +19847,14 @@ type-is@~1.6.18:
media-typer "0.3.0"
mime-types "~2.1.24"
+typed-redux-saga@^1.5.0:
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/typed-redux-saga/-/typed-redux-saga-1.5.0.tgz#f70b47c92c6e29e0184d0c30d563c18d6ad0ae54"
+ integrity sha512-XHKliNtRNUegYAAztbVDb5Q+FMqYNQPaed6Xq2N8kz8AOmiOCVxW3uIj7TEptR1/ms6M9u3HEDfJr4qqz/PYrw==
+ optionalDependencies:
+ "@babel/helper-module-imports" "^7.14.5"
+ babel-plugin-macros "^3.1.0"
+
typedarray-to-buffer@^3.1.5:
version "3.1.5"
resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080"