Replace Table with responsive Card. Add refresh of token and retry on 401 errors
This commit is contained in:
@@ -0,0 +1,35 @@
|
|||||||
|
<template>
|
||||||
|
<Card dis-hover>
|
||||||
|
<p slot="title">{{event.band.name}}</p>
|
||||||
|
<a href="#" slot="extra" v-if="hasUser" @click.prevent="ignore('band', event.band.name)"><Icon type="ios-eye-off" title="Dölj"></Icon></a>
|
||||||
|
<Row>
|
||||||
|
<Col :xs="24" :sm="12"><strong>Datum:</strong> {{event.date}}</Col>
|
||||||
|
<Col :xs="24" :sm="12" v-if="event.time"><strong>Tid:</strong> {{event.time}}</Col>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Col :xs="24" :sm="12" :md="6"><strong>Var:</strong> {{event.danceHall.name}} <a href="#" v-if="hasUser" @click.prevent="ignore('danceHall', event.danceHall.name)"><Icon type="ios-eye-off" title="Dölj"></Icon></a></Col>
|
||||||
|
<Col :xs="24" :sm="12" :md="6"><strong>Ort:</strong> {{event.danceHall.city}} <a href="#" v-if="hasUser" @click.prevent="ignore('city', event.danceHall.city)"><Icon type="ios-eye-off" title="Dölj"></Icon></a></Col>
|
||||||
|
<Col :xs="24" :sm="12" :md="6"><strong>Kommun:</strong> {{event.danceHall.municipality}} <a href="#" v-if="hasUser" @click.prevent="ignore('municipality', event.danceHall.municipality)"><Icon type="ios-eye-off" title="Dölj"></Icon></a></Col>
|
||||||
|
<Col :xs="24" :sm="12" :md="6"><strong>Län:</strong> {{event.danceHall.state}} <a href="#" v-if="hasUser" @click.prevent="ignore('state', event.danceHall.state)"><Icon type="ios-eye-off" title="Dölj"></Icon></a></Col>
|
||||||
|
</Row>
|
||||||
|
</Card>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
props: {
|
||||||
|
event: {
|
||||||
|
type: Object,
|
||||||
|
required: true
|
||||||
|
},
|
||||||
|
hasUser: {
|
||||||
|
type: Boolean,
|
||||||
|
required: true
|
||||||
|
},
|
||||||
|
ignore: {
|
||||||
|
type: Function,
|
||||||
|
required: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
@@ -2,7 +2,14 @@
|
|||||||
<div>
|
<div>
|
||||||
<app-loader :show="isLoading" />
|
<app-loader :show="isLoading" />
|
||||||
<div v-if="isReady || isSubmitting || isSubmitted" class="container app-fade-in">
|
<div v-if="isReady || isSubmitting || isSubmitted" class="container app-fade-in">
|
||||||
<Table stripe border :columns="columns" :data="events"></Table>
|
<Content>
|
||||||
|
<Row :gutter="16" type="flex" justify="space-around" v-for="event in events" :key="event.id" class-name="eventRow">
|
||||||
|
<Col span="22">
|
||||||
|
<Event :event="event" :has-user="hasUser" :ignore="ignore"></Event>
|
||||||
|
</Col>
|
||||||
|
</Row>
|
||||||
|
<br>
|
||||||
|
</Content>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@@ -19,29 +26,11 @@
|
|||||||
|
|
||||||
import auth from "~/utils/auth";
|
import auth from "~/utils/auth";
|
||||||
|
|
||||||
// import LoadFailed from "./Messages/LoadFailed";
|
import Event from "./Event";
|
||||||
// import NotViewable from "./Messages/NotViewable";
|
|
||||||
// import SubmitFailed from "./Messages/SubmitFailed";
|
|
||||||
// import SubmitSuccessful from "./Messages/SubmitSuccessful";
|
|
||||||
// import Alerts from "./Alerts";
|
|
||||||
// import TopBar from "./TopBar";
|
|
||||||
// import PackageSelector from "./PackageSelector";
|
|
||||||
// import ProductsForm from "./ProductsForm";
|
|
||||||
// import PropertyInfo from "./Info";
|
|
||||||
// import RealtorFrame from "./RealtorFrame";
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
// Alerts,
|
Event
|
||||||
// LoadFailed,
|
|
||||||
// NotViewable,
|
|
||||||
// TopBar,
|
|
||||||
// PackageSelector,
|
|
||||||
// ProductsForm,
|
|
||||||
// PropertyInfo,
|
|
||||||
// RealtorFrame,
|
|
||||||
// SubmitFailed,
|
|
||||||
// SubmitSuccessful
|
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
@@ -54,136 +43,7 @@
|
|||||||
selectedPackage: undefined,
|
selectedPackage: undefined,
|
||||||
selectedImages: [],
|
selectedImages: [],
|
||||||
submitError: "",
|
submitError: "",
|
||||||
user: undefined,
|
user: undefined
|
||||||
columns: [
|
|
||||||
{
|
|
||||||
title: 'Datum',
|
|
||||||
key: 'date'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Tid',
|
|
||||||
key: 'time'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Band',
|
|
||||||
render: (h, params) => {
|
|
||||||
const inner = Array(h('span', ' ' + params.row.band.name + ' '));
|
|
||||||
if (this.hasUser) {
|
|
||||||
inner.push(h('Icon', {
|
|
||||||
props: {
|
|
||||||
type: 'ios-eye-off'
|
|
||||||
},
|
|
||||||
attrs: {
|
|
||||||
title: 'Dölj'
|
|
||||||
},
|
|
||||||
on: {
|
|
||||||
click: () => {
|
|
||||||
this.ignoreBand({name: params.row.band.name})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}, 'Dölj'));
|
|
||||||
}
|
|
||||||
|
|
||||||
return h('div', inner);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Dansställe',
|
|
||||||
render: (h, params) => {
|
|
||||||
const inner = Array(h('span', ' ' + params.row.danceHall.name + ' '));
|
|
||||||
if (this.hasUser) {
|
|
||||||
inner.push(h('Icon', {
|
|
||||||
props: {
|
|
||||||
type: 'ios-eye-off'
|
|
||||||
},
|
|
||||||
attrs: {
|
|
||||||
title: 'Dölj'
|
|
||||||
},
|
|
||||||
on: {
|
|
||||||
click: () => {
|
|
||||||
this.ignoreDanceHall({name: params.row.danceHall.name})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}, 'Dölj'));
|
|
||||||
}
|
|
||||||
|
|
||||||
return h('div', inner);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Stad',
|
|
||||||
render: (h, params) => {
|
|
||||||
const inner = Array(h('span', ' ' + params.row.danceHall.city + ' '));
|
|
||||||
if (this.hasUser) {
|
|
||||||
inner.push(h('Icon', {
|
|
||||||
props: {
|
|
||||||
type: 'ios-eye-off'
|
|
||||||
},
|
|
||||||
attrs: {
|
|
||||||
title: 'Dölj'
|
|
||||||
},
|
|
||||||
on: {
|
|
||||||
click: () => {
|
|
||||||
this.ignoreCity({name: params.row.danceHall.city})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}, 'Dölj'));
|
|
||||||
}
|
|
||||||
|
|
||||||
return h('div', inner);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Kommun',
|
|
||||||
render: (h, params) => {
|
|
||||||
const inner = Array(h('span', ' ' + params.row.danceHall.municipality + ' '));
|
|
||||||
if (this.hasUser) {
|
|
||||||
inner.push(h('Icon', {
|
|
||||||
props: {
|
|
||||||
type: 'ios-eye-off'
|
|
||||||
},
|
|
||||||
attrs: {
|
|
||||||
title: 'Dölj'
|
|
||||||
},
|
|
||||||
on: {
|
|
||||||
click: () => {
|
|
||||||
this.ignoreMunicipality({name: params.row.danceHall.municipality})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}, 'Dölj'));
|
|
||||||
}
|
|
||||||
|
|
||||||
return h('div', inner);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Län',
|
|
||||||
render: (h, params) => {
|
|
||||||
const inner = Array(h('span', ' ' + params.row.danceHall.state + ' '));
|
|
||||||
if (this.hasUser) {
|
|
||||||
inner.push(h('Icon', {
|
|
||||||
props: {
|
|
||||||
type: 'ios-eye-off'
|
|
||||||
},
|
|
||||||
attrs: {
|
|
||||||
title: 'Dölj'
|
|
||||||
},
|
|
||||||
on: {
|
|
||||||
click: () => {
|
|
||||||
this.ignoreState({name: params.row.danceHall.state})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}, 'Dölj'));
|
|
||||||
}
|
|
||||||
|
|
||||||
return h('div', inner);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Övrigt',
|
|
||||||
key: 'extraInfo'
|
|
||||||
}
|
|
||||||
]
|
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
@@ -209,7 +69,7 @@
|
|||||||
return this.status === "no-packages";
|
return this.status === "no-packages";
|
||||||
},
|
},
|
||||||
hasUser() {
|
hasUser() {
|
||||||
return this.user;
|
return this.user !== undefined && this.user !== null;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
@@ -237,36 +97,45 @@
|
|||||||
fetchUser() {
|
fetchUser() {
|
||||||
this.user = auth.getUserInfo();
|
this.user = auth.getUserInfo();
|
||||||
},
|
},
|
||||||
ignoreBand(name) {
|
ignore(type, name) {
|
||||||
ignoreBand(name)
|
switch (type) {
|
||||||
.then(this.ignoreSuccess)
|
case 'band':
|
||||||
.catch(this.ignoreFailed)
|
ignoreBand({name: name})
|
||||||
|
.then(this.ignoreSuccess(name))
|
||||||
|
.catch(this.ignoreFailed);
|
||||||
|
break;
|
||||||
|
case 'danceHall':
|
||||||
|
ignoreDanceHall({name: name})
|
||||||
|
.then(this.ignoreSuccess(name))
|
||||||
|
.catch(this.ignoreFailed);
|
||||||
|
break;
|
||||||
|
case 'city':
|
||||||
|
ignoreCity({name: name})
|
||||||
|
.then(this.ignoreSuccess(name))
|
||||||
|
.catch(this.ignoreFailed);
|
||||||
|
break;
|
||||||
|
case 'municipality':
|
||||||
|
ignoreMunicipality({name: name}
|
||||||
|
.then(this.ignoreSuccess(name))
|
||||||
|
.catch(this.ignoreFailed));
|
||||||
|
break;
|
||||||
|
case 'state':
|
||||||
|
ignoreState({name: name})
|
||||||
|
.then(this.ignoreSuccess(name))
|
||||||
|
.catch(this.ignoreFailed);
|
||||||
|
break;
|
||||||
|
}
|
||||||
},
|
},
|
||||||
ignoreDanceHall(name) {
|
ignoreSuccess(name) {
|
||||||
ignoreDanceHall(name)
|
return () => {
|
||||||
.then(this.ignoreSuccess)
|
this.$Message.success(`${name} har dolts`);
|
||||||
.catch(this.ignoreFailed)
|
this.fetchEvents();
|
||||||
|
}
|
||||||
},
|
},
|
||||||
ignoreCity(name) {
|
ignoreFailed(name) {
|
||||||
ignoreCity(name)
|
return () => {
|
||||||
.then(this.ignoreSuccess)
|
this.$Message.error(`${name} kunde inte döljas`);
|
||||||
.catch(this.ignoreFailed)
|
}
|
||||||
},
|
|
||||||
ignoreMunicipality(name) {
|
|
||||||
ignoreMunicipality(name)
|
|
||||||
.then(this.ignoreSuccess)
|
|
||||||
.catch(this.ignoreFailed)
|
|
||||||
},
|
|
||||||
ignoreState(name) {
|
|
||||||
ignoreState(name)
|
|
||||||
.then(this.ignoreSuccess)
|
|
||||||
.catch(this.ignoreFailed)
|
|
||||||
},
|
|
||||||
ignoreSuccess(response) {
|
|
||||||
this.fetchEvents()
|
|
||||||
},
|
|
||||||
ignoreFailed() {
|
|
||||||
|
|
||||||
}
|
}
|
||||||
// switchPackage(pack) {
|
// switchPackage(pack) {
|
||||||
// this.selectedPackage = pack;
|
// this.selectedPackage = pack;
|
||||||
@@ -334,6 +203,10 @@
|
|||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.eventRow {
|
||||||
|
margin-bottom: 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
@media screen and(max-width: 1200px) {
|
@media screen and(max-width: 1200px) {
|
||||||
.left {
|
.left {
|
||||||
width: 40vw;
|
width: 40vw;
|
||||||
|
|||||||
+5
-1
@@ -7,10 +7,14 @@
|
|||||||
"author": "Joakim Olsson <joakim@unbound.se>",
|
"author": "Joakim Olsson <joakim@unbound.se>",
|
||||||
"private": true,
|
"private": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"apollo-fetch": "^0.7.0",
|
"apollo-link": "^1.2.6",
|
||||||
|
"apollo-link-error": "^1.1.5",
|
||||||
|
"apollo-link-http": "^1.5.9",
|
||||||
"auth0-js": "^9.9.0",
|
"auth0-js": "^9.9.0",
|
||||||
"eslint": "^5.1.0",
|
"eslint": "^5.1.0",
|
||||||
"eslint-plugin-vue": "^4.5.0",
|
"eslint-plugin-vue": "^4.5.0",
|
||||||
|
"graphql": "^14.1.1",
|
||||||
|
"graphql-tag": "^2.10.1",
|
||||||
"iview": "^3.0.0",
|
"iview": "^3.0.0",
|
||||||
"lodash": "^4.17.10",
|
"lodash": "^4.17.10",
|
||||||
"node-sass": "^4.9.0",
|
"node-sass": "^4.9.0",
|
||||||
|
|||||||
+2
-2
@@ -23,9 +23,9 @@ if (config.dev) {
|
|||||||
// Add graphql mocking middleware
|
// Add graphql mocking middleware
|
||||||
//addGraphMiddleware(app);
|
//addGraphMiddleware(app);
|
||||||
|
|
||||||
app.use('/graph', proxy('localhost:8081', {
|
app.use('/graph/', proxy('localhost:8081', {
|
||||||
proxyReqPathResolver: function (req) {
|
proxyReqPathResolver: function (req) {
|
||||||
return '/graph';
|
return '/graph/';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -64,6 +64,16 @@ export default class AuthenticationClient {
|
|||||||
window.location.href = url;
|
window.location.href = url;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
checkSession(resolve, reject) {
|
||||||
|
this.webAuth.checkSession({state: {}}, (err, result) => {
|
||||||
|
if (err) {
|
||||||
|
return reject(err || 'Re-authentication failed');
|
||||||
|
} else {
|
||||||
|
return this.storeSession(result, resolve, reject);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
storeSession(authResult, resolve, reject) {
|
storeSession(authResult, resolve, reject) {
|
||||||
this.webAuth.client.userInfo(authResult.accessToken, (err, user) => {
|
this.webAuth.client.userInfo(authResult.accessToken, (err, user) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
|
|||||||
+1
-1
@@ -8,7 +8,7 @@ const auth0Config = {
|
|||||||
domain: "unbound.eu.auth0.com",
|
domain: "unbound.eu.auth0.com",
|
||||||
clientID: "orQfnvCPUR5C3mJkKoiWLQHOVQsBn60e",
|
clientID: "orQfnvCPUR5C3mJkKoiWLQHOVQsBn60e",
|
||||||
redirectUri: getRedirectUri(),
|
redirectUri: getRedirectUri(),
|
||||||
audience: "https://unbound.eu.auth0.com/userinfo",
|
audience: "http://dancefinder.unbound.se",
|
||||||
responseType: "token id_token",
|
responseType: "token id_token",
|
||||||
scope: "openid profile"
|
scope: "openid profile"
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,15 +1,11 @@
|
|||||||
|
const webAuth = require("../auth").default;
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
includeCredentials: (tokenFn) => {
|
includeCredentials: (uri, options) => {
|
||||||
return ({options}, next) => {
|
const token = webAuth.idToken();
|
||||||
if (!options.headers) {
|
if (token) {
|
||||||
options.headers = {}; // Create the headers object if needed.
|
options.headers['Authorization'] = 'Bearer ' + token;
|
||||||
}
|
|
||||||
const token = tokenFn();
|
|
||||||
if (token) {
|
|
||||||
options.headers['Authorization'] = 'Bearer ' + tokenFn();
|
|
||||||
}
|
|
||||||
options.credentials = 'same-origin'; // eslint-disable-line
|
|
||||||
next();
|
|
||||||
}
|
}
|
||||||
},
|
return fetch(uri, options);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -6,22 +6,21 @@ import {
|
|||||||
ignoreMunicipalityMutation,
|
ignoreMunicipalityMutation,
|
||||||
ignoreStateMutation,
|
ignoreStateMutation,
|
||||||
} from './mutationStrings';
|
} from './mutationStrings';
|
||||||
import webAuth from '../auth';
|
|
||||||
|
|
||||||
/* eslint-disable max-len */
|
/* eslint-disable max-len */
|
||||||
export const ignoreBand = variables => {
|
export const ignoreBand = variables => {
|
||||||
return createQuery(webAuth.idToken, ignoreBandMutation, variables)
|
return createQuery(ignoreBandMutation, variables)
|
||||||
};
|
};
|
||||||
export const ignoreDanceHall = variables => {
|
export const ignoreDanceHall = variables => {
|
||||||
return createQuery(webAuth.idToken, ignoreDanceHallMutation, variables)
|
return createQuery(ignoreDanceHallMutation, variables)
|
||||||
};
|
};
|
||||||
export const ignoreCity = variables => {
|
export const ignoreCity = variables => {
|
||||||
return createQuery(webAuth.idToken, ignoreCityMutation, variables)
|
return createQuery(ignoreCityMutation, variables)
|
||||||
};
|
};
|
||||||
export const ignoreMunicipality = variables => {
|
export const ignoreMunicipality = variables => {
|
||||||
return createQuery(webAuth.idToken, ignoreMunicipalityMutation, variables)
|
return createQuery(ignoreMunicipalityMutation, variables)
|
||||||
};
|
};
|
||||||
export const ignoreState = variables => {
|
export const ignoreState = variables => {
|
||||||
return createQuery(webAuth.idToken, ignoreStateMutation, variables)
|
return createQuery(ignoreStateMutation, variables)
|
||||||
};
|
};
|
||||||
/* eslint-enable max-len */
|
/* eslint-enable max-len */
|
||||||
|
|||||||
@@ -2,9 +2,7 @@ import { createQuery } from './utils';
|
|||||||
import {
|
import {
|
||||||
eventQuery,
|
eventQuery,
|
||||||
} from './queryStrings';
|
} from './queryStrings';
|
||||||
import webAuth from '../auth';
|
|
||||||
|
|
||||||
|
|
||||||
/* eslint-disable max-len */
|
/* eslint-disable max-len */
|
||||||
export const findEvents = () => createQuery(webAuth.idToken, eventQuery);
|
export const findEvents = () => createQuery(eventQuery);
|
||||||
/* eslint-enable max-len */
|
/* eslint-enable max-len */
|
||||||
|
|||||||
@@ -1,13 +1,48 @@
|
|||||||
const { createApolloFetch } = require('apollo-fetch');
|
import { execute, makePromise, ApolloLink } from 'apollo-link';
|
||||||
|
import { HttpLink } from 'apollo-link-http';
|
||||||
|
import gql from 'graphql-tag';
|
||||||
const { includeCredentials } = require('./middleware');
|
const { includeCredentials } = require('./middleware');
|
||||||
|
import { onError } from 'apollo-link-error';
|
||||||
|
import { default as webAuth} from '../auth';
|
||||||
|
|
||||||
const defaultGraphUri = '/graph/';
|
const defaultGraphUri = '/graph/';
|
||||||
|
const httpLink = new HttpLink({ uri: defaultGraphUri, fetch: includeCredentials, credentials: 'same-origin' });
|
||||||
|
const errorLink = onError(({ graphQLErrors, networkError, operation, forward }) => {
|
||||||
|
if (graphQLErrors) {
|
||||||
|
console.log('GraphQL errors:', graphQLErrors);
|
||||||
|
// for (let err of graphQLErrors) {
|
||||||
|
// switch (err.extensions.code) {
|
||||||
|
// case 'UNAUTHENTICATED':
|
||||||
|
// // error code is set to UNAUTHENTICATED
|
||||||
|
// // when AuthenticationError thrown in resolver
|
||||||
|
//
|
||||||
|
// // modify the operation context with a new token
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
if (networkError) {
|
||||||
|
if (networkError.statusCode === 401) {
|
||||||
|
webAuth.checkSession((response) => {
|
||||||
|
const oldHeaders = operation.getContext().headers;
|
||||||
|
operation.setContext({
|
||||||
|
headers: {
|
||||||
|
...oldHeaders,
|
||||||
|
authorization: webAuth.idToken(),
|
||||||
|
},
|
||||||
|
});
|
||||||
|
return forward(operation);
|
||||||
|
}, (err) => {
|
||||||
|
console.log(err);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
export const createQuery = (tokenFn, query, variables) => { // eslint-disable-line
|
export const createQuery = (query, variables) => { // eslint-disable-line
|
||||||
const apollo = createApolloFetch({ uri: defaultGraphUri });
|
const operation = {
|
||||||
|
query: gql(query),
|
||||||
apollo.use(includeCredentials(tokenFn));
|
variables: variables
|
||||||
// apollo.useAfter(trackErrors);
|
};
|
||||||
|
return makePromise(execute(ApolloLink.from([errorLink, httpLink]), operation));
|
||||||
return apollo({ query, variables });
|
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1300,12 +1300,43 @@ anymatch@^2.0.0:
|
|||||||
micromatch "^3.1.4"
|
micromatch "^3.1.4"
|
||||||
normalize-path "^2.1.1"
|
normalize-path "^2.1.1"
|
||||||
|
|
||||||
apollo-fetch@^0.7.0:
|
apollo-link-error@^1.1.5:
|
||||||
version "0.7.0"
|
version "1.1.5"
|
||||||
resolved "https://registry.yarnpkg.com/apollo-fetch/-/apollo-fetch-0.7.0.tgz#63c255a0ccb1b4c473524d8f9b536d72438bd3e7"
|
resolved "https://registry.yarnpkg.com/apollo-link-error/-/apollo-link-error-1.1.5.tgz#1d600dfa75c4e4bf017f50d60da7b375b53047ab"
|
||||||
integrity sha512-0oHsDW3Zxx+Of1wuqcOXruNj4Kv55WN69tkIjwkCQDEIrgCpgA2scjChFsgflSVMy/1mkTKCY1Mc0TYJhNRzmw==
|
integrity sha512-gE0P711K+rI3QcTzfYhzRI9axXaiuq/emu8x8Y5NHK9jl9wxh7qmEc3ZTyGpnGFDDTXfhalmX17X5lp3RCVHDQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
cross-fetch "^1.0.0"
|
apollo-link "^1.2.6"
|
||||||
|
apollo-link-http-common "^0.2.8"
|
||||||
|
|
||||||
|
apollo-link-http-common@^0.2.8:
|
||||||
|
version "0.2.8"
|
||||||
|
resolved "https://registry.yarnpkg.com/apollo-link-http-common/-/apollo-link-http-common-0.2.8.tgz#c6deedfc2739db8b11013c3c2d2ccd657152941f"
|
||||||
|
integrity sha512-gGmXZN8mr7e9zjopzKQfZ7IKnh8H12NxBDzvp9nXI3U82aCVb72p+plgoYLcpMY8w6krvoYjgicFmf8LO20TCQ==
|
||||||
|
dependencies:
|
||||||
|
apollo-link "^1.2.6"
|
||||||
|
|
||||||
|
apollo-link-http@^1.5.9:
|
||||||
|
version "1.5.9"
|
||||||
|
resolved "https://registry.yarnpkg.com/apollo-link-http/-/apollo-link-http-1.5.9.tgz#9046f5640a94c8a8b508a39e0f2c628b781baecc"
|
||||||
|
integrity sha512-9tJy2zGm4Cm/1ycScDNZJe51dgnTSfKx7pKIgPZmcxkdDpgUY2DZitDH6ZBv4yp9z8MC9Xr9wgwc29s6hcadUQ==
|
||||||
|
dependencies:
|
||||||
|
apollo-link "^1.2.6"
|
||||||
|
apollo-link-http-common "^0.2.8"
|
||||||
|
|
||||||
|
apollo-link@^1.2.6:
|
||||||
|
version "1.2.6"
|
||||||
|
resolved "https://registry.yarnpkg.com/apollo-link/-/apollo-link-1.2.6.tgz#d9b5676d79c01eb4e424b95c7171697f6ad2b8da"
|
||||||
|
integrity sha512-sUNlA20nqIF3gG3F8eyMD+mO80fmf3dPZX+GUOs3MI9oZR8ug09H3F0UsWJMcpEg6h55Yy5wZ+BMmAjrbenF/Q==
|
||||||
|
dependencies:
|
||||||
|
apollo-utilities "^1.0.0"
|
||||||
|
zen-observable-ts "^0.8.13"
|
||||||
|
|
||||||
|
apollo-utilities@^1.0.0:
|
||||||
|
version "1.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/apollo-utilities/-/apollo-utilities-1.1.0.tgz#e7603f834b57e4e109be6b450dc1cc1037aac94c"
|
||||||
|
integrity sha512-D3scmF6vJkCBECMasMEc0J9dNNHVULl6h2d7/oGJxWid1fgcAPHZJN5XLCZisuOfn0Dvvu3Unf/zK00Z3e49Qg==
|
||||||
|
dependencies:
|
||||||
|
fast-json-stable-stringify "^2.0.0"
|
||||||
|
|
||||||
aproba@^1.0.3, aproba@^1.1.1:
|
aproba@^1.0.3, aproba@^1.1.1:
|
||||||
version "1.2.0"
|
version "1.2.0"
|
||||||
@@ -2388,14 +2419,6 @@ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4:
|
|||||||
safe-buffer "^5.0.1"
|
safe-buffer "^5.0.1"
|
||||||
sha.js "^2.4.8"
|
sha.js "^2.4.8"
|
||||||
|
|
||||||
cross-fetch@^1.0.0:
|
|
||||||
version "1.1.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-1.1.1.tgz#dede6865ae30f37eae62ac90ebb7bdac002b05a0"
|
|
||||||
integrity sha512-+VJE04+UfxxmBfcnmAu/lKor53RUCx/1ilOti4p+JgrnLQ4AZZIRoe2OEd76VaHyWQmQxqKnV+TaqjHC4r0HWw==
|
|
||||||
dependencies:
|
|
||||||
node-fetch "1.7.3"
|
|
||||||
whatwg-fetch "2.0.3"
|
|
||||||
|
|
||||||
cross-spawn@^3.0.0:
|
cross-spawn@^3.0.0:
|
||||||
version "3.0.1"
|
version "3.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-3.0.1.tgz#1256037ecb9f0c5f79e3d6ef135e30770184b982"
|
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-3.0.1.tgz#1256037ecb9f0c5f79e3d6ef135e30770184b982"
|
||||||
@@ -3034,13 +3057,6 @@ encodeurl@~1.0.1, encodeurl@~1.0.2:
|
|||||||
resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
|
resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
|
||||||
integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=
|
integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=
|
||||||
|
|
||||||
encoding@^0.1.11:
|
|
||||||
version "0.1.12"
|
|
||||||
resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb"
|
|
||||||
integrity sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=
|
|
||||||
dependencies:
|
|
||||||
iconv-lite "~0.4.13"
|
|
||||||
|
|
||||||
end-of-stream@^1.0.0, end-of-stream@^1.1.0:
|
end-of-stream@^1.0.0, end-of-stream@^1.1.0:
|
||||||
version "1.4.1"
|
version "1.4.1"
|
||||||
resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43"
|
resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43"
|
||||||
@@ -3838,6 +3854,18 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6
|
|||||||
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00"
|
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00"
|
||||||
integrity sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==
|
integrity sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==
|
||||||
|
|
||||||
|
graphql-tag@^2.10.1:
|
||||||
|
version "2.10.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.10.1.tgz#10aa41f1cd8fae5373eaf11f1f67260a3cad5e02"
|
||||||
|
integrity sha512-jApXqWBzNXQ8jYa/HLkZJaVw9jgwNqZkywa2zfFn16Iv1Zb7ELNHkJaXHR7Quvd5SIGsy6Ny7SUKATgnu05uEg==
|
||||||
|
|
||||||
|
graphql@^14.1.1:
|
||||||
|
version "14.1.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/graphql/-/graphql-14.1.1.tgz#d5d77df4b19ef41538d7215d1e7a28834619fac0"
|
||||||
|
integrity sha512-C5zDzLqvfPAgTtP8AUPIt9keDabrdRAqSWjj2OPRKrKxI9Fb65I36s1uCs1UUBFnSWTdO7hyHi7z1ZbwKMKF6Q==
|
||||||
|
dependencies:
|
||||||
|
iterall "^1.2.2"
|
||||||
|
|
||||||
gzip-size@^5.0.0:
|
gzip-size@^5.0.0:
|
||||||
version "5.0.0"
|
version "5.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-5.0.0.tgz#a55ecd99222f4c48fd8c01c625ce3b349d0a0e80"
|
resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-5.0.0.tgz#a55ecd99222f4c48fd8c01c625ce3b349d0a0e80"
|
||||||
@@ -4079,7 +4107,7 @@ iconv-lite@0.4.23:
|
|||||||
dependencies:
|
dependencies:
|
||||||
safer-buffer ">= 2.1.2 < 3"
|
safer-buffer ">= 2.1.2 < 3"
|
||||||
|
|
||||||
iconv-lite@^0.4.24, iconv-lite@^0.4.4, iconv-lite@~0.4.13:
|
iconv-lite@^0.4.24, iconv-lite@^0.4.4:
|
||||||
version "0.4.24"
|
version "0.4.24"
|
||||||
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
|
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
|
||||||
integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
|
integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
|
||||||
@@ -4472,7 +4500,7 @@ is-resolvable@^1.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88"
|
resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88"
|
||||||
integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==
|
integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==
|
||||||
|
|
||||||
is-stream@^1.0.1, is-stream@^1.1.0:
|
is-stream@^1.1.0:
|
||||||
version "1.1.0"
|
version "1.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
|
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
|
||||||
integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ=
|
integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ=
|
||||||
@@ -4545,6 +4573,11 @@ isstream@~0.1.2:
|
|||||||
resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
|
resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
|
||||||
integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=
|
integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=
|
||||||
|
|
||||||
|
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==
|
||||||
|
|
||||||
iview@^3.0.0:
|
iview@^3.0.0:
|
||||||
version "3.2.1"
|
version "3.2.1"
|
||||||
resolved "https://registry.yarnpkg.com/iview/-/iview-3.2.1.tgz#ea578948408a21f4c74c168dba19ee8fa04bd5e0"
|
resolved "https://registry.yarnpkg.com/iview/-/iview-3.2.1.tgz#ea578948408a21f4c74c168dba19ee8fa04bd5e0"
|
||||||
@@ -5337,14 +5370,6 @@ no-case@^2.2.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
lower-case "^1.1.1"
|
lower-case "^1.1.1"
|
||||||
|
|
||||||
node-fetch@1.7.3:
|
|
||||||
version "1.7.3"
|
|
||||||
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef"
|
|
||||||
integrity sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==
|
|
||||||
dependencies:
|
|
||||||
encoding "^0.1.11"
|
|
||||||
is-stream "^1.0.1"
|
|
||||||
|
|
||||||
node-fetch@^2.3.0:
|
node-fetch@^2.3.0:
|
||||||
version "2.3.0"
|
version "2.3.0"
|
||||||
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.3.0.tgz#1a1d940bbfb916a1d3e0219f037e89e71f8c5fa5"
|
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.3.0.tgz#1a1d940bbfb916a1d3e0219f037e89e71f8c5fa5"
|
||||||
@@ -8487,11 +8512,6 @@ webpackbar@^3.1.3:
|
|||||||
text-table "^0.2.0"
|
text-table "^0.2.0"
|
||||||
wrap-ansi "^4.0.0"
|
wrap-ansi "^4.0.0"
|
||||||
|
|
||||||
whatwg-fetch@2.0.3:
|
|
||||||
version "2.0.3"
|
|
||||||
resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84"
|
|
||||||
integrity sha1-nITsLc9oGH/wC8ZOEnS0QhduHIQ=
|
|
||||||
|
|
||||||
which-module@^1.0.0:
|
which-module@^1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f"
|
resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f"
|
||||||
@@ -8643,3 +8663,15 @@ yauzl@2.8.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
buffer-crc32 "~0.2.3"
|
buffer-crc32 "~0.2.3"
|
||||||
fd-slicer "~1.0.1"
|
fd-slicer "~1.0.1"
|
||||||
|
|
||||||
|
zen-observable-ts@^0.8.13:
|
||||||
|
version "0.8.13"
|
||||||
|
resolved "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-0.8.13.tgz#ae1fd77c84ef95510188b1f8bca579d7a5448fc2"
|
||||||
|
integrity sha512-WDb8SM0tHCb6c0l1k60qXWlm1ok3zN9U4VkLdnBKQwIYwUoB9psH7LIFgR+JVCCMmBxUgOjskIid8/N02k/2Bg==
|
||||||
|
dependencies:
|
||||||
|
zen-observable "^0.8.0"
|
||||||
|
|
||||||
|
zen-observable@^0.8.0:
|
||||||
|
version "0.8.11"
|
||||||
|
resolved "https://registry.yarnpkg.com/zen-observable/-/zen-observable-0.8.11.tgz#d3415885eeeb42ee5abb9821c95bb518fcd6d199"
|
||||||
|
integrity sha512-N3xXQVr4L61rZvGMpWe8XoCGX8vhU35dPyQ4fm5CY/KDlG0F75un14hjbckPXTDuKUY6V0dqR2giT6xN8Y4GEQ==
|
||||||
|
|||||||
Reference in New Issue
Block a user