From 75490e9967cde64f7d97c14f886b3171a748a8ca Mon Sep 17 00:00:00 2001
From: Maria Marchenkova <35371977+marchenk0va@users.noreply.github.com>
Date: Fri, 22 May 2020 18:09:44 +0200
Subject: [PATCH] [ios] Add vendored @react-native-community/segmented-control
(#8038)
---
apps/bare-expo/package.json | 1 +
apps/native-component-list/package.json | 1 +
.../src/navigation/ExpoComponents.ts | 2 +
.../src/screens/ExpoComponentsScreen.tsx | 1 +
.../src/screens/SegmentedControlScreen.tsx | 104 +++++
docs/common/navigation.js | 1 +
.../SegmentedControl/RNSegmentedControl.h | 17 +
.../SegmentedControl/RNSegmentedControl.m | 111 +++++
.../RNSegmentedControlManager.h | 12 +
.../RNSegmentedControlManager.m | 34 ++
packages/expo/bundledNativeModules.json | 1 +
.../src/commands/UpdateVendoredModule.ts | 10 +
yarn.lock | 399 +++++++++++++++++-
13 files changed, 693 insertions(+), 1 deletion(-)
create mode 100644 apps/native-component-list/src/screens/SegmentedControlScreen.tsx
create mode 100644 ios/Exponent/Versioned/Core/Api/Components/SegmentedControl/RNSegmentedControl.h
create mode 100644 ios/Exponent/Versioned/Core/Api/Components/SegmentedControl/RNSegmentedControl.m
create mode 100644 ios/Exponent/Versioned/Core/Api/Components/SegmentedControl/RNSegmentedControlManager.h
create mode 100644 ios/Exponent/Versioned/Core/Api/Components/SegmentedControl/RNSegmentedControlManager.m
diff --git a/apps/bare-expo/package.json b/apps/bare-expo/package.json
index a669fc60c31b0..457ea963f77c5 100644
--- a/apps/bare-expo/package.json
+++ b/apps/bare-expo/package.json
@@ -79,6 +79,7 @@
},
"dependencies": {
"@babel/runtime": "^7.5.5",
+ "@react-native-community/segmented-control": "^1.4.0",
"@react-navigation/web": "2.0.0-alpha.0",
"expo": "~37.0.6",
"expo-image": "~1.0.0-alpha.0",
diff --git a/apps/native-component-list/package.json b/apps/native-component-list/package.json
index faa8aa6c55e4f..791dbf1e20a52 100644
--- a/apps/native-component-list/package.json
+++ b/apps/native-component-list/package.json
@@ -16,6 +16,7 @@
"@react-native-community/datetimepicker": "2.2.2",
"@react-native-community/masked-view": "0.1.6",
"@react-native-community/netinfo": "5.5.0",
+ "@react-native-community/segmented-control": "^1.4.0",
"@react-native-community/viewpager": "3.3.0",
"@react-navigation/web": "2.0.0-alpha.0",
"date-format": "^2.0.0",
diff --git a/apps/native-component-list/src/navigation/ExpoComponents.ts b/apps/native-component-list/src/navigation/ExpoComponents.ts
index e7bca43f29020..0bc43db1bd2d1 100644
--- a/apps/native-component-list/src/navigation/ExpoComponents.ts
+++ b/apps/native-component-list/src/navigation/ExpoComponents.ts
@@ -36,6 +36,7 @@ const ReanimatedImagePreview = optionalRequire(() =>
const ReanimatedProgress = optionalRequire(() =>
require('../screens/Reanimated/ReanimatedProgressScreen')
);
+const SegmentedControl = optionalRequire(() => require('../screens/SegmentedControlScreen'));
const SVGExample = optionalRequire(() => require('../screens/SVG/SVGExampleScreen'));
const SVG = optionalRequire(() => require('../screens/SVG/SVGScreen'));
const SharedElement = optionalRequire(() => require('../screens/SharedElementScreen'));
@@ -67,6 +68,7 @@ const optionalScreens: { [key: string]: React.ComponentType | null } = {
ReanimatedProgress,
Gif,
FacebookAds,
+ SegmentedControl,
SVG,
SVGExample,
LinearGradient,
diff --git a/apps/native-component-list/src/screens/ExpoComponentsScreen.tsx b/apps/native-component-list/src/screens/ExpoComponentsScreen.tsx
index db0483c44ea1f..090f1da30958e 100644
--- a/apps/native-component-list/src/screens/ExpoComponentsScreen.tsx
+++ b/apps/native-component-list/src/screens/ExpoComponentsScreen.tsx
@@ -36,6 +36,7 @@ export default class ExpoComponentsScreen extends React.Component {
'MaskedView',
'ReanimatedImagePreview',
'ReanimatedProgress',
+ 'SegmentedControl',
'Screens',
'SharedElement',
'SVG',
diff --git a/apps/native-component-list/src/screens/SegmentedControlScreen.tsx b/apps/native-component-list/src/screens/SegmentedControlScreen.tsx
new file mode 100644
index 0000000000000..c6090205391dd
--- /dev/null
+++ b/apps/native-component-list/src/screens/SegmentedControlScreen.tsx
@@ -0,0 +1,104 @@
+import SegmentedControl from '@react-native-community/segmented-control';
+import React, { useState } from 'react';
+import { StyleSheet, ScrollView, Text, View } from 'react-native';
+
+// This example is a copy from https://github.com/react-native-community/segmented-control/blob/master/example
+
+const SegmentedControlScreen = () => {
+ const [values] = useState(['One', 'Two', 'Three']);
+ const [value, setValue] = useState('Unselected');
+ const [selectedIndex, setIndex] = useState(undefined);
+
+ const _onChange = event => {
+ setIndex(event.nativeEvent.selectedSegmentIndex);
+ };
+
+ const _onValueChange = (value: string) => {
+ setValue(value);
+ };
+
+ return (
+
+
+ Segmented controls can have values
+
+
+
+
+
+
+
+
+ Segmented controls can have pre-selected values
+
+
+
+
+ Segmented controls can be momentary
+
+
+
+
+ Segmented controls can be disabled
+
+
+
+
+ Custom colors can be provided
+
+
+
+
+
+
+
+
+
+
+ Custom colors can be provided
+
+
+
+
+ Value: {value} Index: {selectedIndex}
+
+
+
+ );
+};
+
+const styles = StyleSheet.create({
+ text: {
+ fontSize: 14,
+ textAlign: 'center',
+ fontWeight: '500',
+ margin: 10,
+ },
+ segmentContainer: {
+ marginBottom: 10,
+ },
+ segmentSection: {
+ marginBottom: 25,
+ },
+ container: {
+ paddingTop: 80,
+ },
+});
+
+export default SegmentedControlScreen;
diff --git a/docs/common/navigation.js b/docs/common/navigation.js
index d23020602e64d..03b89583a9d09 100644
--- a/docs/common/navigation.js
+++ b/docs/common/navigation.js
@@ -195,6 +195,7 @@ const sections = [
'SafeAreaView',
'ScrollView',
'SectionList',
+ 'SegmentedControl',
'SegmentedControlIOS',
'Slider',
'SnapshotViewIOS',
diff --git a/ios/Exponent/Versioned/Core/Api/Components/SegmentedControl/RNSegmentedControl.h b/ios/Exponent/Versioned/Core/Api/Components/SegmentedControl/RNSegmentedControl.h
new file mode 100644
index 0000000000000..f64aaff560b86
--- /dev/null
+++ b/ios/Exponent/Versioned/Core/Api/Components/SegmentedControl/RNSegmentedControl.h
@@ -0,0 +1,17 @@
+/**
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+#import
+
+#import
+
+@interface RNCSegmentedControl : UISegmentedControl
+
+@property (nonatomic, assign) NSInteger selectedIndex;
+@property (nonatomic, copy) RCTBubblingEventBlock onChange;
+
+@end
diff --git a/ios/Exponent/Versioned/Core/Api/Components/SegmentedControl/RNSegmentedControl.m b/ios/Exponent/Versioned/Core/Api/Components/SegmentedControl/RNSegmentedControl.m
new file mode 100644
index 0000000000000..a883ff2402139
--- /dev/null
+++ b/ios/Exponent/Versioned/Core/Api/Components/SegmentedControl/RNSegmentedControl.m
@@ -0,0 +1,111 @@
+/**
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+#import "RNCSegmentedControl.h"
+
+#import
+#import
+#import
+
+@implementation RNCSegmentedControl
+
+- (instancetype)initWithFrame:(CGRect)frame
+{
+ if ((self = [super initWithFrame:frame])) {
+ _selectedIndex = self.selectedSegmentIndex;
+ [self addTarget:self action:@selector(didChange)
+ forControlEvents:UIControlEventValueChanged];
+ }
+ return self;
+}
+
+- (void)setValues:(NSArray *)values
+{
+ [self removeAllSegments];
+ for (NSString *value in values) {
+ [self insertSegmentWithTitle:value atIndex:self.numberOfSegments animated:NO];
+ }
+ super.selectedSegmentIndex = _selectedIndex;
+}
+
+- (void)setSelectedIndex:(NSInteger)selectedIndex
+{
+ _selectedIndex = selectedIndex;
+ super.selectedSegmentIndex = selectedIndex;
+}
+
+- (void)setBackgroundColor:(UIColor *)backgroundColor
+{
+ #if defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && defined(__IPHONE_13_0) && \
+ __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_13_0
+ if (@available(iOS 13.0, *)) {
+ [super setBackgroundColor:backgroundColor];
+ }
+ #endif
+}
+
+- (void)setTextColor:(UIColor *)textColor
+{
+ #if defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && defined(__IPHONE_13_0) && \
+ __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_13_0
+ if (@available(iOS 13.0, *)) {
+ [self setTitleTextAttributes:@{NSForegroundColorAttributeName: textColor}
+ forState:UIControlStateNormal];
+ }
+ #endif
+}
+
+- (void)setActiveTextColor:(UIColor *)textColor
+{
+ #if defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && defined(__IPHONE_13_0) && \
+ __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_13_0
+ if (@available(iOS 13.0, *)) {
+ [self setTitleTextAttributes:@{NSForegroundColorAttributeName: textColor}
+ forState:UIControlStateSelected];
+ }
+ #endif
+}
+
+- (void)setTintColor:(UIColor *)tintColor
+{
+ [super setTintColor:tintColor];
+#if defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && defined(__IPHONE_13_0) && \
+ __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_13_0
+ if (@available(iOS 13.0, *)) {
+ [self setSelectedSegmentTintColor:tintColor];
+ [self setTitleTextAttributes:@{NSForegroundColorAttributeName: tintColor}
+ forState:UIControlStateNormal];
+ }
+#endif
+}
+
+- (void)didChange
+{
+ _selectedIndex = self.selectedSegmentIndex;
+ if (_onChange) {
+ _onChange(@{
+ @"value": [self titleForSegmentAtIndex:_selectedIndex],
+ @"selectedSegmentIndex": @(_selectedIndex)
+ });
+ }
+}
+
+- (void)setAppearance:(NSString *)appearanceString
+{
+#if defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && defined(__IPHONE_13_0) && \
+ __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_13_0
+ if (@available(iOS 13.0, *)) {
+ if ([appearanceString isEqual: @"dark"]) {
+ [self setOverrideUserInterfaceStyle:UIUserInterfaceStyleDark];
+ } else if ([appearanceString isEqual: @"light"]) {
+ [self setOverrideUserInterfaceStyle:UIUserInterfaceStyleLight];
+ }
+ }
+#endif
+}
+
+@end
diff --git a/ios/Exponent/Versioned/Core/Api/Components/SegmentedControl/RNSegmentedControlManager.h b/ios/Exponent/Versioned/Core/Api/Components/SegmentedControl/RNSegmentedControlManager.h
new file mode 100644
index 0000000000000..21cdb17adb8e2
--- /dev/null
+++ b/ios/Exponent/Versioned/Core/Api/Components/SegmentedControl/RNSegmentedControlManager.h
@@ -0,0 +1,12 @@
+/**
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+#import
+
+@interface RNCSegmentedControlManager : RCTViewManager
+
+@end
diff --git a/ios/Exponent/Versioned/Core/Api/Components/SegmentedControl/RNSegmentedControlManager.m b/ios/Exponent/Versioned/Core/Api/Components/SegmentedControl/RNSegmentedControlManager.m
new file mode 100644
index 0000000000000..0e7ddbe70989c
--- /dev/null
+++ b/ios/Exponent/Versioned/Core/Api/Components/SegmentedControl/RNSegmentedControlManager.m
@@ -0,0 +1,34 @@
+/**
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+#import "RNCSegmentedControlManager.h"
+
+#import
+#import
+#import "RNCSegmentedControl.h"
+
+@implementation RNCSegmentedControlManager
+
+RCT_EXPORT_MODULE()
+
+- (UIView *)view
+{
+ return [RNCSegmentedControl new];
+}
+
+RCT_EXPORT_VIEW_PROPERTY(values, NSArray)
+RCT_EXPORT_VIEW_PROPERTY(selectedIndex, NSInteger)
+RCT_EXPORT_VIEW_PROPERTY(tintColor, UIColor)
+RCT_EXPORT_VIEW_PROPERTY(backgroundColor, UIColor)
+RCT_EXPORT_VIEW_PROPERTY(textColor, UIColor)
+RCT_EXPORT_VIEW_PROPERTY(activeTextColor, UIColor)
+RCT_EXPORT_VIEW_PROPERTY(momentary, BOOL)
+RCT_EXPORT_VIEW_PROPERTY(enabled, BOOL)
+RCT_EXPORT_VIEW_PROPERTY(onChange, RCTBubblingEventBlock)
+RCT_EXPORT_VIEW_PROPERTY(appearance, NSString)
+
+@end
diff --git a/packages/expo/bundledNativeModules.json b/packages/expo/bundledNativeModules.json
index 35f5323b86f1c..5b922268f1c1b 100644
--- a/packages/expo/bundledNativeModules.json
+++ b/packages/expo/bundledNativeModules.json
@@ -90,6 +90,7 @@
"@react-native-community/datetimepicker": "2.2.2",
"@react-native-community/masked-view": "0.1.6",
"@react-native-community/viewpager": "3.3.0",
+ "@react-native-community/segmented-control": "1.4.0",
"expo-error-recovery": "~1.1.0",
"expo-module-template": "~8.2.0",
"expo-image-loader": "~1.0.1",
diff --git a/tools/expotools/src/commands/UpdateVendoredModule.ts b/tools/expotools/src/commands/UpdateVendoredModule.ts
index 40336ead6e4b2..4bb5366a2af46 100644
--- a/tools/expotools/src/commands/UpdateVendoredModule.ts
+++ b/tools/expotools/src/commands/UpdateVendoredModule.ts
@@ -333,6 +333,16 @@ const vendoredModulesConfig: { [key: string]: VendoredModuleConfig } = {
},
],
},
+ '@react-native-community/segmented-control': {
+ repoUrl: 'https://github.com/react-native-community/segmented-control',
+ installableInManagedApps: true,
+ steps: [
+ {
+ sourceIosPath: 'ios',
+ targetIosPath: 'Api/Components/SegmentedControl',
+ },
+ ],
+ },
};
async function getBundledNativeModulesAsync(): Promise<{ [key: string]: string }> {
diff --git a/yarn.lock b/yarn.lock
index 5f1bce2c3cb49..3f01255f383fc 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1792,6 +1792,16 @@
"@types/yargs" "^15.0.0"
chalk "^3.0.0"
+"@jest/types@^25.4.0":
+ version "25.4.0"
+ resolved "https://registry.yarnpkg.com/@jest/types/-/types-25.4.0.tgz#5afeb8f7e1cba153a28e5ac3c9fe3eede7206d59"
+ integrity sha512-XBeaWNzw2PPnGW5aXvZt3+VO60M+34RY3XDsCK5tW7kyj3RK0XClRutCfjqcBuaR2aBQTbluEDME9b5MB9UAPw==
+ dependencies:
+ "@types/istanbul-lib-coverage" "^2.0.0"
+ "@types/istanbul-reports" "^1.1.1"
+ "@types/yargs" "^15.0.0"
+ chalk "^3.0.0"
+
"@jimp/bmp@^0.9.8":
version "0.9.8"
resolved "https://registry.yarnpkg.com/@jimp/bmp/-/bmp-0.9.8.tgz#5933ab8fb359889bec380b0f7802163374933624"
@@ -2264,6 +2274,11 @@
dependencies:
serve-static "^1.13.1"
+
+"@react-native-community/cli-platform-android@^3.0.0-alpha.1", "@react-native-community/cli-platform-android@^3.0.3":
+ version "3.1.4"
+ resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-3.1.4.tgz#61f964dc311623e60b0fb29c5f3732cc8a6f076f"
+ integrity sha512-ClSdY20F0gzWVLTqCv7vHjnUqOcuq10jd9GgHX6lGSc2GI+Ql3/aQg3tmG4uY3KXNNwAv3U8QCoYgg1WGfwiHA==
"@react-native-community/cli-debugger-ui@^4.8.0":
version "4.8.0"
resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-4.8.0.tgz#9a6419b29be69422e0056bbb1874775750351d22"
@@ -2300,6 +2315,22 @@
slash "^3.0.0"
xmldoc "^1.1.2"
+"@react-native-community/cli-platform-android@^4.5.1":
+ version "4.7.0"
+ resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-4.7.0.tgz#aace6b8004b8d3aae40d6affaad1c472e0310a25"
+ integrity sha512-Lb6D0ipmFwYLJeQy5/NI4uJpeSHw85rd84C40wwpoUfsCgZhA93WUJdFkuQEIDkfTqs5Yqgl+/szhIZdnIXPxw==
+ dependencies:
+ "@react-native-community/cli-tools" "^4.7.0"
+ chalk "^3.0.0"
+ execa "^1.0.0"
+ fs-extra "^8.1.0"
+ glob "^7.1.3"
+ jetifier "^1.6.2"
+ lodash "^4.17.15"
+ logkitty "^0.6.0"
+ slash "^3.0.0"
+ xmldoc "^1.1.2"
+
"@react-native-community/cli-platform-ios@3.0.0", "@react-native-community/cli-platform-ios@4.7.0", "@react-native-community/cli-platform-ios@^3.0.0-alpha.1":
version "3.0.0"
resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-3.0.0.tgz#3a48a449c0c33af3b0b3d19d3256de99388fe15f"
@@ -2351,6 +2382,11 @@
resolved "https://registry.yarnpkg.com/@react-native-community/cli-types/-/cli-types-3.0.0.tgz#488d46605cb05e88537e030f38da236eeda74652"
integrity sha512-ng6Tm537E/M42GjE4TRUxQyL8sRfClcL7bQWblOCoxPZzJ2J3bdALsjeG3vDnVCIfI/R0AeFalN9KjMt0+Z/Zg==
+"@react-native-community/cli-types@^4.7.0":
+ version "4.7.0"
+ resolved "https://registry.yarnpkg.com/@react-native-community/cli-types/-/cli-types-4.7.0.tgz#871905753f8ff83cf10c48e8df3fdd63cd7667a0"
+ integrity sha512-Pw05Rsh/ENFs/Utv1SVRFfdMAn+W9yy1AOhyIKB36JX0Xw00sIZQDyZVsVfmaLSOpRpJ/qUdKWXB/WYV4XYELw==
+
"@react-native-community/cli@^3.0.0-alpha.1":
version "3.2.1"
resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-3.2.1.tgz#2a466801eb6080a1f73358c5d740c53c24ed8c6f"
@@ -2397,6 +2433,50 @@
wcwidth "^1.0.1"
ws "^1.1.0"
+"@react-native-community/cli@^4.5.1":
+ version "4.7.0"
+ resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-4.7.0.tgz#be692631356d14fd1ffe23f25b479dca9e8e7c95"
+ integrity sha512-DbpxcPC7lFCJ112dPXL4DBKh5TfH0QK2OTG7uEGjfsApT4c01Lae6OMTNSssXgXTcNJApqIT5a6GXK2vSE0CEQ==
+ dependencies:
+ "@hapi/joi" "^15.0.3"
+ "@react-native-community/cli-debugger-ui" "^4.7.0"
+ "@react-native-community/cli-tools" "^4.7.0"
+ "@react-native-community/cli-types" "^4.7.0"
+ chalk "^3.0.0"
+ command-exists "^1.2.8"
+ commander "^2.19.0"
+ compression "^1.7.1"
+ connect "^3.6.5"
+ cosmiconfig "^5.1.0"
+ deepmerge "^3.2.0"
+ envinfo "^7.1.0"
+ errorhandler "^1.5.0"
+ execa "^1.0.0"
+ find-up "^4.1.0"
+ fs-extra "^8.1.0"
+ glob "^7.1.3"
+ graceful-fs "^4.1.3"
+ inquirer "^3.0.6"
+ leven "^3.1.0"
+ lodash "^4.17.15"
+ metro "^0.58.0"
+ metro-config "^0.58.0"
+ metro-core "^0.58.0"
+ metro-react-native-babel-transformer "^0.58.0"
+ minimist "^1.2.0"
+ mkdirp "^0.5.1"
+ node-stream-zip "^1.9.1"
+ open "^6.2.0"
+ ora "^3.4.0"
+ pretty-format "^25.2.0"
+ semver "^6.3.0"
+ serve-static "^1.13.1"
+ shell-quote "1.6.1"
+ strip-ansi "^5.2.0"
+ sudo-prompt "^9.0.0"
+ wcwidth "^1.0.1"
+ ws "^1.1.0"
+
"@react-native-community/datetimepicker@2.2.2":
version "2.2.2"
resolved "https://registry.yarnpkg.com/@react-native-community/datetimepicker/-/datetimepicker-2.2.2.tgz#4c6388631179098cc5b289146e879764f79af4c1"
@@ -2414,6 +2494,11 @@
resolved "https://registry.yarnpkg.com/@react-native-community/netinfo/-/netinfo-5.5.0.tgz#7f1d2e301b8a1294da44fb44d7b3fd6ea4d40c8a"
integrity sha512-9fdOk1dxR3Bt+T4OuQxhf7EjyfbI6qVbPcNfTvVjGgRrx798ixAbBcCC+k5wp3LloVChVicXkyblu+wXEGiCWw==
+"@react-native-community/segmented-control@^1.4.0":
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/@react-native-community/segmented-control/-/segmented-control-1.4.0.tgz#16e449c76b2ea85784bc89cad2604a0bd5c42b42"
+ integrity sha512-uQg3SdYVTsmKKppX+DEGFz8z94wode1gzrsMQyVpI1/f19f/fkQgdg5LIq6dNzkXXDnS+lBDzqqxcVsStQYcyQ==
+
"@react-native-community/viewpager@3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@react-native-community/viewpager/-/viewpager-3.3.0.tgz#e613747a43a31a6f3278f817ba96fdaaa7941f23"
@@ -3383,6 +3468,11 @@ analytics-node@3.3.0:
remove-trailing-slash "^0.1.0"
uuid "^3.2.1"
+anser@^1.4.9:
+ version "1.4.9"
+ resolved "https://registry.yarnpkg.com/anser/-/anser-1.4.9.tgz#1f85423a5dcf8da4631a341665ff675b96845760"
+ integrity sha512-AI+BjTeGt2+WFk4eWcqbQ7snZpDBt8SaLlj0RT2h5xfdWaiy51OjYvqwMrNzJLGy8iOAL6nKDITWO+rd4MkYEA==
+
ansi-align@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f"
@@ -6874,6 +6964,13 @@ eslint-plugin-react@^7.19.0:
string.prototype.matchall "^4.0.2"
xregexp "^4.3.0"
+eslint-plugin-relay@1.4.1:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-relay/-/eslint-plugin-relay-1.4.1.tgz#5af2ac13e24bd01ad17b6a4014204918d65021cd"
+ integrity sha512-yb+p+4AxZTi2gXN7cZRfXMBFlRa5j6TtiVeq3yHXyy+tlgYNpxi/dDrP1+tcUTNP9vdaJovnfGZ5jp6kMiH9eg==
+ dependencies:
+ graphql "^14.0.0"
+
eslint-rule-composer@^0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz#79320c927b0c5c0d3d3d2b76c8b4a488f25bbaf9"
@@ -8491,6 +8588,11 @@ hermes-engine@^0.2.1:
resolved "https://registry.yarnpkg.com/hermes-engine/-/hermes-engine-0.2.1.tgz#25c0f1ff852512a92cb5c5cc47cf967e1e722ea2"
integrity sha512-eNHUQHuadDMJARpaqvlCZoK/Nitpj6oywq3vQ3wCwEsww5morX34mW5PmKWQTO7aU0ck0hgulxR+EVDlXygGxQ==
+hermes-engine@~0.4.0:
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/hermes-engine/-/hermes-engine-0.4.1.tgz#2d02b295596298643c4d24b86687eb554db9e950"
+ integrity sha512-Y3JFC8PD7eN3KpnrzrmvMAqp0IwnZrmP/oGOptvaSu33d7Zq/8b/2lHlZZkNvRl7/I1Q0umTX8TByK7zzLfTXA==
+
hex-color-regex@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e"
@@ -11182,6 +11284,24 @@ methods@~1.1.2:
resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=
+metro-babel-register@0.58.0:
+ version "0.58.0"
+ resolved "https://registry.yarnpkg.com/metro-babel-register/-/metro-babel-register-0.58.0.tgz#5c44786d49a044048df56cf476a2263491d4f53a"
+ integrity sha512-P5+G3ufhSYL6cA3a7xkbSJzzFBvtivj/PhWvGXFXnuFssDlMAX1CTktff+0gpka5Cd6B6QLt0UAMWulUAAE4Eg==
+ dependencies:
+ "@babel/core" "^7.0.0"
+ "@babel/plugin-proposal-class-properties" "^7.0.0"
+ "@babel/plugin-proposal-nullish-coalescing-operator" "^7.0.0"
+ "@babel/plugin-proposal-object-rest-spread" "^7.0.0"
+ "@babel/plugin-proposal-optional-catch-binding" "^7.0.0"
+ "@babel/plugin-proposal-optional-chaining" "^7.0.0"
+ "@babel/plugin-transform-async-to-generator" "^7.0.0"
+ "@babel/plugin-transform-flow-strip-types" "^7.0.0"
+ "@babel/plugin-transform-modules-commonjs" "^7.0.0"
+ "@babel/register" "^7.0.0"
+ core-js "^2.2.2"
+ escape-string-regexp "^1.0.5"
+
metro-babel-register@^0.56.0, metro-babel-register@^0.56.4:
version "0.56.4"
resolved "https://registry.yarnpkg.com/metro-babel-register/-/metro-babel-register-0.56.4.tgz#b0c627a1cfdd1bdd768f81af79481754e833a902"
@@ -11216,6 +11336,16 @@ metro-babel-transformer@^0.56.4:
"@babel/core" "^7.0.0"
metro-source-map "^0.56.4"
+metro-cache@0.58.0:
+ version "0.58.0"
+ resolved "https://registry.yarnpkg.com/metro-cache/-/metro-cache-0.58.0.tgz#630ea0a4626dfb9591c71fdb85dce14b5e9a04ec"
+ integrity sha512-jjW9zCTKxhgKcVkyQ6LHyna9Zdf4TK/45vvT1fPyyTk1RY82ZYjU1qs+84ycKEd08Ka4YcK9xcUew9SIDJYI8Q==
+ dependencies:
+ jest-serializer "^24.4.0"
+ metro-core "0.58.0"
+ mkdirp "^0.5.1"
+ rimraf "^2.5.4"
+
metro-cache@^0.56.4:
version "0.56.4"
resolved "https://registry.yarnpkg.com/metro-cache/-/metro-cache-0.56.4.tgz#542f9f8a35f8fb9d5576f46fd3ab4d4f42851a7e"
@@ -11226,6 +11356,18 @@ metro-cache@^0.56.4:
mkdirp "^0.5.1"
rimraf "^2.5.4"
+metro-config@0.58.0, metro-config@^0.58.0:
+ version "0.58.0"
+ resolved "https://registry.yarnpkg.com/metro-config/-/metro-config-0.58.0.tgz#1e24b43a5a00971d75662b1a0d3c04a13d4a1746"
+ integrity sha512-4vgBliXwL56vjUlYplvGMVSNrJJpkHuLcD+O20trV3FvPxKg4ZsvuOcNSxqDSMU26FCtIEJ15ojcuCbRL7KY0w==
+ dependencies:
+ cosmiconfig "^5.0.5"
+ jest-validate "^24.7.0"
+ metro "0.58.0"
+ metro-cache "0.58.0"
+ metro-core "0.58.0"
+ pretty-format "^24.7.0"
+
metro-config@^0.56.0, metro-config@^0.56.4:
version "0.56.4"
resolved "https://registry.yarnpkg.com/metro-config/-/metro-config-0.56.4.tgz#338fd8165fba59424cec427c1a881757945e57e9"
@@ -11238,6 +11380,16 @@ metro-config@^0.56.0, metro-config@^0.56.4:
metro-core "^0.56.4"
pretty-format "^24.7.0"
+metro-core@0.58.0, metro-core@^0.58.0:
+ version "0.58.0"
+ resolved "https://registry.yarnpkg.com/metro-core/-/metro-core-0.58.0.tgz#ad9f6645a2b439a3fbce7ce4e19b01b00375768a"
+ integrity sha512-RzXUjGFmCLOyzUqcKDvr91AldGtIOxnzNZrWUIiG8uC3kerVLo0mQp4YH3+XVm6fMNiLMg6iER7HLqD+MbpUjQ==
+ dependencies:
+ jest-haste-map "^24.7.1"
+ lodash.throttle "^4.1.1"
+ metro-resolver "0.58.0"
+ wordwrap "^1.0.0"
+
metro-core@^0.56.0, metro-core@^0.56.4:
version "0.56.4"
resolved "https://registry.yarnpkg.com/metro-core/-/metro-core-0.56.4.tgz#67cc41b3c0bf66e9c2306f50239a1080b1e82312"
@@ -11248,6 +11400,17 @@ metro-core@^0.56.0, metro-core@^0.56.4:
metro-resolver "^0.56.4"
wordwrap "^1.0.0"
+metro-inspector-proxy@0.58.0:
+ version "0.58.0"
+ resolved "https://registry.yarnpkg.com/metro-inspector-proxy/-/metro-inspector-proxy-0.58.0.tgz#6fefb0cdf25655919d56c82ebe09cd26eb00e636"
+ integrity sha512-oFqTyNTJdCdvcw1Ha6SKE7ITbSaoTbO4xpYownIoJR+WZ0ZfxbWpp225JkHuBJm9UcBAnG9c0CME924m3uBbaw==
+ dependencies:
+ connect "^3.6.5"
+ debug "^2.2.0"
+ rxjs "^5.4.3"
+ ws "^1.1.5"
+ yargs "^14.2.0"
+
metro-inspector-proxy@^0.56.4:
version "0.56.4"
resolved "https://registry.yarnpkg.com/metro-inspector-proxy/-/metro-inspector-proxy-0.56.4.tgz#7343ff3c5908af4fd99e96b6d646e24e99816be4"
@@ -11259,6 +11422,13 @@ metro-inspector-proxy@^0.56.4:
ws "^1.1.5"
yargs "^9.0.0"
+metro-minify-uglify@0.58.0:
+ version "0.58.0"
+ resolved "https://registry.yarnpkg.com/metro-minify-uglify/-/metro-minify-uglify-0.58.0.tgz#7e1066954bfd4f767ba6aca7feef676ca44c68b8"
+ integrity sha512-vRHsA7bCi7eCn3LXLm20EfY2NoWDyYOnmWaq/N8LB0OxL2L5DXRqMYAQK+prWGJ5S1yvVnDuuNVP+peQ9851TA==
+ dependencies:
+ uglify-es "^3.1.9"
+
metro-minify-uglify@^0.56.4:
version "0.56.4"
resolved "https://registry.yarnpkg.com/metro-minify-uglify/-/metro-minify-uglify-0.56.4.tgz#13589dfb1d43343608aacb7f78ddfcc052daa63c"
@@ -11348,6 +11518,17 @@ metro-react-native-babel-preset@^0.56.0, metro-react-native-babel-preset@^0.56.4
"@babel/template" "^7.0.0"
react-refresh "^0.4.0"
+metro-react-native-babel-transformer@0.58.0, metro-react-native-babel-transformer@^0.58.0:
+ version "0.58.0"
+ resolved "https://registry.yarnpkg.com/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.58.0.tgz#5da0e5a1b83c01d11626905fa59f34fda53a21a5"
+ integrity sha512-3A73+cRq1eUPQ8g+hPNGgMUMCGmtQjwqHfoG1DwinAoJ/kr4WOXWWbGZo0xHJNBe/zdHGl0uHcDCp2knPglTdQ==
+ dependencies:
+ "@babel/core" "^7.0.0"
+ babel-preset-fbjs "^3.3.0"
+ metro-babel-transformer "0.58.0"
+ metro-react-native-babel-preset "0.58.0"
+ metro-source-map "0.58.0"
+
metro-react-native-babel-transformer@^0.56.0:
version "0.56.4"
resolved "https://registry.yarnpkg.com/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.56.4.tgz#3c6e48b605c305362ee624e45ff338656e35fc1d"
@@ -11359,6 +11540,14 @@ metro-react-native-babel-transformer@^0.56.0:
metro-react-native-babel-preset "^0.56.4"
metro-source-map "^0.56.4"
+
+metro-resolver@0.58.0:
+ version "0.58.0"
+ resolved "https://registry.yarnpkg.com/metro-resolver/-/metro-resolver-0.58.0.tgz#4d03edc52e2e25d45f16688adf3b3f268ea60df9"
+ integrity sha512-XFbAKvCHN2iWqKeiRARzEXn69eTDdJVJC7lu16S4dPQJ+Dy82dZBr5Es12iN+NmbJuFgrAuIHbpWrdnA9tOf6Q==
+ dependencies:
+ absolute-path "^0.0.0"
+
metro-react-native-babel-transformer@^0.58.0:
version "0.58.0"
resolved "https://registry.yarnpkg.com/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.58.0.tgz#5da0e5a1b83c01d11626905fa59f34fda53a21a5"
@@ -11370,6 +11559,7 @@ metro-react-native-babel-transformer@^0.58.0:
metro-react-native-babel-preset "0.58.0"
metro-source-map "0.58.0"
+
metro-resolver@^0.56.4:
version "0.56.4"
resolved "https://registry.yarnpkg.com/metro-resolver/-/metro-resolver-0.56.4.tgz#9876f57bca37fd1bfcffd733541e2ee4a89fad7f"
@@ -11425,6 +11615,68 @@ metro-symbolicate@^0.56.4:
through2 "^2.0.1"
vlq "^1.0.0"
+metro@0.58.0, metro@^0.58.0:
+ version "0.58.0"
+ resolved "https://registry.yarnpkg.com/metro/-/metro-0.58.0.tgz#c037318c112f80dc96199780c8b401ab72cfd142"
+ integrity sha512-yi/REXX+/s4r7RjzXht+E+qE6nzvFIrEXO5Q61h+70Q7RODMU8EnlpXx04JYk7DevHuMhFaX+NWhCtRINzR4zA==
+ dependencies:
+ "@babel/code-frame" "^7.0.0"
+ "@babel/core" "^7.0.0"
+ "@babel/generator" "^7.5.0"
+ "@babel/parser" "^7.0.0"
+ "@babel/plugin-external-helpers" "^7.0.0"
+ "@babel/template" "^7.0.0"
+ "@babel/traverse" "^7.0.0"
+ "@babel/types" "^7.0.0"
+ absolute-path "^0.0.0"
+ async "^2.4.0"
+ babel-preset-fbjs "^3.3.0"
+ buffer-crc32 "^0.2.13"
+ chalk "^2.4.1"
+ ci-info "^2.0.0"
+ concat-stream "^1.6.0"
+ connect "^3.6.5"
+ debug "^2.2.0"
+ denodeify "^1.2.1"
+ eventemitter3 "^3.0.0"
+ fbjs "^1.0.0"
+ fs-extra "^1.0.0"
+ graceful-fs "^4.1.3"
+ image-size "^0.6.0"
+ invariant "^2.2.4"
+ jest-haste-map "^24.7.1"
+ jest-worker "^24.6.0"
+ json-stable-stringify "^1.0.1"
+ lodash.throttle "^4.1.1"
+ merge-stream "^1.0.1"
+ metro-babel-register "0.58.0"
+ metro-babel-transformer "0.58.0"
+ metro-cache "0.58.0"
+ metro-config "0.58.0"
+ metro-core "0.58.0"
+ metro-inspector-proxy "0.58.0"
+ metro-minify-uglify "0.58.0"
+ metro-react-native-babel-preset "0.58.0"
+ metro-resolver "0.58.0"
+ metro-source-map "0.58.0"
+ metro-symbolicate "0.58.0"
+ mime-types "2.1.11"
+ mkdirp "^0.5.1"
+ node-fetch "^2.2.0"
+ nullthrows "^1.1.1"
+ resolve "^1.5.0"
+ rimraf "^2.5.4"
+ serialize-error "^2.1.0"
+ source-map "^0.5.6"
+ strip-ansi "^4.0.0"
+ temp "0.8.3"
+ throat "^4.1.0"
+ wordwrap "^1.0.0"
+ write-file-atomic "^1.2.0"
+ ws "^1.1.5"
+ xpipe "^1.0.5"
+ yargs "^14.2.0"
+
metro@^0.56.0, metro@^0.56.4:
version "0.56.4"
resolved "https://registry.yarnpkg.com/metro/-/metro-0.56.4.tgz#be7e1380ee6ac3552c25ead8098eab261029e4d7"
@@ -12059,6 +12311,11 @@ node-releases@^1.1.25, node-releases@^1.1.53:
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.55.tgz#8af23b7c561d8e2e6e36a46637bab84633b07cee"
integrity sha512-H3R3YR/8TjT5WPin/wOoHOUPHgvj8leuU/Keta/rwelEQN9pA/S2Dx8/se4pZ2LBxSd0nAGzsNzhqwa77v7F1w==
+node-stream-zip@^1.9.1:
+ version "1.9.1"
+ resolved "https://registry.yarnpkg.com/node-stream-zip/-/node-stream-zip-1.9.1.tgz#66d210204da7c60e2d6d685eb21a11d016981fd0"
+ integrity sha512-7/Xs9gkuYF0WBimz5OrSc6UVKLDTxvBG2yLGtEK8PSx94d86o/6iQLvIe/140ATz35JDqHKWIxh3GcA3u5hB0w==
+
node-version@^1.0.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/node-version/-/node-version-1.2.0.tgz#34fde3ffa8e1149bd323983479dda620e1b5060d"
@@ -12214,7 +12471,7 @@ nth-check@^1.0.2, nth-check@~1.0.1:
dependencies:
boolbase "~1.0.0"
-nullthrows@^1.1.0:
+nullthrows@^1.1.0, nullthrows@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/nullthrows/-/nullthrows-1.1.1.tgz#7818258843856ae971eae4208ad7d7eb19a431b1"
integrity sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==
@@ -13531,6 +13788,16 @@ pretty-format@^25.1.0, pretty-format@^25.5.0:
ansi-styles "^4.0.0"
react-is "^16.12.0"
+pretty-format@^25.2.0:
+ version "25.4.0"
+ resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-25.4.0.tgz#c58801bb5c4926ff4a677fe43f9b8b99812c7830"
+ integrity sha512-PI/2dpGjXK5HyXexLPZU/jw5T9Q6S1YVXxxVxco+LIqzUFHXIbKZKdUVt7GcX7QUCr31+3fzhi4gN4/wUYPVxQ==
+ dependencies:
+ "@jest/types" "^25.4.0"
+ ansi-regex "^5.0.0"
+ ansi-styles "^4.0.0"
+ react-is "^16.12.0"
+
pretty-time@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/pretty-time/-/pretty-time-1.1.0.tgz#ffb7429afabb8535c346a34e41873adf3d74dd0e"
@@ -13960,6 +14227,14 @@ react-devtools-core@^3.6.3:
shell-quote "^1.6.1"
ws "^3.3.1"
+react-devtools-core@^4.0.6:
+ version "4.6.0"
+ resolved "https://registry.yarnpkg.com/react-devtools-core/-/react-devtools-core-4.6.0.tgz#2443b3c6fac78b801702af188abc6d83d56224e6"
+ integrity sha512-sjR3KC5VvGV7X6vzR3OTutPT5VeBcSKwoIXUwihpl1Nb4dkmweEbzCTPx2PYMVAqc+NZ5tPGhqBzXV+iGg5CNA==
+ dependencies:
+ shell-quote "^1.6.1"
+ ws "^7"
+
react-dom@16.9.0:
version "16.9.0"
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.9.0.tgz#5e65527a5e26f22ae3701131bcccaee9fb0d3962"
@@ -14165,6 +14440,31 @@ react-native-unimodules@~0.8.0:
unimodules-sensors-interface "~5.1.0"
unimodules-task-manager-interface "~5.1.0"
+react-native-unimodules@~0.9.0:
+ version "0.9.0"
+ resolved "https://registry.yarnpkg.com/react-native-unimodules/-/react-native-unimodules-0.9.0.tgz#5ce642ac50d124b9d41c09ff7cb397e22f1110ea"
+ integrity sha512-zcdNo74d/x19d0JkNiKL+4d71OaivumgfKVdmOYPOGRMOlct6KL3177TvkxgmF7ddlJJIlfftSFtnPuiOfejQA==
+ dependencies:
+ "@unimodules/core" "~5.1.0"
+ "@unimodules/react-native-adapter" "~5.2.0"
+ chalk "^2.4.2"
+ expo-asset "~8.1.0"
+ expo-constants "~9.0.0"
+ expo-file-system "~8.1.0"
+ expo-image-loader "~1.0.0"
+ expo-permissions "~8.1.0"
+ unimodules-app-loader "~1.0.0"
+ unimodules-barcode-scanner-interface "~5.1.0"
+ unimodules-camera-interface "~5.1.0"
+ unimodules-constants-interface "~5.1.0"
+ unimodules-face-detector-interface "~5.1.0"
+ unimodules-file-system-interface "~5.1.0"
+ unimodules-font-interface "~5.1.0"
+ unimodules-image-loader-interface "~5.1.0"
+ unimodules-permissions-interface "~5.1.0"
+ unimodules-sensors-interface "~5.1.0"
+ unimodules-task-manager-interface "~5.1.0"
+
react-native-view-shot@^3.1.2:
version "3.1.2"
resolved "https://registry.yarnpkg.com/react-native-view-shot/-/react-native-view-shot-3.1.2.tgz#8c8e84c67a4bc8b603e697dbbd59dbc9b4f84825"
@@ -14194,6 +14494,78 @@ react-native-webview@8.1.2:
escape-string-regexp "2.0.0"
invariant "2.2.4"
+react-native@*:
+ version "0.62.2"
+ resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.62.2.tgz#d831e11a3178705449142df19a70ac2ca16bad10"
+ integrity sha512-gADZZ3jcm2WFTjh8CCBCbl5wRSbdxqZGd+8UpNwLQFgrkp/uHorwAhLNqcd4+fHmADgPBltNL0uR1Vhv47zcOw==
+ dependencies:
+ "@babel/runtime" "^7.0.0"
+ "@react-native-community/cli" "^4.5.1"
+ "@react-native-community/cli-platform-android" "^4.5.1"
+ "@react-native-community/cli-platform-ios" "^4.5.0"
+ abort-controller "^3.0.0"
+ anser "^1.4.9"
+ base64-js "^1.1.2"
+ connect "^3.6.5"
+ create-react-class "^15.6.3"
+ escape-string-regexp "^1.0.5"
+ eslint-plugin-relay "1.4.1"
+ event-target-shim "^5.0.1"
+ fbjs "^1.0.0"
+ fbjs-scripts "^1.1.0"
+ hermes-engine "~0.4.0"
+ invariant "^2.2.4"
+ jsc-android "^245459.0.0"
+ metro-babel-register "0.58.0"
+ metro-react-native-babel-transformer "0.58.0"
+ metro-source-map "0.58.0"
+ nullthrows "^1.1.1"
+ pretty-format "^24.7.0"
+ promise "^7.1.1"
+ prop-types "^15.7.2"
+ react-devtools-core "^4.0.6"
+ react-refresh "^0.4.0"
+ regenerator-runtime "^0.13.2"
+ scheduler "0.17.0"
+ stacktrace-parser "^0.1.3"
+ use-subscription "^1.0.0"
+ whatwg-fetch "^3.0.0"
+
+react-native@0.61.4:
+ version "0.61.4"
+ resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.61.4.tgz#9ec6e8a2aa8eac57143dcfa39115c7d9a139bc2c"
+ integrity sha512-L8U+dDEy4vP74yWYbb+2XKaZeUkbpCUoSzcmeEM8Oznt69q71Q4fuYyxZGrzVW6tMYw9ZzGXTkfLuOh2nvLeVw==
+ dependencies:
+ "@babel/runtime" "^7.0.0"
+ "@react-native-community/cli" "^3.0.0-alpha.1"
+ "@react-native-community/cli-platform-android" "^3.0.0-alpha.1"
+ "@react-native-community/cli-platform-ios" "^3.0.0-alpha.1"
+ abort-controller "^3.0.0"
+ art "^0.10.0"
+ base64-js "^1.1.2"
+ connect "^3.6.5"
+ create-react-class "^15.6.3"
+ escape-string-regexp "^1.0.5"
+ event-target-shim "^5.0.1"
+ fbjs "^1.0.0"
+ fbjs-scripts "^1.1.0"
+ hermes-engine "^0.2.1"
+ invariant "^2.2.4"
+ jsc-android "^245459.0.0"
+ metro-babel-register "^0.56.0"
+ metro-react-native-babel-transformer "^0.56.0"
+ metro-source-map "^0.56.0"
+ nullthrows "^1.1.0"
+ pretty-format "^24.7.0"
+ promise "^7.1.1"
+ prop-types "^15.7.2"
+ react-devtools-core "^3.6.3"
+ react-refresh "^0.4.0"
+ regenerator-runtime "^0.13.2"
+ scheduler "0.15.0"
+ stacktrace-parser "^0.1.3"
+ whatwg-fetch "^3.0.0"
+
react-navigation-header-buttons@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/react-navigation-header-buttons/-/react-navigation-header-buttons-1.2.1.tgz#847e25da0422068f6549b477f17360dae7f383b1"
@@ -15053,6 +15425,14 @@ scheduler@0.15.0, scheduler@^0.15.0:
loose-envify "^1.1.0"
object-assign "^4.1.1"
+scheduler@0.17.0:
+ version "0.17.0"
+ resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.17.0.tgz#7c9c673e4ec781fac853927916d1c426b6f3ddfe"
+ integrity sha512-7rro8Io3tnCPuY4la/NuI5F2yfESpnfZyT6TtkXnSWVkcu0BCDJ+8gk5ozUaFaxpIyNuWAPXrH0yFcSi28fnDA==
+ dependencies:
+ loose-envify "^1.1.0"
+ object-assign "^4.1.1"
+
scheduler@^0.19.1:
version "0.19.1"
resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196"
@@ -18165,6 +18545,23 @@ yargs@^13.0.0:
y18n "^4.0.0"
yargs-parser "^13.1.2"
+yargs@^14.2.0:
+ version "14.2.3"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-14.2.3.tgz#1a1c3edced1afb2a2fea33604bc6d1d8d688a414"
+ integrity sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg==
+ dependencies:
+ cliui "^5.0.0"
+ decamelize "^1.2.0"
+ find-up "^3.0.0"
+ get-caller-file "^2.0.1"
+ require-directory "^2.1.1"
+ require-main-filename "^2.0.0"
+ set-blocking "^2.0.0"
+ string-width "^3.0.0"
+ which-module "^2.0.0"
+ y18n "^4.0.0"
+ yargs-parser "^15.0.1"
+
yargs@^15.3.1:
version "15.3.1"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.3.1.tgz#9505b472763963e54afe60148ad27a330818e98b"