diff --git a/.nvmrc b/.nvmrc
index db24ab9..8351c19 100644
--- a/.nvmrc
+++ b/.nvmrc
@@ -1 +1 @@
-10.13.0
+14
diff --git a/App.tsx b/App.tsx
index 096f3fe..2a7701e 100644
--- a/App.tsx
+++ b/App.tsx
@@ -4,119 +4,21 @@
*
*/
-import React, {useState} from 'react';
-import {
- SafeAreaView,
- StyleSheet,
- ScrollView,
- View,
- Text,
- StatusBar,
- Switch,
-} from 'react-native';
+import React from 'react';
+import {StatusBar} from 'react-native';
+// import {enableScreens} from 'react-native-screens';
-import {
- Header,
- LearnMoreLinks,
- Colors,
- DebugInstructions,
- ReloadInstructions,
-} from 'react-native/Libraries/NewAppScreen';
+import Router from './app/router';
-const App: React.FC = () => {
- const [isToggled, setIsToggled] = useState(false);
-
- const handleToggle = () => setIsToggled(!isToggled);
+// enableScreens();
+const App: React.FC = () => {
return (
<>
-
-
-
- {global.HermesInternal == null ? null : (
-
- Engine: Hermes
-
- )}
-
-
-
- Step One
-
- Edit App.js to change this
- screen and then come back to see your edits.
-
-
-
- See Your Changes
-
-
-
-
-
- Debug
-
-
-
-
-
- Learn More
-
- Read the docs to discover what to do next:
-
-
-
-
-
-
+
>
);
};
-const styles = StyleSheet.create({
- scrollView: {
- backgroundColor: Colors.lighter,
- },
- engine: {
- position: 'absolute',
- right: 0,
- },
- body: {
- backgroundColor: Colors.white,
- },
- sectionContainer: {
- marginTop: 32,
- paddingHorizontal: 24,
- },
- sectionTitle: {
- fontSize: 24,
- fontWeight: '600',
- color: Colors.black,
- },
- sectionDescription: {
- marginTop: 8,
- fontSize: 18,
- fontWeight: '400',
- color: Colors.dark,
- },
- highlight: {
- fontWeight: '700',
- },
- footer: {
- color: Colors.dark,
- fontSize: 12,
- fontWeight: '600',
- padding: 4,
- paddingRight: 12,
- textAlign: 'right',
- },
-});
-
export default App;
diff --git a/__tests__/App-test.js b/__tests__/App-test.js
deleted file mode 100644
index e693710..0000000
--- a/__tests__/App-test.js
+++ /dev/null
@@ -1,34 +0,0 @@
-import ReactNative from 'react-native';
-// Note: test renderer must be required after react-native.
-import {shallow} from 'enzyme';
-import renderer from 'react-test-renderer';
-
-import React from 'react';
-import App from '../App';
-
-const {View, Text, Switch} = ReactNative;
-
-describe('jest snapshot tests', () => {
- it('renders correctly', () => {
- const tree = renderer.create().toJSON();
- expect(tree).toMatchSnapshot();
- });
-});
-
-describe('enzyme tests', () => {
- it('should render a component', () => {
- const wrapper = shallow();
- expect(wrapper.find(View)).toHaveLength(5);
- expect(wrapper.find(Text)).toHaveLength(9);
- expect(wrapper.find(Switch)).toHaveLength(1);
- });
-
- it('should togggle switch to true', () => {
- const wrapper = shallow();
- const switchValueBeforeToggle = wrapper.find(Switch).first().props().value;
- expect(switchValueBeforeToggle).toBe(false);
- wrapper.find(Switch).first().props().onChange();
- const switchValueAfterToggle = wrapper.find(Switch).first().props().value;
- expect(switchValueAfterToggle).toBe(true);
- });
-});
diff --git a/__tests__/App-test.tsx b/__tests__/App-test.tsx
new file mode 100644
index 0000000..cf5aa4c
--- /dev/null
+++ b/__tests__/App-test.tsx
@@ -0,0 +1,14 @@
+import renderer from 'react-test-renderer';
+// import {fireEvent, render} from '@testing-library/react-native';
+
+import React from 'react';
+import App from '../App';
+
+jest.useFakeTimers();
+
+describe('jest snapshot tests', () => {
+ it('renders correctly', async () => {
+ const tree = renderer.create().toJSON();
+ expect(tree).toMatchSnapshot();
+ });
+});
diff --git a/__tests__/__snapshots__/App-test.js.snap b/__tests__/__snapshots__/App-test.js.snap
deleted file mode 100644
index 8eeaece..0000000
--- a/__tests__/__snapshots__/App-test.js.snap
+++ /dev/null
@@ -1,800 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`jest snapshot tests renders correctly 1`] = `
-
-
-
-
-
-
- Welcome to
-
-
- React Native
-
-
-
-
-
-
- Step One
-
-
- Edit
-
- App.js
-
- to change this screen and then come back to see your edits.
-
-
-
-
- See Your Changes
-
-
-
- Press
-
- Cmd + R
-
- in the simulator to reload your app's code.
-
-
-
-
-
- Debug
-
-
-
- Press
-
- Cmd + D
-
- in the simulator or
-
-
- Shake
-
- your device to open the React Native debug menu.
-
-
-
-
-
- Learn More
-
-
- Read the docs to discover what to do next:
-
-
-
-
-
-
- The Basics
-
-
- Explains a Hello World for React Native.
-
-
-
-
-
- Style
-
-
- Covers how to use the prop named style which controls the visuals.
-
-
-
-
-
- Layout
-
-
- React Native uses flexbox for layout, learn how it works.
-
-
-
-
-
- Components
-
-
- The full list of components and APIs inside React Native.
-
-
-
-
-
- Navigation
-
-
- How to handle moving between screens inside your application.
-
-
-
-
-
- Networking
-
-
- How to use the Fetch API in React Native.
-
-
-
-
-
- Help
-
-
- Need more help? There are many other React Native developers who may have the answer.
-
-
-
-
-
- Follow us on Twitter
-
-
- Stay in touch with the community, join in on Q&As and more by following React Native on Twitter.
-
-
-
-
-
-
-
-`;
diff --git a/__tests__/__snapshots__/App-test.tsx.snap b/__tests__/__snapshots__/App-test.tsx.snap
new file mode 100644
index 0000000..405aee4
--- /dev/null
+++ b/__tests__/__snapshots__/App-test.tsx.snap
@@ -0,0 +1,1157 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`jest snapshot tests renders correctly 1`] = `
+
+
+
+
+
+
+
+
+
+
+
+
+ Home
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Welcome to
+
+
+ React Native
+
+
+
+
+
+
+ Search Countries
+
+
+
+
+
+
+ Step One
+
+
+ Edit
+
+ App.js
+
+ to change this screen and then come back to see your edits.
+
+
+
+
+ See Your Changes
+
+
+
+ Press
+
+ Cmd + R
+
+ in the simulator to reload your app's code.
+
+
+
+
+
+ Debug
+
+
+
+ Press
+
+ Cmd + D
+
+ in the simulator or
+
+
+ Shake
+
+ your device to open the React Native debug menu.
+
+
+
+
+
+ Learn More
+
+
+ Read the docs to discover what to do next:
+
+
+
+
+
+
+ The Basics
+
+
+ Explains a Hello World for React Native.
+
+
+
+
+
+ Style
+
+
+ Covers how to use the prop named style which controls the visuals.
+
+
+
+
+
+ Layout
+
+
+ React Native uses flexbox for layout, learn how it works.
+
+
+
+
+
+ Components
+
+
+ The full list of components and APIs inside React Native.
+
+
+
+
+
+ Navigation
+
+
+ How to handle moving between screens inside your application.
+
+
+
+
+
+ Networking
+
+
+ How to use the Fetch API in React Native.
+
+
+
+
+
+ Help
+
+
+ Need more help? There are many other React Native developers who may have the answer.
+
+
+
+
+
+ Follow us on Twitter
+
+
+ Stay in touch with the community, join in on Q&As and more by following React Native on Twitter.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`;
diff --git a/__tests__/setupTests.js b/__tests__/setupTests.js
deleted file mode 100644
index 0e2cbd7..0000000
--- a/__tests__/setupTests.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// setup-tests.js
-
-import 'react-native';
-import 'jest-enzyme';
-import Adapter from '@wojtekmaj/enzyme-adapter-react-17'; //TODO: replace this with enzyme-adapter-react-17 when official react 17 support is added
-import Enzyme from 'enzyme';
-
-/**
- * Set up Enzyme to mount to DOM, simulate events,
- * and inspect the DOM in tests.
- */
-Enzyme.configure({adapter: new Adapter()});
-
-/**
- * Ignore some expected warnings
- * see: https://jestjs.io/docs/en/tutorial-react.html#snapshot-testing-with-mocks-enzyme-and-react-16
- * see https://github.com/Root-App/react-native-mock-render/issues/6
- */
-const originalConsoleError = console.error;
-console.error = message => {
- if (message.startsWith('Warning:')) {
- return;
- }
-
- originalConsoleError(message);
-};
diff --git a/app/router/index.tsx b/app/router/index.tsx
new file mode 100644
index 0000000..fc0ff9c
--- /dev/null
+++ b/app/router/index.tsx
@@ -0,0 +1,25 @@
+// import isEqual from 'lodash/isEqual';
+
+import React from 'react';
+
+import {NavigationContainer} from '@react-navigation/native';
+import {createStackNavigator} from '@react-navigation/stack';
+
+import routes from './routes';
+import {HOME} from './routeNames';
+
+const Stack = createStackNavigator();
+
+const Router: React.FC = () => (
+
+
+ {Object.keys(routes).map(routeKey => (
+
+
+
+ ))}
+
+
+);
+
+export default Router;
diff --git a/app/router/routeConfigs.ts b/app/router/routeConfigs.ts
new file mode 100644
index 0000000..6b27c43
--- /dev/null
+++ b/app/router/routeConfigs.ts
@@ -0,0 +1,13 @@
+import { HOME, SEARCH } from './routeNames';
+
+const routeConfigs = {
+ [SEARCH]: {
+ path: '/search',
+ },
+ [HOME]: {
+ path: '/',
+ parse: {},
+ },
+};
+
+export default routeConfigs;
diff --git a/app/router/routeNames.ts b/app/router/routeNames.ts
new file mode 100644
index 0000000..0890409
--- /dev/null
+++ b/app/router/routeNames.ts
@@ -0,0 +1,2 @@
+export const HOME = 'Home';
+export const SEARCH = 'Search';
diff --git a/app/router/routes.ts b/app/router/routes.ts
new file mode 100644
index 0000000..bed5012
--- /dev/null
+++ b/app/router/routes.ts
@@ -0,0 +1,18 @@
+import HomeScreen from 'screens/HomeScreen';
+import SearchScreen from 'screens/SearchScreen';
+
+import routeConfigs from './routeConfigs';
+import * as routeNames from './routeNames';
+
+const routes = {
+ [routeNames.HOME]: {
+ ...routeConfigs[routeNames.HOME],
+ screen: HomeScreen,
+ },
+ [routeNames.SEARCH]: {
+ ...routeConfigs[routeNames.SEARCH],
+ screen: SearchScreen,
+ },
+};
+
+export default routes;
diff --git a/app/router/types.ts b/app/router/types.ts
new file mode 100644
index 0000000..626b31e
--- /dev/null
+++ b/app/router/types.ts
@@ -0,0 +1,4 @@
+export type RootStackParamList = {
+ Home: {};
+ Search: {};
+};
diff --git a/app/screens/HomeScreen/Loadable.ts b/app/screens/HomeScreen/Loadable.ts
new file mode 100644
index 0000000..183fcce
--- /dev/null
+++ b/app/screens/HomeScreen/Loadable.ts
@@ -0,0 +1,7 @@
+/**
+ * Asynchronously loads the component for HomeScreen
+ */
+
+import loadable from 'react-suspense-loadable';
+
+export default loadable(() => import('./index'));
diff --git a/app/screens/HomeScreen/index.tsx b/app/screens/HomeScreen/index.tsx
new file mode 100644
index 0000000..d46e38f
--- /dev/null
+++ b/app/screens/HomeScreen/index.tsx
@@ -0,0 +1,83 @@
+import React, {useState} from 'react';
+// import Text from 'theme/Text';
+import {ScrollView, Text, View, Switch} from 'react-native';
+
+import {
+ Header,
+ LearnMoreLinks,
+ DebugInstructions,
+ ReloadInstructions,
+} from 'react-native/Libraries/NewAppScreen';
+
+import Button from 'theme/Button';
+
+import {SEARCH} from 'router/routeNames';
+
+import {HomeScreenProps} from './types';
+import styles from './style';
+
+function HomeScreen(props: HomeScreenProps): React.ReactChild {
+ const [isToggled, setIsToggled] = useState(false);
+
+ const handleToggle = () => setIsToggled(!isToggled);
+ return (
+
+
+ {global.HermesInternal == null ? null : (
+
+ Engine: Hermes
+
+ )}
+
+
+
+
+ handleToggle()}
+ />
+ Step One
+
+ Edit App.js to change this
+ screen and then come back to see your edits.
+
+
+
+ See Your Changes
+
+
+
+
+
+ Debug
+
+
+
+
+
+ Learn More
+
+ Read the docs to discover what to do next:
+
+
+
+
+
+ );
+}
+
+export default HomeScreen;
diff --git a/app/screens/HomeScreen/style.ts b/app/screens/HomeScreen/style.ts
new file mode 100644
index 0000000..bd59b72
--- /dev/null
+++ b/app/screens/HomeScreen/style.ts
@@ -0,0 +1,53 @@
+import { StyleSheet } from 'react-native';
+import Colors from 'theme/Colors';
+import Dimensions from 'theme/Dimensions';
+
+const style = StyleSheet.create({
+ screen: {
+ flex: 1,
+ alignItems: 'center',
+ justifyContent: 'center',
+ },
+ buttonContainer: {
+ flexDirection: 'row',
+ padding: Dimensions.space4x,
+ },
+ scrollView: {
+ backgroundColor: Colors.white,
+ },
+ engine: {
+ position: 'absolute',
+ right: 0,
+ },
+ body: {
+ backgroundColor: Colors.white,
+ },
+ sectionContainer: {
+ marginTop: 32,
+ paddingHorizontal: 24,
+ },
+ sectionTitle: {
+ fontSize: 24,
+ fontWeight: '600',
+ color: Colors.black,
+ },
+ sectionDescription: {
+ marginTop: 8,
+ fontSize: 18,
+ fontWeight: '400',
+ color: Colors.textGrey,
+ },
+ highlight: {
+ fontWeight: '700',
+ },
+ footer: {
+ color: Colors.tertiaryDark,
+ fontSize: 12,
+ fontWeight: '600',
+ padding: 4,
+ paddingRight: 12,
+ textAlign: 'right',
+ },
+});
+
+export default style;
diff --git a/app/screens/HomeScreen/types.ts b/app/screens/HomeScreen/types.ts
new file mode 100644
index 0000000..6ebf043
--- /dev/null
+++ b/app/screens/HomeScreen/types.ts
@@ -0,0 +1,12 @@
+import { RouteProp } from '@react-navigation/native';
+import { StackNavigationProp } from '@react-navigation/stack';
+import { RootStackParamList } from 'router/types';
+
+type HomeScreenRouteProp = RouteProp;
+
+type HomeScreenNavigationProp = StackNavigationProp;
+
+export type HomeScreenProps = {
+ route: HomeScreenRouteProp;
+ navigation: HomeScreenNavigationProp;
+};
diff --git a/app/screens/SearchScreen/Loadable.ts b/app/screens/SearchScreen/Loadable.ts
new file mode 100644
index 0000000..183fcce
--- /dev/null
+++ b/app/screens/SearchScreen/Loadable.ts
@@ -0,0 +1,7 @@
+/**
+ * Asynchronously loads the component for HomeScreen
+ */
+
+import loadable from 'react-suspense-loadable';
+
+export default loadable(() => import('./index'));
diff --git a/app/screens/SearchScreen/index.tsx b/app/screens/SearchScreen/index.tsx
new file mode 100644
index 0000000..cb95082
--- /dev/null
+++ b/app/screens/SearchScreen/index.tsx
@@ -0,0 +1,15 @@
+import React from 'react';
+import { Text, View } from 'react-native';
+
+import { SearchScreenProps } from './types';
+import style from './style';
+
+function SearchScreen(props: SearchScreenProps): React.ReactChild {
+ return (
+
+ Hello World
+
+ );
+}
+
+export default SearchScreen;
diff --git a/app/screens/SearchScreen/style.ts b/app/screens/SearchScreen/style.ts
new file mode 100644
index 0000000..e75c66c
--- /dev/null
+++ b/app/screens/SearchScreen/style.ts
@@ -0,0 +1,16 @@
+import { StyleSheet } from 'react-native';
+// import Colors from 'theme/Colors';
+
+const style = StyleSheet.create({
+ screen: {
+ flex: 1,
+ alignItems: 'center',
+ justifyContent: 'center',
+ },
+ buttonContainer: {
+ flexDirection: 'row',
+ padding: 12,
+ },
+});
+
+export default style;
diff --git a/app/screens/SearchScreen/types.ts b/app/screens/SearchScreen/types.ts
new file mode 100644
index 0000000..d8fc94e
--- /dev/null
+++ b/app/screens/SearchScreen/types.ts
@@ -0,0 +1,15 @@
+import { RouteProp } from '@react-navigation/native';
+import { StackNavigationProp } from '@react-navigation/stack';
+import { RootStackParamList } from 'router/types';
+
+type SearhScreenRouteProp = RouteProp;
+
+type SearhScreenNavigationProp = StackNavigationProp<
+ RootStackParamList,
+ 'Search'
+>;
+
+export type SearhScreenProps = {
+ route: SearhScreenRouteProp;
+ navigation: SearhScreenNavigationProp;
+};
diff --git a/app/theme/Button/index.tsx b/app/theme/Button/index.tsx
new file mode 100644
index 0000000..1bf53b8
--- /dev/null
+++ b/app/theme/Button/index.tsx
@@ -0,0 +1,80 @@
+/**
+ *
+ * Button
+ *
+ */
+import React, { useEffect, useRef } from 'react';
+import { Animated } from 'react-native';
+
+import Text from 'theme/Text';
+import TouchFeedback, { TouchFeedbackProps } from 'theme/TouchFeedback';
+
+import style from './style';
+
+const typeBackground = {
+ primary: style.primaryButton,
+ accent: style.accentButton,
+ tertiary: style.tertiaryButton,
+};
+const typeForeground = {
+ primary: style.primaryForeground,
+ accent: style.accentForeground,
+ tertiary: style.tertiaryForeground,
+};
+
+interface ButtonProps extends TouchFeedbackProps {
+ onPress: (...args: any[]) => any;
+ label: string | React.ReactNode;
+ mini?: boolean;
+ flex?: boolean;
+ type?: 'primary' | 'accent' | 'tertiary';
+ disabled?: boolean;
+ large?: boolean;
+ testID: string;
+}
+
+const Button: React.FC = ({
+ type = 'primary',
+ disabled = false,
+ onPress,
+ testID,
+ ...props
+}) => {
+ const animatedValue = useRef(new Animated.Value(disabled ? 0.5 : 1)).current;
+
+ useEffect(() => {
+ Animated.timing(animatedValue, {
+ toValue: disabled ? 0.5 : 1,
+ duration: 300,
+ useNativeDriver: true,
+ }).start();
+ }, [animatedValue, disabled]);
+
+ return (
+
+
+ {props.label}
+
+
+ );
+};
+
+export default Button;
diff --git a/app/theme/Button/style.ts b/app/theme/Button/style.ts
new file mode 100644
index 0000000..84b2d68
--- /dev/null
+++ b/app/theme/Button/style.ts
@@ -0,0 +1,81 @@
+import { StyleSheet } from 'react-native';
+
+import Colors from 'theme/Colors';
+import Dimensions from 'theme/Dimensions';
+
+const style = StyleSheet.create({
+ button: {
+ padding: Dimensions.space2x / 1.5,
+ margin: Dimensions.space1x,
+ borderRadius: Dimensions.borderRadius,
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'center',
+ borderWidth: 1,
+ },
+ large: {
+ padding: Dimensions.space2x,
+ paddingHorizontal: Dimensions.space2x,
+ },
+ flex: {
+ flex: 1,
+ },
+ primaryButton: {
+ backgroundColor: Colors.transparent,
+ borderColor: Colors.separator,
+ },
+ accentButton: {
+ backgroundColor: Colors.accent,
+ borderColor: Colors.accent,
+ },
+ tertiaryButton: {
+ backgroundColor: Colors.tertiary,
+ borderColor: Colors.tertiary,
+ },
+ primaryForeground: {
+ color: Colors.textBlack,
+ },
+ accentForeground: {
+ color: Colors.accentReverse,
+ },
+ tertiaryForeground: {
+ color: Colors.tertiaryReverse,
+ },
+ noBackgroundLabel: {
+ color: Colors.textGrey,
+ },
+ noBackground: {
+ backgroundColor: Colors.transparent,
+ },
+ greyButtonLabel: {
+ color: Colors.textBlack,
+ },
+ disabled: {
+ opacity: 0.5,
+ },
+ enabled: {
+ opacity: 1,
+ },
+ icon: {
+ fontSize: 14,
+ },
+ largeIcon: {
+ fontSize: 18,
+ },
+ image: {
+ width: 18,
+ height: 18,
+ },
+ label: {
+ fontSize: 14,
+ color: Colors.textBlack,
+ fontWeight: '500',
+ marginHorizontal: Dimensions.space1x,
+ textAlign: 'center',
+ },
+ largeLabel: {
+ fontSize: 16,
+ fontWeight: '500',
+ },
+});
+export default style;
diff --git a/app/theme/Button/tests/index.test.tsx b/app/theme/Button/tests/index.test.tsx
new file mode 100644
index 0000000..1296109
--- /dev/null
+++ b/app/theme/Button/tests/index.test.tsx
@@ -0,0 +1,35 @@
+import 'react-native';
+import React from 'react';
+import { render, fireEvent } from '@testing-library/react-native';
+
+// import { render } from 'utils/testWrapper';
+import Button from '../index';
+
+// Describing a test suite
+describe('', () => {
+ // Describing our test
+ it('Calls onPress', async () => {
+ // Mocking onPress method so we can check if its called or not
+ const onPress = jest.fn();
+
+ // test id to be applied on our button component
+ const testID = 'button';
+
+ // Rendering Button component using react-native-test-renderer.
+ const { getByTestId } = await render(
+ ,
+ );
+
+ // Grabbing our button component to perform actions on it.
+ const button = getByTestId(testID);
+
+ /**
+ * RNTL gives us API to fire events on node
+ * Here we are firing on press event
+ */
+ fireEvent.press(button);
+
+ // Asserting if given mock method is called or not.
+ expect(onPress).toHaveBeenCalledTimes(1);
+ });
+});
diff --git a/app/theme/Colors.ts b/app/theme/Colors.ts
new file mode 100644
index 0000000..d0e0180
--- /dev/null
+++ b/app/theme/Colors.ts
@@ -0,0 +1,53 @@
+export default {
+ white: '#ffffff',
+ black: '#000000',
+ grey: '#9E9E9E',
+
+ headerBackground: '#FDFBFB',
+ footerBackground: '#FDFBFB',
+
+ primary: '#F0F0F0',
+ primaryDark: '#DEDEDE',
+ primaryReverse: '#141412',
+
+ accentLight: '#0AB488',
+ accent: '#0AB488',
+ accentDark: '#029D74',
+ accentReverse: '#FFFFFF',
+ accentDisabled: '#0AB488',
+
+ tertiaryLight: '#F7A284',
+ tertiary: '#F3784E',
+ tertiaryDark: '#F3784E',
+ tertiaryReverse: '#FFFFFF',
+ tertiaryDisabled: '#F7A284',
+
+ textBlack: '#111',
+ textGrey: '#555',
+
+ transparent: 'rgba(255, 255, 255, 0)',
+ transparentBlack: 'rgba(0, 0, 0, 0)',
+
+ inputBackground: '#FFF',
+ inputBorder: '#D5D5D5',
+ placeholder: '#707070',
+
+ buttonPrimary: '#005776',
+ buttonSecondary: '#007d8a',
+ buttonTertiary: '#63666a',
+
+ translucentBlackMinor: 'rgba(0, 0, 0, 0.33)',
+ translucentBlack: 'rgba(0, 0, 0, 0.94)',
+ translucentWhite: 'rgba(255, 255, 255, 0.95)',
+
+ ripple: '#e3e1e1',
+ statusBar: 'rgba(0, 0, 0, 0.7)',
+
+ errorBackground: '#FF0000',
+ errorForeground: '#FDFBFB',
+
+ successBackground: '#006400',
+ successForeground: '#FDFBFB',
+
+ separator: '#DDD',
+};
diff --git a/app/theme/Dimensions/index.ts b/app/theme/Dimensions/index.ts
new file mode 100644
index 0000000..7c7de1a
--- /dev/null
+++ b/app/theme/Dimensions/index.ts
@@ -0,0 +1,39 @@
+import { Dimensions, Platform } from 'react-native';
+
+const window = Dimensions.get('window');
+const headerContentHeight = 44;
+const statusBarHeight = 44; // : ExtraDimensions.getStatusBarHeight();
+
+const headerHeight = statusBarHeight + headerContentHeight + 12;
+
+const screenHeight = window.height;
+const bottomSpacing = Platform.OS === 'ios' ? 40 : 0;
+
+const dim = {
+ space1x: 6,
+ space2x: 12,
+ space3x: 18,
+ space4x: 24,
+ space5x: 30,
+ space6x: 36,
+ space8x: 48,
+ space10x: 60,
+ space12x: 72,
+
+ fontHeading: 18,
+ fontInput: 16,
+ fontDescription: 14,
+ fontCaption: 11,
+
+ borderRadius: 3,
+
+ inputHeight: 44,
+ headerContentHeight,
+ headerHeight,
+ screenWidth: window.width,
+ screenHeight,
+ statusBarHeight,
+ bottomSpacing,
+};
+
+export default dim;
diff --git a/app/theme/FullScreenLoader/index.tsx b/app/theme/FullScreenLoader/index.tsx
new file mode 100644
index 0000000..7842e43
--- /dev/null
+++ b/app/theme/FullScreenLoader/index.tsx
@@ -0,0 +1,35 @@
+/**
+ *
+ * FullScreenLoader
+ *
+ */
+import React from 'react';
+import { StyleSheet, View } from 'react-native';
+
+import Text from 'theme/Text';
+import Dimensions from 'theme/Dimensions';
+import Colors from 'theme/Colors';
+
+const style = StyleSheet.create({
+ container: {
+ position: 'absolute',
+ top: 0,
+ left: 0,
+ bottom: 0,
+ right: 0,
+ backgroundColor: Colors.translucentWhite,
+ alignItems: 'center',
+ justifyContent: 'center',
+ padding: Dimensions.headerHeight,
+ zIndex: 100000000000,
+ elevation: 100,
+ },
+});
+
+const FullScreenLoader: React.FC = () => (
+
+ Loading ...
+
+);
+
+export default FullScreenLoader;
diff --git a/app/theme/Input/index.tsx b/app/theme/Input/index.tsx
new file mode 100644
index 0000000..f76939f
--- /dev/null
+++ b/app/theme/Input/index.tsx
@@ -0,0 +1,48 @@
+/**
+ *
+ * Input
+ *
+ */
+import omit from 'lodash/omit';
+import React from 'react';
+import { TextInput, TextInputProps } from 'react-native';
+
+import Text from 'theme/Text';
+import style, { inputStyleProps } from './style';
+
+export interface InputProps extends TextInputProps {
+ error?: string | React.ReactNode;
+ label?: string | React.ReactNode;
+}
+
+const Input = React.forwardRef(
+ (props: InputProps, ref: React.Ref) => (
+ <>
+ {props.label ? (
+
+ {props.label}
+
+ ) : null}
+
+ {props.error ? (
+
+ {props.error}
+
+ ) : null}
+ >
+ ),
+);
+
+export default Input;
diff --git a/app/theme/Input/style.tsx b/app/theme/Input/style.tsx
new file mode 100644
index 0000000..cc133b0
--- /dev/null
+++ b/app/theme/Input/style.tsx
@@ -0,0 +1,76 @@
+import { StyleSheet } from 'react-native';
+import Dimensions from 'theme/Dimensions';
+import Colors from 'theme/Colors';
+
+const INPUT_HEIGHT = 44;
+const MULTILINE_HEIGHT = 130;
+
+export const inputStyleProps = {
+ underlineColorAndroid: Colors.transparent,
+ placeholderTextColor: Colors.placeholder,
+};
+
+export default StyleSheet.create({
+ input: {
+ minHeight: INPUT_HEIGHT,
+ width: '100%',
+ margin: Dimensions.space2x,
+ padding: Dimensions.space2x,
+ borderRadius: Dimensions.borderRadius,
+ borderWidth: 1,
+ borderColor: Colors.inputBorder,
+ color: Colors.textBlack,
+ backgroundColor: Colors.white,
+ alignSelf: 'center',
+ alignItems: 'flex-start',
+ justifyContent: 'flex-start',
+ textAlignVertical: 'center',
+ position: 'relative',
+ },
+ inputWithLabel: {
+ padding: Dimensions.space3x,
+ },
+ errorInput: {
+ borderColor: Colors.errorBackground,
+ },
+ multiline: {
+ height: MULTILINE_HEIGHT,
+ paddingTop: Dimensions.space3x,
+ textAlignVertical: 'top',
+ },
+ label: {
+ padding: Dimensions.space1x,
+ color: Colors.textBlack,
+ fontWeight: '600',
+ fontSize: 14,
+ overflow: 'hidden',
+ alignSelf: 'flex-start',
+ top: -4,
+ zIndex: 1,
+ left: 6,
+ position: 'absolute',
+ backgroundColor: Colors.white,
+ borderRadius: Dimensions.borderRadius,
+ },
+ error: {
+ padding: Dimensions.space1x,
+ paddingHorizontal: Dimensions.space2x,
+ borderRadius: Dimensions.borderRadius,
+ color: Colors.errorBackground,
+ fontWeight: '600',
+ fontSize: 13,
+ overflow: 'hidden',
+ alignSelf: 'flex-end',
+ bottom: 0,
+ right: 6,
+ backgroundColor: Colors.white,
+ position: 'absolute',
+ zIndex: 1,
+ },
+ showPasswordButton: {
+ position: 'absolute',
+ right: Dimensions.space1x,
+ top: Dimensions.inputHeight / 2 - Dimensions.space1x,
+ opacity: 0.7,
+ },
+});
diff --git a/app/theme/Text/index.tsx b/app/theme/Text/index.tsx
new file mode 100644
index 0000000..fd5582d
--- /dev/null
+++ b/app/theme/Text/index.tsx
@@ -0,0 +1,39 @@
+/**
+ *
+ * Text
+ *
+ */
+
+import React from 'react';
+import { Animated, Text as RNText, StyleSheet } from 'react-native';
+import Colors from 'theme/Colors';
+
+const defaultStyle = StyleSheet.create({
+ fontFamily: {
+ // fontFamily: 'Montserrat',
+ backgroundColor: Colors.transparent,
+ },
+});
+
+export interface TextProps {
+ animated?: boolean;
+ testID?: string;
+ [key: string]: any;
+}
+
+const Text: React.FC = ({
+ animated = false,
+ style: componentStyles = {},
+ ...props
+}) => {
+ const Component = animated ? Animated.Text : RNText;
+ let style = [defaultStyle.fontFamily];
+ if (componentStyles && Array.isArray(componentStyles)) {
+ style = style.concat(componentStyles);
+ } else if (componentStyles) {
+ style.push(componentStyles);
+ }
+ return ;
+};
+
+export default Text;
diff --git a/app/theme/TouchFeedback/index.tsx b/app/theme/TouchFeedback/index.tsx
new file mode 100644
index 0000000..de18d1b
--- /dev/null
+++ b/app/theme/TouchFeedback/index.tsx
@@ -0,0 +1,46 @@
+import React from 'react';
+import {
+ View,
+ Platform,
+ Animated,
+ TouchableOpacity,
+ TouchableNativeFeedback,
+} from 'react-native';
+
+const AnimatedOpacity = Animated.createAnimatedComponent(TouchableOpacity);
+const AnimatedNative = Animated.createAnimatedComponent(
+ TouchableNativeFeedback,
+);
+const RIPPLE = Platform.OS === 'android' && Platform.Version >= 21;
+
+export interface TouchFeedbackProps {
+ style?: number | any[];
+ ripple?: boolean;
+ animated?: boolean;
+ onPress: (...args: any[]) => any;
+ testID?: string;
+}
+
+const TouchFeedback: React.FC = ({
+ children,
+ animated = false,
+ ...props
+}) => {
+ let Component: any = RIPPLE ? TouchableNativeFeedback : TouchableOpacity;
+ let NativeChild: any = View;
+ if (animated) {
+ Component = RIPPLE ? AnimatedNative : AnimatedOpacity;
+ if (RIPPLE) {
+ NativeChild = Animated.View;
+ }
+ }
+ if (RIPPLE) {
+ return (
+
+ {children}
+
+ );
+ }
+ return {children};
+};
+export default TouchFeedback;
diff --git a/assetTransformer.js b/assetTransformer.js
new file mode 100644
index 0000000..5eadded
--- /dev/null
+++ b/assetTransformer.js
@@ -0,0 +1,7 @@
+const path = require('path');
+
+module.exports = {
+ process(src, filename, config, options) {
+ return 'module.exports = ' + JSON.stringify(path.basename(filename)) + ';';
+ },
+};
diff --git a/component b/component
new file mode 100644
index 0000000..e69de29
diff --git a/ios/Podfile b/ios/Podfile
index 4585b6e..e66fd39 100644
--- a/ios/Podfile
+++ b/ios/Podfile
@@ -8,7 +8,11 @@ platform :ios, '10.0'
target 'ReactNativeSemaphoreNew' do
config = use_native_modules!
- use_react_native!(:path => config[:reactNativePath])
+ use_react_native!(
+ :path => config[:reactNativePath],
+ # to enable hermes on iOS, change `false` to `true` and then install pods
+ :hermes_enabled => false
+ )
target 'ReactNativeSemaphoreNewTests' do
inherit! :complete
@@ -24,27 +28,8 @@ target 'ReactNativeSemaphoreNew' do
# Note that if you have use_frameworks! enabled, Flipper will not work and
# you should disable these next few lines.
#
- # use_flipper!
- # post_install do |installer|
- # flipper_post_install(installer)
- # end
-
- # Fixes: https://github.com/facebook/react-native/issues/31034#issuecomment-812564390
- # post_install do |installer|
- # react_native_post_install(installer)
-
- # installer.pods_project.targets.each do |target|
- # target.build_configurations.each do |config|
- # config.build_settings['BUILD_LIBRARY_FOR_DISTRIBUTION'] = 'YES'
- # end
-
- # if (target.name&.eql?('FBReactNativeSpec'))
- # target.build_phases.each do |build_phase|
- # if (build_phase.respond_to?(:name) && build_phase.name.eql?('[CP-User] Generate Specs'))
- # target.build_phases.move(build_phase, 0)
- # end
- # end
- # end
- # end
- # end
-end
\ No newline at end of file
+# use_flipper!
+# post_install do |installer|
+# flipper_post_install(installer)
+# end
+end
diff --git a/ios/Podfile.lock b/ios/Podfile.lock
index b781691..85f3748 100644
--- a/ios/Podfile.lock
+++ b/ios/Podfile.lock
@@ -203,6 +203,8 @@ PODS:
- React-jsi (= 0.64.0)
- React-perflogger (= 0.64.0)
- React-jsinspector (0.64.0)
+ - react-native-safe-area-context (3.2.0):
+ - React-Core
- React-perflogger (0.64.0)
- React-RCTActionSheet (0.64.0):
- React-Core/RCTActionSheetHeaders (= 0.64.0)
@@ -267,7 +269,42 @@ PODS:
- React-cxxreact (= 0.64.0)
- React-jsi (= 0.64.0)
- React-perflogger (= 0.64.0)
- - RNVectorIcons (8.1.0):
+ - RNCAsyncStorage (1.15.2):
+ - React-Core
+ - RNCMaskedView (0.1.10):
+ - React
+ - RNGestureHandler (1.10.3):
+ - React-Core
+ - RNReanimated (2.1.0):
+ - DoubleConversion
+ - FBLazyVector
+ - FBReactNativeSpec
+ - glog
+ - RCT-Folly
+ - RCTRequired
+ - RCTTypeSafety
+ - React
+ - React-callinvoker
+ - React-Core
+ - React-Core/DevSupport
+ - React-Core/RCTWebSocket
+ - React-CoreModules
+ - React-cxxreact
+ - React-jsi
+ - React-jsiexecutor
+ - React-jsinspector
+ - React-RCTActionSheet
+ - React-RCTAnimation
+ - React-RCTBlob
+ - React-RCTImage
+ - React-RCTLinking
+ - React-RCTNetwork
+ - React-RCTSettings
+ - React-RCTText
+ - React-RCTVibration
+ - ReactCommon/turbomodule/core
+ - Yoga
+ - RNScreens (3.1.1):
- React-Core
- Yoga (1.14.0)
@@ -289,6 +326,7 @@ DEPENDENCIES:
- React-jsi (from `../node_modules/react-native/ReactCommon/jsi`)
- React-jsiexecutor (from `../node_modules/react-native/ReactCommon/jsiexecutor`)
- React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector`)
+ - react-native-safe-area-context (from `../node_modules/react-native-safe-area-context`)
- React-perflogger (from `../node_modules/react-native/ReactCommon/reactperflogger`)
- React-RCTActionSheet (from `../node_modules/react-native/Libraries/ActionSheetIOS`)
- React-RCTAnimation (from `../node_modules/react-native/Libraries/NativeAnimation`)
@@ -301,7 +339,11 @@ DEPENDENCIES:
- React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`)
- React-runtimeexecutor (from `../node_modules/react-native/ReactCommon/runtimeexecutor`)
- ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`)
- - RNVectorIcons (from `../node_modules/react-native-vector-icons`)
+ - "RNCAsyncStorage (from `../node_modules/@react-native-async-storage/async-storage`)"
+ - "RNCMaskedView (from `../node_modules/@react-native-community/masked-view`)"
+ - RNGestureHandler (from `../node_modules/react-native-gesture-handler`)
+ - RNReanimated (from `../node_modules/react-native-reanimated`)
+ - RNScreens (from `../node_modules/react-native-screens`)
- Yoga (from `../node_modules/react-native/ReactCommon/yoga`)
SPEC REPOS:
@@ -339,6 +381,8 @@ EXTERNAL SOURCES:
:path: "../node_modules/react-native/ReactCommon/jsiexecutor"
React-jsinspector:
:path: "../node_modules/react-native/ReactCommon/jsinspector"
+ react-native-safe-area-context:
+ :path: "../node_modules/react-native-safe-area-context"
React-perflogger:
:path: "../node_modules/react-native/ReactCommon/reactperflogger"
React-RCTActionSheet:
@@ -363,8 +407,16 @@ EXTERNAL SOURCES:
:path: "../node_modules/react-native/ReactCommon/runtimeexecutor"
ReactCommon:
:path: "../node_modules/react-native/ReactCommon"
- RNVectorIcons:
- :path: "../node_modules/react-native-vector-icons"
+ RNCAsyncStorage:
+ :path: "../node_modules/@react-native-async-storage/async-storage"
+ RNCMaskedView:
+ :path: "../node_modules/@react-native-community/masked-view"
+ RNGestureHandler:
+ :path: "../node_modules/react-native-gesture-handler"
+ RNReanimated:
+ :path: "../node_modules/react-native-reanimated"
+ RNScreens:
+ :path: "../node_modules/react-native-screens"
Yoga:
:path: "../node_modules/react-native/ReactCommon/yoga"
@@ -385,6 +437,7 @@ SPEC CHECKSUMS:
React-jsi: 74341196d9547cbcbcfa4b3bbbf03af56431d5a1
React-jsiexecutor: 06a9c77b56902ae7ffcdd7a4905f664adc5d237b
React-jsinspector: 0ae35a37b20d5e031eb020a69cc5afdbd6406301
+ react-native-safe-area-context: f0906bf8bc9835ac9a9d3f97e8bde2a997d8da79
React-perflogger: 9c547d8f06b9bf00cb447f2b75e8d7f19b7e02af
React-RCTActionSheet: 3080b6e12e0e1a5b313c8c0050699b5c794a1b11
React-RCTAnimation: 3f96f21a497ae7dabf4d2f150ee43f906aaf516f
@@ -397,9 +450,13 @@ SPEC CHECKSUMS:
React-RCTVibration: 0fd6b21751a33cb72fce1a4a33ab9678416d307a
React-runtimeexecutor: cad74a1eaa53ee6e7a3620231939d8fe2c6afcf0
ReactCommon: cfe2b7fd20e0dbd2d1185cd7d8f99633fbc5ff05
- RNVectorIcons: 31cebfcf94e8cf8686eb5303ae0357da64d7a5a4
+ RNCAsyncStorage: 9b7605e899f9acb2fba33e87952c529731265453
+ RNCMaskedView: 5a8ec07677aa885546a0d98da336457e2bea557f
+ RNGestureHandler: a479ebd5ed4221a810967000735517df0d2db211
+ RNReanimated: b8c8004b43446e3c2709fe64b2b41072f87428ad
+ RNScreens: bd1523c3bde7069b8e958e5a16e1fc7722ad0bdd
Yoga: 8c8436d4171c87504c648ae23b1d81242bdf3bbf
-PODFILE CHECKSUM: 3f1356e2b52f87bc546d690d6b9a23b9d0a3840c
+PODFILE CHECKSUM: a6ff2259274b634facee4a1edaa7e20c5bd11bab
COCOAPODS: 1.10.1
diff --git a/ios/ReactNativeSemaphoreNew-Bridging-Header.h b/ios/ReactNativeSemaphoreNew-Bridging-Header.h
new file mode 100644
index 0000000..1b2cb5d
--- /dev/null
+++ b/ios/ReactNativeSemaphoreNew-Bridging-Header.h
@@ -0,0 +1,4 @@
+//
+// Use this file to import your target's public headers that you would like to expose to Swift.
+//
+
diff --git a/ios/ReactNativeSemaphoreNew-tvOS-Bridging-Header.h b/ios/ReactNativeSemaphoreNew-tvOS-Bridging-Header.h
new file mode 100644
index 0000000..1b2cb5d
--- /dev/null
+++ b/ios/ReactNativeSemaphoreNew-tvOS-Bridging-Header.h
@@ -0,0 +1,4 @@
+//
+// Use this file to import your target's public headers that you would like to expose to Swift.
+//
+
diff --git a/ios/ReactNativeSemaphoreNew.xcodeproj/project.pbxproj b/ios/ReactNativeSemaphoreNew.xcodeproj/project.pbxproj
index 8110099..fe968e5 100644
--- a/ios/ReactNativeSemaphoreNew.xcodeproj/project.pbxproj
+++ b/ios/ReactNativeSemaphoreNew.xcodeproj/project.pbxproj
@@ -18,6 +18,8 @@
2DCD954D1E0B4F2C00145EB5 /* ReactNativeSemaphoreNewTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* ReactNativeSemaphoreNewTests.m */; };
715B2149594C9B24136A2A42 /* libPods-ReactNativeSemaphoreNew-ReactNativeSemaphoreNewTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 720C5370E1684351915B0332 /* libPods-ReactNativeSemaphoreNew-ReactNativeSemaphoreNewTests.a */; };
A7094C56C272240A83852B2C /* libPods-ReactNativeSemaphoreNew.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 90C4BDD01C16845238C26A68 /* libPods-ReactNativeSemaphoreNew.a */; };
+ AE8A78F72625F08300DEB2C9 /* SwiftFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE8A78F62625F08300DEB2C9 /* SwiftFile.swift */; };
+ AE8A78F82625F08300DEB2C9 /* SwiftFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE8A78F62625F08300DEB2C9 /* SwiftFile.swift */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
@@ -57,6 +59,9 @@
7CEFA5E3AC8E2781B883134A /* Pods-ReactNativeSemaphoreNew-ReactNativeSemaphoreNewTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ReactNativeSemaphoreNew-ReactNativeSemaphoreNewTests.debug.xcconfig"; path = "Target Support Files/Pods-ReactNativeSemaphoreNew-ReactNativeSemaphoreNewTests/Pods-ReactNativeSemaphoreNew-ReactNativeSemaphoreNewTests.debug.xcconfig"; sourceTree = ""; };
90C4BDD01C16845238C26A68 /* libPods-ReactNativeSemaphoreNew.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-ReactNativeSemaphoreNew.a"; sourceTree = BUILT_PRODUCTS_DIR; };
950CF1CE7B4DBAE8D17F055A /* Pods-ReactNativeSemaphoreNew.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ReactNativeSemaphoreNew.release.xcconfig"; path = "Target Support Files/Pods-ReactNativeSemaphoreNew/Pods-ReactNativeSemaphoreNew.release.xcconfig"; sourceTree = ""; };
+ AE8A78F42625F08300DEB2C9 /* ReactNativeSemaphoreNew-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "ReactNativeSemaphoreNew-Bridging-Header.h"; sourceTree = ""; };
+ AE8A78F52625F08300DEB2C9 /* ReactNativeSemaphoreNew-tvOS-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "ReactNativeSemaphoreNew-tvOS-Bridging-Header.h"; sourceTree = ""; };
+ AE8A78F62625F08300DEB2C9 /* SwiftFile.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = SwiftFile.swift; path = ReactNativeSemaphoreNew/SwiftFile.swift; sourceTree = ""; };
ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
ED2971642150620600B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS12.0.sdk/System/Library/Frameworks/JavaScriptCore.framework; sourceTree = DEVELOPER_DIR; };
/* End PBXFileReference section */
@@ -122,6 +127,9 @@
13B07FB61A68108700A75B9A /* Info.plist */,
13B07FB11A68108700A75B9A /* LaunchScreen.xib */,
13B07FB71A68108700A75B9A /* main.m */,
+ AE8A78F62625F08300DEB2C9 /* SwiftFile.swift */,
+ AE8A78F42625F08300DEB2C9 /* ReactNativeSemaphoreNew-Bridging-Header.h */,
+ AE8A78F52625F08300DEB2C9 /* ReactNativeSemaphoreNew-tvOS-Bridging-Header.h */,
);
name = ReactNativeSemaphoreNew;
sourceTree = "";
@@ -276,10 +284,12 @@
TestTargetID = 13B07F861A680F5B00A75B9A;
};
13B07F861A680F5B00A75B9A = {
+ LastSwiftMigration = 1240;
ProvisioningStyle = Manual;
};
2D02E47A1E0B4A5D006451C7 = {
CreatedOnToolsVersion = 8.2.1;
+ LastSwiftMigration = 1240;
ProvisioningStyle = Automatic;
};
2D02E48F1E0B4A5D006451C7 = {
@@ -425,42 +435,10 @@
);
inputPaths = (
"${PODS_ROOT}/Target Support Files/Pods-ReactNativeSemaphoreNew-ReactNativeSemaphoreNewTests/Pods-ReactNativeSemaphoreNew-ReactNativeSemaphoreNewTests-resources.sh",
- "${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",
);
name = "[CP] Copy Pods Resources";
outputPaths = (
- "${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",
);
runOnlyForDeploymentPostprocessing = 0;
@@ -475,42 +453,10 @@
);
inputPaths = (
"${PODS_ROOT}/Target Support Files/Pods-ReactNativeSemaphoreNew/Pods-ReactNativeSemaphoreNew-resources.sh",
- "${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",
);
name = "[CP] Copy Pods Resources";
outputPaths = (
- "${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",
);
runOnlyForDeploymentPostprocessing = 0;
@@ -573,6 +519,7 @@
files = (
13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */,
13B07FC11A68108700A75B9A /* main.m in Sources */,
+ AE8A78F72625F08300DEB2C9 /* SwiftFile.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -582,6 +529,7 @@
files = (
2D02E4BF1E0B4AB3006451C7 /* main.m in Sources */,
2D02E4BC1E0B4A80006451C7 /* AppDelegate.m in Sources */,
+ AE8A78F82625F08300DEB2C9 /* SwiftFile.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -625,6 +573,7 @@
isa = XCBuildConfiguration;
baseConfigurationReference = 7CEFA5E3AC8E2781B883134A /* Pods-ReactNativeSemaphoreNew-ReactNativeSemaphoreNewTests.debug.xcconfig */;
buildSettings = {
+ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
BUNDLE_LOADER = "$(TEST_HOST)";
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
@@ -648,11 +597,13 @@
isa = XCBuildConfiguration;
baseConfigurationReference = 6ACB6039E9209924F39BECDE /* Pods-ReactNativeSemaphoreNew-ReactNativeSemaphoreNewTests.release.xcconfig */;
buildSettings = {
+ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
BUNDLE_LOADER = "$(TEST_HOST)";
COPY_PHASE_STRIP = NO;
INFOPLIST_FILE = ReactNativeSemaphoreNewTests/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
+ ONLY_ACTIVE_ARCH = YES;
OTHER_LDFLAGS = (
"-ObjC",
"-lc++",
@@ -669,13 +620,57 @@
baseConfigurationReference = 7A5BCA7EDB5F3D12CF73441F /* Pods-ReactNativeSemaphoreNew.debug.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+ CLANG_ENABLE_MODULES = YES;
CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = 1;
DEAD_CODE_STRIPPING = NO;
DEVELOPMENT_TEAM = "";
+ "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64;
INFOPLIST_FILE = ReactNativeSemaphoreNew/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
+ LIBRARY_SEARCH_PATHS = (
+ "$(inherited)",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/CocoaAsyncSocket\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/DoubleConversion\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/FBReactNativeSpec\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/Flipper\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/Flipper-DoubleConversion\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/Flipper-Folly\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/Flipper-Glog\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/Flipper-PeerTalk\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/Flipper-RSocket\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/FlipperKit\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/RCT-Folly\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/RCTTypeSafety\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/RNCAsyncStorage\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/RNCMaskedView\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/RNGestureHandler\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/RNReanimated\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/RNScreens\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/React-Core\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/React-CoreModules\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/React-RCTAnimation\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/React-RCTBlob\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/React-RCTImage\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/React-RCTLinking\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/React-RCTNetwork\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/React-RCTSettings\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/React-RCTText\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/React-RCTVibration\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/React-cxxreact\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/React-jsi\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/React-jsiexecutor\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/React-jsinspector\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/React-perflogger\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/Yoga\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/YogaKit\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/glog\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/libevent\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/react-native-safe-area-context\"",
+ "$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)",
+ );
OTHER_LDFLAGS = (
"$(inherited)",
"-ObjC",
@@ -684,6 +679,9 @@
PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = ReactNativeSemaphoreNew;
PROVISIONING_PROFILE_SPECIFIER = "";
+ SWIFT_OBJC_BRIDGING_HEADER = "ReactNativeSemaphoreNew-Bridging-Header.h";
+ SWIFT_OPTIMIZATION_LEVEL = "-Onone";
+ SWIFT_VERSION = 5.0;
VERSIONING_SYSTEM = "apple-generic";
};
name = Debug;
@@ -693,6 +691,7 @@
baseConfigurationReference = 950CF1CE7B4DBAE8D17F055A /* Pods-ReactNativeSemaphoreNew.release.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+ CLANG_ENABLE_MODULES = YES;
CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = "";
@@ -700,6 +699,42 @@
INFOPLIST_FILE = ReactNativeSemaphoreNew/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
+ LIBRARY_SEARCH_PATHS = (
+ "$(inherited)",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/CocoaAsyncSocket\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/DoubleConversion\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/FBReactNativeSpec\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/RCT-Folly\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/RCTTypeSafety\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/RNCAsyncStorage\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/RNCMaskedView\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/RNGestureHandler\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/RNReanimated\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/RNScreens\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/React-Core\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/React-CoreModules\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/React-RCTAnimation\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/React-RCTBlob\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/React-RCTImage\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/React-RCTLinking\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/React-RCTNetwork\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/React-RCTSettings\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/React-RCTText\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/React-RCTVibration\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/React-cxxreact\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/React-jsi\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/React-jsiexecutor\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/React-jsinspector\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/React-perflogger\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/Yoga\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/YogaKit\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/glog\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/libevent\"",
+ "\"${PODS_CONFIGURATION_BUILD_DIR}/react-native-safe-area-context\"",
+ "$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)",
+ );
+ ONLY_ACTIVE_ARCH = YES;
OTHER_LDFLAGS = (
"$(inherited)",
"-ObjC",
@@ -708,6 +743,8 @@
PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = ReactNativeSemaphoreNew;
PROVISIONING_PROFILE_SPECIFIER = "";
+ SWIFT_OBJC_BRIDGING_HEADER = "ReactNativeSemaphoreNew-Bridging-Header.h";
+ SWIFT_VERSION = 5.0;
VERSIONING_SYSTEM = "apple-generic";
};
name = Release;
@@ -718,6 +755,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image";
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
CLANG_ANALYZER_NONNULL = YES;
+ CLANG_ENABLE_MODULES = YES;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
@@ -734,6 +772,9 @@
PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.ReactNativeSemaphoreNew-tvOS";
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = appletvos;
+ SWIFT_OBJC_BRIDGING_HEADER = "ReactNativeSemaphoreNew-tvOS-Bridging-Header.h";
+ SWIFT_OPTIMIZATION_LEVEL = "-Onone";
+ SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = 3;
TVOS_DEPLOYMENT_TARGET = 10.0;
};
@@ -745,6 +786,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image";
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
CLANG_ANALYZER_NONNULL = YES;
+ CLANG_ENABLE_MODULES = YES;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
@@ -753,6 +795,7 @@
GCC_NO_COMMON_BLOCKS = YES;
INFOPLIST_FILE = "ReactNativeSemaphoreNew-tvOS/Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
+ ONLY_ACTIVE_ARCH = YES;
OTHER_LDFLAGS = (
"$(inherited)",
"-ObjC",
@@ -761,6 +804,8 @@
PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.ReactNativeSemaphoreNew-tvOS";
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = appletvos;
+ SWIFT_OBJC_BRIDGING_HEADER = "ReactNativeSemaphoreNew-tvOS-Bridging-Header.h";
+ SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = 3;
TVOS_DEPLOYMENT_TARGET = 10.0;
};
@@ -769,6 +814,7 @@
2D02E4991E0B4A5E006451C7 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
+ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
BUNDLE_LOADER = "$(TEST_HOST)";
CLANG_ANALYZER_NONNULL = YES;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
@@ -795,6 +841,7 @@
2D02E49A1E0B4A5E006451C7 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
+ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
BUNDLE_LOADER = "$(TEST_HOST)";
CLANG_ANALYZER_NONNULL = YES;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
@@ -805,6 +852,7 @@
GCC_NO_COMMON_BLOCKS = YES;
INFOPLIST_FILE = "ReactNativeSemaphoreNew-tvOSTests/Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
+ ONLY_ACTIVE_ARCH = YES;
OTHER_LDFLAGS = (
"$(inherited)",
"-ObjC",
diff --git a/ios/ReactNativeSemaphoreNew/SwiftFile.swift b/ios/ReactNativeSemaphoreNew/SwiftFile.swift
new file mode 100644
index 0000000..c946e98
--- /dev/null
+++ b/ios/ReactNativeSemaphoreNew/SwiftFile.swift
@@ -0,0 +1,9 @@
+//
+// SwiftFile.swift
+// ReactNativeSemaphoreNew
+//
+// Created by Mohammad Zain on 13/04/2021.
+// Copyright © 2021 Facebook. All rights reserved.
+//
+
+import Foundation
diff --git a/jest.config.js b/jest.config.js
index bed93aa..ef42664 100644
--- a/jest.config.js
+++ b/jest.config.js
@@ -1,6 +1,10 @@
module.exports = {
preset: 'react-native',
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'],
- setupFilesAfterEnv: ['__tests__/setupTests.js'],
- testPathIgnorePatterns: ['setupTests.js', 'node_modules', 'e2e'],
+ testPathIgnorePatterns: ['node_modules', 'e2e'],
+ setupFiles: ['./jest.mock.js'],
+ moduleNameMapper: {
+ '.+\\.(css|styl|less|sass|scss|png|jpg|ttf|woff|woff2)$':
+ 'jest-transform-stub',
+ },
};
diff --git a/jest.mock.js b/jest.mock.js
new file mode 100644
index 0000000..d4d5a1d
--- /dev/null
+++ b/jest.mock.js
@@ -0,0 +1,25 @@
+import 'react-native-gesture-handler/jestSetup';
+
+// jest.mock('react-native-reanimated', () => {
+// const Reanimated = require('react-native-reanimated/mock');
+
+// // The mock for `call` immediately calls the callback which is incorrect
+// // So we override it with a no-op
+// Reanimated.default.call = () => ({});
+
+// return Reanimated;
+// });
+
+// Silence the warning: Animated: `useNativeDriver` is not supported because the native animated module is missing
+jest.mock('react-native/Libraries/Animated/NativeAnimatedHelper');
+
+jest.mock('@react-native-async-storage/async-storage', () => ({
+ setItem: jest.fn(),
+}));
+
+jest.mock('react-native-iphone-x-helper', () => ({
+ getStatusBarHeight: jest.fn(),
+ getBottomSpace: jest.fn(),
+}));
+
+jest.mock('@react-native-community/masked-view', () => ({}));
diff --git a/package.json b/package.json
index 5e61ba9..f18c68d 100644
--- a/package.json
+++ b/package.json
@@ -21,13 +21,28 @@
"fastlane-build-android": "bundle exec fastlane android build --verbose"
},
"dependencies": {
+ "@react-native-async-storage/async-storage": "^1.15.2",
+ "@react-native-community/masked-view": "^0.1.10",
+ "@react-navigation/native": "^5.9.4",
+ "@react-navigation/stack": "^5.14.4",
+ "@testing-library/react-native": "^7.2.0",
"react": "17.0.1",
- "react-native": "0.64.0"
+ "react-native": "0.64.0",
+ "react-native-gesture-handler": "^1.10.3",
+ "react-native-iphone-x-helper": "^1.3.0",
+ "react-native-reanimated": "^2.1.0",
+ "react-native-safe-area-context": "^3.2.0",
+ "react-native-screens": "^3.1.0",
+ "react-suspense-loadable": "^1.0.0"
},
"devDependencies": {
"@babel/core": "^7.8.4",
"@babel/runtime": "^7.8.4",
"@react-native-community/eslint-config": "^1.1.0",
+ "@types/jest": "^26.0.22",
+ "@types/lodash": "^4.14.168",
+ "@types/react-native": "^0.64",
+ "@types/react-test-renderer": "^17.0.1",
"@typescript-eslint/eslint-plugin": "^4.22.0",
"@typescript-eslint/parser": "^4.22.0",
"@wojtekmaj/enzyme-adapter-react-17": "^0.3.2",
@@ -42,34 +57,38 @@
"eslint-plugin-jest": "^24.3.5",
"eslint-plugin-prettier": "^3.3.1",
"eslint-plugin-react": "^7.21.5",
+ "identity-obj-proxy": "^3.0.0",
"jest": "^26.6.3",
"jest-enzyme": "^7.1.2",
+ "jest-transform-stub": "^2.0.0",
"metro-react-native-babel-preset": "^0.64.0",
+ "patch-package": "^6.4.7",
"prettier": "^2.2.1",
"react-dom": "^17.0.1",
"react-native-codegen": "^0.0.6",
"react-test-renderer": "17.0.1",
+ "ts-jest": "^26.5.4",
"typescript": "^4.2.4"
},
"detox": {
"configurations": {
"ios.sim.debug": {
"binaryPath": "ios/build/Build/Products/Debug-iphonesimulator/ReactNativeSemaphoreNew.app",
- "build": "xcodebuild ONLY_ACTIVE_ARCH=YES -workspace ios/ReactNativeSemaphoreNew.xcworkspace -scheme ReactNativeSemaphoreNew -configuration Debug -sdk iphonesimulator -derivedDataPath ios/build -UseModernBuildSystem=NO",
+ "build": "xcodebuild ONLY_ACTIVE_ARCH=YES -workspace ios/ReactNativeSemaphoreNew.xcworkspace -scheme ReactNativeSemaphoreNew -configuration Debug -sdk iphonesimulator -derivedDataPath ios/build -UseModernBuildSystem=YES",
"type": "ios.simulator",
- "name": "iPhone 8"
+ "name": "iPhone 11"
},
"ios.sim.release": {
"binaryPath": "ios/build/Build/Products/Release-iphonesimulator/ReactNativeSemaphoreNew.app",
- "build": "xcodebuild ONLY_ACTIVE_ARCH=YES -workspace ios/ReactNativeSemaphoreNew.xcworkspace -scheme ReactNativeSemaphoreNew -configuration Release -sdk iphonesimulator -derivedDataPath ios/build -UseModernBuildSystem=NO",
+ "build": "xcodebuild ONLY_ACTIVE_ARCH=YES -workspace ios/ReactNativeSemaphoreNew.xcworkspace -scheme ReactNativeSemaphoreNew -configuration Release -sdk iphonesimulator -derivedDataPath ios/build -UseModernBuildSystem=YES",
"type": "ios.simulator",
- "name": "iPhone 8"
+ "name": "iPhone 11"
},
"android.emu.debug": {
"binaryPath": "android/app/build/outputs/apk/debug/app-debug.apk",
"build": "cd android && ./gradlew assembleDebug assembleAndroidTest -DtestBuildType=debug && cd ..",
"type": "android.emulator",
- "name": "Nexus_S_API_24"
+ "name": "Pixel_4_API_28"
},
"android.emu.release": {
"binaryPath": "android/app/build/outputs/apk/release/app-release.apk",
diff --git a/yarn.lock b/yarn.lock
index 74e6aa6..9a2c4e4 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -503,7 +503,7 @@
"@babel/helper-simple-access" "^7.12.13"
babel-plugin-dynamic-import-node "^2.3.3"
-"@babel/plugin-transform-object-assign@^7.0.0":
+"@babel/plugin-transform-object-assign@^7.0.0", "@babel/plugin-transform-object-assign@^7.10.4":
version "7.12.13"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.12.13.tgz#d9b9200a69e03403a813e44a933ad9f4bddfd050"
integrity sha512-4QxDMc0lAOkIBSfCrnSGbAJ+4epDBF2XXwcLXuBcG1xl9u7LrktNVD4+LwhL47XuKVPQ7R25e/WdcV+h97HyZA==
@@ -718,6 +718,13 @@
exec-sh "^0.3.2"
minimist "^1.2.0"
+"@egjs/hammerjs@^2.0.17":
+ version "2.0.17"
+ resolved "https://registry.yarnpkg.com/@egjs/hammerjs/-/hammerjs-2.0.17.tgz#5dc02af75a6a06e4c2db0202cae38c9263895124"
+ integrity sha512-XQsZgjm2EcVUiZQf11UBJQfmZeEmOW8DpI1gsFeln6w0ae0ii4dMQEQ0kjl6DspdWX1aGY1/loyXnP0JS06e/A==
+ dependencies:
+ "@types/hammerjs" "^2.0.36"
+
"@eslint/eslintrc@^0.2.1":
version "0.2.2"
resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.2.2.tgz#d01fc791e2fc33e88a29d6f3dc7e93d0cd784b76"
@@ -1070,6 +1077,13 @@
"@nodelib/fs.scandir" "2.1.4"
fastq "^1.6.0"
+"@react-native-async-storage/async-storage@^1.15.2":
+ version "1.15.2"
+ resolved "https://registry.yarnpkg.com/@react-native-async-storage/async-storage/-/async-storage-1.15.2.tgz#895898363fbb8f6db477629fd4ba0b013fe27484"
+ integrity sha512-E1SajKtyeLwi6JVfMZQx+I01z3ZvA0/O2e09EVFzU75YK0696S5N2CqeKlxAZQFVSvzh+Jfq0q412Kdkuh+l6A==
+ dependencies:
+ deep-assign "^3.0.0"
+
"@react-native-community/cli-debugger-ui@^5.0.1-alpha.1":
version "5.0.1-alpha.1"
resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-5.0.1-alpha.1.tgz#09a856ccd2954cf16eea59b14dd26ae66720e4e6"
@@ -1218,6 +1232,11 @@
resolved "https://registry.yarnpkg.com/@react-native-community/eslint-plugin/-/eslint-plugin-1.1.0.tgz#e42b1bef12d2415411519fd528e64b593b1363dc"
integrity sha512-W/J0fNYVO01tioHjvYWQ9m6RgndVtbElzYozBq1ZPrHO/iCzlqoySHl4gO/fpCl9QEFjvJfjPgtPMTMlsoq5DQ==
+"@react-native-community/masked-view@^0.1.10":
+ version "0.1.10"
+ resolved "https://registry.yarnpkg.com/@react-native-community/masked-view/-/masked-view-0.1.10.tgz#5dda643e19e587793bc2034dd9bf7398ad43d401"
+ integrity sha512-rk4sWFsmtOw8oyx8SD3KSvawwaK7gRBSEIy2TAwURyGt+3TizssXP1r8nx3zY+R7v2vYYHXZ+k2/GULAT/bcaQ==
+
"@react-native/assets@1.0.0":
version "1.0.0"
resolved "https://registry.yarnpkg.com/@react-native/assets/-/assets-1.0.0.tgz#c6f9bf63d274bafc8e970628de24986b30a55c8e"
@@ -1233,6 +1252,41 @@
resolved "https://registry.yarnpkg.com/@react-native/polyfills/-/polyfills-1.0.0.tgz#05bb0031533598f9458cf65a502b8df0eecae780"
integrity sha512-0jbp4RxjYopTsIdLl+/Fy2TiwVYHy4mgeu07DG4b/LyM0OS/+lPP5c9sbnt/AMlnF6qz2JRZpPpGw1eMNS6A4w==
+"@react-navigation/core@^5.15.3":
+ version "5.15.3"
+ resolved "https://registry.yarnpkg.com/@react-navigation/core/-/core-5.15.3.tgz#dce7090bf3ea0d302993d742c706825e495b812e"
+ integrity sha512-3ZdyDInh8qg1kygCNkmh9lFgpDf29lTvPsaMe2mm/qvmxLKSgttWBz07P2fc181aV9jTdgQpzYfWZ5KWT036zw==
+ dependencies:
+ "@react-navigation/routers" "^5.7.2"
+ escape-string-regexp "^4.0.0"
+ nanoid "^3.1.15"
+ query-string "^6.13.6"
+ react-is "^16.13.0"
+
+"@react-navigation/native@^5.9.4":
+ version "5.9.4"
+ resolved "https://registry.yarnpkg.com/@react-navigation/native/-/native-5.9.4.tgz#414c044423c58aa1cdde1b6494309e0b51da08b8"
+ integrity sha512-BUCrOXfZDdKWBqM8OhOKQhCX5we4HUo5XG6tCQtVqQAep+7UcApZmMUuemUXDxVe8NPESUpoUlB0RaEpyIdfTQ==
+ dependencies:
+ "@react-navigation/core" "^5.15.3"
+ escape-string-regexp "^4.0.0"
+ nanoid "^3.1.15"
+
+"@react-navigation/routers@^5.7.2":
+ version "5.7.2"
+ resolved "https://registry.yarnpkg.com/@react-navigation/routers/-/routers-5.7.2.tgz#069d0a707b30ba2e27a32b6482531d0ff7317136"
+ integrity sha512-BxNSMLHpU+oS37Xok0ql6rc9U7IC8aUD4+U5ZPbjDJ0pwzZxGGh0YOEBzfV4k/Ig3cbPdvVWbc1C9HHbCVr2oQ==
+ dependencies:
+ nanoid "^3.1.15"
+
+"@react-navigation/stack@^5.14.4":
+ version "5.14.4"
+ resolved "https://registry.yarnpkg.com/@react-navigation/stack/-/stack-5.14.4.tgz#32f6717c03494f0ca6cf0dd43d8302af824de9e9"
+ integrity sha512-gQjWK8JHtVkD1p7wzjtSPuScJI0mSAk/N/gzgjQZo+rDUwgM8rOTDcVNRbtEOqCEgLQcZrZQHwhOjkrJirehjQ==
+ dependencies:
+ color "^3.1.3"
+ react-native-iphone-x-helper "^1.3.0"
+
"@sideway/address@^4.1.0":
version "4.1.1"
resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.1.tgz#9e321e74310963fdf8eebfbee09c7bd69972de4d"
@@ -1264,6 +1318,13 @@
dependencies:
"@sinonjs/commons" "^1.7.0"
+"@testing-library/react-native@^7.2.0":
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/@testing-library/react-native/-/react-native-7.2.0.tgz#e5ec5b0974e4e5f525f8057563417d1e9f820d96"
+ integrity sha512-rDKzJjAAeGgyoJT0gFQiMsIL09chdWcwZyYx6WZHMgm2c5NDqY52hUuyTkzhqddMYWmSRklFphSg7B2HX+246Q==
+ dependencies:
+ pretty-format "^26.0.1"
+
"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.7":
version "7.1.14"
resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.14.tgz#faaeefc4185ec71c389f4501ee5ec84b170cc402"
@@ -1316,6 +1377,11 @@
dependencies:
"@types/node" "*"
+"@types/hammerjs@^2.0.36":
+ version "2.0.39"
+ resolved "https://registry.yarnpkg.com/@types/hammerjs/-/hammerjs-2.0.39.tgz#4be64bbacf3813c79c0dab895c6b0fdc7d5e513f"
+ integrity sha512-lYR2Y/tV2ujpk/WyUc7S0VLI0a9hrtVIN9EwnrNo5oSEJI2cK2/XrgwOQmXLL3eTulOESvh9qP6si9+DWM9cOA==
+
"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1":
version "2.0.3"
resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#4ba8ddb720221f432e443bd5f9117fd22cfd4762"
@@ -1343,15 +1409,28 @@
dependencies:
"@types/istanbul-lib-report" "*"
+"@types/jest@^26.0.22":
+ version "26.0.22"
+ resolved "https://registry.yarnpkg.com/@types/jest/-/jest-26.0.22.tgz#8308a1debdf1b807aa47be2838acdcd91e88fbe6"
+ integrity sha512-eeWwWjlqxvBxc4oQdkueW5OF/gtfSceKk4OnOAGlUSwS/liBRtZppbJuz1YkgbrbfGOoeBHun9fOvXnjNwrSOw==
+ dependencies:
+ jest-diff "^26.0.0"
+ pretty-format "^26.0.0"
+
"@types/json-schema@^7.0.3":
version "7.0.7"
resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz#98a993516c859eb0d5c4c8f098317a9ea68db9ad"
integrity sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==
+"@types/lodash@^4.14.168":
+ version "4.14.168"
+ resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.168.tgz#fe24632e79b7ade3f132891afff86caa5e5ce008"
+ integrity sha512-oVfRvqHV/V6D1yifJbVRU3TMp8OT6o6BG+U9MkwuJ3U8/CsDHvalRpsxBqivn71ztOFZBTfJMvETbqHiaNSj7Q==
+
"@types/node@*":
- version "14.14.37"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.37.tgz#a3dd8da4eb84a996c36e331df98d82abd76b516e"
- integrity sha512-XYmBiy+ohOR4Lh5jE379fV2IU+6Jn4g5qASinhitfyO71b/sCo6MKsMLF5tc7Zf2CE8hViVQyYSobJNke8OvUw==
+ version "14.14.39"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.39.tgz#9ef394d4eb52953d2890e4839393c309aa25d2d1"
+ integrity sha512-Qipn7rfTxGEDqZiezH+wxqWYR8vcXq5LRpZrETD19Gs4o8LbklbmqotSUsMU+s5G3PJwMRDfNEYoxrcBwIxOuw==
"@types/normalize-package-data@^2.4.0":
version "2.4.0"
@@ -1363,6 +1442,39 @@
resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.2.3.tgz#ef65165aea2924c9359205bf748865b8881753c0"
integrity sha512-PijRCG/K3s3w1We6ynUKdxEc5AcuuH3NBmMDP8uvKVp6X43UY7NQlTzczakXP3DJR0F4dfNQIGjU2cUeRYs2AA==
+"@types/prop-types@*":
+ version "15.7.3"
+ resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7"
+ integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==
+
+"@types/react-native@^0.64":
+ version "0.64.2"
+ resolved "https://registry.yarnpkg.com/@types/react-native/-/react-native-0.64.2.tgz#2e344aeec0b4eb21fb9eaa0ed8973245c5601d56"
+ integrity sha512-w2y04h+GVLY+OMlFSmq4adPuS51XtEp1yUr83OvXf+moMQ4zDG1Q07HhyvYDXdc+BSS9ANHySBqVCz0hFxli9Q==
+ dependencies:
+ "@types/react" "*"
+
+"@types/react-test-renderer@^17.0.1":
+ version "17.0.1"
+ resolved "https://registry.yarnpkg.com/@types/react-test-renderer/-/react-test-renderer-17.0.1.tgz#3120f7d1c157fba9df0118dae20cb0297ee0e06b"
+ integrity sha512-3Fi2O6Zzq/f3QR9dRnlnHso9bMl7weKCviFmfF6B4LS1Uat6Hkm15k0ZAQuDz+UBq6B3+g+NM6IT2nr5QgPzCw==
+ dependencies:
+ "@types/react" "*"
+
+"@types/react@*":
+ version "17.0.3"
+ resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.3.tgz#ba6e215368501ac3826951eef2904574c262cc79"
+ integrity sha512-wYOUxIgs2HZZ0ACNiIayItyluADNbONl7kt8lkLjVK8IitMH5QMyAh75Fwhmo37r1m7L2JaFj03sIfxBVDvRAg==
+ dependencies:
+ "@types/prop-types" "*"
+ "@types/scheduler" "*"
+ csstype "^3.0.2"
+
+"@types/scheduler@*":
+ version "0.16.1"
+ resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.1.tgz#18845205e86ff0038517aab7a18a62a6b9f71275"
+ integrity sha512-EaCxbanVeyxDRTQBkdLb3Bvl/HK7PBK6UJjsSixB0iHKoWxE5uu2Q/DgtpOhPIojN0Zl1whvOd7PoHs2P0s5eA==
+
"@types/stack-utils@^1.0.1":
version "1.0.1"
resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e"
@@ -1520,6 +1632,11 @@
react-test-renderer "^17.0.0-0"
semver "^5.7.0"
+"@yarnpkg/lockfile@^1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31"
+ integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==
+
abab@^2.0.0, abab@^2.0.3, abab@^2.0.5:
version "2.0.5"
resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a"
@@ -1787,7 +1904,7 @@ array.prototype.flatmap@^1.2.4:
es-abstract "^1.18.0-next.1"
function-bind "^1.1.1"
-asap@~2.0.6:
+asap@~2.0.3, asap@~2.0.6:
version "2.0.6"
resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46"
integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=
@@ -2187,6 +2304,13 @@ browserslist@^4.14.5, browserslist@^4.16.3:
escalade "^3.1.1"
node-releases "^1.1.71"
+bs-logger@0.x:
+ version "0.2.6"
+ resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8"
+ integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==
+ dependencies:
+ fast-json-stable-stringify "2.x"
+
bser@2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05"
@@ -2194,7 +2318,7 @@ bser@2.1.1:
dependencies:
node-int64 "^0.4.0"
-buffer-from@^1.0.0:
+buffer-from@1.x, buffer-from@^1.0.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==
@@ -2436,7 +2560,7 @@ collection-visit@^1.0.0:
map-visit "^1.0.0"
object-visit "^1.0.0"
-color-convert@^1.9.0:
+color-convert@^1.9.0, color-convert@^1.9.1:
version "1.9.3"
resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
@@ -2455,11 +2579,27 @@ color-name@1.1.3:
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
-color-name@~1.1.4:
+color-name@^1.0.0, color-name@~1.1.4:
version "1.1.4"
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
+color-string@^1.5.4:
+ version "1.5.5"
+ resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.5.tgz#65474a8f0e7439625f3d27a6a19d89fc45223014"
+ integrity sha512-jgIoum0OfQfq9Whcfc2z/VhCNcmQjWbey6qBX0vqt7YICflUmBCh9E9CiQD5GSJ+Uehixm3NUwHVhqUAWRivZg==
+ dependencies:
+ color-name "^1.0.0"
+ simple-swizzle "^0.2.2"
+
+color@^3.1.3:
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/color/-/color-3.1.3.tgz#ca67fb4e7b97d611dcde39eceed422067d91596e"
+ integrity sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ==
+ dependencies:
+ color-convert "^1.9.1"
+ color-string "^1.5.4"
+
colorette@^1.0.7, colorette@^1.2.2:
version "1.2.2"
resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94"
@@ -2577,6 +2717,13 @@ cosmiconfig@^5.0.5, cosmiconfig@^5.1.0:
js-yaml "^3.13.1"
parse-json "^4.0.0"
+cross-fetch@^3.0.4:
+ version "3.1.4"
+ resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.4.tgz#9723f3a3a247bf8b89039f3a380a9244e8fa2f39"
+ integrity sha512-1eAtFWdIubi6T4XPy6ei9iUFoKpUkIF971QLN8lIvvvwueI65+Nw5haMNKUwfJxabqlIIDODJKGrQ66gxC0PbQ==
+ dependencies:
+ node-fetch "2.6.1"
+
cross-spawn@^4.0.2:
version "4.0.2"
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-4.0.2.tgz#7b9247621c23adfdd3856004a823cbe397424d41"
@@ -2585,7 +2732,7 @@ cross-spawn@^4.0.2:
lru-cache "^4.0.1"
which "^1.2.9"
-cross-spawn@^6.0.0:
+cross-spawn@^6.0.0, cross-spawn@^6.0.5:
version "6.0.5"
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4"
integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==
@@ -2645,6 +2792,11 @@ cssstyle@^2.3.0:
dependencies:
cssom "~0.3.6"
+csstype@^3.0.2:
+ version "3.0.7"
+ resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.7.tgz#2a5fb75e1015e84dd15692f71e89a1450290950b"
+ integrity sha512-KxnUB0ZMlnUWCsx2Z8MUsr6qV6ja1w9ArPErJaJaF8a5SOWoHLIszeCTKGRGRgtLgYrs1E8CHkNSP1VZTTPc9g==
+
dashdash@^1.12.0:
version "1.14.1"
resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
@@ -2709,6 +2861,13 @@ decode-uri-component@^0.2.0:
resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=
+deep-assign@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/deep-assign/-/deep-assign-3.0.0.tgz#c8e4c4d401cba25550a2f0f486a2e75bc5f219a2"
+ integrity sha512-YX2i9XjJ7h5q/aQ/IM9PEwEnDqETAIYbggmdDB3HLTlSgo1CxPsj6pvhPG68rq6SVE0+p+6Ywsm5fTYNrYtBWw==
+ dependencies:
+ is-obj "^1.0.0"
+
deep-equal-ident@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/deep-equal-ident/-/deep-equal-ident-1.1.1.tgz#06f4b89e53710cd6cea4a7781c7a956642de8dc9"
@@ -2917,9 +3076,9 @@ ee-first@1.1.1:
integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
electron-to-chromium@^1.3.712:
- version "1.3.712"
- resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.712.tgz#ae467ffe5f95961c6d41ceefe858fc36eb53b38f"
- integrity sha512-3kRVibBeCM4vsgoHHGKHmPocLqtFAGTrebXxxtgKs87hNUzXrX2NuS3jnBys7IozCnw7viQlozxKkmty2KNfrw==
+ version "1.3.717"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.717.tgz#78d4c857070755fb58ab64bcc173db1d51cbc25f"
+ integrity sha512-OfzVPIqD1MkJ7fX+yTl2nKyOE4FReeVfMCzzxQS+Kp43hZYwHwThlGP+EGIZRXJsxCM7dqo8Y65NOX/HP12iXQ==
emittery@^0.7.1:
version "0.7.2"
@@ -3119,6 +3278,11 @@ escape-string-regexp@^2.0.0:
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344"
integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==
+escape-string-regexp@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
+ integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
+
escodegen@^1.9.1:
version "1.14.3"
resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503"
@@ -3151,9 +3315,9 @@ eslint-config-prettier@^6.10.1:
get-stdin "^6.0.0"
eslint-config-prettier@^8.1.0:
- version "8.1.0"
- resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.1.0.tgz#4ef1eaf97afe5176e6a75ddfb57c335121abc5a6"
- integrity sha512-oKMhGv3ihGbCIimCAjqkdzx2Q+jthoqnXSP+d86M9tptwugycmTFdVR4IpLgq2c4SHifbwO90z2fQ8/Aio73yw==
+ version "8.2.0"
+ resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.2.0.tgz#78de77d63bca8e9e59dae75a614b5299925bb7b3"
+ integrity sha512-dWV9EVeSo2qodOPi1iBYU/x6F6diHv8uujxbxr77xExs3zTAlNXvVZKiyLsQGNz7yPV2K49JY5WjPzNIuDc2Bw==
eslint-plugin-eslint-comments@^3.1.2:
version "3.2.0"
@@ -3506,7 +3670,7 @@ fast-glob@^3.1.1:
micromatch "^4.0.2"
picomatch "^2.2.1"
-fast-json-stable-stringify@^2.0.0:
+fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
@@ -3530,6 +3694,24 @@ fb-watchman@^2.0.0:
dependencies:
bser "2.1.1"
+fbjs-css-vars@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz#216551136ae02fe255932c3ec8775f18e2c078b8"
+ integrity sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==
+
+fbjs@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-3.0.0.tgz#0907067fb3f57a78f45d95f1eacffcacd623c165"
+ integrity sha512-dJd4PiDOFuhe7vk4F80Mba83Vr2QuK86FoxtgPmzBqEJahncp+13YCmfoa53KHCo6OnlXLG7eeMWPfB5CrpVKg==
+ dependencies:
+ cross-fetch "^3.0.4"
+ fbjs-css-vars "^1.0.0"
+ loose-envify "^1.0.0"
+ object-assign "^4.1.0"
+ promise "^7.1.1"
+ setimmediate "^1.0.5"
+ ua-parser-js "^0.7.18"
+
file-entry-cache@^5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c"
@@ -3559,6 +3741,11 @@ fill-range@^7.0.1:
dependencies:
to-regex-range "^5.0.1"
+filter-obj@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/filter-obj/-/filter-obj-1.1.0.tgz#9b311112bc6c6127a16e016c6c5d7f19e0805c5b"
+ integrity sha1-mzERErxsYSehbgFsbF1/GeCAXFs=
+
finalhandler@1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d"
@@ -3604,6 +3791,13 @@ find-up@^4.0.0, find-up@^4.1.0:
locate-path "^5.0.0"
path-exists "^4.0.0"
+find-yarn-workspace-root@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz#f47fb8d239c900eb78179aa81b66673eac88f7bd"
+ integrity sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==
+ dependencies:
+ micromatch "^4.0.2"
+
flat-cache@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0"
@@ -3689,6 +3883,15 @@ fs-extra@^4.0.2:
jsonfile "^4.0.0"
universalify "^0.1.0"
+fs-extra@^7.0.1:
+ version "7.0.1"
+ resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9"
+ integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==
+ dependencies:
+ graceful-fs "^4.1.2"
+ jsonfile "^4.0.0"
+ universalify "^0.1.0"
+
fs-extra@^8.1.0:
version "8.1.0"
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0"
@@ -3885,6 +4088,11 @@ har-validator@~5.1.3:
ajv "^6.12.3"
har-schema "^2.0.0"
+harmony-reflect@^1.4.6:
+ version "1.6.1"
+ resolved "https://registry.yarnpkg.com/harmony-reflect/-/harmony-reflect-1.6.1.tgz#c108d4f2bb451efef7a37861fdbdae72c9bdefa9"
+ integrity sha512-WJTeyp0JzGtHcuMsi7rw2VwtkvLa+JyfEKJCFyfcS0+CDkjQ5lHPu7zEhFZP+PDSRrEgXa5Ah0l1MbgbE41XjA==
+
has-bigints@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113"
@@ -3955,6 +4163,13 @@ hermes-profile-transformer@^0.0.6:
dependencies:
source-map "^0.7.3"
+hoist-non-react-statics@^3.3.0:
+ version "3.3.2"
+ resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45"
+ integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==
+ dependencies:
+ react-is "^16.7.0"
+
hosted-git-info@^2.1.4:
version "2.8.9"
resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9"
@@ -4029,6 +4244,13 @@ iconv-lite@0.4.24:
dependencies:
safer-buffer ">= 2.1.2 < 3"
+identity-obj-proxy@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz#94d2bda96084453ef36fbc5aaec37e0f79f1fc14"
+ integrity sha1-lNK9qWCERT7zb7xarsN+D3nx/BQ=
+ dependencies:
+ harmony-reflect "^1.4.6"
+
ignore@^4.0.6:
version "4.0.6"
resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"
@@ -4136,6 +4358,11 @@ is-arrayish@^0.2.1:
resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=
+is-arrayish@^0.3.1:
+ version "0.3.2"
+ resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03"
+ integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==
+
is-bigint@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.1.tgz#6923051dfcbc764278540b9ce0e6b3213aa5ebc2"
@@ -4280,6 +4507,11 @@ is-number@^7.0.0:
resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
+is-obj@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f"
+ integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8=
+
is-plain-obj@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287"
@@ -4347,7 +4579,7 @@ is-wsl@^1.1.0:
resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d"
integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=
-is-wsl@^2.2.0:
+is-wsl@^2.1.1, is-wsl@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271"
integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==
@@ -4492,7 +4724,7 @@ jest-config@^26.6.3:
micromatch "^4.0.2"
pretty-format "^26.6.2"
-jest-diff@^26.6.2:
+jest-diff@^26.0.0, jest-diff@^26.6.2:
version "26.6.2"
resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.6.2.tgz#1aa7468b52c3a68d7d5c5fdcdfcd5e49bd164394"
integrity sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==
@@ -4868,6 +5100,11 @@ jest-snapshot@^26.6.2:
pretty-format "^26.6.2"
semver "^7.3.2"
+jest-transform-stub@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/jest-transform-stub/-/jest-transform-stub-2.0.0.tgz#19018b0851f7568972147a5d60074b55f0225a7d"
+ integrity sha512-lspHaCRx/mBbnm3h4uMMS3R5aZzMwyNpNIJLXj4cEsV0mIUtS4IjYJLSoyjRCtnxb6RIGJ4NL2quZzfIeNhbkg==
+
jest-util@^24.9.0:
version "24.9.0"
resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-24.9.0.tgz#7396814e48536d2e85a37de3e4c431d7cb140162"
@@ -4897,7 +5134,7 @@ jest-util@^25.5.0:
is-ci "^2.0.0"
make-dir "^3.0.0"
-jest-util@^26.6.2:
+jest-util@^26.1.0, jest-util@^26.6.2:
version "26.6.2"
resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-26.6.2.tgz#907535dbe4d5a6cb4c47ac9b926f6af29576cbc1"
integrity sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==
@@ -5136,18 +5373,18 @@ json-stringify-safe@~5.0.1:
resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=
-json5@^0.5.1:
- version "0.5.1"
- resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821"
- integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=
-
-json5@^2.1.2:
+json5@2.x, json5@^2.1.2:
version "2.2.0"
resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3"
integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==
dependencies:
minimist "^1.2.5"
+json5@^0.5.1:
+ version "0.5.1"
+ resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821"
+ integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=
+
jsonfile@^2.1.0:
version "2.4.0"
resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8"
@@ -5217,6 +5454,13 @@ kind-of@^6.0.0, kind-of@^6.0.2:
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
+klaw-sync@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/klaw-sync/-/klaw-sync-6.0.0.tgz#1fd2cfd56ebb6250181114f0a581167099c2b28c"
+ integrity sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ==
+ dependencies:
+ graceful-fs "^4.1.11"
+
klaw@^1.0.0:
version "1.3.1"
resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439"
@@ -5366,7 +5610,7 @@ lodash.throttle@^4.1.1:
resolved "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4"
integrity sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=
-lodash@^4.17.10, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.21, lodash@^4.17.5, lodash@^4.7.0:
+lodash@4.x, lodash@^4.17.10, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.21, lodash@^4.17.5, lodash@^4.7.0:
version "4.17.21"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
@@ -5424,6 +5668,11 @@ make-dir@^3.0.0:
dependencies:
semver "^6.0.0"
+make-error@1.x:
+ version "1.3.6"
+ resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2"
+ integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==
+
makeerror@1.0.x:
version "1.0.11"
resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c"
@@ -5794,6 +6043,11 @@ mixin-deep@^1.2.0:
for-in "^1.0.2"
is-extendable "^1.0.1"
+mkdirp@1.x:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
+ integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
+
mkdirp@^0.5.1, mkdirp@~0.5.1:
version "0.5.5"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def"
@@ -5801,6 +6055,11 @@ mkdirp@^0.5.1, mkdirp@~0.5.1:
dependencies:
minimist "^1.2.5"
+mockdate@^3.0.2:
+ version "3.0.5"
+ resolved "https://registry.yarnpkg.com/mockdate/-/mockdate-3.0.5.tgz#789be686deb3149e7df2b663d2bc4392bc3284fb"
+ integrity sha512-iniQP4rj1FhBdBYS/+eQv7j1tadJ9lJtdzgOpvsOHng/GbcDh2Fhdeq+ZRldrPYdXvCyfFUmFeEwEGXZB5I/AQ==
+
moment@^2.19.3:
version "2.29.1"
resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.1.tgz#b2be769fa31940be9eeea6469c075e35006fa3d3"
@@ -5840,6 +6099,11 @@ nan@^2.12.1, nan@^2.14.0:
resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19"
integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==
+nanoid@^3.1.15:
+ version "3.1.22"
+ resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.22.tgz#b35f8fb7d151990a8aebd5aa5015c03cf726f844"
+ integrity sha512-/2ZUaJX2ANuLtTvqTlgqBQNJoQO398KyJgZloL0PZkC0dpysjncRUPsFe3DUPzz/y3h+u7C46np8RMuvF3jsSQ==
+
nanomatch@^1.2.9:
version "1.2.13"
resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119"
@@ -5904,7 +6168,7 @@ node-dir@^0.1.17:
dependencies:
minimatch "^3.0.2"
-node-fetch@^2.2.0, node-fetch@^2.6.0:
+node-fetch@2.6.1, node-fetch@^2.2.0, node-fetch@^2.6.0:
version "2.6.1"
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052"
integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==
@@ -6009,7 +6273,7 @@ ob1@0.64.0:
resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.64.0.tgz#f254a55a53ca395c4f9090e28a85483eac5eba19"
integrity sha512-CO1N+5dhvy+MoAwxz8+fymEUcwsT4a+wHhrHFb02LppcJdHxgcBWviwEhUwKOD2kLMQ7ijrrzybOqpGcqEtvpQ==
-object-assign@^4.1.1:
+object-assign@^4.1.0, object-assign@^4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
@@ -6144,6 +6408,14 @@ open@^6.2.0:
dependencies:
is-wsl "^1.1.0"
+open@^7.4.2:
+ version "7.4.2"
+ resolved "https://registry.yarnpkg.com/open/-/open-7.4.2.tgz#b8147e26dcf3e426316c730089fd71edd29c2321"
+ integrity sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==
+ dependencies:
+ is-docker "^2.0.0"
+ is-wsl "^2.1.1"
+
optionator@^0.8.1:
version "0.8.3"
resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495"
@@ -6185,7 +6457,7 @@ ora@^3.4.0:
strip-ansi "^5.2.0"
wcwidth "^1.0.1"
-os-tmpdir@^1.0.0:
+os-tmpdir@^1.0.0, os-tmpdir@~1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=
@@ -6278,6 +6550,25 @@ pascalcase@^0.1.1:
resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=
+patch-package@^6.4.7:
+ version "6.4.7"
+ resolved "https://registry.yarnpkg.com/patch-package/-/patch-package-6.4.7.tgz#2282d53c397909a0d9ef92dae3fdeb558382b148"
+ integrity sha512-S0vh/ZEafZ17hbhgqdnpunKDfzHQibQizx9g8yEf5dcVk3KOflOfdufRXQX8CSEkyOQwuM/bNz1GwKvFj54kaQ==
+ dependencies:
+ "@yarnpkg/lockfile" "^1.1.0"
+ chalk "^2.4.2"
+ cross-spawn "^6.0.5"
+ find-yarn-workspace-root "^2.0.0"
+ fs-extra "^7.0.1"
+ is-ci "^2.0.0"
+ klaw-sync "^6.0.0"
+ minimist "^1.2.0"
+ open "^7.4.2"
+ rimraf "^2.6.3"
+ semver "^5.6.0"
+ slash "^2.0.0"
+ tmp "^0.0.33"
+
path-exists@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
@@ -6421,7 +6712,7 @@ prettier@^2.0.2, prettier@^2.2.1:
resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.2.1.tgz#795a1a78dd52f073da0cd42b21f9c91381923ff5"
integrity sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==
-pretty-format@^26.5.2, pretty-format@^26.6.2:
+pretty-format@^26.0.0, pretty-format@^26.0.1, pretty-format@^26.5.2, pretty-format@^26.6.2:
version "26.6.2"
resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.2.tgz#e35c2705f14cb7fe2fe94fa078345b444120fc93"
integrity sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==
@@ -6446,6 +6737,13 @@ promise-polyfill@^6.0.1:
resolved "https://registry.yarnpkg.com/promise-polyfill/-/promise-polyfill-6.1.0.tgz#dfa96943ea9c121fca4de9b5868cb39d3472e057"
integrity sha1-36lpQ+qcEh/KTem1hoyznTRy4Fc=
+promise@^7.1.1:
+ version "7.3.1"
+ resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf"
+ integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==
+ dependencies:
+ asap "~2.0.3"
+
promise@^8.0.3:
version "8.1.0"
resolved "https://registry.yarnpkg.com/promise/-/promise-8.1.0.tgz#697c25c3dfe7435dd79fcd58c38a135888eaf05e"
@@ -6516,6 +6814,16 @@ qs@~6.5.2:
resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36"
integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==
+query-string@^6.13.6:
+ version "6.14.1"
+ resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.14.1.tgz#7ac2dca46da7f309449ba0f86b1fd28255b0c86a"
+ integrity sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw==
+ dependencies:
+ decode-uri-component "^0.2.0"
+ filter-obj "^1.1.0"
+ split-on-first "^1.0.0"
+ strict-uri-encode "^2.0.0"
+
queue-microtask@^1.2.2:
version "1.2.3"
resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
@@ -6547,9 +6855,9 @@ range-parser@~1.2.1:
integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
react-devtools-core@^4.6.0:
- version "4.12.0"
- resolved "https://registry.yarnpkg.com/react-devtools-core/-/react-devtools-core-4.12.0.tgz#02fa1a3d58b2748ce5a0a3213f4417e7a4960354"
- integrity sha512-MN7zE3UpccJQLs+tTKGoM1GQFZLJki4PhT4Us0JJgn6MK1m5ZOQnmJZy+cp21LqUBFPXxqmpqeu65/gTRbxK5Q==
+ version "4.12.1"
+ resolved "https://registry.yarnpkg.com/react-devtools-core/-/react-devtools-core-4.12.1.tgz#9cbf7e16b7f6a587c7e28aec74bb6daabd0bfdfd"
+ integrity sha512-d12z3rBMXn6+LI+tAcvTny++1sSf/MA51CHmsMGFIN211NJupPsgVDLGddNvrvZg6OL+vYznpjd5mhzdrGGg7A==
dependencies:
shell-quote "^1.6.1"
ws "^7"
@@ -6563,7 +6871,7 @@ react-dom@^17.0.1:
object-assign "^4.1.1"
scheduler "^0.20.2"
-react-is@^16.12.0, react-is@^16.13.1, react-is@^16.8.1, react-is@^16.8.6:
+react-is@^16.12.0, react-is@^16.13.0, react-is@^16.13.1, react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.6:
version "16.13.1"
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
@@ -6582,6 +6890,42 @@ react-native-codegen@^0.0.6:
jscodeshift "^0.11.0"
nullthrows "^1.1.1"
+react-native-gesture-handler@^1.10.3:
+ version "1.10.3"
+ resolved "https://registry.yarnpkg.com/react-native-gesture-handler/-/react-native-gesture-handler-1.10.3.tgz#942bbf2963bbf49fa79593600ee9d7b5dab3cfc0"
+ integrity sha512-cBGMi1IEsIVMgoox4RvMx7V2r6bNKw0uR1Mu1o7NbuHS6BRSVLq0dP34l2ecnPlC+jpWd3le6Yg1nrdCjby2Mw==
+ dependencies:
+ "@egjs/hammerjs" "^2.0.17"
+ fbjs "^3.0.0"
+ hoist-non-react-statics "^3.3.0"
+ invariant "^2.2.4"
+ prop-types "^15.7.2"
+
+react-native-iphone-x-helper@^1.3.0:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/react-native-iphone-x-helper/-/react-native-iphone-x-helper-1.3.1.tgz#20c603e9a0e765fd6f97396638bdeb0e5a60b010"
+ integrity sha512-HOf0jzRnq2/aFUcdCJ9w9JGzN3gdEg0zFE4FyYlp4jtidqU03D5X7ZegGKfT1EWteR0gPBGp9ye5T5FvSWi9Yg==
+
+react-native-reanimated@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/react-native-reanimated/-/react-native-reanimated-2.1.0.tgz#b9ad04aee490e1e030d0a6cdaa43a14895d9a54d"
+ integrity sha512-tlPvvcdf+X7HGQ7g/7npBFhwMznfdk7MHUc9gUB/kp2abSscXNe/kOVKlrNEOO4DS11rNOXc+llFxVFMuNk0zA==
+ dependencies:
+ "@babel/plugin-transform-object-assign" "^7.10.4"
+ fbjs "^3.0.0"
+ mockdate "^3.0.2"
+ string-hash-64 "^1.0.3"
+
+react-native-safe-area-context@^3.2.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/react-native-safe-area-context/-/react-native-safe-area-context-3.2.0.tgz#06113c6b208f982d68ab5c3cebd199ca93db6941"
+ integrity sha512-k2Nty4PwSnrg9HwrYeeE+EYqViYJoOFwEy9LxL5RIRfoqxAq/uQXNGwpUg2/u4gnKpBbEPa9eRh15KKMe/VHkA==
+
+react-native-screens@^3.1.0:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/react-native-screens/-/react-native-screens-3.1.1.tgz#2cd4496c5e3ed1ffbaf77962b8fcc10be3af2158"
+ integrity sha512-cjhK85T8LQ7uqqmwvLb8FKNk1RfgJd1jtbUm1lOxUmJreFki5Wh2SUlx0DAvNG35U6quGD15KPYRducGa+M04g==
+
react-native@0.64.0:
version "0.64.0"
resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.64.0.tgz#c3bde5b638bf8bcf12bae6e094930d39cb942ab7"
@@ -6633,6 +6977,11 @@ react-shallow-renderer@^16.13.1:
object-assign "^4.1.1"
react-is "^16.12.0 || ^17.0.0"
+react-suspense-loadable@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/react-suspense-loadable/-/react-suspense-loadable-1.0.0.tgz#8b984ad57790bbc7eca5e9832040edb1b3fa4499"
+ integrity sha512-DzMNsR+2m+To8SvUsFbuqY8FkKxSHlYKA+RHUNJEy+dkG61l4pjvZBfjrmZFG1V1SQeKiAYBWHhXIp+Fh28irg==
+
react-test-renderer@17.0.1:
version "17.0.1"
resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-17.0.1.tgz#3187e636c3063e6ae498aedf21ecf972721574c7"
@@ -6968,7 +7317,7 @@ rimraf@2.6.3, rimraf@~2.6.2:
dependencies:
glob "^7.1.3"
-rimraf@^2.5.4:
+rimraf@^2.5.4, rimraf@^2.6.3:
version "2.7.1"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
@@ -7101,18 +7450,18 @@ semver@7.0.0:
resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e"
integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==
-semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0:
- version "6.3.0"
- resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
- integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
-
-semver@^7.2.1, semver@^7.3.2:
+semver@7.x, semver@^7.2.1, semver@^7.3.2:
version "7.3.5"
resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7"
integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==
dependencies:
lru-cache "^6.0.0"
+semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0:
+ version "6.3.0"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
+ integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
+
send@0.17.1:
version "0.17.1"
resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8"
@@ -7162,6 +7511,11 @@ set-value@^2.0.0, set-value@^2.0.1:
is-plain-object "^2.0.3"
split-string "^3.0.1"
+setimmediate@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
+ integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=
+
setprototypeof@1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683"
@@ -7243,6 +7597,13 @@ simple-plist@^1.0.0:
bplist-parser "0.2.0"
plist "^3.0.1"
+simple-swizzle@^0.2.2:
+ version "0.2.2"
+ resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a"
+ integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=
+ dependencies:
+ is-arrayish "^0.3.1"
+
sisteransi@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed"
@@ -7362,6 +7723,11 @@ spdx-license-ids@^3.0.0:
resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz#e9c18a410e5ed7e12442a549fbd8afa767038d65"
integrity sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==
+split-on-first@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f"
+ integrity sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==
+
split-string@^3.0.1, split-string@^3.0.2:
version "3.1.0"
resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2"
@@ -7438,6 +7804,16 @@ stream-buffers@~2.2.0:
resolved "https://registry.yarnpkg.com/stream-buffers/-/stream-buffers-2.2.0.tgz#91d5f5130d1cef96dcfa7f726945188741d09ee4"
integrity sha1-kdX1Ew0c75bc+n9yaUUYh0HQnuQ=
+strict-uri-encode@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546"
+ integrity sha1-ucczDHBChi9rFC3CdLvMWGbONUY=
+
+string-hash-64@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/string-hash-64/-/string-hash-64-1.0.3.tgz#0deb56df58678640db5c479ccbbb597aaa0de322"
+ integrity sha512-D5OKWKvDhyVWWn2x5Y9b+37NUllks34q1dCDhk/vYcso9fmhs+Tl3KR/gE4v5UNj2UA35cnX4KdVVGkG1deKqw==
+
string-length@^4.0.1:
version "4.0.2"
resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a"
@@ -7682,6 +8058,13 @@ through2@^2.0.1:
readable-stream "~2.3.6"
xtend "~4.0.1"
+tmp@^0.0.33:
+ version "0.0.33"
+ resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
+ integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==
+ dependencies:
+ os-tmpdir "~1.0.2"
+
tmpl@1.0.x:
version "1.0.4"
resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1"
@@ -7767,6 +8150,22 @@ truncate-utf8-bytes@^1.0.0:
dependencies:
utf8-byte-length "^1.0.1"
+ts-jest@^26.5.4:
+ version "26.5.4"
+ resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-26.5.4.tgz#207f4c114812a9c6d5746dd4d1cdf899eafc9686"
+ integrity sha512-I5Qsddo+VTm94SukBJ4cPimOoFZsYTeElR2xy6H2TOVs+NsvgYglW8KuQgKoApOKuaU/Ix/vrF9ebFZlb5D2Pg==
+ dependencies:
+ bs-logger "0.x"
+ buffer-from "1.x"
+ fast-json-stable-stringify "2.x"
+ jest-util "^26.1.0"
+ json5 "2.x"
+ lodash "4.x"
+ make-error "1.x"
+ mkdirp "1.x"
+ semver "7.x"
+ yargs-parser "20.x"
+
tslib@^1.8.1:
version "1.14.1"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
@@ -7847,6 +8246,11 @@ typescript@^4.2.4:
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.2.4.tgz#8610b59747de028fda898a8aef0e103f156d0961"
integrity sha512-V+evlYHZnQkaz8TRBuxTA92yZBPotr5H+WhQ7bD3hZUndx5tGOa1fuCgeSjxAzM1RiN5IzvadIXTVefuuwZCRg==
+ua-parser-js@^0.7.18:
+ version "0.7.28"
+ resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.28.tgz#8ba04e653f35ce210239c64661685bf9121dec31"
+ integrity sha512-6Gurc1n//gjp9eQNXjD9O3M/sMwVtN5S8Lv9bvOYBfKfDNiIIhqiyi01vMBO45u4zkDE420w/e0se7Vs+sIg+g==
+
uglify-es@^3.1.9:
version "3.3.9"
resolved "https://registry.yarnpkg.com/uglify-es/-/uglify-es-3.3.9.tgz#0c1c4f0700bed8dbc124cdb304d2592ca203e677"
@@ -8310,6 +8714,11 @@ yallist@^4.0.0:
resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
+yargs-parser@20.x, yargs-parser@^20.2.2:
+ version "20.2.7"
+ resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.7.tgz#61df85c113edfb5a7a4e36eb8aa60ef423cbc90a"
+ integrity sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw==
+
yargs-parser@^18.1.2:
version "18.1.3"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0"
@@ -8318,11 +8727,6 @@ yargs-parser@^18.1.2:
camelcase "^5.0.0"
decamelize "^1.2.0"
-yargs-parser@^20.2.2:
- version "20.2.7"
- resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.7.tgz#61df85c113edfb5a7a4e36eb8aa60ef423cbc90a"
- integrity sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw==
-
yargs-unparser@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb"