Merge branch 'dependabot-npm_and_yarn-eslint-plugin-vue-8.1.1' into 'master'
Build(deps-dev): bump eslint-plugin-vue from 6.2.2 to 8.1.1 See merge request unboundsoftware/dancefinder/dancefinder-app!78
This commit was merged in pull request #127.
This commit is contained in:
@@ -1,38 +0,0 @@
|
|||||||
<template>
|
|
||||||
<div v-lazy:background-image="image" class="image" @click="onClick">
|
|
||||||
<slot />
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
export default {
|
|
||||||
props: {
|
|
||||||
image: {
|
|
||||||
type: String,
|
|
||||||
required: true
|
|
||||||
},
|
|
||||||
onClick: {
|
|
||||||
type: Function,
|
|
||||||
default: f => f
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
|
||||||
.image {
|
|
||||||
height: 100%;
|
|
||||||
width: 100%;
|
|
||||||
max-width: 100%;
|
|
||||||
background-size: cover;
|
|
||||||
background-position: 50% 50%;
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
opacity: 0;
|
|
||||||
transition: opacity 300ms ease;
|
|
||||||
will-change: opacity;
|
|
||||||
|
|
||||||
&[lazy='loaded'] {
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
@@ -1,96 +0,0 @@
|
|||||||
<template>
|
|
||||||
<div :class="{ 'is-shown': show, 'is-contained': contained }" class="cover">
|
|
||||||
<ul class="loader">
|
|
||||||
<li />
|
|
||||||
<li />
|
|
||||||
<li />
|
|
||||||
<li />
|
|
||||||
<li />
|
|
||||||
<li />
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
export default {
|
|
||||||
props: {
|
|
||||||
show: {
|
|
||||||
type: Boolean,
|
|
||||||
required: false,
|
|
||||||
default: false
|
|
||||||
},
|
|
||||||
contained: {
|
|
||||||
type: Boolean,
|
|
||||||
required: false,
|
|
||||||
default: false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
|
||||||
.cover {
|
|
||||||
position: fixed;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
bottom: 0;
|
|
||||||
right: 0;
|
|
||||||
z-index: 100000;
|
|
||||||
background-color: rgba(255, 255, 255, 0.5);
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
opacity: 0;
|
|
||||||
pointer-events: none;
|
|
||||||
transition: all 350ms ease;
|
|
||||||
|
|
||||||
&.is-contained {
|
|
||||||
position: absolute;
|
|
||||||
}
|
|
||||||
|
|
||||||
.loader li {
|
|
||||||
background: #535353;
|
|
||||||
margin-left: 1px;
|
|
||||||
width: 14px;
|
|
||||||
height: 22px;
|
|
||||||
display: inline-block;
|
|
||||||
opacity: 0;
|
|
||||||
border-radius: 2px;
|
|
||||||
box-shadow: 0px 0px 1px #b4b4b4;
|
|
||||||
transform: skew(-25deg, 0deg) scale(0.1);
|
|
||||||
animation: loader 0.5s ease-in-out infinite alternate;
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes loader {
|
|
||||||
to {
|
|
||||||
transform: skew(-25deg, 0deg) scale(1);
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.loader li:nth-child(2) {
|
|
||||||
animation-delay: 0.1s;
|
|
||||||
}
|
|
||||||
.loader li:nth-child(3) {
|
|
||||||
animation-delay: 0.2s;
|
|
||||||
}
|
|
||||||
.loader li:nth-child(4) {
|
|
||||||
animation-delay: 0.3s;
|
|
||||||
}
|
|
||||||
.loader li:nth-child(5) {
|
|
||||||
animation-delay: 0.4s;
|
|
||||||
}
|
|
||||||
.loader li:nth-child(6) {
|
|
||||||
animation-delay: 0.5s;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.is-shown {
|
|
||||||
pointer-events: all;
|
|
||||||
opacity: 1;
|
|
||||||
|
|
||||||
.spinner {
|
|
||||||
transform: scale(1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
@@ -1,53 +0,0 @@
|
|||||||
<template>
|
|
||||||
<div class="message-container">
|
|
||||||
<div class="message">
|
|
||||||
<div class="icon">
|
|
||||||
<slot name="icon" />
|
|
||||||
</div>
|
|
||||||
<h3>{{ message }}</h3>
|
|
||||||
<p>{{ description }}</p>
|
|
||||||
<slot name="extras" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
export default {
|
|
||||||
props: {
|
|
||||||
message: {
|
|
||||||
type: String,
|
|
||||||
required: true
|
|
||||||
},
|
|
||||||
description: {
|
|
||||||
type: String,
|
|
||||||
required: false,
|
|
||||||
default: ''
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
|
||||||
.message-container {
|
|
||||||
margin: 10vh auto;
|
|
||||||
max-width: 420px;
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.message {
|
|
||||||
padding: 2rem;
|
|
||||||
border-radius: 1rem;
|
|
||||||
text-align: center;
|
|
||||||
box-shadow: 0px 1px 2px #b4b4b494;
|
|
||||||
|
|
||||||
.icon > * {
|
|
||||||
font-size: 3rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
> * {
|
|
||||||
margin: 1rem 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
@@ -97,6 +97,7 @@
|
|||||||
import dayjs from 'dayjs'
|
import dayjs from 'dayjs'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
name: 'EventDetail',
|
||||||
props: {
|
props: {
|
||||||
event: {
|
event: {
|
||||||
type: Object,
|
type: Object,
|
||||||
|
|||||||
@@ -16,6 +16,7 @@
|
|||||||
import Event from '../Event'
|
import Event from '../Event'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
name: 'EventList',
|
||||||
components: {
|
components: {
|
||||||
Event
|
Event
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<div :key="isAuthenticated">
|
<div :key="isAuthenticated">
|
||||||
<span v-text="isAuthenticated" />
|
|
||||||
<v-container fluid grid-list-md class="app-fade-in" :key="range">
|
<v-container fluid grid-list-md class="app-fade-in" :key="range">
|
||||||
<v-layout row wrap v-if="!isAuthenticated">
|
<v-layout row wrap v-if="!isAuthenticated">
|
||||||
<v-flex xs12>
|
<v-flex xs12>
|
||||||
@@ -97,6 +96,7 @@ import {
|
|||||||
import { useTranslation } from '../../../plugins/i18n'
|
import { useTranslation } from '../../../plugins/i18n'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
name: 'EventsPage',
|
||||||
components: {
|
components: {
|
||||||
List
|
List
|
||||||
},
|
},
|
||||||
@@ -108,7 +108,7 @@ export default {
|
|||||||
const { route, router } = useRouter()
|
const { route, router } = useRouter()
|
||||||
const range = computed({
|
const range = computed({
|
||||||
get: () => route.value.query.range || 'ONE_WEEK',
|
get: () => route.value.query.range || 'ONE_WEEK',
|
||||||
set: value => router.push(`/?range=${value}`)
|
set: (value) => router.push(`/?range=${value}`)
|
||||||
})
|
})
|
||||||
const enabled = ref(false)
|
const enabled = ref(false)
|
||||||
const { result: data, refetch } = useQuery(
|
const { result: data, refetch } = useQuery(
|
||||||
@@ -116,11 +116,11 @@ export default {
|
|||||||
{ includeOrigins: false },
|
{ includeOrigins: false },
|
||||||
() => ({ enabled: enabled.value })
|
() => ({ enabled: enabled.value })
|
||||||
)
|
)
|
||||||
const events = useResult(data, [], result => result.events)
|
const events = useResult(data, [], (result) => result.events)
|
||||||
const origins = useResult(data, [], result => result.origins)
|
const origins = useResult(data, [], (result) => result.origins)
|
||||||
watch(
|
watch(
|
||||||
range,
|
range,
|
||||||
r => {
|
(r) => {
|
||||||
enabled.value = true
|
enabled.value = true
|
||||||
console.log('isAuthenticated', isAuthenticated.value)
|
console.log('isAuthenticated', isAuthenticated.value)
|
||||||
refetch({
|
refetch({
|
||||||
@@ -164,7 +164,7 @@ export default {
|
|||||||
)
|
)
|
||||||
const { mutate: doToggleIgnoreState } = useMutation(toggleIgnoreState)
|
const { mutate: doToggleIgnoreState } = useMutation(toggleIgnoreState)
|
||||||
|
|
||||||
const toggleIgnoreSuccess = name => {
|
const toggleIgnoreSuccess = (name) => {
|
||||||
return () => {
|
return () => {
|
||||||
fetchEvents()
|
fetchEvents()
|
||||||
snackbar.value.color = 'success'
|
snackbar.value.color = 'success'
|
||||||
@@ -173,7 +173,7 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const toggleIgnoreFailed = name => {
|
const toggleIgnoreFailed = (name) => {
|
||||||
return () => {
|
return () => {
|
||||||
snackbar.value.color = 'error'
|
snackbar.value.color = 'error'
|
||||||
snackbar.value.text = `${name} kunde inte döljas`
|
snackbar.value.text = `${name} kunde inte döljas`
|
||||||
@@ -221,7 +221,7 @@ export default {
|
|||||||
)
|
)
|
||||||
const fetchAddressFn = () => {
|
const fetchAddressFn = () => {
|
||||||
if (window.navigator) {
|
if (window.navigator) {
|
||||||
window.navigator.geolocation.getCurrentPosition(pos => {
|
window.navigator.geolocation.getCurrentPosition((pos) => {
|
||||||
addressEnabled.value = true
|
addressEnabled.value = true
|
||||||
doFetchAddress({
|
doFetchAddress({
|
||||||
latlng: `${pos.coords.latitude},${pos.coords.longitude}`
|
latlng: `${pos.coords.latitude},${pos.coords.longitude}`
|
||||||
@@ -231,7 +231,7 @@ export default {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const saveOriginFn = o =>
|
const saveOriginFn = (o) =>
|
||||||
doSaveOrigin({ origin: o }).then(() => {
|
doSaveOrigin({ origin: o }).then(() => {
|
||||||
origin.value = ''
|
origin.value = ''
|
||||||
fetchEvents()
|
fetchEvents()
|
||||||
|
|||||||
@@ -23,6 +23,7 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
export default {
|
export default {
|
||||||
|
name: 'FiltersList',
|
||||||
props: {
|
props: {
|
||||||
model: {
|
model: {
|
||||||
type: Array,
|
type: Array,
|
||||||
|
|||||||
@@ -74,6 +74,7 @@ import { useAuth } from '../../../plugins/auth'
|
|||||||
import { useTranslation } from '../../../plugins/i18n'
|
import { useTranslation } from '../../../plugins/i18n'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
name: 'FiltersPage',
|
||||||
components: {
|
components: {
|
||||||
List
|
List
|
||||||
},
|
},
|
||||||
@@ -83,11 +84,15 @@ export default {
|
|||||||
setTitle(t('app.links.filters'))
|
setTitle(t('app.links.filters'))
|
||||||
const { isAuthenticated } = useAuth()
|
const { isAuthenticated } = useAuth()
|
||||||
const { result: data, loading, refetch } = useQuery(fetchFilters)
|
const { result: data, loading, refetch } = useQuery(fetchFilters)
|
||||||
const bands = useResult(data, [], result => result.bands)
|
const bands = useResult(data, [], (result) => result.bands)
|
||||||
const cities = useResult(data, [], result => result.cities)
|
const cities = useResult(data, [], (result) => result.cities)
|
||||||
const danceHalls = useResult(data, [], result => result.danceHalls)
|
const danceHalls = useResult(data, [], (result) => result.danceHalls)
|
||||||
const municipalities = useResult(data, [], result => result.municipalities)
|
const municipalities = useResult(
|
||||||
const states = useResult(data, [], result => result.states)
|
data,
|
||||||
|
[],
|
||||||
|
(result) => result.municipalities
|
||||||
|
)
|
||||||
|
const states = useResult(data, [], (result) => result.states)
|
||||||
const snackbar = ref({ active: false, color: 'success', text: '' })
|
const snackbar = ref({ active: false, color: 'success', text: '' })
|
||||||
const { mutate: doToggleIgnoreBand } = useMutation(toggleIgnoreBand)
|
const { mutate: doToggleIgnoreBand } = useMutation(toggleIgnoreBand)
|
||||||
const { mutate: doToggleIgnoreDanceHall } = useMutation(
|
const { mutate: doToggleIgnoreDanceHall } = useMutation(
|
||||||
@@ -99,7 +104,7 @@ export default {
|
|||||||
)
|
)
|
||||||
const { mutate: doToggleIgnoreState } = useMutation(toggleIgnoreState)
|
const { mutate: doToggleIgnoreState } = useMutation(toggleIgnoreState)
|
||||||
|
|
||||||
const toggleIgnoreSuccess = name => {
|
const toggleIgnoreSuccess = (name) => {
|
||||||
return () => {
|
return () => {
|
||||||
refetch()
|
refetch()
|
||||||
snackbar.value.color = 'success'
|
snackbar.value.color = 'success'
|
||||||
@@ -108,7 +113,7 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const toggleIgnoreFailed = name => {
|
const toggleIgnoreFailed = (name) => {
|
||||||
return () => {
|
return () => {
|
||||||
snackbar.value.color = 'error'
|
snackbar.value.color = 'error'
|
||||||
snackbar.value.text = t('filters.failure', { name })
|
snackbar.value.text = t('filters.failure', { name })
|
||||||
|
|||||||
@@ -70,6 +70,7 @@ import { useAuth } from '../../../plugins/auth'
|
|||||||
import { useTranslation } from '../../../plugins/i18n'
|
import { useTranslation } from '../../../plugins/i18n'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
name: 'OriginsPage',
|
||||||
setup() {
|
setup() {
|
||||||
const { setTitle } = useMutations(['setTitle'])
|
const { setTitle } = useMutations(['setTitle'])
|
||||||
const { t } = useTranslation()
|
const { t } = useTranslation()
|
||||||
@@ -87,22 +88,22 @@ export default {
|
|||||||
const origin = ref('')
|
const origin = ref('')
|
||||||
const fetchAddressFn = () => {
|
const fetchAddressFn = () => {
|
||||||
if (window.navigator) {
|
if (window.navigator) {
|
||||||
window.navigator.geolocation.getCurrentPosition(pos => {
|
window.navigator.geolocation.getCurrentPosition((pos) => {
|
||||||
enabled.value = true
|
enabled.value = true
|
||||||
doFetchAddress({
|
doFetchAddress({
|
||||||
latlng: `${pos.coords.latitude},${pos.coords.longitude}`
|
latlng: `${pos.coords.latitude},${pos.coords.longitude}`
|
||||||
}).then(res => {
|
}).then((res) => {
|
||||||
origin.value = res.address
|
origin.value = res.address
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const saveOriginFn = o =>
|
const saveOriginFn = (o) =>
|
||||||
doSaveOrigin({ origin: o }).then(() => {
|
doSaveOrigin({ origin: o }).then(() => {
|
||||||
refetch()
|
refetch()
|
||||||
origin.value = ''
|
origin.value = ''
|
||||||
})
|
})
|
||||||
const removeOriginFn = o =>
|
const removeOriginFn = (o) =>
|
||||||
doRemoveOrigin({ origin: o }).then(() => refetch())
|
doRemoveOrigin({ origin: o }).then(() => refetch())
|
||||||
return {
|
return {
|
||||||
isAuthenticated,
|
isAuthenticated,
|
||||||
|
|||||||
@@ -8,6 +8,7 @@
|
|||||||
import { getDarkMode } from '../../utils/localStorage'
|
import { getDarkMode } from '../../utils/localStorage'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
name: 'ThemedLayout',
|
||||||
setup(props, context) {
|
setup(props, context) {
|
||||||
context.root.$vuetify.theme.dark = getDarkMode()
|
context.root.$vuetify.theme.dark = getDarkMode()
|
||||||
}
|
}
|
||||||
|
|||||||
+6
-10
@@ -103,26 +103,22 @@ import Themed from './components/themed'
|
|||||||
import { useAuth } from '../plugins/auth'
|
import { useAuth } from '../plugins/auth'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
name: 'DefaultLayout',
|
||||||
components: {
|
components: {
|
||||||
Themed
|
Themed
|
||||||
},
|
},
|
||||||
setup(props, context) {
|
setup(props, context) {
|
||||||
const { router } = useRouter()
|
const { router } = useRouter()
|
||||||
const { title } = useState(['title'])
|
const { title } = useState(['title'])
|
||||||
const onRedirectCallback = appState => {
|
const onRedirectCallback = (appState) => {
|
||||||
router.push(
|
router.push(
|
||||||
appState && appState.targetUrl
|
appState && appState.targetUrl
|
||||||
? appState.targetUrl
|
? appState.targetUrl
|
||||||
: window.location.pathname
|
: window.location.pathname
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
const {
|
const { loading, isAuthenticated, user, loginWithRedirect, logout } =
|
||||||
loading,
|
useAuth(onRedirectCallback)
|
||||||
isAuthenticated,
|
|
||||||
user,
|
|
||||||
loginWithRedirect,
|
|
||||||
logout
|
|
||||||
} = useAuth(onRedirectCallback)
|
|
||||||
const doLogin = () => {
|
const doLogin = () => {
|
||||||
loginWithRedirect.value()
|
loginWithRedirect.value()
|
||||||
}
|
}
|
||||||
@@ -133,14 +129,14 @@ export default {
|
|||||||
}
|
}
|
||||||
const darkMode = computed({
|
const darkMode = computed({
|
||||||
get: () => context.root.$vuetify.theme.dark,
|
get: () => context.root.$vuetify.theme.dark,
|
||||||
set: val => {
|
set: (val) => {
|
||||||
context.root.$vuetify.theme.dark = val
|
context.root.$vuetify.theme.dark = val
|
||||||
setDarkMode(context.root.$vuetify.theme.dark)
|
setDarkMode(context.root.$vuetify.theme.dark)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
const locale = computed({
|
const locale = computed({
|
||||||
get: () => context.root.$i18n.locale,
|
get: () => context.root.$i18n.locale,
|
||||||
set: newLocale => {
|
set: (newLocale) => {
|
||||||
if (newLocale === 'en') {
|
if (newLocale === 'en') {
|
||||||
dayjs.locale(newLocale)
|
dayjs.locale(newLocale)
|
||||||
} else if (newLocale === 'sv') {
|
} else if (newLocale === 'sv') {
|
||||||
|
|||||||
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
import { useAuth } from '../plugins/auth'
|
import { useAuth } from '../plugins/auth'
|
||||||
|
|
||||||
export default async ({ app: { router } }) => {
|
export default async ({ app: { router } }) => {
|
||||||
const onRedirectCallback = appState => {
|
const onRedirectCallback = (appState) => {
|
||||||
router.push(
|
router.push(
|
||||||
appState && appState.targetUrl
|
appState && appState.targetUrl
|
||||||
? appState.targetUrl
|
? appState.targetUrl
|
||||||
|
|||||||
+2
-4
@@ -47,8 +47,7 @@ export default {
|
|||||||
{ rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' },
|
{ rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' },
|
||||||
{
|
{
|
||||||
rel: 'stylesheet',
|
rel: 'stylesheet',
|
||||||
href:
|
href: 'https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900|Material+Icons'
|
||||||
'https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900|Material+Icons'
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
rel: 'stylesheet',
|
rel: 'stylesheet',
|
||||||
@@ -56,8 +55,7 @@ export default {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
rel: 'stylesheet',
|
rel: 'stylesheet',
|
||||||
href:
|
href: 'https://cdn.materialdesignicons.com/3.3.92/css/materialdesignicons.min.css'
|
||||||
'https://cdn.materialdesignicons.com/3.3.92/css/materialdesignicons.min.css'
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
meta: [
|
meta: [
|
||||||
|
|||||||
+1
-1
@@ -68,7 +68,7 @@
|
|||||||
"eslint-loader": "^4.0.2",
|
"eslint-loader": "^4.0.2",
|
||||||
"eslint-plugin-import": "^2.25.3",
|
"eslint-plugin-import": "^2.25.3",
|
||||||
"eslint-plugin-prettier": "^3.4.1",
|
"eslint-plugin-prettier": "^3.4.1",
|
||||||
"eslint-plugin-vue": "^6.1.2",
|
"eslint-plugin-vue": "^8.1.1",
|
||||||
"prettier": "^2.4.1",
|
"prettier": "^2.4.1",
|
||||||
"wait-on": "^6.0.0"
|
"wait-on": "^6.0.0"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import Filters from '../components/pages/filters'
|
|||||||
import { useTranslation } from '../plugins/i18n'
|
import { useTranslation } from '../plugins/i18n'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
name: 'FiltersPage',
|
||||||
components: {
|
components: {
|
||||||
Filters
|
Filters
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import Events from '../components/pages/events'
|
|||||||
import { useTranslation } from '../plugins/i18n'
|
import { useTranslation } from '../plugins/i18n'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
name: 'IndexPage',
|
||||||
components: {
|
components: {
|
||||||
Events
|
Events
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import Origins from '../components/pages/origins'
|
|||||||
import { useTranslation } from '../plugins/i18n'
|
import { useTranslation } from '../plugins/i18n'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
name: 'OriginsPage',
|
||||||
components: {
|
components: {
|
||||||
Origins
|
Origins
|
||||||
},
|
},
|
||||||
|
|||||||
+3
-3
@@ -22,13 +22,13 @@ const httpLink = createHttpLink({
|
|||||||
uri: apiUrl
|
uri: apiUrl
|
||||||
})
|
})
|
||||||
|
|
||||||
const getToken = async options => {
|
const getToken = async (options) => {
|
||||||
const { getTokenSilently } = useAuth()
|
const { getTokenSilently } = useAuth()
|
||||||
return getTokenSilently.value(options)
|
return getTokenSilently.value(options)
|
||||||
}
|
}
|
||||||
|
|
||||||
const authLink = setContext(async (_, { headers }) => {
|
const authLink = setContext(async (_, { headers }) => {
|
||||||
return getToken().then(token => ({
|
return getToken().then((token) => ({
|
||||||
headers: {
|
headers: {
|
||||||
...headers,
|
...headers,
|
||||||
authorization: token ? `Bearer ${token}` : ''
|
authorization: token ? `Bearer ${token}` : ''
|
||||||
@@ -52,7 +52,7 @@ const instance = new ApolloClient({
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
export default function ({app}) {
|
export default function ({ app }) {
|
||||||
app.setup = () => {
|
app.setup = () => {
|
||||||
provide(DefaultApolloClient, instance)
|
provide(DefaultApolloClient, instance)
|
||||||
}
|
}
|
||||||
|
|||||||
+22
-22
@@ -31,11 +31,11 @@ export const useAuth = (onRedirectCallback = DEFAULT_REDIRECT_CALLBACK) => {
|
|||||||
popupOpen: false,
|
popupOpen: false,
|
||||||
error: null,
|
error: null,
|
||||||
/** Authenticates the user using a popup window */
|
/** Authenticates the user using a popup window */
|
||||||
loginWithPopup: async o => {
|
loginWithPopup: async (o) => {
|
||||||
this.popupOpen = true
|
this.popupOpen = true
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await instance.auth0Client.then(client => client.loginWithPopup(o))
|
await instance.auth0Client.then((client) => client.loginWithPopup(o))
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
// eslint-disable-next-line
|
// eslint-disable-next-line
|
||||||
console.error(e)
|
console.error(e)
|
||||||
@@ -43,7 +43,7 @@ export const useAuth = (onRedirectCallback = DEFAULT_REDIRECT_CALLBACK) => {
|
|||||||
instance.popupOpen = false
|
instance.popupOpen = false
|
||||||
}
|
}
|
||||||
|
|
||||||
instance.user = await instance.auth0Client.then(client =>
|
instance.user = await instance.auth0Client.then((client) =>
|
||||||
client.getUser()
|
client.getUser()
|
||||||
)
|
)
|
||||||
instance.isAuthenticated = true
|
instance.isAuthenticated = true
|
||||||
@@ -52,10 +52,10 @@ export const useAuth = (onRedirectCallback = DEFAULT_REDIRECT_CALLBACK) => {
|
|||||||
handleRedirectCallback: async () => {
|
handleRedirectCallback: async () => {
|
||||||
instance.loading = true
|
instance.loading = true
|
||||||
try {
|
try {
|
||||||
await instance.auth0Client.then(client =>
|
await instance.auth0Client.then((client) =>
|
||||||
client.handleRedirectCallback()
|
client.handleRedirectCallback()
|
||||||
)
|
)
|
||||||
instance.user = await instance.auth0Client.then(client =>
|
instance.user = await instance.auth0Client.then((client) =>
|
||||||
client.getUser()
|
client.getUser()
|
||||||
)
|
)
|
||||||
instance.isAuthenticated = true
|
instance.isAuthenticated = true
|
||||||
@@ -66,36 +66,36 @@ export const useAuth = (onRedirectCallback = DEFAULT_REDIRECT_CALLBACK) => {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
/** Authenticates the user using the redirect method */
|
/** Authenticates the user using the redirect method */
|
||||||
loginWithRedirect: o => {
|
loginWithRedirect: (o) => {
|
||||||
return instance.auth0Client.then(client => client.loginWithRedirect(o))
|
return instance.auth0Client.then((client) => client.loginWithRedirect(o))
|
||||||
},
|
},
|
||||||
/** Returns all the claims present in the ID token */
|
/** Returns all the claims present in the ID token */
|
||||||
getIdTokenClaims: o => {
|
getIdTokenClaims: (o) => {
|
||||||
return instance.auth0Client.then(client => client.getIdTokenClaims(o))
|
return instance.auth0Client.then((client) => client.getIdTokenClaims(o))
|
||||||
},
|
},
|
||||||
/** Returns the access token. If the token is invalid or missing, a new one is retrieved */
|
/** Returns the access token. If the token is invalid or missing, a new one is retrieved */
|
||||||
getTokenSilently: o => {
|
getTokenSilently: (o) => {
|
||||||
return instance.auth0Client.then(client => {
|
return instance.auth0Client.then((client) => {
|
||||||
return client.getTokenSilently(o)
|
return client.getTokenSilently(o)
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
/** Gets the access token using a popup window */
|
/** Gets the access token using a popup window */
|
||||||
getTokenWithPopup: o => {
|
getTokenWithPopup: (o) => {
|
||||||
return instance.auth0Client.then(client => client.getTokenWithPopup(o))
|
return instance.auth0Client.then((client) => client.getTokenWithPopup(o))
|
||||||
},
|
},
|
||||||
/** Logs the user out and removes their session on the authorization server */
|
/** Logs the user out and removes their session on the authorization server */
|
||||||
logout: o => {
|
logout: (o) => {
|
||||||
return instance.auth0Client.then(client => client.logout(o))
|
return instance.auth0Client.then((client) => client.logout(o))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
const fetchUser = () => {
|
const fetchUser = () => {
|
||||||
instance.auth0Client
|
instance.auth0Client
|
||||||
.then(client => client.isAuthenticated())
|
.then((client) => client.isAuthenticated())
|
||||||
.then(a => {
|
.then((a) => {
|
||||||
instance.isAuthenticated = a
|
instance.isAuthenticated = a
|
||||||
instance.auth0Client.then(client =>
|
instance.auth0Client.then((client) =>
|
||||||
client.getUser().then(u => {
|
client.getUser().then((u) => {
|
||||||
instance.user = u
|
instance.user = u
|
||||||
instance.loading = false
|
instance.loading = false
|
||||||
})
|
})
|
||||||
@@ -104,7 +104,7 @@ export const useAuth = (onRedirectCallback = DEFAULT_REDIRECT_CALLBACK) => {
|
|||||||
}
|
}
|
||||||
// Create a new instance of the SDK client using members of the given options object
|
// Create a new instance of the SDK client using members of the given options object
|
||||||
instance.auth0Client = createAuth0Client(options)
|
instance.auth0Client = createAuth0Client(options)
|
||||||
instance.auth0Client.then(client => {
|
instance.auth0Client.then((client) => {
|
||||||
instance.loading = true
|
instance.loading = true
|
||||||
try {
|
try {
|
||||||
// If the user is returning to the app after authentication..
|
// If the user is returning to the app after authentication..
|
||||||
@@ -115,7 +115,7 @@ export const useAuth = (onRedirectCallback = DEFAULT_REDIRECT_CALLBACK) => {
|
|||||||
// handle the redirect and retrieve tokens
|
// handle the redirect and retrieve tokens
|
||||||
client
|
client
|
||||||
.handleRedirectCallback()
|
.handleRedirectCallback()
|
||||||
.then(appState => {
|
.then((appState) => {
|
||||||
// Notify subscribers that the redirect callback has happened, passing the appState
|
// Notify subscribers that the redirect callback has happened, passing the appState
|
||||||
// (useful for retrieving any pre-authentication state)
|
// (useful for retrieving any pre-authentication state)
|
||||||
onRedirectCallback(appState)
|
onRedirectCallback(appState)
|
||||||
@@ -123,7 +123,7 @@ export const useAuth = (onRedirectCallback = DEFAULT_REDIRECT_CALLBACK) => {
|
|||||||
fetchUser()
|
fetchUser()
|
||||||
})
|
})
|
||||||
// eslint-disable-next-line no-console
|
// eslint-disable-next-line no-console
|
||||||
.catch(e => console.error('error handling redirect callback', e))
|
.catch((e) => console.error('error handling redirect callback', e))
|
||||||
} else {
|
} else {
|
||||||
fetchUser()
|
fetchUser()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ const DARK_MODE_KEY = 'dancefinder-dark-mode'
|
|||||||
const LOCALE_KEY = 'dancefinder-locale'
|
const LOCALE_KEY = 'dancefinder-locale'
|
||||||
|
|
||||||
const getDarkMode = () => localStorage.getItem(DARK_MODE_KEY)
|
const getDarkMode = () => localStorage.getItem(DARK_MODE_KEY)
|
||||||
const setDarkMode = mode => localStorage.setItem(DARK_MODE_KEY, mode)
|
const setDarkMode = (mode) => localStorage.setItem(DARK_MODE_KEY, mode)
|
||||||
const getLocale = () => localStorage.getItem(LOCALE_KEY)
|
const getLocale = () => localStorage.getItem(LOCALE_KEY)
|
||||||
const setLocale = locale => localStorage.setItem(LOCALE_KEY, locale)
|
const setLocale = (locale) => localStorage.setItem(LOCALE_KEY, locale)
|
||||||
|
|
||||||
export { getDarkMode, setDarkMode, getLocale, setLocale }
|
export { getDarkMode, setDarkMode, getLocale, setLocale }
|
||||||
|
|||||||
@@ -2480,7 +2480,7 @@
|
|||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
prettier "^1.18.2 || ^2.0.0"
|
prettier "^1.18.2 || ^2.0.0"
|
||||||
|
|
||||||
"@vue/composition-api@^1.4.0":
|
"@vue/composition-api@^1.3.3", "@vue/composition-api@^1.4.0":
|
||||||
version "1.4.0"
|
version "1.4.0"
|
||||||
resolved "https://registry.yarnpkg.com/@vue/composition-api/-/composition-api-1.4.0.tgz#784450d0da1ecfd82f4094053ca593849cbd2e37"
|
resolved "https://registry.yarnpkg.com/@vue/composition-api/-/composition-api-1.4.0.tgz#784450d0da1ecfd82f4094053ca593849cbd2e37"
|
||||||
integrity sha512-fanqJw1cqhkfS1dcpFY52CeR0aWDBr7ub/0ObPWqMnNPdRsMi1gX04Q3aLeRtJEuVeCFewNbqvkPskkSPTVaXQ==
|
integrity sha512-fanqJw1cqhkfS1dcpFY52CeR0aWDBr7ub/0ObPWqMnNPdRsMi1gX04Q3aLeRtJEuVeCFewNbqvkPskkSPTVaXQ==
|
||||||
@@ -2719,7 +2719,7 @@ accepts@~1.3.5:
|
|||||||
mime-types "~2.1.24"
|
mime-types "~2.1.24"
|
||||||
negotiator "0.6.2"
|
negotiator "0.6.2"
|
||||||
|
|
||||||
acorn-jsx@^5.2.0:
|
acorn-jsx@^5.2.0, acorn-jsx@^5.3.1:
|
||||||
version "5.3.2"
|
version "5.3.2"
|
||||||
resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
|
resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
|
||||||
integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
|
integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
|
||||||
@@ -2739,7 +2739,7 @@ acorn@^7.1.1:
|
|||||||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"
|
resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"
|
||||||
integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
|
integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
|
||||||
|
|
||||||
acorn@^8.0.4:
|
acorn@^8.0.4, acorn@^8.5.0:
|
||||||
version "8.6.0"
|
version "8.6.0"
|
||||||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.6.0.tgz#e3692ba0eb1a0c83eaa4f37f5fa7368dd7142895"
|
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.6.0.tgz#e3692ba0eb1a0c83eaa4f37f5fa7368dd7142895"
|
||||||
integrity sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw==
|
integrity sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw==
|
||||||
@@ -5630,14 +5630,15 @@ eslint-plugin-prettier@^3.4.1:
|
|||||||
dependencies:
|
dependencies:
|
||||||
prettier-linter-helpers "^1.0.0"
|
prettier-linter-helpers "^1.0.0"
|
||||||
|
|
||||||
eslint-plugin-vue@^6.1.2:
|
eslint-plugin-vue@^8.1.1:
|
||||||
version "6.2.2"
|
version "8.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-6.2.2.tgz#27fecd9a3a24789b0f111ecdd540a9e56198e0fe"
|
resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-8.1.1.tgz#8bb0a40520880cdd076b4a6faf8bc29110997a8c"
|
||||||
integrity sha512-Nhc+oVAHm0uz/PkJAWscwIT4ijTrK5fqNqz9QB1D35SbbuMG1uB6Yr5AJpvPSWg+WOw7nYNswerYh0kOk64gqQ==
|
integrity sha512-rx64IrlhdfPya6u2V5ukOGiLCTgaCBdMSpczLVqyo8A0l+Vbo+lzvIfEUfAQ2auj+MF6y0TwxLorzdCIzHunnw==
|
||||||
dependencies:
|
dependencies:
|
||||||
|
eslint-utils "^3.0.0"
|
||||||
natural-compare "^1.4.0"
|
natural-compare "^1.4.0"
|
||||||
semver "^5.6.0"
|
semver "^7.3.5"
|
||||||
vue-eslint-parser "^7.0.0"
|
vue-eslint-parser "^8.0.1"
|
||||||
|
|
||||||
eslint-scope@^4.0.3:
|
eslint-scope@^4.0.3:
|
||||||
version "4.0.3"
|
version "4.0.3"
|
||||||
@@ -5647,7 +5648,7 @@ eslint-scope@^4.0.3:
|
|||||||
esrecurse "^4.1.0"
|
esrecurse "^4.1.0"
|
||||||
estraverse "^4.1.1"
|
estraverse "^4.1.1"
|
||||||
|
|
||||||
eslint-scope@^5.0.0, eslint-scope@^5.1.1:
|
eslint-scope@^5.0.0:
|
||||||
version "5.1.1"
|
version "5.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c"
|
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c"
|
||||||
integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==
|
integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==
|
||||||
@@ -5655,6 +5656,14 @@ eslint-scope@^5.0.0, eslint-scope@^5.1.1:
|
|||||||
esrecurse "^4.3.0"
|
esrecurse "^4.3.0"
|
||||||
estraverse "^4.1.1"
|
estraverse "^4.1.1"
|
||||||
|
|
||||||
|
eslint-scope@^6.0.0:
|
||||||
|
version "6.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-6.0.0.tgz#9cf45b13c5ac8f3d4c50f46a5121f61b3e318978"
|
||||||
|
integrity sha512-uRDL9MWmQCkaFus8RF5K9/L/2fn+80yoW3jkD53l4shjCh26fCtvJGasxjUqP5OT87SYTxCVA3BwTUzuELx9kA==
|
||||||
|
dependencies:
|
||||||
|
esrecurse "^4.3.0"
|
||||||
|
estraverse "^5.2.0"
|
||||||
|
|
||||||
eslint-utils@^1.4.3:
|
eslint-utils@^1.4.3:
|
||||||
version "1.4.3"
|
version "1.4.3"
|
||||||
resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f"
|
resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f"
|
||||||
@@ -5662,11 +5671,28 @@ eslint-utils@^1.4.3:
|
|||||||
dependencies:
|
dependencies:
|
||||||
eslint-visitor-keys "^1.1.0"
|
eslint-visitor-keys "^1.1.0"
|
||||||
|
|
||||||
|
eslint-utils@^3.0.0:
|
||||||
|
version "3.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672"
|
||||||
|
integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==
|
||||||
|
dependencies:
|
||||||
|
eslint-visitor-keys "^2.0.0"
|
||||||
|
|
||||||
eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0:
|
eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0:
|
||||||
version "1.3.0"
|
version "1.3.0"
|
||||||
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e"
|
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e"
|
||||||
integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==
|
integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==
|
||||||
|
|
||||||
|
eslint-visitor-keys@^2.0.0:
|
||||||
|
version "2.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303"
|
||||||
|
integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==
|
||||||
|
|
||||||
|
eslint-visitor-keys@^3.0.0:
|
||||||
|
version "3.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz#eee4acea891814cda67a7d8812d9647dd0179af2"
|
||||||
|
integrity sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA==
|
||||||
|
|
||||||
eslint@^6.8.0:
|
eslint@^6.8.0:
|
||||||
version "6.8.0"
|
version "6.8.0"
|
||||||
resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz#62262d6729739f9275723824302fb227c8c93ffb"
|
resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz#62262d6729739f9275723824302fb227c8c93ffb"
|
||||||
@@ -5710,7 +5736,7 @@ eslint@^6.8.0:
|
|||||||
text-table "^0.2.0"
|
text-table "^0.2.0"
|
||||||
v8-compile-cache "^2.0.3"
|
v8-compile-cache "^2.0.3"
|
||||||
|
|
||||||
espree@^6.1.2, espree@^6.2.1:
|
espree@^6.1.2:
|
||||||
version "6.2.1"
|
version "6.2.1"
|
||||||
resolved "https://registry.yarnpkg.com/espree/-/espree-6.2.1.tgz#77fc72e1fd744a2052c20f38a5b575832e82734a"
|
resolved "https://registry.yarnpkg.com/espree/-/espree-6.2.1.tgz#77fc72e1fd744a2052c20f38a5b575832e82734a"
|
||||||
integrity sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==
|
integrity sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==
|
||||||
@@ -5719,6 +5745,15 @@ espree@^6.1.2, espree@^6.2.1:
|
|||||||
acorn-jsx "^5.2.0"
|
acorn-jsx "^5.2.0"
|
||||||
eslint-visitor-keys "^1.1.0"
|
eslint-visitor-keys "^1.1.0"
|
||||||
|
|
||||||
|
espree@^9.0.0:
|
||||||
|
version "9.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/espree/-/espree-9.0.0.tgz#e90a2965698228502e771c7a58489b1a9d107090"
|
||||||
|
integrity sha512-r5EQJcYZ2oaGbeR0jR0fFVijGOcwai07/690YRXLINuhmVeRY4UKSAsQPe/0BNuDgwP7Ophoc1PRsr2E3tkbdQ==
|
||||||
|
dependencies:
|
||||||
|
acorn "^8.5.0"
|
||||||
|
acorn-jsx "^5.3.1"
|
||||||
|
eslint-visitor-keys "^3.0.0"
|
||||||
|
|
||||||
esprima@^4.0.0, esprima@~4.0.0:
|
esprima@^4.0.0, esprima@~4.0.0:
|
||||||
version "4.0.1"
|
version "4.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
|
resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
|
||||||
@@ -12771,18 +12806,18 @@ vue-demi@^0.11.4:
|
|||||||
resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.11.4.tgz#6101992fe4724cf5634018a16e953f3052e94e2a"
|
resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.11.4.tgz#6101992fe4724cf5634018a16e953f3052e94e2a"
|
||||||
integrity sha512-/3xFwzSykLW2HiiLie43a+FFgNOcokbBJ+fzvFXd0r2T8MYohqvphUyDQ8lbAwzQ3Dlcrb1c9ykifGkhSIAk6A==
|
integrity sha512-/3xFwzSykLW2HiiLie43a+FFgNOcokbBJ+fzvFXd0r2T8MYohqvphUyDQ8lbAwzQ3Dlcrb1c9ykifGkhSIAk6A==
|
||||||
|
|
||||||
vue-eslint-parser@^7.0.0:
|
vue-eslint-parser@^8.0.1:
|
||||||
version "7.11.0"
|
version "8.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-7.11.0.tgz#214b5dea961007fcffb2ee65b8912307628d0daf"
|
resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-8.0.1.tgz#25e08b20a414551531f3e19f999902e1ecf45f13"
|
||||||
integrity sha512-qh3VhDLeh773wjgNTl7ss0VejY9bMMa0GoDG2fQVyDzRFdiU3L7fw74tWZDHNQXdZqxO3EveQroa9ct39D2nqg==
|
integrity sha512-lhWjDXJhe3UZw2uu3ztX51SJAPGPey1Tff2RK3TyZURwbuI4vximQLzz4nQfCv8CZq4xx7uIiogHMMoSJPr33A==
|
||||||
dependencies:
|
dependencies:
|
||||||
debug "^4.1.1"
|
debug "^4.3.2"
|
||||||
eslint-scope "^5.1.1"
|
eslint-scope "^6.0.0"
|
||||||
eslint-visitor-keys "^1.1.0"
|
eslint-visitor-keys "^3.0.0"
|
||||||
espree "^6.2.1"
|
espree "^9.0.0"
|
||||||
esquery "^1.4.0"
|
esquery "^1.4.0"
|
||||||
lodash "^4.17.21"
|
lodash "^4.17.21"
|
||||||
semver "^6.3.0"
|
semver "^7.3.5"
|
||||||
|
|
||||||
vue-hot-reload-api@^2.3.0:
|
vue-hot-reload-api@^2.3.0:
|
||||||
version "2.3.4"
|
version "2.3.4"
|
||||||
|
|||||||
Reference in New Issue
Block a user