update bugsnag camera-roll react-native-webview
This commit is contained in:
parent
18d09e62f6
commit
04c1a0fc12
|
@ -1,4 +1,4 @@
|
|||
#!/bin/sh
|
||||
. "$(dirname "$0")/_/husky.sh"
|
||||
|
||||
npm run precommit
|
||||
# npm run precommit
|
||||
|
|
|
@ -3,7 +3,7 @@ import { PermissionsAndroid, StyleSheet, View } from 'react-native';
|
|||
import { connect } from 'react-redux';
|
||||
import { StackNavigationOptions, StackNavigationProp } from '@react-navigation/stack';
|
||||
import { RouteProp } from '@react-navigation/native';
|
||||
import CameraRoll from '@react-native-community/cameraroll';
|
||||
import CameraRoll from '@react-native-camera-roll/camera-roll';
|
||||
import * as mime from 'react-native-mime-types';
|
||||
import RNFetchBlob from 'rn-fetch-blob';
|
||||
import { Video, ResizeMode } from 'expo-av';
|
||||
|
|
|
@ -28,16 +28,16 @@
|
|||
]
|
||||
},
|
||||
"dependencies": {
|
||||
"@bugsnag/react-native": "^7.10.5",
|
||||
"@bugsnag/react-native": "^7.19.0",
|
||||
"@codler/react-native-keyboard-aware-scroll-view": "^2.0.1",
|
||||
"@gorhom/bottom-sheet": "^4.3.1",
|
||||
"@hookform/resolvers": "^2.9.10",
|
||||
"@nozbe/watermelondb": "0.23.0",
|
||||
"@react-native-async-storage/async-storage": "^1.17.11",
|
||||
"@react-native-camera-roll/camera-roll": "^5.2.4",
|
||||
"@react-native-clipboard/clipboard": "^1.8.5",
|
||||
"@react-native-community/art": "^1.2.0",
|
||||
"@react-native-community/blur": "^4.1.0",
|
||||
"@react-native-community/cameraroll": "4.1.2",
|
||||
"@react-native-community/datetimepicker": "3.5.2",
|
||||
"@react-native-community/hooks": "2.6.0",
|
||||
"@react-native-community/netinfo": "6.0.0",
|
||||
|
@ -94,7 +94,7 @@
|
|||
"react-native-easy-toast": "^1.2.0",
|
||||
"react-native-fast-image": "RocketChat/react-native-fast-image.git#bump-version",
|
||||
"react-native-file-viewer": "^2.1.4",
|
||||
"react-native-gesture-handler": "2.4.2",
|
||||
"react-native-gesture-handler": "2.9.0",
|
||||
"react-native-image-crop-picker": "RocketChat/react-native-image-crop-picker",
|
||||
"react-native-image-progress": "^1.1.1",
|
||||
"react-native-keycommands": "2.0.3",
|
||||
|
@ -125,7 +125,7 @@
|
|||
"react-native-svg": "^12.3.0",
|
||||
"react-native-ui-lib": "RocketChat/react-native-ui-lib",
|
||||
"react-native-vector-icons": "9.1.0",
|
||||
"react-native-webview": "10.3.2",
|
||||
"react-native-webview": "11.26.1",
|
||||
"react-redux": "^8.0.5",
|
||||
"reactotron-react-native": "^5.0.3",
|
||||
"redux": "4.2.0",
|
||||
|
|
|
@ -1,220 +0,0 @@
|
|||
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
|
||||
--- 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;
|
||||
|
||||
+import java.security.cert.X509Certificate;
|
||||
+import java.security.PrivateKey;
|
||||
+import android.webkit.ClientCertRequest;
|
||||
+import android.os.AsyncTask;
|
||||
+import android.security.KeyChain;
|
||||
+
|
||||
/**
|
||||
* Manages instances of {@link WebView}
|
||||
* <p>
|
||||
@@ -140,6 +146,8 @@ public class RNCWebViewManager extends SimpleViewManager<WebView> {
|
||||
protected @Nullable String mUserAgent = null;
|
||||
protected @Nullable String mUserAgentWithApplicationName = 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<WebView> {
|
||||
mWebViewConfig = webViewConfig;
|
||||
}
|
||||
|
||||
+ public static void setCertificateAlias(String alias) {
|
||||
+ 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<WebView> {
|
||||
@Override
|
||||
protected void addEventEmitters(ThemedReactContext reactContext, WebView view) {
|
||||
// Do not register default touch emitter and let WebView implementation handle touches
|
||||
- view.setWebViewClient(new RNCWebViewClient());
|
||||
+ view.setWebViewClient(new RNCWebViewClient(reactContext));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -742,12 +754,56 @@ public class RNCWebViewManager extends SimpleViewManager<WebView> {
|
||||
|
||||
protected static class RNCWebViewClient extends WebViewClient {
|
||||
|
||||
+ protected ReactContext reactContext;
|
||||
protected boolean mLastLoadFailed = false;
|
||||
protected @Nullable
|
||||
ReadableArray mUrlPrefixesForDefaultIntent;
|
||||
protected RNCWebView.ProgressChangedFilter progressChangedFilter = null;
|
||||
protected @Nullable String ignoreErrFailedForThisURL = null;
|
||||
|
||||
+ public RNCWebViewClient(ReactContext reactContext) {
|
||||
+ this.reactContext = reactContext;
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public void onReceivedClientCertRequest(WebView view, ClientCertRequest request) {
|
||||
+ class SslStuff {
|
||||
+ PrivateKey privKey;
|
||||
+ X509Certificate[] certChain;
|
||||
+
|
||||
+ public SslStuff(PrivateKey privKey, X509Certificate[] certChain) {
|
||||
+ this.privKey = privKey;
|
||||
+ this.certChain = certChain;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if (certificateAlias != null) {
|
||||
+ AsyncTask<Void, Void, SslStuff> task = new AsyncTask<Void, Void, SslStuff>() {
|
||||
+ @Override
|
||||
+ protected SslStuff doInBackground(Void... params) {
|
||||
+ try {
|
||||
+ PrivateKey privKey = KeyChain.getPrivateKey(reactContext, certificateAlias);
|
||||
+ X509Certificate[] certChain = KeyChain.getCertificateChain(reactContext, certificateAlias);
|
||||
+
|
||||
+ return new SslStuff(privKey, certChain);
|
||||
+ } catch (Exception e) {
|
||||
+ return null;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ protected void onPostExecute(SslStuff sslStuff) {
|
||||
+ if (sslStuff != null) {
|
||||
+ request.proceed(sslStuff.privKey, sslStuff.certChain);
|
||||
+ }
|
||||
+ }
|
||||
+ };
|
||||
+ task.execute();
|
||||
+ } else {
|
||||
+ 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
|
||||
--- a/node_modules/react-native-webview/apple/RNCWebView.m
|
||||
+++ b/node_modules/react-native-webview/apple/RNCWebView.m
|
||||
@@ -17,6 +17,9 @@
|
||||
|
||||
#import "objc/runtime.h"
|
||||
|
||||
+#import "SecureStorage.h"
|
||||
+#import <MMKV/MMKV.h>
|
||||
+
|
||||
static NSTimer *keyboardTimer;
|
||||
static NSString *const HistoryShimName = @"ReactNativeHistoryShim";
|
||||
static NSString *const MessageHandlerName = @"ReactNativeWebView";
|
||||
@@ -737,6 +740,68 @@ static NSDictionary* customCertificatesForHost;
|
||||
customCertificatesForHost = certificates;
|
||||
}
|
||||
|
||||
+-(NSURLCredential *)getUrlCredential:(NSURLAuthenticationChallenge *)challenge path:(NSString *)path password:(NSString *)password
|
||||
+{
|
||||
+ NSString *authMethod = [[challenge protectionSpace] authenticationMethod];
|
||||
+ SecTrustRef serverTrust = challenge.protectionSpace.serverTrust;
|
||||
+
|
||||
+ if ([authMethod isEqualToString:NSURLAuthenticationMethodServerTrust] || path == nil || password == nil) {
|
||||
+ return [NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust];
|
||||
+ } else if (path && password) {
|
||||
+ NSMutableArray *policies = [NSMutableArray array];
|
||||
+ [policies addObject:(__bridge_transfer id)SecPolicyCreateSSL(true, (__bridge CFStringRef)challenge.protectionSpace.host)];
|
||||
+ SecTrustSetPolicies(serverTrust, (__bridge CFArrayRef)policies);
|
||||
+
|
||||
+ SecTrustResultType result;
|
||||
+ SecTrustEvaluate(serverTrust, &result);
|
||||
+
|
||||
+ if (![[NSFileManager defaultManager] fileExistsAtPath:path])
|
||||
+ {
|
||||
+ return [NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust];
|
||||
+ }
|
||||
+
|
||||
+ NSData *p12data = [NSData dataWithContentsOfFile:path];
|
||||
+ NSDictionary* options = @{ (id)kSecImportExportPassphrase:password };
|
||||
+ CFArrayRef rawItems = NULL;
|
||||
+ OSStatus status = SecPKCS12Import((__bridge CFDataRef)p12data,
|
||||
+ (__bridge CFDictionaryRef)options,
|
||||
+ &rawItems);
|
||||
+
|
||||
+ if (status != noErr) {
|
||||
+ return [NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust];
|
||||
+ }
|
||||
+
|
||||
+ NSArray* items = (NSArray*)CFBridgingRelease(rawItems);
|
||||
+ NSDictionary* firstItem = nil;
|
||||
+ if ((status == errSecSuccess) && ([items count]>0)) {
|
||||
+ firstItem = items[0];
|
||||
+ }
|
||||
+
|
||||
+ SecIdentityRef identity = (SecIdentityRef)CFBridgingRetain(firstItem[(id)kSecImportItemIdentity]);
|
||||
+ SecCertificateRef certificate = NULL;
|
||||
+ if (identity) {
|
||||
+ SecIdentityCopyCertificate(identity, &certificate);
|
||||
+ if (certificate) { CFRelease(certificate); }
|
||||
+ }
|
||||
+
|
||||
+ NSMutableArray *certificates = [[NSMutableArray alloc] init];
|
||||
+ [certificates addObject:CFBridgingRelease(certificate)];
|
||||
+
|
||||
+ return [NSURLCredential credentialWithIdentity:identity certificates:certificates persistence:NSURLCredentialPersistenceNone];
|
||||
+ }
|
||||
+
|
||||
+ return [NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust];
|
||||
+}
|
||||
+
|
||||
+- (NSString *)stringToHex:(NSString *)string
|
||||
+{
|
||||
+ char *utf8 = (char *)[string UTF8String];
|
||||
+ NSMutableString *hex = [NSMutableString string];
|
||||
+ while (*utf8) [hex appendFormat:@"%02X", *utf8++ & 0x00FF];
|
||||
+
|
||||
+ return [[NSString stringWithFormat:@"%@", hex] lowercaseString];
|
||||
+}
|
||||
+
|
||||
- (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;
|
||||
+
|
||||
+ // 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) {
|
File diff suppressed because it is too large
Load Diff
144
yarn.lock
144
yarn.lock
|
@ -3427,10 +3427,10 @@
|
|||
resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
|
||||
integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
|
||||
|
||||
"@bugsnag/core@^7.10.0":
|
||||
version "7.10.0"
|
||||
resolved "https://registry.yarnpkg.com/@bugsnag/core/-/core-7.10.0.tgz#4b4856141a95a1feadb1afc74265dc6ad8d40cc0"
|
||||
integrity sha512-sDa2nDxwsxHQx2/2/tsBWjYqH0TewCR8N/r5at6B+irwVkI0uts7Qc2JyqDTfiEiBXKVEXFK+fHTz1x9b8tsiA==
|
||||
"@bugsnag/core@^7.19.0":
|
||||
version "7.19.0"
|
||||
resolved "https://registry.yarnpkg.com/@bugsnag/core/-/core-7.19.0.tgz#7663a4addb1322e8315a4012dc9db2aad3fea53b"
|
||||
integrity sha512-2KGwdaLD9PhR7Wk7xPi3jGuGsKTatc/28U4TOZIDU3CgC2QhGjubwiXSECel5gwxhZ3jACKcMKSV2ovHhv1NrA==
|
||||
dependencies:
|
||||
"@bugsnag/cuid" "^3.0.0"
|
||||
"@bugsnag/safe-json-stringify" "^6.0.0"
|
||||
|
@ -3443,72 +3443,72 @@
|
|||
resolved "https://registry.yarnpkg.com/@bugsnag/cuid/-/cuid-3.0.0.tgz#2ee7642a30aee6dc86f5e7f824653741e42e5c35"
|
||||
integrity sha512-LOt8aaBI+KvOQGneBtpuCz3YqzyEAehd1f3nC5yr9TIYW1+IzYKa2xWS4EiMz5pPOnRPHkyyS5t/wmSmN51Gjg==
|
||||
|
||||
"@bugsnag/delivery-react-native@^7.10.0":
|
||||
version "7.10.0"
|
||||
resolved "https://registry.yarnpkg.com/@bugsnag/delivery-react-native/-/delivery-react-native-7.10.0.tgz#6c0b122869cf84aaae9ab4c1e2b591f53f4354ae"
|
||||
integrity sha512-J1hTgZJWL7wvj0k6WC1/nGEJi4UgxrhheI0vB6bROsGo2t4l/aBY87XzhgfSH3W0ktPbCO8UqdCw1cfXlIP/Kw==
|
||||
"@bugsnag/delivery-react-native@^7.19.0":
|
||||
version "7.19.0"
|
||||
resolved "https://registry.yarnpkg.com/@bugsnag/delivery-react-native/-/delivery-react-native-7.19.0.tgz#06e3b2d139a206c2d0ba2bdaa918219e17f067ce"
|
||||
integrity sha512-Zzl3VOwLDU4KHmf3VweyfNeJcQgL0NzbWG+OCxjCYen093Q4sxNTpWAVBCrYPRjQ2Sq3+D3+YbQg5UUrHL7kig==
|
||||
|
||||
"@bugsnag/plugin-console-breadcrumbs@^7.10.5":
|
||||
version "7.10.5"
|
||||
resolved "https://registry.yarnpkg.com/@bugsnag/plugin-console-breadcrumbs/-/plugin-console-breadcrumbs-7.10.5.tgz#1eed51691c423cea978ad900379ef6588748b229"
|
||||
integrity sha512-bzjef7iUxis9oNB0Ss5vP86j9+0dXJQWMJ5wUlHQci4qI0BsTdRUoRM5Jti/k/PQzQDLVCxN/hIzA8e/DLyG/A==
|
||||
"@bugsnag/plugin-console-breadcrumbs@^7.19.0":
|
||||
version "7.19.0"
|
||||
resolved "https://registry.yarnpkg.com/@bugsnag/plugin-console-breadcrumbs/-/plugin-console-breadcrumbs-7.19.0.tgz#89773558865f9ee4aa633408f7ab56a741e7b553"
|
||||
integrity sha512-ZHqPAK0WpbvWjj2wwSV8+C8+K9TOyQsfZnRJ7lIadbeUUJORmFRnG0vUHKBvwxMP7bqCj8fOe/S0kKF3dfMMKA==
|
||||
|
||||
"@bugsnag/plugin-network-breadcrumbs@^7.10.4":
|
||||
version "7.10.4"
|
||||
resolved "https://registry.yarnpkg.com/@bugsnag/plugin-network-breadcrumbs/-/plugin-network-breadcrumbs-7.10.4.tgz#9cf5d40400114c0037003c4a3cde0b40314f1d6b"
|
||||
integrity sha512-GkS3hToclhZd6U61GZPQi8iearAYDxOkgKgAVDQ4ql7F2W2XhMKSI/TvXXraNu0zVDKNhF1V0VmSFU340XPQJw==
|
||||
"@bugsnag/plugin-network-breadcrumbs@^7.19.0":
|
||||
version "7.19.0"
|
||||
resolved "https://registry.yarnpkg.com/@bugsnag/plugin-network-breadcrumbs/-/plugin-network-breadcrumbs-7.19.0.tgz#eb1cca507d6181e09e1b81a0780bfda1d1435fe2"
|
||||
integrity sha512-Farc0XuUoxv10kJE65zfgZlqujR7TDu8QjwxA4YDxEE41kFM8TAw0CAK15WkQK1UTsNACiiAETZGyU279eB65Q==
|
||||
|
||||
"@bugsnag/plugin-react-native-client-sync@^7.10.0":
|
||||
version "7.10.0"
|
||||
resolved "https://registry.yarnpkg.com/@bugsnag/plugin-react-native-client-sync/-/plugin-react-native-client-sync-7.10.0.tgz#8fd1113f7d740c5bc5e8891952d157f9d0bb1172"
|
||||
integrity sha512-WdyYItuEGXNav8orMjIfnqCm1VNQpTiDhrCOmx0+Y/I6hPSTAEfNTAsX1/vpotNZi8+gN5W1AvySMkcyKGsBXg==
|
||||
"@bugsnag/plugin-react-native-client-sync@^7.19.0":
|
||||
version "7.19.0"
|
||||
resolved "https://registry.yarnpkg.com/@bugsnag/plugin-react-native-client-sync/-/plugin-react-native-client-sync-7.19.0.tgz#f54f44562697ab73e9529a5d6f8d5aa6d9e3b388"
|
||||
integrity sha512-WyK5pZuIzqVrY0h0HimwuODCo9ty9AyDY3q1pmwjrz2y8JTT21nnwUtHybLsp5Rl2oJR4tG06QkWmazgHDkWdA==
|
||||
|
||||
"@bugsnag/plugin-react-native-event-sync@^7.10.0":
|
||||
version "7.10.0"
|
||||
resolved "https://registry.yarnpkg.com/@bugsnag/plugin-react-native-event-sync/-/plugin-react-native-event-sync-7.10.0.tgz#9b59687148ab8048b293a5a66133724aa89baf1c"
|
||||
integrity sha512-+B/8Djtlqq+Le/cYO264K3hcELx4+UDO82IP1RDzTLt8lGw4+p3iTABtLrtzx7Xzl02Qt0yC/3haD6Y6u2e7SQ==
|
||||
"@bugsnag/plugin-react-native-event-sync@^7.19.0":
|
||||
version "7.19.0"
|
||||
resolved "https://registry.yarnpkg.com/@bugsnag/plugin-react-native-event-sync/-/plugin-react-native-event-sync-7.19.0.tgz#be12dd1ca3def5e0ca046175fd2b7506778080e2"
|
||||
integrity sha512-OD73WFkDJAq8AheN2Jap+d17M1mPbEBc1Aulz9FCLs//QwlM2IOij8oarB1iF/wgK6FnIgLFEBPTZpGHuZUsyQ==
|
||||
|
||||
"@bugsnag/plugin-react-native-global-error-handler@^7.10.0":
|
||||
version "7.10.0"
|
||||
resolved "https://registry.yarnpkg.com/@bugsnag/plugin-react-native-global-error-handler/-/plugin-react-native-global-error-handler-7.10.0.tgz#db6c81cd93b3e768fa3c780f4bc5207e06ecc71e"
|
||||
integrity sha512-xM09XAsoVFQCIf0cHMOfSfAinkFK727eLmyZZ1JWihlTDQlCT9eQtzPs0HtT6iQh0RDOfkkyOCQ61N+Roy1BUQ==
|
||||
"@bugsnag/plugin-react-native-global-error-handler@^7.19.0":
|
||||
version "7.19.0"
|
||||
resolved "https://registry.yarnpkg.com/@bugsnag/plugin-react-native-global-error-handler/-/plugin-react-native-global-error-handler-7.19.0.tgz#cbf92d3b782bdc347b06ea2dcb9cbab2c22439df"
|
||||
integrity sha512-zf+KIHqGEAs2ekAzJCTS0rM1nKrmpIfznBhn72xZJwyfYrh0wbvjZjClDEwxDZ24uNVUUHrIymzdqxpHqVb0lg==
|
||||
|
||||
"@bugsnag/plugin-react-native-hermes@^7.10.0":
|
||||
version "7.10.0"
|
||||
resolved "https://registry.yarnpkg.com/@bugsnag/plugin-react-native-hermes/-/plugin-react-native-hermes-7.10.0.tgz#ac95098acf3fed9d257cf6653656faa54180075f"
|
||||
integrity sha512-jh81BXgC88n2LVZ0/7ONop/smDHGE+XdP2PQNa5/OSrS6v4WngpE5Hiv396X0z/yG5w9cCT4SbcmeWep23SKDA==
|
||||
"@bugsnag/plugin-react-native-hermes@^7.19.0":
|
||||
version "7.19.0"
|
||||
resolved "https://registry.yarnpkg.com/@bugsnag/plugin-react-native-hermes/-/plugin-react-native-hermes-7.19.0.tgz#d7a5d7918cc679b5ba591fda9dcf40acc18f4de4"
|
||||
integrity sha512-6SGTSR6NMS2t8j02ZQ6FlA+K/nKkZqvGA+8A7WS/0M8HAShzyoMpZH10kGrU2dcCaiEtmD2T6OGBSbpF+385Dg==
|
||||
|
||||
"@bugsnag/plugin-react-native-session@^7.10.0":
|
||||
version "7.10.0"
|
||||
resolved "https://registry.yarnpkg.com/@bugsnag/plugin-react-native-session/-/plugin-react-native-session-7.10.0.tgz#d2b1296a85a8854fae0b606952e21c01a08202a5"
|
||||
integrity sha512-OTT68vzDBjKBkntmbHxQPJNXzoiOhM3OuWt9d+bXNgzpLj1hAIN59mVt/6REZnTXCqcgY6rpEFP0UuPehONn4Q==
|
||||
"@bugsnag/plugin-react-native-session@^7.19.0":
|
||||
version "7.19.0"
|
||||
resolved "https://registry.yarnpkg.com/@bugsnag/plugin-react-native-session/-/plugin-react-native-session-7.19.0.tgz#52e472fdebfed06e3e6d2bcb6f3d80a07da2e2e2"
|
||||
integrity sha512-PVwsUstedp9wTqJU/IKdCaMFKP2YrqHXoeBtqRTQ7FFyr0K8wsiW7nZP2jM31VS388hZWSWBlHQPA/3LZ49tNQ==
|
||||
|
||||
"@bugsnag/plugin-react-native-unhandled-rejection@^7.10.5":
|
||||
version "7.10.5"
|
||||
resolved "https://registry.yarnpkg.com/@bugsnag/plugin-react-native-unhandled-rejection/-/plugin-react-native-unhandled-rejection-7.10.5.tgz#8dc030920e01861fc9a486b38bc0221e5adbe3e7"
|
||||
integrity sha512-esdBjxgGJ9mlYyBTtGXrLb2tJmGlVPS755VXhxMmR9zQ79QaWR10e0FIc+F9dQZeQRg1q/XfX6HOy81p/eanRg==
|
||||
"@bugsnag/plugin-react-native-unhandled-rejection@^7.19.0":
|
||||
version "7.19.0"
|
||||
resolved "https://registry.yarnpkg.com/@bugsnag/plugin-react-native-unhandled-rejection/-/plugin-react-native-unhandled-rejection-7.19.0.tgz#729adda2da1f3483de0195c6f5aee2fd59185b6e"
|
||||
integrity sha512-+XDk0OoeM6MZhBh7kEalbRwFuhCZST6Y1jOostfz0fhrmT4FdgQYi1FWcPNsUTcjqv7M48pOFZNx8yWI0lGaYg==
|
||||
|
||||
"@bugsnag/plugin-react@^7.10.0":
|
||||
version "7.10.0"
|
||||
resolved "https://registry.yarnpkg.com/@bugsnag/plugin-react/-/plugin-react-7.10.0.tgz#eef05c2d5d2cce45f622cce152d93cf777edf022"
|
||||
integrity sha512-o0oHd2BfGxFAQTrc1/u0T5RtWntOaeUREnXOfnrX2obi6JthWCcn44YUyUQ0IklcoZ+IAcLy27GNDggs5LfIew==
|
||||
"@bugsnag/plugin-react@^7.19.0":
|
||||
version "7.19.0"
|
||||
resolved "https://registry.yarnpkg.com/@bugsnag/plugin-react/-/plugin-react-7.19.0.tgz#3f86c6ed2745cd60a4099d0e14ca46f2b9cf501f"
|
||||
integrity sha512-owC4QXYJWGllMoOPcH5P7sbDIDuFLMCbjGAU6FwH5mBMObSQo+1ViSKImlTJQUFXATM8ySISTBVt7w3C6FFHng==
|
||||
|
||||
"@bugsnag/react-native@^7.10.5":
|
||||
version "7.10.5"
|
||||
resolved "https://registry.yarnpkg.com/@bugsnag/react-native/-/react-native-7.10.5.tgz#7710ac4551a71853e9ba5c7725b3dca4d8487ac4"
|
||||
integrity sha512-u2aWPHLWYOXO6kGbDCc7PvOUGqSxIypVq8l0YnnsoBpL+Iozksmo79R4uxFYEh1R55HUGyuFOH6qBafw3FVn2g==
|
||||
"@bugsnag/react-native@^7.19.0":
|
||||
version "7.19.0"
|
||||
resolved "https://registry.yarnpkg.com/@bugsnag/react-native/-/react-native-7.19.0.tgz#edb786d9d495406d2be3df29473557b3d165da6e"
|
||||
integrity sha512-/cwuMbO0zwmYCvcCbF43WwDmUOxxolSoNU5kUkZq+keAyM0gTt0cLvsJHGvRVpZBe2PXOLTEUPGVBrtf3OdLVg==
|
||||
dependencies:
|
||||
"@bugsnag/core" "^7.10.0"
|
||||
"@bugsnag/delivery-react-native" "^7.10.0"
|
||||
"@bugsnag/plugin-console-breadcrumbs" "^7.10.5"
|
||||
"@bugsnag/plugin-network-breadcrumbs" "^7.10.4"
|
||||
"@bugsnag/plugin-react" "^7.10.0"
|
||||
"@bugsnag/plugin-react-native-client-sync" "^7.10.0"
|
||||
"@bugsnag/plugin-react-native-event-sync" "^7.10.0"
|
||||
"@bugsnag/plugin-react-native-global-error-handler" "^7.10.0"
|
||||
"@bugsnag/plugin-react-native-hermes" "^7.10.0"
|
||||
"@bugsnag/plugin-react-native-session" "^7.10.0"
|
||||
"@bugsnag/plugin-react-native-unhandled-rejection" "^7.10.5"
|
||||
"@bugsnag/core" "^7.19.0"
|
||||
"@bugsnag/delivery-react-native" "^7.19.0"
|
||||
"@bugsnag/plugin-console-breadcrumbs" "^7.19.0"
|
||||
"@bugsnag/plugin-network-breadcrumbs" "^7.19.0"
|
||||
"@bugsnag/plugin-react" "^7.19.0"
|
||||
"@bugsnag/plugin-react-native-client-sync" "^7.19.0"
|
||||
"@bugsnag/plugin-react-native-event-sync" "^7.19.0"
|
||||
"@bugsnag/plugin-react-native-global-error-handler" "^7.19.0"
|
||||
"@bugsnag/plugin-react-native-hermes" "^7.19.0"
|
||||
"@bugsnag/plugin-react-native-session" "^7.19.0"
|
||||
"@bugsnag/plugin-react-native-unhandled-rejection" "^7.19.0"
|
||||
iserror "^0.0.2"
|
||||
|
||||
"@bugsnag/safe-json-stringify@^6.0.0":
|
||||
|
@ -4906,6 +4906,11 @@
|
|||
dependencies:
|
||||
merge-options "^3.0.4"
|
||||
|
||||
"@react-native-camera-roll/camera-roll@^5.2.4":
|
||||
version "5.2.4"
|
||||
resolved "https://registry.yarnpkg.com/@react-native-camera-roll/camera-roll/-/camera-roll-5.2.4.tgz#216d0ea4656b6538c10b60f057118c6f5e704c0d"
|
||||
integrity sha512-pEQDartgO8Nqy6QDm1efvIPpv4q5W+AtTgS05JGK/9x8VzSj8fJ/cvHmMZBlm/4sFpJyvJZ+1KYxKsvFJLbGuQ==
|
||||
|
||||
"@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"
|
||||
|
@ -4925,11 +4930,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-debugger-ui@^7.0.3":
|
||||
version "7.0.3"
|
||||
resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-7.0.3.tgz#3eeeacc5a43513cbcae56e5e965d77726361bcb4"
|
||||
|
@ -17285,10 +17285,10 @@ react-native-flipper@^0.164.0:
|
|||
resolved "https://registry.yarnpkg.com/react-native-flipper/-/react-native-flipper-0.164.0.tgz#64f6269a86a13a72e30f53ba9f5281d2073a7697"
|
||||
integrity sha512-iJhIe3rqx6okuzBp4AJsTa2b8VRAOGzoLRFx/4HGbaGvu8AurZjz8TTQkhJsRma8dsHN2b6KKZPvGGW3wdWzvA==
|
||||
|
||||
react-native-gesture-handler@2.4.2:
|
||||
version "2.4.2"
|
||||
resolved "https://registry.yarnpkg.com/react-native-gesture-handler/-/react-native-gesture-handler-2.4.2.tgz#de93760b0bc251d94e8ae692f9850ec3ed2e4f27"
|
||||
integrity sha512-K3oMiQV7NOVB5RvNlxkyJxU1Gn6m1cYu53MoFA542FVDSTR491d1eQkWDdqy4lW52rfF7IK7eE1LCi+kTJx7jw==
|
||||
react-native-gesture-handler@2.9.0:
|
||||
version "2.9.0"
|
||||
resolved "https://registry.yarnpkg.com/react-native-gesture-handler/-/react-native-gesture-handler-2.9.0.tgz#2f63812e523c646f25b9ad660fc6f75948e51241"
|
||||
integrity sha512-a0BcH3Qb1tgVqUutc6d3VuWQkI1AM3+fJx8dkxzZs9t06qA27QgURYFoklpabuWpsUTzuKRpxleykp25E8m7tg==
|
||||
dependencies:
|
||||
"@egjs/hammerjs" "^2.0.17"
|
||||
hoist-non-react-statics "^3.3.0"
|
||||
|
@ -17545,10 +17545,10 @@ react-native-vector-icons@9.1.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"
|
||||
|
|
Loading…
Reference in New Issue