diff --git a/.eslintrc.js b/.eslintrc.js
deleted file mode 100644
index 1896997..0000000
--- a/.eslintrc.js
+++ /dev/null
@@ -1,6 +0,0 @@
-module.exports = {
- root: true,
- extends: '@react-native-community',
- parser: '@typescript-eslint/parser',
- plugins: ['@typescript-eslint'],
-};
diff --git a/.prettierrc.js b/.prettierrc.js
deleted file mode 100644
index 5c4de1a..0000000
--- a/.prettierrc.js
+++ /dev/null
@@ -1,6 +0,0 @@
-module.exports = {
- bracketSpacing: false,
- jsxBracketSameLine: true,
- singleQuote: true,
- trailingComma: 'all',
-};
diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 0000000..5d44ce6
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,4 @@
+{
+ "i18n-ally.localesPaths": "locales",
+ "i18n-ally.keystyle": "nested"
+}
\ No newline at end of file
diff --git a/App.tsx b/App.tsx
index b8e5f0d..234895d 100644
--- a/App.tsx
+++ b/App.tsx
@@ -17,13 +17,13 @@
* along with Campus INSAT. If not, see .
*/
-import * as React from 'react';
-import {LogBox, Platform, SafeAreaView, View} from 'react-native';
-import {NavigationContainer} from '@react-navigation/native';
-import {Provider as PaperProvider} from 'react-native-paper';
-import {setSafeBounceHeight} from 'react-navigation-collapsible';
+import React from 'react';
+import { LogBox, Platform, SafeAreaView, View } from 'react-native';
+import { NavigationContainer } from '@react-navigation/native';
+import { Provider as PaperProvider } from 'react-native-paper';
+import { setSafeBounceHeight } from 'react-navigation-collapsible';
import SplashScreen from 'react-native-splash-screen';
-import {OverflowMenuProvider} from 'react-navigation-header-buttons';
+import { OverflowMenuProvider } from 'react-navigation-header-buttons';
import AsyncStorageManager from './src/managers/AsyncStorageManager';
import CustomIntroSlider from './src/components/Overrides/CustomIntroSlider';
import ThemeManager from './src/managers/ThemeManager';
@@ -31,11 +31,12 @@ import MainNavigator from './src/navigation/MainNavigator';
import AprilFoolsManager from './src/managers/AprilFoolsManager';
import Update from './src/constants/Update';
import ConnectionManager from './src/managers/ConnectionManager';
-import type {ParsedUrlDataType} from './src/utils/URLHandler';
+import type { ParsedUrlDataType } from './src/utils/URLHandler';
import URLHandler from './src/utils/URLHandler';
-import {setupStatusBar} from './src/utils/Utils';
+import { setupStatusBar } from './src/utils/Utils';
import initLocales from './src/utils/Locales';
-import {NavigationContainerRef} from '@react-navigation/core';
+import { NavigationContainerRef } from '@react-navigation/core';
+import GENERAL_STYLES from './src/constants/Styles';
// Native optimizations https://reactnavigation.org/docs/react-native-screens
// Crashes app when navigating away from webview on android 9+
@@ -56,11 +57,11 @@ type StateType = {
};
export default class App extends React.Component<{}, StateType> {
- navigatorRef: {current: null | NavigationContainerRef};
+ navigatorRef: { current: null | NavigationContainerRef };
defaultHomeRoute: string | null;
- defaultHomeData: {[key: string]: string};
+ defaultHomeData: { [key: string]: string };
urlHandler: URLHandler;
@@ -106,7 +107,7 @@ export default class App extends React.Component<{}, StateType> {
if (nav != null) {
nav.navigate('home', {
screen: 'index',
- params: {nextScreen: parsedData.route, data: parsedData.data},
+ params: { nextScreen: parsedData.route, data: parsedData.data },
});
}
};
@@ -132,15 +133,15 @@ export default class App extends React.Component<{}, StateType> {
});
AsyncStorageManager.set(
AsyncStorageManager.PREFERENCES.showIntro.key,
- false,
+ false
);
AsyncStorageManager.set(
AsyncStorageManager.PREFERENCES.updateNumber.key,
- Update.number,
+ Update.number
);
AsyncStorageManager.set(
AsyncStorageManager.PREFERENCES.showAprilFoolsStart.key,
- false,
+ false
);
};
@@ -161,16 +162,16 @@ export default class App extends React.Component<{}, StateType> {
isLoading: false,
currentTheme: ThemeManager.getCurrentTheme(),
showIntro: AsyncStorageManager.getBool(
- AsyncStorageManager.PREFERENCES.showIntro.key,
+ AsyncStorageManager.PREFERENCES.showIntro.key
),
showUpdate:
AsyncStorageManager.getNumber(
- AsyncStorageManager.PREFERENCES.updateNumber.key,
+ AsyncStorageManager.PREFERENCES.updateNumber.key
) !== Update.number,
showAprilFools:
AprilFoolsManager.getInstance().isAprilFoolsEnabled() &&
AsyncStorageManager.getBool(
- AsyncStorageManager.PREFERENCES.showAprilFoolsStart.key,
+ AsyncStorageManager.PREFERENCES.showAprilFoolsStart.key
),
});
SplashScreen.hide();
@@ -194,7 +195,7 @@ export default class App extends React.Component<{}, StateType> {
* Renders the app based on loading state
*/
render() {
- const {state} = this;
+ const { state } = this;
if (state.isLoading) {
return null;
}
@@ -213,12 +214,14 @@ export default class App extends React.Component<{}, StateType> {
-
+ ...GENERAL_STYLES.flex,
+ }}
+ >
+
+ ref={this.navigatorRef}
+ >
{
});
});
return expect(c.connect('email', 'password')).rejects.toBe(
- ERROR_TYPE.BAD_CREDENTIALS,
+ ERROR_TYPE.BAD_CREDENTIALS
);
});
@@ -54,7 +52,7 @@ test('connect good credentials', () => {
json: () => {
return {
error: ERROR_TYPE.SUCCESS,
- data: {token: 'token'},
+ data: { token: 'token' },
};
},
});
@@ -79,7 +77,7 @@ test('connect good credentials no consent', () => {
});
});
return expect(c.connect('email', 'password')).rejects.toBe(
- ERROR_TYPE.NO_CONSENT,
+ ERROR_TYPE.NO_CONSENT
);
});
@@ -89,7 +87,7 @@ test('connect good credentials, fail save token', () => {
json: () => {
return {
error: ERROR_TYPE.SUCCESS,
- data: {token: 'token'},
+ data: { token: 'token' },
};
},
});
@@ -100,7 +98,7 @@ test('connect good credentials, fail save token', () => {
return Promise.reject(false);
});
return expect(c.connect('email', 'password')).rejects.toBe(
- ERROR_TYPE.TOKEN_SAVE,
+ ERROR_TYPE.TOKEN_SAVE
);
});
@@ -109,7 +107,7 @@ test('connect connection error', () => {
return Promise.reject();
});
return expect(c.connect('email', 'password')).rejects.toBe(
- ERROR_TYPE.CONNECTION_ERROR,
+ ERROR_TYPE.CONNECTION_ERROR
);
});
@@ -125,7 +123,7 @@ test('connect bogus response 1', () => {
});
});
return expect(c.connect('email', 'password')).rejects.toBe(
- ERROR_TYPE.SERVER_ERROR,
+ ERROR_TYPE.SERVER_ERROR
);
});
@@ -140,14 +138,14 @@ test('authenticatedRequest success', () => {
json: () => {
return {
error: ERROR_TYPE.SUCCESS,
- data: {coucou: 'toi'},
+ data: { coucou: 'toi' },
};
},
});
});
return expect(
- c.authenticatedRequest('https://www.amicale-insat.fr/api/token/check'),
- ).resolves.toStrictEqual({coucou: 'toi'});
+ c.authenticatedRequest('https://www.amicale-insat.fr/api/token/check')
+ ).resolves.toStrictEqual({ coucou: 'toi' });
});
test('authenticatedRequest error wrong token', () => {
@@ -167,7 +165,7 @@ test('authenticatedRequest error wrong token', () => {
});
});
return expect(
- c.authenticatedRequest('https://www.amicale-insat.fr/api/token/check'),
+ c.authenticatedRequest('https://www.amicale-insat.fr/api/token/check')
).rejects.toBe(ERROR_TYPE.BAD_TOKEN);
});
@@ -187,7 +185,7 @@ test('authenticatedRequest error bogus response', () => {
});
});
return expect(
- c.authenticatedRequest('https://www.amicale-insat.fr/api/token/check'),
+ c.authenticatedRequest('https://www.amicale-insat.fr/api/token/check')
).rejects.toBe(ERROR_TYPE.SERVER_ERROR);
});
@@ -201,7 +199,7 @@ test('authenticatedRequest connection error', () => {
return Promise.reject();
});
return expect(
- c.authenticatedRequest('https://www.amicale-insat.fr/api/token/check'),
+ c.authenticatedRequest('https://www.amicale-insat.fr/api/token/check')
).rejects.toBe(ERROR_TYPE.CONNECTION_ERROR);
});
@@ -212,6 +210,6 @@ test('authenticatedRequest error no token', () => {
return null;
});
return expect(
- c.authenticatedRequest('https://www.amicale-insat.fr/api/token/check'),
+ c.authenticatedRequest('https://www.amicale-insat.fr/api/token/check')
).rejects.toBe(ERROR_TYPE.TOKEN_RETRIEVE);
});
diff --git a/__tests__/utils/EquipmentBooking.test.js b/__tests__/utils/EquipmentBooking.test.js
index 1405ed3..eba4c9a 100644
--- a/__tests__/utils/EquipmentBooking.test.js
+++ b/__tests__/utils/EquipmentBooking.test.js
@@ -1,6 +1,3 @@
-/* eslint-disable */
-
-import React from 'react';
import * as EquipmentBooking from '../../src/utils/EquipmentBooking';
import i18n from 'i18n-js';
@@ -18,7 +15,7 @@ test('getCurrentDay', () => {
.spyOn(Date, 'now')
.mockImplementation(() => new Date('2020-01-14 14:50:35').getTime());
expect(EquipmentBooking.getCurrentDay().getTime()).toBe(
- new Date('2020-01-14').getTime(),
+ new Date('2020-01-14').getTime()
);
});
@@ -30,19 +27,19 @@ test('isEquipmentAvailable', () => {
id: 1,
name: 'Petit barbecue',
caution: 100,
- booked_at: [{begin: '2020-07-07', end: '2020-07-10'}],
+ booked_at: [{ begin: '2020-07-07', end: '2020-07-10' }],
};
expect(EquipmentBooking.isEquipmentAvailable(testDevice)).toBeFalse();
- testDevice.booked_at = [{begin: '2020-07-07', end: '2020-07-09'}];
+ testDevice.booked_at = [{ begin: '2020-07-07', end: '2020-07-09' }];
expect(EquipmentBooking.isEquipmentAvailable(testDevice)).toBeFalse();
- testDevice.booked_at = [{begin: '2020-07-09', end: '2020-07-10'}];
+ testDevice.booked_at = [{ begin: '2020-07-09', end: '2020-07-10' }];
expect(EquipmentBooking.isEquipmentAvailable(testDevice)).toBeFalse();
testDevice.booked_at = [
- {begin: '2020-07-07', end: '2020-07-8'},
- {begin: '2020-07-10', end: '2020-07-12'},
+ { begin: '2020-07-07', end: '2020-07-8' },
+ { begin: '2020-07-10', end: '2020-07-12' },
];
expect(EquipmentBooking.isEquipmentAvailable(testDevice)).toBeTrue();
});
@@ -55,29 +52,29 @@ test('getFirstEquipmentAvailability', () => {
id: 1,
name: 'Petit barbecue',
caution: 100,
- booked_at: [{begin: '2020-07-07', end: '2020-07-10'}],
+ booked_at: [{ begin: '2020-07-07', end: '2020-07-10' }],
};
expect(
- EquipmentBooking.getFirstEquipmentAvailability(testDevice).getTime(),
+ EquipmentBooking.getFirstEquipmentAvailability(testDevice).getTime()
).toBe(new Date('2020-07-11').getTime());
- testDevice.booked_at = [{begin: '2020-07-07', end: '2020-07-09'}];
+ testDevice.booked_at = [{ begin: '2020-07-07', end: '2020-07-09' }];
expect(
- EquipmentBooking.getFirstEquipmentAvailability(testDevice).getTime(),
+ EquipmentBooking.getFirstEquipmentAvailability(testDevice).getTime()
).toBe(new Date('2020-07-10').getTime());
testDevice.booked_at = [
- {begin: '2020-07-07', end: '2020-07-09'},
- {begin: '2020-07-10', end: '2020-07-16'},
+ { begin: '2020-07-07', end: '2020-07-09' },
+ { begin: '2020-07-10', end: '2020-07-16' },
];
expect(
- EquipmentBooking.getFirstEquipmentAvailability(testDevice).getTime(),
+ EquipmentBooking.getFirstEquipmentAvailability(testDevice).getTime()
).toBe(new Date('2020-07-17').getTime());
testDevice.booked_at = [
- {begin: '2020-07-07', end: '2020-07-09'},
- {begin: '2020-07-10', end: '2020-07-12'},
- {begin: '2020-07-14', end: '2020-07-16'},
+ { begin: '2020-07-07', end: '2020-07-09' },
+ { begin: '2020-07-10', end: '2020-07-12' },
+ { begin: '2020-07-14', end: '2020-07-16' },
];
expect(
- EquipmentBooking.getFirstEquipmentAvailability(testDevice).getTime(),
+ EquipmentBooking.getFirstEquipmentAvailability(testDevice).getTime()
).toBe(new Date('2020-07-13').getTime());
});
@@ -85,7 +82,7 @@ test('getRelativeDateString', () => {
jest
.spyOn(Date, 'now')
.mockImplementation(() => new Date('2020-07-09').getTime());
- jest.spyOn(i18n, 't').mockImplementation((translationString: string) => {
+ jest.spyOn(i18n, 't').mockImplementation((translationString) => {
const prefix = 'screens.equipment.';
if (translationString === prefix + 'otherYear') return '0';
else if (translationString === prefix + 'otherMonth') return '1';
@@ -95,25 +92,25 @@ test('getRelativeDateString', () => {
else return null;
});
expect(EquipmentBooking.getRelativeDateString(new Date('2020-07-09'))).toBe(
- '4',
+ '4'
);
expect(EquipmentBooking.getRelativeDateString(new Date('2020-07-10'))).toBe(
- '3',
+ '3'
);
expect(EquipmentBooking.getRelativeDateString(new Date('2020-07-11'))).toBe(
- '2',
+ '2'
);
expect(EquipmentBooking.getRelativeDateString(new Date('2020-07-30'))).toBe(
- '2',
+ '2'
);
expect(EquipmentBooking.getRelativeDateString(new Date('2020-08-30'))).toBe(
- '1',
+ '1'
);
expect(EquipmentBooking.getRelativeDateString(new Date('2020-11-10'))).toBe(
- '1',
+ '1'
);
expect(EquipmentBooking.getRelativeDateString(new Date('2021-11-10'))).toBe(
- '0',
+ '0'
);
});
@@ -122,7 +119,7 @@ test('getValidRange', () => {
id: 1,
name: 'Petit barbecue',
caution: 100,
- booked_at: [{begin: '2020-07-07', end: '2020-07-10'}],
+ booked_at: [{ begin: '2020-07-07', end: '2020-07-10' }],
};
let start = new Date('2020-07-11');
let end = new Date('2020-07-15');
@@ -134,62 +131,62 @@ test('getValidRange', () => {
'2020-07-15',
];
expect(EquipmentBooking.getValidRange(start, end, testDevice)).toStrictEqual(
- result,
+ result
);
testDevice.booked_at = [
- {begin: '2020-07-07', end: '2020-07-10'},
- {begin: '2020-07-13', end: '2020-07-15'},
+ { begin: '2020-07-07', end: '2020-07-10' },
+ { begin: '2020-07-13', end: '2020-07-15' },
];
result = ['2020-07-11', '2020-07-12'];
expect(EquipmentBooking.getValidRange(start, end, testDevice)).toStrictEqual(
- result,
+ result
);
- testDevice.booked_at = [{begin: '2020-07-12', end: '2020-07-13'}];
+ testDevice.booked_at = [{ begin: '2020-07-12', end: '2020-07-13' }];
result = ['2020-07-11'];
expect(EquipmentBooking.getValidRange(start, end, testDevice)).toStrictEqual(
- result,
+ result
);
- testDevice.booked_at = [{begin: '2020-07-07', end: '2020-07-12'}];
+ testDevice.booked_at = [{ begin: '2020-07-07', end: '2020-07-12' }];
result = ['2020-07-13', '2020-07-14', '2020-07-15'];
expect(EquipmentBooking.getValidRange(end, start, testDevice)).toStrictEqual(
- result,
+ result
);
start = new Date('2020-07-14');
end = new Date('2020-07-14');
result = ['2020-07-14'];
expect(
- EquipmentBooking.getValidRange(start, start, testDevice),
+ EquipmentBooking.getValidRange(start, start, testDevice)
).toStrictEqual(result);
expect(EquipmentBooking.getValidRange(end, start, testDevice)).toStrictEqual(
- result,
+ result
);
expect(EquipmentBooking.getValidRange(start, end, null)).toStrictEqual(
- result,
+ result
);
start = new Date('2020-07-14');
end = new Date('2020-07-17');
result = ['2020-07-14', '2020-07-15', '2020-07-16', '2020-07-17'];
expect(EquipmentBooking.getValidRange(start, end, null)).toStrictEqual(
- result,
+ result
);
- testDevice.booked_at = [{begin: '2020-07-17', end: '2020-07-17'}];
+ testDevice.booked_at = [{ begin: '2020-07-17', end: '2020-07-17' }];
result = ['2020-07-14', '2020-07-15', '2020-07-16'];
expect(EquipmentBooking.getValidRange(start, end, testDevice)).toStrictEqual(
- result,
+ result
);
testDevice.booked_at = [
- {begin: '2020-07-12', end: '2020-07-13'},
- {begin: '2020-07-15', end: '2020-07-20'},
+ { begin: '2020-07-12', end: '2020-07-13' },
+ { begin: '2020-07-15', end: '2020-07-20' },
];
start = new Date('2020-07-11');
end = new Date('2020-07-23');
result = ['2020-07-21', '2020-07-22', '2020-07-23'];
expect(EquipmentBooking.getValidRange(end, start, testDevice)).toStrictEqual(
- result,
+ result
);
});
@@ -205,7 +202,7 @@ test('generateMarkedDates', () => {
id: 1,
name: 'Petit barbecue',
caution: 100,
- booked_at: [{begin: '2020-07-07', end: '2020-07-10'}],
+ booked_at: [{ begin: '2020-07-07', end: '2020-07-10' }],
};
let start = new Date('2020-07-11');
let end = new Date('2020-07-13');
@@ -228,7 +225,7 @@ test('generateMarkedDates', () => {
},
};
expect(
- EquipmentBooking.generateMarkedDates(true, theme, range),
+ EquipmentBooking.generateMarkedDates(true, theme, range)
).toStrictEqual(result);
result = {
'2020-07-11': {
@@ -248,7 +245,7 @@ test('generateMarkedDates', () => {
},
};
expect(
- EquipmentBooking.generateMarkedDates(false, theme, range),
+ EquipmentBooking.generateMarkedDates(false, theme, range)
).toStrictEqual(result);
result = {
'2020-07-11': {
@@ -269,10 +266,10 @@ test('generateMarkedDates', () => {
};
range = EquipmentBooking.getValidRange(end, start, testDevice);
expect(
- EquipmentBooking.generateMarkedDates(false, theme, range),
+ EquipmentBooking.generateMarkedDates(false, theme, range)
).toStrictEqual(result);
- testDevice.booked_at = [{begin: '2020-07-13', end: '2020-07-15'}];
+ testDevice.booked_at = [{ begin: '2020-07-13', end: '2020-07-15' }];
result = {
'2020-07-11': {
startingDay: true,
@@ -287,10 +284,10 @@ test('generateMarkedDates', () => {
};
range = EquipmentBooking.getValidRange(start, end, testDevice);
expect(
- EquipmentBooking.generateMarkedDates(true, theme, range),
+ EquipmentBooking.generateMarkedDates(true, theme, range)
).toStrictEqual(result);
- testDevice.booked_at = [{begin: '2020-07-12', end: '2020-07-13'}];
+ testDevice.booked_at = [{ begin: '2020-07-12', end: '2020-07-13' }];
result = {
'2020-07-11': {
startingDay: true,
@@ -300,12 +297,12 @@ test('generateMarkedDates', () => {
};
range = EquipmentBooking.getValidRange(start, end, testDevice);
expect(
- EquipmentBooking.generateMarkedDates(true, theme, range),
+ EquipmentBooking.generateMarkedDates(true, theme, range)
).toStrictEqual(result);
testDevice.booked_at = [
- {begin: '2020-07-12', end: '2020-07-13'},
- {begin: '2020-07-15', end: '2020-07-20'},
+ { begin: '2020-07-12', end: '2020-07-13' },
+ { begin: '2020-07-15', end: '2020-07-20' },
];
start = new Date('2020-07-11');
end = new Date('2020-07-23');
@@ -318,7 +315,7 @@ test('generateMarkedDates', () => {
};
range = EquipmentBooking.getValidRange(start, end, testDevice);
expect(
- EquipmentBooking.generateMarkedDates(true, theme, range),
+ EquipmentBooking.generateMarkedDates(true, theme, range)
).toStrictEqual(result);
result = {
@@ -340,6 +337,6 @@ test('generateMarkedDates', () => {
};
range = EquipmentBooking.getValidRange(end, start, testDevice);
expect(
- EquipmentBooking.generateMarkedDates(true, theme, range),
+ EquipmentBooking.generateMarkedDates(true, theme, range)
).toStrictEqual(result);
});
diff --git a/__tests__/utils/PlanningEventManager.test.js b/__tests__/utils/PlanningEventManager.test.js
index ad57c6e..8650ae8 100644
--- a/__tests__/utils/PlanningEventManager.test.js
+++ b/__tests__/utils/PlanningEventManager.test.js
@@ -1,6 +1,3 @@
-/* eslint-disable */
-
-import React from 'react';
import * as Planning from '../../src/utils/Planning';
test('isDescriptionEmpty', () => {
@@ -24,7 +21,7 @@ test('isEventDateStringFormatValid', () => {
expect(Planning.isEventDateStringFormatValid('3214-64-12 01:16')).toBeTrue();
expect(
- Planning.isEventDateStringFormatValid('3214-64-12 01:16:00'),
+ Planning.isEventDateStringFormatValid('3214-64-12 01:16:00')
).toBeFalse();
expect(Planning.isEventDateStringFormatValid('3214-64-12 1:16')).toBeFalse();
expect(Planning.isEventDateStringFormatValid('3214-f4-12 01:16')).toBeFalse();
@@ -32,7 +29,7 @@ test('isEventDateStringFormatValid', () => {
expect(Planning.isEventDateStringFormatValid('2020-03-21')).toBeFalse();
expect(Planning.isEventDateStringFormatValid('2020-03-21 truc')).toBeFalse();
expect(
- Planning.isEventDateStringFormatValid('3214-64-12 1:16:65'),
+ Planning.isEventDateStringFormatValid('3214-64-12 1:16:65')
).toBeFalse();
expect(Planning.isEventDateStringFormatValid('garbage')).toBeFalse();
expect(Planning.isEventDateStringFormatValid('')).toBeFalse();
@@ -65,17 +62,17 @@ test('getFormattedEventTime', () => {
expect(Planning.getFormattedEventTime(undefined, undefined)).toBe('/ - /');
expect(Planning.getFormattedEventTime('20:30', '23:00')).toBe('/ - /');
expect(Planning.getFormattedEventTime('2020-03-30', '2020-03-31')).toBe(
- '/ - /',
+ '/ - /'
);
expect(
- Planning.getFormattedEventTime('2020-03-21 09:00', '2020-03-21 09:00'),
+ Planning.getFormattedEventTime('2020-03-21 09:00', '2020-03-21 09:00')
).toBe('09:00');
expect(
- Planning.getFormattedEventTime('2020-03-21 09:00', '2020-03-22 17:00'),
+ Planning.getFormattedEventTime('2020-03-21 09:00', '2020-03-22 17:00')
).toBe('09:00 - 23:59');
expect(
- Planning.getFormattedEventTime('2020-03-30 20:30', '2020-03-30 23:00'),
+ Planning.getFormattedEventTime('2020-03-30 20:30', '2020-03-30 23:00')
).toBe('20:30 - 23:00');
});
@@ -90,38 +87,38 @@ test('getDateOnlyString', () => {
test('isEventBefore', () => {
expect(
- Planning.isEventBefore('2020-03-21 09:00', '2020-03-21 10:00'),
+ Planning.isEventBefore('2020-03-21 09:00', '2020-03-21 10:00')
).toBeTrue();
expect(
- Planning.isEventBefore('2020-03-21 10:00', '2020-03-21 10:15'),
+ Planning.isEventBefore('2020-03-21 10:00', '2020-03-21 10:15')
).toBeTrue();
expect(
- Planning.isEventBefore('2020-03-21 10:15', '2021-03-21 10:15'),
+ Planning.isEventBefore('2020-03-21 10:15', '2021-03-21 10:15')
).toBeTrue();
expect(
- Planning.isEventBefore('2020-03-21 10:15', '2020-05-21 10:15'),
+ Planning.isEventBefore('2020-03-21 10:15', '2020-05-21 10:15')
).toBeTrue();
expect(
- Planning.isEventBefore('2020-03-21 10:15', '2020-03-30 10:15'),
+ Planning.isEventBefore('2020-03-21 10:15', '2020-03-30 10:15')
).toBeTrue();
expect(
- Planning.isEventBefore('2020-03-21 10:00', '2020-03-21 10:00'),
+ Planning.isEventBefore('2020-03-21 10:00', '2020-03-21 10:00')
).toBeFalse();
expect(
- Planning.isEventBefore('2020-03-21 10:00', '2020-03-21 09:00'),
+ Planning.isEventBefore('2020-03-21 10:00', '2020-03-21 09:00')
).toBeFalse();
expect(
- Planning.isEventBefore('2020-03-21 10:15', '2020-03-21 10:00'),
+ Planning.isEventBefore('2020-03-21 10:15', '2020-03-21 10:00')
).toBeFalse();
expect(
- Planning.isEventBefore('2021-03-21 10:15', '2020-03-21 10:15'),
+ Planning.isEventBefore('2021-03-21 10:15', '2020-03-21 10:15')
).toBeFalse();
expect(
- Planning.isEventBefore('2020-05-21 10:15', '2020-03-21 10:15'),
+ Planning.isEventBefore('2020-05-21 10:15', '2020-03-21 10:15')
).toBeFalse();
expect(
- Planning.isEventBefore('2020-03-30 10:15', '2020-03-21 10:15'),
+ Planning.isEventBefore('2020-03-30 10:15', '2020-03-21 10:15')
).toBeFalse();
expect(Planning.isEventBefore('garbage', '2020-03-21 10:15')).toBeFalse();
@@ -162,25 +159,25 @@ test('generateEmptyCalendar', () => {
test('pushEventInOrder', () => {
let eventArray = [];
- let event1 = {date_begin: '2020-01-14 09:15'};
+ let event1 = { date_begin: '2020-01-14 09:15' };
Planning.pushEventInOrder(eventArray, event1);
expect(eventArray.length).toBe(1);
expect(eventArray[0]).toBe(event1);
- let event2 = {date_begin: '2020-01-14 10:15'};
+ let event2 = { date_begin: '2020-01-14 10:15' };
Planning.pushEventInOrder(eventArray, event2);
expect(eventArray.length).toBe(2);
expect(eventArray[0]).toBe(event1);
expect(eventArray[1]).toBe(event2);
- let event3 = {date_begin: '2020-01-14 10:15', title: 'garbage'};
+ let event3 = { date_begin: '2020-01-14 10:15', title: 'garbage' };
Planning.pushEventInOrder(eventArray, event3);
expect(eventArray.length).toBe(3);
expect(eventArray[0]).toBe(event1);
expect(eventArray[1]).toBe(event2);
expect(eventArray[2]).toBe(event3);
- let event4 = {date_begin: '2020-01-13 09:00'};
+ let event4 = { date_begin: '2020-01-13 09:00' };
Planning.pushEventInOrder(eventArray, event4);
expect(eventArray.length).toBe(4);
expect(eventArray[0]).toBe(event4);
@@ -194,11 +191,11 @@ test('generateEventAgenda', () => {
.spyOn(Date, 'now')
.mockImplementation(() => new Date('2020-01-14T00:00:00.000Z').getTime());
let eventList = [
- {date_begin: '2020-01-14 09:15'},
- {date_begin: '2020-02-01 09:15'},
- {date_begin: '2020-01-15 09:15'},
- {date_begin: '2020-02-01 09:30'},
- {date_begin: '2020-02-01 08:30'},
+ { date_begin: '2020-01-14 09:15' },
+ { date_begin: '2020-02-01 09:15' },
+ { date_begin: '2020-01-15 09:15' },
+ { date_begin: '2020-02-01 09:30' },
+ { date_begin: '2020-02-01 08:30' },
];
const calendar = Planning.generateEventAgenda(eventList, 2);
expect(calendar['2020-01-14'].length).toBe(1);
diff --git a/__tests__/utils/Proxiwash.test.js b/__tests__/utils/Proxiwash.test.js
index 4bb7c51..c45156a 100644
--- a/__tests__/utils/Proxiwash.test.js
+++ b/__tests__/utils/Proxiwash.test.js
@@ -1,6 +1,3 @@
-/* eslint-disable */
-
-import React from 'react';
import {
getCleanedMachineWatched,
getMachineEndDate,
@@ -15,19 +12,19 @@ test('getMachineEndDate', () => {
let expectDate = new Date('2020-01-14T15:00:00.000Z');
expectDate.setHours(23);
expectDate.setMinutes(10);
- expect(getMachineEndDate({endTime: '23:10'}).getTime()).toBe(
- expectDate.getTime(),
+ expect(getMachineEndDate({ endTime: '23:10' }).getTime()).toBe(
+ expectDate.getTime()
);
expectDate.setHours(16);
expectDate.setMinutes(30);
- expect(getMachineEndDate({endTime: '16:30'}).getTime()).toBe(
- expectDate.getTime(),
+ expect(getMachineEndDate({ endTime: '16:30' }).getTime()).toBe(
+ expectDate.getTime()
);
- expect(getMachineEndDate({endTime: '15:30'})).toBeNull();
+ expect(getMachineEndDate({ endTime: '15:30' })).toBeNull();
- expect(getMachineEndDate({endTime: '13:10'})).toBeNull();
+ expect(getMachineEndDate({ endTime: '13:10' })).toBeNull();
jest
.spyOn(Date, 'now')
@@ -35,8 +32,8 @@ test('getMachineEndDate', () => {
expectDate = new Date('2020-01-14T23:00:00.000Z');
expectDate.setHours(0);
expectDate.setMinutes(30);
- expect(getMachineEndDate({endTime: '00:30'}).getTime()).toBe(
- expectDate.getTime(),
+ expect(getMachineEndDate({ endTime: '00:30' }).getTime()).toBe(
+ expectDate.getTime()
);
});
@@ -52,16 +49,16 @@ test('isMachineWatched', () => {
},
];
expect(
- isMachineWatched({number: '0', endTime: '23:30'}, machineList),
+ isMachineWatched({ number: '0', endTime: '23:30' }, machineList)
).toBeTrue();
expect(
- isMachineWatched({number: '1', endTime: '20:30'}, machineList),
+ isMachineWatched({ number: '1', endTime: '20:30' }, machineList)
).toBeTrue();
expect(
- isMachineWatched({number: '3', endTime: '20:30'}, machineList),
+ isMachineWatched({ number: '3', endTime: '20:30' }, machineList)
).toBeFalse();
expect(
- isMachineWatched({number: '1', endTime: '23:30'}, machineList),
+ isMachineWatched({ number: '1', endTime: '23:30' }, machineList)
).toBeFalse();
});
@@ -74,8 +71,8 @@ test('getMachineOfId', () => {
number: '1',
},
];
- expect(getMachineOfId('0', machineList)).toStrictEqual({number: '0'});
- expect(getMachineOfId('1', machineList)).toStrictEqual({number: '1'});
+ expect(getMachineOfId('0', machineList)).toStrictEqual({ number: '0' });
+ expect(getMachineOfId('1', machineList)).toStrictEqual({ number: '1' });
expect(getMachineOfId('3', machineList)).toBeNull();
});
@@ -110,7 +107,7 @@ test('getCleanedMachineWatched', () => {
];
let cleanedList = watchList;
expect(getCleanedMachineWatched(watchList, machineList)).toStrictEqual(
- cleanedList,
+ cleanedList
);
watchList = [
@@ -138,7 +135,7 @@ test('getCleanedMachineWatched', () => {
},
];
expect(getCleanedMachineWatched(watchList, machineList)).toStrictEqual(
- cleanedList,
+ cleanedList
);
watchList = [
@@ -162,6 +159,6 @@ test('getCleanedMachineWatched', () => {
},
];
expect(getCleanedMachineWatched(watchList, machineList)).toStrictEqual(
- cleanedList,
+ cleanedList
);
});
diff --git a/__tests__/utils/WebData.test.js b/__tests__/utils/WebData.test.js
index 33e0c58..116b818 100644
--- a/__tests__/utils/WebData.test.js
+++ b/__tests__/utils/WebData.test.js
@@ -1,8 +1,6 @@
-/* eslint-disable */
-
-import React from 'react';
-import {isApiResponseValid} from '../../src/utils/WebData';
+import { isApiResponseValid } from '../../src/utils/WebData';
+// eslint-disable-next-line no-unused-vars
const fetch = require('isomorphic-fetch'); // fetch is not implemented in nodeJS but in react-native
test('isRequestResponseValid', () => {
@@ -23,7 +21,7 @@ test('isRequestResponseValid', () => {
expect(isApiResponseValid(json)).toBeTrue();
json = {
error: 50,
- data: {truc: 'machin'},
+ data: { truc: 'machin' },
};
expect(isApiResponseValid(json)).toBeTrue();
json = {
@@ -32,7 +30,7 @@ test('isRequestResponseValid', () => {
expect(isApiResponseValid(json)).toBeFalse();
json = {
error: 'coucou',
- data: {truc: 'machin'},
+ data: { truc: 'machin' },
};
expect(isApiResponseValid(json)).toBeFalse();
json = {
diff --git a/clear-node-cache.sh b/clear-node-cache.sh
deleted file mode 100755
index 63975cf..0000000
--- a/clear-node-cache.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/bin/bash
-
-echo "Removing node_modules..."
-rm -rf node_modules/
-echo -e "Done\n"
-
-echo "Removing locks..."
-rm -f package-lock.json && rm -f yarn.lock
-echo -e "Done\n"
-
-#echo "Verifying npm cache..."
-#npm cache verify
-#echo -e "Done\n"
-
-echo "Installing dependencies..."
-npm install
-echo -e "Done\n"
-
diff --git a/index.js b/index.js
index 4c1700a..325e0d7 100644
--- a/index.js
+++ b/index.js
@@ -21,9 +21,8 @@
* @format
*/
-import {AppRegistry} from 'react-native';
+import { AppRegistry } from 'react-native';
import App from './App';
-import {name as appName} from './app.json';
+import { name as appName } from './app.json';
-// eslint-disable-next-line flowtype/require-return-type
AppRegistry.registerComponent(appName, () => App);
diff --git a/metro.config.js b/metro.config.js
index 4c78812..e91aba9 100644
--- a/metro.config.js
+++ b/metro.config.js
@@ -7,11 +7,10 @@
module.exports = {
transformer: {
- // eslint-disable-next-line flowtype/require-return-type
getTransformOptions: async () => ({
transform: {
experimentalImportSupport: false,
- inlineRequires: false,
+ inlineRequires: true,
},
}),
},
diff --git a/package-lock.json b/package-lock.json
index 7a2723f..99ce24e 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -5,23 +5,28 @@
"requires": true,
"dependencies": {
"@babel/code-frame": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
- "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz",
+ "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==",
"requires": {
- "@babel/highlight": "^7.10.4"
+ "@babel/highlight": "^7.12.13"
}
},
+ "@babel/compat-data": {
+ "version": "7.14.0",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.0.tgz",
+ "integrity": "sha512-vu9V3uMM/1o5Hl5OekMUowo3FqXLJSw+s+66nt0fSWVWTtmosdzn45JHOB3cPtZoe6CTBDzvSw0RdOY85Q37+Q=="
+ },
"@babel/core": {
- "version": "7.11.1",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.11.1.tgz",
- "integrity": "sha512-XqF7F6FWQdKGGWAzGELL+aCO1p+lRY5Tj5/tbT3St1G8NaH70jhhDIKknIZaDans0OQBG5wRAldROLHSt44BgQ==",
+ "version": "7.11.0",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.11.0.tgz",
+ "integrity": "sha512-mkLq8nwaXmDtFmRkQ8ED/eA2CnVw4zr7dCztKalZXBvdK5EeNUAesrrwUqjQEzFgomJssayzB0aqlOsP1vGLqg==",
"requires": {
"@babel/code-frame": "^7.10.4",
"@babel/generator": "^7.11.0",
"@babel/helper-module-transforms": "^7.11.0",
"@babel/helpers": "^7.10.4",
- "@babel/parser": "^7.11.1",
+ "@babel/parser": "^7.11.0",
"@babel/template": "^7.10.4",
"@babel/traverse": "^7.11.0",
"@babel/types": "^7.11.0",
@@ -36,257 +41,258 @@
},
"dependencies": {
"debug": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
- "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
+ "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
"requires": {
- "ms": "^2.1.1"
+ "ms": "2.1.2"
}
},
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ },
"semver": {
"version": "5.7.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
"integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
}
}
},
"@babel/generator": {
- "version": "7.11.0",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.11.0.tgz",
- "integrity": "sha512-fEm3Uzw7Mc9Xi//qU20cBKatTfs2aOtKqmvy/Vm7RkJEGFQ4xc9myCfbXxqK//ZS8MR/ciOHw6meGASJuKmDfQ==",
+ "version": "7.14.1",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.1.tgz",
+ "integrity": "sha512-TMGhsXMXCP/O1WtQmZjpEYDhCYC9vFhayWZPJSZCGkPJgUqX0rF0wwtrYvnzVxIjcF80tkUertXVk5cwqi5cAQ==",
"requires": {
- "@babel/types": "^7.11.0",
+ "@babel/types": "^7.14.1",
"jsesc": "^2.5.1",
"source-map": "^0.5.0"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
+ }
}
},
"@babel/helper-annotate-as-pure": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz",
- "integrity": "sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==",
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz",
+ "integrity": "sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw==",
"requires": {
- "@babel/types": "^7.10.4"
+ "@babel/types": "^7.12.13"
}
},
"@babel/helper-builder-binary-assignment-operator-visitor": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz",
- "integrity": "sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==",
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.12.13.tgz",
+ "integrity": "sha512-CZOv9tGphhDRlVjVkAgm8Nhklm9RzSmWpX2my+t7Ua/KT616pEzXsQCjinzvkRvHWJ9itO4f296efroX23XCMA==",
"requires": {
- "@babel/helper-explode-assignable-expression": "^7.10.4",
- "@babel/types": "^7.10.4"
+ "@babel/helper-explode-assignable-expression": "^7.12.13",
+ "@babel/types": "^7.12.13"
}
},
- "@babel/helper-builder-react-jsx": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.10.4.tgz",
- "integrity": "sha512-5nPcIZ7+KKDxT1427oBivl9V9YTal7qk0diccnh7RrcgrT/pGFOjgGw1dgryyx1GvHEpXVfoDF6Ak3rTiWh8Rg==",
+ "@babel/helper-compilation-targets": {
+ "version": "7.13.16",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.16.tgz",
+ "integrity": "sha512-3gmkYIrpqsLlieFwjkGgLaSHmhnvlAYzZLlYVjlW+QwI+1zE17kGxuJGmIqDQdYp56XdmGeD+Bswx0UTyG18xA==",
"requires": {
- "@babel/helper-annotate-as-pure": "^7.10.4",
- "@babel/types": "^7.10.4"
- }
- },
- "@babel/helper-builder-react-jsx-experimental": {
- "version": "7.10.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.10.5.tgz",
- "integrity": "sha512-Buewnx6M4ttG+NLkKyt7baQn7ScC/Td+e99G914fRU8fGIUivDDgVIQeDHFa5e4CRSJQt58WpNHhsAZgtzVhsg==",
- "requires": {
- "@babel/helper-annotate-as-pure": "^7.10.4",
- "@babel/helper-module-imports": "^7.10.4",
- "@babel/types": "^7.10.5"
+ "@babel/compat-data": "^7.13.15",
+ "@babel/helper-validator-option": "^7.12.17",
+ "browserslist": "^4.14.5",
+ "semver": "^6.3.0"
}
},
"@babel/helper-create-class-features-plugin": {
- "version": "7.10.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.5.tgz",
- "integrity": "sha512-0nkdeijB7VlZoLT3r/mY3bUkw3T8WG/hNw+FATs/6+pG2039IJWjTYL0VTISqsNHMUTEnwbVnc89WIJX9Qed0A==",
+ "version": "7.14.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.1.tgz",
+ "integrity": "sha512-r8rsUahG4ywm0QpGcCrLaUSOuNAISR3IZCg4Fx05Ozq31aCUrQsTLH6KPxy0N5ULoQ4Sn9qjNdGNtbPWAC6hYg==",
"requires": {
- "@babel/helper-function-name": "^7.10.4",
- "@babel/helper-member-expression-to-functions": "^7.10.5",
- "@babel/helper-optimise-call-expression": "^7.10.4",
- "@babel/helper-plugin-utils": "^7.10.4",
- "@babel/helper-replace-supers": "^7.10.4",
- "@babel/helper-split-export-declaration": "^7.10.4"
+ "@babel/helper-annotate-as-pure": "^7.12.13",
+ "@babel/helper-function-name": "^7.12.13",
+ "@babel/helper-member-expression-to-functions": "^7.13.12",
+ "@babel/helper-optimise-call-expression": "^7.12.13",
+ "@babel/helper-replace-supers": "^7.13.12",
+ "@babel/helper-split-export-declaration": "^7.12.13"
}
},
"@babel/helper-create-regexp-features-plugin": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz",
- "integrity": "sha512-2/hu58IEPKeoLF45DBwx3XFqsbCXmkdAay4spVr2x0jYgRxrSNp+ePwvSsy9g6YSaNDcKIQVPXk1Ov8S2edk2g==",
+ "version": "7.12.17",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.17.tgz",
+ "integrity": "sha512-p2VGmBu9oefLZ2nQpgnEnG0ZlRPvL8gAGvPUMQwUdaE8k49rOMuZpOwdQoy5qJf6K8jL3bcAMhVUlHAjIgJHUg==",
"requires": {
- "@babel/helper-annotate-as-pure": "^7.10.4",
- "@babel/helper-regex": "^7.10.4",
- "regexpu-core": "^4.7.0"
+ "@babel/helper-annotate-as-pure": "^7.12.13",
+ "regexpu-core": "^4.7.1"
}
},
- "@babel/helper-define-map": {
- "version": "7.10.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz",
- "integrity": "sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ==",
+ "@babel/helper-define-polyfill-provider": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.0.tgz",
+ "integrity": "sha512-JT8tHuFjKBo8NnaUbblz7mIu1nnvUDiHVjXXkulZULyidvo/7P6TY7+YqpV37IfF+KUFxmlK04elKtGKXaiVgw==",
"requires": {
- "@babel/helper-function-name": "^7.10.4",
- "@babel/types": "^7.10.5",
- "lodash": "^4.17.19"
+ "@babel/helper-compilation-targets": "^7.13.0",
+ "@babel/helper-module-imports": "^7.12.13",
+ "@babel/helper-plugin-utils": "^7.13.0",
+ "@babel/traverse": "^7.13.0",
+ "debug": "^4.1.1",
+ "lodash.debounce": "^4.0.8",
+ "resolve": "^1.14.2",
+ "semver": "^6.1.2"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
+ "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ }
}
},
"@babel/helper-explode-assignable-expression": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.10.4.tgz",
- "integrity": "sha512-4K71RyRQNPRrR85sr5QY4X3VwG4wtVoXZB9+L3r1Gp38DhELyHCtovqydRi7c1Ovb17eRGiQ/FD5s8JdU0Uy5A==",
+ "version": "7.13.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.13.0.tgz",
+ "integrity": "sha512-qS0peLTDP8kOisG1blKbaoBg/o9OSa1qoumMjTK5pM+KDTtpxpsiubnCGP34vK8BXGcb2M9eigwgvoJryrzwWA==",
"requires": {
- "@babel/traverse": "^7.10.4",
- "@babel/types": "^7.10.4"
+ "@babel/types": "^7.13.0"
}
},
"@babel/helper-function-name": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz",
- "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==",
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz",
+ "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==",
"requires": {
- "@babel/helper-get-function-arity": "^7.10.4",
- "@babel/template": "^7.10.4",
- "@babel/types": "^7.10.4"
+ "@babel/helper-get-function-arity": "^7.12.13",
+ "@babel/template": "^7.12.13",
+ "@babel/types": "^7.12.13"
}
},
"@babel/helper-get-function-arity": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz",
- "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==",
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz",
+ "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==",
"requires": {
- "@babel/types": "^7.10.4"
+ "@babel/types": "^7.12.13"
}
},
"@babel/helper-member-expression-to-functions": {
- "version": "7.11.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz",
- "integrity": "sha512-JbFlKHFntRV5qKw3YC0CvQnDZ4XMwgzzBbld7Ly4Mj4cbFy3KywcR8NtNctRToMWJOVvLINJv525Gd6wwVEx/Q==",
+ "version": "7.13.12",
+ "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz",
+ "integrity": "sha512-48ql1CLL59aKbU94Y88Xgb2VFy7a95ykGRbJJaaVv+LX5U8wFpLfiGXJJGUozsmA1oEh/o5Bp60Voq7ACyA/Sw==",
"requires": {
- "@babel/types": "^7.11.0"
+ "@babel/types": "^7.13.12"
}
},
"@babel/helper-module-imports": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz",
- "integrity": "sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==",
+ "version": "7.13.12",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz",
+ "integrity": "sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA==",
"requires": {
- "@babel/types": "^7.10.4"
+ "@babel/types": "^7.13.12"
}
},
"@babel/helper-module-transforms": {
- "version": "7.11.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz",
- "integrity": "sha512-02EVu8COMuTRO1TAzdMtpBPbe6aQ1w/8fePD2YgQmxZU4gpNWaL9gK3Jp7dxlkUlUCJOTaSeA+Hrm1BRQwqIhg==",
+ "version": "7.14.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.14.0.tgz",
+ "integrity": "sha512-L40t9bxIuGOfpIGA3HNkJhU9qYrf4y5A5LUSw7rGMSn+pcG8dfJ0g6Zval6YJGd2nEjI7oP00fRdnhLKndx6bw==",
"requires": {
- "@babel/helper-module-imports": "^7.10.4",
- "@babel/helper-replace-supers": "^7.10.4",
- "@babel/helper-simple-access": "^7.10.4",
- "@babel/helper-split-export-declaration": "^7.11.0",
- "@babel/template": "^7.10.4",
- "@babel/types": "^7.11.0",
- "lodash": "^4.17.19"
+ "@babel/helper-module-imports": "^7.13.12",
+ "@babel/helper-replace-supers": "^7.13.12",
+ "@babel/helper-simple-access": "^7.13.12",
+ "@babel/helper-split-export-declaration": "^7.12.13",
+ "@babel/helper-validator-identifier": "^7.14.0",
+ "@babel/template": "^7.12.13",
+ "@babel/traverse": "^7.14.0",
+ "@babel/types": "^7.14.0"
}
},
"@babel/helper-optimise-call-expression": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz",
- "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==",
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz",
+ "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==",
"requires": {
- "@babel/types": "^7.10.4"
+ "@babel/types": "^7.12.13"
}
},
"@babel/helper-plugin-utils": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz",
- "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg=="
- },
- "@babel/helper-regex": {
- "version": "7.10.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.5.tgz",
- "integrity": "sha512-68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg==",
- "requires": {
- "lodash": "^4.17.19"
- }
- },
- "@babel/helper-remap-async-to-generator": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.10.4.tgz",
- "integrity": "sha512-86Lsr6NNw3qTNl+TBcF1oRZMaVzJtbWTyTko+CQL/tvNvcGYEFKbLXDPxtW0HKk3McNOk4KzY55itGWCAGK5tg==",
- "requires": {
- "@babel/helper-annotate-as-pure": "^7.10.4",
- "@babel/helper-wrap-function": "^7.10.4",
- "@babel/template": "^7.10.4",
- "@babel/traverse": "^7.10.4",
- "@babel/types": "^7.10.4"
- }
+ "version": "7.13.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz",
+ "integrity": "sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ=="
},
"@babel/helper-replace-supers": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz",
- "integrity": "sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A==",
+ "version": "7.13.12",
+ "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.13.12.tgz",
+ "integrity": "sha512-Gz1eiX+4yDO8mT+heB94aLVNCL+rbuT2xy4YfyNqu8F+OI6vMvJK891qGBTqL9Uc8wxEvRW92Id6G7sDen3fFw==",
"requires": {
- "@babel/helper-member-expression-to-functions": "^7.10.4",
- "@babel/helper-optimise-call-expression": "^7.10.4",
- "@babel/traverse": "^7.10.4",
- "@babel/types": "^7.10.4"
+ "@babel/helper-member-expression-to-functions": "^7.13.12",
+ "@babel/helper-optimise-call-expression": "^7.12.13",
+ "@babel/traverse": "^7.13.0",
+ "@babel/types": "^7.13.12"
}
},
"@babel/helper-simple-access": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz",
- "integrity": "sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw==",
+ "version": "7.13.12",
+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz",
+ "integrity": "sha512-7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA==",
"requires": {
- "@babel/template": "^7.10.4",
- "@babel/types": "^7.10.4"
+ "@babel/types": "^7.13.12"
}
},
"@babel/helper-skip-transparent-expression-wrappers": {
- "version": "7.11.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.11.0.tgz",
- "integrity": "sha512-0XIdiQln4Elglgjbwo9wuJpL/K7AGCY26kmEt0+pRP0TAj4jjyNq1MjoRvikrTVqKcx4Gysxt4cXvVFXP/JO2Q==",
+ "version": "7.12.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz",
+ "integrity": "sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==",
"requires": {
- "@babel/types": "^7.11.0"
+ "@babel/types": "^7.12.1"
}
},
"@babel/helper-split-export-declaration": {
- "version": "7.11.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz",
- "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==",
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz",
+ "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==",
"requires": {
- "@babel/types": "^7.11.0"
+ "@babel/types": "^7.12.13"
}
},
"@babel/helper-validator-identifier": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz",
- "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw=="
+ "version": "7.14.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz",
+ "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A=="
},
- "@babel/helper-wrap-function": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.10.4.tgz",
- "integrity": "sha512-6py45WvEF0MhiLrdxtRjKjufwLL1/ob2qDJgg5JgNdojBAZSAKnAjkyOCNug6n+OBl4VW76XjvgSFTdaMcW0Ug==",
- "requires": {
- "@babel/helper-function-name": "^7.10.4",
- "@babel/template": "^7.10.4",
- "@babel/traverse": "^7.10.4",
- "@babel/types": "^7.10.4"
- }
+ "@babel/helper-validator-option": {
+ "version": "7.12.17",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz",
+ "integrity": "sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw=="
},
"@babel/helpers": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.4.tgz",
- "integrity": "sha512-L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA==",
+ "version": "7.14.0",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.0.tgz",
+ "integrity": "sha512-+ufuXprtQ1D1iZTO/K9+EBRn+qPWMJjZSw/S0KlFrxCw4tkrzv9grgpDHkY9MeQTjTY8i2sp7Jep8DfU6tN9Mg==",
"requires": {
- "@babel/template": "^7.10.4",
- "@babel/traverse": "^7.10.4",
- "@babel/types": "^7.10.4"
+ "@babel/template": "^7.12.13",
+ "@babel/traverse": "^7.14.0",
+ "@babel/types": "^7.14.0"
}
},
"@babel/highlight": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz",
- "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==",
+ "version": "7.14.0",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.0.tgz",
+ "integrity": "sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg==",
"requires": {
- "@babel/helper-validator-identifier": "^7.10.4",
+ "@babel/helper-validator-identifier": "^7.14.0",
"chalk": "^2.0.0",
"js-tokens": "^4.0.0"
},
@@ -330,72 +336,74 @@
}
},
"@babel/parser": {
- "version": "7.11.3",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.11.3.tgz",
- "integrity": "sha512-REo8xv7+sDxkKvoxEywIdsNFiZLybwdI7hcT5uEPyQrSMB4YQ973BfC9OOrD/81MaIjh6UxdulIQXkjmiH3PcA=="
+ "version": "7.14.1",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.1.tgz",
+ "integrity": "sha512-muUGEKu8E/ftMTPlNp+mc6zL3E9zKWmF5sDHZ5MSsoTP9Wyz64AhEf9kD08xYJ7w6Hdcu8H550ircnPyWSIF0Q=="
},
"@babel/plugin-external-helpers": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-external-helpers/-/plugin-external-helpers-7.10.4.tgz",
- "integrity": "sha512-5mASqSthmRNYVXOphYzlqmR3Y8yp5SZMZhtKDh2DGV3R2PWGLEmP7qOahw66//6m4hjhlpV1bVM7xIJHt1F77Q==",
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-external-helpers/-/plugin-external-helpers-7.12.13.tgz",
+ "integrity": "sha512-ClvAsk4RqpE6iacYUjdU9PtvIwC9yAefZENsPfGeG5FckX3jFZLDlWPuyv5gi9/9C2VgwX6H8q1ukBifC0ha+Q==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.4"
+ "@babel/helper-plugin-utils": "^7.12.13"
}
},
"@babel/plugin-proposal-class-properties": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.4.tgz",
- "integrity": "sha512-vhwkEROxzcHGNu2mzUC0OFFNXdZ4M23ib8aRRcJSsW8BZK9pQMD7QB7csl97NBbgGZO7ZyHUyKDnxzOaP4IrCg==",
+ "version": "7.13.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.13.0.tgz",
+ "integrity": "sha512-KnTDjFNC1g+45ka0myZNvSBFLhNCLN+GeGYLDEA8Oq7MZ6yMgfLoIRh86GRT0FjtJhZw8JyUskP9uvj5pHM9Zg==",
"requires": {
- "@babel/helper-create-class-features-plugin": "^7.10.4",
- "@babel/helper-plugin-utils": "^7.10.4"
+ "@babel/helper-create-class-features-plugin": "^7.13.0",
+ "@babel/helper-plugin-utils": "^7.13.0"
}
},
"@babel/plugin-proposal-export-default-from": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.10.4.tgz",
- "integrity": "sha512-G1l00VvDZ7Yk2yRlC5D8Ybvu3gmeHS3rCHoUYdjrqGYUtdeOBoRypnvDZ5KQqxyaiiGHWnVDeSEzA5F9ozItig==",
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.12.13.tgz",
+ "integrity": "sha512-idIsBT+DGXdOHL82U+8bwX4goHm/z10g8sGGrQroh+HCRcm7mDv/luaGdWJQMTuCX2FsdXS7X0Nyyzp4znAPJA==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.4",
- "@babel/plugin-syntax-export-default-from": "^7.10.4"
+ "@babel/helper-plugin-utils": "^7.12.13",
+ "@babel/plugin-syntax-export-default-from": "^7.12.13"
}
},
"@babel/plugin-proposal-nullish-coalescing-operator": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.4.tgz",
- "integrity": "sha512-wq5n1M3ZUlHl9sqT2ok1T2/MTt6AXE0e1Lz4WzWBr95LsAZ5qDXe4KnFuauYyEyLiohvXFMdbsOTMyLZs91Zlw==",
+ "version": "7.13.8",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.13.8.tgz",
+ "integrity": "sha512-iePlDPBn//UhxExyS9KyeYU7RM9WScAG+D3Hhno0PLJebAEpDZMocbDe64eqynhNAnwz/vZoL/q/QB2T1OH39A==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.4",
- "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0"
+ "@babel/helper-plugin-utils": "^7.13.0",
+ "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3"
}
},
"@babel/plugin-proposal-object-rest-spread": {
- "version": "7.11.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.11.0.tgz",
- "integrity": "sha512-wzch41N4yztwoRw0ak+37wxwJM2oiIiy6huGCoqkvSTA9acYWcPfn9Y4aJqmFFJ70KTJUu29f3DQ43uJ9HXzEA==",
+ "version": "7.13.8",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.13.8.tgz",
+ "integrity": "sha512-DhB2EuB1Ih7S3/IRX5AFVgZ16k3EzfRbq97CxAVI1KSYcW+lexV8VZb7G7L8zuPVSdQMRn0kiBpf/Yzu9ZKH0g==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.4",
- "@babel/plugin-syntax-object-rest-spread": "^7.8.0",
- "@babel/plugin-transform-parameters": "^7.10.4"
+ "@babel/compat-data": "^7.13.8",
+ "@babel/helper-compilation-targets": "^7.13.8",
+ "@babel/helper-plugin-utils": "^7.13.0",
+ "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
+ "@babel/plugin-transform-parameters": "^7.13.0"
}
},
"@babel/plugin-proposal-optional-catch-binding": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.4.tgz",
- "integrity": "sha512-LflT6nPh+GK2MnFiKDyLiqSqVHkQnVf7hdoAvyTnnKj9xB3docGRsdPuxp6qqqW19ifK3xgc9U5/FwrSaCNX5g==",
+ "version": "7.13.8",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.13.8.tgz",
+ "integrity": "sha512-0wS/4DUF1CuTmGo+NiaHfHcVSeSLj5S3e6RivPTg/2k3wOv3jO35tZ6/ZWsQhQMvdgI7CwphjQa/ccarLymHVA==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.4",
- "@babel/plugin-syntax-optional-catch-binding": "^7.8.0"
+ "@babel/helper-plugin-utils": "^7.13.0",
+ "@babel/plugin-syntax-optional-catch-binding": "^7.8.3"
}
},
"@babel/plugin-proposal-optional-chaining": {
- "version": "7.11.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.11.0.tgz",
- "integrity": "sha512-v9fZIu3Y8562RRwhm1BbMRxtqZNFmFA2EG+pT2diuU8PT3H6T/KXoZ54KgYisfOFZHV6PfvAiBIZ9Rcz+/JCxA==",
+ "version": "7.13.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.13.12.tgz",
+ "integrity": "sha512-fcEdKOkIB7Tf4IxrgEVeFC4zeJSTr78no9wTdBuZZbqF64kzllU0ybo2zrzm7gUQfxGhBgq4E39oRs8Zx/RMYQ==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.4",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.11.0",
- "@babel/plugin-syntax-optional-chaining": "^7.8.0"
+ "@babel/helper-plugin-utils": "^7.13.0",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1",
+ "@babel/plugin-syntax-optional-chaining": "^7.8.3"
}
},
"@babel/plugin-syntax-async-generators": {
@@ -417,11 +425,11 @@
}
},
"@babel/plugin-syntax-class-properties": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.4.tgz",
- "integrity": "sha512-GCSBF7iUle6rNugfURwNmCGG3Z/2+opxAMLs1nND4bhEG5PuxTIggDBoeYYSujAlLtsupzOHYJQgPS3pivwXIA==",
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz",
+ "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.4"
+ "@babel/helper-plugin-utils": "^7.12.13"
}
},
"@babel/plugin-syntax-dynamic-import": {
@@ -433,19 +441,19 @@
}
},
"@babel/plugin-syntax-export-default-from": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.10.4.tgz",
- "integrity": "sha512-79V6r6Pgudz0RnuMGp5xidu6Z+bPFugh8/Q9eDHonmLp4wKFAZDwygJwYgCzuDu8lFA/sYyT+mc5y2wkd7bTXA==",
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.12.13.tgz",
+ "integrity": "sha512-gVry0zqoums0hA+EniCYK3gABhjYSLX1dVuwYpPw9DrLNA4/GovXySHVg4FGRsZht09ON/5C2NVx3keq+qqVGQ==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.4"
+ "@babel/helper-plugin-utils": "^7.12.13"
}
},
"@babel/plugin-syntax-flow": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.10.4.tgz",
- "integrity": "sha512-yxQsX1dJixF4qEEdzVbst3SZQ58Nrooz8NV9Z9GL4byTE25BvJgl5lf0RECUf0fh28rZBb/RYTWn/eeKwCMrZQ==",
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.12.13.tgz",
+ "integrity": "sha512-J/RYxnlSLXZLVR7wTRsozxKT8qbsx1mNKJzXEEjQ0Kjx1ZACcyHgbanNWNCFtc36IzuWhYWPpvJFFoexoOWFmA==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.4"
+ "@babel/helper-plugin-utils": "^7.12.13"
}
},
"@babel/plugin-syntax-import-meta": {
@@ -467,11 +475,11 @@
}
},
"@babel/plugin-syntax-jsx": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.10.4.tgz",
- "integrity": "sha512-KCg9mio9jwiARCB7WAcQ7Y1q+qicILjoK8LP/VkPkEKaf5dkaZZK1EcTe91a3JJlZ3qy6L5s9X52boEYi8DM9g==",
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.13.tgz",
+ "integrity": "sha512-d4HM23Q1K7oq/SLNmG6mRt85l2csmQ0cHRaxRXjKW0YFdEXqlZ5kzFQKH5Uc3rDJECgu+yCRgPkG04Mm98R/1g==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.4"
+ "@babel/helper-plugin-utils": "^7.12.13"
}
},
"@babel/plugin-syntax-logical-assignment-operators": {
@@ -525,315 +533,295 @@
}
},
"@babel/plugin-syntax-typescript": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.10.4.tgz",
- "integrity": "sha512-oSAEz1YkBCAKr5Yiq8/BNtvSAPwkp/IyUnwZogd8p+F0RuYQQrLeRUzIQhueQTTBy/F+a40uS7OFKxnkRvmvFQ==",
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.12.13.tgz",
+ "integrity": "sha512-cHP3u1JiUiG2LFDKbXnwVad81GvfyIOmCD6HIEId6ojrY0Drfy2q1jw7BwN7dE84+kTnBjLkXoL3IEy/3JPu2w==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.4"
+ "@babel/helper-plugin-utils": "^7.12.13"
}
},
"@babel/plugin-transform-arrow-functions": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.4.tgz",
- "integrity": "sha512-9J/oD1jV0ZCBcgnoFWFq1vJd4msoKb/TCpGNFyyLt0zABdcvgK3aYikZ8HjzB14c26bc7E3Q1yugpwGy2aTPNA==",
+ "version": "7.13.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.13.0.tgz",
+ "integrity": "sha512-96lgJagobeVmazXFaDrbmCLQxBysKu7U6Do3mLsx27gf5Dk85ezysrs2BZUpXD703U/Su1xTBDxxar2oa4jAGg==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.4"
- }
- },
- "@babel/plugin-transform-async-to-generator": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.4.tgz",
- "integrity": "sha512-F6nREOan7J5UXTLsDsZG3DXmZSVofr2tGNwfdrVwkDWHfQckbQXnXSPfD7iO+c/2HGqycwyLST3DnZ16n+cBJQ==",
- "requires": {
- "@babel/helper-module-imports": "^7.10.4",
- "@babel/helper-plugin-utils": "^7.10.4",
- "@babel/helper-remap-async-to-generator": "^7.10.4"
+ "@babel/helper-plugin-utils": "^7.13.0"
}
},
"@babel/plugin-transform-block-scoped-functions": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.4.tgz",
- "integrity": "sha512-WzXDarQXYYfjaV1szJvN3AD7rZgZzC1JtjJZ8dMHUyiK8mxPRahynp14zzNjU3VkPqPsO38CzxiWO1c9ARZ8JA==",
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.13.tgz",
+ "integrity": "sha512-zNyFqbc3kI/fVpqwfqkg6RvBgFpC4J18aKKMmv7KdQ/1GgREapSJAykLMVNwfRGO3BtHj3YQZl8kxCXPcVMVeg==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.4"
+ "@babel/helper-plugin-utils": "^7.12.13"
}
},
"@babel/plugin-transform-block-scoping": {
- "version": "7.11.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.11.1.tgz",
- "integrity": "sha512-00dYeDE0EVEHuuM+26+0w/SCL0BH2Qy7LwHuI4Hi4MH5gkC8/AqMN5uWFJIsoXZrAphiMm1iXzBw6L2T+eA0ew==",
+ "version": "7.14.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.1.tgz",
+ "integrity": "sha512-2mQXd0zBrwfp0O1moWIhPpEeTKDvxyHcnma3JATVP1l+CctWBuot6OJG8LQ4DnBj4ZZPSmlb/fm4mu47EOAnVA==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.4"
+ "@babel/helper-plugin-utils": "^7.13.0"
}
},
"@babel/plugin-transform-classes": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.4.tgz",
- "integrity": "sha512-2oZ9qLjt161dn1ZE0Ms66xBncQH4In8Sqw1YWgBUZuGVJJS5c0OFZXL6dP2MRHrkU/eKhWg8CzFJhRQl50rQxA==",
+ "version": "7.13.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.13.0.tgz",
+ "integrity": "sha512-9BtHCPUARyVH1oXGcSJD3YpsqRLROJx5ZNP6tN5vnk17N0SVf9WCtf8Nuh1CFmgByKKAIMstitKduoCmsaDK5g==",
"requires": {
- "@babel/helper-annotate-as-pure": "^7.10.4",
- "@babel/helper-define-map": "^7.10.4",
- "@babel/helper-function-name": "^7.10.4",
- "@babel/helper-optimise-call-expression": "^7.10.4",
- "@babel/helper-plugin-utils": "^7.10.4",
- "@babel/helper-replace-supers": "^7.10.4",
- "@babel/helper-split-export-declaration": "^7.10.4",
+ "@babel/helper-annotate-as-pure": "^7.12.13",
+ "@babel/helper-function-name": "^7.12.13",
+ "@babel/helper-optimise-call-expression": "^7.12.13",
+ "@babel/helper-plugin-utils": "^7.13.0",
+ "@babel/helper-replace-supers": "^7.13.0",
+ "@babel/helper-split-export-declaration": "^7.12.13",
"globals": "^11.1.0"
}
},
"@babel/plugin-transform-computed-properties": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.4.tgz",
- "integrity": "sha512-JFwVDXcP/hM/TbyzGq3l/XWGut7p46Z3QvqFMXTfk6/09m7xZHJUN9xHfsv7vqqD4YnfI5ueYdSJtXqqBLyjBw==",
+ "version": "7.13.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.13.0.tgz",
+ "integrity": "sha512-RRqTYTeZkZAz8WbieLTvKUEUxZlUTdmL5KGMyZj7FnMfLNKV4+r5549aORG/mgojRmFlQMJDUupwAMiF2Q7OUg==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.4"
+ "@babel/helper-plugin-utils": "^7.13.0"
}
},
"@babel/plugin-transform-destructuring": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.4.tgz",
- "integrity": "sha512-+WmfvyfsyF603iPa6825mq6Qrb7uLjTOsa3XOFzlYcYDHSS4QmpOWOL0NNBY5qMbvrcf3tq0Cw+v4lxswOBpgA==",
+ "version": "7.13.17",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.13.17.tgz",
+ "integrity": "sha512-UAUqiLv+uRLO+xuBKKMEpC+t7YRNVRqBsWWq1yKXbBZBje/t3IXCiSinZhjn/DC3qzBfICeYd2EFGEbHsh5RLA==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.4"
+ "@babel/helper-plugin-utils": "^7.13.0"
}
},
"@babel/plugin-transform-exponentiation-operator": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.4.tgz",
- "integrity": "sha512-S5HgLVgkBcRdyQAHbKj+7KyuWx8C6t5oETmUuwz1pt3WTWJhsUV0WIIXuVvfXMxl/QQyHKlSCNNtaIamG8fysw==",
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.13.tgz",
+ "integrity": "sha512-fbUelkM1apvqez/yYx1/oICVnGo2KM5s63mhGylrmXUxK/IAXSIf87QIxVfZldWf4QsOafY6vV3bX8aMHSvNrA==",
"requires": {
- "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4",
- "@babel/helper-plugin-utils": "^7.10.4"
+ "@babel/helper-builder-binary-assignment-operator-visitor": "^7.12.13",
+ "@babel/helper-plugin-utils": "^7.12.13"
}
},
"@babel/plugin-transform-flow-strip-types": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.10.4.tgz",
- "integrity": "sha512-XTadyuqNst88UWBTdLjM+wEY7BFnY2sYtPyAidfC7M/QaZnSuIZpMvLxqGT7phAcnGyWh/XQFLKcGf04CnvxSQ==",
+ "version": "7.13.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.13.0.tgz",
+ "integrity": "sha512-EXAGFMJgSX8gxWD7PZtW/P6M+z74jpx3wm/+9pn+c2dOawPpBkUX7BrfyPvo6ZpXbgRIEuwgwDb/MGlKvu2pOg==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.4",
- "@babel/plugin-syntax-flow": "^7.10.4"
+ "@babel/helper-plugin-utils": "^7.13.0",
+ "@babel/plugin-syntax-flow": "^7.12.13"
}
},
"@babel/plugin-transform-for-of": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.4.tgz",
- "integrity": "sha512-ItdQfAzu9AlEqmusA/65TqJ79eRcgGmpPPFvBnGILXZH975G0LNjP1yjHvGgfuCxqrPPueXOPe+FsvxmxKiHHQ==",
+ "version": "7.13.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.13.0.tgz",
+ "integrity": "sha512-IHKT00mwUVYE0zzbkDgNRP6SRzvfGCYsOxIRz8KsiaaHCcT9BWIkO+H9QRJseHBLOGBZkHUdHiqj6r0POsdytg==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.4"
+ "@babel/helper-plugin-utils": "^7.13.0"
}
},
"@babel/plugin-transform-function-name": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.4.tgz",
- "integrity": "sha512-OcDCq2y5+E0dVD5MagT5X+yTRbcvFjDI2ZVAottGH6tzqjx/LKpgkUepu3hp/u4tZBzxxpNGwLsAvGBvQ2mJzg==",
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.13.tgz",
+ "integrity": "sha512-6K7gZycG0cmIwwF7uMK/ZqeCikCGVBdyP2J5SKNCXO5EOHcqi+z7Jwf8AmyDNcBgxET8DrEtCt/mPKPyAzXyqQ==",
"requires": {
- "@babel/helper-function-name": "^7.10.4",
- "@babel/helper-plugin-utils": "^7.10.4"
+ "@babel/helper-function-name": "^7.12.13",
+ "@babel/helper-plugin-utils": "^7.12.13"
}
},
"@babel/plugin-transform-literals": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.4.tgz",
- "integrity": "sha512-Xd/dFSTEVuUWnyZiMu76/InZxLTYilOSr1UlHV+p115Z/Le2Fi1KXkJUYz0b42DfndostYlPub3m8ZTQlMaiqQ==",
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.13.tgz",
+ "integrity": "sha512-FW+WPjSR7hiUxMcKqyNjP05tQ2kmBCdpEpZHY1ARm96tGQCCBvXKnpjILtDplUnJ/eHZ0lALLM+d2lMFSpYJrQ==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.4"
+ "@babel/helper-plugin-utils": "^7.12.13"
}
},
"@babel/plugin-transform-member-expression-literals": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.4.tgz",
- "integrity": "sha512-0bFOvPyAoTBhtcJLr9VcwZqKmSjFml1iVxvPL0ReomGU53CX53HsM4h2SzckNdkQcHox1bpAqzxBI1Y09LlBSw==",
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.13.tgz",
+ "integrity": "sha512-kxLkOsg8yir4YeEPHLuO2tXP9R/gTjpuTOjshqSpELUN3ZAg2jfDnKUvzzJxObun38sw3wm4Uu69sX/zA7iRvg==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.4"
+ "@babel/helper-plugin-utils": "^7.12.13"
}
},
"@babel/plugin-transform-modules-commonjs": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.4.tgz",
- "integrity": "sha512-Xj7Uq5o80HDLlW64rVfDBhao6OX89HKUmb+9vWYaLXBZOma4gA6tw4Ni1O5qVDoZWUV0fxMYA0aYzOawz0l+1w==",
+ "version": "7.14.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.14.0.tgz",
+ "integrity": "sha512-EX4QePlsTaRZQmw9BsoPeyh5OCtRGIhwfLquhxGp5e32w+dyL8htOcDwamlitmNFK6xBZYlygjdye9dbd9rUlQ==",
"requires": {
- "@babel/helper-module-transforms": "^7.10.4",
- "@babel/helper-plugin-utils": "^7.10.4",
- "@babel/helper-simple-access": "^7.10.4",
+ "@babel/helper-module-transforms": "^7.14.0",
+ "@babel/helper-plugin-utils": "^7.13.0",
+ "@babel/helper-simple-access": "^7.13.12",
"babel-plugin-dynamic-import-node": "^2.3.3"
}
},
"@babel/plugin-transform-object-assign": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.10.4.tgz",
- "integrity": "sha512-6zccDhYEICfMeQqIjuY5G09/yhKzG30DKHJeYBQUHIsJH7c2jXSGvgwRalufLAXAq432OSlsEfAOLlzEsQzxVw==",
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.12.13.tgz",
+ "integrity": "sha512-4QxDMc0lAOkIBSfCrnSGbAJ+4epDBF2XXwcLXuBcG1xl9u7LrktNVD4+LwhL47XuKVPQ7R25e/WdcV+h97HyZA==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.4"
+ "@babel/helper-plugin-utils": "^7.12.13"
}
},
"@babel/plugin-transform-object-super": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.4.tgz",
- "integrity": "sha512-5iTw0JkdRdJvr7sY0vHqTpnruUpTea32JHmq/atIWqsnNussbRzjEDyWep8UNztt1B5IusBYg8Irb0bLbiEBCQ==",
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.13.tgz",
+ "integrity": "sha512-JzYIcj3XtYspZDV8j9ulnoMPZZnF/Cj0LUxPOjR89BdBVx+zYJI9MdMIlUZjbXDX+6YVeS6I3e8op+qQ3BYBoQ==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.4",
- "@babel/helper-replace-supers": "^7.10.4"
+ "@babel/helper-plugin-utils": "^7.12.13",
+ "@babel/helper-replace-supers": "^7.12.13"
}
},
"@babel/plugin-transform-parameters": {
- "version": "7.10.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.5.tgz",
- "integrity": "sha512-xPHwUj5RdFV8l1wuYiu5S9fqWGM2DrYc24TMvUiRrPVm+SM3XeqU9BcokQX/kEUe+p2RBwy+yoiR1w/Blq6ubw==",
+ "version": "7.13.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.13.0.tgz",
+ "integrity": "sha512-Jt8k/h/mIwE2JFEOb3lURoY5C85ETcYPnbuAJ96zRBzh1XHtQZfs62ChZ6EP22QlC8c7Xqr9q+e1SU5qttwwjw==",
"requires": {
- "@babel/helper-get-function-arity": "^7.10.4",
- "@babel/helper-plugin-utils": "^7.10.4"
+ "@babel/helper-plugin-utils": "^7.13.0"
}
},
"@babel/plugin-transform-property-literals": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.4.tgz",
- "integrity": "sha512-ofsAcKiUxQ8TY4sScgsGeR2vJIsfrzqvFb9GvJ5UdXDzl+MyYCaBj/FGzXuv7qE0aJcjWMILny1epqelnFlz8g==",
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.13.tgz",
+ "integrity": "sha512-nqVigwVan+lR+g8Fj8Exl0UQX2kymtjcWfMOYM1vTYEKujeyv2SkMgazf2qNcK7l4SDiKyTA/nHCPqL4e2zo1A==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.4"
+ "@babel/helper-plugin-utils": "^7.12.13"
}
},
"@babel/plugin-transform-react-display-name": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.10.4.tgz",
- "integrity": "sha512-Zd4X54Mu9SBfPGnEcaGcOrVAYOtjT2on8QZkLKEq1S/tHexG39d9XXGZv19VfRrDjPJzFmPfTAqOQS1pfFOujw==",
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.12.13.tgz",
+ "integrity": "sha512-MprESJzI9O5VnJZrL7gg1MpdqmiFcUv41Jc7SahxYsNP2kDkFqClxxTZq+1Qv4AFCamm+GXMRDQINNn+qrxmiA==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.4"
+ "@babel/helper-plugin-utils": "^7.12.13"
}
},
"@babel/plugin-transform-react-jsx": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.10.4.tgz",
- "integrity": "sha512-L+MfRhWjX0eI7Js093MM6MacKU4M6dnCRa/QPDwYMxjljzSCzzlzKzj9Pk4P3OtrPcxr2N3znR419nr3Xw+65A==",
+ "version": "7.13.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.13.12.tgz",
+ "integrity": "sha512-jcEI2UqIcpCqB5U5DRxIl0tQEProI2gcu+g8VTIqxLO5Iidojb4d77q+fwGseCvd8af/lJ9masp4QWzBXFE2xA==",
"requires": {
- "@babel/helper-builder-react-jsx": "^7.10.4",
- "@babel/helper-builder-react-jsx-experimental": "^7.10.4",
- "@babel/helper-plugin-utils": "^7.10.4",
- "@babel/plugin-syntax-jsx": "^7.10.4"
+ "@babel/helper-annotate-as-pure": "^7.12.13",
+ "@babel/helper-module-imports": "^7.13.12",
+ "@babel/helper-plugin-utils": "^7.13.0",
+ "@babel/plugin-syntax-jsx": "^7.12.13",
+ "@babel/types": "^7.13.12"
}
},
"@babel/plugin-transform-react-jsx-self": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.10.4.tgz",
- "integrity": "sha512-yOvxY2pDiVJi0axdTWHSMi5T0DILN+H+SaeJeACHKjQLezEzhLx9nEF9xgpBLPtkZsks9cnb5P9iBEi21En3gg==",
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.12.13.tgz",
+ "integrity": "sha512-FXYw98TTJ125GVCCkFLZXlZ1qGcsYqNQhVBQcZjyrwf8FEUtVfKIoidnO8S0q+KBQpDYNTmiGo1gn67Vti04lQ==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.4",
- "@babel/plugin-syntax-jsx": "^7.10.4"
+ "@babel/helper-plugin-utils": "^7.12.13"
}
},
"@babel/plugin-transform-react-jsx-source": {
- "version": "7.10.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.10.5.tgz",
- "integrity": "sha512-wTeqHVkN1lfPLubRiZH3o73f4rfon42HpgxUSs86Nc+8QIcm/B9s8NNVXu/gwGcOyd7yDib9ikxoDLxJP0UiDA==",
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.12.13.tgz",
+ "integrity": "sha512-O5JJi6fyfih0WfDgIJXksSPhGP/G0fQpfxYy87sDc+1sFmsCS6wr3aAn+whbzkhbjtq4VMqLRaSzR6IsshIC0Q==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.4",
- "@babel/plugin-syntax-jsx": "^7.10.4"
+ "@babel/helper-plugin-utils": "^7.12.13"
}
},
"@babel/plugin-transform-regenerator": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.4.tgz",
- "integrity": "sha512-3thAHwtor39A7C04XucbMg17RcZ3Qppfxr22wYzZNcVIkPHfpM9J0SO8zuCV6SZa265kxBJSrfKTvDCYqBFXGw==",
+ "version": "7.13.15",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.13.15.tgz",
+ "integrity": "sha512-Bk9cOLSz8DiurcMETZ8E2YtIVJbFCPGW28DJWUakmyVWtQSm6Wsf0p4B4BfEr/eL2Nkhe/CICiUiMOCi1TPhuQ==",
"requires": {
"regenerator-transform": "^0.14.2"
}
},
"@babel/plugin-transform-runtime": {
- "version": "7.11.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.11.0.tgz",
- "integrity": "sha512-LFEsP+t3wkYBlis8w6/kmnd6Kb1dxTd+wGJ8MlxTGzQo//ehtqlVL4S9DNUa53+dtPSQobN2CXx4d81FqC58cw==",
+ "version": "7.13.15",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.13.15.tgz",
+ "integrity": "sha512-d+ezl76gx6Jal08XngJUkXM4lFXK/5Ikl9Mh4HKDxSfGJXmZ9xG64XT2oivBzfxb/eQ62VfvoMkaCZUKJMVrBA==",
"requires": {
- "@babel/helper-module-imports": "^7.10.4",
- "@babel/helper-plugin-utils": "^7.10.4",
- "resolve": "^1.8.1",
- "semver": "^5.5.1"
- },
- "dependencies": {
- "semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
- }
+ "@babel/helper-module-imports": "^7.13.12",
+ "@babel/helper-plugin-utils": "^7.13.0",
+ "babel-plugin-polyfill-corejs2": "^0.2.0",
+ "babel-plugin-polyfill-corejs3": "^0.2.0",
+ "babel-plugin-polyfill-regenerator": "^0.2.0",
+ "semver": "^6.3.0"
}
},
"@babel/plugin-transform-shorthand-properties": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.4.tgz",
- "integrity": "sha512-AC2K/t7o07KeTIxMoHneyX90v3zkm5cjHJEokrPEAGEy3UCp8sLKfnfOIGdZ194fyN4wfX/zZUWT9trJZ0qc+Q==",
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.13.tgz",
+ "integrity": "sha512-xpL49pqPnLtf0tVluuqvzWIgLEhuPpZzvs2yabUHSKRNlN7ScYU7aMlmavOeyXJZKgZKQRBlh8rHbKiJDraTSw==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.4"
+ "@babel/helper-plugin-utils": "^7.12.13"
}
},
"@babel/plugin-transform-spread": {
- "version": "7.11.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.11.0.tgz",
- "integrity": "sha512-UwQYGOqIdQJe4aWNyS7noqAnN2VbaczPLiEtln+zPowRNlD+79w3oi2TWfYe0eZgd+gjZCbsydN7lzWysDt+gw==",
+ "version": "7.13.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.13.0.tgz",
+ "integrity": "sha512-V6vkiXijjzYeFmQTr3dBxPtZYLPcUfY34DebOU27jIl2M/Y8Egm52Hw82CSjjPqd54GTlJs5x+CR7HeNr24ckg==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.4",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.11.0"
+ "@babel/helper-plugin-utils": "^7.13.0",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1"
}
},
"@babel/plugin-transform-sticky-regex": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.4.tgz",
- "integrity": "sha512-Ddy3QZfIbEV0VYcVtFDCjeE4xwVTJWTmUtorAJkn6u/92Z/nWJNV+mILyqHKrUxXYKA2EoCilgoPePymKL4DvQ==",
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.13.tgz",
+ "integrity": "sha512-Jc3JSaaWT8+fr7GRvQP02fKDsYk4K/lYwWq38r/UGfaxo89ajud321NH28KRQ7xy1Ybc0VUE5Pz8psjNNDUglg==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.4",
- "@babel/helper-regex": "^7.10.4"
+ "@babel/helper-plugin-utils": "^7.12.13"
}
},
"@babel/plugin-transform-template-literals": {
- "version": "7.10.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.5.tgz",
- "integrity": "sha512-V/lnPGIb+KT12OQikDvgSuesRX14ck5FfJXt6+tXhdkJ+Vsd0lDCVtF6jcB4rNClYFzaB2jusZ+lNISDk2mMMw==",
+ "version": "7.13.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.13.0.tgz",
+ "integrity": "sha512-d67umW6nlfmr1iehCcBv69eSUSySk1EsIS8aTDX4Xo9qajAh6mYtcl4kJrBkGXuxZPEgVr7RVfAvNW6YQkd4Mw==",
"requires": {
- "@babel/helper-annotate-as-pure": "^7.10.4",
- "@babel/helper-plugin-utils": "^7.10.4"
+ "@babel/helper-plugin-utils": "^7.13.0"
}
},
"@babel/plugin-transform-typescript": {
- "version": "7.11.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.11.0.tgz",
- "integrity": "sha512-edJsNzTtvb3MaXQwj8403B7mZoGu9ElDJQZOKjGUnvilquxBA3IQoEIOvkX/1O8xfAsnHS/oQhe2w/IXrr+w0w==",
+ "version": "7.13.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.13.0.tgz",
+ "integrity": "sha512-elQEwluzaU8R8dbVuW2Q2Y8Nznf7hnjM7+DSCd14Lo5fF63C9qNLbwZYbmZrtV9/ySpSUpkRpQXvJb6xyu4hCQ==",
"requires": {
- "@babel/helper-create-class-features-plugin": "^7.10.5",
- "@babel/helper-plugin-utils": "^7.10.4",
- "@babel/plugin-syntax-typescript": "^7.10.4"
+ "@babel/helper-create-class-features-plugin": "^7.13.0",
+ "@babel/helper-plugin-utils": "^7.13.0",
+ "@babel/plugin-syntax-typescript": "^7.12.13"
}
},
"@babel/plugin-transform-unicode-regex": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.4.tgz",
- "integrity": "sha512-wNfsc4s8N2qnIwpO/WP2ZiSyjfpTamT2C9V9FDH/Ljub9zw6P3SjkXcFmc0RQUt96k2fmIvtla2MMjgTwIAC+A==",
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.13.tgz",
+ "integrity": "sha512-mDRzSNY7/zopwisPZ5kM9XKCfhchqIYwAKRERtEnhYscZB79VRekuRSoYbN0+KVe3y8+q1h6A4svXtP7N+UoCA==",
"requires": {
- "@babel/helper-create-regexp-features-plugin": "^7.10.4",
- "@babel/helper-plugin-utils": "^7.10.4"
+ "@babel/helper-create-regexp-features-plugin": "^7.12.13",
+ "@babel/helper-plugin-utils": "^7.12.13"
}
},
"@babel/register": {
- "version": "7.10.5",
- "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.10.5.tgz",
- "integrity": "sha512-eYHdLv43nyvmPn9bfNfrcC4+iYNwdQ8Pxk1MFJuU/U5LpSYl/PH4dFMazCYZDFVi8ueG3shvO+AQfLrxpYulQw==",
+ "version": "7.13.16",
+ "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.13.16.tgz",
+ "integrity": "sha512-dh2t11ysujTwByQjXNgJ48QZ2zcXKQVdV8s0TbeMI0flmtGWCdTwK9tJiACHXPLmncm5+ktNn/diojA45JE4jg==",
"requires": {
+ "clone-deep": "^4.0.1",
"find-cache-dir": "^2.0.0",
- "lodash": "^4.17.19",
"make-dir": "^2.1.0",
"pirates": "^4.0.0",
"source-map-support": "^0.5.16"
}
},
"@babel/runtime": {
- "version": "7.11.2",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.11.2.tgz",
- "integrity": "sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw==",
+ "version": "7.11.0",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.11.0.tgz",
+ "integrity": "sha512-qArkXsjJq7H+T86WrIFV0Fnu/tNOkZ4cgXmjkzAu3b/58D5mFIO8JH/y77t7C9q0OdDRdh9s7Ue5GasYssxtXw==",
"requires": {
"regenerator-runtime": "^0.13.4"
}
},
"@babel/runtime-corejs3": {
- "version": "7.11.2",
- "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.11.2.tgz",
- "integrity": "sha512-qh5IR+8VgFz83VBa6OkaET6uN/mJOhHONuy3m1sgF0CV6mXdPSEBdA7e1eUbVvyNtANjMbg22JUv71BaDXLY6A==",
+ "version": "7.14.0",
+ "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.14.0.tgz",
+ "integrity": "sha512-0R0HTZWHLk6G8jIk0FtoX+AatCtKnswS98VhXwGImFc759PJRp4Tru0PQYZofyijTFUr+gT8Mu7sgXVJLQ0ceg==",
"dev": true,
"requires": {
"core-js-pure": "^3.0.0",
@@ -841,48 +829,51 @@
}
},
"@babel/template": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz",
- "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==",
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz",
+ "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==",
"requires": {
- "@babel/code-frame": "^7.10.4",
- "@babel/parser": "^7.10.4",
- "@babel/types": "^7.10.4"
+ "@babel/code-frame": "^7.12.13",
+ "@babel/parser": "^7.12.13",
+ "@babel/types": "^7.12.13"
}
},
"@babel/traverse": {
- "version": "7.11.0",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.0.tgz",
- "integrity": "sha512-ZB2V+LskoWKNpMq6E5UUCrjtDUh5IOTAyIl0dTjIEoXum/iKWkoIEKIRDnUucO6f+2FzNkE0oD4RLKoPIufDtg==",
+ "version": "7.14.0",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.0.tgz",
+ "integrity": "sha512-dZ/a371EE5XNhTHomvtuLTUyx6UEoJmYX+DT5zBCQN3McHemsuIaKKYqsc/fs26BEkHs/lBZy0J571LP5z9kQA==",
"requires": {
- "@babel/code-frame": "^7.10.4",
- "@babel/generator": "^7.11.0",
- "@babel/helper-function-name": "^7.10.4",
- "@babel/helper-split-export-declaration": "^7.11.0",
- "@babel/parser": "^7.11.0",
- "@babel/types": "^7.11.0",
+ "@babel/code-frame": "^7.12.13",
+ "@babel/generator": "^7.14.0",
+ "@babel/helper-function-name": "^7.12.13",
+ "@babel/helper-split-export-declaration": "^7.12.13",
+ "@babel/parser": "^7.14.0",
+ "@babel/types": "^7.14.0",
"debug": "^4.1.0",
- "globals": "^11.1.0",
- "lodash": "^4.17.19"
+ "globals": "^11.1.0"
},
"dependencies": {
"debug": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
- "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
+ "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
"requires": {
- "ms": "^2.1.1"
+ "ms": "2.1.2"
}
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
}
}
},
"@babel/types": {
- "version": "7.11.0",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.0.tgz",
- "integrity": "sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA==",
+ "version": "7.14.1",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.1.tgz",
+ "integrity": "sha512-S13Qe85fzLs3gYRUnrpyeIrBJIMYv33qSTg1qoBwiG6nPKwUWAD9odSzWhEedpwOIzSEI6gbdQIWEMiCI42iBA==",
"requires": {
- "@babel/helper-validator-identifier": "^7.10.4",
- "lodash": "^4.17.19",
+ "@babel/helper-validator-identifier": "^7.14.0",
"to-fast-properties": "^2.0.0"
}
},
@@ -893,9 +884,9 @@
"dev": true
},
"@callstack/react-theme-provider": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/@callstack/react-theme-provider/-/react-theme-provider-3.0.5.tgz",
- "integrity": "sha512-Iec+ybWN0FvNj87sD3oWo/49edGUP0UOSdMnzCJEFJIDYr992ECIuOV89burAAh2/ibPCxgLiK6dmgv2mO/8Tg==",
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/@callstack/react-theme-provider/-/react-theme-provider-3.0.6.tgz",
+ "integrity": "sha512-wwKMXfmklfogpalNZT0W+jh76BIquiYUiQHOaPmt/PCyCEP/E6rP+e7Uie6mBZrfkea9WJYJ+mus6r+45JAEhg==",
"requires": {
"deepmerge": "^3.2.0",
"hoist-non-react-statics": "^3.3.0"
@@ -974,9 +965,9 @@
}
},
"@istanbuljs/schema": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz",
- "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==",
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
+ "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==",
"dev": true
},
"@jest/console": {
@@ -1017,6 +1008,11 @@
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
},
+ "slash": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
+ "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A=="
+ },
"supports-color": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
@@ -1089,18 +1085,24 @@
}
},
"ansi-escapes": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz",
- "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==",
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
+ "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
"dev": true,
"requires": {
- "type-fest": "^0.11.0"
+ "type-fest": "^0.21.3"
}
},
+ "ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+ "dev": true
+ },
"anymatch": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz",
- "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==",
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
+ "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
"dev": true,
"requires": {
"normalize-path": "^3.0.0",
@@ -1126,9 +1128,9 @@
}
},
"fsevents": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz",
- "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==",
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
"dev": true,
"optional": true
},
@@ -1243,13 +1245,13 @@
"dev": true
},
"micromatch": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz",
- "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==",
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz",
+ "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==",
"dev": true,
"requires": {
"braces": "^3.0.1",
- "picomatch": "^2.0.5"
+ "picomatch": "^2.2.3"
}
},
"normalize-path": {
@@ -1279,12 +1281,6 @@
"glob": "^7.1.3"
}
},
- "slash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
- "dev": true
- },
"strip-ansi": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
@@ -1304,9 +1300,9 @@
}
},
"type-fest": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz",
- "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==",
+ "version": "0.21.3",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
+ "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
"dev": true
},
"which": {
@@ -1416,21 +1412,15 @@
}
},
"micromatch": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz",
- "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==",
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz",
+ "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==",
"dev": true,
"requires": {
"braces": "^3.0.1",
- "picomatch": "^2.0.5"
+ "picomatch": "^2.2.3"
}
},
- "slash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
- "dev": true
- },
"to-regex-range": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
@@ -1463,9 +1453,9 @@
}
},
"@types/yargs": {
- "version": "13.0.10",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.10.tgz",
- "integrity": "sha512-MU10TSgzNABgdzKvQVW1nuuT+sgBMWeXNc3XOs5YXV5SDAK+PPja2eUuBNB9iqElu03xyEDqlnGw0jgl4nbqGQ==",
+ "version": "13.0.11",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.11.tgz",
+ "integrity": "sha512-NRqD6T4gktUrDi1o1wLH3EKC1o2caCr7/wR87ODcbVITQF106OM3sFN92ysZ++wqelOd1CTzatnOBRDYYG6wGQ==",
"requires": {
"@types/yargs-parser": "*"
}
@@ -1542,9 +1532,9 @@
}
},
"anymatch": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz",
- "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==",
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
+ "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
"dev": true,
"requires": {
"normalize-path": "^3.0.0",
@@ -1570,9 +1560,9 @@
}
},
"fsevents": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz",
- "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==",
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
"dev": true,
"optional": true
},
@@ -1667,13 +1657,13 @@
"dev": true
},
"micromatch": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz",
- "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==",
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz",
+ "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==",
"dev": true,
"requires": {
"braces": "^3.0.1",
- "picomatch": "^2.0.5"
+ "picomatch": "^2.2.3"
}
},
"normalize-path": {
@@ -1682,12 +1672,6 @@
"integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
"dev": true
},
- "slash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
- "dev": true
- },
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
@@ -1757,9 +1741,9 @@
}
},
"@types/yargs": {
- "version": "13.0.10",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.10.tgz",
- "integrity": "sha512-MU10TSgzNABgdzKvQVW1nuuT+sgBMWeXNc3XOs5YXV5SDAK+PPja2eUuBNB9iqElu03xyEDqlnGw0jgl4nbqGQ==",
+ "version": "13.0.11",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.11.tgz",
+ "integrity": "sha512-NRqD6T4gktUrDi1o1wLH3EKC1o2caCr7/wR87ODcbVITQF106OM3sFN92ysZ++wqelOd1CTzatnOBRDYYG6wGQ==",
"requires": {
"@types/yargs-parser": "*"
}
@@ -1805,9 +1789,9 @@
}
},
"anymatch": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz",
- "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==",
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
+ "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
"dev": true,
"requires": {
"normalize-path": "^3.0.0",
@@ -1833,9 +1817,9 @@
}
},
"fsevents": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz",
- "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==",
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
"dev": true,
"optional": true
},
@@ -1930,13 +1914,13 @@
"dev": true
},
"micromatch": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz",
- "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==",
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz",
+ "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==",
"dev": true,
"requires": {
"braces": "^3.0.1",
- "picomatch": "^2.0.5"
+ "picomatch": "^2.2.3"
}
},
"normalize-path": {
@@ -1945,12 +1929,6 @@
"integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
"dev": true
},
- "slash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
- "dev": true
- },
"to-regex-range": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
@@ -1996,9 +1974,9 @@
},
"dependencies": {
"anymatch": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz",
- "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==",
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
+ "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
"dev": true,
"requires": {
"normalize-path": "^3.0.0",
@@ -2024,9 +2002,9 @@
}
},
"fsevents": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz",
- "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==",
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
"dev": true,
"optional": true
},
@@ -2105,13 +2083,13 @@
"dev": true
},
"micromatch": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz",
- "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==",
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz",
+ "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==",
"dev": true,
"requires": {
"braces": "^3.0.1",
- "picomatch": "^2.0.5"
+ "picomatch": "^2.2.3"
}
},
"normalize-path": {
@@ -2120,12 +2098,6 @@
"integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
"dev": true
},
- "slash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
- "dev": true
- },
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
@@ -2149,18 +2121,6 @@
"requires": {
"isexe": "^2.0.0"
}
- },
- "write-file-atomic": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
- "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
- "dev": true,
- "requires": {
- "imurmurhash": "^0.1.4",
- "is-typedarray": "^1.0.0",
- "signal-exit": "^3.0.2",
- "typedarray-to-buffer": "^3.1.5"
- }
}
}
},
@@ -2189,19 +2149,31 @@
}
},
"@react-native-community/cli-debugger-ui": {
- "version": "4.9.0",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-4.9.0.tgz",
- "integrity": "sha512-fBFGamHm4VUrDqkBGnsrwQL8OC6Om7K6EBQb4xj0nWekpXt1HSa3ScylYHTTWwYcpRf9htGMRGiv4dQDY/odAw==",
+ "version": "4.13.1",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-4.13.1.tgz",
+ "integrity": "sha512-UFnkg5RTq3s2X15fSkrWY9+5BKOFjihNSnJjTV2H5PtTUFbd55qnxxPw8CxSfK0bXb1IrSvCESprk2LEpqr5cg==",
"requires": {
"serve-static": "^1.13.1"
}
},
- "@react-native-community/cli-platform-android": {
- "version": "4.11.0",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-4.11.0.tgz",
- "integrity": "sha512-BzqocGjOCjpDW0bM/LUrHMXw4nBvOhDXnHWxaoRp3eeUVsD2oSegoRn52kZo9yhPb9cCPkZJ3b+Web71Ue4j9w==",
+ "@react-native-community/cli-hermes": {
+ "version": "4.13.0",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-hermes/-/cli-hermes-4.13.0.tgz",
+ "integrity": "sha512-oG+w0Uby6rSGsUkJGLvMQctZ5eVRLLfhf84lLyz942OEDxFRa9U19YJxOe9FmgCKtotbYiM3P/XhK+SVCuerPQ==",
"requires": {
- "@react-native-community/cli-tools": "^4.11.0",
+ "@react-native-community/cli-platform-android": "^4.13.0",
+ "@react-native-community/cli-tools": "^4.13.0",
+ "chalk": "^3.0.0",
+ "hermes-profile-transformer": "^0.0.6",
+ "ip": "^1.1.5"
+ }
+ },
+ "@react-native-community/cli-platform-android": {
+ "version": "4.13.0",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-4.13.0.tgz",
+ "integrity": "sha512-3i8sX8GklEytUZwPnojuoFbCjIRzMugCdzDIdZ9UNmi/OhD4/8mLGO0dgXfT4sMWjZwu3qjy45sFfk2zOAgHbA==",
+ "requires": {
+ "@react-native-community/cli-tools": "^4.13.0",
"chalk": "^3.0.0",
"execa": "^1.0.0",
"fs-extra": "^8.1.0",
@@ -2211,21 +2183,14 @@
"logkitty": "^0.7.1",
"slash": "^3.0.0",
"xmldoc": "^1.1.2"
- },
- "dependencies": {
- "slash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="
- }
}
},
"@react-native-community/cli-platform-ios": {
- "version": "4.11.0",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-4.11.0.tgz",
- "integrity": "sha512-/qkjnhhJ7BGBTNkHSS8a+z8UgWUQbU6YZOTuYxjNywGUzMiTsb/wlm2cWCY1VEAvWtY97c4plAZ5OferPJHaVA==",
+ "version": "4.13.0",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-4.13.0.tgz",
+ "integrity": "sha512-6THlTu8zp62efkzimfGr3VIuQJ2514o+vScZERJCV1xgEi8XtV7mb/ZKt9o6Y9WGxKKkc0E0b/aVAtgy+L27CA==",
"requires": {
- "@react-native-community/cli-tools": "^4.11.0",
+ "@react-native-community/cli-tools": "^4.13.0",
"chalk": "^3.0.0",
"glob": "^7.1.3",
"js-yaml": "^3.13.1",
@@ -2235,20 +2200,26 @@
}
},
"@react-native-community/cli-server-api": {
- "version": "4.11.0",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-4.11.0.tgz",
- "integrity": "sha512-vrRaGq7ezsxyyUsFhAboEtA1CHLDa2UpJygOWHip30LaAluM+vopAJbau2NtHVX54vgQzXo438Tx8TXiRacPhA==",
+ "version": "4.13.1",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-4.13.1.tgz",
+ "integrity": "sha512-vQzsFKD9CjHthA2ehTQX8c7uIzlI9A7ejaIow1I9RlEnLraPH2QqVDmzIdbdh5Od47UPbRzamCgAP8Bnqv3qwQ==",
"requires": {
- "@react-native-community/cli-debugger-ui": "^4.9.0",
- "@react-native-community/cli-tools": "^4.11.0",
+ "@react-native-community/cli-debugger-ui": "^4.13.1",
+ "@react-native-community/cli-tools": "^4.13.0",
"compression": "^1.7.1",
"connect": "^3.6.5",
"errorhandler": "^1.5.0",
+ "nocache": "^2.1.0",
"pretty-format": "^25.1.0",
"serve-static": "^1.13.1",
"ws": "^1.1.0"
},
"dependencies": {
+ "ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg=="
+ },
"pretty-format": {
"version": "25.5.0",
"resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz",
@@ -2263,9 +2234,9 @@
}
},
"@react-native-community/cli-tools": {
- "version": "4.11.0",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-4.11.0.tgz",
- "integrity": "sha512-o2dh9q/778lIYBJxgIvTXkcxi9bSozjt8lv3tpyVmLZNA/PAPmQ7CafT37jWWwdmaSgP7nWyp4DtuE/gRsrXkA==",
+ "version": "4.13.0",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-4.13.0.tgz",
+ "integrity": "sha512-s4f489h5+EJksn4CfheLgv5PGOM0CDmK1UEBLw2t/ncWs3cW2VI7vXzndcd/WJHTv3GntJhXDcJMuL+Z2IAOgg==",
"requires": {
"chalk": "^3.0.0",
"lodash": "^4.17.15",
@@ -2276,9 +2247,9 @@
},
"dependencies": {
"mime": {
- "version": "2.4.6",
- "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz",
- "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA=="
+ "version": "2.5.2",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz",
+ "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg=="
}
}
},
@@ -2306,52 +2277,6 @@
"eslint-plugin-react-hooks": "^3.0.0",
"eslint-plugin-react-native": "3.8.1",
"prettier": "^2.0.2"
- },
- "dependencies": {
- "doctrine": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
- "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
- "dev": true,
- "requires": {
- "esutils": "^2.0.2"
- }
- },
- "eslint-plugin-flowtype": {
- "version": "2.50.3",
- "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-2.50.3.tgz",
- "integrity": "sha512-X+AoKVOr7Re0ko/yEXyM5SSZ0tazc6ffdIOocp2fFUlWoDt7DV0Bz99mngOkAFLOAWjqRA5jPwqUCbrx13XoxQ==",
- "dev": true,
- "requires": {
- "lodash": "^4.17.10"
- }
- },
- "eslint-plugin-react": {
- "version": "7.19.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.19.0.tgz",
- "integrity": "sha512-SPT8j72CGuAP+JFbT0sJHOB80TX/pu44gQ4vXH/cq+hQTiY2PuZ6IHkqXJV6x1b28GDdo1lbInjKUrrdUf0LOQ==",
- "dev": true,
- "requires": {
- "array-includes": "^3.1.1",
- "doctrine": "^2.1.0",
- "has": "^1.0.3",
- "jsx-ast-utils": "^2.2.3",
- "object.entries": "^1.1.1",
- "object.fromentries": "^2.0.2",
- "object.values": "^1.1.1",
- "prop-types": "^15.7.2",
- "resolve": "^1.15.1",
- "semver": "^6.3.0",
- "string.prototype.matchall": "^4.0.2",
- "xregexp": "^4.3.0"
- }
- },
- "eslint-plugin-react-hooks": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-3.0.0.tgz",
- "integrity": "sha512-EjxTHxjLKIBWFgDJdhKKzLh5q+vjTFrqNZX36uIxWS4OfyXe5DawqPj3U5qeJ1ngLwatjzQnmR0Lz0J0YH3kxw==",
- "dev": true
- }
}
},
"@react-native-community/eslint-plugin": {
@@ -2388,16 +2313,15 @@
}
},
"@react-navigation/core": {
- "version": "5.12.3",
- "resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-5.12.3.tgz",
- "integrity": "sha512-aEOTAw4FRRNsNu6F9ibLk3SVSs4Res8BI832NEZN6qUto5ZgtuYnQHWeWV2cZ43Nc9KvUyQC/vXvO2RScwgFwA==",
+ "version": "5.15.3",
+ "resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-5.15.3.tgz",
+ "integrity": "sha512-3ZdyDInh8qg1kygCNkmh9lFgpDf29lTvPsaMe2mm/qvmxLKSgttWBz07P2fc181aV9jTdgQpzYfWZ5KWT036zw==",
"requires": {
- "@react-navigation/routers": "^5.4.11",
+ "@react-navigation/routers": "^5.7.2",
"escape-string-regexp": "^4.0.0",
- "nanoid": "^3.1.12",
- "query-string": "^6.13.1",
- "react-is": "^16.13.0",
- "use-subscription": "^1.4.0"
+ "nanoid": "^3.1.15",
+ "query-string": "^6.13.6",
+ "react-is": "^16.13.0"
}
},
"@react-navigation/native": {
@@ -2410,11 +2334,11 @@
}
},
"@react-navigation/routers": {
- "version": "5.4.11",
- "resolved": "https://registry.npmjs.org/@react-navigation/routers/-/routers-5.4.11.tgz",
- "integrity": "sha512-J/CsHdIjYBRe81UUiLOoz9NSrQ91uP23Oe21QPCALInRHx+rfwo2oPl6Fn8xAa7n8Dtt2oQUGyF+g5d05cB74w==",
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/@react-navigation/routers/-/routers-5.7.2.tgz",
+ "integrity": "sha512-BxNSMLHpU+oS37Xok0ql6rc9U7IC8aUD4+U5ZPbjDJ0pwzZxGGh0YOEBzfV4k/Ig3cbPdvVWbc1C9HHbCVr2oQ==",
"requires": {
- "nanoid": "^3.1.12"
+ "nanoid": "^3.1.15"
}
},
"@react-navigation/stack": {
@@ -2427,18 +2351,18 @@
}
},
"@sinonjs/commons": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.1.tgz",
- "integrity": "sha512-892K+kWUUi3cl+LlqEWIDrhvLgdL79tECi8JZUyq6IviKy/DNhuzCRlbHUjxK89f4ypPMMaFnFuR9Ie6DoIMsw==",
+ "version": "1.8.3",
+ "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz",
+ "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==",
"dev": true,
"requires": {
"type-detect": "4.0.8"
}
},
"@types/babel__core": {
- "version": "7.1.9",
- "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.9.tgz",
- "integrity": "sha512-sY2RsIJ5rpER1u3/aQ8OFSI7qGIy8o1NEEbgb2UaJcvOtXOMpd39ko723NBpjQFg9SIX7TXtjejZVGeIMLhoOw==",
+ "version": "7.1.14",
+ "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.14.tgz",
+ "integrity": "sha512-zGZJzzBUVDo/eV6KgbE0f0ZI7dInEYvo12Rb70uNQDshC3SkRMb67ja0GgRHZgAX3Za6rhaWlvbDO8rrGyAb1g==",
"dev": true,
"requires": {
"@babel/parser": "^7.1.0",
@@ -2449,18 +2373,18 @@
}
},
"@types/babel__generator": {
- "version": "7.6.1",
- "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.1.tgz",
- "integrity": "sha512-bBKm+2VPJcMRVwNhxKu8W+5/zT7pwNEqeokFOmbvVSqGzFneNxYcEBro9Ac7/N9tlsaPYnZLK8J1LWKkMsLAew==",
+ "version": "7.6.2",
+ "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.2.tgz",
+ "integrity": "sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ==",
"dev": true,
"requires": {
"@babel/types": "^7.0.0"
}
},
"@types/babel__template": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.0.2.tgz",
- "integrity": "sha512-/K6zCpeW7Imzgab2bLkLEbz0+1JlFSrUMdw7KoIIu+IUdu51GWaBZpd3y1VXGVXzynvGa4DaIaxNZHiON3GXUg==",
+ "version": "7.4.0",
+ "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.0.tgz",
+ "integrity": "sha512-NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A==",
"dev": true,
"requires": {
"@babel/parser": "^7.1.0",
@@ -2468,19 +2392,14 @@
}
},
"@types/babel__traverse": {
- "version": "7.0.13",
- "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.13.tgz",
- "integrity": "sha512-i+zS7t6/s9cdQvbqKDARrcbrPvtJGlbYsMkazo03nTAK3RX9FNrLllXys22uiTGJapPOTZTQ35nHh4ISph4SLQ==",
+ "version": "7.11.1",
+ "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.11.1.tgz",
+ "integrity": "sha512-Vs0hm0vPahPMYi9tDjtP66llufgO3ST16WXaSTtDGEl9cewAl3AibmxWw6TINOqHPT9z0uABKAYjT9jNSg4npw==",
"dev": true,
"requires": {
"@babel/types": "^7.3.0"
}
},
- "@types/color-name": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz",
- "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ=="
- },
"@types/eslint-visitor-keys": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz",
@@ -2488,18 +2407,18 @@
"dev": true
},
"@types/graceful-fs": {
- "version": "4.1.3",
- "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.3.tgz",
- "integrity": "sha512-AiHRaEB50LQg0pZmm659vNBb9f4SJ0qrAnteuzhSeAUcJKxoYgEnprg/83kppCnc2zvtCKbdZry1a5pVY3lOTQ==",
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz",
+ "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==",
"dev": true,
"requires": {
"@types/node": "*"
}
},
"@types/hammerjs": {
- "version": "2.0.36",
- "resolved": "https://registry.npmjs.org/@types/hammerjs/-/hammerjs-2.0.36.tgz",
- "integrity": "sha512-7TUK/k2/QGpEAv/BCwSHlYu3NXZhQ9ZwBYpzr9tjlPIL2C5BeGhH3DmVavRx3ZNyELX5TLC91JTz/cen6AAtIQ=="
+ "version": "2.0.39",
+ "resolved": "https://registry.npmjs.org/@types/hammerjs/-/hammerjs-2.0.39.tgz",
+ "integrity": "sha512-lYR2Y/tV2ujpk/WyUc7S0VLI0a9hrtVIN9EwnrNo5oSEJI2cK2/XrgwOQmXLL3eTulOESvh9qP6si9+DWM9cOA=="
},
"@types/i18n-js": {
"version": "3.0.3",
@@ -2539,6 +2458,12 @@
"pretty-format": "^25.2.1"
},
"dependencies": {
+ "ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+ "dev": true
+ },
"pretty-format": {
"version": "25.5.0",
"resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz",
@@ -2554,21 +2479,15 @@
}
},
"@types/json-schema": {
- "version": "7.0.6",
- "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz",
- "integrity": "sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==",
- "dev": true
- },
- "@types/json5": {
- "version": "0.0.29",
- "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
- "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=",
+ "version": "7.0.7",
+ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz",
+ "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==",
"dev": true
},
"@types/node": {
- "version": "14.0.27",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.27.tgz",
- "integrity": "sha512-kVrqXhbclHNHGu9ztnAwSncIgJv/FaxmzXJvGXNdcCpV1b8u1/Mi6z6m0vwy0LzKeXFTPLH0NzwmoJ3fNCIq0g==",
+ "version": "15.0.2",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-15.0.2.tgz",
+ "integrity": "sha512-p68+a+KoxpoB47015IeYZYRrdqMUcpbK8re/zpFB8Ld46LHC1lPEbp3EXgkEhAYEcPvjJF6ZO+869SQ0aH1dcA==",
"dev": true
},
"@types/normalize-package-data": {
@@ -2590,19 +2509,20 @@
"dev": true
},
"@types/react": {
- "version": "16.9.49",
- "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.49.tgz",
- "integrity": "sha512-DtLFjSj0OYAdVLBbyjhuV9CdGVHCkHn2R+xr3XkBvK2rS1Y1tkc14XSGjYgm5Fjjr90AxH9tiSzc1pCFMGO06g==",
+ "version": "17.0.5",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.5.tgz",
+ "integrity": "sha512-bj4biDB9ZJmGAYTWSKJly6bMr4BLUiBrx9ujiJEoP9XIDY9CTaPGxE5QWN/1WjpPLzYF7/jRNnV2nNxNe970sw==",
"dev": true,
"requires": {
"@types/prop-types": "*",
+ "@types/scheduler": "*",
"csstype": "^3.0.2"
}
},
"@types/react-native": {
- "version": "0.63.20",
- "resolved": "https://registry.npmjs.org/@types/react-native/-/react-native-0.63.20.tgz",
- "integrity": "sha512-APnxRTDxbWw/IYjvwvXkhYJiz1gahyVA579pJqAVsEfZ+ZUwUHZpWKnexobyH5NmRJHuA/8LrThyps/BW3SYXA==",
+ "version": "0.63.2",
+ "resolved": "https://registry.npmjs.org/@types/react-native/-/react-native-0.63.2.tgz",
+ "integrity": "sha512-oxbp084lUsZvwfdWmWxKjJAuqEraQDRf+cE/JgwmrHQMguSrmgIHZ3xkeoQ5FYnW5NHIPpHudB3BbjL1Zn3vnA==",
"dev": true,
"requires": {
"@types/react": "*"
@@ -2630,14 +2550,20 @@
}
},
"@types/react-test-renderer": {
- "version": "16.9.3",
- "resolved": "https://registry.npmjs.org/@types/react-test-renderer/-/react-test-renderer-16.9.3.tgz",
- "integrity": "sha512-wJ7IlN5NI82XMLOyHSa+cNN4Z0I+8/YaLl04uDgcZ+W+ExWCmCiVTLT/7fRNqzy4OhStZcUwIqLNF7q+AdW43Q==",
+ "version": "16.9.2",
+ "resolved": "https://registry.npmjs.org/@types/react-test-renderer/-/react-test-renderer-16.9.2.tgz",
+ "integrity": "sha512-4eJr1JFLIAlWhzDkBCkhrOIWOvOxcCAfQh+jiKg7l/nNZcCIL2MHl2dZhogIFKyHzedVWHaVP1Yydq/Ruu4agw==",
"dev": true,
"requires": {
"@types/react": "*"
}
},
+ "@types/scheduler": {
+ "version": "0.16.1",
+ "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.1.tgz",
+ "integrity": "sha512-EaCxbanVeyxDRTQBkdLb3Bvl/HK7PBK6UJjsSixB0iHKoWxE5uu2Q/DgtpOhPIojN0Zl1whvOd7PoHs2P0s5eA==",
+ "dev": true
+ },
"@types/stack-utils": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz",
@@ -2650,58 +2576,58 @@
"dev": true
},
"@types/yargs": {
- "version": "15.0.5",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.5.tgz",
- "integrity": "sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w==",
+ "version": "15.0.13",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.13.tgz",
+ "integrity": "sha512-kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ==",
"requires": {
"@types/yargs-parser": "*"
}
},
"@types/yargs-parser": {
- "version": "15.0.0",
- "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz",
- "integrity": "sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw=="
+ "version": "20.2.0",
+ "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.0.tgz",
+ "integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA=="
},
"@typescript-eslint/eslint-plugin": {
- "version": "2.34.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.34.0.tgz",
- "integrity": "sha512-4zY3Z88rEE99+CNvTbXSyovv2z9PNOVffTWD2W8QF5s2prBQtwN2zadqERcrHpcR7O/+KMI3fcTAmUUhK/iQcQ==",
+ "version": "2.27.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.27.0.tgz",
+ "integrity": "sha512-/my+vVHRN7zYgcp0n4z5A6HAK7bvKGBiswaM5zIlOQczsxj/aiD7RcgD+dvVFuwFaGh5+kM7XA6Q6PN0bvb1tw==",
"dev": true,
"requires": {
- "@typescript-eslint/experimental-utils": "2.34.0",
+ "@typescript-eslint/experimental-utils": "2.27.0",
"functional-red-black-tree": "^1.0.1",
"regexpp": "^3.0.0",
"tsutils": "^3.17.1"
}
},
"@typescript-eslint/experimental-utils": {
- "version": "2.34.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.34.0.tgz",
- "integrity": "sha512-eS6FTkq+wuMJ+sgtuNTtcqavWXqsflWcfBnlYhg/nS4aZ1leewkXGbvBhaapn1q6qf4M71bsR1tez5JTRMuqwA==",
+ "version": "2.27.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.27.0.tgz",
+ "integrity": "sha512-vOsYzjwJlY6E0NJRXPTeCGqjv5OHgRU1kzxHKWJVPjDYGbPgLudBXjIlc+OD1hDBZ4l1DLbOc5VjofKahsu9Jw==",
"dev": true,
"requires": {
"@types/json-schema": "^7.0.3",
- "@typescript-eslint/typescript-estree": "2.34.0",
+ "@typescript-eslint/typescript-estree": "2.27.0",
"eslint-scope": "^5.0.0",
"eslint-utils": "^2.0.0"
}
},
"@typescript-eslint/parser": {
- "version": "2.34.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-2.34.0.tgz",
- "integrity": "sha512-03ilO0ucSD0EPTw2X4PntSIRFtDPWjrVq7C3/Z3VQHRC7+13YB55rcJI3Jt+YgeHbjUdJPcPa7b23rXCBokuyA==",
+ "version": "2.27.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-2.27.0.tgz",
+ "integrity": "sha512-HFUXZY+EdwrJXZo31DW4IS1ujQW3krzlRjBrFRrJcMDh0zCu107/nRfhk/uBasO8m0NVDbBF5WZKcIUMRO7vPg==",
"dev": true,
"requires": {
"@types/eslint-visitor-keys": "^1.0.0",
- "@typescript-eslint/experimental-utils": "2.34.0",
- "@typescript-eslint/typescript-estree": "2.34.0",
+ "@typescript-eslint/experimental-utils": "2.27.0",
+ "@typescript-eslint/typescript-estree": "2.27.0",
"eslint-visitor-keys": "^1.1.0"
}
},
"@typescript-eslint/typescript-estree": {
- "version": "2.34.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.34.0.tgz",
- "integrity": "sha512-OMAr+nJWKdlVM9LOqCqh3pQQPwxHAN7Du8DR6dmwCrAmxtiXQnhHJ6tBNtf+cggqfo51SG/FCwnKhXCIM7hnVg==",
+ "version": "2.27.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.27.0.tgz",
+ "integrity": "sha512-t2miCCJIb/FU8yArjAvxllxbTiyNqaXJag7UOpB5DVoM3+xnjeOngtqlJkLRnMtzaRcJhe3CIR9RmL40omubhg==",
"dev": true,
"requires": {
"debug": "^4.1.1",
@@ -2709,14 +2635,14 @@
"glob": "^7.1.6",
"is-glob": "^4.0.1",
"lodash": "^4.17.15",
- "semver": "^7.3.2",
+ "semver": "^6.3.0",
"tsutils": "^3.17.1"
},
"dependencies": {
"debug": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz",
- "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==",
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
+ "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
"dev": true,
"requires": {
"ms": "2.1.2"
@@ -2727,19 +2653,19 @@
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
"dev": true
- },
- "semver": {
- "version": "7.3.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz",
- "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==",
- "dev": true
}
}
},
"abab": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.4.tgz",
- "integrity": "sha512-Eu9ELJWCz/c1e9gTiCY+FceWxcqzjYEbqMgtndnuSqZSUCOL73TWNK2mHfIj4Cw2E/ongOp+JISVNCmovt2KYQ==",
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz",
+ "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==",
+ "dev": true
+ },
+ "abbrev": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
+ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
"dev": true
},
"abort-controller": {
@@ -2765,9 +2691,9 @@
}
},
"acorn": {
- "version": "7.4.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.0.tgz",
- "integrity": "sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w==",
+ "version": "7.4.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
+ "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
"dev": true
},
"acorn-globals": {
@@ -2781,17 +2707,17 @@
},
"dependencies": {
"acorn": {
- "version": "6.4.1",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz",
- "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==",
+ "version": "6.4.2",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz",
+ "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==",
"dev": true
}
}
},
"acorn-jsx": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz",
- "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==",
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz",
+ "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==",
"dev": true
},
"acorn-walk": {
@@ -2801,9 +2727,9 @@
"dev": true
},
"ajv": {
- "version": "6.12.3",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz",
- "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==",
+ "version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
"dev": true,
"requires": {
"fast-deep-equal": "^3.1.1",
@@ -2865,16 +2791,15 @@
}
},
"ansi-regex": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
- "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg=="
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="
},
"ansi-styles": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
- "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"requires": {
- "@types/color-name": "^1.1.1",
"color-convert": "^2.0.1"
},
"dependencies": {
@@ -2915,16 +2840,6 @@
"sprintf-js": "~1.0.2"
}
},
- "aria-query": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz",
- "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==",
- "dev": true,
- "requires": {
- "@babel/runtime": "^7.10.2",
- "@babel/runtime-corejs3": "^7.10.2"
- }
- },
"arr-diff": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
@@ -2952,13 +2867,15 @@
"integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw="
},
"array-includes": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.1.tgz",
- "integrity": "sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ==",
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.3.tgz",
+ "integrity": "sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A==",
"dev": true,
"requires": {
+ "call-bind": "^1.0.2",
"define-properties": "^1.1.3",
- "es-abstract": "^1.17.0",
+ "es-abstract": "^1.18.0-next.2",
+ "get-intrinsic": "^1.1.1",
"is-string": "^1.0.5"
}
},
@@ -2982,27 +2899,6 @@
"resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
"integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg="
},
- "array.prototype.flat": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz",
- "integrity": "sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ==",
- "dev": true,
- "requires": {
- "define-properties": "^1.1.3",
- "es-abstract": "^1.17.0-next.1"
- }
- },
- "array.prototype.flatmap": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.3.tgz",
- "integrity": "sha512-OOEk+lkePcg+ODXIpvuU9PAryCikCJyo7GlDG1upleEpQRx6mzL9puEBkozQ5iAx20KV0l3DbyQwqciJtqe5Pg==",
- "dev": true,
- "requires": {
- "define-properties": "^1.1.3",
- "es-abstract": "^1.17.0-next.1",
- "function-bind": "^1.1.1"
- }
- },
"asap": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
@@ -3028,12 +2924,6 @@
"resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
"integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c="
},
- "ast-types-flow": {
- "version": "0.0.7",
- "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz",
- "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=",
- "dev": true
- },
"astral-regex": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz",
@@ -3059,9 +2949,9 @@
"integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg=="
},
"autolinker": {
- "version": "3.14.1",
- "resolved": "https://registry.npmjs.org/autolinker/-/autolinker-3.14.1.tgz",
- "integrity": "sha512-yvsRHIaY51EYDml6MGlbqyJGfl4n7zezGYf+R7gvM8c5LNpRGc4SISkvgAswSS8SWxk/OrGCylKV9mJyVstz7w==",
+ "version": "3.14.3",
+ "resolved": "https://registry.npmjs.org/autolinker/-/autolinker-3.14.3.tgz",
+ "integrity": "sha512-t81i2bCpS+s+5FIhatoww9DmpjhbdiimuU9ATEuLxtZMQ7jLv9fyFn7SWNG8IkEfD4AmYyirL1ss9k1aqVWRvg==",
"requires": {
"tslib": "^1.9.3"
}
@@ -3073,21 +2963,9 @@
"dev": true
},
"aws4": {
- "version": "1.10.1",
- "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.1.tgz",
- "integrity": "sha512-zg7Hz2k5lI8kb7U32998pRRFin7zJlkfezGJjUc2heaD4Pw2wObakCDVzkKztTm/Ln7eiVvYsjqak0Ed4LkMDA==",
- "dev": true
- },
- "axe-core": {
- "version": "3.5.5",
- "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-3.5.5.tgz",
- "integrity": "sha512-5P0QZ6J5xGikH780pghEdbEKijCTrruK9KxtPZCFWUpef0f6GipO+xEZ5GKCb020mmqgbiNO6TcA55CriL784Q==",
- "dev": true
- },
- "axobject-query": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz",
- "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==",
+ "version": "1.11.0",
+ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz",
+ "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==",
"dev": true
},
"babel-eslint": {
@@ -3105,27 +2983,18 @@
}
},
"babel-jest": {
- "version": "25.5.1",
- "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-25.5.1.tgz",
- "integrity": "sha512-9dA9+GmMjIzgPnYtkhBg73gOo/RHqPmLruP3BaGL4KEX3Dwz6pI8auSN8G8+iuEG90+GSswyKvslN+JYSaacaQ==",
+ "version": "25.1.0",
+ "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-25.1.0.tgz",
+ "integrity": "sha512-tz0VxUhhOE2y+g8R2oFrO/2VtVjA1lkJeavlhExuRBg3LdNJY9gwQ+Vcvqt9+cqy71MCTJhewvTB7Qtnnr9SWg==",
"dev": true,
"requires": {
- "@jest/transform": "^25.5.1",
- "@jest/types": "^25.5.0",
- "@types/babel__core": "^7.1.7",
+ "@jest/transform": "^25.1.0",
+ "@jest/types": "^25.1.0",
+ "@types/babel__core": "^7.1.0",
"babel-plugin-istanbul": "^6.0.0",
- "babel-preset-jest": "^25.5.0",
+ "babel-preset-jest": "^25.1.0",
"chalk": "^3.0.0",
- "graceful-fs": "^4.2.4",
"slash": "^3.0.0"
- },
- "dependencies": {
- "slash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
- "dev": true
- }
}
},
"babel-plugin-dynamic-import-node": {
@@ -3160,15 +3029,42 @@
"@types/babel__traverse": "^7.0.6"
}
},
+ "babel-plugin-polyfill-corejs2": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.0.tgz",
+ "integrity": "sha512-9bNwiR0dS881c5SHnzCmmGlMkJLl0OUZvxrxHo9w/iNoRuqaPjqlvBf4HrovXtQs/au5yKkpcdgfT1cC5PAZwg==",
+ "requires": {
+ "@babel/compat-data": "^7.13.11",
+ "@babel/helper-define-polyfill-provider": "^0.2.0",
+ "semver": "^6.1.1"
+ }
+ },
+ "babel-plugin-polyfill-corejs3": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.0.tgz",
+ "integrity": "sha512-zZyi7p3BCUyzNxLx8KV61zTINkkV65zVkDAFNZmrTCRVhjo1jAS+YLvDJ9Jgd/w2tsAviCwFHReYfxO3Iql8Yg==",
+ "requires": {
+ "@babel/helper-define-polyfill-provider": "^0.2.0",
+ "core-js-compat": "^3.9.1"
+ }
+ },
+ "babel-plugin-polyfill-regenerator": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.0.tgz",
+ "integrity": "sha512-J7vKbCuD2Xi/eEHxquHN14bXAW9CXtecwuLrOIDJtcZzTaPzV1VdEfoUf9AzcRBMolKUQKM9/GVojeh0hFiqMg==",
+ "requires": {
+ "@babel/helper-define-polyfill-provider": "^0.2.0"
+ }
+ },
"babel-plugin-syntax-trailing-function-commas": {
"version": "7.0.0-beta.0",
"resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz",
"integrity": "sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ=="
},
"babel-preset-current-node-syntax": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.3.tgz",
- "integrity": "sha512-uyexu1sVwcdFnyq9o8UQYsXwXflIh8LvrF5+cKrYam93ned1CStffB3+BEcsxGSgagoA3GEyjDqO4a/58hyPYQ==",
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.4.tgz",
+ "integrity": "sha512-5/INNCYhUGqw7VbVjT/hb3ucjgkVHKXY7lX3ZjlN4gm565VyFmJUrJ/h+h16ECVB38R/9SF6aACydpKMLZ/c9w==",
"dev": true,
"requires": {
"@babel/plugin-syntax-async-generators": "^7.8.4",
@@ -3229,9 +3125,9 @@
}
},
"balanced-match": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
- "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
},
"base": {
"version": "0.11.2",
@@ -3284,9 +3180,9 @@
}
},
"base64-js": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz",
- "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g=="
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
},
"bcrypt-pbkdf": {
"version": "1.0.2",
@@ -3386,6 +3282,18 @@
}
}
},
+ "browserslist": {
+ "version": "4.16.6",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz",
+ "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==",
+ "requires": {
+ "caniuse-lite": "^1.0.30001219",
+ "colorette": "^1.2.2",
+ "electron-to-chromium": "^1.3.723",
+ "escalade": "^3.1.1",
+ "node-releases": "^1.1.71"
+ }
+ },
"bser": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz",
@@ -3435,6 +3343,15 @@
"unset-value": "^1.0.0"
}
},
+ "call-bind": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
+ "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
+ "requires": {
+ "function-bind": "^1.1.1",
+ "get-intrinsic": "^1.0.2"
+ }
+ },
"caller-callsite": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz",
@@ -3461,6 +3378,11 @@
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
"integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="
},
+ "caniuse-lite": {
+ "version": "1.0.30001223",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001223.tgz",
+ "integrity": "sha512-k/RYs6zc/fjbxTjaWZemeSmOjO0JJV+KguOBA3NwPup8uzxM1cMhR2BD9XmO86GuqaqTCO8CgkgH9Rz//vdDiA=="
+ },
"capture-exit": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz",
@@ -3524,9 +3446,9 @@
}
},
"cli-spinners": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.4.0.tgz",
- "integrity": "sha512-sJAofoarcm76ZGpuooaO0eDy8saEy+YoZBLjC4h8srt4jeBnkYeOgqxgsJQTpyt2LjI5PTfLJHSL+41Yu4fEJA=="
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.0.tgz",
+ "integrity": "sha512-t+4/y50K/+4xcCRosKkA7W4gTr1MySvLV0q+PxmG7FJ5g+66ChKurYjxBCjHggHH3HA5Hh9cy+lcUGWDqVH+4Q=="
},
"cli-width": {
"version": "2.2.1",
@@ -3534,23 +3456,26 @@
"integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw=="
},
"cliui": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
- "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
+ "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
"requires": {
- "string-width": "^3.1.0",
- "strip-ansi": "^5.2.0",
- "wrap-ansi": "^5.1.0"
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^6.2.0"
},
"dependencies": {
- "string-width": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
- "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg=="
+ },
+ "strip-ansi": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+ "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
"requires": {
- "emoji-regex": "^7.0.1",
- "is-fullwidth-code-point": "^2.0.0",
- "strip-ansi": "^5.1.0"
+ "ansi-regex": "^5.0.0"
}
}
}
@@ -3560,6 +3485,16 @@
"resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
"integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4="
},
+ "clone-deep": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz",
+ "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==",
+ "requires": {
+ "is-plain-object": "^2.0.4",
+ "kind-of": "^6.0.2",
+ "shallow-clone": "^3.0.0"
+ }
+ },
"co": {
"version": "4.6.0",
"resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
@@ -3582,12 +3517,12 @@
}
},
"color": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/color/-/color-3.1.2.tgz",
- "integrity": "sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg==",
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/color/-/color-3.1.3.tgz",
+ "integrity": "sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ==",
"requires": {
"color-convert": "^1.9.1",
- "color-string": "^1.5.2"
+ "color-string": "^1.5.4"
}
},
"color-convert": {
@@ -3604,9 +3539,9 @@
"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
},
"color-string": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz",
- "integrity": "sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==",
+ "version": "1.5.5",
+ "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.5.tgz",
+ "integrity": "sha512-jgIoum0OfQfq9Whcfc2z/VhCNcmQjWbey6qBX0vqt7YICflUmBCh9E9CiQD5GSJ+Uehixm3NUwHVhqUAWRivZg==",
"requires": {
"color-name": "^1.0.0",
"simple-swizzle": "^0.2.2"
@@ -3618,9 +3553,9 @@
"integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg=="
},
"colorette": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz",
- "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw=="
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz",
+ "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w=="
},
"combined-stream": {
"version": "1.0.8",
@@ -3641,6 +3576,12 @@
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
"integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
},
+ "common-tags": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz",
+ "integrity": "sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==",
+ "dev": true
+ },
"commondir": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
@@ -3689,11 +3630,15 @@
"typedarray": "^0.0.6"
}
},
- "confusing-browser-globals": {
- "version": "1.0.9",
- "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.9.tgz",
- "integrity": "sha512-KbS1Y0jMtyPgIxjO7ZzMAuUpAKMt1SzCL9fsrKsX6b0zJPTaT0SiSPmewwVZg9UAO83HVIlEhZF84LIjZ0lmAw==",
- "dev": true
+ "config-chain": {
+ "version": "1.1.12",
+ "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz",
+ "integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==",
+ "dev": true,
+ "requires": {
+ "ini": "^1.3.4",
+ "proto-list": "~1.2.1"
+ }
},
"connect": {
"version": "3.7.0",
@@ -3706,12 +3651,6 @@
"utils-merge": "1.0.1"
}
},
- "contains-path": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz",
- "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=",
- "dev": true
- },
"convert-source-map": {
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz",
@@ -3726,14 +3665,30 @@
"integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40="
},
"core-js": {
- "version": "2.6.11",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz",
- "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg=="
+ "version": "2.6.12",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz",
+ "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ=="
+ },
+ "core-js-compat": {
+ "version": "3.12.0",
+ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.12.0.tgz",
+ "integrity": "sha512-vvaN8EOvYBEjrr+MN3vCKrMNc/xdYZI+Rt/uPMROi4T5Hj8Fz6TiPQm2mrB9aZoQVW1lCFHYmMrv99aUct9mkg==",
+ "requires": {
+ "browserslist": "^4.16.6",
+ "semver": "7.0.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz",
+ "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A=="
+ }
+ }
},
"core-js-pure": {
- "version": "3.6.5",
- "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.6.5.tgz",
- "integrity": "sha512-lacdXOimsiD0QyNf9BC/mxivNJ/ybBGJXQFKzRekp1WTHoVUWsUHEn+2T8GJAzzIhyOuXA+gOxCVN3l+5PLPUA==",
+ "version": "3.12.0",
+ "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.12.0.tgz",
+ "integrity": "sha512-j2y084taJU4VMUpwuC93l19tsPbTAtOpg6/do3UOwX4eUJbsFdhEaGRQfTYthn5rDubsB88YITtei0Kw46vEQQ==",
"dev": true
},
"core-util-is": {
@@ -3752,6 +3707,15 @@
"parse-json": "^4.0.0"
}
},
+ "cross-fetch": {
+ "version": "3.1.4",
+ "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.4.tgz",
+ "integrity": "sha512-1eAtFWdIubi6T4XPy6ei9iUFoKpUkIF971QLN8lIvvvwueI65+Nw5haMNKUwfJxabqlIIDODJKGrQ66gxC0PbQ==",
+ "dev": true,
+ "requires": {
+ "node-fetch": "2.6.1"
+ }
+ },
"cross-spawn": {
"version": "6.0.5",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
@@ -3795,15 +3759,9 @@
}
},
"csstype": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.3.tgz",
- "integrity": "sha512-jPl+wbWPOWJ7SXsWyqGRk3lGecbar0Cb0OvZF/r/ZU011R4YqiRehgkQ9p4eQfo9DSDLqLL3wHwfxeJiuIsNag==",
- "dev": true
- },
- "damerau-levenshtein": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz",
- "integrity": "sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug==",
+ "version": "3.0.8",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.8.tgz",
+ "integrity": "sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw==",
"dev": true
},
"dashdash": {
@@ -3827,9 +3785,9 @@
}
},
"dayjs": {
- "version": "1.8.33",
- "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.8.33.tgz",
- "integrity": "sha512-881TDLZCdpJFKbraWRHcUG8zfMLLX400ENf9rFZDuWc5zYMss6xifo2PhlDX0ftOmR2NRmaIY47bAa4gKQfXqw=="
+ "version": "1.10.4",
+ "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.10.4.tgz",
+ "integrity": "sha512-RI/Hh4kqRc1UKLOAf/T5zdMMX5DQIlDxwUe3wSyMMnEbGunnpENCdbUgM+dW7kXidZqCttBrmw7BhN4TMddkCw=="
},
"debug": {
"version": "2.6.9",
@@ -3949,6 +3907,12 @@
"resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
"integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
},
+ "detect-indent": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.0.0.tgz",
+ "integrity": "sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA==",
+ "dev": true
+ },
"detect-newline": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz",
@@ -3962,9 +3926,9 @@
"dev": true
},
"doctrine": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
- "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
+ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
"dev": true,
"requires": {
"esutils": "^2.0.2"
@@ -3980,14 +3944,14 @@
},
"dependencies": {
"domelementtype": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz",
- "integrity": "sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ=="
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz",
+ "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A=="
},
"entities": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.3.tgz",
- "integrity": "sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ=="
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
+ "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A=="
}
}
},
@@ -4022,6 +3986,12 @@
"domelementtype": "1"
}
},
+ "dottie": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/dottie/-/dottie-2.0.2.tgz",
+ "integrity": "sha512-fmrwR04lsniq/uSr8yikThDTrM7epXHBAAjH9TbeH3rEA8tdCO7mRzB9hdmdGyJCxF8KERo9CITcm3kGuoyMhg==",
+ "dev": true
+ },
"ecc-jsbn": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
@@ -4032,15 +4002,40 @@
"safer-buffer": "^2.1.0"
}
},
+ "editorconfig": {
+ "version": "0.15.3",
+ "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-0.15.3.tgz",
+ "integrity": "sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g==",
+ "dev": true,
+ "requires": {
+ "commander": "^2.19.0",
+ "lru-cache": "^4.1.5",
+ "semver": "^5.6.0",
+ "sigmund": "^1.0.1"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true
+ }
+ }
+ },
"ee-first": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
"integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
},
+ "electron-to-chromium": {
+ "version": "1.3.727",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.727.tgz",
+ "integrity": "sha512-Mfz4FIB4FSvEwBpDfdipRIrwd6uo8gUDoRDF4QEYb4h4tSuI3ov594OrjU6on042UlFHouIJpClDODGkPcBSbg=="
+ },
"emoji-regex": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
- "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA=="
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
},
"encodeurl": {
"version": "1.0.2",
@@ -4073,32 +4068,15 @@
"once": "^1.4.0"
}
},
- "enquirer": {
- "version": "2.3.6",
- "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz",
- "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==",
- "dev": true,
- "requires": {
- "ansi-colors": "^4.1.1"
- },
- "dependencies": {
- "ansi-colors": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
- "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==",
- "dev": true
- }
- }
- },
"entities": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz",
"integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w=="
},
"envinfo": {
- "version": "7.7.2",
- "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.7.2.tgz",
- "integrity": "sha512-k3Eh5bKuQnZjm49/L7H4cHzs2FlL5QjbTB3JrPxoTI8aJG7hVMe4uKyJxSYH4ahseby2waUwk5OaKX/nAsaYgg=="
+ "version": "7.8.1",
+ "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz",
+ "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw=="
},
"error-ex": {
"version": "1.3.2",
@@ -4115,6 +4093,14 @@
}
}
},
+ "error-stack-parser": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.6.tgz",
+ "integrity": "sha512-d51brTeqC+BHlwF0BhPtcYgF5nlzf9ZZ0ZIUQNZpc9ZB9qw5IJ2diTrBY9jlCJkTLITYPjmiX6OWCwH+fuyNgQ==",
+ "requires": {
+ "stackframe": "^1.1.1"
+ }
+ },
"errorhandler": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/errorhandler/-/errorhandler-1.5.1.tgz",
@@ -4125,22 +4111,27 @@
}
},
"es-abstract": {
- "version": "1.17.6",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz",
- "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==",
+ "version": "1.18.0",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0.tgz",
+ "integrity": "sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw==",
"dev": true,
"requires": {
+ "call-bind": "^1.0.2",
"es-to-primitive": "^1.2.1",
"function-bind": "^1.1.1",
+ "get-intrinsic": "^1.1.1",
"has": "^1.0.3",
- "has-symbols": "^1.0.1",
- "is-callable": "^1.2.0",
- "is-regex": "^1.1.0",
- "object-inspect": "^1.7.0",
+ "has-symbols": "^1.0.2",
+ "is-callable": "^1.2.3",
+ "is-negative-zero": "^2.0.1",
+ "is-regex": "^1.1.2",
+ "is-string": "^1.0.5",
+ "object-inspect": "^1.9.0",
"object-keys": "^1.1.1",
- "object.assign": "^4.1.0",
- "string.prototype.trimend": "^1.0.1",
- "string.prototype.trimstart": "^1.0.1"
+ "object.assign": "^4.1.2",
+ "string.prototype.trimend": "^1.0.4",
+ "string.prototype.trimstart": "^1.0.4",
+ "unbox-primitive": "^1.0.0"
}
},
"es-to-primitive": {
@@ -4154,6 +4145,11 @@
"is-symbol": "^1.0.2"
}
},
+ "escalade": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
+ "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw=="
+ },
"escape-html": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
@@ -4226,9 +4222,9 @@
}
},
"eslint": {
- "version": "7.6.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.6.0.tgz",
- "integrity": "sha512-QlAManNtqr7sozWm5TF4wIH9gmUm2hE3vNRUvyoYAa4y1l5/jxD/PQStEjBMQtCqZmSep8UxrcecI60hOpe61w==",
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.2.0.tgz",
+ "integrity": "sha512-B3BtEyaDKC5MlfDa2Ha8/D6DsS4fju95zs0hjS3HdGazw+LNayai38A25qMppK37wWGWNYSPOR6oYzlz5MHsRQ==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.0.0",
@@ -4237,11 +4233,10 @@
"cross-spawn": "^7.0.2",
"debug": "^4.0.1",
"doctrine": "^3.0.0",
- "enquirer": "^2.3.5",
"eslint-scope": "^5.1.0",
- "eslint-utils": "^2.1.0",
- "eslint-visitor-keys": "^1.3.0",
- "espree": "^7.2.0",
+ "eslint-utils": "^2.0.0",
+ "eslint-visitor-keys": "^1.2.0",
+ "espree": "^7.1.0",
"esquery": "^1.2.0",
"esutils": "^2.0.2",
"file-entry-cache": "^5.0.1",
@@ -4251,11 +4246,12 @@
"ignore": "^4.0.6",
"import-fresh": "^3.0.0",
"imurmurhash": "^0.1.4",
+ "inquirer": "^7.0.0",
"is-glob": "^4.0.0",
"js-yaml": "^3.13.1",
"json-stable-stringify-without-jsonify": "^1.0.1",
"levn": "^0.4.1",
- "lodash": "^4.17.19",
+ "lodash": "^4.17.14",
"minimatch": "^3.0.4",
"natural-compare": "^1.4.0",
"optionator": "^0.9.1",
@@ -4269,16 +4265,60 @@
"v8-compile-cache": "^2.0.3"
},
"dependencies": {
+ "ansi-escapes": {
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
+ "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
+ "dev": true,
+ "requires": {
+ "type-fest": "^0.21.3"
+ },
+ "dependencies": {
+ "type-fest": {
+ "version": "0.21.3",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
+ "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
+ "dev": true
+ }
+ }
+ },
+ "ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+ "dev": true
+ },
"chalk": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
- "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz",
+ "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==",
"dev": true,
"requires": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
}
},
+ "chardet": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
+ "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==",
+ "dev": true
+ },
+ "cli-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
+ "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
+ "dev": true,
+ "requires": {
+ "restore-cursor": "^3.1.0"
+ }
+ },
+ "cli-width": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz",
+ "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==",
+ "dev": true
+ },
"cross-spawn": {
"version": "7.0.3",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
@@ -4291,12 +4331,47 @@
}
},
"debug": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
- "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
+ "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
"dev": true,
"requires": {
- "ms": "^2.1.1"
+ "ms": "2.1.2"
+ }
+ },
+ "doctrine": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
+ "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
+ "dev": true,
+ "requires": {
+ "esutils": "^2.0.2"
+ }
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+ "dev": true
+ },
+ "external-editor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz",
+ "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==",
+ "dev": true,
+ "requires": {
+ "chardet": "^0.7.0",
+ "iconv-lite": "^0.4.24",
+ "tmp": "^0.0.33"
+ }
+ },
+ "figures": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
+ "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
+ "dev": true,
+ "requires": {
+ "escape-string-regexp": "^1.0.5"
}
},
"globals": {
@@ -4308,16 +4383,79 @@
"type-fest": "^0.8.1"
}
},
+ "ignore": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
+ "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
+ "dev": true
+ },
"import-fresh": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz",
- "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==",
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
+ "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
"dev": true,
"requires": {
"parent-module": "^1.0.0",
"resolve-from": "^4.0.0"
}
},
+ "inquirer": {
+ "version": "7.3.3",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz",
+ "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==",
+ "dev": true,
+ "requires": {
+ "ansi-escapes": "^4.2.1",
+ "chalk": "^4.1.0",
+ "cli-cursor": "^3.1.0",
+ "cli-width": "^3.0.0",
+ "external-editor": "^3.0.3",
+ "figures": "^3.0.0",
+ "lodash": "^4.17.19",
+ "mute-stream": "0.0.8",
+ "run-async": "^2.4.0",
+ "rxjs": "^6.6.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0",
+ "through": "^2.3.6"
+ }
+ },
+ "lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ },
+ "mimic-fn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
+ "dev": true
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ },
+ "mute-stream": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
+ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==",
+ "dev": true
+ },
+ "onetime": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
+ "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
+ "dev": true,
+ "requires": {
+ "mimic-fn": "^2.1.0"
+ }
+ },
"path-key": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
@@ -4330,11 +4468,24 @@
"integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
"dev": true
},
+ "restore-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
+ "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
+ "dev": true,
+ "requires": {
+ "onetime": "^5.1.0",
+ "signal-exit": "^3.0.2"
+ }
+ },
"semver": {
- "version": "7.3.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz",
- "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==",
- "dev": true
+ "version": "7.3.5",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
+ "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
},
"shebang-command": {
"version": "2.0.0",
@@ -4374,120 +4525,24 @@
"requires": {
"isexe": "^2.0.0"
}
+ },
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
}
}
},
- "eslint-config-airbnb": {
- "version": "18.2.0",
- "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-18.2.0.tgz",
- "integrity": "sha512-Fz4JIUKkrhO0du2cg5opdyPKQXOI2MvF8KUvN2710nJMT6jaRUpRE2swrJftAjVGL7T1otLM5ieo5RqS1v9Udg==",
- "dev": true,
- "requires": {
- "eslint-config-airbnb-base": "^14.2.0",
- "object.assign": "^4.1.0",
- "object.entries": "^1.1.2"
- }
- },
- "eslint-config-airbnb-base": {
- "version": "14.2.0",
- "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.2.0.tgz",
- "integrity": "sha512-Snswd5oC6nJaevs3nZoLSTvGJBvzTfnBqOIArkf3cbyTyq9UD79wOk8s+RiL6bhca0p/eRO6veczhf6A/7Jy8Q==",
- "dev": true,
- "requires": {
- "confusing-browser-globals": "^1.0.9",
- "object.assign": "^4.1.0",
- "object.entries": "^1.1.2"
- }
- },
"eslint-config-prettier": {
- "version": "6.11.0",
- "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-6.11.0.tgz",
- "integrity": "sha512-oB8cpLWSAjOVFEJhhyMZh6NOEOtBVziaqdDQ86+qhDHFbZXoRTM7pNSvFRfW/W/L/LrQ38C99J5CGuRBBzBsdA==",
+ "version": "6.15.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-6.15.0.tgz",
+ "integrity": "sha512-a1+kOYLR8wMGustcgAjdydMsQ2A/2ipRPwRKUmfYaSxc9ZPcrku080Ctl6zrZzZNs/U82MjSv+qKREkoq3bJaw==",
"dev": true,
"requires": {
"get-stdin": "^6.0.0"
}
},
- "eslint-import-resolver-node": {
- "version": "0.3.4",
- "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz",
- "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==",
- "dev": true,
- "requires": {
- "debug": "^2.6.9",
- "resolve": "^1.13.1"
- }
- },
- "eslint-module-utils": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz",
- "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==",
- "dev": true,
- "requires": {
- "debug": "^2.6.9",
- "pkg-dir": "^2.0.0"
- },
- "dependencies": {
- "find-up": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
- "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
- "dev": true,
- "requires": {
- "locate-path": "^2.0.0"
- }
- },
- "locate-path": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
- "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
- "dev": true,
- "requires": {
- "p-locate": "^2.0.0",
- "path-exists": "^3.0.0"
- }
- },
- "p-limit": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
- "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
- "dev": true,
- "requires": {
- "p-try": "^1.0.0"
- }
- },
- "p-locate": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
- "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
- "dev": true,
- "requires": {
- "p-limit": "^1.1.0"
- }
- },
- "p-try": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
- "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
- "dev": true
- },
- "path-exists": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
- "dev": true
- },
- "pkg-dir": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz",
- "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=",
- "dev": true,
- "requires": {
- "find-up": "^2.1.0"
- }
- }
- }
- },
"eslint-plugin-eslint-comments": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/eslint-plugin-eslint-comments/-/eslint-plugin-eslint-comments-3.2.0.tgz",
@@ -4503,56 +4558,16 @@
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
"dev": true
- },
- "ignore": {
- "version": "5.1.8",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz",
- "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==",
- "dev": true
}
}
},
"eslint-plugin-flowtype": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-5.2.0.tgz",
- "integrity": "sha512-z7ULdTxuhlRJcEe1MVljePXricuPOrsWfScRXFhNzVD5dmTHWjIF57AxD0e7AbEoLSbjSsaA5S+hCg43WvpXJQ==",
+ "version": "2.50.3",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-2.50.3.tgz",
+ "integrity": "sha512-X+AoKVOr7Re0ko/yEXyM5SSZ0tazc6ffdIOocp2fFUlWoDt7DV0Bz99mngOkAFLOAWjqRA5jPwqUCbrx13XoxQ==",
"dev": true,
"requires": {
- "lodash": "^4.17.15",
- "string-natural-compare": "^3.0.1"
- }
- },
- "eslint-plugin-import": {
- "version": "2.22.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.22.0.tgz",
- "integrity": "sha512-66Fpf1Ln6aIS5Gr/55ts19eUuoDhAbZgnr6UxK5hbDx6l/QgQgx61AePq+BV4PP2uXQFClgMVzep5zZ94qqsxg==",
- "dev": true,
- "requires": {
- "array-includes": "^3.1.1",
- "array.prototype.flat": "^1.2.3",
- "contains-path": "^0.1.0",
- "debug": "^2.6.9",
- "doctrine": "1.5.0",
- "eslint-import-resolver-node": "^0.3.3",
- "eslint-module-utils": "^2.6.0",
- "has": "^1.0.3",
- "minimatch": "^3.0.4",
- "object.values": "^1.1.1",
- "read-pkg-up": "^2.0.0",
- "resolve": "^1.17.0",
- "tsconfig-paths": "^3.9.0"
- },
- "dependencies": {
- "doctrine": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz",
- "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=",
- "dev": true,
- "requires": {
- "esutils": "^2.0.2",
- "isarray": "^1.0.0"
- }
- }
+ "lodash": "^4.17.10"
}
},
"eslint-plugin-jest": {
@@ -4561,33 +4576,6 @@
"integrity": "sha512-gcLfn6P2PrFAVx3AobaOzlIEevpAEf9chTpFZz7bYfc7pz8XRv7vuKTIE4hxPKZSha6XWKKplDQ0x9Pq8xX2mg==",
"dev": true
},
- "eslint-plugin-jsx-a11y": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.3.1.tgz",
- "integrity": "sha512-i1S+P+c3HOlBJzMFORRbC58tHa65Kbo8b52/TwCwSKLohwvpfT5rm2GjGWzOHTEuq4xxf2aRlHHTtmExDQOP+g==",
- "dev": true,
- "requires": {
- "@babel/runtime": "^7.10.2",
- "aria-query": "^4.2.2",
- "array-includes": "^3.1.1",
- "ast-types-flow": "^0.0.7",
- "axe-core": "^3.5.4",
- "axobject-query": "^2.1.2",
- "damerau-levenshtein": "^1.0.6",
- "emoji-regex": "^9.0.0",
- "has": "^1.0.3",
- "jsx-ast-utils": "^2.4.1",
- "language-tags": "^1.0.5"
- },
- "dependencies": {
- "emoji-regex": {
- "version": "9.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.0.0.tgz",
- "integrity": "sha512-6p1NII1Vm62wni/VR/cUMauVQoxmLVb9csqQlvLz+hO2gk8U2UYDfXHQSUYIBKmZwAKz867IDqG7B+u0mj+M6w==",
- "dev": true
- }
- }
- },
"eslint-plugin-prettier": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.2.tgz",
@@ -4598,39 +4586,29 @@
}
},
"eslint-plugin-react": {
- "version": "7.20.6",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.20.6.tgz",
- "integrity": "sha512-kidMTE5HAEBSLu23CUDvj8dc3LdBU0ri1scwHBZjI41oDv4tjsWZKU7MQccFzH1QYPYhsnTF2ovh7JlcIcmxgg==",
+ "version": "7.19.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.19.0.tgz",
+ "integrity": "sha512-SPT8j72CGuAP+JFbT0sJHOB80TX/pu44gQ4vXH/cq+hQTiY2PuZ6IHkqXJV6x1b28GDdo1lbInjKUrrdUf0LOQ==",
"dev": true,
"requires": {
"array-includes": "^3.1.1",
- "array.prototype.flatmap": "^1.2.3",
"doctrine": "^2.1.0",
"has": "^1.0.3",
- "jsx-ast-utils": "^2.4.1",
- "object.entries": "^1.1.2",
+ "jsx-ast-utils": "^2.2.3",
+ "object.entries": "^1.1.1",
"object.fromentries": "^2.0.2",
"object.values": "^1.1.1",
"prop-types": "^15.7.2",
- "resolve": "^1.17.0",
- "string.prototype.matchall": "^4.0.2"
- },
- "dependencies": {
- "doctrine": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
- "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
- "dev": true,
- "requires": {
- "esutils": "^2.0.2"
- }
- }
+ "resolve": "^1.15.1",
+ "semver": "^6.3.0",
+ "string.prototype.matchall": "^4.0.2",
+ "xregexp": "^4.3.0"
}
},
"eslint-plugin-react-hooks": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.0.8.tgz",
- "integrity": "sha512-6SSb5AiMCPd8FDJrzah+Z4F44P2CdOaK026cXFV+o/xSRzfOiV1FNFeLl2z6xm3yqWOQEZ5OfVgiec90qV2xrQ==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-3.0.0.tgz",
+ "integrity": "sha512-EjxTHxjLKIBWFgDJdhKKzLh5q+vjTFrqNZX36uIxWS4OfyXe5DawqPj3U5qeJ1ngLwatjzQnmR0Lz0J0YH3kxw==",
"dev": true
},
"eslint-plugin-react-native": {
@@ -4649,12 +4627,12 @@
"dev": true
},
"eslint-scope": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.0.tgz",
- "integrity": "sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w==",
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
+ "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
"dev": true,
"requires": {
- "esrecurse": "^4.1.0",
+ "esrecurse": "^4.3.0",
"estraverse": "^4.1.1"
}
},
@@ -4674,13 +4652,13 @@
"dev": true
},
"espree": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/espree/-/espree-7.2.0.tgz",
- "integrity": "sha512-H+cQ3+3JYRMEIOl87e7QdHX70ocly5iW4+dttuR8iYSPr/hXKFb+7dBsZ7+u1adC4VrnPlTkv0+OwuPnDop19g==",
+ "version": "7.3.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz",
+ "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==",
"dev": true,
"requires": {
- "acorn": "^7.3.1",
- "acorn-jsx": "^5.2.0",
+ "acorn": "^7.4.0",
+ "acorn-jsx": "^5.3.1",
"eslint-visitor-keys": "^1.3.0"
}
},
@@ -4690,9 +4668,9 @@
"integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="
},
"esquery": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz",
- "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz",
+ "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==",
"dev": true,
"requires": {
"estraverse": "^5.1.0"
@@ -4707,12 +4685,20 @@
}
},
"esrecurse": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz",
- "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==",
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
+ "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
"dev": true,
"requires": {
- "estraverse": "^4.1.0"
+ "estraverse": "^5.2.0"
+ },
+ "dependencies": {
+ "estraverse": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz",
+ "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==",
+ "dev": true
+ }
}
},
"estraverse": {
@@ -4748,9 +4734,9 @@
"integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ="
},
"exec-sh": {
- "version": "0.3.4",
- "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.4.tgz",
- "integrity": "sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A=="
+ "version": "0.3.6",
+ "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.6.tgz",
+ "integrity": "sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w=="
},
"execa": {
"version": "1.0.0",
@@ -4865,21 +4851,15 @@
}
},
"micromatch": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz",
- "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==",
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz",
+ "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==",
"dev": true,
"requires": {
"braces": "^3.0.1",
- "picomatch": "^2.0.5"
+ "picomatch": "^2.2.3"
}
},
- "slash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
- "dev": true
- },
"to-regex-range": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
@@ -5186,6 +5166,11 @@
}
}
},
+ "filter-obj": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz",
+ "integrity": "sha1-mzERErxsYSehbgFsbF1/GeCAXFs="
+ },
"finalhandler": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
@@ -5319,15 +5304,25 @@
"dev": true
},
"gensync": {
- "version": "1.0.0-beta.1",
- "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz",
- "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg=="
+ "version": "1.0.0-beta.2",
+ "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
+ "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg=="
},
"get-caller-file": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
"integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="
},
+ "get-intrinsic": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
+ "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
+ "requires": {
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.1"
+ }
+ },
"get-package-type": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz",
@@ -5363,9 +5358,9 @@
}
},
"glob": {
- "version": "7.1.6",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
- "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "version": "7.1.7",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz",
+ "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==",
"requires": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
@@ -5376,9 +5371,9 @@
}
},
"glob-parent": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz",
- "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==",
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
"dev": true,
"requires": {
"is-glob": "^4.0.1"
@@ -5390,9 +5385,9 @@
"integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA=="
},
"graceful-fs": {
- "version": "4.2.4",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
- "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw=="
+ "version": "4.2.6",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz",
+ "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ=="
},
"growly": {
"version": "1.3.0",
@@ -5421,20 +5416,25 @@
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
"integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
- "dev": true,
"requires": {
"function-bind": "^1.1.1"
}
},
+ "has-bigints": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz",
+ "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==",
+ "dev": true
+ },
"has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
},
"has-symbols": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
- "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg=="
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz",
+ "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw=="
},
"has-value": {
"version": "1.0.0",
@@ -5470,6 +5470,14 @@
"resolved": "https://registry.npmjs.org/hermes-engine/-/hermes-engine-0.5.1.tgz",
"integrity": "sha512-hLwqh8dejHayjlpvZY40e1aDCDvyP98cWx/L5DhAjSJLH8g4z9Tp08D7y4+3vErDsncPOdf1bxm+zUWpx0/Fxg=="
},
+ "hermes-profile-transformer": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/hermes-profile-transformer/-/hermes-profile-transformer-0.0.6.tgz",
+ "integrity": "sha512-cnN7bQUm65UWOy6cbGcCcZ3rpwW8Q/j4OP5aWRhEry4Z2t2aR1cjrbp0BS+KiBN0smvP1caBgAuxutvyvJILzQ==",
+ "requires": {
+ "source-map": "^0.7.3"
+ }
+ },
"hoist-non-react-statics": {
"version": "3.3.2",
"resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz",
@@ -5479,9 +5487,9 @@
}
},
"hosted-git-info": {
- "version": "2.8.8",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz",
- "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==",
+ "version": "2.8.9",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
+ "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==",
"dev": true
},
"html-encoding-sniffer": {
@@ -5494,9 +5502,9 @@
}
},
"html-entities": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.3.1.tgz",
- "integrity": "sha512-rhE/4Z3hIhzHAUKbW8jVcCyuT5oJCXXqhN/6mXXVCpzTmvJnoH2HL/bt3EZ6p55jbFJBeAe1ZNpL5BugLujxNA=="
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.4.0.tgz",
+ "integrity": "sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA=="
},
"html-escaper": {
"version": "2.0.2",
@@ -5572,14 +5580,14 @@
}
},
"ieee754": {
- "version": "1.1.13",
- "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz",
- "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg=="
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="
},
"ignore": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
- "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
+ "version": "5.1.8",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz",
+ "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==",
"dev": true
},
"image-size": {
@@ -5625,7 +5633,8 @@
"imurmurhash": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
- "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o="
+ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
+ "dev": true
},
"inflight": {
"version": "1.0.6",
@@ -5641,6 +5650,12 @@
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
},
+ "ini": {
+ "version": "1.3.8",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
+ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
+ "dev": true
+ },
"inquirer": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz",
@@ -5695,6 +5710,15 @@
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
},
+ "string-width": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "requires": {
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^4.0.0"
+ }
+ },
"strip-ansi": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
@@ -5714,14 +5738,14 @@
}
},
"internal-slot": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.2.tgz",
- "integrity": "sha512-2cQNfwhAfJIkU4KZPkDI+Gj5yNNnbqi40W9Gge6dfnk4TocEVm00B3bdiL+JINrbGJil2TeHvM4rETGzk/f/0g==",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz",
+ "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==",
"dev": true,
"requires": {
- "es-abstract": "^1.17.0-next.1",
+ "get-intrinsic": "^1.1.0",
"has": "^1.0.3",
- "side-channel": "^1.0.2"
+ "side-channel": "^1.0.4"
}
},
"invariant": {
@@ -5732,6 +5756,11 @@
"loose-envify": "^1.0.0"
}
},
+ "ip": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz",
+ "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo="
+ },
"ip-regex": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz",
@@ -5761,15 +5790,30 @@
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
"integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="
},
+ "is-bigint": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz",
+ "integrity": "sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==",
+ "dev": true
+ },
+ "is-boolean-object": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.0.tgz",
+ "integrity": "sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.0"
+ }
+ },
"is-buffer": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
"integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
},
"is-callable": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz",
- "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==",
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz",
+ "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==",
"dev": true
},
"is-ci": {
@@ -5780,6 +5824,14 @@
"ci-info": "^2.0.0"
}
},
+ "is-core-module": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.3.0.tgz",
+ "integrity": "sha512-xSphU2KG9867tsYdLD4RWQ1VqdFl4HTO9Thf3I/3dLEfr0dbPTWKsuCKrgqMljg4nPE+Gq0VCnzT3gr0CyBmsw==",
+ "requires": {
+ "has": "^1.0.3"
+ }
+ },
"is-data-descriptor": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
@@ -5799,9 +5851,9 @@
}
},
"is-date-object": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz",
- "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.3.tgz",
+ "integrity": "sha512-tDpEUInNcy2Yw3lNSepK3Wdw1RnXLcIVienz6Ou631Acl15cJyRWK4dgA1vCmOEgIbtOV0W7MHg+AR2Gdg1NXQ==",
"dev": true
},
"is-descriptor": {
@@ -5827,9 +5879,9 @@
"integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE="
},
"is-docker": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz",
- "integrity": "sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==",
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz",
+ "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==",
"dev": true,
"optional": true
},
@@ -5864,6 +5916,12 @@
"is-extglob": "^2.1.1"
}
},
+ "is-negative-zero": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz",
+ "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==",
+ "dev": true
+ },
"is-number": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
@@ -5882,6 +5940,12 @@
}
}
},
+ "is-number-object": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.4.tgz",
+ "integrity": "sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==",
+ "dev": true
+ },
"is-obj": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
@@ -5896,11 +5960,12 @@
}
},
"is-regex": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz",
- "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==",
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz",
+ "integrity": "sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg==",
"dev": true,
"requires": {
+ "call-bind": "^1.0.2",
"has-symbols": "^1.0.1"
}
},
@@ -6033,14 +6098,20 @@
},
"dependencies": {
"debug": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
- "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
+ "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
"dev": true,
"requires": {
- "ms": "^2.1.1"
+ "ms": "2.1.2"
}
},
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ },
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
@@ -6060,14 +6131,14 @@
}
},
"jest": {
- "version": "25.5.4",
- "resolved": "https://registry.npmjs.org/jest/-/jest-25.5.4.tgz",
- "integrity": "sha512-hHFJROBTqZahnO+X+PMtT6G2/ztqAZJveGqz//FnWWHurizkD05PQGzRZOhF3XP6z7SJmL+5tCfW8qV06JypwQ==",
+ "version": "25.1.0",
+ "resolved": "https://registry.npmjs.org/jest/-/jest-25.1.0.tgz",
+ "integrity": "sha512-FV6jEruneBhokkt9MQk0WUFoNTwnF76CLXtwNMfsc0um0TlB/LG2yxUd0KqaFjEJ9laQmVWQWS0sG/t2GsuI0w==",
"dev": true,
"requires": {
- "@jest/core": "^25.5.4",
+ "@jest/core": "^25.1.0",
"import-local": "^3.0.2",
- "jest-cli": "^25.5.4"
+ "jest-cli": "^25.1.0"
},
"dependencies": {
"@jest/console": {
@@ -6095,6 +6166,12 @@
"collect-v8-coverage": "^1.0.0"
}
},
+ "ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+ "dev": true
+ },
"braces": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
@@ -6104,23 +6181,6 @@
"fill-range": "^7.0.1"
}
},
- "cliui": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
- "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
- "dev": true,
- "requires": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.0",
- "wrap-ansi": "^6.2.0"
- }
- },
- "emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
- },
"fill-range": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
@@ -6130,12 +6190,6 @@
"to-regex-range": "^5.0.1"
}
},
- "is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true
- },
"is-number": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
@@ -6223,13 +6277,13 @@
}
},
"micromatch": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz",
- "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==",
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz",
+ "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==",
"dev": true,
"requires": {
"braces": "^3.0.1",
- "picomatch": "^2.0.5"
+ "picomatch": "^2.2.3"
}
},
"pretty-format": {
@@ -6244,32 +6298,6 @@
"react-is": "^16.12.0"
}
},
- "slash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
- "dev": true
- },
- "string-width": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
- "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
- "dev": true,
- "requires": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.0"
- }
- },
- "strip-ansi": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
- "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
- "dev": true,
- "requires": {
- "ansi-regex": "^5.0.0"
- }
- },
"to-regex-range": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
@@ -6278,46 +6306,6 @@
"requires": {
"is-number": "^7.0.0"
}
- },
- "wrap-ansi": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
- "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
- "dev": true,
- "requires": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- }
- },
- "yargs": {
- "version": "15.4.1",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz",
- "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
- "dev": true,
- "requires": {
- "cliui": "^6.0.0",
- "decamelize": "^1.2.0",
- "find-up": "^4.1.0",
- "get-caller-file": "^2.0.1",
- "require-directory": "^2.1.1",
- "require-main-filename": "^2.0.0",
- "set-blocking": "^2.0.0",
- "string-width": "^4.2.0",
- "which-module": "^2.0.0",
- "y18n": "^4.0.0",
- "yargs-parser": "^18.1.2"
- }
- },
- "yargs-parser": {
- "version": "18.1.3",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
- "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
- "dev": true,
- "requires": {
- "camelcase": "^5.0.0",
- "decamelize": "^1.2.0"
- }
}
}
},
@@ -6477,6 +6465,28 @@
"realpath-native": "^2.0.0"
},
"dependencies": {
+ "ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+ "dev": true
+ },
+ "babel-jest": {
+ "version": "25.5.1",
+ "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-25.5.1.tgz",
+ "integrity": "sha512-9dA9+GmMjIzgPnYtkhBg73gOo/RHqPmLruP3BaGL4KEX3Dwz6pI8auSN8G8+iuEG90+GSswyKvslN+JYSaacaQ==",
+ "dev": true,
+ "requires": {
+ "@jest/transform": "^25.5.1",
+ "@jest/types": "^25.5.0",
+ "@types/babel__core": "^7.1.7",
+ "babel-plugin-istanbul": "^6.0.0",
+ "babel-preset-jest": "^25.5.0",
+ "chalk": "^3.0.0",
+ "graceful-fs": "^4.2.4",
+ "slash": "^3.0.0"
+ }
+ },
"braces": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
@@ -6550,13 +6560,13 @@
}
},
"micromatch": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz",
- "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==",
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz",
+ "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==",
"dev": true,
"requires": {
"braces": "^3.0.1",
- "picomatch": "^2.0.5"
+ "picomatch": "^2.2.3"
}
},
"pretty-format": {
@@ -6594,6 +6604,12 @@
"pretty-format": "^25.5.0"
},
"dependencies": {
+ "ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+ "dev": true
+ },
"jest-get-type": {
"version": "25.2.6",
"resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz",
@@ -6636,6 +6652,12 @@
"pretty-format": "^25.5.0"
},
"dependencies": {
+ "ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+ "dev": true
+ },
"jest-get-type": {
"version": "25.2.6",
"resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz",
@@ -6777,21 +6799,15 @@
}
},
"micromatch": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz",
- "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==",
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz",
+ "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==",
"dev": true,
"requires": {
"braces": "^3.0.1",
- "picomatch": "^2.0.5"
+ "picomatch": "^2.2.3"
}
},
- "slash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
- "dev": true
- },
"to-regex-range": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
@@ -6902,21 +6918,15 @@
}
},
"micromatch": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz",
- "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==",
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz",
+ "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==",
"dev": true,
"requires": {
"braces": "^3.0.1",
- "picomatch": "^2.0.5"
+ "picomatch": "^2.2.3"
}
},
- "slash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
- "dev": true
- },
"to-regex-range": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
@@ -6951,9 +6961,9 @@
}
},
"@types/yargs": {
- "version": "13.0.10",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.10.tgz",
- "integrity": "sha512-MU10TSgzNABgdzKvQVW1nuuT+sgBMWeXNc3XOs5YXV5SDAK+PPja2eUuBNB9iqElu03xyEDqlnGw0jgl4nbqGQ==",
+ "version": "13.0.11",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.11.tgz",
+ "integrity": "sha512-NRqD6T4gktUrDi1o1wLH3EKC1o2caCr7/wR87ODcbVITQF106OM3sFN92ysZ++wqelOd1CTzatnOBRDYYG6wGQ==",
"dev": true,
"requires": {
"@types/yargs-parser": "*"
@@ -7103,6 +7113,16 @@
}
}
},
+ "jest-fetch-mock": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/jest-fetch-mock/-/jest-fetch-mock-3.0.3.tgz",
+ "integrity": "sha512-Ux1nWprtLrdrH4XwE7O7InRY6psIi3GOsqNESJgMJ+M5cv4A8Lh7SN9d2V2kKRZ8ebAfcd1LNyZguAOb6JiDqw==",
+ "dev": true,
+ "requires": {
+ "cross-fetch": "^3.0.4",
+ "promise-polyfill": "^8.1.3"
+ }
+ },
"jest-get-type": {
"version": "24.9.0",
"resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-24.9.0.tgz",
@@ -7138,9 +7158,9 @@
}
},
"@types/yargs": {
- "version": "13.0.10",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.10.tgz",
- "integrity": "sha512-MU10TSgzNABgdzKvQVW1nuuT+sgBMWeXNc3XOs5YXV5SDAK+PPja2eUuBNB9iqElu03xyEDqlnGw0jgl4nbqGQ==",
+ "version": "13.0.11",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.11.tgz",
+ "integrity": "sha512-NRqD6T4gktUrDi1o1wLH3EKC1o2caCr7/wR87ODcbVITQF106OM3sFN92ysZ++wqelOd1CTzatnOBRDYYG6wGQ==",
"requires": {
"@types/yargs-parser": "*"
}
@@ -7208,6 +7228,12 @@
"collect-v8-coverage": "^1.0.0"
}
},
+ "ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+ "dev": true
+ },
"braces": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
@@ -7277,13 +7303,13 @@
}
},
"micromatch": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz",
- "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==",
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz",
+ "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==",
"dev": true,
"requires": {
"braces": "^3.0.1",
- "picomatch": "^2.0.5"
+ "picomatch": "^2.2.3"
}
},
"pretty-format": {
@@ -7298,12 +7324,6 @@
"react-is": "^16.12.0"
}
},
- "slash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
- "dev": true
- },
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
@@ -7337,6 +7357,12 @@
"pretty-format": "^25.5.0"
},
"dependencies": {
+ "ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+ "dev": true
+ },
"jest-get-type": {
"version": "25.2.6",
"resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz",
@@ -7369,6 +7395,12 @@
"pretty-format": "^25.5.0"
},
"dependencies": {
+ "ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+ "dev": true
+ },
"jest-get-type": {
"version": "25.2.6",
"resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz",
@@ -7415,9 +7447,9 @@
}
},
"@types/yargs": {
- "version": "13.0.10",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.10.tgz",
- "integrity": "sha512-MU10TSgzNABgdzKvQVW1nuuT+sgBMWeXNc3XOs5YXV5SDAK+PPja2eUuBNB9iqElu03xyEDqlnGw0jgl4nbqGQ==",
+ "version": "13.0.11",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.11.tgz",
+ "integrity": "sha512-NRqD6T4gktUrDi1o1wLH3EKC1o2caCr7/wR87ODcbVITQF106OM3sFN92ysZ++wqelOd1CTzatnOBRDYYG6wGQ==",
"requires": {
"@types/yargs-parser": "*"
}
@@ -7450,6 +7482,11 @@
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
},
+ "slash": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
+ "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A=="
+ },
"supports-color": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
@@ -7479,9 +7516,9 @@
}
},
"@types/yargs": {
- "version": "13.0.10",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.10.tgz",
- "integrity": "sha512-MU10TSgzNABgdzKvQVW1nuuT+sgBMWeXNc3XOs5YXV5SDAK+PPja2eUuBNB9iqElu03xyEDqlnGw0jgl4nbqGQ==",
+ "version": "13.0.11",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.11.tgz",
+ "integrity": "sha512-NRqD6T4gktUrDi1o1wLH3EKC1o2caCr7/wR87ODcbVITQF106OM3sFN92ysZ++wqelOd1CTzatnOBRDYYG6wGQ==",
"requires": {
"@types/yargs-parser": "*"
}
@@ -7515,63 +7552,6 @@
"realpath-native": "^2.0.0",
"resolve": "^1.17.0",
"slash": "^3.0.0"
- },
- "dependencies": {
- "parse-json": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.1.tgz",
- "integrity": "sha512-ztoZ4/DYeXQq4E21v169sC8qWINGpcosGv9XhTDvg9/hWvx/zrFkc9BiWxR58OJLHGk28j5BL0SDLeV2WmFZlQ==",
- "dev": true,
- "requires": {
- "@babel/code-frame": "^7.0.0",
- "error-ex": "^1.3.1",
- "json-parse-better-errors": "^1.0.1",
- "lines-and-columns": "^1.1.6"
- }
- },
- "read-pkg": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
- "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==",
- "dev": true,
- "requires": {
- "@types/normalize-package-data": "^2.4.0",
- "normalize-package-data": "^2.5.0",
- "parse-json": "^5.0.0",
- "type-fest": "^0.6.0"
- },
- "dependencies": {
- "type-fest": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz",
- "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==",
- "dev": true
- }
- }
- },
- "read-pkg-up": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz",
- "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==",
- "dev": true,
- "requires": {
- "find-up": "^4.1.0",
- "read-pkg": "^5.2.0",
- "type-fest": "^0.8.1"
- }
- },
- "slash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
- "dev": true
- },
- "type-fest": {
- "version": "0.8.1",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
- "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
- "dev": true
- }
}
},
"jest-resolve-dependencies": {
@@ -7638,9 +7618,9 @@
}
},
"anymatch": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz",
- "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==",
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
+ "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
"dev": true,
"requires": {
"normalize-path": "^3.0.0",
@@ -7666,9 +7646,9 @@
}
},
"fsevents": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz",
- "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==",
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
"dev": true,
"optional": true
},
@@ -7763,13 +7743,13 @@
"dev": true
},
"micromatch": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz",
- "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==",
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz",
+ "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==",
"dev": true,
"requires": {
"braces": "^3.0.1",
- "picomatch": "^2.0.5"
+ "picomatch": "^2.2.3"
}
},
"normalize-path": {
@@ -7778,12 +7758,6 @@
"integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
"dev": true
},
- "slash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
- "dev": true
- },
"throat": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz",
@@ -7880,10 +7854,16 @@
"collect-v8-coverage": "^1.0.0"
}
},
+ "ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+ "dev": true
+ },
"anymatch": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz",
- "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==",
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
+ "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
"dev": true,
"requires": {
"normalize-path": "^3.0.0",
@@ -7905,23 +7885,6 @@
"integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
"dev": true
},
- "cliui": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
- "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
- "dev": true,
- "requires": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.0",
- "wrap-ansi": "^6.2.0"
- }
- },
- "emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
- },
"fill-range": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
@@ -7932,18 +7895,12 @@
}
},
"fsevents": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz",
- "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==",
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
"dev": true,
"optional": true
},
- "is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true
- },
"is-number": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
@@ -8064,13 +8021,13 @@
"dev": true
},
"micromatch": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz",
- "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==",
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz",
+ "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==",
"dev": true,
"requires": {
"braces": "^3.0.1",
- "picomatch": "^2.0.5"
+ "picomatch": "^2.2.3"
}
},
"normalize-path": {
@@ -8091,44 +8048,12 @@
"react-is": "^16.12.0"
}
},
- "slash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
- "dev": true
- },
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true
},
- "string-width": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
- "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
- "dev": true,
- "requires": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.0"
- }
- },
- "strip-ansi": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
- "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
- "dev": true,
- "requires": {
- "ansi-regex": "^5.0.0"
- }
- },
- "strip-bom": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
- "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==",
- "dev": true
- },
"to-regex-range": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
@@ -8146,46 +8071,6 @@
"requires": {
"isexe": "^2.0.0"
}
- },
- "wrap-ansi": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
- "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
- "dev": true,
- "requires": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- }
- },
- "yargs": {
- "version": "15.4.1",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz",
- "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
- "dev": true,
- "requires": {
- "cliui": "^6.0.0",
- "decamelize": "^1.2.0",
- "find-up": "^4.1.0",
- "get-caller-file": "^2.0.1",
- "require-directory": "^2.1.1",
- "require-main-filename": "^2.0.0",
- "set-blocking": "^2.0.0",
- "string-width": "^4.2.0",
- "which-module": "^2.0.0",
- "y18n": "^4.0.0",
- "yargs-parser": "^18.1.2"
- }
- },
- "yargs-parser": {
- "version": "18.1.3",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
- "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
- "dev": true,
- "requires": {
- "camelcase": "^5.0.0",
- "decamelize": "^1.2.0"
- }
}
}
},
@@ -8217,6 +8102,12 @@
"semver": "^6.3.0"
},
"dependencies": {
+ "ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+ "dev": true
+ },
"braces": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
@@ -8273,13 +8164,13 @@
}
},
"micromatch": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz",
- "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==",
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz",
+ "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==",
"dev": true,
"requires": {
"braces": "^3.0.1",
- "picomatch": "^2.0.5"
+ "picomatch": "^2.2.3"
}
},
"pretty-format": {
@@ -8294,12 +8185,6 @@
"react-is": "^16.12.0"
}
},
- "slash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
- "dev": true
- },
"to-regex-range": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
@@ -8341,9 +8226,9 @@
}
},
"@types/yargs": {
- "version": "13.0.10",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.10.tgz",
- "integrity": "sha512-MU10TSgzNABgdzKvQVW1nuuT+sgBMWeXNc3XOs5YXV5SDAK+PPja2eUuBNB9iqElu03xyEDqlnGw0jgl4nbqGQ==",
+ "version": "13.0.11",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.11.tgz",
+ "integrity": "sha512-NRqD6T4gktUrDi1o1wLH3EKC1o2caCr7/wR87ODcbVITQF106OM3sFN92ysZ++wqelOd1CTzatnOBRDYYG6wGQ==",
"requires": {
"@types/yargs-parser": "*"
}
@@ -8381,6 +8266,11 @@
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
},
+ "slash": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
+ "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A=="
+ },
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
@@ -8420,9 +8310,9 @@
}
},
"@types/yargs": {
- "version": "13.0.10",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.10.tgz",
- "integrity": "sha512-MU10TSgzNABgdzKvQVW1nuuT+sgBMWeXNc3XOs5YXV5SDAK+PPja2eUuBNB9iqElu03xyEDqlnGw0jgl4nbqGQ==",
+ "version": "13.0.11",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.11.tgz",
+ "integrity": "sha512-NRqD6T4gktUrDi1o1wLH3EKC1o2caCr7/wR87ODcbVITQF106OM3sFN92ysZ++wqelOd1CTzatnOBRDYYG6wGQ==",
"requires": {
"@types/yargs-parser": "*"
}
@@ -8505,12 +8395,12 @@
}
},
"ansi-escapes": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz",
- "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==",
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
+ "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
"dev": true,
"requires": {
- "type-fest": "^0.11.0"
+ "type-fest": "^0.21.3"
}
},
"braces": {
@@ -8576,21 +8466,15 @@
}
},
"micromatch": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz",
- "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==",
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz",
+ "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==",
"dev": true,
"requires": {
"braces": "^3.0.1",
- "picomatch": "^2.0.5"
+ "picomatch": "^2.2.3"
}
},
- "slash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
- "dev": true
- },
"to-regex-range": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
@@ -8601,9 +8485,9 @@
}
},
"type-fest": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz",
- "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==",
+ "version": "0.21.3",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
+ "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
"dev": true
}
}
@@ -8638,9 +8522,30 @@
}
},
"jetifier": {
- "version": "1.6.6",
- "resolved": "https://registry.npmjs.org/jetifier/-/jetifier-1.6.6.tgz",
- "integrity": "sha512-JNAkmPeB/GS2tCRqUzRPsTOHpGDah7xP18vGJfIjZC+W2sxEHbxgJxetIjIqhjQ3yYbYNEELkM/spKLtwoOSUQ=="
+ "version": "1.6.8",
+ "resolved": "https://registry.npmjs.org/jetifier/-/jetifier-1.6.8.tgz",
+ "integrity": "sha512-3Zi16h6L5tXDRQJTb221cnRoVG9/9OvreLdLU2/ZjRv/GILL+2Cemt0IKvkowwkDpvouAU1DQPOJ7qaiHeIdrw=="
+ },
+ "js-beautify": {
+ "version": "1.13.13",
+ "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.13.13.tgz",
+ "integrity": "sha512-oH+nc0U5mOAqX8M5JO1J0Pw/7Q35sAdOsM5W3i87pir9Ntx6P/5Gx1xLNoK+MGyvHk4rqqRCE4Oq58H6xl2W7A==",
+ "dev": true,
+ "requires": {
+ "config-chain": "^1.1.12",
+ "editorconfig": "^0.15.3",
+ "glob": "^7.1.3",
+ "mkdirp": "^1.0.4",
+ "nopt": "^5.0.0"
+ },
+ "dependencies": {
+ "mkdirp": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
+ "dev": true
+ }
+ }
},
"js-tokens": {
"version": "4.0.0",
@@ -8648,9 +8553,9 @@
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
},
"js-yaml": {
- "version": "3.14.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz",
- "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==",
+ "version": "3.14.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
+ "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
"requires": {
"argparse": "^1.0.7",
"esprima": "^4.0.0"
@@ -8702,9 +8607,9 @@
},
"dependencies": {
"ws": {
- "version": "7.3.1",
- "resolved": "https://registry.npmjs.org/ws/-/ws-7.3.1.tgz",
- "integrity": "sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA==",
+ "version": "7.4.5",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.5.tgz",
+ "integrity": "sha512-xzyu3hFvomRfXKH8vOFMU3OguG6oOvhXMo3xsGy3xWExqaM2dxBbVxuD99O7m3ZUFMvvscsZDqxfgMaRr/Nr1g==",
"dev": true
}
}
@@ -8719,6 +8624,12 @@
"resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
"integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw=="
},
+ "json-parse-even-better-errors": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
+ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
+ "dev": true
+ },
"json-schema": {
"version": "0.2.3",
"resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
@@ -8752,9 +8663,9 @@
"dev": true
},
"json5": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz",
- "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz",
+ "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==",
"requires": {
"minimist": "^1.2.5"
}
@@ -8813,21 +8724,6 @@
"integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==",
"dev": true
},
- "language-subtag-registry": {
- "version": "0.3.20",
- "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.20.tgz",
- "integrity": "sha512-KPMwROklF4tEx283Xw0pNKtfTj1gZ4UByp4EsIFWLgBavJltF4TiYPc39k06zSTsLzxTVXXDSpbwaQXaFB4Qeg==",
- "dev": true
- },
- "language-tags": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz",
- "integrity": "sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=",
- "dev": true,
- "requires": {
- "language-subtag-registry": "~0.3.2"
- }
- },
"leven": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
@@ -8849,35 +8745,6 @@
"integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=",
"dev": true
},
- "load-json-file": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
- "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
- "dev": true,
- "requires": {
- "graceful-fs": "^4.1.2",
- "parse-json": "^2.2.0",
- "pify": "^2.0.0",
- "strip-bom": "^3.0.0"
- },
- "dependencies": {
- "parse-json": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
- "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
- "dev": true,
- "requires": {
- "error-ex": "^1.2.0"
- }
- },
- "pify": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
- "dev": true
- }
- }
- },
"locate-path": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
@@ -8887,15 +8754,26 @@
}
},
"lodash": {
- "version": "4.17.19",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz",
- "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ=="
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
},
"lodash._reinterpolate": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz",
"integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0="
},
+ "lodash.debounce": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
+ "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168="
+ },
+ "lodash.flattendeep": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz",
+ "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=",
+ "dev": true
+ },
"lodash.frompairs": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/lodash.frompairs/-/lodash.frompairs-4.0.1.tgz",
@@ -8949,6 +8827,12 @@
"resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz",
"integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ="
},
+ "lodash.uniq": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
+ "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=",
+ "dev": true
+ },
"log-symbols": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz",
@@ -9003,83 +8887,6 @@
"ansi-fragments": "^0.2.1",
"dayjs": "^1.8.15",
"yargs": "^15.1.0"
- },
- "dependencies": {
- "cliui": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
- "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
- "requires": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.0",
- "wrap-ansi": "^6.2.0"
- }
- },
- "emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
- },
- "is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
- },
- "string-width": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
- "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
- "requires": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.0"
- }
- },
- "strip-ansi": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
- "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
- "requires": {
- "ansi-regex": "^5.0.0"
- }
- },
- "wrap-ansi": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
- "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
- "requires": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- }
- },
- "yargs": {
- "version": "15.4.1",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz",
- "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
- "requires": {
- "cliui": "^6.0.0",
- "decamelize": "^1.2.0",
- "find-up": "^4.1.0",
- "get-caller-file": "^2.0.1",
- "require-directory": "^2.1.1",
- "require-main-filename": "^2.0.0",
- "set-blocking": "^2.0.0",
- "string-width": "^4.2.0",
- "which-module": "^2.0.0",
- "y18n": "^4.0.0",
- "yargs-parser": "^18.1.2"
- }
- },
- "yargs-parser": {
- "version": "18.1.3",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
- "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
- "requires": {
- "camelcase": "^5.0.0",
- "decamelize": "^1.2.0"
- }
- }
}
},
"lolex": {
@@ -9154,9 +8961,9 @@
}
},
"metro": {
- "version": "0.58.0",
- "resolved": "https://registry.npmjs.org/metro/-/metro-0.58.0.tgz",
- "integrity": "sha512-yi/REXX+/s4r7RjzXht+E+qE6nzvFIrEXO5Q61h+70Q7RODMU8EnlpXx04JYk7DevHuMhFaX+NWhCtRINzR4zA==",
+ "version": "0.59.0",
+ "resolved": "https://registry.npmjs.org/metro/-/metro-0.59.0.tgz",
+ "integrity": "sha512-OpVgYXyuTvouusFZQJ/UYKEbwfLmialrSCUUTGTFaBor6UMUHZgXPYtK86LzesgMqRc8aiuTQVO78iKW2Iz3wg==",
"requires": {
"@babel/code-frame": "^7.0.0",
"@babel/core": "^7.0.0",
@@ -9176,28 +8983,29 @@
"connect": "^3.6.5",
"debug": "^2.2.0",
"denodeify": "^1.2.1",
+ "error-stack-parser": "^2.0.6",
"eventemitter3": "^3.0.0",
"fbjs": "^1.0.0",
"fs-extra": "^1.0.0",
"graceful-fs": "^4.1.3",
"image-size": "^0.6.0",
"invariant": "^2.2.4",
- "jest-haste-map": "^24.7.1",
- "jest-worker": "^24.6.0",
+ "jest-haste-map": "^24.9.0",
+ "jest-worker": "^24.9.0",
"json-stable-stringify": "^1.0.1",
"lodash.throttle": "^4.1.1",
"merge-stream": "^1.0.1",
- "metro-babel-register": "0.58.0",
- "metro-babel-transformer": "0.58.0",
- "metro-cache": "0.58.0",
- "metro-config": "0.58.0",
- "metro-core": "0.58.0",
- "metro-inspector-proxy": "0.58.0",
- "metro-minify-uglify": "0.58.0",
- "metro-react-native-babel-preset": "0.58.0",
- "metro-resolver": "0.58.0",
- "metro-source-map": "0.58.0",
- "metro-symbolicate": "0.58.0",
+ "metro-babel-register": "0.59.0",
+ "metro-babel-transformer": "0.59.0",
+ "metro-cache": "0.59.0",
+ "metro-config": "0.59.0",
+ "metro-core": "0.59.0",
+ "metro-inspector-proxy": "0.59.0",
+ "metro-minify-uglify": "0.59.0",
+ "metro-react-native-babel-preset": "0.59.0",
+ "metro-resolver": "0.59.0",
+ "metro-source-map": "0.59.0",
+ "metro-symbolicate": "0.59.0",
"mime-types": "2.1.11",
"mkdirp": "^0.5.1",
"node-fetch": "^2.2.0",
@@ -9210,7 +9018,6 @@
"temp": "0.8.3",
"throat": "^4.1.0",
"wordwrap": "^1.0.0",
- "write-file-atomic": "^1.2.0",
"ws": "^1.1.5",
"xpipe": "^1.0.5",
"yargs": "^14.2.0"
@@ -9239,11 +9046,49 @@
"supports-color": "^5.3.0"
}
},
+ "cliui": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
+ "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
+ "requires": {
+ "string-width": "^3.1.0",
+ "strip-ansi": "^5.2.0",
+ "wrap-ansi": "^5.1.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="
+ },
+ "strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ }
+ }
+ }
+ },
+ "emoji-regex": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
+ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA=="
+ },
"escape-string-regexp": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
},
+ "find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "requires": {
+ "locate-path": "^3.0.0"
+ }
+ },
"fs-extra": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz",
@@ -9267,79 +9112,13 @@
"graceful-fs": "^4.1.6"
}
},
- "metro-babel-register": {
- "version": "0.58.0",
- "resolved": "https://registry.npmjs.org/metro-babel-register/-/metro-babel-register-0.58.0.tgz",
- "integrity": "sha512-P5+G3ufhSYL6cA3a7xkbSJzzFBvtivj/PhWvGXFXnuFssDlMAX1CTktff+0gpka5Cd6B6QLt0UAMWulUAAE4Eg==",
+ "locate-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
"requires": {
- "@babel/core": "^7.0.0",
- "@babel/plugin-proposal-class-properties": "^7.0.0",
- "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0",
- "@babel/plugin-proposal-object-rest-spread": "^7.0.0",
- "@babel/plugin-proposal-optional-catch-binding": "^7.0.0",
- "@babel/plugin-proposal-optional-chaining": "^7.0.0",
- "@babel/plugin-transform-async-to-generator": "^7.0.0",
- "@babel/plugin-transform-flow-strip-types": "^7.0.0",
- "@babel/plugin-transform-modules-commonjs": "^7.0.0",
- "@babel/register": "^7.0.0",
- "core-js": "^2.2.2",
- "escape-string-regexp": "^1.0.5"
- }
- },
- "metro-react-native-babel-preset": {
- "version": "0.58.0",
- "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.58.0.tgz",
- "integrity": "sha512-MRriNW+fF6jxABsgPphocUY6mIhmCm8idcrQZ58fT3Iti2vCdtkaK32TyCGUNUptzhUe2/cbE57j4aC+eaodAA==",
- "requires": {
- "@babel/plugin-proposal-class-properties": "^7.0.0",
- "@babel/plugin-proposal-export-default-from": "^7.0.0",
- "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0",
- "@babel/plugin-proposal-object-rest-spread": "^7.0.0",
- "@babel/plugin-proposal-optional-catch-binding": "^7.0.0",
- "@babel/plugin-proposal-optional-chaining": "^7.0.0",
- "@babel/plugin-syntax-dynamic-import": "^7.0.0",
- "@babel/plugin-syntax-export-default-from": "^7.0.0",
- "@babel/plugin-syntax-flow": "^7.2.0",
- "@babel/plugin-transform-arrow-functions": "^7.0.0",
- "@babel/plugin-transform-block-scoping": "^7.0.0",
- "@babel/plugin-transform-classes": "^7.0.0",
- "@babel/plugin-transform-computed-properties": "^7.0.0",
- "@babel/plugin-transform-destructuring": "^7.0.0",
- "@babel/plugin-transform-exponentiation-operator": "^7.0.0",
- "@babel/plugin-transform-flow-strip-types": "^7.0.0",
- "@babel/plugin-transform-for-of": "^7.0.0",
- "@babel/plugin-transform-function-name": "^7.0.0",
- "@babel/plugin-transform-literals": "^7.0.0",
- "@babel/plugin-transform-modules-commonjs": "^7.0.0",
- "@babel/plugin-transform-object-assign": "^7.0.0",
- "@babel/plugin-transform-parameters": "^7.0.0",
- "@babel/plugin-transform-react-display-name": "^7.0.0",
- "@babel/plugin-transform-react-jsx": "^7.0.0",
- "@babel/plugin-transform-react-jsx-source": "^7.0.0",
- "@babel/plugin-transform-regenerator": "^7.0.0",
- "@babel/plugin-transform-runtime": "^7.0.0",
- "@babel/plugin-transform-shorthand-properties": "^7.0.0",
- "@babel/plugin-transform-spread": "^7.0.0",
- "@babel/plugin-transform-sticky-regex": "^7.0.0",
- "@babel/plugin-transform-template-literals": "^7.0.0",
- "@babel/plugin-transform-typescript": "^7.5.0",
- "@babel/plugin-transform-unicode-regex": "^7.0.0",
- "@babel/template": "^7.0.0",
- "react-refresh": "^0.4.0"
- }
- },
- "metro-source-map": {
- "version": "0.58.0",
- "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.58.0.tgz",
- "integrity": "sha512-yvN1YPmejmgiiS7T1aKBiiUTHPw2Vcm3r2TZ+DY92z/9PR4alysIywrCs/fTHs8rbDcKM5VfPCKGLpkBrbKeOw==",
- "requires": {
- "@babel/traverse": "^7.0.0",
- "@babel/types": "^7.0.0",
- "invariant": "^2.2.4",
- "metro-symbolicate": "0.58.0",
- "ob1": "0.58.0",
- "source-map": "^0.5.6",
- "vlq": "^1.0.0"
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
}
},
"mime-db": {
@@ -9355,6 +9134,49 @@
"mime-db": "~1.23.0"
}
},
+ "p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "requires": {
+ "p-limit": "^2.0.0"
+ }
+ },
+ "path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
+ },
+ "string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "requires": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="
+ },
+ "strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ }
+ }
+ }
+ },
"strip-ansi": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
@@ -9370,6 +9192,58 @@
"requires": {
"has-flag": "^3.0.0"
}
+ },
+ "wrap-ansi": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
+ "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
+ "requires": {
+ "ansi-styles": "^3.2.0",
+ "string-width": "^3.0.0",
+ "strip-ansi": "^5.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="
+ },
+ "strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ }
+ }
+ }
+ },
+ "yargs": {
+ "version": "14.2.3",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-14.2.3.tgz",
+ "integrity": "sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg==",
+ "requires": {
+ "cliui": "^5.0.0",
+ "decamelize": "^1.2.0",
+ "find-up": "^3.0.0",
+ "get-caller-file": "^2.0.1",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^2.0.0",
+ "set-blocking": "^2.0.0",
+ "string-width": "^3.0.0",
+ "which-module": "^2.0.0",
+ "y18n": "^4.0.0",
+ "yargs-parser": "^15.0.1"
+ }
+ },
+ "yargs-parser": {
+ "version": "15.0.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.1.tgz",
+ "integrity": "sha512-0OAMV2mAZQrs3FkNpDQcBk1x5HXb8X4twADss4S0Iuk+2dGnLOE/fRHrsYm542GduMveyA77OF4wrNJuanRCWw==",
+ "requires": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ }
}
}
},
@@ -9396,81 +9270,165 @@
}
},
"metro-babel-transformer": {
- "version": "0.58.0",
- "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.58.0.tgz",
- "integrity": "sha512-yBX3BkRhw2TCNPhe+pmLSgsAEA3huMvnX08UwjFqSXXI1aiqzRQobn92uKd1U5MM1Vx8EtXVomlJb95ZHNAv6A==",
+ "version": "0.59.0",
+ "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.59.0.tgz",
+ "integrity": "sha512-fdZJl8rs54GVFXokxRdD7ZrQ1TJjxWzOi/xSP25VR3E8tbm3nBZqS+/ylu643qSr/IueABR+jrlqAyACwGEf6w==",
"requires": {
"@babel/core": "^7.0.0",
- "metro-source-map": "0.58.0"
- },
- "dependencies": {
- "metro-source-map": {
- "version": "0.58.0",
- "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.58.0.tgz",
- "integrity": "sha512-yvN1YPmejmgiiS7T1aKBiiUTHPw2Vcm3r2TZ+DY92z/9PR4alysIywrCs/fTHs8rbDcKM5VfPCKGLpkBrbKeOw==",
- "requires": {
- "@babel/traverse": "^7.0.0",
- "@babel/types": "^7.0.0",
- "invariant": "^2.2.4",
- "metro-symbolicate": "0.58.0",
- "ob1": "0.58.0",
- "source-map": "^0.5.6",
- "vlq": "^1.0.0"
- }
- }
+ "metro-source-map": "0.59.0"
}
},
"metro-cache": {
- "version": "0.58.0",
- "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.58.0.tgz",
- "integrity": "sha512-jjW9zCTKxhgKcVkyQ6LHyna9Zdf4TK/45vvT1fPyyTk1RY82ZYjU1qs+84ycKEd08Ka4YcK9xcUew9SIDJYI8Q==",
+ "version": "0.59.0",
+ "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.59.0.tgz",
+ "integrity": "sha512-ryWNkSnpyADfRpHGb8BRhQ3+k8bdT/bsxMH2O0ntlZYZ188d8nnYWmxbRvFmEzToJxe/ol4uDw0tJFAaQsN8KA==",
"requires": {
- "jest-serializer": "^24.4.0",
- "metro-core": "0.58.0",
+ "jest-serializer": "^24.9.0",
+ "metro-core": "0.59.0",
"mkdirp": "^0.5.1",
"rimraf": "^2.5.4"
}
},
"metro-config": {
- "version": "0.58.0",
- "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.58.0.tgz",
- "integrity": "sha512-4vgBliXwL56vjUlYplvGMVSNrJJpkHuLcD+O20trV3FvPxKg4ZsvuOcNSxqDSMU26FCtIEJ15ojcuCbRL7KY0w==",
+ "version": "0.59.0",
+ "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.59.0.tgz",
+ "integrity": "sha512-MDsknFG9vZ4Nb5VR6OUDmGHaWz6oZg/FtE3up1zVBKPVRTXE1Z+k7zypnPtMXjMh3WHs/Sy4+wU1xnceE/zdnA==",
"requires": {
"cosmiconfig": "^5.0.5",
- "jest-validate": "^24.7.0",
- "metro": "0.58.0",
- "metro-cache": "0.58.0",
- "metro-core": "0.58.0",
- "pretty-format": "^24.7.0"
+ "jest-validate": "^24.9.0",
+ "metro": "0.59.0",
+ "metro-cache": "0.59.0",
+ "metro-core": "0.59.0"
}
},
"metro-core": {
- "version": "0.58.0",
- "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.58.0.tgz",
- "integrity": "sha512-RzXUjGFmCLOyzUqcKDvr91AldGtIOxnzNZrWUIiG8uC3kerVLo0mQp4YH3+XVm6fMNiLMg6iER7HLqD+MbpUjQ==",
+ "version": "0.59.0",
+ "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.59.0.tgz",
+ "integrity": "sha512-kb5LKvV5r2pqMEzGyTid8ai2mIjW13NMduQ8oBmfha7/EPTATcTQ//s+bkhAs1toQD8vqVvjAb0cPNjWQEmcmQ==",
"requires": {
- "jest-haste-map": "^24.7.1",
+ "jest-haste-map": "^24.9.0",
"lodash.throttle": "^4.1.1",
- "metro-resolver": "0.58.0",
+ "metro-resolver": "0.59.0",
"wordwrap": "^1.0.0"
}
},
"metro-inspector-proxy": {
- "version": "0.58.0",
- "resolved": "https://registry.npmjs.org/metro-inspector-proxy/-/metro-inspector-proxy-0.58.0.tgz",
- "integrity": "sha512-oFqTyNTJdCdvcw1Ha6SKE7ITbSaoTbO4xpYownIoJR+WZ0ZfxbWpp225JkHuBJm9UcBAnG9c0CME924m3uBbaw==",
+ "version": "0.59.0",
+ "resolved": "https://registry.npmjs.org/metro-inspector-proxy/-/metro-inspector-proxy-0.59.0.tgz",
+ "integrity": "sha512-hPeAuQcofTOH0F+2GEZqWkvkVY1/skezSSlMocDQDaqds+Kw6JgdA7FlZXxnKmQ/jYrWUzff/pl8SUCDwuYthQ==",
"requires": {
"connect": "^3.6.5",
"debug": "^2.2.0",
- "rxjs": "^5.4.3",
"ws": "^1.1.5",
"yargs": "^14.2.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "cliui": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
+ "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
+ "requires": {
+ "string-width": "^3.1.0",
+ "strip-ansi": "^5.2.0",
+ "wrap-ansi": "^5.1.0"
+ }
+ },
+ "emoji-regex": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
+ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA=="
+ },
+ "find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "requires": {
+ "locate-path": "^3.0.0"
+ }
+ },
+ "locate-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "requires": {
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "requires": {
+ "p-limit": "^2.0.0"
+ }
+ },
+ "path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="
+ },
+ "string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "requires": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ }
+ },
+ "wrap-ansi": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
+ "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
+ "requires": {
+ "ansi-styles": "^3.2.0",
+ "string-width": "^3.0.0",
+ "strip-ansi": "^5.0.0"
+ }
+ },
+ "yargs": {
+ "version": "14.2.3",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-14.2.3.tgz",
+ "integrity": "sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg==",
+ "requires": {
+ "cliui": "^5.0.0",
+ "decamelize": "^1.2.0",
+ "find-up": "^3.0.0",
+ "get-caller-file": "^2.0.1",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^2.0.0",
+ "set-blocking": "^2.0.0",
+ "string-width": "^3.0.0",
+ "which-module": "^2.0.0",
+ "y18n": "^4.0.0",
+ "yargs-parser": "^15.0.1"
+ }
+ },
+ "yargs-parser": {
+ "version": "15.0.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.1.tgz",
+ "integrity": "sha512-0OAMV2mAZQrs3FkNpDQcBk1x5HXb8X4twADss4S0Iuk+2dGnLOE/fRHrsYm542GduMveyA77OF4wrNJuanRCWw==",
+ "requires": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ }
+ }
}
},
"metro-minify-uglify": {
- "version": "0.58.0",
- "resolved": "https://registry.npmjs.org/metro-minify-uglify/-/metro-minify-uglify-0.58.0.tgz",
- "integrity": "sha512-vRHsA7bCi7eCn3LXLm20EfY2NoWDyYOnmWaq/N8LB0OxL2L5DXRqMYAQK+prWGJ5S1yvVnDuuNVP+peQ9851TA==",
+ "version": "0.59.0",
+ "resolved": "https://registry.npmjs.org/metro-minify-uglify/-/metro-minify-uglify-0.59.0.tgz",
+ "integrity": "sha512-7IzVgCVWZMymgZ/quieg/9v5EQ8QmZWAgDc86Zp9j0Vy6tQTjUn6jlU+YAKW3mfMEjMr6iIUzCD8YklX78tFAw==",
"requires": {
"uglify-es": "^3.1.9"
}
@@ -9530,23 +9488,12 @@
"metro-babel-transformer": "0.59.0",
"metro-react-native-babel-preset": "0.59.0",
"metro-source-map": "0.59.0"
- },
- "dependencies": {
- "metro-babel-transformer": {
- "version": "0.59.0",
- "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.59.0.tgz",
- "integrity": "sha512-fdZJl8rs54GVFXokxRdD7ZrQ1TJjxWzOi/xSP25VR3E8tbm3nBZqS+/ylu643qSr/IueABR+jrlqAyACwGEf6w==",
- "requires": {
- "@babel/core": "^7.0.0",
- "metro-source-map": "0.59.0"
- }
- }
}
},
"metro-resolver": {
- "version": "0.58.0",
- "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.58.0.tgz",
- "integrity": "sha512-XFbAKvCHN2iWqKeiRARzEXn69eTDdJVJC7lu16S4dPQJ+Dy82dZBr5Es12iN+NmbJuFgrAuIHbpWrdnA9tOf6Q==",
+ "version": "0.59.0",
+ "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.59.0.tgz",
+ "integrity": "sha512-lbgiumnwoVosffEI96z0FGuq1ejTorHAj3QYUPmp5dFMfitRxLP7Wm/WP9l4ZZjIptxTExsJwuEff1SLRCPD9w==",
"requires": {
"absolute-path": "^0.0.0"
}
@@ -9565,50 +9512,29 @@
"vlq": "^1.0.0"
},
"dependencies": {
- "metro-symbolicate": {
- "version": "0.59.0",
- "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.59.0.tgz",
- "integrity": "sha512-asLaF2A7rndrToGFIknL13aiohwPJ95RKHf0NM3hP/nipiLDoMzXT6ZnQvBqDxkUKyP+51AI75DMtb+Wcyw4Bw==",
- "requires": {
- "invariant": "^2.2.4",
- "metro-source-map": "0.59.0",
- "source-map": "^0.5.6",
- "through2": "^2.0.1",
- "vlq": "^1.0.0"
- }
- },
- "ob1": {
- "version": "0.59.0",
- "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.59.0.tgz",
- "integrity": "sha512-opXMTxyWJ9m68ZglCxwo0OPRESIC/iGmKFPXEXzMZqsVIrgoRXOHmoMDkQzz4y3irVjbyPJRAh5pI9fd0MJTFQ=="
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
}
}
},
"metro-symbolicate": {
- "version": "0.58.0",
- "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.58.0.tgz",
- "integrity": "sha512-uIVxUQC1E26qOMj13dKROhwAa2FmZk5eR0NcBqej/aXmQhpr8LjJg2sondkoLKUp827Tf/Fm9+pS4icb5XiqCw==",
+ "version": "0.59.0",
+ "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.59.0.tgz",
+ "integrity": "sha512-asLaF2A7rndrToGFIknL13aiohwPJ95RKHf0NM3hP/nipiLDoMzXT6ZnQvBqDxkUKyP+51AI75DMtb+Wcyw4Bw==",
"requires": {
"invariant": "^2.2.4",
- "metro-source-map": "0.58.0",
+ "metro-source-map": "0.59.0",
"source-map": "^0.5.6",
"through2": "^2.0.1",
"vlq": "^1.0.0"
},
"dependencies": {
- "metro-source-map": {
- "version": "0.58.0",
- "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.58.0.tgz",
- "integrity": "sha512-yvN1YPmejmgiiS7T1aKBiiUTHPw2Vcm3r2TZ+DY92z/9PR4alysIywrCs/fTHs8rbDcKM5VfPCKGLpkBrbKeOw==",
- "requires": {
- "@babel/traverse": "^7.0.0",
- "@babel/types": "^7.0.0",
- "invariant": "^2.2.4",
- "metro-symbolicate": "0.58.0",
- "ob1": "0.58.0",
- "source-map": "^0.5.6",
- "vlq": "^1.0.0"
- }
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
}
}
},
@@ -9638,16 +9564,16 @@
"integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
},
"mime-db": {
- "version": "1.44.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz",
- "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg=="
+ "version": "1.47.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz",
+ "integrity": "sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw=="
},
"mime-types": {
- "version": "2.1.27",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz",
- "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==",
+ "version": "2.1.30",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.30.tgz",
+ "integrity": "sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==",
"requires": {
- "mime-db": "1.44.0"
+ "mime-db": "1.47.0"
}
},
"mimic-fn": {
@@ -9696,9 +9622,9 @@
}
},
"moment": {
- "version": "2.28.0",
- "resolved": "https://registry.npmjs.org/moment/-/moment-2.28.0.tgz",
- "integrity": "sha512-Z5KOjYmnHyd/ukynmFd/WwyXHd7L4J9vTI/nn5Ap9AVUgaAE15VvQ9MOGmJJygEUklupqIrFnor/tjTwRU+tQw=="
+ "version": "2.29.1",
+ "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz",
+ "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ=="
},
"ms": {
"version": "2.1.1",
@@ -9711,15 +9637,15 @@
"integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s="
},
"nan": {
- "version": "2.14.1",
- "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz",
- "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==",
+ "version": "2.14.2",
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz",
+ "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==",
"optional": true
},
"nanoid": {
- "version": "3.1.12",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.12.tgz",
- "integrity": "sha512-1qstj9z5+x491jfiC4Nelk+f8XBad7LN20PmyWINJEMRSf3wcAjAWysw1qaA8z6NSKe2sjq1hRSDpBH5paCb6A=="
+ "version": "3.1.22",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.22.tgz",
+ "integrity": "sha512-/2ZUaJX2ANuLtTvqTlgqBQNJoQO398KyJgZloL0PZkC0dpysjncRUPsFe3DUPzz/y3h+u7C46np8RMuvF3jsSQ=="
},
"nanomatch": {
"version": "1.2.13",
@@ -9755,6 +9681,11 @@
"resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
"integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ=="
},
+ "nocache": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/nocache/-/nocache-2.1.0.tgz",
+ "integrity": "sha512-0L9FvHG3nfnnmaEQPjT9xhfN4ISk0A8/2j4M37Np4mcDesJjHgEUfgPhdCyZuFI954tjokaIj/A3NdpFNdEh4Q=="
+ },
"node-fetch": {
"version": "2.6.1",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
@@ -9796,10 +9727,24 @@
}
}
},
+ "node-releases": {
+ "version": "1.1.71",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.71.tgz",
+ "integrity": "sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg=="
+ },
"node-stream-zip": {
- "version": "1.11.2",
- "resolved": "https://registry.npmjs.org/node-stream-zip/-/node-stream-zip-1.11.2.tgz",
- "integrity": "sha512-cowCX+OyzS3tN2i4BMMFxCr/pE6cQlEMTbVCugmos0TNEJQNtcG04tR41CY8lumO1I7F5GFiLaU4WavomJthaA=="
+ "version": "1.13.4",
+ "resolved": "https://registry.npmjs.org/node-stream-zip/-/node-stream-zip-1.13.4.tgz",
+ "integrity": "sha512-M2nPvnSWFFH+fgLIRZDqmhshmuzXcr+ce9BsHQX/30pXR+cEz/USMYmx9ZAFYy837W2QoDoNzhFtbZhfzaMk9A=="
+ },
+ "nopt": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz",
+ "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==",
+ "dev": true,
+ "requires": {
+ "abbrev": "1"
+ }
},
"normalize-package-data": {
"version": "2.5.0",
@@ -9855,9 +9800,9 @@
"dev": true
},
"ob1": {
- "version": "0.58.0",
- "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.58.0.tgz",
- "integrity": "sha512-uZP44cbowAfHafP1k4skpWItk5iHCoRevMfrnUvYCfyNNPPJd3rfDCyj0exklWi2gDXvjlj2ObsfiqP/bs/J7Q=="
+ "version": "0.59.0",
+ "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.59.0.tgz",
+ "integrity": "sha512-opXMTxyWJ9m68ZglCxwo0OPRESIC/iGmKFPXEXzMZqsVIrgoRXOHmoMDkQzz4y3irVjbyPJRAh5pI9fd0MJTFQ=="
},
"object-assign": {
"version": "4.1.1",
@@ -9893,9 +9838,9 @@
}
},
"object-inspect": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz",
- "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==",
+ "version": "1.10.2",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.2.tgz",
+ "integrity": "sha512-gz58rdPpadwztRrPjZE9DZLOABUpTGdcANUgOwBFO1C+HZZhePoP83M65WGDmbpwFYJSWqavbl4SgDn4k8RYTA==",
"dev": true
},
"object-keys": {
@@ -9912,36 +9857,37 @@
}
},
"object.assign": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
- "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==",
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz",
+ "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==",
"requires": {
- "define-properties": "^1.1.2",
- "function-bind": "^1.1.1",
- "has-symbols": "^1.0.0",
- "object-keys": "^1.0.11"
+ "call-bind": "^1.0.0",
+ "define-properties": "^1.1.3",
+ "has-symbols": "^1.0.1",
+ "object-keys": "^1.1.1"
}
},
"object.entries": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.2.tgz",
- "integrity": "sha512-BQdB9qKmb/HyNdMNWVr7O3+z5MUIx3aiegEIJqjMBbBf0YT9RRxTJSim4mzFqtyr7PDAHigq0N9dO0m0tRakQA==",
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.3.tgz",
+ "integrity": "sha512-ym7h7OZebNS96hn5IJeyUmaWhaSM4SVtAPPfNLQEI2MYWCO2egsITb9nab2+i/Pwibx+R0mtn+ltKJXRSeTMGg==",
"dev": true,
"requires": {
+ "call-bind": "^1.0.0",
"define-properties": "^1.1.3",
- "es-abstract": "^1.17.5",
+ "es-abstract": "^1.18.0-next.1",
"has": "^1.0.3"
}
},
"object.fromentries": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.2.tgz",
- "integrity": "sha512-r3ZiBH7MQppDJVLx6fhD618GKNG40CZYH9wgwdhKxBDDbQgjeWGGd4AtkZad84d291YxvWe7bJGuE65Anh0dxQ==",
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.4.tgz",
+ "integrity": "sha512-EsFBshs5RUUpQEY1D4q/m59kMfz4YJvxuNCJcv/jWwOJr34EaVnG11ZrZa0UHB3wnzV1wx8m58T4hQL8IuNXlQ==",
"dev": true,
"requires": {
+ "call-bind": "^1.0.2",
"define-properties": "^1.1.3",
- "es-abstract": "^1.17.0-next.1",
- "function-bind": "^1.1.1",
+ "es-abstract": "^1.18.0-next.2",
"has": "^1.0.3"
}
},
@@ -9954,14 +9900,14 @@
}
},
"object.values": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz",
- "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==",
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.3.tgz",
+ "integrity": "sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw==",
"dev": true,
"requires": {
+ "call-bind": "^1.0.2",
"define-properties": "^1.1.3",
- "es-abstract": "^1.17.0-next.1",
- "function-bind": "^1.1.1",
+ "es-abstract": "^1.18.0-next.2",
"has": "^1.0.3"
}
},
@@ -10078,9 +10024,9 @@
"integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="
},
"p-each-series": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.1.0.tgz",
- "integrity": "sha512-ZuRs1miPT4HrjFa+9fRfOFXxGJfORgelKV9f9nNOWw2gl6gVsRaVDOQP0+MI0G0wGKns1Yacsu0GjOFbTK0JFQ==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz",
+ "integrity": "sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==",
"dev": true
},
"p-finally": {
@@ -10104,6 +10050,22 @@
"p-limit": "^2.2.0"
}
},
+ "p-reflect": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/p-reflect/-/p-reflect-2.1.0.tgz",
+ "integrity": "sha512-paHV8NUz8zDHu5lhr/ngGWQiW067DK/+IbJ+RfZ4k+s8y4EKyYCz8pGYWjxCg35eHztpJAt+NUgvN4L+GCbPlg==",
+ "dev": true
+ },
+ "p-settle": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/p-settle/-/p-settle-3.1.0.tgz",
+ "integrity": "sha512-gkN3UDlyofG81IRhxLnonSIi8BBrwcPlKMJS6tcJRubofyekqQPMdB5LXPrmCkeu/m/YKx5PzkUVQLezda5/JQ==",
+ "dev": true,
+ "requires": {
+ "p-limit": "^2.2.0",
+ "p-reflect": "^2.0.0"
+ }
+ },
"p-try": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
@@ -10176,22 +10138,11 @@
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
"integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw=="
},
- "path-type": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
- "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
- "dev": true,
- "requires": {
- "pify": "^2.0.0"
- },
- "dependencies": {
- "pify": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
- "dev": true
- }
- }
+ "pbxproj-dom": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/pbxproj-dom/-/pbxproj-dom-1.2.0.tgz",
+ "integrity": "sha512-K2czrWqA68AR0q1UXz5EBi/zoxcljrkO4RSJX0jPnVn3iyE0HYnYOzaEEDYMpueczkT/Vtdm3SCc3NM+12kMaQ==",
+ "dev": true
},
"performance-now": {
"version": "2.1.0",
@@ -10200,9 +10151,9 @@
"dev": true
},
"picomatch": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",
- "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==",
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz",
+ "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==",
"dev": true
},
"pify": {
@@ -10259,13 +10210,13 @@
}
},
"plist": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.1.tgz",
- "integrity": "sha512-GpgvHHocGRyQm74b6FWEZZVRroHKE1I0/BTjAmySaohK+cUn+hZpbqXkc3KWgW3gQYkqcQej35FohcT0FRlkRQ==",
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.2.tgz",
+ "integrity": "sha512-MSrkwZBdQ6YapHy87/8hDU8MnIcyxBKjeF+McXnr5A9MtffPewTs7G3hlpodT5TacyfIyFTaJEhh3GGcmasTgQ==",
"requires": {
- "base64-js": "^1.2.3",
+ "base64-js": "^1.5.1",
"xmlbuilder": "^9.0.7",
- "xmldom": "0.1.x"
+ "xmldom": "^0.5.0"
}
},
"plugin-error": {
@@ -10363,18 +10314,13 @@
}
},
"@types/yargs": {
- "version": "13.0.10",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.10.tgz",
- "integrity": "sha512-MU10TSgzNABgdzKvQVW1nuuT+sgBMWeXNc3XOs5YXV5SDAK+PPja2eUuBNB9iqElu03xyEDqlnGw0jgl4nbqGQ==",
+ "version": "13.0.11",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.11.tgz",
+ "integrity": "sha512-NRqD6T4gktUrDi1o1wLH3EKC1o2caCr7/wR87ODcbVITQF106OM3sFN92ysZ++wqelOd1CTzatnOBRDYYG6wGQ==",
"requires": {
"@types/yargs-parser": "*"
}
},
- "ansi-regex": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
- "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="
- },
"ansi-styles": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
@@ -10404,14 +10350,20 @@
"asap": "~2.0.6"
}
},
+ "promise-polyfill": {
+ "version": "8.2.0",
+ "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-8.2.0.tgz",
+ "integrity": "sha512-k/TC0mIcPVF6yHhUvwAp7cvL6I2fFV7TzF1DuGPI8mBh4QQazf36xCKEHKTZKRysEoTQoQdKyP25J8MPJp7j5g==",
+ "dev": true
+ },
"prompts": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.3.2.tgz",
- "integrity": "sha512-Q06uKs2CkNYVID0VqwfAl9mipo99zkBv/n2JtWY89Yxa3ZabWSrs0e2KTudKVa3peLUvYXMefDqIleLPVUBZMA==",
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.1.tgz",
+ "integrity": "sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ==",
"dev": true,
"requires": {
"kleur": "^3.0.3",
- "sisteransi": "^1.0.4"
+ "sisteransi": "^1.0.5"
}
},
"prop-types": {
@@ -10424,6 +10376,12 @@
"react-is": "^16.8.1"
}
},
+ "proto-list": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz",
+ "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=",
+ "dev": true
+ },
"pseudomap": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
@@ -10457,11 +10415,12 @@
"dev": true
},
"query-string": {
- "version": "6.13.2",
- "resolved": "https://registry.npmjs.org/query-string/-/query-string-6.13.2.tgz",
- "integrity": "sha512-BMmDaUiLDFU1hlM38jTFcRt7HYiGP/zt1sRzrIWm5zpeEuO1rkbPS0ELI3uehoLuuhHDCS8u8lhFN3fEN4JzPQ==",
+ "version": "6.14.1",
+ "resolved": "https://registry.npmjs.org/query-string/-/query-string-6.14.1.tgz",
+ "integrity": "sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw==",
"requires": {
"decode-uri-component": "^0.2.0",
+ "filter-obj": "^1.1.0",
"split-on-first": "^1.0.0",
"strict-uri-encode": "^2.0.0"
}
@@ -10482,18 +10441,18 @@
}
},
"react-devtools-core": {
- "version": "4.8.2",
- "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-4.8.2.tgz",
- "integrity": "sha512-3Lv3nI8FPAwKqUco35oOlgf+4j8mgYNnIcDv2QTfxEqg2G69q17ZJ8ScU9aBnymS28YC1OW+kTxLmdIQeTN8yg==",
+ "version": "4.13.1",
+ "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-4.13.1.tgz",
+ "integrity": "sha512-+N7vZgjQWqkPe/q7yltXOi20U3Zy4WdXax9IcLCNB4nWsUxLrkVF0Mqbsr3h4m/j0dA4046QpJOnlwdWVQuiFw==",
"requires": {
"shell-quote": "^1.6.1",
"ws": "^7"
},
"dependencies": {
"ws": {
- "version": "7.3.1",
- "resolved": "https://registry.npmjs.org/ws/-/ws-7.3.1.tgz",
- "integrity": "sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA=="
+ "version": "7.4.5",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.5.tgz",
+ "integrity": "sha512-xzyu3hFvomRfXKH8vOFMU3OguG6oOvhXMo3xsGy3xWExqaM2dxBbVxuD99O7m3ZUFMvvscsZDqxfgMaRr/Nr1g=="
}
}
},
@@ -10537,14 +10496,15 @@
},
"dependencies": {
"@react-native-community/cli": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-4.12.0.tgz",
- "integrity": "sha512-zIrKxgHsQ5EUGjZ+oIW54+qY2XqVwDJbGV3hzsVsCFXleos2QUAQWskR0BG9zf06P1HT8kfwuDuHs/p1Ywe0rg==",
+ "version": "4.14.0",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-4.14.0.tgz",
+ "integrity": "sha512-EYJKBuxFxAu/iwNUfwDq41FjORpvSh1wvQ3qsHjzcR5uaGlWEOJrd3uNJDuKBAS0TVvbEesLF9NEXipjyRVr4Q==",
"requires": {
"@hapi/joi": "^15.0.3",
- "@react-native-community/cli-debugger-ui": "^4.9.0",
- "@react-native-community/cli-server-api": "^4.11.0",
- "@react-native-community/cli-tools": "^4.11.0",
+ "@react-native-community/cli-debugger-ui": "^4.13.1",
+ "@react-native-community/cli-hermes": "^4.13.0",
+ "@react-native-community/cli-server-api": "^4.13.1",
+ "@react-native-community/cli-tools": "^4.13.0",
"@react-native-community/cli-types": "^4.10.1",
"chalk": "^3.0.0",
"command-exists": "^1.2.8",
@@ -10560,11 +10520,11 @@
"inquirer": "^3.0.6",
"leven": "^3.1.0",
"lodash": "^4.17.15",
- "metro": "^0.58.0",
- "metro-config": "^0.58.0",
- "metro-core": "^0.58.0",
- "metro-react-native-babel-transformer": "^0.58.0",
- "metro-resolver": "^0.58.0",
+ "metro": "^0.59.0",
+ "metro-config": "^0.59.0",
+ "metro-core": "^0.59.0",
+ "metro-react-native-babel-transformer": "^0.59.0",
+ "metro-resolver": "^0.59.0",
"minimist": "^1.2.0",
"mkdirp": "^0.5.1",
"node-stream-zip": "^1.9.1",
@@ -10577,32 +10537,6 @@
"wcwidth": "^1.0.1"
},
"dependencies": {
- "metro-react-native-babel-transformer": {
- "version": "0.58.0",
- "resolved": "https://registry.npmjs.org/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.58.0.tgz",
- "integrity": "sha512-3A73+cRq1eUPQ8g+hPNGgMUMCGmtQjwqHfoG1DwinAoJ/kr4WOXWWbGZo0xHJNBe/zdHGl0uHcDCp2knPglTdQ==",
- "requires": {
- "@babel/core": "^7.0.0",
- "babel-preset-fbjs": "^3.3.0",
- "metro-babel-transformer": "0.58.0",
- "metro-react-native-babel-preset": "0.58.0",
- "metro-source-map": "0.58.0"
- }
- },
- "metro-source-map": {
- "version": "0.58.0",
- "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.58.0.tgz",
- "integrity": "sha512-yvN1YPmejmgiiS7T1aKBiiUTHPw2Vcm3r2TZ+DY92z/9PR4alysIywrCs/fTHs8rbDcKM5VfPCKGLpkBrbKeOw==",
- "requires": {
- "@babel/traverse": "^7.0.0",
- "@babel/types": "^7.0.0",
- "invariant": "^2.2.4",
- "metro-symbolicate": "0.58.0",
- "ob1": "0.58.0",
- "source-map": "^0.5.6",
- "vlq": "^1.0.0"
- }
- },
"pretty-format": {
"version": "25.5.0",
"resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz",
@@ -10616,47 +10550,10 @@
}
}
},
- "metro-react-native-babel-preset": {
- "version": "0.58.0",
- "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.58.0.tgz",
- "integrity": "sha512-MRriNW+fF6jxABsgPphocUY6mIhmCm8idcrQZ58fT3Iti2vCdtkaK32TyCGUNUptzhUe2/cbE57j4aC+eaodAA==",
- "requires": {
- "@babel/plugin-proposal-class-properties": "^7.0.0",
- "@babel/plugin-proposal-export-default-from": "^7.0.0",
- "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0",
- "@babel/plugin-proposal-object-rest-spread": "^7.0.0",
- "@babel/plugin-proposal-optional-catch-binding": "^7.0.0",
- "@babel/plugin-proposal-optional-chaining": "^7.0.0",
- "@babel/plugin-syntax-dynamic-import": "^7.0.0",
- "@babel/plugin-syntax-export-default-from": "^7.0.0",
- "@babel/plugin-syntax-flow": "^7.2.0",
- "@babel/plugin-transform-arrow-functions": "^7.0.0",
- "@babel/plugin-transform-block-scoping": "^7.0.0",
- "@babel/plugin-transform-classes": "^7.0.0",
- "@babel/plugin-transform-computed-properties": "^7.0.0",
- "@babel/plugin-transform-destructuring": "^7.0.0",
- "@babel/plugin-transform-exponentiation-operator": "^7.0.0",
- "@babel/plugin-transform-flow-strip-types": "^7.0.0",
- "@babel/plugin-transform-for-of": "^7.0.0",
- "@babel/plugin-transform-function-name": "^7.0.0",
- "@babel/plugin-transform-literals": "^7.0.0",
- "@babel/plugin-transform-modules-commonjs": "^7.0.0",
- "@babel/plugin-transform-object-assign": "^7.0.0",
- "@babel/plugin-transform-parameters": "^7.0.0",
- "@babel/plugin-transform-react-display-name": "^7.0.0",
- "@babel/plugin-transform-react-jsx": "^7.0.0",
- "@babel/plugin-transform-react-jsx-source": "^7.0.0",
- "@babel/plugin-transform-regenerator": "^7.0.0",
- "@babel/plugin-transform-runtime": "^7.0.0",
- "@babel/plugin-transform-shorthand-properties": "^7.0.0",
- "@babel/plugin-transform-spread": "^7.0.0",
- "@babel/plugin-transform-sticky-regex": "^7.0.0",
- "@babel/plugin-transform-template-literals": "^7.0.0",
- "@babel/plugin-transform-typescript": "^7.5.0",
- "@babel/plugin-transform-unicode-regex": "^7.0.0",
- "@babel/template": "^7.0.0",
- "react-refresh": "^0.4.0"
- }
+ "ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg=="
}
}
},
@@ -10746,9 +10643,9 @@
}
},
"react-native-iphone-x-helper": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/react-native-iphone-x-helper/-/react-native-iphone-x-helper-1.2.1.tgz",
- "integrity": "sha512-/VbpIEp8tSNNHIvstuA3Swx610whci1Zpc9mqNkqn14DkMbw+ORviln2u0XyHG1kPvvwTNGZY6QpeFwxYaSdbQ=="
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/react-native-iphone-x-helper/-/react-native-iphone-x-helper-1.3.1.tgz",
+ "integrity": "sha512-HOf0jzRnq2/aFUcdCJ9w9JGzN3gdEg0zFE4FyYlp4jtidqU03D5X7ZegGKfT1EWteR0gPBGp9ye5T5FvSWi9Yg=="
},
"react-native-keychain": {
"version": "4.0.5",
@@ -10865,82 +10762,64 @@
"lodash.template": "^4.5.0",
"prop-types": "^15.7.2",
"yargs": "^15.0.2"
+ }
+ },
+ "react-native-version": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/react-native-version/-/react-native-version-4.0.0.tgz",
+ "integrity": "sha512-OMoSbeDcrE5JnmeilkZXYsXnk98/I2hZe/z68NZ+nel3LkixJIOh1AnAxsqW1Cq20Nmyz3bV4PpEYxilKAy9xg==",
+ "dev": true,
+ "requires": {
+ "chalk": "^3.0.0",
+ "commander": "^4.0.0",
+ "common-tags": "^1.4.0",
+ "detect-indent": "^6.0.0",
+ "dottie": "^2.0.0",
+ "js-beautify": "^1.7.4",
+ "lodash.flattendeep": "^4.4.0",
+ "lodash.uniq": "^4.5.0",
+ "p-settle": "^3.0.0",
+ "pbxproj-dom": "^1.0.11",
+ "plist": "^3.0.1",
+ "resolve-from": "^5.0.0",
+ "semver": "^7.0.0"
},
"dependencies": {
- "cliui": {
+ "commander": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
+ "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
+ "dev": true
+ },
+ "lru-cache": {
"version": "6.0.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
- "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
"requires": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.0",
- "wrap-ansi": "^6.2.0"
+ "yallist": "^4.0.0"
}
},
- "emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
+ "resolve-from": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
+ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
+ "dev": true
},
- "is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
- },
- "string-width": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
- "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
+ "semver": {
+ "version": "7.3.5",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
+ "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
+ "dev": true,
"requires": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.0"
+ "lru-cache": "^6.0.0"
}
},
- "strip-ansi": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
- "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
- "requires": {
- "ansi-regex": "^5.0.0"
- }
- },
- "wrap-ansi": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
- "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
- "requires": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- }
- },
- "yargs": {
- "version": "15.4.1",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz",
- "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
- "requires": {
- "cliui": "^6.0.0",
- "decamelize": "^1.2.0",
- "find-up": "^4.1.0",
- "get-caller-file": "^2.0.1",
- "require-directory": "^2.1.1",
- "require-main-filename": "^2.0.0",
- "set-blocking": "^2.0.0",
- "string-width": "^4.2.0",
- "which-module": "^2.0.0",
- "y18n": "^4.0.0",
- "yargs-parser": "^18.1.2"
- }
- },
- "yargs-parser": {
- "version": "18.1.3",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
- "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
- "requires": {
- "camelcase": "^5.0.0",
- "decamelize": "^1.2.0"
- }
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
}
}
},
@@ -10995,73 +10874,52 @@
}
},
"read-pkg": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
- "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
+ "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==",
"dev": true,
"requires": {
- "load-json-file": "^2.0.0",
- "normalize-package-data": "^2.3.2",
- "path-type": "^2.0.0"
+ "@types/normalize-package-data": "^2.4.0",
+ "normalize-package-data": "^2.5.0",
+ "parse-json": "^5.0.0",
+ "type-fest": "^0.6.0"
+ },
+ "dependencies": {
+ "parse-json": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
+ "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "error-ex": "^1.3.1",
+ "json-parse-even-better-errors": "^2.3.0",
+ "lines-and-columns": "^1.1.6"
+ }
+ },
+ "type-fest": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz",
+ "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==",
+ "dev": true
+ }
}
},
"read-pkg-up": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
- "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz",
+ "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==",
"dev": true,
"requires": {
- "find-up": "^2.0.0",
- "read-pkg": "^2.0.0"
+ "find-up": "^4.1.0",
+ "read-pkg": "^5.2.0",
+ "type-fest": "^0.8.1"
},
"dependencies": {
- "find-up": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
- "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
- "dev": true,
- "requires": {
- "locate-path": "^2.0.0"
- }
- },
- "locate-path": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
- "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
- "dev": true,
- "requires": {
- "p-locate": "^2.0.0",
- "path-exists": "^3.0.0"
- }
- },
- "p-limit": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
- "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
- "dev": true,
- "requires": {
- "p-try": "^1.0.0"
- }
- },
- "p-locate": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
- "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
- "dev": true,
- "requires": {
- "p-limit": "^1.1.0"
- }
- },
- "p-try": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
- "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
- "dev": true
- },
- "path-exists": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "type-fest": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
+ "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
"dev": true
}
}
@@ -11087,9 +10945,9 @@
"dev": true
},
"regenerate": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.1.tgz",
- "integrity": "sha512-j2+C8+NtXQgEKWk49MMP5P/u2GhnahTtVkRIHr5R5lVRlbKvmQ+oS+A5aLKWp2ma5VkT8sh6v+v4hbH0YHR66A=="
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz",
+ "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A=="
},
"regenerate-unicode-properties": {
"version": "8.2.0",
@@ -11122,13 +10980,13 @@
}
},
"regexp.prototype.flags": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz",
- "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==",
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz",
+ "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==",
"dev": true,
"requires": {
- "define-properties": "^1.1.3",
- "es-abstract": "^1.17.0-next.1"
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3"
}
},
"regexpp": {
@@ -11138,9 +10996,9 @@
"dev": true
},
"regexpu-core": {
- "version": "4.7.0",
- "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz",
- "integrity": "sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ==",
+ "version": "4.7.1",
+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz",
+ "integrity": "sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==",
"requires": {
"regenerate": "^1.4.0",
"regenerate-unicode-properties": "^8.2.0",
@@ -11156,9 +11014,9 @@
"integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A=="
},
"regjsparser": {
- "version": "0.6.4",
- "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz",
- "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==",
+ "version": "0.6.9",
+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.9.tgz",
+ "integrity": "sha512-ZqbNRz1SNjLAiYuwY0zoXW8Ne675IX5q+YHioAGbCw4X96Mjl2+dcX9B2ciaeyYjViDAfvIjFpQjJgLttTEERQ==",
"requires": {
"jsesc": "~0.5.0"
},
@@ -11176,9 +11034,9 @@
"integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8="
},
"repeat-element": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz",
- "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g=="
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz",
+ "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ=="
},
"repeat-string": {
"version": "1.6.1",
@@ -11268,10 +11126,11 @@
"integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="
},
"resolve": {
- "version": "1.17.0",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz",
- "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==",
+ "version": "1.20.0",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz",
+ "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==",
"requires": {
+ "is-core-module": "^2.2.0",
"path-parse": "^1.0.6"
}
},
@@ -11348,11 +11207,12 @@
}
},
"rxjs": {
- "version": "5.5.12",
- "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.12.tgz",
- "integrity": "sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw==",
+ "version": "6.6.7",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz",
+ "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==",
+ "dev": true,
"requires": {
- "symbol-observable": "1.0.1"
+ "tslib": "^1.9.0"
}
},
"safe-buffer": {
@@ -11489,6 +11349,14 @@
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
"integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
},
+ "shallow-clone": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz",
+ "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==",
+ "requires": {
+ "kind-of": "^6.0.2"
+ }
+ },
"shebang-command": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
@@ -11521,24 +11389,31 @@
"optional": true
},
"side-channel": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.2.tgz",
- "integrity": "sha512-7rL9YlPHg7Ancea1S96Pa8/QWb4BtXL/TZvS6B8XFetGBeuhAsfmUspK6DokBeZ64+Kj9TCNRD/30pVz1BvQNA==",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
+ "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
"dev": true,
"requires": {
- "es-abstract": "^1.17.0-next.1",
- "object-inspect": "^1.7.0"
+ "call-bind": "^1.0.0",
+ "get-intrinsic": "^1.0.2",
+ "object-inspect": "^1.9.0"
}
},
+ "sigmund": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz",
+ "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=",
+ "dev": true
+ },
"signal-exit": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz",
"integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA=="
},
"simple-plist": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/simple-plist/-/simple-plist-1.1.0.tgz",
- "integrity": "sha512-2i5Tc0BYAqppM7jVzmNrI+aEUntPolIq4fDgji6WuNNn1D/qYdn2KwoLhZdzQkE04lu9L5tUoeJsjuJAvd+lFg==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/simple-plist/-/simple-plist-1.1.1.tgz",
+ "integrity": "sha512-pKMCVKvZbZTsqYR6RKgLfBHkh2cV89GXcA/0CVPje3sOiNOnXA8+rp/ciAMZ7JRaUdLzlEM6JFfUn+fS6Nt3hg==",
"requires": {
"bplist-creator": "0.0.8",
"bplist-parser": "0.2.0",
@@ -11560,9 +11435,9 @@
"dev": true
},
"slash": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
- "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A=="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="
},
"slice-ansi": {
"version": "2.1.0",
@@ -11584,11 +11459,6 @@
}
}
},
- "slide": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz",
- "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc="
- },
"snapdragon": {
"version": "0.8.2",
"resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
@@ -11619,6 +11489,11 @@
"requires": {
"is-extendable": "^0.1.0"
}
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
}
}
},
@@ -11687,9 +11562,9 @@
}
},
"source-map": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
- "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
+ "version": "0.7.3",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
+ "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ=="
},
"source-map-resolve": {
"version": "0.5.3",
@@ -11720,9 +11595,9 @@
}
},
"source-map-url": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz",
- "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM="
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz",
+ "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw=="
},
"spdx-correct": {
"version": "3.1.1",
@@ -11751,9 +11626,9 @@
}
},
"spdx-license-ids": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz",
- "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==",
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz",
+ "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==",
"dev": true
},
"split-on-first": {
@@ -11792,9 +11667,24 @@
}
},
"stack-utils": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.2.tgz",
- "integrity": "sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA=="
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.5.tgz",
+ "integrity": "sha512-KZiTzuV3CnSnSvgMRrARVCj+Ht7rMbauGDK0LdVFRGyenwdylpajAp4Q0i6SX8rEmbTpMMf6ryq2gb8pPq2WgQ==",
+ "requires": {
+ "escape-string-regexp": "^2.0.0"
+ },
+ "dependencies": {
+ "escape-string-regexp": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
+ "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w=="
+ }
+ }
+ },
+ "stackframe": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.2.0.tgz",
+ "integrity": "sha512-GrdeshiRmS1YLMYgzF16olf2jJ/IzxXY9lhKOskuVziubpTYcYqyOwYeJKzQkwy7uN0fYSsbsC4RQaXf9LCrYA=="
},
"stacktrace-parser": {
"version": "0.1.10",
@@ -11854,68 +11744,69 @@
"strip-ansi": "^5.2.0"
}
},
- "string-natural-compare": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/string-natural-compare/-/string-natural-compare-3.0.1.tgz",
- "integrity": "sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==",
- "dev": true
- },
"string-width": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
- "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz",
+ "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==",
"requires": {
- "is-fullwidth-code-point": "^2.0.0",
- "strip-ansi": "^4.0.0"
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.0"
},
"dependencies": {
"ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg=="
+ },
+ "is-fullwidth-code-point": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
- "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg="
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
},
"strip-ansi": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
- "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+ "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
"requires": {
- "ansi-regex": "^3.0.0"
+ "ansi-regex": "^5.0.0"
}
}
}
},
"string.prototype.matchall": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.2.tgz",
- "integrity": "sha512-N/jp6O5fMf9os0JU3E72Qhf590RSRZU/ungsL/qJUYVTNv7hTG0P/dbPjxINVN9jpscu3nzYwKESU3P3RY5tOg==",
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.4.tgz",
+ "integrity": "sha512-pknFIWVachNcyqRfaQSeu/FUfpvJTe4uskUSZ9Wc1RijsPuzbZ8TyYT8WCNnntCjUEqQ3vUHMAfVj2+wLAisPQ==",
"dev": true,
"requires": {
+ "call-bind": "^1.0.2",
"define-properties": "^1.1.3",
- "es-abstract": "^1.17.0",
+ "es-abstract": "^1.18.0-next.2",
"has-symbols": "^1.0.1",
- "internal-slot": "^1.0.2",
- "regexp.prototype.flags": "^1.3.0",
- "side-channel": "^1.0.2"
+ "internal-slot": "^1.0.3",
+ "regexp.prototype.flags": "^1.3.1",
+ "side-channel": "^1.0.4"
}
},
"string.prototype.trimend": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz",
- "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz",
+ "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==",
"dev": true,
"requires": {
- "define-properties": "^1.1.3",
- "es-abstract": "^1.17.5"
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3"
}
},
"string.prototype.trimstart": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz",
- "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz",
+ "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==",
"dev": true,
"requires": {
- "define-properties": "^1.1.3",
- "es-abstract": "^1.17.5"
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3"
}
},
"string_decoder": {
@@ -11932,19 +11823,12 @@
"integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
"requires": {
"ansi-regex": "^4.1.0"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
- "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="
- }
}
},
"strip-bom": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
+ "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==",
"dev": true
},
"strip-eof": {
@@ -11970,28 +11854,23 @@
"integrity": "sha512-Mu7R0g4ig9TUuGSxJavny5Rv0egCEtpZRNMrZaYS1vxkiIxGiGUwoezU3LazIQ+KE04hTrTfNPgxU5gzi7F5Pw=="
},
"supports-color": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
- "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"requires": {
"has-flag": "^4.0.0"
}
},
"supports-hyperlinks": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz",
- "integrity": "sha512-zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz",
+ "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==",
"dev": true,
"requires": {
"has-flag": "^4.0.0",
"supports-color": "^7.0.0"
}
},
- "symbol-observable": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz",
- "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ="
- },
"symbol-tree": {
"version": "3.2.4",
"resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
@@ -12010,6 +11889,12 @@
"string-width": "^3.0.0"
},
"dependencies": {
+ "emoji-regex": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
+ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
+ "dev": true
+ },
"string-width": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
@@ -12050,18 +11935,18 @@
},
"dependencies": {
"ansi-escapes": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz",
- "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==",
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
+ "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
"dev": true,
"requires": {
- "type-fest": "^0.11.0"
+ "type-fest": "^0.21.3"
}
},
"type-fest": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz",
- "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==",
+ "version": "0.21.3",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
+ "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
"dev": true
}
}
@@ -12188,38 +12073,15 @@
"punycode": "^2.1.0"
}
},
- "tsconfig-paths": {
- "version": "3.9.0",
- "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz",
- "integrity": "sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==",
- "dev": true,
- "requires": {
- "@types/json5": "^0.0.29",
- "json5": "^1.0.1",
- "minimist": "^1.2.0",
- "strip-bom": "^3.0.0"
- },
- "dependencies": {
- "json5": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
- "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
- "dev": true,
- "requires": {
- "minimist": "^1.2.0"
- }
- }
- }
- },
"tslib": {
- "version": "1.13.0",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz",
- "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q=="
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
},
"tsutils": {
- "version": "3.17.1",
- "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz",
- "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==",
+ "version": "3.21.0",
+ "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz",
+ "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==",
"dev": true,
"requires": {
"tslib": "^1.8.1"
@@ -12275,15 +12137,15 @@
}
},
"typescript": {
- "version": "3.9.7",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.7.tgz",
- "integrity": "sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw==",
+ "version": "3.8.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.8.3.tgz",
+ "integrity": "sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w==",
"dev": true
},
"ua-parser-js": {
- "version": "0.7.21",
- "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.21.tgz",
- "integrity": "sha512-+O8/qh/Qj8CgC6eYBVBykMrNtp5Gebn4dlGD/kKXVkJNDwyrAwSIqwz8CDf+tsAIWVycKcku6gIXJ0qwx/ZXaQ=="
+ "version": "0.7.28",
+ "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.28.tgz",
+ "integrity": "sha512-6Gurc1n//gjp9eQNXjD9O3M/sMwVtN5S8Lv9bvOYBfKfDNiIIhqiyi01vMBO45u4zkDE420w/e0se7Vs+sIg+g=="
},
"uglify-es": {
"version": "3.3.9",
@@ -12311,6 +12173,18 @@
"resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz",
"integrity": "sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po="
},
+ "unbox-primitive": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz",
+ "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==",
+ "dev": true,
+ "requires": {
+ "function-bind": "^1.1.1",
+ "has-bigints": "^1.0.1",
+ "has-symbols": "^1.0.2",
+ "which-boxed-primitive": "^1.0.2"
+ }
+ },
"unicode-canonical-property-names-ecmascript": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz",
@@ -12393,9 +12267,9 @@
}
},
"uri-js": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
- "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
"dev": true,
"requires": {
"punycode": "^2.1.0"
@@ -12412,9 +12286,9 @@
"integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ=="
},
"use-subscription": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/use-subscription/-/use-subscription-1.4.1.tgz",
- "integrity": "sha512-7+IIwDG/4JICrWHL/Q/ZPK5yozEnvRm6vHImu0LKwQlmWGKeiF7mbAenLlK/cTNXrTtXHU/SFASQHzB6+oSJMQ==",
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/use-subscription/-/use-subscription-1.5.1.tgz",
+ "integrity": "sha512-Xv2a1P/yReAjAbhylMfFplFKj9GssgTwN7RlcTxBujFQcloStWNDQdc4g4NRWH9xS4i/FDk04vQBptAXoF3VcA==",
"requires": {
"object-assign": "^4.1.1"
}
@@ -12435,9 +12309,9 @@
"integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="
},
"v8-compile-cache": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz",
- "integrity": "sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==",
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz",
+ "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==",
"dev": true
},
"v8-to-istanbul": {
@@ -12449,14 +12323,6 @@
"@types/istanbul-lib-coverage": "^2.0.1",
"convert-source-map": "^1.6.0",
"source-map": "^0.7.3"
- },
- "dependencies": {
- "source-map": {
- "version": "0.7.3",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
- "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==",
- "dev": true
- }
}
},
"validate-npm-package-license": {
@@ -12542,9 +12408,9 @@
}
},
"whatwg-fetch": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.4.0.tgz",
- "integrity": "sha512-rsum2ulz2iuZH08mJkT0Yi6JnKhwdw4oeyMjokgxd+mmqYSd9cPpOQf01TIWgjxG/U4+QR+AwKq6lSbXVxkyoQ=="
+ "version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz",
+ "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA=="
},
"whatwg-mimetype": {
"version": "2.3.0",
@@ -12571,6 +12437,19 @@
"isexe": "^2.0.0"
}
},
+ "which-boxed-primitive": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",
+ "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==",
+ "dev": true,
+ "requires": {
+ "is-bigint": "^1.0.1",
+ "is-boolean-object": "^1.1.0",
+ "is-number-object": "^1.0.4",
+ "is-string": "^1.0.5",
+ "is-symbol": "^1.0.3"
+ }
+ },
"which-module": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
@@ -12588,31 +12467,26 @@
"integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus="
},
"wrap-ansi": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
- "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
+ "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
"requires": {
- "ansi-styles": "^3.2.0",
- "string-width": "^3.0.0",
- "strip-ansi": "^5.0.0"
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
},
"dependencies": {
- "ansi-styles": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
- "requires": {
- "color-convert": "^1.9.0"
- }
+ "ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg=="
},
- "string-width": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
- "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "strip-ansi": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+ "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
"requires": {
- "emoji-regex": "^7.0.1",
- "is-fullwidth-code-point": "^2.0.0",
- "strip-ansi": "^5.1.0"
+ "ansi-regex": "^5.0.0"
}
}
}
@@ -12632,13 +12506,15 @@
}
},
"write-file-atomic": {
- "version": "1.3.4",
- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz",
- "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=",
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
+ "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
+ "dev": true,
"requires": {
- "graceful-fs": "^4.1.11",
"imurmurhash": "^0.1.4",
- "slide": "^1.1.5"
+ "is-typedarray": "^1.0.0",
+ "signal-exit": "^3.0.2",
+ "typedarray-to-buffer": "^3.1.5"
}
},
"ws": {
@@ -12690,9 +12566,9 @@
}
},
"xmldom": {
- "version": "0.1.31",
- "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.31.tgz",
- "integrity": "sha512-yS2uJflVQs6n+CyjHoaBmVSqIDevTAWrzMmjG1Gc7h1qQ7uVozNhEPJAwZXWyGQ/Gafo3fCwrcaokezLPupVyQ=="
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.5.0.tgz",
+ "integrity": "sha512-Foaj5FXVzgn7xFzsKeNIde9g6aFBxTPi37iwsno8QvApmtg7KYrr+OPyRHcJF7dud2a5nGRBXK3n0dL62Gf7PA=="
},
"xpipe": {
"version": "1.0.5",
@@ -12700,12 +12576,12 @@
"integrity": "sha1-jdi/Rfw/f1Xw4FS4ePQ6YmFNr98="
},
"xregexp": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-4.3.0.tgz",
- "integrity": "sha512-7jXDIFXh5yJ/orPn4SXjuVrWWoi4Cr8jfV1eHv9CixKSbU+jY4mxfrBwAuDvupPNKpMUY+FeIqsVw/JLT9+B8g==",
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-4.4.1.tgz",
+ "integrity": "sha512-2u9HwfadaJaY9zHtRRnH6BY6CQVNQKkYm3oLtC9gJXXzfsbACg5X5e4EZZGVAH+YIfa+QA9lsFQTTe3HURF3ag==",
"dev": true,
"requires": {
- "@babel/runtime-corejs3": "^7.8.3"
+ "@babel/runtime-corejs3": "^7.12.1"
}
},
"xtend": {
@@ -12714,9 +12590,9 @@
"integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
},
"y18n": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
- "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w=="
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
+ "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ=="
},
"yallist": {
"version": "2.1.2",
@@ -12724,69 +12600,27 @@
"integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI="
},
"yargs": {
- "version": "14.2.3",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-14.2.3.tgz",
- "integrity": "sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg==",
+ "version": "15.4.1",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz",
+ "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
"requires": {
- "cliui": "^5.0.0",
+ "cliui": "^6.0.0",
"decamelize": "^1.2.0",
- "find-up": "^3.0.0",
+ "find-up": "^4.1.0",
"get-caller-file": "^2.0.1",
"require-directory": "^2.1.1",
"require-main-filename": "^2.0.0",
"set-blocking": "^2.0.0",
- "string-width": "^3.0.0",
+ "string-width": "^4.2.0",
"which-module": "^2.0.0",
"y18n": "^4.0.0",
- "yargs-parser": "^15.0.1"
- },
- "dependencies": {
- "find-up": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
- "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
- "requires": {
- "locate-path": "^3.0.0"
- }
- },
- "locate-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
- "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
- "requires": {
- "p-locate": "^3.0.0",
- "path-exists": "^3.0.0"
- }
- },
- "p-locate": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
- "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
- "requires": {
- "p-limit": "^2.0.0"
- }
- },
- "path-exists": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="
- },
- "string-width": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
- "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
- "requires": {
- "emoji-regex": "^7.0.1",
- "is-fullwidth-code-point": "^2.0.0",
- "strip-ansi": "^5.1.0"
- }
- }
+ "yargs-parser": "^18.1.2"
}
},
"yargs-parser": {
- "version": "15.0.1",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.1.tgz",
- "integrity": "sha512-0OAMV2mAZQrs3FkNpDQcBk1x5HXb8X4twADss4S0Iuk+2dGnLOE/fRHrsYm542GduMveyA77OF4wrNJuanRCWw==",
+ "version": "18.1.3",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
+ "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
"requires": {
"camelcase": "^5.0.0",
"decamelize": "^1.2.0"
diff --git a/package.json b/package.json
index 8e6bc4d..16a762f 100644
--- a/package.json
+++ b/package.json
@@ -3,12 +3,113 @@
"version": "4.1.0",
"private": true,
"scripts": {
- "start": "react-native start",
"android": "react-native run-android",
"android-release": "react-native run-android --variant=release",
"ios": "react-native run-ios",
+ "start": "react-native start",
+ "start-no-cache": "react-native start --reset-cache",
"test": "jest",
- "lint": "eslint . --ext .js,.jsx,.ts,.tsx"
+ "typescript": "tsc --noEmit",
+ "lint": "eslint . --ext .js,.jsx,.ts,.tsx",
+ "lint-fix": "eslint . --ext .js,.jsx,.ts,.tsx --fix",
+ "full-check": "npm run typescript && npm run lint && npm run test",
+ "pod": "cd ios && pod install && cd ..",
+ "bundle": "npm run full-check && cd android && ./gradlew bundleRelease",
+ "postversion": "react-native-version"
+ },
+ "dependencies": {
+ "@nartc/react-native-barcode-mask": "1.2.0",
+ "@react-native-community/async-storage": "1.12.0",
+ "@react-native-community/masked-view": "0.1.10",
+ "@react-native-community/push-notification-ios": "1.5.0",
+ "@react-native-community/slider": "3.0.3",
+ "@react-navigation/bottom-tabs": "5.8.0",
+ "@react-navigation/native": "5.7.3",
+ "@react-navigation/stack": "5.9.0",
+ "i18n-js": "3.7.1",
+ "react": "16.13.1",
+ "react-native": "0.63.2",
+ "react-native-animatable": "1.3.3",
+ "react-native-app-intro-slider": "4.0.4",
+ "react-native-appearance": "0.3.4",
+ "react-native-autolink": "3.0.0",
+ "react-native-calendars": "1.403.0",
+ "react-native-camera": "3.40.0",
+ "react-native-collapsible": "1.5.3",
+ "react-native-gesture-handler": "1.8.0",
+ "react-native-image-zoom-viewer": "3.0.1",
+ "react-native-keychain": "4.0.5",
+ "react-native-linear-gradient": "2.5.6",
+ "react-native-localize": "1.4.1",
+ "react-native-modalize": "2.0.6",
+ "react-native-paper": "4.2.0",
+ "react-native-permissions": "2.2.1",
+ "react-native-push-notification": "5.1.1",
+ "react-native-reanimated": "1.13.0",
+ "react-native-render-html": "4.2.3",
+ "react-native-safe-area-context": "3.1.8",
+ "react-native-screens": "2.11.0",
+ "react-native-splash-screen": "3.2.0",
+ "react-native-vector-icons": "7.1.0",
+ "react-native-webview": "10.9.0",
+ "react-navigation-collapsible": "5.6.4",
+ "react-navigation-header-buttons": "5.0.2"
+ },
+ "devDependencies": {
+ "@babel/core": "7.11.0",
+ "@babel/runtime": "7.11.0",
+ "@react-native-community/eslint-config": "1.1.0",
+ "@types/i18n-js": "3.0.3",
+ "@types/jest": "25.2.3",
+ "@types/react-native": "0.63.2",
+ "@types/react-native-calendars": "1.20.10",
+ "@types/react-native-vector-icons": "6.4.6",
+ "@types/react-test-renderer": "16.9.2",
+ "@typescript-eslint/eslint-plugin": "2.27.0",
+ "@typescript-eslint/parser": "2.27.0",
+ "babel-jest": "25.1.0",
+ "eslint": "7.2.0",
+ "jest": "25.1.0",
+ "jest-extended": "0.11.5",
+ "jest-fetch-mock": "3.0.3",
+ "metro-react-native-babel-preset": "0.59.0",
+ "prettier": "2.0.5",
+ "react-native-version": "4.0.0",
+ "react-test-renderer": "16.13.1",
+ "typescript": "3.8.3"
+ },
+ "eslintConfig": {
+ "root": true,
+ "parser": "@typescript-eslint/parser",
+ "plugins": [
+ "@typescript-eslint"
+ ],
+ "extends": [
+ "@react-native-community",
+ "prettier"
+ ],
+ "rules": {
+ "prettier/prettier": [
+ "error",
+ {
+ "quoteProps": "consistent",
+ "singleQuote": true,
+ "tabWidth": 2,
+ "trailingComma": "es5",
+ "useTabs": false
+ }
+ ]
+ }
+ },
+ "eslintIgnore": [
+ "node_modules/"
+ ],
+ "prettier": {
+ "quoteProps": "consistent",
+ "singleQuote": true,
+ "tabWidth": 2,
+ "trailingComma": "es5",
+ "useTabs": false
},
"jest": {
"preset": "react-native",
@@ -23,71 +124,5 @@
"setupFilesAfterEnv": [
"jest-extended"
]
- },
- "dependencies": {
- "@nartc/react-native-barcode-mask": "^1.2.0",
- "@react-native-community/async-storage": "^1.12.0",
- "@react-native-community/masked-view": "^0.1.10",
- "@react-native-community/push-notification-ios": "^1.5.0",
- "@react-native-community/slider": "^3.0.3",
- "@react-navigation/bottom-tabs": "^5.8.0",
- "@react-navigation/native": "^5.7.3",
- "@react-navigation/stack": "^5.9.0",
- "i18n-js": "^3.7.1",
- "react": "16.13.1",
- "react-native": "0.63.2",
- "react-native-animatable": "^1.3.3",
- "react-native-app-intro-slider": "^4.0.4",
- "react-native-appearance": "^0.3.4",
- "react-native-autolink": "^3.0.0",
- "react-native-calendars": "^1.403.0",
- "react-native-camera": "^3.40.0",
- "react-native-collapsible": "^1.5.3",
- "react-native-gesture-handler": "^1.8.0",
- "react-native-image-zoom-viewer": "^3.0.1",
- "react-native-keychain": "4.0.5",
- "react-native-linear-gradient": "^2.5.6",
- "react-native-localize": "^1.4.1",
- "react-native-modalize": "^2.0.6",
- "react-native-paper": "^4.2.0",
- "react-native-permissions": "^2.2.1",
- "react-native-push-notification": "^5.1.1",
- "react-native-reanimated": "^1.13.0",
- "react-native-render-html": "^4.2.3",
- "react-native-safe-area-context": "^3.1.8",
- "react-native-screens": "^2.11.0",
- "react-native-splash-screen": "^3.2.0",
- "react-native-vector-icons": "^7.1.0",
- "react-native-webview": "^10.9.0",
- "react-navigation-collapsible": "^5.6.4",
- "react-navigation-header-buttons": "^5.0.2"
- },
- "devDependencies": {
- "@babel/core": "^7.11.0",
- "@babel/runtime": "^7.11.0",
- "@react-native-community/eslint-config": "^1.1.0",
- "@types/i18n-js": "^3.0.3",
- "@types/jest": "^25.2.3",
- "@types/react-native": "^0.63.2",
- "@types/react-native-calendars": "^1.20.10",
- "@types/react-native-vector-icons": "^6.4.6",
- "@types/react-test-renderer": "^16.9.2",
- "@typescript-eslint/eslint-plugin": "^2.27.0",
- "@typescript-eslint/parser": "^2.27.0",
- "babel-jest": "^25.1.0",
- "eslint": "^7.2.0",
- "eslint-config-airbnb": "^18.2.0",
- "eslint-config-prettier": "^6.11.0",
- "eslint-plugin-flowtype": "^5.2.0",
- "eslint-plugin-import": "^2.22.0",
- "eslint-plugin-jsx-a11y": "^6.3.1",
- "eslint-plugin-react": "^7.20.5",
- "eslint-plugin-react-hooks": "^4.0.0",
- "jest": "^25.1.0",
- "jest-extended": "^0.11.5",
- "metro-react-native-babel-preset": "^0.59.0",
- "prettier": "2.0.5",
- "react-test-renderer": "16.13.1",
- "typescript": "^3.8.3"
}
}
diff --git a/src/components/Amicale/AuthenticatedScreen.tsx b/src/components/Amicale/AuthenticatedScreen.tsx
index 68aa704..6683b80 100644
--- a/src/components/Amicale/AuthenticatedScreen.tsx
+++ b/src/components/Amicale/AuthenticatedScreen.tsx
@@ -18,9 +18,9 @@
*/
import * as React from 'react';
-import {StackNavigationProp} from '@react-navigation/stack';
+import { StackNavigationProp } from '@react-navigation/stack';
import ConnectionManager from '../../managers/ConnectionManager';
-import {ERROR_TYPE} from '../../utils/WebData';
+import { ERROR_TYPE } from '../../utils/WebData';
import ErrorView from '../Screens/ErrorView';
import BasicLoadingScreen from '../Screens/BasicLoadingScreen';
@@ -90,7 +90,7 @@ class AuthenticatedScreen extends React.Component, StateType> {
* @param error The error code received
*/
onRequestFinished(data: T | null, index: number, error?: number) {
- const {props} = this;
+ const { props } = this;
if (index >= 0 && index < props.requests.length) {
this.fetchedData[index] = data;
this.errors[index] = error != null ? error : ERROR_TYPE.SUCCESS;
@@ -101,7 +101,7 @@ class AuthenticatedScreen extends React.Component, StateType> {
}
if (this.allRequestsFinished()) {
- this.setState({loading: false});
+ this.setState({ loading: false });
}
}
@@ -113,7 +113,7 @@ class AuthenticatedScreen extends React.Component, StateType> {
* @return {number} The error code or ERROR_TYPE.SUCCESS if no error was found
*/
getError(): number {
- const {props} = this;
+ const { props } = this;
for (let i = 0; i < this.errors.length; i += 1) {
if (
this.errors[i] !== ERROR_TYPE.SUCCESS &&
@@ -131,7 +131,7 @@ class AuthenticatedScreen extends React.Component, StateType> {
* @return {*}
*/
getErrorRender() {
- const {props} = this;
+ const { props } = this;
const errorCode = this.getError();
let shouldOverride = false;
let override = null;
@@ -166,9 +166,9 @@ class AuthenticatedScreen extends React.Component, StateType> {
* If the user is logged in, send all requests.
*/
fetchData = () => {
- const {state, props} = this;
+ const { state, props } = this;
if (!state.loading) {
- this.setState({loading: true});
+ this.setState({ loading: true });
}
if (this.connectionManager.isLoggedIn()) {
@@ -176,11 +176,11 @@ class AuthenticatedScreen extends React.Component, StateType> {
this.connectionManager
.authenticatedRequest(
props.requests[i].link,
- props.requests[i].params,
+ props.requests[i].params
)
.then((response: T): void => this.onRequestFinished(response, i))
.catch((error: number): void =>
- this.onRequestFinished(null, i, error),
+ this.onRequestFinished(null, i, error)
);
}
} else {
@@ -213,7 +213,7 @@ class AuthenticatedScreen extends React.Component, StateType> {
}
render() {
- const {state, props} = this;
+ const { state, props } = this;
if (state.loading) {
return ;
}
diff --git a/src/components/Amicale/LogoutDialog.tsx b/src/components/Amicale/LogoutDialog.tsx
index 98205d3..6e060a3 100644
--- a/src/components/Amicale/LogoutDialog.tsx
+++ b/src/components/Amicale/LogoutDialog.tsx
@@ -21,7 +21,7 @@ import * as React from 'react';
import i18n from 'i18n-js';
import LoadingConfirmDialog from '../Dialogs/LoadingConfirmDialog';
import ConnectionManager from '../../managers/ConnectionManager';
-import {useNavigation} from '@react-navigation/native';
+import { useNavigation } from '@react-navigation/native';
type PropsType = {
visible: boolean;
@@ -37,7 +37,7 @@ function LogoutDialog(props: PropsType) {
.then(() => {
navigation.reset({
index: 0,
- routes: [{name: 'main'}],
+ routes: [{ name: 'main' }],
});
props.onDismiss();
resolve();
diff --git a/src/components/Amicale/Vote/VoteNotAvailable.tsx b/src/components/Amicale/Vote/VoteNotAvailable.tsx
index f4d60ac..df2be7c 100644
--- a/src/components/Amicale/Vote/VoteNotAvailable.tsx
+++ b/src/components/Amicale/Vote/VoteNotAvailable.tsx
@@ -18,24 +18,31 @@
*/
import React from 'react';
-import {View} from 'react-native';
-import {Headline, useTheme} from 'react-native-paper';
+import { StyleSheet, View } from 'react-native';
+import { Headline, useTheme } from 'react-native-paper';
import i18n from 'i18n-js';
+const styles = StyleSheet.create({
+ container: {
+ width: '100%',
+ marginTop: 10,
+ marginBottom: 10,
+ },
+ headline: {
+ textAlign: 'center',
+ },
+});
+
function VoteNotAvailable() {
const theme = useTheme();
return (
-
+
+ ...styles.headline,
+ }}
+ >
{i18n.t('screens.vote.noVote')}
diff --git a/src/components/Amicale/Vote/VoteResults.tsx b/src/components/Amicale/Vote/VoteResults.tsx
index f0e9396..42cdc44 100644
--- a/src/components/Amicale/Vote/VoteResults.tsx
+++ b/src/components/Amicale/Vote/VoteResults.tsx
@@ -26,9 +26,9 @@ import {
Subheading,
withTheme,
} from 'react-native-paper';
-import {FlatList, StyleSheet} from 'react-native';
+import { FlatList, StyleSheet } from 'react-native';
import i18n from 'i18n-js';
-import type {VoteTeamType} from '../../../screens/Amicale/VoteScreen';
+import type { VoteTeamType } from '../../../screens/Amicale/VoteScreen';
type PropsType = {
teams: Array;
@@ -40,8 +40,11 @@ const styles = StyleSheet.create({
card: {
margin: 10,
},
- icon: {
- backgroundColor: 'transparent',
+ itemCard: {
+ marginTop: 10,
+ },
+ item: {
+ padding: 0,
},
});
@@ -86,16 +89,18 @@ class VoteResults extends React.Component {
voteKeyExtractor = (item: VoteTeamType): string => item.id.toString();
- resultRenderItem = ({item}: {item: VoteTeamType}) => {
+ resultRenderItem = ({ item }: { item: VoteTeamType }) => {
const isWinner = this.winnerIds.indexOf(item.id) !== -1;
const isDraw = this.winnerIds.length > 1;
- const {props} = this;
+ const { props } = this;
+ const elevation = isWinner ? 5 : 3;
return (
+ ...styles.itemCard,
+ elevation: elevation,
+ }}
+ >
{
? props.theme.colors.primary
: props.theme.colors.text,
}}
- style={{padding: 0}}
+ style={styles.item}
/>
{
};
render() {
- const {props} = this;
+ const { props } = this;
return (
;
@@ -43,8 +43,8 @@ const styles = StyleSheet.create({
card: {
margin: 10,
},
- icon: {
- backgroundColor: 'transparent',
+ button: {
+ marginLeft: 'auto',
},
});
@@ -63,28 +63,28 @@ export default class VoteSelect extends React.PureComponent<
}
onVoteSelectionChange = (teamName: string): void =>
- this.setState({selectedTeam: teamName});
+ this.setState({ selectedTeam: teamName });
voteKeyExtractor = (item: VoteTeamType): string => item.id.toString();
- voteRenderItem = ({item}: {item: VoteTeamType}) => (
+ voteRenderItem = ({ item }: { item: VoteTeamType }) => (
);
- showVoteDialog = (): void => this.setState({voteDialogVisible: true});
+ showVoteDialog = (): void => this.setState({ voteDialogVisible: true });
- onVoteDialogDismiss = (): void => this.setState({voteDialogVisible: false});
+ onVoteDialogDismiss = (): void => this.setState({ voteDialogVisible: false });
onVoteDialogAccept = async (): Promise => {
return new Promise((resolve: () => void) => {
- const {state} = this;
+ const { state } = this;
ConnectionManager.getInstance()
.authenticatedRequest('elections/vote', {
team: parseInt(state.selectedTeam, 10),
})
.then(() => {
this.onVoteDialogDismiss();
- const {props} = this;
+ const { props } = this;
props.onVoteSuccess();
resolve();
})
@@ -103,13 +103,13 @@ export default class VoteSelect extends React.PureComponent<
});
onErrorDialogDismiss = () => {
- this.setState({errorDialogVisible: false});
- const {props} = this;
+ this.setState({ errorDialogVisible: false });
+ const { props } = this;
props.onVoteError();
};
render() {
- const {state, props} = this;
+ const { state, props } = this;
return (
@@ -123,7 +123,8 @@ export default class VoteSelect extends React.PureComponent<
+ value={state.selectedTeam}
+ >
+ style={styles.button}
+ disabled={state.selectedTeam === 'none'}
+ >
{i18n.t('screens.vote.select.sendButton')}
diff --git a/src/components/Amicale/Vote/VoteTease.tsx b/src/components/Amicale/Vote/VoteTease.tsx
index d52aa78..f256a81 100644
--- a/src/components/Amicale/Vote/VoteTease.tsx
+++ b/src/components/Amicale/Vote/VoteTease.tsx
@@ -18,8 +18,8 @@
*/
import * as React from 'react';
-import {Avatar, Card, Paragraph} from 'react-native-paper';
-import {StyleSheet} from 'react-native';
+import { Avatar, Card, Paragraph } from 'react-native-paper';
+import { StyleSheet } from 'react-native';
import i18n from 'i18n-js';
type PropsType = {
@@ -30,9 +30,6 @@ const styles = StyleSheet.create({
card: {
margin: 10,
},
- icon: {
- backgroundColor: 'transparent',
- },
});
export default function VoteTease(props: PropsType) {
diff --git a/src/components/Amicale/Vote/VoteWait.tsx b/src/components/Amicale/Vote/VoteWait.tsx
index b961fc2..55f059c 100644
--- a/src/components/Amicale/Vote/VoteWait.tsx
+++ b/src/components/Amicale/Vote/VoteWait.tsx
@@ -18,8 +18,8 @@
*/
import * as React from 'react';
-import {Avatar, Card, Paragraph, useTheme} from 'react-native-paper';
-import {StyleSheet} from 'react-native';
+import { Avatar, Card, Paragraph, useTheme } from 'react-native-paper';
+import { StyleSheet } from 'react-native';
import i18n from 'i18n-js';
type PropsType = {
@@ -33,14 +33,11 @@ const styles = StyleSheet.create({
card: {
margin: 10,
},
- icon: {
- backgroundColor: 'transparent',
- },
});
export default function VoteWait(props: PropsType) {
const theme = useTheme();
- const {startDate} = props;
+ const { startDate } = props;
return (
{props.justVoted ? (
-
+
{i18n.t('screens.vote.wait.messageSubmitted')}
) : null}
{props.hasVoted ? (
-
+
{i18n.t('screens.vote.wait.messageVoted')}
) : null}
diff --git a/src/components/Animations/AnimatedAccordion.tsx b/src/components/Animations/AnimatedAccordion.tsx
index c4daea1..17fef0e 100644
--- a/src/components/Animations/AnimatedAccordion.tsx
+++ b/src/components/Animations/AnimatedAccordion.tsx
@@ -18,8 +18,8 @@
*/
import * as React from 'react';
-import {View, ViewStyle} from 'react-native';
-import {List, withTheme} from 'react-native-paper';
+import { View, ViewStyle } from 'react-native';
+import { List, withTheme } from 'react-native-paper';
import Collapsible from 'react-native-collapsible';
import * as Animatable from 'react-native-animatable';
@@ -47,7 +47,7 @@ type StateType = {
const AnimatedListIcon = Animatable.createAnimatableComponent(List.Icon);
class AnimatedAccordion extends React.Component {
- chevronRef: {current: null | (typeof AnimatedListIcon & List.Icon)};
+ chevronRef: { current: null | (typeof AnimatedListIcon & List.Icon) };
chevronIcon: string;
@@ -68,7 +68,7 @@ class AnimatedAccordion extends React.Component {
}
shouldComponentUpdate(nextProps: PropsType): boolean {
- const {state, props} = this;
+ const { state, props } = this;
if (nextProps.opened != null && nextProps.opened !== props.opened) {
state.expanded = nextProps.opened;
}
@@ -76,7 +76,7 @@ class AnimatedAccordion extends React.Component {
}
setupChevron() {
- const {expanded} = this.state;
+ const { expanded } = this.state;
if (expanded) {
this.chevronIcon = 'chevron-up';
this.animStart = '180deg';
@@ -89,26 +89,26 @@ class AnimatedAccordion extends React.Component {
}
toggleAccordion = () => {
- const {expanded} = this.state;
+ const { expanded } = this.state;
if (this.chevronRef.current != null) {
this.chevronRef.current.transitionTo({
rotate: expanded ? this.animStart : this.animEnd,
});
- this.setState((prevState: StateType): {expanded: boolean} => ({
+ this.setState((prevState: StateType): { expanded: boolean } => ({
expanded: !prevState.expanded,
}));
}
};
render() {
- const {props, state} = this;
- const {colors} = props.theme;
+ const { props, state } = this;
+ const { colors } = props.theme;
return (
(
{
- ref: {current: null | (Animatable.View & View)};
+ ref: { current: null | (Animatable.View & View) };
hideHandler: AutoHideHandler;
- displayModeIcons: {[key: string]: string};
+ displayModeIcons: { [key: string]: string };
constructor(props: PropsType) {
super(props);
@@ -101,7 +107,7 @@ class AnimatedBottomBar extends React.Component {
}
shouldComponentUpdate(nextProps: PropsType, nextState: StateType): boolean {
- const {props, state} = this;
+ const { props, state } = this;
return (
nextProps.seekAttention !== props.seekAttention ||
nextState.currentMode !== state.currentMode
@@ -124,7 +130,7 @@ class AnimatedBottomBar extends React.Component {
};
changeDisplayMode = () => {
- const {props, state} = this;
+ const { props, state } = this;
let newMode;
switch (state.currentMode) {
case DISPLAY_MODES.DAY:
@@ -140,12 +146,12 @@ class AnimatedBottomBar extends React.Component {
newMode = DISPLAY_MODES.WEEK;
break;
}
- this.setState({currentMode: newMode});
+ this.setState({ currentMode: newMode });
props.onPress('changeView', newMode);
};
render() {
- const {props, state} = this;
+ const { props, state } = this;
const buttonColor = props.theme.colors.primary;
return (
{
style={{
...styles.container,
bottom: 10 + CustomTabBar.TAB_BAR_HEIGHT,
- }}>
+ }}
+ >
{
useNativeDriver
style={styles.fab}
icon="account-clock"
- onPress={(): void => props.navigation.navigate('group-select')}
+ onPress={() => props.navigation.navigate('group-select')}
/>
-
+
{
props.onPress('today')}
+ style={styles.icon}
+ onPress={() => props.onPress('today')}
/>
-
+
props.onPress('prev')}
+ onPress={() => props.onPress('prev')}
/>
props.onPress('next')}
+ style={styles.icon}
+ onPress={() => props.onPress('next')}
/>
diff --git a/src/components/Animations/AnimatedFAB.tsx b/src/components/Animations/AnimatedFAB.tsx
index 8b73550..63b3174 100644
--- a/src/components/Animations/AnimatedFAB.tsx
+++ b/src/components/Animations/AnimatedFAB.tsx
@@ -24,7 +24,7 @@ import {
StyleSheet,
View,
} from 'react-native';
-import {FAB} from 'react-native-paper';
+import { FAB } from 'react-native-paper';
import * as Animatable from 'react-native-animatable';
import AutoHideHandler from '../../utils/AutoHideHandler';
import CustomTabBar from '../Tabbar/CustomTabBar';
@@ -43,7 +43,7 @@ const styles = StyleSheet.create({
});
export default class AnimatedFAB extends React.Component {
- ref: {current: null | (Animatable.View & View)};
+ ref: { current: null | (Animatable.View & View) };
hideHandler: AutoHideHandler;
@@ -75,7 +75,7 @@ export default class AnimatedFAB extends React.Component {
};
render() {
- const {props} = this;
+ const { props } = this;
return (
{
style={{
...styles.fab,
bottom: CustomTabBar.TAB_BAR_HEIGHT,
- }}>
+ }}
+ >
);
diff --git a/src/components/Collapsible/CollapsibleComponent.tsx b/src/components/Collapsible/CollapsibleComponent.tsx
index 2039854..f34d55a 100644
--- a/src/components/Collapsible/CollapsibleComponent.tsx
+++ b/src/components/Collapsible/CollapsibleComponent.tsx
@@ -18,19 +18,29 @@
*/
import * as React from 'react';
-import {useCollapsibleStack} from 'react-navigation-collapsible';
+import { useCollapsibleStack } from 'react-navigation-collapsible';
import CustomTabBar from '../Tabbar/CustomTabBar';
-import {NativeScrollEvent, NativeSyntheticEvent} from 'react-native';
+import {
+ NativeScrollEvent,
+ NativeSyntheticEvent,
+ StyleSheet,
+} from 'react-native';
-export interface CollapsibleComponentPropsType {
+export type CollapsibleComponentPropsType = {
children?: React.ReactNode;
hasTab?: boolean;
onScroll?: (event: NativeSyntheticEvent) => void;
-}
+};
-interface PropsType extends CollapsibleComponentPropsType {
+type PropsType = CollapsibleComponentPropsType & {
component: React.ComponentType;
-}
+};
+
+const styles = StyleSheet.create({
+ main: {
+ minHeight: '100%',
+ },
+});
function CollapsibleComponent(props: PropsType) {
const onScroll = (event: NativeSyntheticEvent) => {
@@ -44,17 +54,18 @@ function CollapsibleComponent(props: PropsType) {
scrollIndicatorInsetTop,
onScrollWithListener,
} = useCollapsibleStack();
-
+ const paddingBottom = props.hasTab ? CustomTabBar.TAB_BAR_HEIGHT : 0;
return (
+ scrollIndicatorInsets={{ top: scrollIndicatorInsetTop }}
+ >
{props.children}
);
diff --git a/src/components/Collapsible/CollapsibleFlatList.tsx b/src/components/Collapsible/CollapsibleFlatList.tsx
index e8c1ce6..03936f9 100644
--- a/src/components/Collapsible/CollapsibleFlatList.tsx
+++ b/src/components/Collapsible/CollapsibleFlatList.tsx
@@ -18,8 +18,8 @@
*/
import * as React from 'react';
-import {Animated, FlatListProps} from 'react-native';
-import type {CollapsibleComponentPropsType} from './CollapsibleComponent';
+import { Animated, FlatListProps } from 'react-native';
+import type { CollapsibleComponentPropsType } from './CollapsibleComponent';
import CollapsibleComponent from './CollapsibleComponent';
type Props = FlatListProps & CollapsibleComponentPropsType;
diff --git a/src/components/Collapsible/CollapsibleScrollView.tsx b/src/components/Collapsible/CollapsibleScrollView.tsx
index 3d8cdd7..effa0f7 100644
--- a/src/components/Collapsible/CollapsibleScrollView.tsx
+++ b/src/components/Collapsible/CollapsibleScrollView.tsx
@@ -18,8 +18,8 @@
*/
import * as React from 'react';
-import {Animated, ScrollViewProps} from 'react-native';
-import type {CollapsibleComponentPropsType} from './CollapsibleComponent';
+import { Animated, ScrollViewProps } from 'react-native';
+import type { CollapsibleComponentPropsType } from './CollapsibleComponent';
import CollapsibleComponent from './CollapsibleComponent';
type Props = ScrollViewProps & CollapsibleComponentPropsType;
diff --git a/src/components/Collapsible/CollapsibleSectionList.tsx b/src/components/Collapsible/CollapsibleSectionList.tsx
index ed0a337..6e4dc21 100644
--- a/src/components/Collapsible/CollapsibleSectionList.tsx
+++ b/src/components/Collapsible/CollapsibleSectionList.tsx
@@ -18,8 +18,8 @@
*/
import * as React from 'react';
-import {Animated, SectionListProps} from 'react-native';
-import type {CollapsibleComponentPropsType} from './CollapsibleComponent';
+import { Animated, SectionListProps } from 'react-native';
+import type { CollapsibleComponentPropsType } from './CollapsibleComponent';
import CollapsibleComponent from './CollapsibleComponent';
type Props = SectionListProps & CollapsibleComponentPropsType;
diff --git a/src/components/Dialogs/AlertDialog.tsx b/src/components/Dialogs/AlertDialog.tsx
index 642bc9b..9962a39 100644
--- a/src/components/Dialogs/AlertDialog.tsx
+++ b/src/components/Dialogs/AlertDialog.tsx
@@ -18,7 +18,7 @@
*/
import * as React from 'react';
-import {Button, Dialog, Paragraph, Portal} from 'react-native-paper';
+import { Button, Dialog, Paragraph, Portal } from 'react-native-paper';
import i18n from 'i18n-js';
type PropsType = {
diff --git a/src/components/Dialogs/ErrorDialog.tsx b/src/components/Dialogs/ErrorDialog.tsx
index b726d56..78b9ac5 100644
--- a/src/components/Dialogs/ErrorDialog.tsx
+++ b/src/components/Dialogs/ErrorDialog.tsx
@@ -19,7 +19,7 @@
import * as React from 'react';
import i18n from 'i18n-js';
-import {ERROR_TYPE} from '../../utils/WebData';
+import { ERROR_TYPE } from '../../utils/WebData';
import AlertDialog from './AlertDialog';
type PropsType = {
diff --git a/src/components/Dialogs/LoadingConfirmDialog.tsx b/src/components/Dialogs/LoadingConfirmDialog.tsx
index 914ff13..4ba512a 100644
--- a/src/components/Dialogs/LoadingConfirmDialog.tsx
+++ b/src/components/Dialogs/LoadingConfirmDialog.tsx
@@ -26,6 +26,7 @@ import {
Portal,
} from 'react-native-paper';
import i18n from 'i18n-js';
+import { StyleSheet } from 'react-native';
type PropsType = {
visible: boolean;
@@ -41,6 +42,12 @@ type StateType = {
loading: boolean;
};
+const styles = StyleSheet.create({
+ button: {
+ marginRight: 10,
+ },
+});
+
export default class LoadingConfirmDialog extends React.PureComponent<
PropsType,
StateType
@@ -70,8 +77,8 @@ export default class LoadingConfirmDialog extends React.PureComponent<
* Set the dialog into loading state and closes it when operation finishes
*/
onClickAccept = () => {
- const {props} = this;
- this.setState({loading: true});
+ const { props } = this;
+ this.setState({ loading: true });
if (props.onAccept != null) {
props.onAccept().then(this.hideLoading);
}
@@ -83,21 +90,21 @@ export default class LoadingConfirmDialog extends React.PureComponent<
*/
hideLoading = (): NodeJS.Timeout =>
setTimeout(() => {
- this.setState({loading: false});
+ this.setState({ loading: false });
}, 200);
/**
* Hide the dialog if it is not loading
*/
onDismiss = () => {
- const {state, props} = this;
+ const { state, props } = this;
if (!state.loading && props.onDismiss != null) {
props.onDismiss();
}
};
render() {
- const {state, props} = this;
+ const { state, props } = this;
return (
);
diff --git a/src/components/Home/EventDashboardItem.tsx b/src/components/Home/EventDashboardItem.tsx
index bd9a780..f8ef691 100644
--- a/src/components/Home/EventDashboardItem.tsx
+++ b/src/components/Home/EventDashboardItem.tsx
@@ -25,8 +25,9 @@ import {
TouchableRipple,
useTheme,
} from 'react-native-paper';
-import {StyleSheet, View} from 'react-native';
+import { StyleSheet, View } from 'react-native';
import i18n from 'i18n-js';
+import GENERAL_STYLES from '../../constants/Styles';
type PropsType = {
eventNumber: number;
@@ -45,6 +46,9 @@ const styles = StyleSheet.create({
avatar: {
backgroundColor: 'transparent',
},
+ text: {
+ fontWeight: 'bold',
+ },
});
/**
@@ -61,7 +65,7 @@ function EventDashBoardItem(props: PropsType) {
if (isAvailable) {
subtitle = (
- {props.eventNumber}
+ {props.eventNumber}
{props.eventNumber > 1
? i18n.t('screens.home.dashboard.todayEventsSubtitlePlural')
@@ -74,13 +78,13 @@ function EventDashBoardItem(props: PropsType) {
}
return (
-
+
(
-
+ }}
+ >
+
(
-
- )}
- style={{height: titleHeight}}
+ left={() => }
+ style={{ height: titleHeight }}
/>
{image != null ? (
) : null}
@@ -110,12 +117,12 @@ function FeedItem(props: PropsType) {
text={item.message}
hashtag="facebook"
component={Text}
- style={{height: textHeight}}
+ style={{ height: textHeight }}
/>
) : null}
-
-
+
+
{i18n.t('screens.home.dashboard.seeMore')}
diff --git a/src/components/Home/PreviewEventDashboardItem.tsx b/src/components/Home/PreviewEventDashboardItem.tsx
index ae79354..ce9492c 100644
--- a/src/components/Home/PreviewEventDashboardItem.tsx
+++ b/src/components/Home/PreviewEventDashboardItem.tsx
@@ -18,12 +18,13 @@
*/
import * as React from 'react';
-import {StyleSheet, View} from 'react-native';
+import { StyleSheet, View } from 'react-native';
import i18n from 'i18n-js';
-import {Avatar, Button, Card, TouchableRipple} from 'react-native-paper';
-import {getTimeOnlyString, isDescriptionEmpty} from '../../utils/Planning';
+import { Avatar, Button, Card, TouchableRipple } from 'react-native-paper';
+import { getTimeOnlyString, isDescriptionEmpty } from '../../utils/Planning';
import CustomHTML from '../Overrides/CustomHTML';
-import type {PlanningEventType} from '../../utils/Planning';
+import type { PlanningEventType } from '../../utils/Planning';
+import GENERAL_STYLES from '../../constants/Styles';
type PropsType = {
event?: PlanningEventType | null;
@@ -52,19 +53,26 @@ const styles = StyleSheet.create({
* Component used to display an event preview if an event is available
*/
function PreviewEventDashboardItem(props: PropsType) {
- const {event} = props;
+ const { event } = props;
const isEmpty = event == null ? true : isDescriptionEmpty(event.description);
if (event != null) {
const logo = event.logo;
const getImage = logo
? () => (
-
+
)
: () => null;
return (
-
+
+ }}
+ >
+ }}
+ >
{image ? (
) : null}
{props.badgeCount != null && props.badgeCount > 0 ? (
@@ -66,18 +80,16 @@ function SmallDashboardItem(props: PropsType) {
animation="zoomIn"
duration={300}
useNativeDriver
- style={{
- position: 'absolute',
- top: 0,
- right: 0,
- }}>
+ style={styles.badgeContainer}
+ >
+ ...styles.badge,
+ }}
+ >
{props.badgeCount}
diff --git a/src/components/Intro/IconIntro.tsx b/src/components/Intro/IconIntro.tsx
index 6017024..9eacced 100644
--- a/src/components/Intro/IconIntro.tsx
+++ b/src/components/Intro/IconIntro.tsx
@@ -18,9 +18,10 @@
*/
import * as React from 'react';
-import {StyleSheet, View} from 'react-native';
+import { StyleSheet, View } from 'react-native';
import * as Animatable from 'react-native-animatable';
import MaterialCommunityIcons from 'react-native-vector-icons/MaterialCommunityIcons';
+import GENERAL_STYLES from '../../constants/Styles';
type PropsType = {
icon: string;
@@ -37,7 +38,7 @@ const styles = StyleSheet.create({
function IntroIcon(props: PropsType) {
return (
-
+
diff --git a/src/components/Intro/MascotIntroEnd.tsx b/src/components/Intro/MascotIntroEnd.tsx
index ffffa0b..7b1543a 100644
--- a/src/components/Intro/MascotIntroEnd.tsx
+++ b/src/components/Intro/MascotIntroEnd.tsx
@@ -18,25 +18,23 @@
*/
import * as React from 'react';
-import {StyleSheet, View} from 'react-native';
-import Mascot, {MASCOT_STYLE} from '../Mascot/Mascot';
+import { StyleSheet, View } from 'react-native';
+import GENERAL_STYLES from '../../constants/Styles';
+import Mascot, { MASCOT_STYLE } from '../Mascot/Mascot';
const styles = StyleSheet.create({
center: {
- marginTop: 'auto',
- marginBottom: 'auto',
- marginRight: 'auto',
- marginLeft: 'auto',
+ ...GENERAL_STYLES.center,
+ width: '80%',
},
});
function MascotIntroEnd() {
return (
-
+
+
+ style={styles.text}
+ >
PABLO
+ style={styles.container}
+ >
;
@@ -45,8 +45,8 @@ export default class CardList extends React.Component {
this.horizontalItemSize = this.windowWidth / 4; // So that we can fit 3 items, and a part of the 4th => user knows he can scroll
}
- getRenderItem = ({item}: {item: ServiceItemType}) => {
- const {props} = this;
+ getRenderItem = ({ item }: { item: ServiceItemType }) => {
+ const { props } = this;
if (props.isHorizontal) {
return (
{
keyExtractor = (item: ServiceItemType): string => item.key;
render() {
- const {props} = this;
+ const { props } = this;
let containerStyle = {};
if (props.isHorizontal) {
containerStyle = {
diff --git a/src/components/Lists/CardList/CardListItem.tsx b/src/components/Lists/CardList/CardListItem.tsx
index ce0e9f6..155d868 100644
--- a/src/components/Lists/CardList/CardListItem.tsx
+++ b/src/components/Lists/CardList/CardListItem.tsx
@@ -18,29 +18,36 @@
*/
import * as React from 'react';
-import {Caption, Card, Paragraph, TouchableRipple} from 'react-native-paper';
-import {View} from 'react-native';
-import type {ServiceItemType} from '../../../managers/ServicesManager';
+import { Caption, Card, Paragraph, TouchableRipple } from 'react-native-paper';
+import { StyleSheet, View } from 'react-native';
+import type { ServiceItemType } from '../../../managers/ServicesManager';
+import GENERAL_STYLES from '../../../constants/Styles';
type PropsType = {
item: ServiceItemType;
};
+const styles = StyleSheet.create({
+ card: {
+ width: '40%',
+ margin: 5,
+ marginLeft: 'auto',
+ marginRight: 'auto',
+ },
+ cover: {
+ height: 80,
+ },
+});
+
function CardListItem(props: PropsType) {
- const {item} = props;
+ const { item } = props;
const source =
- typeof item.image === 'number' ? item.image : {uri: item.image};
+ typeof item.image === 'number' ? item.image : { uri: item.image };
return (
-
-
+
+
-
+
{item.title}
{item.subtitle}
diff --git a/src/components/Lists/CardList/ImageListItem.tsx b/src/components/Lists/CardList/ImageListItem.tsx
index 73dd698..993b24c 100644
--- a/src/components/Lists/CardList/ImageListItem.tsx
+++ b/src/components/Lists/CardList/ImageListItem.tsx
@@ -18,46 +18,50 @@
*/
import * as React from 'react';
-import {Text, TouchableRipple} from 'react-native-paper';
-import {Image, View} from 'react-native';
-import type {ServiceItemType} from '../../../managers/ServicesManager';
+import { Text, TouchableRipple } from 'react-native-paper';
+import { Image, StyleSheet, View } from 'react-native';
+import type { ServiceItemType } from '../../../managers/ServicesManager';
+import GENERAL_STYLES from '../../../constants/Styles';
type PropsType = {
item: ServiceItemType;
width: number;
};
+const styles = StyleSheet.create({
+ ripple: {
+ margin: 5,
+ },
+ text: {
+ ...GENERAL_STYLES.centerHorizontal,
+ marginTop: 5,
+ textAlign: 'center',
+ },
+});
+
function ImageListItem(props: PropsType) {
- const {item} = props;
+ const { item } = props;
const source =
- typeof item.image === 'number' ? item.image : {uri: item.image};
+ typeof item.image === 'number' ? item.image : { uri: item.image };
return (
+ onPress={item.onPress}
+ >
-
- {item.title}
-
+ {item.title}
);
diff --git a/src/components/Lists/Clubs/ClubListHeader.tsx b/src/components/Lists/Clubs/ClubListHeader.tsx
index d60030c..f7cec65 100644
--- a/src/components/Lists/Clubs/ClubListHeader.tsx
+++ b/src/components/Lists/Clubs/ClubListHeader.tsx
@@ -18,12 +18,13 @@
*/
import * as React from 'react';
-import {Card, Chip, List, Text} from 'react-native-paper';
-import {StyleSheet, View} from 'react-native';
+import { Card, Chip, List, Text } from 'react-native-paper';
+import { StyleSheet, View } from 'react-native';
import i18n from 'i18n-js';
import AnimatedAccordion from '../../Animations/AnimatedAccordion';
-import {isItemInCategoryFilter} from '../../../utils/Search';
-import type {ClubCategoryType} from '../../../screens/Amicale/Clubs/ClubListScreen';
+import { isItemInCategoryFilter } from '../../../utils/Search';
+import type { ClubCategoryType } from '../../../screens/Amicale/Clubs/ClubListScreen';
+import GENERAL_STYLES from '../../../constants/Styles';
type PropsType = {
categories: Array;
@@ -39,8 +40,7 @@ const styles = StyleSheet.create({
paddingLeft: 0,
marginTop: 5,
marginBottom: 10,
- marginLeft: 'auto',
- marginRight: 'auto',
+ ...GENERAL_STYLES.centerHorizontal,
},
chipContainer: {
justifyContent: 'space-around',
@@ -49,6 +49,11 @@ const styles = StyleSheet.create({
paddingLeft: 0,
marginBottom: 5,
},
+ chip: {
+ marginRight: 5,
+ marginLeft: 5,
+ marginBottom: 5,
+ },
});
function ClubListHeader(props: PropsType) {
@@ -62,8 +67,9 @@ function ClubListHeader(props: PropsType) {
])}
mode="outlined"
onPress={onPress}
- style={{marginRight: 5, marginLeft: 5, marginBottom: 5}}
- key={key}>
+ style={styles.chip}
+ key={key}
+ >
{category.name}
);
@@ -88,7 +94,8 @@ function ClubListHeader(props: PropsType) {
icon="star"
/>
)}
- opened>
+ opened
+ >
{i18n.t('screens.clubs.categoriesFilterMessage')}
diff --git a/src/components/Lists/Clubs/ClubListItem.tsx b/src/components/Lists/Clubs/ClubListItem.tsx
index 87bae5b..35ac00b 100644
--- a/src/components/Lists/Clubs/ClubListItem.tsx
+++ b/src/components/Lists/Clubs/ClubListItem.tsx
@@ -18,12 +18,13 @@
*/
import * as React from 'react';
-import {Avatar, Chip, List, withTheme} from 'react-native-paper';
-import {View} from 'react-native';
+import { Avatar, Chip, List, withTheme } from 'react-native-paper';
+import { StyleSheet, View } from 'react-native';
import type {
ClubCategoryType,
ClubType,
} from '../../../screens/Amicale/Clubs/ClubListScreen';
+import GENERAL_STYLES from '../../../constants/Styles';
type PropsType = {
onPress: () => void;
@@ -33,6 +34,28 @@ type PropsType = {
theme: ReactNativePaper.Theme;
};
+const styles = StyleSheet.create({
+ chip: {
+ marginRight: 5,
+ marginBottom: 5,
+ },
+ chipContainer: {
+ flexDirection: 'row',
+ },
+ avatar: {
+ backgroundColor: 'transparent',
+ marginLeft: 10,
+ marginRight: 10,
+ },
+ icon: {
+ ...GENERAL_STYLES.centerVertical,
+ backgroundColor: 'transparent',
+ },
+ item: {
+ justifyContent: 'center',
+ },
+});
+
class ClubListItem extends React.Component {
hasManagers: boolean;
@@ -46,30 +69,28 @@ class ClubListItem extends React.Component {
}
getCategoriesRender(categories: Array) {
- const {props} = this;
+ const { props } = this;
const final: Array = [];
categories.forEach((cat: number | null) => {
if (cat != null) {
const category = props.categoryTranslator(cat);
if (category) {
final.push(
-
+
{category.name}
- ,
+
);
}
}
});
- return {final};
+ return {final};
}
render() {
- const {props} = this;
+ const { props } = this;
const categoriesRender = () =>
this.getCategoriesRender(props.item.category);
- const {colors} = props.theme;
+ const { colors } = props.theme;
return (
{
onPress={props.onPress}
left={() => (
)}
right={() => (
{
)}
style={{
height: props.height,
- justifyContent: 'center',
+ ...styles.item,
}}
/>
);
diff --git a/src/components/Lists/DashboardEdit/DashboardEditAccordion.tsx b/src/components/Lists/DashboardEdit/DashboardEditAccordion.tsx
index b273b9d..498cf6d 100644
--- a/src/components/Lists/DashboardEdit/DashboardEditAccordion.tsx
+++ b/src/components/Lists/DashboardEdit/DashboardEditAccordion.tsx
@@ -18,8 +18,8 @@
*/
import * as React from 'react';
-import {useTheme} from 'react-native-paper';
-import {FlatList, Image, View} from 'react-native';
+import { useTheme } from 'react-native-paper';
+import { FlatList, Image, StyleSheet, View } from 'react-native';
import MaterialCommunityIcons from 'react-native-vector-icons/MaterialCommunityIcons';
import DashboardEditItem from './DashboardEditItem';
import AnimatedAccordion from '../../Animations/AnimatedAccordion';
@@ -34,12 +34,19 @@ type PropsType = {
onPress: (service: ServiceItemType) => void;
};
+const styles = StyleSheet.create({
+ image: {
+ width: 40,
+ height: 40,
+ },
+});
+
const LIST_ITEM_HEIGHT = 64;
function DashboardEditAccordion(props: PropsType) {
const theme = useTheme();
- const getRenderItem = ({item}: {item: ServiceItemType}) => {
+ const getRenderItem = ({ item }: { item: ServiceItemType }) => {
return (
| null | undefined,
- index: number,
- ): {length: number; offset: number; index: number} => ({
+ index: number
+ ): { length: number; offset: number; index: number } => ({
length: LIST_ITEM_HEIGHT,
offset: LIST_ITEM_HEIGHT * index,
index,
});
- const {item} = props;
+ const { item } = props;
return (
typeof item.image === 'number' ? (
-
+
) : (
)
- }>
+ }
+ >
void;
};
+const styles = StyleSheet.create({
+ image: {
+ width: 40,
+ height: 40,
+ },
+ item: {
+ justifyContent: 'center',
+ paddingLeft: 30,
+ },
+});
+
function DashboardEditItem(props: PropsType) {
const theme = useTheme();
- const {item, onPress, height, isActive} = props;
+ const { item, onPress, height, isActive } = props;
+ const backgroundColor = isActive
+ ? theme.colors.proxiwashFinishedColor
+ : 'transparent';
return (
(
)}
right={(iconProps) =>
@@ -58,12 +69,9 @@ function DashboardEditItem(props: PropsType) {
) : null
}
style={{
- height,
- justifyContent: 'center',
- paddingLeft: 30,
- backgroundColor: isActive
- ? theme.colors.proxiwashFinishedColor
- : 'transparent',
+ ...styles.image,
+ height: height,
+ backgroundColor: backgroundColor,
}}
/>
);
diff --git a/src/components/Lists/DashboardEdit/DashboardEditPreviewItem.tsx b/src/components/Lists/DashboardEdit/DashboardEditPreviewItem.tsx
index bab1bbf..43bc871 100644
--- a/src/components/Lists/DashboardEdit/DashboardEditPreviewItem.tsx
+++ b/src/components/Lists/DashboardEdit/DashboardEditPreviewItem.tsx
@@ -18,8 +18,8 @@
*/
import * as React from 'react';
-import {TouchableRipple, useTheme} from 'react-native-paper';
-import {Dimensions, Image, View} from 'react-native';
+import { TouchableRipple, useTheme } from 'react-native-paper';
+import { Dimensions, Image, StyleSheet, View } from 'react-native';
type PropsType = {
image?: string | number;
@@ -27,39 +27,50 @@ type PropsType = {
onPress: () => void;
};
+const styles = StyleSheet.create({
+ ripple: {
+ marginLeft: 5,
+ marginRight: 5,
+ borderRadius: 5,
+ },
+ image: {
+ width: '100%',
+ height: '100%',
+ },
+});
+
/**
* Component used to render a small dashboard item
*/
function DashboardEditPreviewItem(props: PropsType) {
const theme = useTheme();
const itemSize = Dimensions.get('window').width / 8;
-
+ const backgroundColor = props.isActive
+ ? theme.colors.textDisabled
+ : 'transparent';
return (
+ ...styles.ripple,
+ backgroundColor: backgroundColor,
+ }}
+ >
+ }}
+ >
{props.image ? (
) : null}
diff --git a/src/components/Lists/Equipment/EquipmentListItem.tsx b/src/components/Lists/Equipment/EquipmentListItem.tsx
index 692c877..f76414a 100644
--- a/src/components/Lists/Equipment/EquipmentListItem.tsx
+++ b/src/components/Lists/Equipment/EquipmentListItem.tsx
@@ -18,15 +18,17 @@
*/
import * as React from 'react';
-import {Avatar, List, useTheme} from 'react-native-paper';
+import { Avatar, List, useTheme } from 'react-native-paper';
import i18n from 'i18n-js';
-import {StackNavigationProp} from '@react-navigation/stack';
-import type {DeviceType} from '../../../screens/Amicale/Equipment/EquipmentListScreen';
+import { StackNavigationProp } from '@react-navigation/stack';
+import type { DeviceType } from '../../../screens/Amicale/Equipment/EquipmentListScreen';
import {
getFirstEquipmentAvailability,
getRelativeDateString,
isEquipmentAvailable,
} from '../../../utils/EquipmentBooking';
+import { StyleSheet } from 'react-native';
+import GENERAL_STYLES from '../../../constants/Styles';
type PropsType = {
navigation: StackNavigationProp;
@@ -35,9 +37,18 @@ type PropsType = {
height: number;
};
+const styles = StyleSheet.create({
+ icon: {
+ backgroundColor: 'transparent',
+ },
+ item: {
+ justifyContent: 'center',
+ },
+});
+
function EquipmentListItem(props: PropsType) {
const theme = useTheme();
- const {item, userDeviceRentDates, navigation, height} = props;
+ const { item, userDeviceRentDates, navigation, height } = props;
const isRented = userDeviceRentDates != null;
const isAvailable = isEquipmentAvailable(item);
const firstAvailability = getFirstEquipmentAvailability(item);
@@ -52,7 +63,7 @@ function EquipmentListItem(props: PropsType) {
};
} else {
onPress = () => {
- navigation.navigate('equipment-rent', {item});
+ navigation.navigate('equipment-rent', { item });
};
}
@@ -71,7 +82,7 @@ function EquipmentListItem(props: PropsType) {
});
}
} else if (isAvailable) {
- description = i18n.t('screens.equipment.bail', {cost: item.caution});
+ description = i18n.t('screens.equipment.bail', { cost: item.caution });
} else {
description = i18n.t('screens.equipment.available', {
date: getRelativeDateString(firstAvailability),
@@ -101,21 +112,12 @@ function EquipmentListItem(props: PropsType) {
title={item.name}
description={description}
onPress={onPress}
- left={() => (
-
- )}
+ left={() => }
right={() => (
);
diff --git a/src/components/Lists/PlanexGroups/GroupListAccordion.tsx b/src/components/Lists/PlanexGroups/GroupListAccordion.tsx
index 75617b2..e73a100 100644
--- a/src/components/Lists/PlanexGroups/GroupListAccordion.tsx
+++ b/src/components/Lists/PlanexGroups/GroupListAccordion.tsx
@@ -18,9 +18,9 @@
*/
import * as React from 'react';
-import {List, withTheme} from 'react-native-paper';
-import {FlatList, View} from 'react-native';
-import {stringMatchQuery} from '../../../utils/Search';
+import { List, withTheme } from 'react-native-paper';
+import { FlatList, StyleSheet, View } from 'react-native';
+import { stringMatchQuery } from '../../../utils/Search';
import GroupListItem from './GroupListItem';
import AnimatedAccordion from '../../Animations/AnimatedAccordion';
import type {
@@ -40,9 +40,15 @@ type PropsType = {
const LIST_ITEM_HEIGHT = 64;
const REPLACE_REGEX = /_/g;
+const styles = StyleSheet.create({
+ container: {
+ justifyContent: 'center',
+ },
+});
+
class GroupListAccordion extends React.Component {
shouldComponentUpdate(nextProps: PropsType): boolean {
- const {props} = this;
+ const { props } = this;
return (
nextProps.currentSearchString !== props.currentSearchString ||
nextProps.favorites.length !== props.favorites.length ||
@@ -50,8 +56,8 @@ class GroupListAccordion extends React.Component {
);
}
- getRenderItem = ({item}: {item: PlanexGroupType}) => {
- const {props} = this;
+ getRenderItem = ({ item }: { item: PlanexGroupType }) => {
+ const { props } = this;
const onPress = () => {
props.onGroupPress(item);
};
@@ -70,7 +76,7 @@ class GroupListAccordion extends React.Component {
};
getData(): Array {
- const {props} = this;
+ const { props } = this;
const originalData = props.item.content;
const displayData: Array = [];
originalData.forEach((data: PlanexGroupType) => {
@@ -83,8 +89,8 @@ class GroupListAccordion extends React.Component {
itemLayout = (
data: Array | null | undefined,
- index: number,
- ): {length: number; offset: number; index: number} => ({
+ index: number
+ ): { length: number; offset: number; index: number } => ({
length: LIST_ITEM_HEIGHT,
offset: LIST_ITEM_HEIGHT * index,
index,
@@ -93,15 +99,13 @@ class GroupListAccordion extends React.Component {
keyExtractor = (item: PlanexGroupType): string => item.id.toString();
render() {
- const {props} = this;
- const {item} = this.props;
+ const { props } = this;
+ const { item } = this.props;
return (
item.id === 0 ? (
{
) : null
}
unmountWhenCollapsed={item.id !== 0} // Only render list if expanded for increased performance
- opened={props.currentSearchString.length > 0}>
+ opened={props.currentSearchString.length > 0}
+ >
{
isFav: boolean;
- starRef: {current: null | (Animatable.View & View)};
+ starRef: { current: null | (Animatable.View & View) };
constructor(props: PropsType) {
super(props);
@@ -46,7 +61,7 @@ class GroupListItem extends React.Component {
}
shouldComponentUpdate(nextProps: PropsType): boolean {
- const {favorites} = this.props;
+ const { favorites } = this.props;
const favChanged = favorites.length !== nextProps.favorites.length;
let newFavState = this.isFav;
if (favChanged) {
@@ -58,7 +73,7 @@ class GroupListItem extends React.Component {
}
onStarPress = () => {
- const {props} = this;
+ const { props } = this;
const ref = this.starRef;
if (ref.current && ref.current.rubberBand && ref.current.swing) {
if (this.isFav) {
@@ -71,7 +86,7 @@ class GroupListItem extends React.Component {
};
isGroupInFavorites(favorites: Array): boolean {
- const {item} = this.props;
+ const { item } = this.props;
for (let i = 0; i < favorites.length; i += 1) {
if (favorites[i].id === item.id) {
return true;
@@ -81,8 +96,8 @@ class GroupListItem extends React.Component {
}
render() {
- const {props} = this;
- const {colors} = props.theme;
+ const { props } = this;
+ const { colors } = props.theme;
return (
{
+ style={styles.iconContainer}
+ >
@@ -115,7 +126,7 @@ class GroupListItem extends React.Component {
)}
style={{
height: props.height,
- justifyContent: 'center',
+ ...styles.item,
}}
/>
);
diff --git a/src/components/Lists/Proximo/ProximoListItem.tsx b/src/components/Lists/Proximo/ProximoListItem.tsx
index 9465922..6924563 100644
--- a/src/components/Lists/Proximo/ProximoListItem.tsx
+++ b/src/components/Lists/Proximo/ProximoListItem.tsx
@@ -18,9 +18,10 @@
*/
import * as React from 'react';
-import {Avatar, List, Text} from 'react-native-paper';
+import { Avatar, List, Text } from 'react-native-paper';
import i18n from 'i18n-js';
-import type {ProximoArticleType} from '../../../screens/Services/Proximo/ProximoMainScreen';
+import type { ProximoArticleType } from '../../../screens/Services/Proximo/ProximoMainScreen';
+import { StyleSheet } from 'react-native';
type PropsType = {
onPress: () => void;
@@ -29,28 +30,38 @@ type PropsType = {
height: number;
};
+const styles = StyleSheet.create({
+ avatar: {
+ backgroundColor: 'transparent',
+ },
+ text: {
+ fontWeight: 'bold',
+ },
+ item: {
+ justifyContent: 'center',
+ },
+});
+
function ProximoListItem(props: PropsType) {
return (
(
)}
- right={() => (
- {props.item.price}€
- )}
+ right={() => {props.item.price}€}
style={{
height: props.height,
- justifyContent: 'center',
+ ...styles.item,
}}
/>
);
diff --git a/src/components/Lists/Proxiwash/ProxiwashListItem.tsx b/src/components/Lists/Proxiwash/ProxiwashListItem.tsx
index 9882333..f1b8ac6 100644
--- a/src/components/Lists/Proxiwash/ProxiwashListItem.tsx
+++ b/src/components/Lists/Proxiwash/ProxiwashListItem.tsx
@@ -27,14 +27,14 @@ import {
Text,
withTheme,
} from 'react-native-paper';
-import {StyleSheet, View} from 'react-native';
+import { StyleSheet, View } from 'react-native';
import i18n from 'i18n-js';
import * as Animatable from 'react-native-animatable';
import ProxiwashConstants, {
MachineStates,
} from '../../../constants/ProxiwashConstants';
import AprilFoolsManager from '../../../managers/AprilFoolsManager';
-import type {ProxiwashMachineType} from '../../../screens/Proxiwash/ProxiwashScreen';
+import type { ProxiwashMachineType } from '../../../screens/Proxiwash/ProxiwashScreen';
type PropsType = {
item: ProxiwashMachineType;
@@ -42,7 +42,7 @@ type PropsType = {
onPress: (
title: string,
item: ProxiwashMachineType,
- isDryer: boolean,
+ isDryer: boolean
) => void;
isWatched: boolean;
isDryer: boolean;
@@ -56,6 +56,7 @@ const styles = StyleSheet.create({
margin: 5,
justifyContent: 'center',
elevation: 1,
+ borderRadius: 4,
},
icon: {
backgroundColor: 'transparent',
@@ -65,17 +66,29 @@ const styles = StyleSheet.create({
left: 0,
borderRadius: 4,
},
+ item: {
+ justifyContent: 'center',
+ },
+ text: {
+ fontWeight: 'bold',
+ },
+ textRow: {
+ flexDirection: 'row',
+ },
+ textContainer: {
+ justifyContent: 'center',
+ },
});
/**
* Component used to display a proxiwash item, showing machine progression and state
*/
class ProxiwashListItem extends React.Component {
- stateStrings: {[key in MachineStates]: string} = {
+ stateStrings: { [key in MachineStates]: string } = {
[MachineStates.AVAILABLE]: i18n.t('screens.proxiwash.states.ready'),
[MachineStates.RUNNING]: i18n.t('screens.proxiwash.states.running'),
[MachineStates.RUNNING_NOT_STARTED]: i18n.t(
- 'screens.proxiwash.states.runningNotStarted',
+ 'screens.proxiwash.states.runningNotStarted'
),
[MachineStates.FINISHED]: i18n.t('screens.proxiwash.states.finished'),
[MachineStates.UNAVAILABLE]: i18n.t('screens.proxiwash.states.broken'),
@@ -83,7 +96,7 @@ class ProxiwashListItem extends React.Component {
[MachineStates.UNKNOWN]: i18n.t('screens.proxiwash.states.unknown'),
};
- stateColors: {[key: string]: string};
+ stateColors: { [key: string]: string };
title: string;
@@ -97,7 +110,7 @@ class ProxiwashListItem extends React.Component {
const displayMaxWeight = props.item.maxWeight;
if (AprilFoolsManager.getInstance().isAprilFoolsEnabled()) {
displayNumber = AprilFoolsManager.getProxiwashMachineDisplayNumber(
- parseInt(props.item.number, 10),
+ parseInt(props.item.number, 10)
);
}
@@ -109,7 +122,7 @@ class ProxiwashListItem extends React.Component {
}
shouldComponentUpdate(nextProps: PropsType): boolean {
- const {props} = this;
+ const { props } = this;
return (
nextProps.theme.dark !== props.theme.dark ||
nextProps.item.state !== props.item.state ||
@@ -119,13 +132,13 @@ class ProxiwashListItem extends React.Component {
}
onListItemPress = () => {
- const {props} = this;
+ const { props } = this;
props.onPress(this.titlePopUp, props.item, props.isDryer);
};
updateStateColors() {
- const {props} = this;
- const {colors} = props.theme;
+ const { props } = this;
+ const { colors } = props.theme;
this.stateColors[MachineStates.AVAILABLE] = colors.proxiwashReadyColor;
this.stateColors[MachineStates.RUNNING] = colors.proxiwashRunningColor;
this.stateColors[MachineStates.RUNNING_NOT_STARTED] =
@@ -137,8 +150,8 @@ class ProxiwashListItem extends React.Component {
}
render() {
- const {props} = this;
- const {colors} = props.theme;
+ const { props } = this;
+ const { colors } = props.theme;
const machineState = props.item.state;
const isRunning = machineState === MachineStates.RUNNING;
const isReady = machineState === MachineStates.AVAILABLE;
@@ -184,8 +197,8 @@ class ProxiwashListItem extends React.Component {
style={{
...styles.container,
height: props.height,
- borderRadius: 4,
- }}>
+ }}
+ >
{!isReady ? (
{
description={description}
style={{
height: props.height,
- justifyContent: 'center',
+ ...styles.item,
}}
onPress={this.onListItemPress}
left={() => icon}
right={() => (
-
-
+
+
+ ? styles.text
+ : undefined
+ }
+ >
{stateString}
{machineState === MachineStates.RUNNING ? (
{props.item.remainingTime} min
) : null}
-
+
{
shouldComponentUpdate(nextProps: PropsType): boolean {
- const {props} = this;
+ const { props } = this;
return (
nextProps.theme.dark !== props.theme.dark ||
nextProps.nbAvailable !== props.nbAvailable
@@ -59,7 +62,7 @@ class ProxiwashListItem extends React.Component {
}
render() {
- const {props} = this;
+ const { props } = this;
const subtitle = `${props.nbAvailable} ${
props.nbAvailable <= 1
? i18n.t('screens.proxiwash.numAvailable')
@@ -76,9 +79,9 @@ class ProxiwashListItem extends React.Component {
color={iconColor}
style={styles.icon}
/>
-
+
{props.title}
- {subtitle}
+ {subtitle}
);
diff --git a/src/components/Mascot/Mascot.tsx b/src/components/Mascot/Mascot.tsx
index 6ad77d6..43ed535 100644
--- a/src/components/Mascot/Mascot.tsx
+++ b/src/components/Mascot/Mascot.tsx
@@ -19,8 +19,14 @@
import * as React from 'react';
import * as Animatable from 'react-native-animatable';
-import {Image, TouchableWithoutFeedback, View, ViewStyle} from 'react-native';
-import {AnimatableProperties} from 'react-native-animatable';
+import {
+ Image,
+ StyleSheet,
+ TouchableWithoutFeedback,
+ View,
+ ViewStyle,
+} from 'react-native';
+import { AnimatableProperties } from 'react-native-animatable';
export type AnimatableViewRefType = {
current: null | (typeof Animatable.View & View);
@@ -77,6 +83,34 @@ export enum MASCOT_STYLE {
RANDOM = 999,
}
+const styles = StyleSheet.create({
+ container: {
+ aspectRatio: 1,
+ },
+ mascot: {
+ width: '100%',
+ height: '100%',
+ },
+ glassesImage: {
+ position: 'absolute',
+ top: '15%',
+ left: 0,
+ width: '100%',
+ height: '100%',
+ },
+ eyesImage: {
+ position: 'absolute',
+ top: '15%',
+ width: '100%',
+ height: '100%',
+ },
+ eyesContainer: {
+ position: 'absolute',
+ width: '100%',
+ height: '100%',
+ },
+});
+
class Mascot extends React.Component {
static defaultProps = {
emotion: MASCOT_STYLE.NORMAL,
@@ -100,9 +134,9 @@ class Mascot extends React.Component {
viewRef: AnimatableViewRefType;
- eyeList: {[key in EYE_STYLE]: number};
+ eyeList: { [key in EYE_STYLE]: number };
- glassesList: {[key in GLASSES_STYLE]: number};
+ glassesList: { [key in GLASSES_STYLE]: number };
onPress: (viewRef: AnimatableViewRefType) => void;
@@ -141,9 +175,9 @@ class Mascot extends React.Component {
this.onPress = (viewRef: AnimatableViewRefType) => {
const ref = viewRef.current;
if (ref && ref.rubberBand) {
- this.setState({currentEmotion: MASCOT_STYLE.LOVE});
+ this.setState({ currentEmotion: MASCOT_STYLE.LOVE });
ref.rubberBand(1500).then(() => {
- this.setState({currentEmotion: this.initialEmotion});
+ this.setState({ currentEmotion: this.initialEmotion });
});
}
};
@@ -155,9 +189,9 @@ class Mascot extends React.Component {
this.onLongPress = (viewRef: AnimatableViewRefType) => {
const ref = viewRef.current;
if (ref && ref.tada) {
- this.setState({currentEmotion: MASCOT_STYLE.ANGRY});
+ this.setState({ currentEmotion: MASCOT_STYLE.ANGRY });
ref.tada(1000).then(() => {
- this.setState({currentEmotion: this.initialEmotion});
+ this.setState({ currentEmotion: this.initialEmotion });
});
}
};
@@ -174,30 +208,22 @@ class Mascot extends React.Component {
source={
glasses != null ? glasses : this.glassesList[GLASSES_STYLE.NORMAL]
}
- style={{
- position: 'absolute',
- top: '15%',
- left: 0,
- width: '100%',
- height: '100%',
- }}
+ style={styles.glassesImage}
/>
);
}
getEye(style: EYE_STYLE, isRight: boolean, rotation: string = '0deg') {
const eye = this.eyeList[style];
+ const left = isRight ? '-11%' : '11%';
return (
);
@@ -205,16 +231,7 @@ class Mascot extends React.Component {
getEyes(emotion: MASCOT_STYLE) {
const final = [];
- final.push(
- ,
- );
+ final.push();
if (emotion === MASCOT_STYLE.CUTE) {
final.push(this.getEye(EYE_STYLE.CUTE, true));
final.push(this.getEye(EYE_STYLE.CUTE, false));
@@ -249,32 +266,28 @@ class Mascot extends React.Component {
}
render() {
- const {props, state} = this;
+ const { props, state } = this;
const entryAnimation = props.animated ? props.entryAnimation : null;
const loopAnimation = props.animated ? props.loopAnimation : null;
return (
+ {...entryAnimation}
+ >
{
this.onPress(this.viewRef);
}}
onLongPress={() => {
this.onLongPress(this.viewRef);
- }}>
+ }}
+ >
-
+
{this.getEyes(state.currentEmotion)}
diff --git a/src/components/Mascot/MascotPopup.tsx b/src/components/Mascot/MascotPopup.tsx
index 0933027..d2df012 100644
--- a/src/components/Mascot/MascotPopup.tsx
+++ b/src/components/Mascot/MascotPopup.tsx
@@ -31,12 +31,14 @@ import {
BackHandler,
Dimensions,
ScrollView,
+ StyleSheet,
TouchableWithoutFeedback,
View,
} from 'react-native';
import Mascot from './Mascot';
import SpeechArrow from './SpeechArrow';
import AsyncStorageManager from '../../managers/AsyncStorageManager';
+import GENERAL_STYLES from '../../constants/Styles';
type PropsType = {
theme: ReactNativePaper.Theme;
@@ -67,6 +69,41 @@ type StateType = {
dialogVisible: boolean;
};
+const styles = StyleSheet.create({
+ speechBubbleContainer: {
+ marginLeft: '10%',
+ marginRight: '10%',
+ },
+ speechBubbleCard: {
+ borderWidth: 4,
+ borderRadius: 10,
+ },
+ speechBubbleIcon: {
+ backgroundColor: 'transparent',
+ },
+ speechBubbleText: {
+ marginBottom: 10,
+ },
+ actionsContainer: {
+ marginTop: 10,
+ marginBottom: 10,
+ },
+ button: {
+ ...GENERAL_STYLES.centerHorizontal,
+ marginBottom: 10,
+ },
+ background: {
+ position: 'absolute',
+ backgroundColor: 'rgba(0,0,0,0.7)',
+ width: '100%',
+ height: '100%',
+ },
+ container: {
+ marginTop: -80,
+ width: '100%',
+ },
+});
+
/**
* Component used to display a popup with the mascot.
*/
@@ -107,12 +144,13 @@ class MascotPopup extends React.Component {
componentDidMount() {
BackHandler.addEventListener(
'hardwareBackPress',
- this.onBackButtonPressAndroid,
+ this.onBackButtonPressAndroid
);
}
shouldComponentUpdate(nextProps: PropsType, nextState: StateType): boolean {
- const {props, state} = this;
+ // TODO this is so dirty it shouldn't even work
+ const { props, state } = this;
if (nextProps.visible) {
this.state.shouldRenderDialog = true;
this.state.dialogVisible = true;
@@ -134,10 +172,10 @@ class MascotPopup extends React.Component {
};
onBackButtonPressAndroid = (): boolean => {
- const {state, props} = this;
+ const { state, props } = this;
if (state.dialogVisible) {
- const {cancel} = props.buttons;
- const {action} = props.buttons;
+ const { cancel } = props.buttons;
+ const { action } = props.buttons;
if (cancel) {
this.onDismiss(cancel.onPress);
} else if (action) {
@@ -152,27 +190,25 @@ class MascotPopup extends React.Component {
};
getSpeechBubble() {
- const {state, props} = this;
+ const { state, props } = this;
return (
+ duration={state.dialogVisible ? 1000 : 300}
+ >
+ ...styles.speechBubbleCard,
+ }}
+ >
{
? () => (
@@ -191,13 +227,16 @@ class MascotPopup extends React.Component {
+ }}
+ >
- {props.message}
+
+ {props.message}
+
-
+
{this.getButtons()}
@@ -206,14 +245,15 @@ class MascotPopup extends React.Component {
}
getMascot() {
- const {props, state} = this;
+ const { props, state } = this;
return (
+ duration={state.dialogVisible ? 1500 : 200}
+ >
@@ -222,45 +262,34 @@ class MascotPopup extends React.Component {
}
getButtons() {
- const {props} = this;
- const {action} = props.buttons;
- const {cancel} = props.buttons;
+ const { props } = this;
+ const { action } = props.buttons;
+ const { cancel } = props.buttons;
return (
-
+
{action != null ? (
{
this.onDismiss(action.onPress);
- }}>
+ }}
+ >
{action.message}
) : null}
{cancel != null ? (
{
this.onDismiss(cancel.onPress);
- }}>
+ }}
+ >
{cancel.message}
) : null}
@@ -269,19 +298,15 @@ class MascotPopup extends React.Component {
}
getBackground() {
- const {props, state} = this;
+ const { props, state } = this;
return (
{
this.onDismiss(props.buttons.cancel?.onPress);
- }}>
+ }}
+ >
{
}
onDismiss = (callback?: () => void) => {
- const {prefKey} = this.props;
+ const { prefKey } = this.props;
if (prefKey != null) {
AsyncStorageManager.set(prefKey, false);
- this.setState({dialogVisible: false});
+ this.setState({ dialogVisible: false });
}
if (callback != null) {
callback();
@@ -302,21 +327,13 @@ class MascotPopup extends React.Component {
};
render() {
- const {shouldRenderDialog} = this.state;
+ const { shouldRenderDialog } = this.state;
if (shouldRenderDialog) {
return (
{this.getBackground()}
-
-
+
+
{this.getMascot()}
{this.getSpeechBubble()}
diff --git a/src/components/Mascot/SpeechArrow.tsx b/src/components/Mascot/SpeechArrow.tsx
index 464a193..c76a243 100644
--- a/src/components/Mascot/SpeechArrow.tsx
+++ b/src/components/Mascot/SpeechArrow.tsx
@@ -18,7 +18,7 @@
*/
import * as React from 'react';
-import {View, ViewStyle} from 'react-native';
+import { StyleSheet, View, ViewStyle } from 'react-native';
type PropsType = {
style?: ViewStyle;
@@ -26,20 +26,26 @@ type PropsType = {
color: string;
};
+const styles = StyleSheet.create({
+ arrow: {
+ width: 0,
+ height: 0,
+ borderLeftWidth: 0,
+ borderStyle: 'solid',
+ backgroundColor: 'transparent',
+ borderLeftColor: 'transparent',
+ borderRightColor: 'transparent',
+ },
+});
+
export default function SpeechArrow(props: PropsType) {
return (
diff --git a/src/components/Media/ImageGalleryButton.tsx b/src/components/Media/ImageGalleryButton.tsx
index 7075bfa..f840689 100644
--- a/src/components/Media/ImageGalleryButton.tsx
+++ b/src/components/Media/ImageGalleryButton.tsx
@@ -18,32 +18,36 @@
*/
import * as React from 'react';
-import {TouchableRipple} from 'react-native-paper';
-import {Image} from 'react-native-animatable';
-import {useNavigation} from '@react-navigation/native';
-import {ViewStyle} from 'react-native';
+import { TouchableRipple } from 'react-native-paper';
+import { Image } from 'react-native-animatable';
+import { useNavigation } from '@react-navigation/native';
+import { StyleSheet, ViewStyle } from 'react-native';
type PropsType = {
- images: Array<{url: string}>;
+ images: Array<{ url: string }>;
style: ViewStyle;
};
+const styles = StyleSheet.create({
+ image: {
+ width: '100%',
+ height: '100%',
+ },
+});
+
function ImageGalleryButton(props: PropsType) {
const navigation = useNavigation();
const onPress = () => {
- navigation.navigate('gallery', {images: props.images});
+ navigation.navigate('gallery', { images: props.images });
};
return (
);
diff --git a/src/components/Overrides/CustomAgenda.tsx b/src/components/Overrides/CustomAgenda.tsx
index 47dd166..c624122 100644
--- a/src/components/Overrides/CustomAgenda.tsx
+++ b/src/components/Overrides/CustomAgenda.tsx
@@ -18,9 +18,10 @@
*/
import * as React from 'react';
-import {View} from 'react-native';
-import {useTheme} from 'react-native-paper';
-import {Agenda, AgendaProps} from 'react-native-calendars';
+import { View } from 'react-native';
+import { useTheme } from 'react-native-paper';
+import { Agenda, AgendaProps } from 'react-native-calendars';
+import GENERAL_STYLES from '../../constants/Styles';
type PropsType = {
onRef: (ref: Agenda) => void;
@@ -67,7 +68,7 @@ function CustomAgenda(props: PropsType) {
// Completely recreate the component on theme change to force theme reload
if (theme.dark) {
- return {getAgenda()};
+ return {getAgenda()};
}
return getAgenda();
}
diff --git a/src/components/Overrides/CustomHTML.tsx b/src/components/Overrides/CustomHTML.tsx
index 95edf84..948912f 100644
--- a/src/components/Overrides/CustomHTML.tsx
+++ b/src/components/Overrides/CustomHTML.tsx
@@ -18,9 +18,9 @@
*/
import * as React from 'react';
-import {Text} from 'react-native-paper';
+import { Text } from 'react-native-paper';
import HTML from 'react-native-render-html';
-import {GestureResponderEvent, Linking} from 'react-native';
+import { GestureResponderEvent, Linking } from 'react-native';
type PropsType = {
html: string;
@@ -38,7 +38,7 @@ function CustomHTML(props: PropsType) {
htmlAttribs: any,
children: any,
convertedCSSStyles: any,
- passProps: any,
+ passProps: any
) => {
return {children};
};
diff --git a/src/components/Overrides/CustomHeaderButton.tsx b/src/components/Overrides/CustomHeaderButton.tsx
index c6c4efc..4cec51b 100644
--- a/src/components/Overrides/CustomHeaderButton.tsx
+++ b/src/components/Overrides/CustomHeaderButton.tsx
@@ -25,7 +25,7 @@ import {
HeaderButtons,
HeaderButtonsProps,
} from 'react-navigation-header-buttons';
-import {useTheme} from 'react-native-paper';
+import { useTheme } from 'react-native-paper';
const MaterialHeaderButton = (props: HeaderButtonProps) => {
const theme = useTheme();
@@ -40,7 +40,7 @@ const MaterialHeaderButton = (props: HeaderButtonProps) => {
};
const MaterialHeaderButtons = (
- props: HeaderButtonsProps & {children?: React.ReactNode},
+ props: HeaderButtonsProps & { children?: React.ReactNode }
) => {
return (
@@ -49,4 +49,4 @@ const MaterialHeaderButtons = (
export default MaterialHeaderButtons;
-export {Item} from 'react-navigation-header-buttons';
+export { Item } from 'react-navigation-header-buttons';
diff --git a/src/components/Overrides/CustomIntroSlider.tsx b/src/components/Overrides/CustomIntroSlider.tsx
index d773d42..ca2ec57 100644
--- a/src/components/Overrides/CustomIntroSlider.tsx
+++ b/src/components/Overrides/CustomIntroSlider.tsx
@@ -30,13 +30,14 @@ import i18n from 'i18n-js';
import AppIntroSlider from 'react-native-app-intro-slider';
import LinearGradient from 'react-native-linear-gradient';
import * as Animatable from 'react-native-animatable';
-import {Card} from 'react-native-paper';
+import { Card } from 'react-native-paper';
import Update from '../../constants/Update';
import ThemeManager from '../../managers/ThemeManager';
-import Mascot, {MASCOT_STYLE} from '../Mascot/Mascot';
+import Mascot, { MASCOT_STYLE } from '../Mascot/Mascot';
import MascotIntroWelcome from '../Intro/MascotIntroWelcome';
import IntroIcon from '../Intro/IconIntro';
import MascotIntroEnd from '../Intro/MascotIntroEnd';
+import GENERAL_STYLES from '../../constants/Styles';
type PropsType = {
onDone: () => void;
@@ -75,11 +76,42 @@ const styles = StyleSheet.create({
textAlign: 'center',
marginBottom: 16,
},
- center: {
- marginTop: 'auto',
- marginBottom: 'auto',
- marginRight: 'auto',
- marginLeft: 'auto',
+ mascot: {
+ marginLeft: 30,
+ marginBottom: 0,
+ width: 100,
+ marginTop: -30,
+ },
+ speechArrow: {
+ marginLeft: 50,
+ width: 0,
+ height: 0,
+ borderLeftWidth: 20,
+ borderRightWidth: 0,
+ borderBottomWidth: 20,
+ borderStyle: 'solid',
+ backgroundColor: 'transparent',
+ borderLeftColor: 'transparent',
+ borderRightColor: 'transparent',
+ borderBottomColor: 'rgba(0,0,0,0.60)',
+ },
+ card: {
+ backgroundColor: 'rgba(0,0,0,0.38)',
+ marginHorizontal: 20,
+ borderColor: 'rgba(0,0,0,0.60)',
+ borderWidth: 4,
+ borderRadius: 10,
+ elevation: 0,
+ },
+ nextButtonContainer: {
+ borderRadius: 25,
+ padding: 5,
+ backgroundColor: 'rgba(0,0,0,0.2)',
+ },
+ doneButtonContainer: {
+ borderRadius: 25,
+ padding: 5,
+ backgroundColor: 'rgb(190,21,34)',
},
});
@@ -90,7 +122,7 @@ export default class CustomIntroSlider extends React.Component<
PropsType,
StateType
> {
- sliderRef: {current: null | AppIntroSlider};
+ sliderRef: { current: null | AppIntroSlider };
introSlides: Array;
@@ -173,31 +205,27 @@ export default class CustomIntroSlider extends React.Component<
getIntroRenderItem = (
data:
| (ListRenderItemInfo & {
- dimensions: {width: number; height: number};
+ dimensions: { width: number; height: number };
})
- | ListRenderItemInfo,
+ | ListRenderItemInfo
) => {
const item = data.item;
- const {state} = this;
+ const { state } = this;
const index = parseInt(item.key, 10);
return (
+ start={{ x: 0, y: 0.1 }}
+ end={{ x: 0.1, y: 1 }}
+ >
{state.currentSlide === index ? (
-
- {item.view()}
+
+ {item.view()}
{item.mascotStyle != null ? (
) : null}
-
-
+
+
+ style={styles.title}
+ >
{item.title}
+ style={styles.text}
+ >
{item.text}
@@ -267,12 +275,12 @@ export default class CustomIntroSlider extends React.Component<
onSlideChange = (index: number) => {
CustomIntroSlider.setStatusBarColor(this.currentSlides[index].colors[0]);
- this.setState({currentSlide: index});
+ this.setState({ currentSlide: index });
};
onSkip = () => {
CustomIntroSlider.setStatusBarColor(
- this.currentSlides[this.currentSlides.length - 1].colors[0],
+ this.currentSlides[this.currentSlides.length - 1].colors[0]
);
if (this.sliderRef.current != null) {
this.sliderRef.current.goToSlide(this.currentSlides.length - 1);
@@ -280,9 +288,9 @@ export default class CustomIntroSlider extends React.Component<
};
onDone = () => {
- const {props} = this;
+ const { props } = this;
CustomIntroSlider.setStatusBarColor(
- ThemeManager.getCurrentTheme().colors.surface,
+ ThemeManager.getCurrentTheme().colors.surface
);
props.onDone();
};
@@ -292,11 +300,8 @@ export default class CustomIntroSlider extends React.Component<
+ style={styles.nextButtonContainer}
+ >
);
@@ -307,18 +312,15 @@ export default class CustomIntroSlider extends React.Component<
+ style={styles.doneButtonContainer}
+ >
);
};
render() {
- const {props, state} = this;
+ const { props, state } = this;
this.currentSlides = this.introSlides;
if (props.isUpdate) {
this.currentSlides = this.updateSlides;
diff --git a/src/components/Overrides/CustomModal.tsx b/src/components/Overrides/CustomModal.tsx
index 54b8cf0..cbcb07e 100644
--- a/src/components/Overrides/CustomModal.tsx
+++ b/src/components/Overrides/CustomModal.tsx
@@ -18,9 +18,9 @@
*/
import * as React from 'react';
-import {useTheme} from 'react-native-paper';
-import {Modalize} from 'react-native-modalize';
-import {View} from 'react-native-animatable';
+import { useTheme } from 'react-native-paper';
+import { Modalize } from 'react-native-modalize';
+import { View } from 'react-native-animatable';
import CustomTabBar from '../Tabbar/CustomTabBar';
/**
@@ -34,18 +34,20 @@ function CustomModal(props: {
children?: React.ReactNode;
}) {
const theme = useTheme();
- const {onRef, children} = props;
+ const { onRef, children } = props;
return (
+ modalStyle={{ backgroundColor: theme.colors.card }}
+ handleStyle={{ backgroundColor: theme.colors.primary }}
+ >
+ }}
+ >
{children}
diff --git a/src/components/Overrides/CustomSlider.tsx b/src/components/Overrides/CustomSlider.tsx
index 9bb92ab..9f6fa27 100644
--- a/src/components/Overrides/CustomSlider.tsx
+++ b/src/components/Overrides/CustomSlider.tsx
@@ -18,15 +18,28 @@
*/
import * as React from 'react';
-import {Text} from 'react-native-paper';
-import {View} from 'react-native-animatable';
-import Slider, {SliderProps} from '@react-native-community/slider';
-import {useState} from 'react';
+import { Text } from 'react-native-paper';
+import { View } from 'react-native-animatable';
+import Slider, { SliderProps } from '@react-native-community/slider';
+import { useState } from 'react';
+import { StyleSheet } from 'react-native';
type PropsType = {
valueSuffix?: string;
} & SliderProps;
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ flexDirection: 'row',
+ },
+ text: {
+ marginHorizontal: 10,
+ marginTop: 'auto',
+ marginBottom: 'auto',
+ },
+});
+
/**
* Abstraction layer for Modalize component, using custom configuration
*
@@ -44,15 +57,8 @@ function CustomSlider(props: PropsType) {
};
return (
-
-
- {currentValue}min
-
+
+ {currentValue}min
);
diff --git a/src/components/Screens/BasicLoadingScreen.tsx b/src/components/Screens/BasicLoadingScreen.tsx
index 95d55d6..c997bd6 100644
--- a/src/components/Screens/BasicLoadingScreen.tsx
+++ b/src/components/Screens/BasicLoadingScreen.tsx
@@ -17,16 +17,24 @@
* along with Campus INSAT. If not, see .
*/
-// @flow
-
import * as React from 'react';
-import {View} from 'react-native';
-import {ActivityIndicator, useTheme} from 'react-native-paper';
+import { StyleSheet, View } from 'react-native';
+import { ActivityIndicator, useTheme } from 'react-native-paper';
type Props = {
isAbsolute?: boolean;
};
+const styles = StyleSheet.create({
+ container: {
+ top: 0,
+ right: 0,
+ width: '100%',
+ height: '100%',
+ justifyContent: 'center',
+ },
+});
+
/**
* Component used to display a header button
*
@@ -35,18 +43,16 @@ type Props = {
*/
export default function BasicLoadingScreen(props: Props) {
const theme = useTheme();
- const {isAbsolute} = props;
+ const { isAbsolute } = props;
+ const position = isAbsolute ? 'absolute' : 'relative';
return (
+ position: position,
+ ...styles.container,
+ }}
+ >
);
diff --git a/src/components/Screens/ErrorView.tsx b/src/components/Screens/ErrorView.tsx
index 2e57a8e..129fd34 100644
--- a/src/components/Screens/ErrorView.tsx
+++ b/src/components/Screens/ErrorView.tsx
@@ -18,18 +18,18 @@
*/
import * as React from 'react';
-import {Button, Subheading, withTheme} from 'react-native-paper';
-import {StyleSheet, View} from 'react-native';
+import { Button, Subheading, withTheme } from 'react-native-paper';
+import { StyleSheet, View } from 'react-native';
import MaterialCommunityIcons from 'react-native-vector-icons/MaterialCommunityIcons';
import i18n from 'i18n-js';
import * as Animatable from 'react-native-animatable';
-import {StackNavigationProp} from '@react-navigation/stack';
-import {ERROR_TYPE} from '../../utils/WebData';
+import { StackNavigationProp } from '@react-navigation/stack';
+import { ERROR_TYPE } from '../../utils/WebData';
type PropsType = {
navigation?: StackNavigationProp;
theme: ReactNativePaper.Theme;
- route?: {name: string};
+ route?: { name: string };
onRefresh?: () => void;
errorCode?: number;
icon?: string;
@@ -84,13 +84,14 @@ class ErrorView extends React.PureComponent {
}
getRetryButton() {
- const {props} = this;
+ const { props } = this;
return (
+ style={styles.button}
+ >
{i18n.t('general.retry')}
);
@@ -102,24 +103,25 @@ class ErrorView extends React.PureComponent {
mode="contained"
icon="login"
onPress={this.goToLogin}
- style={styles.button}>
+ style={styles.button}
+ >
{i18n.t('screens.login.title')}
);
}
goToLogin = () => {
- const {props} = this;
+ const { props } = this;
if (props.navigation) {
props.navigation.navigate('login', {
screen: 'login',
- params: {nextScreen: props.route ? props.route.name : undefined},
+ params: { nextScreen: props.route ? props.route.name : undefined },
});
}
};
generateMessage() {
- const {props} = this;
+ const { props } = this;
this.showLoginButton = false;
if (props.errorCode !== 0) {
switch (props.errorCode) {
@@ -171,7 +173,7 @@ class ErrorView extends React.PureComponent {
}
render() {
- const {props} = this;
+ const { props } = this;
this.generateMessage();
let button;
if (this.showLoginButton) {
@@ -190,7 +192,8 @@ class ErrorView extends React.PureComponent {
}}
animation="zoomIn"
duration={200}
- useNativeDriver>
+ useNativeDriver
+ >
{
style={{
...styles.subheading,
color: props.theme.colors.textDisabled,
- }}>
+ }}
+ >
{this.message}
{button}
diff --git a/src/components/Screens/WebSectionList.tsx b/src/components/Screens/WebSectionList.tsx
index a080d1c..9abd227 100644
--- a/src/components/Screens/WebSectionList.tsx
+++ b/src/components/Screens/WebSectionList.tsx
@@ -19,21 +19,22 @@
import * as React from 'react';
import i18n from 'i18n-js';
-import {Snackbar} from 'react-native-paper';
+import { Snackbar } from 'react-native-paper';
import {
NativeSyntheticEvent,
RefreshControl,
SectionListData,
+ StyleSheet,
View,
} from 'react-native';
import * as Animatable from 'react-native-animatable';
-import {Collapsible} from 'react-navigation-collapsible';
-import {StackNavigationProp} from '@react-navigation/stack';
+import { Collapsible } from 'react-navigation-collapsible';
+import { StackNavigationProp } from '@react-navigation/stack';
import ErrorView from './ErrorView';
import BasicLoadingScreen from './BasicLoadingScreen';
import withCollapsible from '../../utils/withCollapsible';
import CustomTabBar from '../Tabbar/CustomTabBar';
-import {ERROR_TYPE, readData} from '../../utils/WebData';
+import { ERROR_TYPE, readData } from '../../utils/WebData';
import CollapsibleSectionList from '../Collapsible/CollapsibleSectionList';
export type SectionListDataType = Array<{
@@ -48,10 +49,10 @@ type PropsType = {
fetchUrl: string;
autoRefreshTime: number;
refreshOnFocus: boolean;
- renderItem: (data: {item: ItemT}) => React.ReactNode;
+ renderItem: (data: { item: ItemT }) => React.ReactNode;
createDataset: (
data: RawData | null,
- isLoading?: boolean,
+ isLoading?: boolean
) => SectionListDataType;
onScroll: (event: NativeSyntheticEvent) => void;
collapsibleStack: Collapsible;
@@ -60,11 +61,11 @@ type PropsType = {
itemHeight?: number | null;
updateData?: number;
renderListHeaderComponent?: (
- data: RawData | null,
+ data: RawData | null
) => React.ComponentType | React.ReactElement | null;
renderSectionHeader?: (
- data: {section: SectionListData},
- isLoading?: boolean,
+ data: { section: SectionListData },
+ isLoading?: boolean
) => React.ReactElement | null;
stickyHeader?: boolean;
};
@@ -77,6 +78,12 @@ type StateType = {
const MIN_REFRESH_TIME = 5 * 1000;
+const styles = StyleSheet.create({
+ container: {
+ minHeight: '100%',
+ },
+});
+
/**
* Component used to render a SectionList with data fetched from the web
*
@@ -114,7 +121,7 @@ class WebSectionList extends React.PureComponent<
* Allows to detect when the screen is focused
*/
componentDidMount() {
- const {navigation} = this.props;
+ const { navigation } = this.props;
navigation.addListener('focus', this.onScreenFocus);
navigation.addListener('blur', this.onScreenBlur);
this.lastRefresh = undefined;
@@ -125,7 +132,7 @@ class WebSectionList extends React.PureComponent<
* Refreshes data when focusing the screen and setup a refresh interval if asked to
*/
onScreenFocus = () => {
- const {props} = this;
+ const { props } = this;
if (props.refreshOnFocus && this.lastRefresh) {
setTimeout(this.onRefresh, 200);
}
@@ -173,7 +180,7 @@ class WebSectionList extends React.PureComponent<
* Refreshes data and shows an animations while doing it
*/
onRefresh = () => {
- const {fetchUrl} = this.props;
+ const { fetchUrl } = this.props;
let canRefresh;
if (this.lastRefresh != null) {
const last = this.lastRefresh;
@@ -182,7 +189,7 @@ class WebSectionList extends React.PureComponent<
canRefresh = true;
}
if (canRefresh) {
- this.setState({refreshing: true});
+ this.setState({ refreshing: true });
readData(fetchUrl).then(this.onFetchSuccess).catch(this.onFetchError);
}
};
@@ -191,21 +198,21 @@ class WebSectionList extends React.PureComponent<
* Shows the error popup
*/
showSnackBar = () => {
- this.setState({snackbarVisible: true});
+ this.setState({ snackbarVisible: true });
};
/**
* Hides the error popup
*/
hideSnackBar = () => {
- this.setState({snackbarVisible: false});
+ this.setState({ snackbarVisible: false });
};
getItemLayout = (
height: number,
data: Array> | null,
- index: number,
- ): {length: number; offset: number; index: number} => {
+ index: number
+ ): { length: number; offset: number; index: number } => {
return {
length: height,
offset: height * index,
@@ -213,9 +220,9 @@ class WebSectionList extends React.PureComponent<
};
};
- getRenderSectionHeader = (data: {section: SectionListData}) => {
- const {renderSectionHeader} = this.props;
- const {refreshing} = this.state;
+ getRenderSectionHeader = (data: { section: SectionListData }) => {
+ const { renderSectionHeader } = this.props;
+ const { refreshing } = this.state;
if (renderSectionHeader != null) {
return (
@@ -226,8 +233,8 @@ class WebSectionList extends React.PureComponent<
return null;
};
- getRenderItem = (data: {item: ItemT}) => {
- const {renderItem} = this.props;
+ getRenderItem = (data: { item: ItemT }) => {
+ const { renderItem } = this.props;
return (
{renderItem(data)}
@@ -236,15 +243,15 @@ class WebSectionList extends React.PureComponent<
};
onScroll = (event: NativeSyntheticEvent) => {
- const {onScroll} = this.props;
+ const { onScroll } = this.props;
if (onScroll != null) {
onScroll(event);
}
};
render() {
- const {props, state} = this;
- const {itemHeight} = props;
+ const { props, state } = this;
+ const { itemHeight } = props;
let dataset: SectionListDataType = [];
if (
state.fetchedData != null ||
@@ -253,7 +260,7 @@ class WebSectionList extends React.PureComponent<
dataset = props.createDataset(state.fetchedData, state.refreshing);
}
- const {containerPaddingTop} = props.collapsibleStack;
+ const { containerPaddingTop } = props.collapsibleStack;
return (
extends React.PureComponent<
renderSectionHeader={this.getRenderSectionHeader}
renderItem={this.getRenderItem}
stickySectionHeadersEnabled={props.stickyHeader}
- style={{minHeight: '100%'}}
+ style={styles.container}
ListHeaderComponent={
props.renderListHeaderComponent != null
? props.renderListHeaderComponent(state.fetchedData)
@@ -304,7 +311,8 @@ class WebSectionList extends React.PureComponent<
duration={4000}
style={{
bottom: CustomTabBar.TAB_BAR_HEIGHT,
- }}>
+ }}
+ >
{i18n.t('general.listUpdateFail')}
diff --git a/src/components/Screens/WebViewScreen.tsx b/src/components/Screens/WebViewScreen.tsx
index fe2c9b6..38cef0e 100644
--- a/src/components/Screens/WebViewScreen.tsx
+++ b/src/components/Screens/WebViewScreen.tsx
@@ -31,14 +31,15 @@ import {
Linking,
NativeScrollEvent,
NativeSyntheticEvent,
+ StyleSheet,
} from 'react-native';
import MaterialCommunityIcons from 'react-native-vector-icons/MaterialCommunityIcons';
-import {withTheme} from 'react-native-paper';
-import {StackNavigationProp} from '@react-navigation/stack';
-import {Collapsible} from 'react-navigation-collapsible';
+import { withTheme } from 'react-native-paper';
+import { StackNavigationProp } from '@react-navigation/stack';
+import { Collapsible } from 'react-navigation-collapsible';
import withCollapsible from '../../utils/withCollapsible';
-import MaterialHeaderButtons, {Item} from '../Overrides/CustomHeaderButton';
-import {ERROR_TYPE} from '../../utils/WebData';
+import MaterialHeaderButtons, { Item } from '../Overrides/CustomHeaderButton';
+import { ERROR_TYPE } from '../../utils/WebData';
import ErrorView from './ErrorView';
import BasicLoadingScreen from './BasicLoadingScreen';
@@ -47,7 +48,7 @@ type PropsType = {
theme: ReactNativePaper.Theme;
url: string;
collapsibleStack: Collapsible;
- onMessage: (event: {nativeEvent: {data: string}}) => void;
+ onMessage: (event: { nativeEvent: { data: string } }) => void;
onScroll: (event: NativeSyntheticEvent) => void;
customJS?: string;
customPaddingFunction?: null | ((padding: number) => string);
@@ -56,6 +57,12 @@ type PropsType = {
const AnimatedWebView = Animated.createAnimatedComponent(WebView);
+const styles = StyleSheet.create({
+ overflow: {
+ marginHorizontal: 10,
+ },
+});
+
/**
* Class defining a webview screen.
*/
@@ -68,7 +75,7 @@ class WebViewScreen extends React.PureComponent {
currentUrl: string;
- webviewRef: {current: null | WebView};
+ webviewRef: { current: null | WebView };
canGoBack: boolean;
@@ -83,7 +90,7 @@ class WebViewScreen extends React.PureComponent {
* Creates header buttons and listens to events after mounting
*/
componentDidMount() {
- const {props} = this;
+ const { props } = this;
props.navigation.setOptions({
headerRight: props.showAdvancedControls
? this.getAdvancedButtons
@@ -92,13 +99,13 @@ class WebViewScreen extends React.PureComponent {
props.navigation.addListener('focus', () => {
BackHandler.addEventListener(
'hardwareBackPress',
- this.onBackButtonPressAndroid,
+ this.onBackButtonPressAndroid
);
});
props.navigation.addListener('blur', () => {
BackHandler.removeEventListener(
'hardwareBackPress',
- this.onBackButtonPressAndroid,
+ this.onBackButtonPressAndroid
);
});
}
@@ -145,7 +152,7 @@ class WebViewScreen extends React.PureComponent {
* @returns {*}
*/
getAdvancedButtons = () => {
- const {props} = this;
+ const { props } = this;
return (
- {
onPress={this.onRefreshClicked}
/>
- }>
+ }
+ >
{
* @returns {string}
*/
getJavascriptPadding(padding: number): string {
- const {props} = this;
+ const { props } = this;
const customPadding =
props.customPaddingFunction != null
? props.customPaddingFunction(padding)
@@ -229,7 +237,7 @@ class WebViewScreen extends React.PureComponent {
};
onScroll = (event: NativeSyntheticEvent) => {
- const {onScroll} = this.props;
+ const { onScroll } = this.props;
if (onScroll) {
onScroll(event);
}
@@ -247,12 +255,15 @@ class WebViewScreen extends React.PureComponent {
};
render() {
- const {props} = this;
- const {containerPaddingTop, onScrollWithListener} = props.collapsibleStack;
+ const { props } = this;
+ const {
+ containerPaddingTop,
+ onScrollWithListener,
+ } = props.collapsibleStack;
return (
{
static TAB_BAR_HEIGHT = 48;
@@ -71,7 +81,7 @@ class CustomTabBar extends React.Component {
* @param destIndex The destination route index
*/
onItemPress(route: RouteType, currentIndex: number, destIndex: number) {
- const {navigation} = this.props;
+ const { navigation } = this.props;
if (currentIndex !== destIndex) {
navigation.navigate(route.name);
}
@@ -83,7 +93,7 @@ class CustomTabBar extends React.Component {
* @param route
*/
onItemLongPress(route: RouteType) {
- const {navigation} = this.props;
+ const { navigation } = this.props;
if (route.name === 'home') {
navigation.navigate('game-start');
}
@@ -93,7 +103,7 @@ class CustomTabBar extends React.Component {
* Finds the active route and syncs the tab bar animation with the header bar
*/
onRouteChange = () => {
- const {props} = this;
+ const { props } = this;
props.state.routes.map(this.syncTabBar);
};
@@ -122,9 +132,9 @@ class CustomTabBar extends React.Component {
* @returns {*}
*/
getRenderIcon = (route: RouteType, index: number) => {
- const {props} = this;
- const {state} = props;
- const {options} = props.descriptors[route.key];
+ const { props } = this;
+ const { state } = props;
+ const { options } = props.descriptors[route.key];
let label;
if (options.tabBarLabel != null) {
label = options.tabBarLabel;
@@ -171,12 +181,12 @@ class CustomTabBar extends React.Component {
};
getIcons() {
- const {props} = this;
+ const { props } = this;
return props.state.routes.map(this.getRenderIcon);
}
syncTabBar = (route: RouteType, index: number) => {
- const {state} = this.props;
+ const { state } = this.props;
const isFocused = state.index === index;
if (isFocused) {
const stackState = route.state;
@@ -184,8 +194,8 @@ class CustomTabBar extends React.Component {
stackState && stackState.index != null
? stackState.routes[stackState.index]
: null;
- const params: {collapsible: Collapsible} | null | undefined = stackRoute
- ? (stackRoute.params as {collapsible: Collapsible})
+ const params: { collapsible: Collapsible } | null | undefined = stackRoute
+ ? (stackRoute.params as { collapsible: Collapsible })
: null;
const collapsible = params != null ? params.collapsible : null;
if (collapsible != null) {
@@ -197,20 +207,17 @@ class CustomTabBar extends React.Component {
};
render() {
- const {props, state} = this;
+ const { props, state } = this;
const icons = this.getIcons();
return (
+ transform: [{ translateY: state.translateY }],
+ ...styles.container,
+ }}
+ >
{icons}
);
diff --git a/src/components/Tabbar/TabHomeIcon.tsx b/src/components/Tabbar/TabHomeIcon.tsx
index 8d9b1fd..d5c2614 100644
--- a/src/components/Tabbar/TabHomeIcon.tsx
+++ b/src/components/Tabbar/TabHomeIcon.tsx
@@ -18,8 +18,8 @@
*/
import * as React from 'react';
-import {Image, View} from 'react-native';
-import {FAB} from 'react-native-paper';
+import { Image, StyleSheet, View } from 'react-native';
+import { FAB } from 'react-native-paper';
import * as Animatable from 'react-native-animatable';
const FOCUSED_ICON = require('../../../assets/tab-icon.png');
const UNFOCUSED_ICON = require('../../../assets/tab-icon-outline.png');
@@ -33,6 +33,25 @@ type PropsType = {
const AnimatedFAB = Animatable.createAnimatableComponent(FAB);
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ justifyContent: 'center',
+ },
+ subcontainer: {
+ position: 'absolute',
+ bottom: 0,
+ left: 0,
+ width: '100%',
+ marginBottom: -15,
+ },
+ fab: {
+ marginTop: 15,
+ marginLeft: 'auto',
+ marginRight: 'auto',
+ },
+});
+
/**
* Abstraction layer for Agenda component, using custom configuration
*/
@@ -70,12 +89,12 @@ class TabHomeIcon extends React.Component {
}
shouldComponentUpdate(nextProps: PropsType): boolean {
- const {focused} = this.props;
+ const { focused } = this.props;
return nextProps.focused !== focused;
}
- getIconRender = ({size, color}: {size: number; color: string}) => {
- const {focused} = this.props;
+ getIconRender = ({ size, color }: { size: number; color: string }) => {
+ const { focused } = this.props;
return (
{
};
render() {
- const {props} = this;
+ const { props } = this;
return (
-
+
+ ...styles.subcontainer,
+ }}
+ >
{
icon={this.getIconRender}
onPress={props.onPress}
onLongPress={props.onLongPress}
- style={{
- marginTop: 15,
- marginLeft: 'auto',
- marginRight: 'auto',
- }}
+ style={styles.fab}
/>
diff --git a/src/components/Tabbar/TabIcon.tsx b/src/components/Tabbar/TabIcon.tsx
index ee7d543..e674741 100644
--- a/src/components/Tabbar/TabIcon.tsx
+++ b/src/components/Tabbar/TabIcon.tsx
@@ -18,10 +18,11 @@
*/
import * as React from 'react';
-import {View} from 'react-native';
-import {TouchableRipple, withTheme} from 'react-native-paper';
+import { StyleSheet, View } from 'react-native';
+import { TouchableRipple, withTheme } from 'react-native-paper';
import MaterialCommunityIcons from 'react-native-vector-icons/MaterialCommunityIcons';
import * as Animatable from 'react-native-animatable';
+import GENERAL_STYLES from '../../constants/Styles';
type PropsType = {
focused: boolean;
@@ -34,6 +35,19 @@ type PropsType = {
extraData: null | boolean | number | string;
};
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ justifyContent: 'center',
+ borderRadius: 10,
+ },
+ text: {
+ marginLeft: 'auto',
+ marginRight: 'auto',
+ fontSize: 10,
+ },
+});
+
/**
* Abstraction layer for Agenda component, using custom configuration
*/
@@ -78,7 +92,7 @@ class TabIcon extends React.Component {
}
shouldComponentUpdate(nextProps: PropsType): boolean {
- const {props} = this;
+ const { props } = this;
return (
nextProps.focused !== props.focused ||
nextProps.theme.dark !== props.theme.dark ||
@@ -87,32 +101,27 @@ class TabIcon extends React.Component {
}
render() {
- const {props} = this;
+ const { props } = this;
return (
+ borderless={true}
+ style={styles.container}
+ >
+ useNativeDriver
+ >
{
useNativeDriver
style={{
color: props.color,
- marginLeft: 'auto',
- marginRight: 'auto',
- fontSize: 10,
- }}>
+ ...styles.text,
+ }}
+ >
{props.label}
diff --git a/src/constants/NewsSourcesConstants.ts b/src/constants/NewsSourcesConstants.ts
index 1e5ecd3..e3cab9d 100644
--- a/src/constants/NewsSourcesConstants.ts
+++ b/src/constants/NewsSourcesConstants.ts
@@ -17,8 +17,6 @@
* along with Campus INSAT. If not, see .
*/
-// @flow
-
const ICON_AMICALE = require('../../assets/amicale.png');
const ICON_CAMPUS = require('../../assets/android.icon.png');
diff --git a/src/constants/Styles.tsx b/src/constants/Styles.tsx
new file mode 100644
index 0000000..036c074
--- /dev/null
+++ b/src/constants/Styles.tsx
@@ -0,0 +1,23 @@
+import { StyleSheet } from 'react-native';
+
+const GENERAL_STYLES = StyleSheet.create({
+ centerHorizontal: {
+ marginLeft: 'auto',
+ marginRight: 'auto',
+ },
+ centerVertical: {
+ marginTop: 'auto',
+ marginBottom: 'auto',
+ },
+ center: {
+ marginLeft: 'auto',
+ marginRight: 'auto',
+ marginTop: 'auto',
+ marginBottom: 'auto',
+ },
+ flex: {
+ flex: 1,
+ },
+});
+
+export default GENERAL_STYLES;
diff --git a/src/constants/Update.tsx b/src/constants/Update.tsx
index 807b088..0ed64d6 100644
--- a/src/constants/Update.tsx
+++ b/src/constants/Update.tsx
@@ -19,7 +19,7 @@
import * as React from 'react';
import i18n from 'i18n-js';
-import type {IntroSlideType} from '../components/Overrides/CustomIntroSlider';
+import type { IntroSlideType } from '../components/Overrides/CustomIntroSlider';
import MascotIntroWelcome from '../components/Intro/MascotIntroWelcome';
import IntroIcon from '../components/Intro/IconIntro';
diff --git a/src/managers/AprilFoolsManager.ts b/src/managers/AprilFoolsManager.ts
index d609db0..ff04e9c 100644
--- a/src/managers/AprilFoolsManager.ts
+++ b/src/managers/AprilFoolsManager.ts
@@ -17,8 +17,8 @@
* along with Campus INSAT. If not, see .
*/
-import type {ProxiwashMachineType} from '../screens/Proxiwash/ProxiwashScreen';
-import type {RuFoodCategoryType} from '../screens/Services/SelfMenuScreen';
+import type { ProxiwashMachineType } from '../screens/Proxiwash/ProxiwashScreen';
+import type { RuFoodCategoryType } from '../screens/Services/SelfMenuScreen';
/**
* Singleton class used to manage april fools
@@ -67,13 +67,13 @@ export default class AprilFoolsManager {
* @returns {Object}
*/
static getFakeMenuItem(
- menu: Array,
+ menu: Array
): Array {
- menu[1].dishes.splice(4, 0, {name: 'Coq au vin'});
- menu[1].dishes.splice(2, 0, {name: "Bat'Soupe"});
- menu[1].dishes.splice(1, 0, {name: 'Pave de loup'});
- menu[1].dishes.splice(0, 0, {name: 'Béranger à point'});
- menu[1].dishes.splice(0, 0, {name: "Pieds d'Arnaud"});
+ menu[1].dishes.splice(4, 0, { name: 'Coq au vin' });
+ menu[1].dishes.splice(2, 0, { name: "Bat'Soupe" });
+ menu[1].dishes.splice(1, 0, { name: 'Pave de loup' });
+ menu[1].dishes.splice(0, 0, { name: 'Béranger à point' });
+ menu[1].dishes.splice(0, 0, { name: "Pieds d'Arnaud" });
return menu;
}
@@ -83,7 +83,7 @@ export default class AprilFoolsManager {
* @param dryers
*/
static getNewProxiwashDryerOrderedList(
- dryers: Array | null,
+ dryers: Array | null
) {
if (dryers != null) {
const second = dryers[1];
@@ -98,7 +98,7 @@ export default class AprilFoolsManager {
* @param washers
*/
static getNewProxiwashWasherOrderedList(
- washers: Array | null,
+ washers: Array | null
) {
if (washers != null) {
const first = washers[0];
@@ -129,7 +129,7 @@ export default class AprilFoolsManager {
* @returns {{colors: {textDisabled: string, agendaDayTextColor: string, surface: string, background: string, dividerBackground: string, accent: string, agendaBackgroundColor: string, tabIcon: string, card: string, primary: string}}}
*/
static getAprilFoolsTheme(
- currentTheme: ReactNativePaper.Theme,
+ currentTheme: ReactNativePaper.Theme
): ReactNativePaper.Theme {
return {
...currentTheme,
diff --git a/src/managers/AsyncStorageManager.ts b/src/managers/AsyncStorageManager.ts
index ac0155c..178cef0 100644
--- a/src/managers/AsyncStorageManager.ts
+++ b/src/managers/AsyncStorageManager.ts
@@ -18,7 +18,7 @@
*/
import AsyncStorage from '@react-native-community/async-storage';
-import {SERVICES_KEY} from './ServicesManager';
+import { SERVICES_KEY } from './ServicesManager';
/**
* Singleton used to manage preferences.
@@ -29,7 +29,7 @@ import {SERVICES_KEY} from './ServicesManager';
export default class AsyncStorageManager {
static instance: AsyncStorageManager | null = null;
- static PREFERENCES: {[key: string]: {key: string; default: string}} = {
+ static PREFERENCES: { [key: string]: { key: string; default: string } } = {
debugUnlocked: {
key: 'debugUnlocked',
default: '0',
@@ -130,7 +130,7 @@ export default class AsyncStorageManager {
},
};
- private currentPreferences: {[key: string]: string};
+ private currentPreferences: { [key: string]: string };
constructor() {
this.currentPreferences = {};
@@ -155,7 +155,7 @@ export default class AsyncStorageManager {
*/
static set(
key: string,
- value: number | string | boolean | object | Array,
+ value: number | string | boolean | object | Array
) {
AsyncStorageManager.getInstance().setPreference(key, value);
}
@@ -209,7 +209,7 @@ export default class AsyncStorageManager {
* @return {Promise}
*/
async loadPreferences() {
- return new Promise((resolve: () => void) => {
+ return new Promise((resolve: (val: void) => void) => {
const prefKeys: Array = [];
// Get all available keys
Object.keys(AsyncStorageManager.PREFERENCES).forEach((key: string) => {
@@ -240,7 +240,7 @@ export default class AsyncStorageManager {
*/
setPreference(
key: string,
- value: number | string | boolean | object | Array,
+ value: number | string | boolean | object | Array
) {
if (AsyncStorageManager.PREFERENCES[key] != null) {
let convertedValue;
diff --git a/src/managers/ConnectionManager.ts b/src/managers/ConnectionManager.ts
index a200486..12227d8 100644
--- a/src/managers/ConnectionManager.ts
+++ b/src/managers/ConnectionManager.ts
@@ -17,11 +17,9 @@
* along with Campus INSAT. If not, see .
*/
-// @flow
-
import * as Keychain from 'react-native-keychain';
-import type {ApiDataLoginType} from '../utils/WebData';
-import {apiRequest, ERROR_TYPE} from '../utils/WebData';
+import type { ApiDataLoginType } from '../utils/WebData';
+import { apiRequest, ERROR_TYPE } from '../utils/WebData';
/**
* champ: error
@@ -84,7 +82,7 @@ export default class ConnectionManager {
}
resolve();
})
- .catch(resolve);
+ .catch(() => resolve());
}
});
}
@@ -159,7 +157,7 @@ export default class ConnectionManager {
}
})
.catch((error: number): void => reject(error));
- },
+ }
);
}
@@ -172,7 +170,7 @@ export default class ConnectionManager {
*/
async authenticatedRequest(
path: string,
- params: {[key: string]: any},
+ params: { [key: string]: any }
): Promise {
return new Promise(
(resolve: (response: T) => void, reject: (error: number) => void) => {
@@ -187,7 +185,7 @@ export default class ConnectionManager {
} else {
reject(ERROR_TYPE.TOKEN_RETRIEVE);
}
- },
+ }
);
}
}
diff --git a/src/managers/DashboardManager.ts b/src/managers/DashboardManager.ts
index 12035a6..34417c7 100644
--- a/src/managers/DashboardManager.ts
+++ b/src/managers/DashboardManager.ts
@@ -17,17 +17,15 @@
* along with Campus INSAT. If not, see .
*/
-// @flow
-
-import type {ServiceItemType} from './ServicesManager';
+import type { ServiceItemType } from './ServicesManager';
import ServicesManager from './ServicesManager';
-import {getSublistWithIds} from '../utils/Services';
+import { getSublistWithIds } from '../utils/Services';
import AsyncStorageManager from './AsyncStorageManager';
export default class DashboardManager extends ServicesManager {
getCurrentDashboard(): Array {
const dashboardIdList = AsyncStorageManager.getObject>(
- AsyncStorageManager.PREFERENCES.dashboardItems.key,
+ AsyncStorageManager.PREFERENCES.dashboardItems.key
);
const allDatasets = [
...this.amicaleDataset,
diff --git a/src/managers/DateManager.ts b/src/managers/DateManager.ts
index f699e68..02b4207 100644
--- a/src/managers/DateManager.ts
+++ b/src/managers/DateManager.ts
@@ -84,7 +84,7 @@ export default class DateManager {
date.setFullYear(
parseInt(dateArray[0], 10),
parseInt(dateArray[1], 10) - 1,
- parseInt(dateArray[2], 10),
+ parseInt(dateArray[2], 10)
);
return `${this.daysOfWeek[date.getDay()]} ${date.getDate()} ${
this.monthsOfYear[date.getMonth()]
diff --git a/src/managers/ServicesManager.ts b/src/managers/ServicesManager.ts
index c1c6eb8..c16bfc0 100644
--- a/src/managers/ServicesManager.ts
+++ b/src/managers/ServicesManager.ts
@@ -18,10 +18,10 @@
*/
import i18n from 'i18n-js';
-import {StackNavigationProp} from '@react-navigation/stack';
+import { StackNavigationProp } from '@react-navigation/stack';
import AvailableWebsites from '../constants/AvailableWebsites';
import ConnectionManager from './ConnectionManager';
-import type {FullDashboardType} from '../screens/Home/HomeScreen';
+import type { FullDashboardType } from '../screens/Home/HomeScreen';
import getStrippedServicesList from '../utils/Services';
// AMICALE
@@ -337,7 +337,7 @@ export default class ServicesManager {
if (ConnectionManager.getInstance().isLoggedIn()) {
this.navigation.navigate(route);
} else {
- this.navigation.navigate('login', {nextScreen: route});
+ this.navigation.navigate('login', { nextScreen: route });
}
}
diff --git a/src/managers/ThemeManager.ts b/src/managers/ThemeManager.ts
index 11c2b31..9b4d341 100644
--- a/src/managers/ThemeManager.ts
+++ b/src/managers/ThemeManager.ts
@@ -17,8 +17,8 @@
* along with Campus INSAT. If not, see .
*/
-import {DarkTheme, DefaultTheme} from 'react-native-paper';
-import {Appearance} from 'react-native-appearance';
+import { DarkTheme, DefaultTheme } from 'react-native-paper';
+import { Appearance } from 'react-native-appearance';
import AsyncStorageManager from './AsyncStorageManager';
import AprilFoolsManager from './AprilFoolsManager';
@@ -235,14 +235,14 @@ export default class ThemeManager {
static getNightMode(): boolean {
return (
(AsyncStorageManager.getBool(
- AsyncStorageManager.PREFERENCES.nightMode.key,
+ AsyncStorageManager.PREFERENCES.nightMode.key
) &&
(!AsyncStorageManager.getBool(
- AsyncStorageManager.PREFERENCES.nightModeFollowSystem.key,
+ AsyncStorageManager.PREFERENCES.nightModeFollowSystem.key
) ||
colorScheme === 'no-preference')) ||
(AsyncStorageManager.getBool(
- AsyncStorageManager.PREFERENCES.nightModeFollowSystem.key,
+ AsyncStorageManager.PREFERENCES.nightModeFollowSystem.key
) &&
colorScheme === 'dark')
);
@@ -289,7 +289,7 @@ export default class ThemeManager {
setNightMode(isNightMode: boolean) {
AsyncStorageManager.set(
AsyncStorageManager.PREFERENCES.nightMode.key,
- isNightMode,
+ isNightMode
);
if (this.updateThemeCallback != null) {
this.updateThemeCallback();
diff --git a/src/navigation/MainNavigator.tsx b/src/navigation/MainNavigator.tsx
index a8da42f..e11f863 100644
--- a/src/navigation/MainNavigator.tsx
+++ b/src/navigation/MainNavigator.tsx
@@ -18,9 +18,12 @@
*/
import * as React from 'react';
-import {createStackNavigator, TransitionPresets} from '@react-navigation/stack';
+import {
+ createStackNavigator,
+ TransitionPresets,
+} from '@react-navigation/stack';
import i18n from 'i18n-js';
-import {Platform} from 'react-native';
+import { Platform } from 'react-native';
import SettingsScreen from '../screens/Other/Settings/SettingsScreen';
import AboutScreen from '../screens/About/AboutScreen';
import AboutDependenciesScreen from '../screens/About/AboutDependenciesScreen';
@@ -78,16 +81,16 @@ export enum MainRoutes {
Feedback = 'feedback',
}
-type DefaultParams = {[key in MainRoutes]: object | undefined};
+type DefaultParams = { [key in MainRoutes]: object | undefined };
export interface FullParamsList extends DefaultParams {
- login: {nextScreen: string};
+ 'login': { nextScreen: string };
'equipment-confirm': {
item?: DeviceType;
dates: [string, string];
};
- 'equipment-rent': {item?: DeviceType};
- gallery: {images: Array<{url: string}>};
+ 'equipment-rent': { item?: DeviceType };
+ 'gallery': { images: Array<{ url: string }> };
}
// Don't know why but TS is complaining without this
@@ -108,13 +111,14 @@ const defaultScreenOptions = {
const MainStack = createStackNavigator();
-function MainStackComponent(props: {createTabNavigator: () => JSX.Element}) {
- const {createTabNavigator} = props;
+function MainStackComponent(props: { createTabNavigator: () => JSX.Element }) {
+ const { createTabNavigator } = props;
return (
+ screenOptions={defaultScreenOptions}
+ >
JSX.Element}) {
MainRoutes.Settings,
MainStack,
SettingsScreen,
- i18n.t('screens.settings.title'),
+ i18n.t('screens.settings.title')
)}
{CreateScreenCollapsibleStack(
MainRoutes.DashboardEdit,
MainStack,
DashboardEditScreen,
- i18n.t('screens.settings.dashboardEdit.title'),
+ i18n.t('screens.settings.dashboardEdit.title')
)}
{CreateScreenCollapsibleStack(
MainRoutes.About,
MainStack,
AboutScreen,
- i18n.t('screens.about.title'),
+ i18n.t('screens.about.title')
)}
{CreateScreenCollapsibleStack(
MainRoutes.Dependencies,
MainStack,
AboutDependenciesScreen,
- i18n.t('screens.about.libs'),
+ i18n.t('screens.about.libs')
)}
{CreateScreenCollapsibleStack(
MainRoutes.Debug,
MainStack,
DebugScreen,
- i18n.t('screens.about.debug'),
+ i18n.t('screens.about.debug')
)}
{CreateScreenCollapsibleStack(
@@ -169,7 +173,7 @@ function MainStackComponent(props: {createTabNavigator: () => JSX.Element}) {
i18n.t('screens.game.title'),
true,
undefined,
- 'transparent',
+ 'transparent'
)}
JSX.Element}) {
LoginScreen,
i18n.t('screens.login.title'),
true,
- {headerTintColor: '#fff'},
- 'transparent',
+ { headerTintColor: '#fff' },
+ 'transparent'
)}
{getWebsiteStack('website', MainStack, WebsiteScreen, '')}
@@ -193,19 +197,19 @@ function MainStackComponent(props: {createTabNavigator: () => JSX.Element}) {
MainRoutes.SelfMenu,
MainStack,
SelfMenuScreen,
- i18n.t('screens.menu.title'),
+ i18n.t('screens.menu.title')
)}
{CreateScreenCollapsibleStack(
MainRoutes.Proximo,
MainStack,
ProximoMainScreen,
- i18n.t('screens.proximo.title'),
+ i18n.t('screens.proximo.title')
)}
{CreateScreenCollapsibleStack(
MainRoutes.ProximoList,
MainStack,
ProximoListScreen,
- i18n.t('screens.proximo.articleList'),
+ i18n.t('screens.proximo.articleList')
)}
{CreateScreenCollapsibleStack(
MainRoutes.ProximoAbout,
@@ -213,20 +217,20 @@ function MainStackComponent(props: {createTabNavigator: () => JSX.Element}) {
ProximoAboutScreen,
i18n.t('screens.proximo.title'),
true,
- {...modalTransition},
+ { ...modalTransition }
)}
{CreateScreenCollapsibleStack(
MainRoutes.Profile,
MainStack,
ProfileScreen,
- i18n.t('screens.profile.title'),
+ i18n.t('screens.profile.title')
)}
{CreateScreenCollapsibleStack(
MainRoutes.ClubList,
MainStack,
ClubListScreen,
- i18n.t('screens.clubs.title'),
+ i18n.t('screens.clubs.title')
)}
{CreateScreenCollapsibleStack(
MainRoutes.ClubInformation,
@@ -234,7 +238,7 @@ function MainStackComponent(props: {createTabNavigator: () => JSX.Element}) {
ClubDisplayScreen,
i18n.t('screens.clubs.details'),
true,
- {...modalTransition},
+ { ...modalTransition }
)}
{CreateScreenCollapsibleStack(
MainRoutes.ClubAbout,
@@ -242,37 +246,37 @@ function MainStackComponent(props: {createTabNavigator: () => JSX.Element}) {
ClubAboutScreen,
i18n.t('screens.clubs.title'),
true,
- {...modalTransition},
+ { ...modalTransition }
)}
{CreateScreenCollapsibleStack(
MainRoutes.EquipmentList,
MainStack,
EquipmentScreen,
- i18n.t('screens.equipment.title'),
+ i18n.t('screens.equipment.title')
)}
{CreateScreenCollapsibleStack(
MainRoutes.EquipmentRent,
MainStack,
EquipmentLendScreen,
- i18n.t('screens.equipment.book'),
+ i18n.t('screens.equipment.book')
)}
{CreateScreenCollapsibleStack(
MainRoutes.EquipmentConfirm,
MainStack,
EquipmentConfirmScreen,
- i18n.t('screens.equipment.confirm'),
+ i18n.t('screens.equipment.confirm')
)}
{CreateScreenCollapsibleStack(
MainRoutes.Vote,
MainStack,
VoteScreen,
- i18n.t('screens.vote.title'),
+ i18n.t('screens.vote.title')
)}
{CreateScreenCollapsibleStack(
MainRoutes.Feedback,
MainStack,
BugReportScreen,
- i18n.t('screens.feedback.title'),
+ i18n.t('screens.feedback.title')
)}
);
@@ -280,7 +284,7 @@ function MainStackComponent(props: {createTabNavigator: () => JSX.Element}) {
type PropsType = {
defaultHomeRoute: string | null;
- defaultHomeData: {[key: string]: string};
+ defaultHomeData: { [key: string]: string };
};
export default function MainNavigator(props: PropsType) {
diff --git a/src/navigation/TabNavigator.tsx b/src/navigation/TabNavigator.tsx
index e53ce76..972eb4e 100644
--- a/src/navigation/TabNavigator.tsx
+++ b/src/navigation/TabNavigator.tsx
@@ -18,14 +18,17 @@
*/
import * as React from 'react';
-import {createStackNavigator, TransitionPresets} from '@react-navigation/stack';
-import {createBottomTabNavigator} from '@react-navigation/bottom-tabs';
+import {
+ createStackNavigator,
+ TransitionPresets,
+} from '@react-navigation/stack';
+import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
-import {Title, useTheme} from 'react-native-paper';
-import {Platform} from 'react-native';
+import { Title, useTheme } from 'react-native-paper';
+import { Platform, StyleSheet } from 'react-native';
import i18n from 'i18n-js';
-import {createCollapsibleStack} from 'react-navigation-collapsible';
-import {View} from 'react-native-animatable';
+import { createCollapsibleStack } from 'react-navigation-collapsible';
+import { View } from 'react-native-animatable';
import HomeScreen from '../screens/Home/HomeScreen';
import PlanningScreen from '../screens/Planning/PlanningScreen';
import PlanningDisplayScreen from '../screens/Planning/PlanningDisplayScreen';
@@ -45,7 +48,7 @@ import {
CreateScreenCollapsibleStack,
getWebsiteStack,
} from '../utils/CollapsibleUtils';
-import Mascot, {MASCOT_STYLE} from '../components/Mascot/Mascot';
+import Mascot, { MASCOT_STYLE } from '../components/Mascot/Mascot';
const modalTransition =
Platform.OS === 'ios'
@@ -58,6 +61,20 @@ const defaultScreenOptions = {
...modalTransition,
};
+const styles = StyleSheet.create({
+ header: {
+ flexDirection: 'row',
+ },
+ mascot: {
+ width: 50,
+ },
+ title: {
+ marginLeft: 10,
+ marginTop: 'auto',
+ marginBottom: 'auto',
+ },
+});
+
const ServicesStack = createStackNavigator();
function ServicesStackComponent() {
@@ -65,24 +82,25 @@ function ServicesStackComponent() {
+ screenOptions={defaultScreenOptions}
+ >
{CreateScreenCollapsibleStack(
'index',
ServicesStack,
WebsitesHomeScreen,
- i18n.t('screens.services.title'),
+ i18n.t('screens.services.title')
)}
{CreateScreenCollapsibleStack(
'services-section',
ServicesStack,
ServicesSectionScreen,
- 'SECTION',
+ 'SECTION'
)}
{CreateScreenCollapsibleStack(
'amicale-contact',
ServicesStack,
AmicaleContactScreen,
- i18n.t('screens.amicaleAbout.title'),
+ i18n.t('screens.amicaleAbout.title')
)}
);
@@ -95,18 +113,19 @@ function ProxiwashStackComponent() {
+ screenOptions={defaultScreenOptions}
+ >
{CreateScreenCollapsibleStack(
'index',
ProxiwashStack,
ProxiwashScreen,
- i18n.t('screens.proxiwash.title'),
+ i18n.t('screens.proxiwash.title')
)}
{CreateScreenCollapsibleStack(
'proxiwash-about',
ProxiwashStack,
ProxiwashAboutScreen,
- i18n.t('screens.proxiwash.title'),
+ i18n.t('screens.proxiwash.title')
)}
);
@@ -119,17 +138,18 @@ function PlanningStackComponent() {
+ screenOptions={defaultScreenOptions}
+ >
{CreateScreenCollapsibleStack(
'planning-information',
PlanningStack,
PlanningDisplayScreen,
- i18n.t('screens.planning.eventDetails'),
+ i18n.t('screens.planning.eventDetails')
)}
);
@@ -139,18 +159,19 @@ const HomeStack = createStackNavigator();
function HomeStackComponent(
initialRoute: string | null,
- defaultData: {[key: string]: string},
+ defaultData: { [key: string]: string }
) {
let params;
if (initialRoute) {
- params = {data: defaultData, nextScreen: initialRoute, shouldOpen: true};
+ params = { data: defaultData, nextScreen: initialRoute, shouldOpen: true };
}
- const {colors} = useTheme();
+ const { colors } = useTheme();
return (
+ screenOptions={defaultScreenOptions}
+ >
{createCollapsibleStack(
(
-
+
-
+
{i18n.t('screens.home.title')}
@@ -194,31 +208,31 @@ function HomeStackComponent(
{
collapsedColor: colors.surface,
useNativeDriver: true,
- },
+ }
)}
{CreateScreenCollapsibleStack(
'club-information',
HomeStack,
ClubDisplayScreen,
- i18n.t('screens.clubs.details'),
+ i18n.t('screens.clubs.details')
)}
{CreateScreenCollapsibleStack(
'feed-information',
HomeStack,
FeedItemScreen,
- i18n.t('screens.home.feed'),
+ i18n.t('screens.home.feed')
)}
{CreateScreenCollapsibleStack(
'planning-information',
HomeStack,
PlanningDisplayScreen,
- i18n.t('screens.planning.eventDetails'),
+ i18n.t('screens.planning.eventDetails')
)}
);
@@ -231,18 +245,19 @@ function PlanexStackComponent() {
+ screenOptions={defaultScreenOptions}
+ >
{getWebsiteStack(
'index',
PlanexStack,
PlanexScreen,
- i18n.t('screens.planex.title'),
+ i18n.t('screens.planex.title')
)}
{CreateScreenCollapsibleStack(
'group-select',
PlanexStack,
GroupSelectionScreen,
- '',
+ ''
)}
);
@@ -252,7 +267,7 @@ const Tab = createBottomTabNavigator();
type PropsType = {
defaultHomeRoute: string | null;
- defaultHomeData: {[key: string]: string};
+ defaultHomeData: { [key: string]: string };
};
export default class TabNavigator extends React.Component {
@@ -264,7 +279,7 @@ export default class TabNavigator extends React.Component {
this.defaultRoute = 'home';
if (!props.defaultHomeRoute) {
this.defaultRoute = AsyncStorageManager.getString(
- AsyncStorageManager.PREFERENCES.defaultStartScreen.key,
+ AsyncStorageManager.PREFERENCES.defaultStartScreen.key
).toLowerCase();
}
this.createHomeStackComponent = () =>
@@ -275,31 +290,32 @@ export default class TabNavigator extends React.Component {
return (
}>
+ tabBar={(tabProps) => }
+ >
);
diff --git a/src/screens/About/AboutDependenciesScreen.tsx b/src/screens/About/AboutDependenciesScreen.tsx
index a7013d9..f98d072 100644
--- a/src/screens/About/AboutDependenciesScreen.tsx
+++ b/src/screens/About/AboutDependenciesScreen.tsx
@@ -18,8 +18,8 @@
*/
import * as React from 'react';
-import {List} from 'react-native-paper';
-import {View} from 'react-native-animatable';
+import { List } from 'react-native-paper';
+import { View } from 'react-native-animatable';
import CollapsibleFlatList from '../../components/Collapsible/CollapsibleFlatList';
import packageJson from '../../../package.json';
@@ -40,7 +40,7 @@ function generateListFromObject(object: {
const list: Array = [];
const keys = Object.keys(object);
keys.forEach((key: string) => {
- list.push({name: key, version: object[key]});
+ list.push({ name: key, version: object[key] });
});
return list;
}
@@ -60,18 +60,18 @@ export default class AboutDependenciesScreen extends React.Component<{}> {
keyExtractor = (item: ListItemType): string => item.name;
- getRenderItem = ({item}: {item: ListItemType}) => (
+ getRenderItem = ({ item }: { item: ListItemType }) => (
);
getItemLayout = (
data: Array | null | undefined,
- index: number,
- ): {length: number; offset: number; index: number} => ({
+ index: number
+ ): { length: number; offset: number; index: number } => ({
length: LIST_ITEM_HEIGHT,
offset: LIST_ITEM_HEIGHT * index,
index,
diff --git a/src/screens/About/AboutScreen.tsx b/src/screens/About/AboutScreen.tsx
index 1d55ac9..f1fc384 100644
--- a/src/screens/About/AboutScreen.tsx
+++ b/src/screens/About/AboutScreen.tsx
@@ -18,14 +18,22 @@
*/
import * as React from 'react';
-import {FlatList, Linking, Platform, Image, View} from 'react-native';
+import {
+ FlatList,
+ Linking,
+ Platform,
+ Image,
+ View,
+ StyleSheet,
+} from 'react-native';
import i18n from 'i18n-js';
-import {Avatar, Card, List} from 'react-native-paper';
-import {StackNavigationProp} from '@react-navigation/stack';
+import { Avatar, Card, List } from 'react-native-paper';
+import { StackNavigationProp } from '@react-navigation/stack';
import packageJson from '../../../package.json';
import CollapsibleFlatList from '../../components/Collapsible/CollapsibleFlatList';
import OptionsDialog from '../../components/Dialogs/OptionsDialog';
-import type {OptionsDialogButtonType} from '../../components/Dialogs/OptionsDialog';
+import type { OptionsDialogButtonType } from '../../components/Dialogs/OptionsDialog';
+import GENERAL_STYLES from '../../constants/Styles';
const APP_LOGO = require('../../../assets/android.icon.round.png');
@@ -69,6 +77,15 @@ type StateType = {
dialogButtons: Array;
};
+const styles = StyleSheet.create({
+ card: {
+ marginBottom: 10,
+ },
+ list: {
+ padding: 5,
+ },
+});
+
/**
* Opens a link in the device's browser
* @param link The link to open
@@ -171,7 +188,7 @@ class AboutScreen extends React.Component {
},
{
onPressCallback: () => {
- const {navigation} = this.props;
+ const { navigation } = this.props;
navigation.navigate('feedback');
},
icon: 'bug',
@@ -228,7 +245,7 @@ class AboutScreen extends React.Component {
},
{
onPressCallback: () => {
- const {navigation} = this.props;
+ const { navigation } = this.props;
navigation.navigate('dependencies');
},
icon: 'developer-board',
@@ -267,7 +284,7 @@ class AboutScreen extends React.Component {
...this.getMemberData(this.majorContributors),
{
onPressCallback: () => {
- const {navigation} = this.props;
+ const { navigation } = this.props;
navigation.navigate('feedback');
},
icon: 'hand-pointing-right',
@@ -306,7 +323,7 @@ class AboutScreen extends React.Component {
onPress: this.onDialogDismiss,
},
];
- const {linkedin, trollLink, mail} = user;
+ const { linkedin, trollLink, mail } = user;
if (linkedin != null) {
dialogBtn.push({
title: '',
@@ -348,14 +365,14 @@ class AboutScreen extends React.Component {
*/
getAppCard() {
return (
-
+
(
)}
/>
@@ -377,7 +394,7 @@ class AboutScreen extends React.Component {
*/
getTeamCard() {
return (
-
+
(
@@ -402,7 +419,7 @@ class AboutScreen extends React.Component {
*/
getThanksCard() {
return (
-
+
(
@@ -427,7 +444,7 @@ class AboutScreen extends React.Component {
*/
getTechnoCard() {
return (
-
+
(
@@ -478,7 +495,7 @@ class AboutScreen extends React.Component {
marginRight: number;
marginVertical?: number;
};
- },
+ }
) {
return (
@@ -490,7 +507,7 @@ class AboutScreen extends React.Component {
*
* @returns {*}
*/
- getCardItem = ({item}: {item: ListItemType}) => {
+ getCardItem = ({ item }: { item: ListItemType }) => {
const getItemIcon = (props: {
color: string;
style?: {
@@ -523,7 +540,7 @@ class AboutScreen extends React.Component {
* @param item The item to show
* @return {*}
*/
- getMainCard = ({item}: {item: {id: string}}) => {
+ getMainCard = ({ item }: { item: { id: string } }) => {
switch (item.id) {
case 'app':
return this.getAppCard();
@@ -539,7 +556,7 @@ class AboutScreen extends React.Component {
};
onDialogDismiss = () => {
- this.setState({dialogVisible: false});
+ this.setState({ dialogVisible: false });
};
/**
@@ -551,14 +568,11 @@ class AboutScreen extends React.Component {
keyExtractor = (item: ListItemType): string => item.icon;
render() {
- const {state} = this;
+ const { state } = this;
return (
-
+
diff --git a/src/screens/About/DebugScreen.tsx b/src/screens/About/DebugScreen.tsx
index 31c2afc..ab8d07f 100644
--- a/src/screens/About/DebugScreen.tsx
+++ b/src/screens/About/DebugScreen.tsx
@@ -18,7 +18,7 @@
*/
import * as React from 'react';
-import {View} from 'react-native';
+import { StyleSheet, View } from 'react-native';
import {
Button,
List,
@@ -27,7 +27,7 @@ import {
Title,
withTheme,
} from 'react-native-paper';
-import {Modalize} from 'react-native-modalize';
+import { Modalize } from 'react-native-modalize';
import CustomModal from '../../components/Overrides/CustomModal';
import AsyncStorageManager from '../../managers/AsyncStorageManager';
import CollapsibleFlatList from '../../components/Collapsible/CollapsibleFlatList';
@@ -47,6 +47,17 @@ type StateType = {
currentPreferences: Array;
};
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ padding: 20,
+ },
+ buttonContainer: {
+ flexDirection: 'row',
+ marginTop: 10,
+ },
+});
+
/**
* Class defining the Debug screen.
* This screen allows the user to get and modify information on the app/device.
@@ -67,7 +78,7 @@ class DebugScreen extends React.Component {
this.modalInputValue = '';
const currentPreferences: Array = [];
Object.values(AsyncStorageManager.PREFERENCES).forEach((object: any) => {
- const newObject: PreferenceItemType = {...object};
+ const newObject: PreferenceItemType = { ...object };
newObject.current = AsyncStorageManager.getString(newObject.key);
currentPreferences.push(newObject);
});
@@ -83,7 +94,7 @@ class DebugScreen extends React.Component {
* @return {*}
*/
getModalContent() {
- const {props, state} = this;
+ const { props, state } = this;
let key = '';
let defaultValue = '';
let current = '';
@@ -95,11 +106,7 @@ class DebugScreen extends React.Component {
}
return (
-
+
{key}
Default: {defaultValue}
Current: {current}
@@ -109,18 +116,15 @@ class DebugScreen extends React.Component {
this.modalInputValue = text;
}}
/>
-
+
{
this.saveNewPrefs(key, this.modalInputValue);
- }}>
+ }}
+ >
Save new value
{
color={props.theme.colors.danger}
onPress={() => {
this.saveNewPrefs(key, defaultValue);
- }}>
+ }}
+ >
Reset to default
@@ -137,7 +142,7 @@ class DebugScreen extends React.Component {
);
}
- getRenderItem = ({item}: {item: PreferenceItemType}) => {
+ getRenderItem = ({ item }: { item: PreferenceItemType }) => {
return (
{
* @returns {number}
*/
findIndexOfKey(key: string): number {
- const {currentPreferences} = this.state;
+ const { currentPreferences } = this.state;
let index = -1;
for (let i = 0; i < currentPreferences.length; i += 1) {
if (currentPreferences[i].key === key) {
@@ -202,7 +207,7 @@ class DebugScreen extends React.Component {
} => {
const currentPreferences = [...prevState.currentPreferences];
currentPreferences[this.findIndexOfKey(key)].current = value;
- return {currentPreferences};
+ return { currentPreferences };
});
AsyncStorageManager.set(key, value);
if (this.modalRef) {
@@ -211,7 +216,7 @@ class DebugScreen extends React.Component {
}
render() {
- const {state} = this;
+ const { state } = this;
return (
diff --git a/src/screens/Amicale/AmicaleContactScreen.tsx b/src/screens/Amicale/AmicaleContactScreen.tsx
index 28b6919..0c6627f 100644
--- a/src/screens/Amicale/AmicaleContactScreen.tsx
+++ b/src/screens/Amicale/AmicaleContactScreen.tsx
@@ -18,8 +18,8 @@
*/
import * as React from 'react';
-import {FlatList, Image, Linking, View} from 'react-native';
-import {Avatar, Card, List, Text} from 'react-native-paper';
+import { FlatList, Image, Linking, StyleSheet, View } from 'react-native';
+import { Avatar, Card, List, Text } from 'react-native-paper';
import i18n from 'i18n-js';
import CollapsibleFlatList from '../../components/Collapsible/CollapsibleFlatList';
@@ -31,6 +31,24 @@ type DatasetItemType = {
icon: string;
};
+const styles = StyleSheet.create({
+ imageContainer: {
+ width: '100%',
+ height: 100,
+ marginTop: 20,
+ marginBottom: 20,
+ justifyContent: 'center',
+ alignItems: 'center',
+ },
+ image: {
+ flex: 1,
+ resizeMode: 'contain',
+ },
+ card: {
+ margin: 5,
+ },
+});
+
/**
* Class defining a planning event information page.
*/
@@ -105,7 +123,7 @@ class AmicaleContactScreen extends React.Component<{}> {
/>
);
- getRenderItem = ({item}: {item: DatasetItemType}) => {
+ getRenderItem = ({ item }: { item: DatasetItemType }) => {
const onPress = () => {
Linking.openURL(`mailto:${item.email}`);
};
@@ -129,22 +147,14 @@ class AmicaleContactScreen extends React.Component<{}> {
getScreen = () => {
return (
-
+
-
+
{
render() {
return (
diff --git a/src/screens/Amicale/Clubs/ClubAboutScreen.tsx b/src/screens/Amicale/Clubs/ClubAboutScreen.tsx
index 3164432..e7234dc 100644
--- a/src/screens/Amicale/Clubs/ClubAboutScreen.tsx
+++ b/src/screens/Amicale/Clubs/ClubAboutScreen.tsx
@@ -18,8 +18,8 @@
*/
import * as React from 'react';
-import {Image, View} from 'react-native';
-import {Card, Avatar, Text} from 'react-native-paper';
+import { Image, StyleSheet, View } from 'react-native';
+import { Card, Avatar, Text } from 'react-native-paper';
import i18n from 'i18n-js';
import Autolink from 'react-native-autolink';
import CollapsibleScrollView from '../../../components/Collapsible/CollapsibleScrollView';
@@ -27,26 +27,39 @@ const AMICALE_ICON = require('../../../../assets/amicale.png');
const CONTACT_LINK = 'clubs@amicale-insat.fr';
+const styles = StyleSheet.create({
+ container: {
+ padding: 5,
+ },
+ imageContainer: {
+ width: '100%',
+ height: 100,
+ marginTop: 20,
+ marginBottom: 20,
+ justifyContent: 'center',
+ alignItems: 'center',
+ },
+ image: {
+ flex: 1,
+ resizeMode: 'contain',
+ },
+ card: {
+ margin: 5,
+ },
+});
+
function ClubAboutScreen() {
return (
-
-
+
+
{i18n.t('screens.clubs.about.text')}
-
+
{
categories.forEach((cat: number | null) => {
if (cat != null) {
final.push(
-
+
{this.getCategoryName(cat)}
- ,
+
);
}
});
- return {final};
+ return {final};
}
/**
@@ -134,7 +165,7 @@ class ClubDisplayScreen extends React.Component {
* @returns {*}
*/
getManagersRender(managers: Array, email: string | null) {
- const {props} = this;
+ const { props } = this;
const managersListView: Array = [];
managers.forEach((item: string) => {
managersListView.push({item});
@@ -142,7 +173,11 @@ class ClubDisplayScreen extends React.Component {
const hasManagers = managers.length > 0;
return (
+ style={{
+ marginBottom: CustomTabBar.TAB_BAR_HEIGHT + 20,
+ ...styles.card,
+ }}
+ >
{
left={(iconProps) => (
{
onPress={() => {
Linking.openURL(`mailto:${destinationEmail}`);
}}
- style={{marginLeft: 'auto'}}>
+ style={styles.emailButton}
+ >
{text}
@@ -205,19 +241,12 @@ class ClubDisplayScreen extends React.Component {
if (data != null) {
this.updateHeaderTitle(data);
return (
-
+
{this.getCategoriesRender(data.category)}
{data.logo !== null ? (
) : (
@@ -244,12 +273,12 @@ class ClubDisplayScreen extends React.Component {
* @param data The club data
*/
updateHeaderTitle(data: ClubType) {
- const {props} = this;
- props.navigation.setOptions({title: data.name});
+ const { props } = this;
+ props.navigation.setOptions({ title: data.name });
}
render() {
- const {props} = this;
+ const { props } = this;
if (this.shouldFetchData) {
return (
{
requests={[
{
link: 'clubs/info',
- params: {id: this.clubId},
+ params: { id: this.clubId },
mandatory: true,
},
]}
diff --git a/src/screens/Amicale/Clubs/ClubListScreen.tsx b/src/screens/Amicale/Clubs/ClubListScreen.tsx
index f5a46ef..755bb83 100644
--- a/src/screens/Amicale/Clubs/ClubListScreen.tsx
+++ b/src/screens/Amicale/Clubs/ClubListScreen.tsx
@@ -18,13 +18,16 @@
*/
import * as React from 'react';
-import {Platform} from 'react-native';
-import {Searchbar} from 'react-native-paper';
+import { Platform } from 'react-native';
+import { Searchbar } from 'react-native-paper';
import i18n from 'i18n-js';
-import {StackNavigationProp} from '@react-navigation/stack';
+import { StackNavigationProp } from '@react-navigation/stack';
import AuthenticatedScreen from '../../../components/Amicale/AuthenticatedScreen';
import ClubListItem from '../../../components/Lists/Clubs/ClubListItem';
-import {isItemInCategoryFilter, stringMatchQuery} from '../../../utils/Search';
+import {
+ isItemInCategoryFilter,
+ stringMatchQuery,
+} from '../../../utils/Search';
import ClubListHeader from '../../../components/Lists/Clubs/ClubListHeader';
import MaterialHeaderButtons, {
Item,
@@ -73,15 +76,15 @@ class ClubListScreen extends React.Component {
* Creates the header content
*/
componentDidMount() {
- const {props} = this;
+ const { props } = this;
props.navigation.setOptions({
headerTitle: this.getSearchBar,
headerRight: this.getHeaderButtons,
headerBackTitleVisible: false,
headerTitleContainerStyle:
Platform.OS === 'ios'
- ? {marginHorizontal: 0, width: '70%'}
- : {marginHorizontal: 0, right: 50, left: 50},
+ ? { marginHorizontal: 0, width: '70%' }
+ : { marginHorizontal: 0, right: 50, left: 50 },
});
}
@@ -92,7 +95,7 @@ class ClubListScreen extends React.Component {
* @param item The article pressed
*/
onListItemPress(item: ClubType) {
- const {props} = this;
+ const { props } = this;
props.navigation.navigate('club-information', {
data: item,
categories: this.categories,
@@ -133,7 +136,7 @@ class ClubListScreen extends React.Component {
*/
getHeaderButtons = () => {
const onPress = () => {
- const {props} = this;
+ const { props } = this;
props.navigation.navigate('club-about');
};
return (
@@ -147,7 +150,7 @@ class ClubListScreen extends React.Component {
data: Array<{
categories: Array;
clubs: Array;
- } | null>,
+ } | null>
) => {
let categoryList: Array = [];
let clubList: Array = [];
@@ -175,7 +178,7 @@ class ClubListScreen extends React.Component {
* @returns {*}
*/
getListHeader() {
- const {state} = this;
+ const { state } = this;
return (
{
return cat;
};
- getRenderItem = ({item}: {item: ClubType}) => {
+ getRenderItem = ({ item }: { item: ClubType }) => {
const onPress = () => {
this.onListItemPress(item);
};
@@ -222,8 +225,8 @@ class ClubListScreen extends React.Component {
itemLayout = (
data: Array | null | undefined,
- index: number,
- ): {length: number; offset: number; index: number} => ({
+ index: number
+ ): { length: number; offset: number; index: number } => ({
length: LIST_ITEM_HEIGHT,
offset: LIST_ITEM_HEIGHT * index,
index,
@@ -239,7 +242,7 @@ class ClubListScreen extends React.Component {
* @param categoryId The category to add/remove from the filter
*/
updateFilteredData(filterStr: string | null, categoryId: number | null) {
- const {state} = this;
+ const { state } = this;
const newCategoriesState = [...state.currentlySelectedCategories];
let newStrState = state.currentSearchString;
if (filterStr !== null) {
@@ -268,7 +271,7 @@ class ClubListScreen extends React.Component {
* @returns {boolean}
*/
shouldRenderItem(item: ClubType): boolean {
- const {state} = this;
+ const { state } = this;
let shouldRender =
state.currentlySelectedCategories.length === 0 ||
isItemInCategoryFilter(state.currentlySelectedCategories, item.category);
@@ -279,7 +282,7 @@ class ClubListScreen extends React.Component {
}
render() {
- const {props} = this;
+ const { props } = this;
return (
-
+
-
-
- {item.name}
-
- ({i18n.t('screens.equipment.bail', {cost: item.caution})})
+
+
+ {item.name}
+
+ ({i18n.t('screens.equipment.bail', { cost: item.caution })})
-
+
{buttonText}
-
+
{i18n.t('screens.equipment.bookingConfirmedMessage')}
diff --git a/src/screens/Amicale/Equipment/EquipmentListScreen.tsx b/src/screens/Amicale/Equipment/EquipmentListScreen.tsx
index 608f082..54d5b98 100644
--- a/src/screens/Amicale/Equipment/EquipmentListScreen.tsx
+++ b/src/screens/Amicale/Equipment/EquipmentListScreen.tsx
@@ -18,16 +18,17 @@
*/
import * as React from 'react';
-import {View} from 'react-native';
-import {Button} from 'react-native-paper';
-import {StackNavigationProp} from '@react-navigation/stack';
+import { StyleSheet, View } from 'react-native';
+import { Button } from 'react-native-paper';
+import { StackNavigationProp } from '@react-navigation/stack';
import i18n from 'i18n-js';
import AuthenticatedScreen from '../../../components/Amicale/AuthenticatedScreen';
import EquipmentListItem from '../../../components/Lists/Equipment/EquipmentListItem';
import MascotPopup from '../../../components/Mascot/MascotPopup';
-import {MASCOT_STYLE} from '../../../components/Mascot/Mascot';
+import { MASCOT_STYLE } from '../../../components/Mascot/Mascot';
import AsyncStorageManager from '../../../managers/AsyncStorageManager';
import CollapsibleFlatList from '../../../components/Collapsible/CollapsibleFlatList';
+import GENERAL_STYLES from '../../../constants/Styles';
type PropsType = {
navigation: StackNavigationProp;
@@ -41,7 +42,7 @@ export type DeviceType = {
id: number;
name: string;
caution: number;
- booked_at: Array<{begin: string; end: string}>;
+ booked_at: Array<{ begin: string; end: string }>;
};
export type RentedDeviceType = {
@@ -53,10 +54,18 @@ export type RentedDeviceType = {
const LIST_ITEM_HEIGHT = 64;
+const styles = StyleSheet.create({
+ headerContainer: {
+ width: '100%',
+ marginTop: 10,
+ marginBottom: 10,
+ },
+});
+
class EquipmentListScreen extends React.Component {
userRents: null | Array;
- authRef: {current: null | AuthenticatedScreen};
+ authRef: { current: null | AuthenticatedScreen };
canRefresh: boolean;
@@ -65,7 +74,7 @@ class EquipmentListScreen extends React.Component {
this.userRents = null;
this.state = {
mascotDialogVisible: AsyncStorageManager.getBool(
- AsyncStorageManager.PREFERENCES.equipmentShowMascot.key,
+ AsyncStorageManager.PREFERENCES.equipmentShowMascot.key
),
};
this.canRefresh = false;
@@ -84,8 +93,8 @@ class EquipmentListScreen extends React.Component {
this.canRefresh = true;
};
- getRenderItem = ({item}: {item: DeviceType}) => {
- const {navigation} = this.props;
+ getRenderItem = ({ item }: { item: DeviceType }) => {
+ const { navigation } = this.props;
return (
{
*/
getListHeader() {
return (
-
+
+ style={GENERAL_STYLES.centerHorizontal}
+ >
{i18n.t('screens.equipment.mascotDialog.title')}
@@ -145,8 +147,10 @@ class EquipmentListScreen extends React.Component {
*/
getScreen = (
data: Array<
- {devices: Array} | {locations: Array} | null
- >,
+ | { devices: Array }
+ | { locations: Array }
+ | null
+ >
) => {
const [allDevices, userRents] = data;
if (userRents) {
@@ -161,7 +165,7 @@ class EquipmentListScreen extends React.Component {
ListHeaderComponent={this.getListHeader()}
data={
allDevices
- ? (allDevices as {devices: Array}).devices
+ ? (allDevices as { devices: Array }).devices
: null
}
/>
@@ -169,21 +173,21 @@ class EquipmentListScreen extends React.Component {
};
showMascotDialog = () => {
- this.setState({mascotDialogVisible: true});
+ this.setState({ mascotDialogVisible: true });
};
hideMascotDialog = () => {
AsyncStorageManager.set(
AsyncStorageManager.PREFERENCES.equipmentShowMascot.key,
- false,
+ false
);
- this.setState({mascotDialogVisible: false});
+ this.setState({ mascotDialogVisible: false });
};
render() {
- const {props, state} = this;
+ const { props, state } = this;
return (
-
+
{
item: DeviceType | null;
bookedDates: Array;
- bookRef: {current: null | (Animatable.View & View)};
+ bookRef: { current: null | (Animatable.View & View) };
canBookEquipment: boolean;
@@ -101,14 +146,14 @@ class EquipmentRentScreen extends React.Component {
this.item = null;
}
}
- const {item} = this;
+ const { item } = this;
if (item != null) {
this.lockedDates = {};
- item.booked_at.forEach((date: {begin: string; end: string}) => {
+ item.booked_at.forEach((date: { begin: string; end: string }) => {
const range = getValidRange(
new Date(date.begin),
new Date(date.end),
- null,
+ null
);
this.lockedDates = {
...this.lockedDates,
@@ -122,17 +167,17 @@ class EquipmentRentScreen extends React.Component {
* Captures focus and blur events to hook on android back button
*/
componentDidMount() {
- const {navigation} = this.props;
+ const { navigation } = this.props;
navigation.addListener('focus', () => {
BackHandler.addEventListener(
'hardwareBackPress',
- this.onBackButtonPressAndroid,
+ this.onBackButtonPressAndroid
);
});
navigation.addListener('blur', () => {
BackHandler.removeEventListener(
'hardwareBackPress',
- this.onBackButtonPressAndroid,
+ this.onBackButtonPressAndroid
);
});
}
@@ -152,11 +197,11 @@ class EquipmentRentScreen extends React.Component {
};
onDialogDismiss = () => {
- this.setState({dialogVisible: false});
+ this.setState({ dialogVisible: false });
};
onErrorDialogDismiss = () => {
- this.setState({errorDialogVisible: false});
+ this.setState({ errorDialogVisible: false });
};
/**
@@ -168,7 +213,7 @@ class EquipmentRentScreen extends React.Component {
*/
onDialogAccept = (): Promise => {
return new Promise((resolve: () => void) => {
- const {item, props} = this;
+ const { item, props } = this;
const start = this.getBookStartDate();
const end = this.getBookEndDate();
if (item != null && start != null && end != null) {
@@ -203,7 +248,7 @@ class EquipmentRentScreen extends React.Component {
}
getBookEndDate(): Date | null {
- const {length} = this.bookedDates;
+ const { length } = this.bookedDates;
return length > 0 ? new Date(this.bookedDates[length - 1]) : null;
}
@@ -247,7 +292,7 @@ class EquipmentRentScreen extends React.Component {
};
showDialog = () => {
- this.setState({dialogVisible: true});
+ this.setState({ dialogVisible: true });
};
/**
@@ -288,14 +333,14 @@ class EquipmentRentScreen extends React.Component {
}
updateMarkedSelection() {
- const {theme} = this.props;
+ const { theme } = this.props;
this.setState({
markedDates: generateMarkedDates(true, theme, this.bookedDates),
});
}
render() {
- const {item, props, state} = this;
+ const { item, props, state } = this;
const start = this.getBookStartDate();
const end = this.getBookEndDate();
let subHeadingText;
@@ -315,28 +360,17 @@ class EquipmentRentScreen extends React.Component {
const isAvailable = isEquipmentAvailable(item);
const firstAvailability = getFirstEquipmentAvailability(item);
return (
-
+
-
+
-
-
-
- {item.name}
-
-
- ({i18n.t('screens.equipment.bail', {cost: item.caution})})
+
+
+ {item.name}
+
+ (
+ {i18n.t('screens.equipment.bail', { cost: item.caution })}
+ )
@@ -348,17 +382,13 @@ class EquipmentRentScreen extends React.Component {
? props.theme.colors.success
: props.theme.colors.primary
}
- mode="text">
+ mode="text"
+ >
{i18n.t('screens.equipment.available', {
date: getRelativeDateString(firstAvailability),
})}
-
+
{subHeadingText}
@@ -382,30 +412,30 @@ class EquipmentRentScreen extends React.Component {
hideArrows={false}
// Date marking style [simple/period/multi-dot/custom]. Default = 'simple'
markingType={'period'}
- markedDates={{...this.lockedDates, ...state.markedDates}}
+ markedDates={{ ...this.lockedDates, ...state.markedDates }}
theme={{
- backgroundColor: props.theme.colors.agendaBackgroundColor,
- calendarBackground: props.theme.colors.background,
- textSectionTitleColor: props.theme.colors.agendaDayTextColor,
- selectedDayBackgroundColor: props.theme.colors.primary,
- selectedDayTextColor: '#ffffff',
- todayTextColor: props.theme.colors.text,
- dayTextColor: props.theme.colors.text,
- textDisabledColor: props.theme.colors.agendaDayTextColor,
- dotColor: props.theme.colors.primary,
- selectedDotColor: '#ffffff',
- arrowColor: props.theme.colors.primary,
- monthTextColor: props.theme.colors.text,
- indicatorColor: props.theme.colors.primary,
- textDayFontFamily: 'monospace',
- textMonthFontFamily: 'monospace',
- textDayHeaderFontFamily: 'monospace',
- textDayFontWeight: '300',
- textMonthFontWeight: 'bold',
- textDayHeaderFontWeight: '300',
- textDayFontSize: 16,
- textMonthFontSize: 16,
- textDayHeaderFontSize: 16,
+ 'backgroundColor': props.theme.colors.agendaBackgroundColor,
+ 'calendarBackground': props.theme.colors.background,
+ 'textSectionTitleColor': props.theme.colors.agendaDayTextColor,
+ 'selectedDayBackgroundColor': props.theme.colors.primary,
+ 'selectedDayTextColor': '#ffffff',
+ 'todayTextColor': props.theme.colors.text,
+ 'dayTextColor': props.theme.colors.text,
+ 'textDisabledColor': props.theme.colors.agendaDayTextColor,
+ 'dotColor': props.theme.colors.primary,
+ 'selectedDotColor': '#ffffff',
+ 'arrowColor': props.theme.colors.primary,
+ 'monthTextColor': props.theme.colors.text,
+ 'indicatorColor': props.theme.colors.primary,
+ 'textDayFontFamily': 'monospace',
+ 'textMonthFontFamily': 'monospace',
+ 'textDayHeaderFontFamily': 'monospace',
+ 'textDayFontWeight': '300',
+ 'textMonthFontWeight': 'bold',
+ 'textDayHeaderFontWeight': '300',
+ 'textDayFontSize': 16,
+ 'textMonthFontSize': 16,
+ 'textDayHeaderFontSize': 16,
'stylesheet.day.period': {
base: {
overflow: 'hidden',
@@ -415,7 +445,7 @@ class EquipmentRentScreen extends React.Component {
},
},
}}
- style={{marginBottom: 50}}
+ style={styles.calendar}
/>
{
+ style={styles.buttonContainer}
+ >
+ style={styles.button}
+ >
{i18n.t('screens.equipment.bookButton')}
diff --git a/src/screens/Amicale/LoginScreen.tsx b/src/screens/Amicale/LoginScreen.tsx
index 5da8505..0394736 100644
--- a/src/screens/Amicale/LoginScreen.tsx
+++ b/src/screens/Amicale/LoginScreen.tsx
@@ -18,7 +18,7 @@
*/
import * as React from 'react';
-import {Image, KeyboardAvoidingView, StyleSheet, View} from 'react-native';
+import { Image, KeyboardAvoidingView, StyleSheet, View } from 'react-native';
import {
Button,
Card,
@@ -27,16 +27,17 @@ import {
withTheme,
} from 'react-native-paper';
import i18n from 'i18n-js';
-import {StackNavigationProp, StackScreenProps} from '@react-navigation/stack';
+import { StackNavigationProp, StackScreenProps } from '@react-navigation/stack';
import LinearGradient from 'react-native-linear-gradient';
import ConnectionManager from '../../managers/ConnectionManager';
import ErrorDialog from '../../components/Dialogs/ErrorDialog';
import AsyncStorageManager from '../../managers/AsyncStorageManager';
import AvailableWebsites from '../../constants/AvailableWebsites';
-import {MASCOT_STYLE} from '../../components/Mascot/Mascot';
+import { MASCOT_STYLE } from '../../components/Mascot/Mascot';
import MascotPopup from '../../components/Mascot/MascotPopup';
import CollapsibleScrollView from '../../components/Collapsible/CollapsibleScrollView';
-import {MainStackParamsList} from '../../navigation/MainNavigator';
+import { MainStackParamsList } from '../../navigation/MainNavigator';
+import GENERAL_STYLES from '../../constants/Styles';
type LoginScreenNavigationProp = StackScreenProps;
@@ -63,9 +64,6 @@ const RESET_PASSWORD_PATH = 'https://www.amicale-insat.fr/password/reset';
const emailRegex = /^.+@.+\..+$/;
const styles = StyleSheet.create({
- container: {
- flex: 1,
- },
card: {
marginTop: 'auto',
marginBottom: 'auto',
@@ -74,10 +72,18 @@ const styles = StyleSheet.create({
fontSize: 36,
marginBottom: 48,
},
- textInput: {},
- btnContainer: {
- marginTop: 5,
- marginBottom: 10,
+ text: {
+ color: '#ffffff',
+ },
+ buttonContainer: {
+ flexWrap: 'wrap',
+ },
+ lockButton: {
+ marginRight: 'auto',
+ marginBottom: 20,
+ },
+ sendButton: {
+ marginLeft: 'auto',
},
});
@@ -113,7 +119,7 @@ class LoginScreen extends React.Component {
dialogVisible: false,
dialogError: 0,
mascotDialogVisible: AsyncStorageManager.getBool(
- AsyncStorageManager.PREFERENCES.loginShowMascot.key,
+ AsyncStorageManager.PREFERENCES.loginShowMascot.key
),
};
}
@@ -126,7 +132,7 @@ class LoginScreen extends React.Component {
* Navigates to the Amicale website screen with the reset password link as navigation parameters
*/
onResetPasswordClick = () => {
- const {navigation} = this.props;
+ const { navigation } = this.props;
navigation.navigate('website', {
host: AvailableWebsites.websites.AMICALE,
path: RESET_PASSWORD_PATH,
@@ -174,15 +180,15 @@ class LoginScreen extends React.Component {
*
*/
onSubmit = () => {
- const {email, password} = this.state;
+ const { email, password } = this.state;
if (this.shouldEnableLogin()) {
- this.setState({loading: true});
+ this.setState({ loading: true });
ConnectionManager.getInstance()
.connect(email, password)
.then(this.handleSuccess)
.catch(this.showErrorDialog)
.finally(() => {
- this.setState({loading: false});
+ this.setState({ loading: false });
});
}
};
@@ -193,7 +199,7 @@ class LoginScreen extends React.Component {
* @returns {*}
*/
getFormInput() {
- const {email, password} = this.state;
+ const { email, password } = this.state;
return (
{
* @returns {*}
*/
getMainCard() {
- const {props, state} = this;
+ const { props, state } = this;
return (
(
+ subtitleStyle={styles.text}
+ left={({ size }) => (
{
/>
{this.getFormInput()}
-
+
+ style={styles.lockButton}
+ >
{i18n.t('screens.login.resetPassword')}
{
disabled={!this.shouldEnableLogin()}
loading={state.loading}
onPress={this.onSubmit}
- style={{marginLeft: 'auto'}}>
+ style={styles.sendButton}
+ >
{i18n.t('screens.login.title')}
@@ -288,10 +296,8 @@ class LoginScreen extends React.Component {
icon="help-circle"
mode="contained"
onPress={this.showMascotDialog}
- style={{
- marginLeft: 'auto',
- marginRight: 'auto',
- }}>
+ style={GENERAL_STYLES.centerHorizontal}
+ >
{i18n.t('screens.login.mascotDialog.title')}
@@ -304,26 +310,26 @@ class LoginScreen extends React.Component {
* The user has unfocused the input, his email is ready to be validated
*/
validateEmail = () => {
- this.setState({isEmailValidated: true});
+ this.setState({ isEmailValidated: true });
};
/**
* The user has unfocused the input, his password is ready to be validated
*/
validatePassword = () => {
- this.setState({isPasswordValidated: true});
+ this.setState({ isPasswordValidated: true });
};
hideMascotDialog = () => {
AsyncStorageManager.set(
AsyncStorageManager.PREFERENCES.loginShowMascot.key,
- false,
+ false
);
- this.setState({mascotDialogVisible: false});
+ this.setState({ mascotDialogVisible: false });
};
showMascotDialog = () => {
- this.setState({mascotDialogVisible: true});
+ this.setState({ mascotDialogVisible: true });
};
/**
@@ -339,7 +345,7 @@ class LoginScreen extends React.Component {
};
hideErrorDialog = () => {
- this.setState({dialogVisible: false});
+ this.setState({ dialogVisible: false });
};
/**
@@ -347,11 +353,11 @@ class LoginScreen extends React.Component {
* Saves in user preferences to not show the login banner again.
*/
handleSuccess = () => {
- const {navigation} = this.props;
+ const { navigation } = this.props;
// Do not show the home login banner again
AsyncStorageManager.set(
AsyncStorageManager.PREFERENCES.homeShowMascot.key,
- false,
+ false
);
if (this.nextScreen == null) {
navigation.goBack();
@@ -373,7 +379,7 @@ class LoginScreen extends React.Component {
* @returns {boolean}
*/
isEmailValid(): boolean {
- const {email} = this.state;
+ const { email } = this.state;
return emailRegex.test(email);
}
@@ -384,7 +390,7 @@ class LoginScreen extends React.Component {
* @returns {boolean|boolean}
*/
shouldShowEmailError(): boolean {
- const {isEmailValidated} = this.state;
+ const { isEmailValidated } = this.state;
return isEmailValidated && !this.isEmailValid();
}
@@ -394,7 +400,7 @@ class LoginScreen extends React.Component {
* @returns {boolean}
*/
isPasswordValid(): boolean {
- const {password} = this.state;
+ const { password } = this.state;
return password !== '';
}
@@ -405,7 +411,7 @@ class LoginScreen extends React.Component {
* @returns {boolean|boolean}
*/
shouldShowPasswordError(): boolean {
- const {isPasswordValidated} = this.state;
+ const { isPasswordValidated } = this.state;
return isPasswordValidated && !this.isPasswordValid();
}
@@ -415,28 +421,28 @@ class LoginScreen extends React.Component {
* @returns {boolean}
*/
shouldEnableLogin(): boolean {
- const {loading} = this.state;
+ const { loading } = this.state;
return this.isEmailValid() && this.isPasswordValid() && !loading;
}
render() {
- const {mascotDialogVisible, dialogVisible, dialogError} = this.state;
+ const { mascotDialogVisible, dialogVisible, dialogError } = this.state;
return (
+ start={{ x: 0, y: 0.1 }}
+ end={{ x: 0.1, y: 1 }}
+ >
+ keyboardVerticalOffset={100}
+ >
- {this.getMainCard()}
+ {this.getMainCard()}
;
@@ -79,19 +80,25 @@ const styles = StyleSheet.create({
editButton: {
marginLeft: 'auto',
},
+ mascot: {
+ width: 60,
+ },
+ title: {
+ marginLeft: 10,
+ },
});
class ProfileScreen extends React.Component {
data: ProfileDataType | null;
- flatListData: Array<{id: string}>;
+ flatListData: Array<{ id: string }>;
amicaleDataset: Array;
constructor(props: PropsType) {
super(props);
this.data = null;
- this.flatListData = [{id: '0'}, {id: '1'}, {id: '2'}, {id: '3'}];
+ this.flatListData = [{ id: '0' }, { id: '1' }, { id: '2' }, { id: '3' }];
const services = new ServicesManager(props.navigation);
this.amicaleDataset = services.getAmicaleServices([SERVICES_KEY.PROFILE]);
this.state = {
@@ -100,7 +107,7 @@ class ProfileScreen extends React.Component {
}
componentDidMount() {
- const {navigation} = this.props;
+ const { navigation } = this.props;
navigation.setOptions({
headerRight: this.getHeaderButton,
});
@@ -128,10 +135,10 @@ class ProfileScreen extends React.Component {
* @returns {*}
*/
getScreen = (data: Array) => {
- const {dialogVisible} = this.state;
+ const { dialogVisible } = this.state;
this.data = data[0];
return (
-
+
{
);
};
- getRenderItem = ({item}: {item: {id: string}}) => {
+ getRenderItem = ({ item }: { item: { id: string } }) => {
switch (item.id) {
case '0':
return this.getWelcomeCard();
@@ -172,7 +179,7 @@ class ProfileScreen extends React.Component {
* @returns {*}
*/
getWelcomeCard() {
- const {navigation} = this.props;
+ const { navigation } = this.props;
return (
{
})}
left={() => (
{
}}
/>
)}
- titleStyle={{marginLeft: 10}}
+ titleStyle={styles.title}
/>
@@ -207,7 +212,8 @@ class ProfileScreen extends React.Component {
onPress={() => {
navigation.navigate('feedback');
}}
- style={styles.editButton}>
+ style={styles.editButton}
+ >
{i18n.t('screens.feedback.homeButtonTitle')}
@@ -235,7 +241,7 @@ class ProfileScreen extends React.Component {
* @return {*}
*/
getPersonalListItem(field: string | undefined, icon: string) {
- const {theme} = this.props;
+ const { theme } = this.props;
const title = field != null ? ProfileScreen.getFieldValue(field) : ':(';
const subtitle = field != null ? '' : ProfileScreen.getFieldValue(field);
return (
@@ -259,7 +265,7 @@ class ProfileScreen extends React.Component {
* @return {*}
*/
getPersonalCard() {
- const {theme, navigation} = this.props;
+ const { theme, navigation } = this.props;
return (
{
title: i18n.t('screens.websites.amicale'),
});
}}
- style={styles.editButton}>
+ style={styles.editButton}
+ >
{i18n.t('screens.profile.editInformation')}
@@ -312,7 +319,7 @@ class ProfileScreen extends React.Component {
* @return {*}
*/
getClubCard() {
- const {theme} = this.props;
+ const { theme } = this.props;
return (
{
* @return {*}
*/
getMembershipCar() {
- const {theme} = this.props;
+ const { theme } = this.props;
return (
{
* @return {*}
*/
getMembershipItem(state: boolean) {
- const {theme} = this.props;
+ const { theme } = this.props;
return (
{
* @param item The club to render
* @return {*}
*/
- getClubListItem = ({item}: {item: ClubType}) => {
- const {theme} = this.props;
+ getClubListItem = ({ item }: { item: ClubType }) => {
+ const { theme } = this.props;
const onPress = () => {
this.openClubDetailsScreen(item.id);
};
@@ -458,11 +465,11 @@ class ProfileScreen extends React.Component {
sortClubList = (a: ClubType): number => (a.is_manager ? -1 : 1);
showDisconnectDialog = () => {
- this.setState({dialogVisible: true});
+ this.setState({ dialogVisible: true });
};
hideDisconnectDialog = () => {
- this.setState({dialogVisible: false});
+ this.setState({ dialogVisible: false });
};
/**
@@ -470,12 +477,12 @@ class ProfileScreen extends React.Component {
* @param id The club's id to open
*/
openClubDetailsScreen(id: number) {
- const {navigation} = this.props;
- navigation.navigate('club-information', {clubId: id});
+ const { navigation } = this.props;
+ navigation.navigate('club-information', { clubId: id });
}
render() {
- const {navigation} = this.props;
+ const { navigation } = this.props;
return (
{
today: Date;
- mainFlatListData: Array<{key: string}>;
+ mainFlatListData: Array<{ key: string }>;
lastRefresh: Date | null;
- authRef: {current: null | AuthenticatedScreen};
+ authRef: { current: null | AuthenticatedScreen };
constructor(props: PropsType) {
super(props);
@@ -146,14 +155,14 @@ export default class VoteScreen extends React.Component {
this.state = {
hasVoted: false,
mascotDialogVisible: AsyncStorageManager.getBool(
- AsyncStorageManager.PREFERENCES.voteShowMascot.key,
+ AsyncStorageManager.PREFERENCES.voteShowMascot.key
),
};
this.hasVoted = false;
this.today = new Date();
this.authRef = React.createRef();
this.lastRefresh = null;
- this.mainFlatListData = [{key: 'main'}, {key: 'info'}];
+ this.mainFlatListData = [{ key: 'main' }, { key: 'info' }];
}
/**
@@ -174,7 +183,7 @@ export default class VoteScreen extends React.Component {
return dateString;
}
- getMainRenderItem = ({item}: {item: {key: string}}) => {
+ getMainRenderItem = ({ item }: { item: { key: string } }) => {
if (item.key === 'info') {
return (
@@ -182,11 +191,8 @@ export default class VoteScreen extends React.Component {
mode="contained"
icon="help-circle"
onPress={this.showMascotDialog}
- style={{
- marginLeft: 'auto',
- marginRight: 'auto',
- marginTop: 20,
- }}>
+ style={styles.button}
+ >
{i18n.t('screens.vote.mascotDialog.title')}
@@ -196,7 +202,7 @@ export default class VoteScreen extends React.Component {
};
getScreen = (data: Array) => {
- const {state} = this;
+ const { state } = this;
// data[0] = FAKE_TEAMS2;
// data[1] = FAKE_DATE;
this.lastRefresh = new Date();
@@ -229,7 +235,7 @@ export default class VoteScreen extends React.Component {
};
getContent() {
- const {state} = this;
+ const { state } = this;
if (!this.isVoteStarted()) {
return this.getTeaseVoteCard();
}
@@ -245,7 +251,7 @@ export default class VoteScreen extends React.Component {
return ;
}
- onVoteSuccess = (): void => this.setState({hasVoted: true});
+ onVoteSuccess = (): void => this.setState({ hasVoted: true });
/**
* The user has not voted yet, and the votes are open
@@ -270,7 +276,7 @@ export default class VoteScreen extends React.Component {
teams={this.teams}
dateEnd={this.getDateString(
this.dates.date_result_end,
- this.datesString.date_result_end,
+ this.datesString.date_result_end
)}
/>
);
@@ -287,7 +293,7 @@ export default class VoteScreen extends React.Component {
);
@@ -299,7 +305,7 @@ export default class VoteScreen extends React.Component {
* Votes have ended, or user has voted waiting for results
*/
getWaitVoteCard() {
- const {state} = this;
+ const { state } = this;
let startDate = null;
if (
this.dates != null &&
@@ -308,7 +314,7 @@ export default class VoteScreen extends React.Component {
) {
startDate = this.getDateString(
this.dates.date_result_begin,
- this.datesString.date_result_begin,
+ this.datesString.date_result_begin
);
}
return (
@@ -326,7 +332,7 @@ export default class VoteScreen extends React.Component {
*/
reloadData = () => {
let canRefresh;
- const {lastRefresh} = this;
+ const { lastRefresh } = this;
if (lastRefresh != null) {
canRefresh =
new Date().getTime() - lastRefresh.getTime() > MIN_REFRESH_TIME;
@@ -339,15 +345,15 @@ export default class VoteScreen extends React.Component {
};
showMascotDialog = () => {
- this.setState({mascotDialogVisible: true});
+ this.setState({ mascotDialogVisible: true });
};
hideMascotDialog = () => {
AsyncStorageManager.set(
AsyncStorageManager.PREFERENCES.voteShowMascot.key,
- false,
+ false
);
- this.setState({mascotDialogVisible: false});
+ this.setState({ mascotDialogVisible: false });
};
isVoteStarted(): boolean {
@@ -412,9 +418,9 @@ export default class VoteScreen extends React.Component {
* @returns {*}
*/
render() {
- const {props, state} = this;
+ const { props, state } = this;
return (
-
+
navigation={props.navigation}
ref={this.authRef}
diff --git a/src/screens/Game/Shapes/BaseShape.ts b/src/screens/Game/Shapes/BaseShape.ts
index 86a95fe..0b62bd9 100644
--- a/src/screens/Game/Shapes/BaseShape.ts
+++ b/src/screens/Game/Shapes/BaseShape.ts
@@ -17,8 +17,6 @@
* along with Campus INSAT. If not, see .
*/
-// @flow
-
export type CoordinatesType = {
x: number;
y: number;
@@ -49,7 +47,7 @@ export default class BaseShape {
}
this.theme = theme;
this.#rotation = 0;
- this.position = {x: 0, y: 0};
+ this.position = { x: 0, y: 0 };
this.#currentShape = this.getShapes()[this.#rotation];
}
@@ -96,7 +94,7 @@ export default class BaseShape {
y: this.position.y + row,
});
} else {
- coordinates.push({x: col, y: row});
+ coordinates.push({ x: col, y: row });
}
}
}
diff --git a/src/screens/Game/Shapes/ShapeI.ts b/src/screens/Game/Shapes/ShapeI.ts
index d8b395f..920b41f 100644
--- a/src/screens/Game/Shapes/ShapeI.ts
+++ b/src/screens/Game/Shapes/ShapeI.ts
@@ -18,7 +18,7 @@
*/
import BaseShape from './BaseShape';
-import type {ShapeType} from './BaseShape';
+import type { ShapeType } from './BaseShape';
export default class ShapeI extends BaseShape {
constructor(theme: ReactNativePaper.Theme) {
diff --git a/src/screens/Game/Shapes/ShapeJ.ts b/src/screens/Game/Shapes/ShapeJ.ts
index 09c6bfd..0c3cd90 100644
--- a/src/screens/Game/Shapes/ShapeJ.ts
+++ b/src/screens/Game/Shapes/ShapeJ.ts
@@ -18,7 +18,7 @@
*/
import BaseShape from './BaseShape';
-import type {ShapeType} from './BaseShape';
+import type { ShapeType } from './BaseShape';
export default class ShapeJ extends BaseShape {
constructor(theme: ReactNativePaper.Theme) {
diff --git a/src/screens/Game/Shapes/ShapeL.ts b/src/screens/Game/Shapes/ShapeL.ts
index 310f7c2..cc80c5f 100644
--- a/src/screens/Game/Shapes/ShapeL.ts
+++ b/src/screens/Game/Shapes/ShapeL.ts
@@ -18,7 +18,7 @@
*/
import BaseShape from './BaseShape';
-import type {ShapeType} from './BaseShape';
+import type { ShapeType } from './BaseShape';
export default class ShapeL extends BaseShape {
constructor(theme: ReactNativePaper.Theme) {
diff --git a/src/screens/Game/Shapes/ShapeO.ts b/src/screens/Game/Shapes/ShapeO.ts
index 00eec59..0ff7cce 100644
--- a/src/screens/Game/Shapes/ShapeO.ts
+++ b/src/screens/Game/Shapes/ShapeO.ts
@@ -18,7 +18,7 @@
*/
import BaseShape from './BaseShape';
-import type {ShapeType} from './BaseShape';
+import type { ShapeType } from './BaseShape';
export default class ShapeO extends BaseShape {
constructor(theme: ReactNativePaper.Theme) {
diff --git a/src/screens/Game/Shapes/ShapeS.ts b/src/screens/Game/Shapes/ShapeS.ts
index 6f397df..491f8c9 100644
--- a/src/screens/Game/Shapes/ShapeS.ts
+++ b/src/screens/Game/Shapes/ShapeS.ts
@@ -18,7 +18,7 @@
*/
import BaseShape from './BaseShape';
-import type {ShapeType} from './BaseShape';
+import type { ShapeType } from './BaseShape';
export default class ShapeS extends BaseShape {
constructor(theme: ReactNativePaper.Theme) {
diff --git a/src/screens/Game/Shapes/ShapeT.ts b/src/screens/Game/Shapes/ShapeT.ts
index 71b1e80..4e8f450 100644
--- a/src/screens/Game/Shapes/ShapeT.ts
+++ b/src/screens/Game/Shapes/ShapeT.ts
@@ -18,7 +18,7 @@
*/
import BaseShape from './BaseShape';
-import type {ShapeType} from './BaseShape';
+import type { ShapeType } from './BaseShape';
export default class ShapeT extends BaseShape {
constructor(theme: ReactNativePaper.Theme) {
diff --git a/src/screens/Game/Shapes/ShapeZ.ts b/src/screens/Game/Shapes/ShapeZ.ts
index b24e13e..353e6e1 100644
--- a/src/screens/Game/Shapes/ShapeZ.ts
+++ b/src/screens/Game/Shapes/ShapeZ.ts
@@ -18,7 +18,7 @@
*/
import BaseShape from './BaseShape';
-import type {ShapeType} from './BaseShape';
+import type { ShapeType } from './BaseShape';
export default class ShapeZ extends BaseShape {
constructor(theme: ReactNativePaper.Theme) {
diff --git a/src/screens/Game/__tests__/GridManager.test.js b/src/screens/Game/__tests__/GridManager.test.js
index 53bfd6b..b42888d 100644
--- a/src/screens/Game/__tests__/GridManager.test.js
+++ b/src/screens/Game/__tests__/GridManager.test.js
@@ -17,9 +17,6 @@
* along with Campus INSAT. If not, see .
*/
-/* eslint-disable */
-
-import React from 'react';
import GridManager from '../logic/GridManager';
import ScoreManager from '../logic/ScoreManager';
import Piece from '../logic/Piece';
@@ -39,8 +36,8 @@ afterAll(() => {
test('getEmptyLine', () => {
let g = new GridManager(2, 2, theme);
expect(g.getEmptyLine(2)).toStrictEqual([
- {color: theme.colors.tetrisBackground, isEmpty: true, key: '0'},
- {color: theme.colors.tetrisBackground, isEmpty: true, key: '1'},
+ { color: theme.colors.tetrisBackground, isEmpty: true, key: '0' },
+ { color: theme.colors.tetrisBackground, isEmpty: true, key: '1' },
]);
expect(g.getEmptyLine(-1)).toStrictEqual([]);
@@ -50,12 +47,12 @@ test('getEmptyGrid', () => {
let g = new GridManager(2, 2, theme);
expect(g.getEmptyGrid(2, 2)).toStrictEqual([
[
- {color: theme.colors.tetrisBackground, isEmpty: true, key: '0'},
- {color: theme.colors.tetrisBackground, isEmpty: true, key: '1'},
+ { color: theme.colors.tetrisBackground, isEmpty: true, key: '0' },
+ { color: theme.colors.tetrisBackground, isEmpty: true, key: '1' },
],
[
- {color: theme.colors.tetrisBackground, isEmpty: true, key: '0'},
- {color: theme.colors.tetrisBackground, isEmpty: true, key: '1'},
+ { color: theme.colors.tetrisBackground, isEmpty: true, key: '0' },
+ { color: theme.colors.tetrisBackground, isEmpty: true, key: '1' },
],
]);
@@ -67,7 +64,7 @@ test('getLinesToClear', () => {
let g = new GridManager(2, 2, theme);
g.getCurrentGrid()[0][0].isEmpty = false;
g.getCurrentGrid()[0][1].isEmpty = false;
- let coord = [{x: 1, y: 0}];
+ let coord = [{ x: 1, y: 0 }];
expect(g.getLinesToClear(coord)).toStrictEqual([0]);
g.getCurrentGrid()[0][0].isEmpty = true;
@@ -75,7 +72,7 @@ test('getLinesToClear', () => {
g.getCurrentGrid()[1][0].isEmpty = false;
g.getCurrentGrid()[1][1].isEmpty = false;
expect(g.getLinesToClear(coord)).toStrictEqual([]);
- coord = [{x: 1, y: 1}];
+ coord = [{ x: 1, y: 1 }];
expect(g.getLinesToClear(coord)).toStrictEqual([1]);
});
@@ -83,12 +80,12 @@ test('clearLines', () => {
let g = new GridManager(2, 2, theme);
let grid = [
[
- {color: theme.colors.tetrisBackground, isEmpty: true, key: '0'},
- {color: theme.colors.tetrisBackground, isEmpty: true, key: '1'},
+ { color: theme.colors.tetrisBackground, isEmpty: true, key: '0' },
+ { color: theme.colors.tetrisBackground, isEmpty: true, key: '1' },
],
[
- {color: '0', isEmpty: true, key: '0'},
- {color: '0', isEmpty: true, key: '1'},
+ { color: '0', isEmpty: true, key: '0' },
+ { color: '0', isEmpty: true, key: '1' },
],
];
g.getCurrentGrid()[1][0].color = '0';
@@ -98,12 +95,12 @@ test('clearLines', () => {
g.clearLines([1], scoreManager);
grid = [
[
- {color: theme.colors.tetrisBackground, isEmpty: true, key: '0'},
- {color: theme.colors.tetrisBackground, isEmpty: true, key: '1'},
+ { color: theme.colors.tetrisBackground, isEmpty: true, key: '0' },
+ { color: theme.colors.tetrisBackground, isEmpty: true, key: '1' },
],
[
- {color: theme.colors.tetrisBackground, isEmpty: true, key: '0'},
- {color: theme.colors.tetrisBackground, isEmpty: true, key: '1'},
+ { color: theme.colors.tetrisBackground, isEmpty: true, key: '0' },
+ { color: theme.colors.tetrisBackground, isEmpty: true, key: '1' },
],
];
expect(g.getCurrentGrid()).toStrictEqual(grid);
diff --git a/src/screens/Game/__tests__/Piece.test.js b/src/screens/Game/__tests__/Piece.test.js
index d07f78d..3143ebe 100644
--- a/src/screens/Game/__tests__/Piece.test.js
+++ b/src/screens/Game/__tests__/Piece.test.js
@@ -17,9 +17,6 @@
* along with Campus INSAT. If not, see .
*/
-/* eslint-disable */
-
-import React from 'react';
import Piece from '../logic/Piece';
import ShapeI from '../Shapes/ShapeI';
@@ -33,11 +30,9 @@ let theme = {
jest.mock('../Shapes/ShapeI');
beforeAll(() => {
- jest
- .spyOn(Piece.prototype, 'getRandomShape')
- .mockImplementation((colors: Object) => {
- return new ShapeI(colors);
- });
+ jest.spyOn(Piece.prototype, 'getRandomShape').mockImplementation((colors) => {
+ return new ShapeI(colors);
+ });
});
afterAll(() => {
@@ -50,11 +45,11 @@ test('isPositionValid', () => {
let spy = jest
.spyOn(ShapeI.prototype, 'getCellsCoordinates')
.mockImplementation(() => {
- return [{x: x, y: y}];
+ return [{ x: x, y: y }];
});
let grid = [
- [{isEmpty: true}, {isEmpty: true}],
- [{isEmpty: true}, {isEmpty: false}],
+ [{ isEmpty: true }, { isEmpty: true }],
+ [{ isEmpty: true }, { isEmpty: false }],
];
let size = 2;
@@ -149,29 +144,29 @@ test('toGrid', () => {
let spy1 = jest
.spyOn(ShapeI.prototype, 'getCellsCoordinates')
.mockImplementation(() => {
- return [{x: x, y: y}];
+ return [{ x: x, y: y }];
});
let spy2 = jest.spyOn(ShapeI.prototype, 'getColor').mockImplementation(() => {
return theme.colors.tetrisI;
});
let grid = [
[
- {isEmpty: true, key: '0'},
- {isEmpty: true, key: '1'},
+ { isEmpty: true, key: '0' },
+ { isEmpty: true, key: '1' },
],
[
- {isEmpty: true, key: '0'},
- {isEmpty: true, key: '1'},
+ { isEmpty: true, key: '0' },
+ { isEmpty: true, key: '1' },
],
];
let expectedGrid = [
[
- {color: theme.colors.tetrisI, isEmpty: false, key: '0'},
- {isEmpty: true, key: '1'},
+ { color: theme.colors.tetrisI, isEmpty: false, key: '0' },
+ { isEmpty: true, key: '1' },
],
[
- {isEmpty: true, key: '0'},
- {isEmpty: true, key: '1'},
+ { isEmpty: true, key: '0' },
+ { isEmpty: true, key: '1' },
],
];
@@ -186,21 +181,21 @@ test('toGrid', () => {
test('removeFromGrid', () => {
let gridOld = [
[
- {color: theme.colors.tetrisI, isEmpty: false, key: '0'},
- {color: theme.colors.tetrisI, isEmpty: false, key: '1'},
- {color: theme.colors.tetrisBackground, isEmpty: true, key: '2'},
+ { color: theme.colors.tetrisI, isEmpty: false, key: '0' },
+ { color: theme.colors.tetrisI, isEmpty: false, key: '1' },
+ { color: theme.colors.tetrisBackground, isEmpty: true, key: '2' },
],
];
let gridNew = [
[
- {color: theme.colors.tetrisBackground, isEmpty: true, key: '0'},
- {color: theme.colors.tetrisBackground, isEmpty: true, key: '1'},
- {color: theme.colors.tetrisBackground, isEmpty: true, key: '2'},
+ { color: theme.colors.tetrisBackground, isEmpty: true, key: '0' },
+ { color: theme.colors.tetrisBackground, isEmpty: true, key: '1' },
+ { color: theme.colors.tetrisBackground, isEmpty: true, key: '2' },
],
];
let oldCoord = [
- {x: 0, y: 0},
- {x: 1, y: 0},
+ { x: 0, y: 0 },
+ { x: 1, y: 0 },
];
let spy1 = jest
.spyOn(ShapeI.prototype, 'getCellsCoordinates')
diff --git a/src/screens/Game/__tests__/ScoreManager.test.js b/src/screens/Game/__tests__/ScoreManager.test.js
index 4fb01d4..13aa7af 100644
--- a/src/screens/Game/__tests__/ScoreManager.test.js
+++ b/src/screens/Game/__tests__/ScoreManager.test.js
@@ -17,9 +17,6 @@
* along with Campus INSAT. If not, see .
*/
-/* eslint-disable */
-
-import React from 'react';
import ScoreManager from '../logic/ScoreManager';
test('incrementScore', () => {
diff --git a/src/screens/Game/__tests__/Shape.test.js b/src/screens/Game/__tests__/Shape.test.js
index 285c78b..e7d2c1c 100644
--- a/src/screens/Game/__tests__/Shape.test.js
+++ b/src/screens/Game/__tests__/Shape.test.js
@@ -17,9 +17,6 @@
* along with Campus INSAT. If not, see .
*/
-/* eslint-disable */
-
-import React from 'react';
import BaseShape from '../Shapes/BaseShape';
import ShapeI from '../Shapes/ShapeI';
@@ -87,41 +84,41 @@ test('rotate', () => {
test('getCellsCoordinates', () => {
let T = new ShapeI(theme);
expect(T.getCellsCoordinates(false)).toStrictEqual([
- {x: 0, y: 1},
- {x: 1, y: 1},
- {x: 2, y: 1},
- {x: 3, y: 1},
+ { x: 0, y: 1 },
+ { x: 1, y: 1 },
+ { x: 2, y: 1 },
+ { x: 3, y: 1 },
]);
expect(T.getCellsCoordinates(true)).toStrictEqual([
- {x: 3, y: 1},
- {x: 4, y: 1},
- {x: 5, y: 1},
- {x: 6, y: 1},
+ { x: 3, y: 1 },
+ { x: 4, y: 1 },
+ { x: 5, y: 1 },
+ { x: 6, y: 1 },
]);
T.move(1, 1);
expect(T.getCellsCoordinates(false)).toStrictEqual([
- {x: 0, y: 1},
- {x: 1, y: 1},
- {x: 2, y: 1},
- {x: 3, y: 1},
+ { x: 0, y: 1 },
+ { x: 1, y: 1 },
+ { x: 2, y: 1 },
+ { x: 3, y: 1 },
]);
expect(T.getCellsCoordinates(true)).toStrictEqual([
- {x: 4, y: 2},
- {x: 5, y: 2},
- {x: 6, y: 2},
- {x: 7, y: 2},
+ { x: 4, y: 2 },
+ { x: 5, y: 2 },
+ { x: 6, y: 2 },
+ { x: 7, y: 2 },
]);
T.rotate(true);
expect(T.getCellsCoordinates(false)).toStrictEqual([
- {x: 2, y: 0},
- {x: 2, y: 1},
- {x: 2, y: 2},
- {x: 2, y: 3},
+ { x: 2, y: 0 },
+ { x: 2, y: 1 },
+ { x: 2, y: 2 },
+ { x: 2, y: 3 },
]);
expect(T.getCellsCoordinates(true)).toStrictEqual([
- {x: 6, y: 1},
- {x: 6, y: 2},
- {x: 6, y: 3},
- {x: 6, y: 4},
+ { x: 6, y: 1 },
+ { x: 6, y: 2 },
+ { x: 6, y: 3 },
+ { x: 6, y: 4 },
]);
});
diff --git a/src/screens/Game/components/CellComponent.tsx b/src/screens/Game/components/CellComponent.tsx
index bf266a6..525d181 100644
--- a/src/screens/Game/components/CellComponent.tsx
+++ b/src/screens/Game/components/CellComponent.tsx
@@ -18,25 +18,32 @@
*/
import * as React from 'react';
-import {View} from 'react-native';
+import { StyleSheet, View } from 'react-native';
-export type CellType = {color: string; isEmpty: boolean; key: string};
+export type CellType = { color: string; isEmpty: boolean; key: string };
type PropsType = {
cell: CellType;
};
+const styles = StyleSheet.create({
+ cell: {
+ flex: 1,
+ borderColor: 'transparent',
+ borderRadius: 4,
+ borderWidth: 1,
+ aspectRatio: 1,
+ },
+});
+
function CellComponent(props: PropsType) {
const item = props.cell;
+ const backgroundColor = item.isEmpty ? 'transparent' : item.color;
return (
);
diff --git a/src/screens/Game/components/GridComponent.tsx b/src/screens/Game/components/GridComponent.tsx
index 05706b2..78f2271 100644
--- a/src/screens/Game/components/GridComponent.tsx
+++ b/src/screens/Game/components/GridComponent.tsx
@@ -18,8 +18,8 @@
*/
import * as React from 'react';
-import {View, ViewStyle} from 'react-native';
-import type {CellType} from './CellComponent';
+import { StyleSheet, View, ViewStyle } from 'react-native';
+import type { CellType } from './CellComponent';
import CellComponent from './CellComponent';
export type GridType = Array>;
@@ -31,13 +31,22 @@ type PropsType = {
style: ViewStyle;
};
+const styles = StyleSheet.create({
+ row: {
+ flexDirection: 'row',
+ },
+ grid: {
+ borderRadius: 4,
+ },
+});
+
const getCellRender = (item: CellType) => {
return ;
};
function getRow(grid: GridType, rowNumber: number) {
return (
-
+
{grid[rowNumber].map(getCellRender)}
);
@@ -52,14 +61,15 @@ function getGrid(grid: GridType, height: number) {
}
function GridComponent(props: PropsType) {
- const {style, width, height, grid} = props;
+ const { style, width, height, grid } = props;
return (
+ ...styles.grid,
+ }}
+ >
{getGrid(grid, height)}
);
diff --git a/src/screens/Game/components/Preview.tsx b/src/screens/Game/components/Preview.tsx
index 58dca1a..a6cd3bf 100644
--- a/src/screens/Game/components/Preview.tsx
+++ b/src/screens/Game/components/Preview.tsx
@@ -18,8 +18,8 @@
*/
import * as React from 'react';
-import {View, ViewStyle} from 'react-native';
-import type {GridType} from './GridComponent';
+import { StyleSheet, View, ViewStyle } from 'react-native';
+import type { GridType } from './GridComponent';
import GridComponent from './GridComponent';
type PropsType = {
@@ -27,17 +27,21 @@ type PropsType = {
style: ViewStyle;
};
+const styles = StyleSheet.create({
+ grid: {
+ marginRight: 5,
+ marginLeft: 5,
+ marginBottom: 5,
+ },
+});
+
function getGridRender(item: GridType, index: number) {
return (
);
@@ -53,7 +57,7 @@ function getGrids(items: Array) {
class Preview extends React.PureComponent {
render() {
- const {style, items} = this.props;
+ const { style, items } = this.props;
if (items.length > 0) {
return {getGrids(items)};
}
diff --git a/src/screens/Game/logic/GameLogic.ts b/src/screens/Game/logic/GameLogic.ts
index 4458a02..bcc335c 100644
--- a/src/screens/Game/logic/GameLogic.ts
+++ b/src/screens/Game/logic/GameLogic.ts
@@ -20,12 +20,12 @@
import Piece from './Piece';
import ScoreManager from './ScoreManager';
import GridManager from './GridManager';
-import type {GridType} from '../components/GridComponent';
+import type { GridType } from '../components/GridComponent';
export type TickCallbackType = (
score: number,
level: number,
- grid: GridType,
+ grid: GridType
) => void;
export type ClockCallbackType = (time: number) => void;
@@ -33,7 +33,7 @@ export type ClockCallbackType = (time: number) => void;
export type EndCallbackType = (
time: number,
score: number,
- isRestart: boolean,
+ isRestart: boolean
) => void;
export type MovementCallbackType = (grid: GridType, score?: number) => void;
@@ -101,7 +101,7 @@ export default class GameLogic {
this.gridManager = new GridManager(
this.getWidth(),
this.getHeight(),
- this.theme,
+ this.theme
);
}
@@ -179,14 +179,14 @@ export default class GameLogic {
this.gridManager.getCurrentGrid(),
this.getWidth(),
this.getHeight(),
- this.onFreeze,
+ this.onFreeze
);
}
if (callback) {
callback(
this.scoreManager.getScore(),
this.scoreManager.getLevel(),
- this.gridManager.getCurrentGrid(),
+ this.gridManager.getCurrentGrid()
);
}
if (this.scoreManager.canLevelUp()) {
@@ -224,7 +224,7 @@ export default class GameLogic {
isInitial: boolean,
callback: MovementCallbackType,
x: number,
- y: number,
+ y: number
) {
if (!this.canUseInput() || !this.isPressedIn) {
return;
@@ -237,14 +237,14 @@ export default class GameLogic {
this.gridManager.getCurrentGrid(),
this.getWidth(),
this.getHeight(),
- this.onFreeze,
+ this.onFreeze
);
if (moved) {
if (y === 1) {
this.scoreManager.incrementScore();
callback(
this.gridManager.getCurrentGrid(),
- this.scoreManager.getScore(),
+ this.scoreManager.getScore()
);
} else {
callback(this.gridManager.getCurrentGrid());
@@ -254,7 +254,7 @@ export default class GameLogic {
() => {
this.movePressedRepeat(false, callback, x, y);
},
- isInitial ? this.autoRepeatActivationDelay : this.autoRepeatDelay,
+ isInitial ? this.autoRepeatActivationDelay : this.autoRepeatDelay
);
}
@@ -275,7 +275,7 @@ export default class GameLogic {
this.currentObject.tryRotate(
this.gridManager.getCurrentGrid(),
this.getWidth(),
- this.getHeight(),
+ this.getHeight()
)
) {
callback(this.gridManager.getCurrentGrid());
@@ -315,7 +315,7 @@ export default class GameLogic {
!this.currentObject.isPositionValid(
this.gridManager.getCurrentGrid(),
this.getWidth(),
- this.getHeight(),
+ this.getHeight()
)
) {
this.endGame(false);
@@ -346,7 +346,7 @@ export default class GameLogic {
startGame(
tickCallback: TickCallbackType,
clockCallback: ClockCallbackType,
- endCallback: EndCallbackType,
+ endCallback: EndCallbackType
) {
if (this.gameRunning) {
this.endGame(true);
@@ -359,7 +359,7 @@ export default class GameLogic {
this.gridManager = new GridManager(
this.getWidth(),
this.getHeight(),
- this.theme,
+ this.theme
);
this.nextPieces = [];
this.generateNextPieces();
@@ -367,7 +367,7 @@ export default class GameLogic {
tickCallback(
this.scoreManager.getScore(),
this.scoreManager.getLevel(),
- this.gridManager.getCurrentGrid(),
+ this.gridManager.getCurrentGrid()
);
clockCallback(this.gameTime);
this.startTick();
diff --git a/src/screens/Game/logic/GridManager.ts b/src/screens/Game/logic/GridManager.ts
index f242151..ada0d89 100644
--- a/src/screens/Game/logic/GridManager.ts
+++ b/src/screens/Game/logic/GridManager.ts
@@ -19,9 +19,9 @@
import Piece from './Piece';
import ScoreManager from './ScoreManager';
-import type {CoordinatesType} from '../Shapes/BaseShape';
-import type {GridType} from '../components/GridComponent';
-import type {CellType} from '../components/CellComponent';
+import type { CoordinatesType } from '../Shapes/BaseShape';
+import type { GridType } from '../components/GridComponent';
+import type { CellType } from '../components/CellComponent';
/**
* Class used to manage the game grid
@@ -134,7 +134,7 @@ export default class GridManager {
freezeTetromino(currentObject: Piece, scoreManager: ScoreManager) {
this.clearLines(
this.getLinesToClear(currentObject.getCoordinates()),
- scoreManager,
+ scoreManager
);
}
}
diff --git a/src/screens/Game/logic/Piece.ts b/src/screens/Game/logic/Piece.ts
index d2fc852..d0849a2 100644
--- a/src/screens/Game/logic/Piece.ts
+++ b/src/screens/Game/logic/Piece.ts
@@ -24,9 +24,9 @@ import ShapeO from '../Shapes/ShapeO';
import ShapeS from '../Shapes/ShapeS';
import ShapeT from '../Shapes/ShapeT';
import ShapeZ from '../Shapes/ShapeZ';
-import type {CoordinatesType} from '../Shapes/BaseShape';
+import type { CoordinatesType } from '../Shapes/BaseShape';
import BaseShape from '../Shapes/BaseShape';
-import type {GridType} from '../components/GridComponent';
+import type { GridType } from '../components/GridComponent';
/**
* Class used as an abstraction layer for shapes.
@@ -66,7 +66,7 @@ export default class Piece {
*/
removeFromGrid(grid: GridType) {
const pos: Array = this.currentShape.getCellsCoordinates(
- true,
+ true
);
pos.forEach((coordinates: CoordinatesType) => {
grid[coordinates.y][coordinates.x] = {
@@ -85,7 +85,7 @@ export default class Piece {
*/
toGrid(grid: GridType, isPreview: boolean) {
const pos: Array = this.currentShape.getCellsCoordinates(
- !isPreview,
+ !isPreview
);
pos.forEach((coordinates: CoordinatesType) => {
grid[coordinates.y][coordinates.x] = {
@@ -107,7 +107,7 @@ export default class Piece {
isPositionValid(grid: GridType, width: number, height: number): boolean {
let isValid = true;
const pos: Array = this.currentShape.getCellsCoordinates(
- true,
+ true
);
for (let i = 0; i < pos.length; i += 1) {
if (
@@ -141,7 +141,7 @@ export default class Piece {
grid: GridType,
width: number,
height: number,
- freezeCallback: () => void,
+ freezeCallback: () => void
): boolean {
let newX = x;
let newY = y;
diff --git a/src/screens/Game/screens/GameMainScreen.tsx b/src/screens/Game/screens/GameMainScreen.tsx
index 89356b1..5ef7f23 100644
--- a/src/screens/Game/screens/GameMainScreen.tsx
+++ b/src/screens/Game/screens/GameMainScreen.tsx
@@ -18,24 +18,25 @@
*/
import * as React from 'react';
-import {View} from 'react-native';
-import {Caption, IconButton, Text, withTheme} from 'react-native-paper';
+import { StyleSheet, View } from 'react-native';
+import { Caption, IconButton, Text, withTheme } from 'react-native-paper';
import MaterialCommunityIcons from 'react-native-vector-icons/MaterialCommunityIcons';
import i18n from 'i18n-js';
-import {StackNavigationProp} from '@react-navigation/stack';
+import { StackNavigationProp } from '@react-navigation/stack';
import GameLogic from '../logic/GameLogic';
-import type {GridType} from '../components/GridComponent';
+import type { GridType } from '../components/GridComponent';
import GridComponent from '../components/GridComponent';
import Preview from '../components/Preview';
import MaterialHeaderButtons, {
Item,
} from '../../../components/Overrides/CustomHeaderButton';
-import type {OptionsDialogButtonType} from '../../../components/Dialogs/OptionsDialog';
+import type { OptionsDialogButtonType } from '../../../components/Dialogs/OptionsDialog';
import OptionsDialog from '../../../components/Dialogs/OptionsDialog';
+import GENERAL_STYLES from '../../../constants/Styles';
type PropsType = {
navigation: StackNavigationProp;
- route: {params: {highScore: number}};
+ route: { params: { highScore: number } };
theme: ReactNativePaper.Theme;
};
@@ -52,6 +53,67 @@ type StateType = {
onDialogDismiss: () => void;
};
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ flexDirection: 'row',
+ },
+ gridContainer: {
+ flex: 4,
+ },
+ centerSmallMargin: {
+ ...GENERAL_STYLES.centerHorizontal,
+ marginBottom: 5,
+ },
+ centerVerticalSmallMargin: {
+ ...GENERAL_STYLES.centerVertical,
+ marginLeft: 5,
+ },
+ centerBigMargin: {
+ marginLeft: 'auto',
+ marginRight: 'auto',
+ marginBottom: 20,
+ },
+ statusContainer: {
+ flexDirection: 'row',
+ },
+ statusIcon: {
+ marginLeft: 5,
+ },
+ scoreMainContainer: {
+ marginTop: 10,
+ marginBottom: 10,
+ },
+ scoreCurrentContainer: {
+ flexDirection: 'row',
+ marginLeft: 'auto',
+ marginRight: 'auto',
+ },
+ scoreText: {
+ marginLeft: 5,
+ fontSize: 20,
+ },
+ scoreBestContainer: {
+ flexDirection: 'row',
+ marginLeft: 'auto',
+ marginRight: 'auto',
+ marginTop: 5,
+ },
+ controlsContainer: {
+ height: 80,
+ flexDirection: 'row',
+ },
+ directionsContainer: {
+ flexDirection: 'row',
+ flex: 4,
+ },
+ preview: {
+ marginLeft: 'auto',
+ marginRight: 'auto',
+ marginTop: 10,
+ },
+});
+
class GameMainScreen extends React.Component {
static getFormattedTime(seconds: number): string {
const date = new Date();
@@ -94,7 +156,7 @@ class GameMainScreen extends React.Component {
}
componentDidMount() {
- const {navigation} = this.props;
+ const { navigation } = this.props;
navigation.setOptions({
headerRight: this.getRightButton,
});
@@ -128,11 +190,11 @@ class GameMainScreen extends React.Component {
};
onDialogDismiss = () => {
- this.setState({dialogVisible: false});
+ this.setState({ dialogVisible: false });
};
onGameEnd = (time: number, score: number, isRestart: boolean) => {
- const {props, state} = this;
+ const { props, state } = this;
this.setState({
gameTime: time,
gameScore: score,
@@ -147,31 +209,19 @@ class GameMainScreen extends React.Component {
};
getStatusIcons() {
- const {props, state} = this;
+ const { props, state } = this;
return (
-
-
+ ...GENERAL_STYLES.flex,
+ ...GENERAL_STYLES.centerVertical,
+ }}
+ >
+
+
{i18n.t('screens.game.time')}
-
+
{
/>
+ }}
+ >
{GameMainScreen.getFormattedTime(state.gameTime)}
-
-
+
+
{i18n.t('screens.game.level')}
-
+
-
- {state.gameLevel}
-
+ {state.gameLevel}
@@ -222,65 +255,38 @@ class GameMainScreen extends React.Component {
}
getScoreIcon() {
- const {props, state} = this;
+ const { props, state } = this;
const highScore =
this.highScore == null || state.gameScore > this.highScore
? state.gameScore
: this.highScore;
return (
-
-
-
- {i18n.t('screens.game.score', {score: state.gameScore})}
+
+
+
+ {i18n.t('screens.game.score', { score: state.gameScore })}
-
+
- {i18n.t('screens.game.highScore', {score: highScore})}
+ }}
+ >
+ {i18n.t('screens.game.highScore', { score: highScore })}
@@ -288,30 +294,22 @@ class GameMainScreen extends React.Component {
}
getControlButtons() {
- const {props} = this;
+ const { props } = this;
return (
-
+
{
this.logic.rotatePressed(this.updateGrid);
}}
- style={{flex: 1}}
+ style={GENERAL_STYLES.flex}
/>
-
+
{
this.logic.pressedOut();
}}
@@ -322,7 +320,7 @@ class GameMainScreen extends React.Component {
{
this.logic.pressedOut();
}}
@@ -340,7 +338,7 @@ class GameMainScreen extends React.Component {
onPress={() => {
this.logic.pressedOut();
}}
- style={{flex: 1}}
+ style={GENERAL_STYLES.flex}
color={props.theme.colors.tetrisScore}
/>
@@ -420,16 +418,12 @@ class GameMainScreen extends React.Component {
};
render() {
- const {props, state} = this;
+ const { props, state } = this;
return (
-
-
+
+
{this.getStatusIcons()}
-
+
{this.getScoreIcon()}
{
grid={state.grid}
style={{
backgroundColor: props.theme.colors.tetrisBackground,
- flex: 1,
- marginLeft: 'auto',
- marginRight: 'auto',
+ ...GENERAL_STYLES.flex,
+ ...GENERAL_STYLES.centerHorizontal,
}}
/>
-
+
diff --git a/src/screens/Game/screens/GameStartScreen.tsx b/src/screens/Game/screens/GameStartScreen.tsx
index 0248f08..bcb7480 100644
--- a/src/screens/Game/screens/GameStartScreen.tsx
+++ b/src/screens/Game/screens/GameStartScreen.tsx
@@ -18,7 +18,7 @@
*/
import * as React from 'react';
-import {StackNavigationProp} from '@react-navigation/stack';
+import { StackNavigationProp } from '@react-navigation/stack';
import {
Button,
Card,
@@ -28,20 +28,21 @@ import {
Text,
withTheme,
} from 'react-native-paper';
-import {View} from 'react-native';
+import { StyleSheet, View } from 'react-native';
import i18n from 'i18n-js';
import * as Animatable from 'react-native-animatable';
import MaterialCommunityIcons from 'react-native-vector-icons/MaterialCommunityIcons';
import LinearGradient from 'react-native-linear-gradient';
-import Mascot, {MASCOT_STYLE} from '../../../components/Mascot/Mascot';
+import Mascot, { MASCOT_STYLE } from '../../../components/Mascot/Mascot';
import MascotPopup from '../../../components/Mascot/MascotPopup';
import AsyncStorageManager from '../../../managers/AsyncStorageManager';
-import type {GridType} from '../components/GridComponent';
+import type { GridType } from '../components/GridComponent';
import GridComponent from '../components/GridComponent';
import GridManager from '../logic/GridManager';
import Piece from '../logic/Piece';
import SpeechArrow from '../../../components/Mascot/SpeechArrow';
import CollapsibleScrollView from '../../../components/Collapsible/CollapsibleScrollView';
+import GENERAL_STYLES from '../../../constants/Styles';
type GameStatsType = {
score: number;
@@ -57,6 +58,87 @@ type PropsType = {
theme: ReactNativePaper.Theme;
};
+const styles = StyleSheet.create({
+ pieceContainer: {
+ position: 'absolute',
+ width: '100%',
+ height: '100%',
+ },
+ pieceBackground: {
+ position: 'absolute',
+ },
+ playButton: {
+ marginLeft: 'auto',
+ marginRight: 'auto',
+ marginTop: 10,
+ },
+ recapCard: {
+ borderWidth: 2,
+ marginLeft: 20,
+ marginRight: 20,
+ },
+ recapContainer: {
+ flexDirection: 'row',
+ marginLeft: 'auto',
+ marginRight: 'auto',
+ },
+ recapScoreContainer: {
+ flexDirection: 'row',
+ marginLeft: 'auto',
+ marginRight: 'auto',
+ marginTop: 10,
+ marginBottom: 10,
+ },
+ recapScore: {
+ fontSize: 20,
+ },
+ recapScoreIcon: {
+ marginLeft: 5,
+ },
+ recapIcon: {
+ marginRight: 5,
+ marginLeft: 5,
+ },
+ welcomeMascot: {
+ width: '40%',
+ marginLeft: 'auto',
+ marginRight: 'auto',
+ },
+ welcomeCard: {
+ borderWidth: 2,
+ marginLeft: 10,
+ marginRight: 10,
+ },
+ centertext: {
+ textAlign: 'center',
+ },
+ welcomeText: {
+ textAlign: 'center',
+ marginTop: 10,
+ },
+ speechArrow: {
+ marginLeft: '60%',
+ },
+ podiumContainer: {
+ flexDirection: 'column',
+ alignItems: 'center',
+ justifyContent: 'flex-end',
+ },
+ podiumIconContainer: {
+ position: 'absolute',
+ top: -20,
+ },
+ topScoreContainer: {
+ marginBottom: 20,
+ marginTop: 20,
+ },
+ topScoreSubcontainer: {
+ flexDirection: 'row',
+ marginLeft: 'auto',
+ marginRight: 'auto',
+ },
+});
+
class GameStartScreen extends React.Component {
gridManager: GridManager;
@@ -71,7 +153,7 @@ class GameStartScreen extends React.Component {
this.isHighScore = false;
this.gridManager = new GridManager(4, 4, props.theme);
this.scores = AsyncStorageManager.getObject(
- AsyncStorageManager.PREFERENCES.gameScores.key,
+ AsyncStorageManager.PREFERENCES.gameScores.key
);
this.scores.sort((a: number, b: number): number => b - a);
if (props.route.params != null) {
@@ -80,7 +162,7 @@ class GameStartScreen extends React.Component {
}
getPiecesBackground() {
- const {theme} = this.props;
+ const { theme } = this.props;
const gridList = [];
for (let i = 0; i < 18; i += 1) {
gridList.push(this.gridManager.getEmptyGrid(4, 4));
@@ -88,12 +170,7 @@ class GameStartScreen extends React.Component {
piece.toGrid(gridList[i], true);
}
return (
-
+
{gridList.map((item: GridType, index: number) => {
const size = 10 + Math.floor(Math.random() * 30);
const top = Math.floor(Math.random() * 100);
@@ -110,16 +187,17 @@ class GameStartScreen extends React.Component {
key={`piece${index.toString()}`}
style={{
width: `${size}%`,
- position: 'absolute',
top: `${top}%`,
left: `${left}%`,
- }}>
+ ...styles.pieceBackground,
+ }}
+ >
@@ -130,99 +208,72 @@ class GameStartScreen extends React.Component {
}
getPostGameContent(stats: GameStatsType) {
- const {props} = this;
+ const { props } = this;
+ const width = this.isHighScore ? '50%' : '30%';
+ const margin = this.isHighScore ? 'auto' : undefined;
+ const marginLeft = this.isHighScore ? '60%' : '20%';
+ const color = this.isHighScore
+ ? props.theme.colors.gameGold
+ : props.theme.colors.primary;
return (
-
+
+ ...styles.recapCard,
+ }}
+ >
+ color: color,
+ ...styles.centertext,
+ }}
+ >
{this.isHighScore
? i18n.t('screens.game.newHighScore')
: i18n.t('screens.game.gameOver')}
-
-
- {i18n.t('screens.game.score', {score: stats.score})}
+
+
+ {i18n.t('screens.game.score', { score: stats.score })}
-
+
{i18n.t('screens.game.level')}
{stats.level}
-
+
{i18n.t('screens.game.time')}
{
}
getWelcomeText() {
- const {props} = this;
+ const { props } = this;
return (
-
+
+ ...styles.welcomeCard,
+ }}
+ >
+ ...styles.centertext,
+ }}
+ >
{i18n.t('screens.game.welcomeTitle')}
-
+
{i18n.t('screens.game.welcomeMessage')}
@@ -282,7 +322,7 @@ class GameStartScreen extends React.Component {
}
getPodiumRender(place: 1 | 2 | 3, score: string) {
- const {props} = this;
+ const { props } = this;
let icon = 'podium-gold';
let color = props.theme.colors.gameGold;
let fontSize = 20;
@@ -298,15 +338,17 @@ class GameStartScreen extends React.Component {
fontSize = 15;
size = 50;
}
+ const marginLeft = place === 2 ? 20 : 'auto';
+ const marginRight = place === 3 ? 20 : 'auto';
+ const fontWeight = place === 1 ? 'bold' : undefined;
return (
+ marginLeft: marginLeft,
+ marginRight: marginRight,
+ ...styles.podiumContainer,
+ }}
+ >
{this.isHighScore && place === 1 ? (
{
duration={2000}
delay={1000}
useNativeDriver
- style={{
- position: 'absolute',
- top: -20,
- }}>
+ style={styles.podiumIconContainer}
+ >
+ useNativeDriver
+ >
{
/>
+ ...styles.centertext,
+ }}
+ >
{score}
@@ -352,18 +394,9 @@ class GameStartScreen extends React.Component {
const silver = this.scores.length > 1 ? this.scores[1] : '-';
const bronze = this.scores.length > 2 ? this.scores[2] : '-';
return (
-
+
{this.getPodiumRender(1, gold.toString())}
-
+
{this.getPodiumRender(3, bronze.toString())}
{this.getPodiumRender(2, silver.toString())}
@@ -372,9 +405,9 @@ class GameStartScreen extends React.Component {
}
getMainContent() {
- const {props} = this;
+ const { props } = this;
return (
-
+
{this.gameStats != null
? this.getPostGameContent(this.gameStats)
: this.getWelcomeText()}
@@ -386,11 +419,8 @@ class GameStartScreen extends React.Component {
highScore: this.scores.length > 0 ? this.scores[0] : null,
});
}}
- style={{
- marginLeft: 'auto',
- marginRight: 'auto',
- marginTop: 10,
- }}>
+ style={styles.playButton}
+ >
{i18n.t('screens.game.play')}
{this.getTopScoresRender()}
@@ -401,7 +431,7 @@ class GameStartScreen extends React.Component {
keyExtractor = (item: number): string => item.toString();
recoverGameScore() {
- const {route} = this.props;
+ const { route } = this.props;
this.gameStats = route.params;
if (this.gameStats.score != null) {
this.isHighScore =
@@ -420,24 +450,25 @@ class GameStartScreen extends React.Component {
}
AsyncStorageManager.set(
AsyncStorageManager.PREFERENCES.gameScores.key,
- this.scores,
+ this.scores
);
}
}
render() {
- const {props} = this;
+ const { props } = this;
return (
-
+
{this.getPiecesBackground()}
+ start={{ x: 0, y: 0 }}
+ end={{ x: 0, y: 1 }}
+ >
{this.getMainContent()}
;
- route: {params: {data: FeedItemType; date: string}};
+ route: { params: { data: FeedItemType; date: string } };
};
+const styles = StyleSheet.create({
+ container: {
+ margin: 5,
+ },
+ image: {
+ width: 48,
+ height: 48,
+ },
+ button: {
+ width: 250,
+ height: 250,
+ marginLeft: 'auto',
+ marginRight: 'auto',
+ },
+});
+
/**
* Class defining a feed item page.
*/
@@ -54,7 +70,7 @@ class FeedItemScreen extends React.Component {
}
componentDidMount() {
- const {props} = this;
+ const { props } = this;
props.navigation.setOptions({
headerRight: this.getHeaderButton,
});
@@ -89,32 +105,21 @@ class FeedItemScreen extends React.Component {
const pageSource: NewsSourceType =
NewsSourcesConstants[this.displayData.page_id as AvailablePages];
return (
-
+
(
-
- )}
+ left={() => }
/>
{this.displayData.image ? (
) : null}
-
+
{this.displayData.message !== undefined ? (
;
+ today_menu: Array<{ [key: string]: object }>;
proximo_articles: number;
available_dryers: number;
available_washers: number;
@@ -75,7 +81,7 @@ export type FullDashboardType = {
available_tutorials: number;
};
-type RawNewsFeedType = {[key: string]: Array};
+type RawNewsFeedType = { [key: string]: Array };
type RawDashboardType = {
news_feed: RawNewsFeedType;
@@ -84,7 +90,7 @@ type RawDashboardType = {
type PropsType = {
navigation: StackNavigationProp;
- route: {params: {nextScreen: string; data: object}};
+ route: { params: { nextScreen: string; data: object } };
theme: ReactNativePaper.Theme;
};
@@ -92,6 +98,35 @@ type StateType = {
dialogVisible: boolean;
};
+const styles = StyleSheet.create({
+ dashboardRow: {
+ marginLeft: 'auto',
+ marginRight: 'auto',
+ marginTop: 10,
+ marginBottom: 10,
+ },
+ sectionHeader: {
+ textAlign: 'center',
+ marginTop: 50,
+ marginBottom: 10,
+ },
+ sectionHeaderEmpty: {
+ textAlign: 'center',
+ marginTop: 50,
+ marginBottom: 10,
+ marginLeft: 20,
+ marginRight: 20,
+ },
+ activityIndicator: {
+ marginTop: 10,
+ },
+ content: {
+ position: 'absolute',
+ width: '100%',
+ height: '100%',
+ },
+});
+
/**
* Class defining the app's home screen
*/
@@ -113,7 +148,7 @@ class HomeScreen extends React.Component {
isLoggedIn: boolean | null;
- fabRef: {current: null | AnimatedFAB};
+ fabRef: { current: null | AnimatedFAB };
currentNewFeed: Array;
@@ -137,7 +172,7 @@ class HomeScreen extends React.Component {
}
componentDidMount() {
- const {props} = this;
+ const { props } = this;
props.navigation.addListener('focus', this.onScreenFocus);
// Handle link open when home is focused
props.navigation.addListener('state', this.handleNavigationParams);
@@ -147,7 +182,7 @@ class HomeScreen extends React.Component {
* Updates login state and navigation parameters on screen focus
*/
onScreenFocus = () => {
- const {props} = this;
+ const { props } = this;
if (ConnectionManager.getInstance().isLoggedIn() !== this.isLoggedIn) {
this.isLoggedIn = ConnectionManager.getInstance().isLoggedIn();
props.navigation.setOptions({
@@ -164,9 +199,9 @@ class HomeScreen extends React.Component {
* @returns {*}
*/
getHeaderButton = () => {
- const {props} = this;
+ const { props } = this;
let onPressLog = (): void =>
- props.navigation.navigate('login', {nextScreen: 'profile'});
+ props.navigation.navigate('login', { nextScreen: 'profile' });
let logIcon = 'login';
let logColor = props.theme.colors.primary;
if (this.isLoggedIn) {
@@ -211,7 +246,8 @@ class HomeScreen extends React.Component {
return (
+ clickAction={this.onEventContainerClick}
+ >
{
data={content}
renderItem={this.getDashboardRowRenderItem}
horizontal
- contentContainerStyle={{
- marginLeft: 'auto',
- marginRight: 'auto',
- marginTop: 10,
- marginBottom: 10,
- }}
+ contentContainerStyle={styles.dashboardRow}
/>
);
}
@@ -248,7 +279,7 @@ class HomeScreen extends React.Component {
* @param item
* @returns {*}
*/
- getDashboardRowRenderItem = ({item}: {item: ServiceItemType | null}) => {
+ getDashboardRowRenderItem = ({ item }: { item: ServiceItemType | null }) => {
if (item != null) {
return (
{
* @param section The current section
* @return {*}
*/
- getRenderItem = ({item}: {item: FeedItemType}) => this.getFeedItem(item);
+ getRenderItem = ({ item }: { item: FeedItemType }) => this.getFeedItem(item);
getRenderSectionHeader = (
data: {
@@ -291,49 +322,32 @@ class HomeScreen extends React.Component {
title: string;
};
},
- isLoading: boolean,
+ isLoading: boolean
) => {
- const {props} = this;
+ const { props } = this;
if (data.section.data.length > 0) {
return (
-
- {data.section.title}
-
+ {data.section.title}
);
}
return (