Commit 81ccd73d by HaOuiha

update apollo

parent 2b78fbeb
...@@ -12,6 +12,8 @@ import { Provider } from 'react-redux'; ...@@ -12,6 +12,8 @@ import { Provider } from 'react-redux';
import rootStore from './reduxStore'; import rootStore from './reduxStore';
import { Root } from 'native-base'; import { Root } from 'native-base';
import { fixTimerWarning } from './utils/fixTimerWarning'; import { fixTimerWarning } from './utils/fixTimerWarning';
import { ApolloProvider } from '@apollo/react-hooks';
import { client } from './utils/apollo/apollo';
import { useScreens } from 'react-native-screens'; import { useScreens } from 'react-native-screens';
console.disableYellowBox = true; console.disableYellowBox = true;
...@@ -25,7 +27,9 @@ const Application = () => { ...@@ -25,7 +27,9 @@ const Application = () => {
<Root> <Root>
<ApplicationProvider mapping={mapping} theme={myTheme}> <ApplicationProvider mapping={mapping} theme={myTheme}>
<Provider store={rootStore}> <Provider store={rootStore}>
<AppContainer /> <ApolloProvider client={client}>
<AppContainer />
</ApolloProvider>
</Provider> </Provider>
</ApplicationProvider> </ApplicationProvider>
</Root> </Root>
......
import React from 'react'; import React, { Component } from 'react';
import { Field, reduxForm } from 'redux-form'; import { Field, reduxForm } from 'redux-form';
import { Text, StyleSheet, View } from 'react-native'; import { Text, StyleSheet, View } from 'react-native';
import Input from './Input'; import Input from './Input';
...@@ -18,7 +18,7 @@ const special = value => ...@@ -18,7 +18,7 @@ const special = value =>
value && !/^(?=.*[!@#\$%\^&\*])/i.test(value) ? 'Password must contain at least 1 special character' : undefined; value && !/^(?=.*[!@#\$%\^&\*])/i.test(value) ? 'Password must contain at least 1 special character' : undefined;
const cfpassword = (value, allValues) => (value !== allValues.newPass ? 'Password not match' : undefined); const cfpassword = (value, allValues) => (value !== allValues.newPass ? 'Password not match' : undefined);
class ChangePassword extends React.Component { class ChangePassword extends Component {
state = { state = {
passVisible: false, passVisible: false,
}; };
...@@ -62,7 +62,7 @@ class ChangePassword extends React.Component { ...@@ -62,7 +62,7 @@ class ChangePassword extends React.Component {
forwardRef forwardRef
ref={c => (this.cfNewPass = c)} ref={c => (this.cfNewPass = c)}
refField="cfNewPass" refField="cfNewPass"
returnKeyType="next" // returnKeyType="next"
name="cfNewPass" name="cfNewPass"
keyboardType="default" keyboardType="default"
component={Input} component={Input}
......
import React, { Component } from 'react'; import React, { Component } from 'react';
import { Field, reduxForm } from 'redux-form'; import { Field, reduxForm } from 'redux-form';
import { KeyboardAvoidingView } from 'react-native'; import { KeyboardAvoidingView, Keyboard } from 'react-native';
import Input from './Input'; import Input from './Input';
import { theme } from '../../constants/Styles'; import { theme } from '../../constants/Styles';
import GradientBtn from '../GradientBtn'; import GradientBtn from '../GradientBtn';
...@@ -46,7 +46,13 @@ class Login extends Component { ...@@ -46,7 +46,13 @@ class Login extends Component {
/> />
</KeyboardAvoidingView> </KeyboardAvoidingView>
{this.props.children} {this.props.children}
<GradientBtn onPress={this.props.handleSubmit} title={'login'} /> <GradientBtn
onPress={() => {
this.props.handleSubmit();
Keyboard.dismiss();
}}
title={'login'}
/>
</> </>
); );
} }
......
...@@ -10,11 +10,15 @@ ...@@ -10,11 +10,15 @@
"lint": "eslint ." "lint": "eslint ."
}, },
"dependencies": { "dependencies": {
"@apollo/react-hooks": "^3.1.1",
"@eva-design/eva": "^1.0.1", "@eva-design/eva": "^1.0.1",
"@react-native-community/async-storage": "^1.6.1", "@react-native-community/async-storage": "^1.6.1",
"apollo-boost": "^0.4.4",
"axios": "^0.19.0", "axios": "^0.19.0",
"date-fns": "^1.30.1", "date-fns": "^1.30.1",
"firebase": "^6.5.0", "firebase": "^6.5.0",
"graphql": "^14.5.7",
"graphql-tag": "^2.10.1",
"lodash": "^4.17.15", "lodash": "^4.17.15",
"moment": "^2.24.0", "moment": "^2.24.0",
"native-base": "^2.12.2", "native-base": "^2.12.2",
......
...@@ -22,7 +22,7 @@ export const errorAction = error => ({ ...@@ -22,7 +22,7 @@ export const errorAction = error => ({
}); });
export const getAllMainDeviceInfo = () => async (dispatch, getState) => { export const getAllMainDeviceInfo = () => async (dispatch, getState) => {
const { currentUserReducer } = getState(); const { currentUserReducer } = await getState();
const currentUserId = currentUserReducer.uid; const currentUserId = currentUserReducer.uid;
try { try {
dispatch(loadingAction(true)); dispatch(loadingAction(true));
...@@ -104,7 +104,7 @@ const getBreakerStatus = async deviceId => { ...@@ -104,7 +104,7 @@ const getBreakerStatus = async deviceId => {
const breakerStatus = tempBreakerStatus.SM1.BK_S; const breakerStatus = tempBreakerStatus.SM1.BK_S;
return breakerStatus; return breakerStatus;
} catch (e) { } catch (e) {
// console.log(e || 'error'); console.log(e || 'error');
return 0; return 0;
} }
}; };
import { fireStore } from '../../firebase';
export const GET_CURRENT_USER = 'GET_CURRENT_USER'; export const GET_CURRENT_USER = 'GET_CURRENT_USER';
export const getCurrentUserAction = ( export const getCurrentUserAction = (displayName, email, emailVerified, phoneNumber, uid, photoURL) => ({
displayName,
email,
emailVerified,
phoneNumber,
uid,
firstName,
lastName,
profileImg
) => ({
type: GET_CURRENT_USER, type: GET_CURRENT_USER,
displayName, displayName,
email, email,
emailVerified, emailVerified,
phoneNumber, phoneNumber,
uid, uid,
firstName, photoURL,
lastName,
profileImg,
}); });
export const getCurrentUser = user => async dispatch => { export const getCurrentUser = user => async dispatch => {
const { displayName, email, emailVerified, uid } = user; const { displayName, email, emailVerified, uid, phoneNumber, photoURL } = user;
const currentUser = await fireStore
.collection('user')
.doc(uid)
.get();
const currentUserData = await currentUser.data();
dispatch( dispatch(getCurrentUserAction(displayName, email, emailVerified, phoneNumber, uid, photoURL));
getCurrentUserAction(
displayName,
email,
emailVerified,
currentUserData.phoneNumber,
uid,
currentUserData.firstName,
currentUserData.lastName
)
);
}; };
export const updateUser = userData => async (dispatch, getState) => { export const updateUser = userData => async (dispatch, getState) => {
const { currentUserReducer } = getState(); const { currentUserReducer } = getState();
const { displayName, email, emailVerified, uid, profileImg } = currentUserReducer; const { displayName, email, emailVerified, uid, phoneNumber, photoURL } = currentUserReducer;
const ref = fireStore.collection('user').doc(uid);
const newUserData = {
firstName: userData.firstName,
lastName: userData.lastName,
phoneNumber: userData.phoneNumber,
};
try { try {
dispatch( await user.updateProfile({
getCurrentUserAction( displayName: `${userData.firstName} ${userData.lastName}`,
displayName, phoneNumber: userData.phoneNumber,
email, });
emailVerified,
userData.phoneNumber, const newDisplayName = `${userData.firstName} ${userData.lastName}`;
uid, const newPhoneNumber = userData.phoneNumber;
userData.firstName,
userData.lastName, dispatch(getCurrentUserAction(newDisplayName, email, emailVerified, uid, newPhoneNumber, photoURL));
profileImg
)
);
await ref.update(newUserData);
} catch (error) { } catch (error) {
console.log('Update user failed!', error); console.log('Update user failed!', error);
} }
......
...@@ -6,9 +6,7 @@ const initState = { ...@@ -6,9 +6,7 @@ const initState = {
emailVerified: '', emailVerified: '',
phoneNumber: '', phoneNumber: '',
uid: '', uid: '',
firstName: '', photoURL: '',
lastName: '',
profileImg: '',
}; };
const currentUserReducer = (state = initState, action) => { const currentUserReducer = (state = initState, action) => {
...@@ -21,9 +19,7 @@ const currentUserReducer = (state = initState, action) => { ...@@ -21,9 +19,7 @@ const currentUserReducer = (state = initState, action) => {
emailVerified: action.emailVerified, emailVerified: action.emailVerified,
phoneNumber: action.phoneNumber, phoneNumber: action.phoneNumber,
uid: action.uid, uid: action.uid,
firstName: action.firstName, photoURL: action.photoURL,
lastName: action.lastName,
profileImg: action.profileImg,
}; };
default: default:
return state; return state;
......
...@@ -63,6 +63,7 @@ export default class ChangePasswordScreen extends React.Component { ...@@ -63,6 +63,7 @@ export default class ChangePasswordScreen extends React.Component {
this.props.navigation.navigate('Login'); this.props.navigation.navigate('Login');
await AsyncStorage.clear(); await AsyncStorage.clear();
}; };
render() { render() {
const { changeSuccessModal, errorModal } = this.state; const { changeSuccessModal, errorModal } = this.state;
return ( return (
......
...@@ -7,6 +7,7 @@ import { theme, color } from '../../../constants/Styles'; ...@@ -7,6 +7,7 @@ import { theme, color } from '../../../constants/Styles';
import { connect } from 'react-redux'; import { connect } from 'react-redux';
import { width } from '../../../constants/Layout'; import { width } from '../../../constants/Layout';
import { isIphoneX } from '../../../utils/isPhoneX'; import { isIphoneX } from '../../../utils/isPhoneX';
import AsyncStorage from '@react-native-community/async-storage';
const BUTTONS = ['Logout', 'Cancel']; const BUTTONS = ['Logout', 'Cancel'];
const DESTRUCTIVE_INDEX = 0; const DESTRUCTIVE_INDEX = 0;
...@@ -31,7 +32,7 @@ class ProfileScreen extends React.Component { ...@@ -31,7 +32,7 @@ class ProfileScreen extends React.Component {
}); });
render() { render() {
const { email, phoneNumber, firstName, lastName, profileImg } = this.props; const { email, phoneNumber, profileImg, displayName } = this.props;
return ( return (
<View style={theme.container}> <View style={theme.container}>
<View style={styles.headerStyle}> <View style={styles.headerStyle}>
...@@ -49,7 +50,7 @@ class ProfileScreen extends React.Component { ...@@ -49,7 +50,7 @@ class ProfileScreen extends React.Component {
</View> </View>
<View style={styles.infoContainer}> <View style={styles.infoContainer}>
<Text style={theme.description}>Name</Text> <Text style={theme.description}>Name</Text>
<Text style={styles.textInfo}>{firstName + ' ' + lastName || '-'}</Text> <Text style={styles.textInfo}>{displayName || '-'}</Text>
<View style={styles.seperator} /> <View style={styles.seperator} />
<Text style={theme.description}>Email</Text> <Text style={theme.description}>Email</Text>
<Text style={styles.textInfo}>{email || '-'}</Text> <Text style={styles.textInfo}>{email || '-'}</Text>
...@@ -79,7 +80,7 @@ class ProfileScreen extends React.Component { ...@@ -79,7 +80,7 @@ class ProfileScreen extends React.Component {
async buttonIndex => { async buttonIndex => {
if (buttonIndex === 0) { if (buttonIndex === 0) {
this.props.navigation.navigate('Login'); this.props.navigation.navigate('Login');
await AsyncStorage.clear(); await AsyncStorage.removeItem('RememberedLogin');
} }
} }
); );
......
...@@ -90,7 +90,7 @@ class SmartMeterScreen extends PureComponent { ...@@ -90,7 +90,7 @@ class SmartMeterScreen extends PureComponent {
<SearchBar <SearchBar
containerStyle={styles.searchBarContainer} containerStyle={styles.searchBarContainer}
inputContainerStyle={styles.searchBarInputContainer} inputContainerStyle={styles.searchBarInputContainer}
inputStyle={theme.normalText} inputStyle={styles.searchBarInput}
lightTheme lightTheme
placeholder="Search..." placeholder="Search..."
onChangeText={text => this.updateSearch(text)} onChangeText={text => this.updateSearch(text)}
...@@ -151,6 +151,8 @@ const styles = StyleSheet.create({ ...@@ -151,6 +151,8 @@ const styles = StyleSheet.create({
height: 35, height: 35,
borderColor: '#c7cad1', borderColor: '#c7cad1',
}, },
searchBarInput: { fontFamily: 'Avenir-Roman', fontSize: 14, color: color.grey, marginTop: 3 },
}); });
const mapStateToProps = state => ({ const mapStateToProps = state => ({
......
...@@ -35,6 +35,8 @@ class AuthLoadingScreen extends Component { ...@@ -35,6 +35,8 @@ class AuthLoadingScreen extends Component {
// Preload data from an external API && Preload data using AsyncStorage // Preload data from an external API && Preload data using AsyncStorage
const alreadyLaunched = await AsyncStorage.getItem('alreadyLaunched'); const alreadyLaunched = await AsyncStorage.getItem('alreadyLaunched');
const RememberedLogin = await AsyncStorage.getItem('RememberedLogin'); const RememberedLogin = await AsyncStorage.getItem('RememberedLogin');
console.log('alreadyLaunched', alreadyLaunched);
console.log('RememberedLogin', RememberedLogin);
app.auth().onAuthStateChanged(async user => { app.auth().onAuthStateChanged(async user => {
if (user) { if (user) {
......
...@@ -20,39 +20,44 @@ export default class LoginScreen extends Component { ...@@ -20,39 +20,44 @@ export default class LoginScreen extends Component {
handleSignIn = async values => { handleSignIn = async values => {
const { email, password } = values; const { email, password } = values;
try { try {
await app.auth().signInWithEmailAndPassword(email, password); const userCredential = await app.auth().signInWithEmailAndPassword(email, password);
await this.success(); if (userCredential) {
await AsyncStorage.setItem('alreadyLaunched', 'true');
if (this.state.isCheck === true) {
await AsyncStorage.setItem('RememberedLogin', 'true');
}
this.props.navigation.navigate('Main');
}
} catch (error) { } catch (error) {
alert(error); const errorCode = error.code;
} const errorMessage = error.message;
}; if (errorCode === 'auth/wrong-password') {
alert('Wrong password.');
success = async () => { } else if (errorCode === 'auth/user-not-found') {
try { alert('User not Found.');
await AsyncStorage.setItem('alreadyLaunched', 'true'); } else {
this.state.isCheck === true && (await AsyncStorage.setItem('RememberedLogin', 'true')); alert(errorMessage);
this.props.navigation.navigate('Main');
} catch (e) {
alert(e);
}
};
componentDidMount = async () => {
const currentUser = await app.auth().currentUser;
if (currentUser) {
try {
await app.auth().signOut();
} catch (error) {
alert(error);
} }
} }
}; };
// componentDidMount = async () => {
// const currentUser = await app.auth().currentUser;
// if (currentUser) {
// try {
// await app.auth().signOut();
// await AsyncStorage.removeItem('RememberedLogin');
// } catch (error) {
// alert(error);
// }
// }
// };
render() { render() {
return ( return (
<KeyboardAvoidingView style={theme.introContainer}> <KeyboardAvoidingView style={theme.introContainer}>
<Text style={[theme.title, theme.textDark]}>Login</Text> <Text style={[theme.title, theme.textDark]}>Login</Text>
<LoginForm onSubmit={this.handleSignIn}> <LoginForm onSubmit={async values => await this.handleSignIn(values)}>
<View style={[theme.rowContainer, theme.mt1, { justifyContent: 'space-between' }]}> <View style={[theme.rowContainer, theme.mt1, { justifyContent: 'space-between' }]}>
<View style={[theme.rowContainer]}> <View style={[theme.rowContainer]}>
<CheckBox <CheckBox
......
import ApolloClient from 'apollo-boost';
import gql from 'graphql-tag';
const BASE_URL = 'https://gqlv2.nexpie.io';
const READ_SHADOW = gql`
query readShadow($deviceid: String!) {
shadow(deviceid: $deviceid) {
deviceid
value
}
}
`;
const WRITE_SHADOW = gql`
mutation writeShadow($deviceid: String!, $data: String!) {
writeShadow(deviceid: $deviceid, value: $data) {
deviceid
value
}
}
`;
const client = new ApolloClient({
uri: BASE_URL,
request: async operation => {
// const token = localStorage.getItem('token');
operation.setContext({
headers: {
authorization: token ? `Bearer ${token}` : '',
},
});
},
});
export { client };
...@@ -2,6 +2,24 @@ ...@@ -2,6 +2,24 @@
# yarn lockfile v1 # yarn lockfile v1
"@apollo/react-common@^3.1.1":
version "3.1.1"
resolved "https://registry.yarnpkg.com/@apollo/react-common/-/react-common-3.1.1.tgz#540619d8276d750ce4f381c9cf8f51a6f657f75d"
integrity sha512-lMiczOm4sD16eI9Ai+AUY+Jl3C/FNm4IpoZiAbe35TqMuD7HpZ4OJmXAbT3CzfrAqsKK8+rHgRvTiPI2kQjIWg==
dependencies:
ts-invariant "^0.4.4"
tslib "^1.10.0"
"@apollo/react-hooks@^3.1.1":
version "3.1.1"
resolved "https://registry.yarnpkg.com/@apollo/react-hooks/-/react-hooks-3.1.1.tgz#8e5a0f281a9778aaf17496ad38a178d23375077c"
integrity sha512-LwE4olNlKwqh1hl6iHr/igSDGRVs7c6Ik5MYZm9TzGj01f+ebhM1+Pn+UBNLsb3uRuytZsUOsEDBEXMABzC9Tw==
dependencies:
"@apollo/react-common" "^3.1.1"
"@wry/equality" "^0.1.9"
ts-invariant "^0.4.4"
tslib "^1.10.0"
"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.5.5": "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.5.5":
version "7.5.5" version "7.5.5"
resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d"
...@@ -1289,7 +1307,7 @@ ...@@ -1289,7 +1307,7 @@
resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.0.tgz#719551d2352d301ac8b81db732acb6bdc28dbdef" resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.0.tgz#719551d2352d301ac8b81db732acb6bdc28dbdef"
integrity sha512-1w52Nyx4Gq47uuu0EVcsHBxZFJgurQ+rTKS3qMHxR1GY2T8c2AJYd6vZoZ9q1rupaDjU0yT+Jc2XTyXkjeMA+Q== integrity sha512-1w52Nyx4Gq47uuu0EVcsHBxZFJgurQ+rTKS3qMHxR1GY2T8c2AJYd6vZoZ9q1rupaDjU0yT+Jc2XTyXkjeMA+Q==
"@types/node@*": "@types/node@*", "@types/node@>=6":
version "12.7.5" version "12.7.5"
resolved "https://registry.yarnpkg.com/@types/node/-/node-12.7.5.tgz#e19436e7f8e9b4601005d73673b6dc4784ffcc2f" resolved "https://registry.yarnpkg.com/@types/node/-/node-12.7.5.tgz#e19436e7f8e9b4601005d73673b6dc4784ffcc2f"
integrity sha512-9fq4jZVhPNW8r+UYKnxF1e2HkDWOWKM5bC2/7c9wPV835I0aOrVbS/Hw/pWPk2uKrNXQqg9Z959Kz+IYDd5p3w== integrity sha512-9fq4jZVhPNW8r+UYKnxF1e2HkDWOWKM5bC2/7c9wPV835I0aOrVbS/Hw/pWPk2uKrNXQqg9Z959Kz+IYDd5p3w==
...@@ -1345,6 +1363,11 @@ ...@@ -1345,6 +1363,11 @@
dependencies: dependencies:
"@types/yargs-parser" "*" "@types/yargs-parser" "*"
"@types/zen-observable@^0.8.0":
version "0.8.0"
resolved "https://registry.yarnpkg.com/@types/zen-observable/-/zen-observable-0.8.0.tgz#8b63ab7f1aa5321248aad5ac890a485656dcea4d"
integrity sha512-te5lMAWii1uEJ4FwLjzdlbw3+n0FZNOvFXHxQDKeT0dilh7HOzdMzV2TrJVUzq8ep7J4Na8OUYPRLSQkJHAlrg==
"@typescript-eslint/eslint-plugin@^1.5.0": "@typescript-eslint/eslint-plugin@^1.5.0":
version "1.12.0" version "1.12.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-1.12.0.tgz#96b4e08b5f998a198b8414508b1a289f9e8c549a" resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-1.12.0.tgz#96b4e08b5f998a198b8414508b1a289f9e8c549a"
...@@ -1382,6 +1405,21 @@ ...@@ -1382,6 +1405,21 @@
lodash.unescape "4.0.1" lodash.unescape "4.0.1"
semver "5.5.0" semver "5.5.0"
"@wry/context@^0.4.0":
version "0.4.4"
resolved "https://registry.yarnpkg.com/@wry/context/-/context-0.4.4.tgz#e50f5fa1d6cfaabf2977d1fda5ae91717f8815f8"
integrity sha512-LrKVLove/zw6h2Md/KZyWxIkFM6AoyKp71OqpH9Hiip1csjPVoD3tPxlbQUNxEnHENks3UGgNpSBCAfq9KWuag==
dependencies:
"@types/node" ">=6"
tslib "^1.9.3"
"@wry/equality@^0.1.2", "@wry/equality@^0.1.9":
version "0.1.9"
resolved "https://registry.yarnpkg.com/@wry/equality/-/equality-0.1.9.tgz#b13e18b7a8053c6858aa6c85b54911fb31e3a909"
integrity sha512-mB6ceGjpMGz1ZTza8HYnrPGos2mC6So4NhS1PtZ8s4Qt0K7fBiIGhpSxUbQmhwcSWE3no+bYxmI2OL6KuXYmoQ==
dependencies:
tslib "^1.9.3"
abab@^2.0.0: abab@^2.0.0:
version "2.0.1" version "2.0.1"
resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.1.tgz#3fa17797032b71410ec372e11668f4b4ffc86a82" resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.1.tgz#3fa17797032b71410ec372e11668f4b4ffc86a82"
...@@ -1542,6 +1580,101 @@ anymatch@^2.0.0: ...@@ -1542,6 +1580,101 @@ anymatch@^2.0.0:
micromatch "^3.1.4" micromatch "^3.1.4"
normalize-path "^2.1.1" normalize-path "^2.1.1"
apollo-boost@^0.4.4:
version "0.4.4"
resolved "https://registry.yarnpkg.com/apollo-boost/-/apollo-boost-0.4.4.tgz#7c278dac6cb6fa3f2f710c56baddc6e3ae730651"
integrity sha512-ASngBvazmp9xNxXfJ2InAzfDwz65o4lswlEPrWoN35scXmCz8Nz4k3CboUXbrcN/G0IExkRf/W7o9Rg0cjEBqg==
dependencies:
apollo-cache "^1.3.2"
apollo-cache-inmemory "^1.6.3"
apollo-client "^2.6.4"
apollo-link "^1.0.6"
apollo-link-error "^1.0.3"
apollo-link-http "^1.3.1"
graphql-tag "^2.4.2"
ts-invariant "^0.4.0"
tslib "^1.9.3"
apollo-cache-inmemory@^1.6.3:
version "1.6.3"
resolved "https://registry.yarnpkg.com/apollo-cache-inmemory/-/apollo-cache-inmemory-1.6.3.tgz#826861d20baca4abc45f7ca7a874105905b8525d"
integrity sha512-S4B/zQNSuYc0M/1Wq8dJDTIO9yRgU0ZwDGnmlqxGGmFombOZb9mLjylewSfQKmjNpciZ7iUIBbJ0mHlPJTzdXg==
dependencies:
apollo-cache "^1.3.2"
apollo-utilities "^1.3.2"
optimism "^0.10.0"
ts-invariant "^0.4.0"
tslib "^1.9.3"
apollo-cache@1.3.2, apollo-cache@^1.3.2:
version "1.3.2"
resolved "https://registry.yarnpkg.com/apollo-cache/-/apollo-cache-1.3.2.tgz#df4dce56240d6c95c613510d7e409f7214e6d26a"
integrity sha512-+KA685AV5ETEJfjZuviRTEImGA11uNBp/MJGnaCvkgr+BYRrGLruVKBv6WvyFod27WEB2sp7SsG8cNBKANhGLg==
dependencies:
apollo-utilities "^1.3.2"
tslib "^1.9.3"
apollo-client@^2.6.4:
version "2.6.4"
resolved "https://registry.yarnpkg.com/apollo-client/-/apollo-client-2.6.4.tgz#872c32927263a0d34655c5ef8a8949fbb20b6140"
integrity sha512-oWOwEOxQ9neHHVZrQhHDbI6bIibp9SHgxaLRVPoGvOFy7OH5XUykZE7hBQAVxq99tQjBzgytaZffQkeWo1B4VQ==
dependencies:
"@types/zen-observable" "^0.8.0"
apollo-cache "1.3.2"
apollo-link "^1.0.0"
apollo-utilities "1.3.2"
symbol-observable "^1.0.2"
ts-invariant "^0.4.0"
tslib "^1.9.3"
zen-observable "^0.8.0"
apollo-link-error@^1.0.3:
version "1.1.12"
resolved "https://registry.yarnpkg.com/apollo-link-error/-/apollo-link-error-1.1.12.tgz#e24487bb3c30af0654047611cda87038afbacbf9"
integrity sha512-psNmHyuy3valGikt/XHJfe0pKJnRX19tLLs6P6EHRxg+6q6JMXNVLYPaQBkL0FkwdTCB0cbFJAGRYCBviG8TDA==
dependencies:
apollo-link "^1.2.13"
apollo-link-http-common "^0.2.15"
tslib "^1.9.3"
apollo-link-http-common@^0.2.15:
version "0.2.15"
resolved "https://registry.yarnpkg.com/apollo-link-http-common/-/apollo-link-http-common-0.2.15.tgz#304e67705122bf69a9abaded4351b10bc5efd6d9"
integrity sha512-+Heey4S2IPsPyTf8Ag3PugUupASJMW894iVps6hXbvwtg1aHSNMXUYO5VG7iRHkPzqpuzT4HMBanCTXPjtGzxg==
dependencies:
apollo-link "^1.2.13"
ts-invariant "^0.4.0"
tslib "^1.9.3"
apollo-link-http@^1.3.1:
version "1.5.16"
resolved "https://registry.yarnpkg.com/apollo-link-http/-/apollo-link-http-1.5.16.tgz#44fe760bcc2803b8a7f57fc9269173afb00f3814"
integrity sha512-IA3xA/OcrOzINRZEECI6IdhRp/Twom5X5L9jMehfzEo2AXdeRwAMlH5LuvTZHgKD8V1MBnXdM6YXawXkTDSmJw==
dependencies:
apollo-link "^1.2.13"
apollo-link-http-common "^0.2.15"
tslib "^1.9.3"
apollo-link@^1.0.0, apollo-link@^1.0.6, apollo-link@^1.2.13:
version "1.2.13"
resolved "https://registry.yarnpkg.com/apollo-link/-/apollo-link-1.2.13.tgz#dff00fbf19dfcd90fddbc14b6a3f9a771acac6c4"
integrity sha512-+iBMcYeevMm1JpYgwDEIDt/y0BB7VWyvlm/7x+TIPNLHCTCMgcEgDuW5kH86iQZWo0I7mNwQiTOz+/3ShPFmBw==
dependencies:
apollo-utilities "^1.3.0"
ts-invariant "^0.4.0"
tslib "^1.9.3"
zen-observable-ts "^0.8.20"
apollo-utilities@1.3.2, apollo-utilities@^1.3.0, apollo-utilities@^1.3.2:
version "1.3.2"
resolved "https://registry.yarnpkg.com/apollo-utilities/-/apollo-utilities-1.3.2.tgz#8cbdcf8b012f664cd6cb5767f6130f5aed9115c9"
integrity sha512-JWNHj8XChz7S4OZghV6yc9FNnzEXj285QYp/nLNh943iObycI5GTDO3NGR9Dth12LRrSFMeDOConPfPln+WGfg==
dependencies:
"@wry/equality" "^0.1.2"
fast-json-stable-stringify "^2.0.0"
ts-invariant "^0.4.0"
tslib "^1.9.3"
aproba@^1.0.3: aproba@^1.0.3:
version "1.2.0" version "1.2.0"
resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
...@@ -3479,6 +3612,18 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.3 ...@@ -3479,6 +3612,18 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.3
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.2.tgz#6f0952605d0140c1cfdb138ed005775b92d67b02" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.2.tgz#6f0952605d0140c1cfdb138ed005775b92d67b02"
integrity sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q== integrity sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==
graphql-tag@^2.10.1, graphql-tag@^2.4.2:
version "2.10.1"
resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.10.1.tgz#10aa41f1cd8fae5373eaf11f1f67260a3cad5e02"
integrity sha512-jApXqWBzNXQ8jYa/HLkZJaVw9jgwNqZkywa2zfFn16Iv1Zb7ELNHkJaXHR7Quvd5SIGsy6Ny7SUKATgnu05uEg==
graphql@^14.5.7:
version "14.5.7"
resolved "https://registry.yarnpkg.com/graphql/-/graphql-14.5.7.tgz#8646a3fcc07922319cc3967eba4a64b32929f77f"
integrity sha512-as410RMJSUFqF8RcH2QWxZ5ioqHzsH9VWnWbaU+UnDXJ/6azMDIYPrtXCBPXd8rlunEVb7W8z6fuUnNHMbFu9A==
dependencies:
iterall "^1.2.2"
growly@^1.3.0: growly@^1.3.0:
version "1.3.0" version "1.3.0"
resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081"
...@@ -4077,6 +4222,11 @@ istanbul-reports@^2.2.6: ...@@ -4077,6 +4222,11 @@ istanbul-reports@^2.2.6:
dependencies: dependencies:
handlebars "^4.1.2" handlebars "^4.1.2"
iterall@^1.2.2:
version "1.2.2"
resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.2.2.tgz#92d70deb8028e0c39ff3164fdbf4d8b088130cd7"
integrity sha512-yynBb1g+RFUPY64fTrFv7nsjRrENBQJaX2UL+2Szc9REFrSNm1rpSXHGzhmAy7a9uv3vlvgBlXnf9RqmPH1/DA==
jest-changed-files@^24.9.0: jest-changed-files@^24.9.0:
version "24.9.0" version "24.9.0"
resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-24.9.0.tgz#08d8c15eb79a7fa3fc98269bc14b451ee82f8039" resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-24.9.0.tgz#08d8c15eb79a7fa3fc98269bc14b451ee82f8039"
...@@ -5656,6 +5806,13 @@ opn@4.0.2: ...@@ -5656,6 +5806,13 @@ opn@4.0.2:
object-assign "^4.0.1" object-assign "^4.0.1"
pinkie-promise "^2.0.0" pinkie-promise "^2.0.0"
optimism@^0.10.0:
version "0.10.3"
resolved "https://registry.yarnpkg.com/optimism/-/optimism-0.10.3.tgz#163268fdc741dea2fb50f300bedda80356445fd7"
integrity sha512-9A5pqGoQk49H6Vhjb9kPgAeeECfUDF6aIICbMDL23kDLStBn1MWk3YvcZ4xWF9CsSf6XEgvRLkXy4xof/56vVw==
dependencies:
"@wry/context" "^0.4.0"
optimist@^0.6.1: optimist@^0.6.1:
version "0.6.1" version "0.6.1"
resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686"
...@@ -7414,7 +7571,7 @@ symbol-observable@1.0.1: ...@@ -7414,7 +7571,7 @@ symbol-observable@1.0.1:
resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.1.tgz#8340fc4702c3122df5d22288f88283f513d3fdd4" resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.1.tgz#8340fc4702c3122df5d22288f88283f513d3fdd4"
integrity sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ= integrity sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=
symbol-observable@^1.2.0: symbol-observable@^1.0.2, symbol-observable@^1.2.0:
version "1.2.0" version "1.2.0"
resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804"
integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==
...@@ -7575,7 +7732,14 @@ trim-right@^1.0.1: ...@@ -7575,7 +7732,14 @@ trim-right@^1.0.1:
resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003"
integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=
tslib@1.10.0, tslib@^1.8.1, tslib@^1.9.0: ts-invariant@^0.4.0, ts-invariant@^0.4.4:
version "0.4.4"
resolved "https://registry.yarnpkg.com/ts-invariant/-/ts-invariant-0.4.4.tgz#97a523518688f93aafad01b0e80eb803eb2abd86"
integrity sha512-uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA==
dependencies:
tslib "^1.9.3"
tslib@1.10.0, tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3:
version "1.10.0" version "1.10.0"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a"
integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==
...@@ -8118,3 +8282,16 @@ yargs@^9.0.0: ...@@ -8118,3 +8282,16 @@ yargs@^9.0.0:
which-module "^2.0.0" which-module "^2.0.0"
y18n "^3.2.1" y18n "^3.2.1"
yargs-parser "^7.0.0" yargs-parser "^7.0.0"
zen-observable-ts@^0.8.20:
version "0.8.20"
resolved "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-0.8.20.tgz#44091e335d3fcbc97f6497e63e7f57d5b516b163"
integrity sha512-2rkjiPALhOtRaDX6pWyNqK1fnP5KkJJybYebopNSn6wDG1lxBoFs2+nwwXKoA6glHIrtwrfBBy6da0stkKtTAA==
dependencies:
tslib "^1.9.3"
zen-observable "^0.8.0"
zen-observable@^0.8.0:
version "0.8.14"
resolved "https://registry.yarnpkg.com/zen-observable/-/zen-observable-0.8.14.tgz#d33058359d335bc0db1f0af66158b32872af3bf7"
integrity sha512-kQz39uonEjEESwh+qCi83kcC3rZJGh4mrZW7xjkSQYXkq//JZHTtKo+6yuVloTgMtzsIWOJrjIrKvk/dqm0L5g==
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment