Finish basic login and registration flow

main
DustyP 4 years ago
parent a8a8790a1e
commit 4cf140e529

@ -9,6 +9,6 @@ func GetRouter() *mux.Router {
router := mux.NewRouter().StrictSlash(true) router := mux.NewRouter().StrictSlash(true)
router.Handle("/login", utils.RootHandler(loginHandler)).Methods("POST") router.Handle("/login", utils.RootHandler(loginHandler)).Methods("POST")
router.Handle("/register", utils.RootHandler(registerHandler)).Methods("POST") router.Handle("/register", utils.RootHandler(registerHandler)).Methods("POST")
router.Handle("/refresh", utils.RootHandler(refreshHandler)).Methods("POST") router.Handle("/refresh", utils.RootHandler(refreshHandler)).Methods("GET")
return router return router
} }

@ -48,9 +48,13 @@ func loginHandler(w http.ResponseWriter, r *http.Request) error {
} }
http.SetCookie(w, &http.Cookie{ http.SetCookie(w, &http.Cookie{
Name: "token", Name: "token",
Value: tokenString, Value: tokenString,
Expires: expires, Expires: expires,
Path: "/",
HttpOnly: false,
Secure: false,
SameSite: http.SameSiteLaxMode,
}) })
return nil return nil
@ -126,9 +130,13 @@ func refreshHandler(w http.ResponseWriter, r *http.Request) error {
// Set the new token as the users `token` cookie // Set the new token as the users `token` cookie
http.SetCookie(w, &http.Cookie{ http.SetCookie(w, &http.Cookie{
Name: "token", Name: "token",
Value: tokenString, Value: tokenString,
Expires: expirationTime, Expires: expirationTime,
Path: "/",
HttpOnly: false,
Secure: false,
SameSite: http.SameSiteLaxMode,
}) })
return nil return nil

@ -1,3 +0,0 @@
> 1%
last 2 versions
not dead

@ -1,4 +1,4 @@
# frontend # frontend-new
## Project setup ## Project setup
``` ```
@ -15,5 +15,10 @@ yarn serve
yarn build yarn build
``` ```
### Lints and fixes files
```
yarn lint
```
### Customize configuration ### Customize configuration
See [Configuration Reference](https://cli.vuejs.org/config/). See [Configuration Reference](https://cli.vuejs.org/config/).

File diff suppressed because it is too large Load Diff

@ -10,16 +10,18 @@
"dependencies": { "dependencies": {
"axios": "^0.24.0", "axios": "^0.24.0",
"core-js": "^3.6.5", "core-js": "^3.6.5",
"vee-validate": "^3.4.14", "jwt-decode": "^3.1.2",
"material-design-icons-iconfont": "^6.1.1",
"sass": "^1.43.4",
"sass-loader": "^10.2.0",
"vue": "^2.6.11", "vue": "^2.6.11",
"vue-router": "^3.2.0", "vue-cookies": "^1.7.4",
"vuetify": "^2.5.14", "vue-router": "^3.5.3",
"vuex": "^3.4.0" "vuetify": "^2.6.0",
"vuex": "^3.6.2"
}, },
"devDependencies": { "devDependencies": {
"@vue/cli-plugin-babel": "~4.5.0", "@vue/cli-plugin-babel": "~4.5.0",
"@vue/cli-plugin-router": "~4.5.0",
"@vue/cli-plugin-vuex": "~4.5.0",
"@vue/cli-service": "~4.5.0", "@vue/cli-service": "~4.5.0",
"axios": "^0.18.0", "axios": "^0.18.0",
"sass": "~1.32.0", "sass": "~1.32.0",
@ -28,5 +30,10 @@
"vue-cli-plugin-vuetify": "~2.4.3", "vue-cli-plugin-vuetify": "~2.4.3",
"vue-template-compiler": "^2.6.11", "vue-template-compiler": "^2.6.11",
"vuetify-loader": "^1.7.0" "vuetify-loader": "^1.7.0"
} },
"browserslist": [
"> 1%",
"last 2 versions",
"not dead"
]
} }

@ -1,31 +1,59 @@
<template> <template>
<v-app id="App"> <v-app id="app">
<Drawer />
<SystemBar />
<AppBar /> <AppBar />
<Drawer />
<StaticFab />
<v-main dark app class="grey darken-4"> <v-main dark app class="grey darken-4">
<router-view /> <router-view />
</v-main> </v-main>
<StaticFab />
</v-app> </v-app>
</template> </template>
<script> <script>
import SystemBar from "./components/SystemBar.vue" import AppBar from "@/components/AppBar.vue";
import AppBar from "./components/AppBar.vue" import Drawer from "@/components/Drawer.vue";
import Drawer from "./components/Drawer.vue" import StaticFab from "@/components/StaticFab.vue";
import StaticFab from "./components/StaticFab.vue" import axios from "axios";
export default { export default {
name: "App", name: "App",
components: { components: {
SystemBar, AppBar,
AppBar, Drawer,
Drawer, StaticFab,
StaticFab, },
data: () => ({
timer: null
}),
mounted() {
this.$store.dispatch("loadCurrentUser");
this.timer = setInterval(this.refreshUser.bind(this), 10000);
},
methods: {
refreshUser() {
if (
this.$store.state.currentUser &&
this.$store.state.currentUser.exp - Date.now() / 1000 < 120
) {
axios
.get("http://localhost:8000/api/users/refresh")
.then((response) => {
if (response.status == 200) {
this.$store.dispatch("loadCurrentUser");
}
});
}
this.$store.dispatch("loadCurrentUser");
},
cancelAutoUpdate() {
clearInterval(this.timer);
}, },
} },
beforeDestroy() {
this.cancelAutoUpdate();
},
};
</script> </script>

@ -3,16 +3,28 @@
<v-app-bar-nav-icon @click="toggleDrawer()"></v-app-bar-nav-icon> <v-app-bar-nav-icon @click="toggleDrawer()"></v-app-bar-nav-icon>
<v-toolbar-title>Application</v-toolbar-title> <v-toolbar-title>Application</v-toolbar-title>
<v-spacer />
<v-btn v-if="!currentUser" text class="mx-2" :to="{ name: 'Register' }">Register</v-btn>
<v-btn v-if="!currentUser" text class="mx-2" :to="{ name: 'Login' }">Login</v-btn>
<v-btn v-if="currentUser" text class="mx-2" @click="logout">Logout</v-btn>
</v-app-bar> </v-app-bar>
</template> </template>
<script> <script>
import { mapState } from 'vuex'
export default { export default {
name: "AppBar", name: "AppBar",
methods: { methods: {
toggleDrawer () { toggleDrawer () {
this.$store.commit("toggleDrawer"); this.$store.commit("toggleDrawer");
} },
logout() {
this.$cookies.remove('token')
this.$router.push({ name: "Login" });
},
},
computed: {
...mapState(['currentUser'])
} }
}; };
</script> </script>

@ -3,7 +3,7 @@
<v-row class="text-center"> <v-row class="text-center">
<v-col cols="12"> <v-col cols="12">
<v-img <v-img
:src="require('../assets/logo.png')" :src="require('../assets/logo.svg')"
class="my-3" class="my-3"
contain contain
height="200" height="200"

@ -3,9 +3,7 @@
<v-spacer></v-spacer> <v-spacer></v-spacer>
<v-tooltip small bottom> <v-tooltip small bottom>
<template v-slot:activator="{ on, attrs }"> <template v-slot:activator="{ on, attrs }">
<router-link tag="span" to="/about">
<v-icon v-bind="attrs" v-on="on">mdi-information</v-icon> <v-icon v-bind="attrs" v-on="on">mdi-information</v-icon>
</router-link>
</template> </template>
<span>About</span> <span>About</span>
</v-tooltip> </v-tooltip>

@ -0,0 +1,74 @@
<template>
<v-form v-model="valid">
<v-text-field
v-model="username"
label="Username"
outlined
dark
filled
dense
counter="30"
:rules="[
required('Username'),
minLength('Username', 2),
maxLength('Username', 30),
]"
v-on:keyup.enter="submitFunc(params)"
></v-text-field>
<v-text-field
v-model="password"
label="Password"
:append-icon="showPass ? 'mdi-eye' : 'mdi-eye-off'"
@click:append="showPass = !showPass"
outlined
dense
dark
filled
counter="true"
:type="showPass ? 'text' : 'password'"
:rules="[required('Password'), minLength('Password', 8)]"
v-on:keyup.enter="submitFunc(params)"
></v-text-field>
<div class="text-center">
<v-btn
class="signin-btn"
rounded
color="white"
:disabled="!valid"
@click="submitFunc(params)"
>
{{ buttonText }}
</v-btn>
</div>
</v-form>
</template>
<script>
import validations from "@/utils/validations";
export default {
name: "UserAuthForm",
data: () => ({
valid: false,
username: "",
password: null,
showPass: false,
...validations,
}),
props: [
"submitFunc",
"successMessage",
"errorMessage",
"success",
"error",
"buttonText",
],
computed: {
params() {
return {
username: this.username,
password: this.password,
};
},
},
};
</script>

@ -3,7 +3,9 @@ import './plugins/axios'
import App from './App.vue' import App from './App.vue'
import router from './router' import router from './router'
import vuetify from './plugins/vuetify' import vuetify from './plugins/vuetify'
import 'material-design-icons-iconfont/dist/material-design-icons.css'
import store from './store' import store from './store'
Vue.use(require('vue-cookies'))
Vue.config.productionTip = false Vue.config.productionTip = false

@ -2,6 +2,8 @@ import Vue from 'vue'
import VueRouter from 'vue-router' import VueRouter from 'vue-router'
import Dashboard from '../views/Dashboard.vue' import Dashboard from '../views/Dashboard.vue'
import Login from '../views/Login.vue' import Login from '../views/Login.vue'
import Register from '../views/Register.vue'
import store from '../store'
Vue.use(VueRouter) Vue.use(VueRouter)
@ -9,7 +11,10 @@ const routes = [
{ {
path: '/dashboard', path: '/dashboard',
name: 'Dashboard', name: 'Dashboard',
component: Dashboard component: Dashboard,
meta: {
requiresAuth: true
}
}, },
{ {
path: '/about', path: '/about',
@ -24,6 +29,11 @@ const routes = [
name: 'Login', name: 'Login',
component: Login, component: Login,
}, },
{
path: '/register',
name: 'Register',
component: Register,
},
] ]
const router = new VueRouter({ const router = new VueRouter({
@ -31,4 +41,19 @@ const router = new VueRouter({
routes routes
}) })
router.beforeEach((to, from, next) => {
store.dispatch('loadCurrentUser')
if (to.matched.some(record => record.meta.requiresAuth)) {
// this route requires auth, check if logged in
// if not, redirect to login page.
if (!Vue.$cookies.get('token')) {
next({ name: 'Login' })
} else {
next() // go to wherever I'm going
}
} else {
next() // does not require auth, make sure to always call next()!
}
})
export default router export default router

@ -1,16 +1,18 @@
import Vue from 'vue' import Vue from 'vue'
import Vuex from 'vuex' import Vuex from 'vuex'
import jwt_decode from 'jwt-decode'
Vue.use(Vuex) Vue.use(Vuex)
export default new Vuex.Store({ export default new Vuex.Store({
state: { state: {
drawer: null, drawer: null,
currentUser: null,
}, },
getters: { getters: {
}, },
mutations: { mutations: {
toggleDrawer (state, payload) { toggleDrawer (state) {
if (state.drawer === null) { if (state.drawer === null) {
state.drawer = false; state.drawer = false;
} }
@ -18,9 +20,20 @@ export default new Vuex.Store({
}, },
updateDrawer (state, payload) { updateDrawer (state, payload) {
state.drawer = payload state.drawer = payload
},
SET_CURRENT_USER (state, user) {
state.currentUser = user
} }
}, },
actions: { actions: {
loadCurrentUser ({commit}) {
if (Vue.$cookies.isKey('token')) {
var user = jwt_decode(Vue.$cookies.get('token'));
commit('SET_CURRENT_USER', user)
} else {
commit('SET_CURRENT_USER', null)
}
}
}, },
modules: { modules: {
} }

@ -0,0 +1,15 @@
let required = (propertyType) => {
return v => v && v.length > 0 || `You must input a ${propertyType}`
}
let minLength = (propertyType, minLength) => {
return v => v && v.length >= minLength || `${propertyType} must be at least ${minLength} characters`
}
let maxLength = (propertyType, maxLength) => {
return v => v && v.length <= maxLength || `${propertyType} must be less than ${maxLength} characters`
}
export default {
required,
minLength,
maxLength,
}

@ -0,0 +1,15 @@
<template>
<hello-world />
</template>
<script>
import HelloWorld from '../components/HelloWorld'
export default {
name: 'Home',
components: {
HelloWorld,
},
}
</script>

@ -2,72 +2,41 @@
<section class="section-container fill-height"> <section class="section-container fill-height">
<v-row class="signin fill-height"> <v-row class="signin fill-height">
<v-spacer /> <v-spacer />
<v-col cols="10" sm="8" md="6" lg="4" class="text-center fill-height pb-50"> <v-col
cols="10"
sm="8"
md="6"
lg="4"
class="text-center fill-height pb-50"
>
<h2 class="grey--text lighten-4">LOGIN</h2> <h2 class="grey--text lighten-4">LOGIN</h2>
<validation-observer ref="observer"> <UserAuthForm
<v-form @submit.prevent="submit"> :submitFunc="login"
<validation-provider successMessage
v-slot="{ errors }" errorMessage
name="Username" success
rules="required" error
> buttonText="Login"
<v-text-field />
v-model="username"
:error-messages="errors"
label="Username"
required
outlined
dark
filled
dense
></v-text-field>
</validation-provider>
<validation-provider
v-slot="{ errors }"
name="Password"
rules="required"
>
<v-text-field
v-model="password"
:error-messages="errors"
label="Password"
:append-icon="showPass ? 'mdi-eye' : 'mdi-eye-off'"
@click:append="showPass = !showPass"
required
outlined
dense
dark
filled
:type="showPass ? 'text' : 'password'"
></v-text-field>
</validation-provider>
<div class="text-center">
<v-btn class="signin-btn" type="submit" rounded color="white">
Sign In
</v-btn>
</div>
</v-form>
</validation-observer>
<v-spacer />
<v-container class="pt-50"> <v-container class="pt-50">
<v-alert <v-alert
v-model="success" v-model="success"
prominent prominent
dense dense
type="success" type="success"
transition="slide-y-transition" transition="slide-y-transition"
> >
{{ successMessage }} {{ successMessage }}
</v-alert> </v-alert>
<v-alert <v-alert
v-model="error" v-model="error"
prominent prominent
dense dense
type="error" type="error"
transition="slide-y-transition" transition="slide-y-transition"
> >
{{ errorMessage }} {{ errorMessage }}
</v-alert> </v-alert>
</v-container> </v-container>
</v-col> </v-col>
<v-spacer /> <v-spacer />
@ -76,52 +45,21 @@
</template> </template>
<script> <script>
import { required } from "vee-validate/dist/rules"; import UserAuthForm from "@/components/UserAuthForm.vue";
import { import axios from 'axios';
extend,
ValidationProvider,
setInteractionMode,
ValidationObserver,
} from "vee-validate";
setInteractionMode("eager");
extend("required", {
...required,
message: "{_field_} can not be empty",
});
export default { export default {
name: "Login", name: "Login",
components: { components: {
ValidationProvider, UserAuthForm,
ValidationObserver,
}, },
data: () => ({ data: () => ({
username: "",
password: null,
showPass: false,
response: null,
successMessage: null, successMessage: null,
errorMessage: null, errorMessage: null,
success: false, success: false,
error: false, error: false,
}), }),
computed: {
params() {
return {
username: this.username,
password: this.password,
};
},
},
methods: { methods: {
async submit() {
const valid = await this.$refs.observer.validate();
if (valid) {
this.login(this.params); // action to login
}
},
async login(payload) { async login(payload) {
axios axios
.post("http://localhost:8000/api/users/login", payload) .post("http://localhost:8000/api/users/login", payload)
@ -147,7 +85,6 @@ export default {
// you can use this method to clear login form // you can use this method to clear login form
this.username = ""; this.username = "";
this.password = null; this.password = null;
this.$refs.observer.reset();
}, },
}, },
}; };

@ -3,119 +3,98 @@
<v-row class="signin"> <v-row class="signin">
<v-spacer /> <v-spacer />
<v-col cols="10" sm="8" md="6" lg="4" class="text-center"> <v-col cols="10" sm="8" md="6" lg="4" class="text-center">
<h2 class="grey--text lighten-4">LOGIN</h2> <h2 class="grey--text lighten-4">Register</h2>
<validation-observer ref="observer"> <UserAuthForm
<v-form @submit.prevent="submit"> :submitFunc="register"
<validation-provider successMessage
v-slot="{ errors }" errorMessage
name="Username" success
rules="required" error
> buttonText="Register"
<v-text-field />
v-model="username" <v-container class="pt-50">
:error-messages="errors" <v-alert
label="Username" v-model="success"
required prominent
outlined dense
dark type="success"
filled transition="slide-y-transition"
dense >
></v-text-field> {{ successMessage }}
</validation-provider> </v-alert>
<validation-provider <v-alert
v-slot="{ errors }" v-model="error"
name="Password" prominent
rules="required" dense
> type="error"
<v-text-field transition="slide-y-transition"
v-model="password" >
:error-messages="errors" {{ errorMessage }}
label="Password" </v-alert>
:append-icon="showPass ? 'mdi-eye' : 'mdi-eye-off'" </v-container>
@click:append="showPass = !showPass"
required
outlined
dense
dark
filled
:type="showPass ? 'text' : 'password'"
></v-text-field>
</validation-provider>
<div class="text-center">
<v-btn class="signin-btn" type="submit" rounded color="white">
Sign In
</v-btn>
</div>
</v-form>
</validation-observer>
</v-col> </v-col>
<v-spacer /> <v-spacer />
</v-row> </v-row>
</section> </section>
</template> </template>
<script> <script>
import { required } from "vee-validate/dist/rules"; import UserAuthForm from "@/components/UserAuthForm.vue"
import { import axios from 'axios'
extend,
ValidationProvider,
setInteractionMode,
ValidationObserver,
} from "vee-validate";
setInteractionMode("eager");
extend("required", {
...required,
message: "{_field_} can not be empty",
});
export default { export default {
name: "Login", name: "Register",
components: { components: {
ValidationProvider, UserAuthForm,
ValidationObserver,
}, },
data: () => ({ data: () => ({
username: "", successMessage: null,
password: null, errorMessage: null,
showPass: false, success: false,
response: null, error: false,
}), }),
computed: {
params() {
return {
username: this.username,
password: this.password,
};
},
},
methods: { methods: {
async submit() { async register(payload) {
const valid = await this.$refs.observer.validate();
if (valid) {
this.login(this.params); // action to login
}
},
async login(payload) {
axios axios
.post("http://localhost:8000/api/users/login", payload) .post("http://localhost:8000/api/users/register", payload)
.then((response) => { .then((response) => {
if (response.status == 200) { if (response.status == 200) {
this.$router.push({ name: "Dashboard" }) axios
} .post("http://localhost:8000/api/users/login", payload)
}) .then((response) => {
.catch((error) => { if (response.status == 200) {
if (error.response.status == 401) { this.successMessage = "Registration Successful";
console.log("Bad login info") this.success = true;
setTimeout(() => {
this.$router.push({ name: "Dashboard" });
}, 2000);
}
})
.catch((error) => {
this.errorMessage = error.response.data.error;
this.error = true;
setTimeout(() => {
this.errorMessage = null;
this.error = false;
}, 3000);
});
} }
}) })
.catch((error) => {
console.log(error)
this.errorMessage = error.response.data.error;
this.error = true;
setTimeout(() => {
this.errorMessage = null;
this.error = false;
}, 3000);
});
}, },
clear() { clear() {
// you can use this method to clear login form // you can use this method to clear login form
this.username = ""; this.username = "";
this.password = null; this.password = null;
this.$refs.observer.reset();
}, },
}, },
}; };

@ -9,10 +9,10 @@
dependencies: dependencies:
"@babel/highlight" "^7.16.0" "@babel/highlight" "^7.16.0"
"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.16.0": "@babel/compat-data@^7.13.11", "@babel/compat-data@^7.16.0", "@babel/compat-data@^7.16.4":
version "7.16.0" version "7.16.4"
resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.0.tgz" resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.4.tgz"
integrity sha512-DGjt2QZse5SGd9nfOSqO4WLJ8NN/oHkijbXbPrxuoJO3oIPJL3TciZs9FX+cOHNiY9E9l0opL8g7BmLe3T+9ew== integrity sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q==
"@babel/core@^7.11.0": "@babel/core@^7.11.0":
version "7.16.0" version "7.16.0"
@ -59,7 +59,7 @@
"@babel/helper-explode-assignable-expression" "^7.16.0" "@babel/helper-explode-assignable-expression" "^7.16.0"
"@babel/types" "^7.16.0" "@babel/types" "^7.16.0"
"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.16.0", "@babel/helper-compilation-targets@^7.9.6": "@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.16.0", "@babel/helper-compilation-targets@^7.16.3", "@babel/helper-compilation-targets@^7.9.6":
version "7.16.3" version "7.16.3"
resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.3.tgz" resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.3.tgz"
integrity sha512-vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA== integrity sha512-vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA==
@ -89,10 +89,10 @@
"@babel/helper-annotate-as-pure" "^7.16.0" "@babel/helper-annotate-as-pure" "^7.16.0"
regexpu-core "^4.7.1" regexpu-core "^4.7.1"
"@babel/helper-define-polyfill-provider@^0.2.4": "@babel/helper-define-polyfill-provider@^0.3.0":
version "0.2.4" version "0.3.0"
resolved "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.4.tgz" resolved "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.0.tgz"
integrity sha512-OrpPZ97s+aPi6h2n1OXzdhVis1SGSsMU2aMHgLcOKfsp4/v1NWpx3CWT3lBj5eeBq9cDkPkh+YCfdF7O12uNDQ== integrity sha512-7hfT8lUljl/tM3h+izTX/pO3W3frz2ok6Pk+gzys8iJqDfZrZy2pXjRTZAvG2YmfHun1X4q8/UZRLatMfqc5Tg==
dependencies: dependencies:
"@babel/helper-compilation-targets" "^7.13.0" "@babel/helper-compilation-targets" "^7.13.0"
"@babel/helper-module-imports" "^7.12.13" "@babel/helper-module-imports" "^7.12.13"
@ -173,10 +173,10 @@
resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz" resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz"
integrity sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ== integrity sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==
"@babel/helper-remap-async-to-generator@^7.16.0": "@babel/helper-remap-async-to-generator@^7.16.0", "@babel/helper-remap-async-to-generator@^7.16.4":
version "7.16.0" version "7.16.4"
resolved "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.0.tgz" resolved "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.4.tgz"
integrity sha512-MLM1IOMe9aQBqMWxcRw8dcb9jlM86NIw7KA0Wri91Xkfied+dE0QuBFSBjMNvqzmS0OSIDsMNC24dBEkPUi7ew== integrity sha512-vGERmmhR+s7eH5Y/cp8PCVzj4XEjerq8jooMfxFdA5xVtAk9Sh4AQsrWgiErUEBjtGrBtOFKDUcWQFW4/dFwMA==
dependencies: dependencies:
"@babel/helper-annotate-as-pure" "^7.16.0" "@babel/helper-annotate-as-pure" "^7.16.0"
"@babel/helper-wrap-function" "^7.16.0" "@babel/helper-wrap-function" "^7.16.0"
@ -252,11 +252,11 @@
js-tokens "^4.0.0" js-tokens "^4.0.0"
"@babel/parser@^7.16.0", "@babel/parser@^7.16.3": "@babel/parser@^7.16.0", "@babel/parser@^7.16.3":
version "7.16.3" version "7.16.4"
resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.16.3.tgz" resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.16.4.tgz"
integrity sha512-dcNwU1O4sx57ClvLBVFbEgx0UZWfd0JQX5X6fxFRCLHelFBGXFfSz6Y0FAq2PEwUqlqLkdVjVr4VASEOuUnLJw== integrity sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng==
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.0": "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.2":
version "7.16.2" version "7.16.2"
resolved "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.2.tgz" resolved "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.2.tgz"
integrity sha512-h37CvpLSf8gb2lIJ2CgC3t+EjFbi0t8qS7LCS1xcJIlEXE4czlofwaW7W1HA8zpgOCzI9C1nmoqNR1zWkk0pQg== integrity sha512-h37CvpLSf8gb2lIJ2CgC3t+EjFbi0t8qS7LCS1xcJIlEXE4czlofwaW7W1HA8zpgOCzI9C1nmoqNR1zWkk0pQg==
@ -272,13 +272,13 @@
"@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0"
"@babel/plugin-proposal-optional-chaining" "^7.16.0" "@babel/plugin-proposal-optional-chaining" "^7.16.0"
"@babel/plugin-proposal-async-generator-functions@^7.16.0": "@babel/plugin-proposal-async-generator-functions@^7.16.4":
version "7.16.0" version "7.16.4"
resolved "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.0.tgz" resolved "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.4.tgz"
integrity sha512-nyYmIo7ZqKsY6P4lnVmBlxp9B3a96CscbLotlsNuktMHahkDwoPYEjXrZHU0Tj844Z9f1IthVxQln57mhkcExw== integrity sha512-/CUekqaAaZCQHleSK/9HajvcD/zdnJiKRiuUFq8ITE+0HsPzquf53cpFiqAwl/UfmJbR6n5uGPQSPdrmKOvHHg==
dependencies: dependencies:
"@babel/helper-plugin-utils" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5"
"@babel/helper-remap-async-to-generator" "^7.16.0" "@babel/helper-remap-async-to-generator" "^7.16.4"
"@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-async-generators" "^7.8.4"
"@babel/plugin-proposal-class-properties@^7.16.0", "@babel/plugin-proposal-class-properties@^7.8.3": "@babel/plugin-proposal-class-properties@^7.16.0", "@babel/plugin-proposal-class-properties@^7.8.3":
@ -299,9 +299,9 @@
"@babel/plugin-syntax-class-static-block" "^7.14.5" "@babel/plugin-syntax-class-static-block" "^7.14.5"
"@babel/plugin-proposal-decorators@^7.8.3": "@babel/plugin-proposal-decorators@^7.8.3":
version "7.16.0" version "7.16.4"
resolved "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.16.0.tgz" resolved "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.16.4.tgz"
integrity sha512-ttvhKuVnQwoNQrcTd1oe6o49ahaZ1kns1fsJKzTVOaS/FJDJoK4qzgVS68xzJhYUMgTnbXW6z/T6rlP3lL7tJw== integrity sha512-RESBNX16eNqnBeEVR5sCJpnW0mHiNLNNvGA8PrRuK/4ZJ4TO+6bHleRUuGQYDERVySOKtOhSya/C4MIhwAMAgg==
dependencies: dependencies:
"@babel/helper-create-class-features-plugin" "^7.16.0" "@babel/helper-create-class-features-plugin" "^7.16.0"
"@babel/helper-plugin-utils" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5"
@ -690,7 +690,7 @@
"@babel/helper-plugin-utils" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5"
"@babel/helper-replace-supers" "^7.16.0" "@babel/helper-replace-supers" "^7.16.0"
"@babel/plugin-transform-parameters@^7.16.0": "@babel/plugin-transform-parameters@^7.16.0", "@babel/plugin-transform-parameters@^7.16.3":
version "7.16.3" version "7.16.3"
resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.3.tgz" resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.3.tgz"
integrity sha512-3MaDpJrOXT1MZ/WCmkOFo7EtmVVC8H4EUZVrHvFOsmwkk4lOjQj8rzv8JKUZV4YoQKeoIgk07GO+acPU9IMu/w== integrity sha512-3MaDpJrOXT1MZ/WCmkOFo7EtmVVC8H4EUZVrHvFOsmwkk4lOjQj8rzv8JKUZV4YoQKeoIgk07GO+acPU9IMu/w==
@ -719,15 +719,15 @@
"@babel/helper-plugin-utils" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5"
"@babel/plugin-transform-runtime@^7.11.0": "@babel/plugin-transform-runtime@^7.11.0":
version "7.16.0" version "7.16.4"
resolved "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.16.0.tgz" resolved "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.16.4.tgz"
integrity sha512-zlPf1/XFn5+vWdve3AAhf+Sxl+MVa5VlwTwWgnLx23u4GlatSRQJ3Eoo9vllf0a9il3woQsT4SK+5Z7c06h8ag== integrity sha512-pru6+yHANMTukMtEZGC4fs7XPwg35v8sj5CIEmE+gEkFljFiVJxEWxx/7ZDkTK+iZRYo1bFXBtfIN95+K3cJ5A==
dependencies: dependencies:
"@babel/helper-module-imports" "^7.16.0" "@babel/helper-module-imports" "^7.16.0"
"@babel/helper-plugin-utils" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5"
babel-plugin-polyfill-corejs2 "^0.2.3" babel-plugin-polyfill-corejs2 "^0.3.0"
babel-plugin-polyfill-corejs3 "^0.3.0" babel-plugin-polyfill-corejs3 "^0.4.0"
babel-plugin-polyfill-regenerator "^0.2.3" babel-plugin-polyfill-regenerator "^0.3.0"
semver "^6.3.0" semver "^6.3.0"
"@babel/plugin-transform-shorthand-properties@^7.16.0": "@babel/plugin-transform-shorthand-properties@^7.16.0":
@ -782,17 +782,17 @@
"@babel/helper-plugin-utils" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5"
"@babel/preset-env@^7.11.0": "@babel/preset-env@^7.11.0":
version "7.16.0" version "7.16.4"
resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.0.tgz" resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.4.tgz"
integrity sha512-cdTu/W0IrviamtnZiTfixPfIncr2M1VqRrkjzZWlr1B4TVYimCFK5jkyOdP4qw2MrlKHi+b3ORj6x8GoCew8Dg== integrity sha512-v0QtNd81v/xKj4gNKeuAerQ/azeNn/G1B1qMLeXOcV8+4TWlD2j3NV1u8q29SDFBXx/NBq5kyEAO+0mpRgacjA==
dependencies: dependencies:
"@babel/compat-data" "^7.16.0" "@babel/compat-data" "^7.16.4"
"@babel/helper-compilation-targets" "^7.16.0" "@babel/helper-compilation-targets" "^7.16.3"
"@babel/helper-plugin-utils" "^7.14.5" "@babel/helper-plugin-utils" "^7.14.5"
"@babel/helper-validator-option" "^7.14.5" "@babel/helper-validator-option" "^7.14.5"
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.16.0" "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.16.2"
"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.16.0" "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.16.0"
"@babel/plugin-proposal-async-generator-functions" "^7.16.0" "@babel/plugin-proposal-async-generator-functions" "^7.16.4"
"@babel/plugin-proposal-class-properties" "^7.16.0" "@babel/plugin-proposal-class-properties" "^7.16.0"
"@babel/plugin-proposal-class-static-block" "^7.16.0" "@babel/plugin-proposal-class-static-block" "^7.16.0"
"@babel/plugin-proposal-dynamic-import" "^7.16.0" "@babel/plugin-proposal-dynamic-import" "^7.16.0"
@ -842,7 +842,7 @@
"@babel/plugin-transform-named-capturing-groups-regex" "^7.16.0" "@babel/plugin-transform-named-capturing-groups-regex" "^7.16.0"
"@babel/plugin-transform-new-target" "^7.16.0" "@babel/plugin-transform-new-target" "^7.16.0"
"@babel/plugin-transform-object-super" "^7.16.0" "@babel/plugin-transform-object-super" "^7.16.0"
"@babel/plugin-transform-parameters" "^7.16.0" "@babel/plugin-transform-parameters" "^7.16.3"
"@babel/plugin-transform-property-literals" "^7.16.0" "@babel/plugin-transform-property-literals" "^7.16.0"
"@babel/plugin-transform-regenerator" "^7.16.0" "@babel/plugin-transform-regenerator" "^7.16.0"
"@babel/plugin-transform-reserved-words" "^7.16.0" "@babel/plugin-transform-reserved-words" "^7.16.0"
@ -855,10 +855,10 @@
"@babel/plugin-transform-unicode-regex" "^7.16.0" "@babel/plugin-transform-unicode-regex" "^7.16.0"
"@babel/preset-modules" "^0.1.5" "@babel/preset-modules" "^0.1.5"
"@babel/types" "^7.16.0" "@babel/types" "^7.16.0"
babel-plugin-polyfill-corejs2 "^0.2.3" babel-plugin-polyfill-corejs2 "^0.3.0"
babel-plugin-polyfill-corejs3 "^0.3.0" babel-plugin-polyfill-corejs3 "^0.4.0"
babel-plugin-polyfill-regenerator "^0.2.3" babel-plugin-polyfill-regenerator "^0.3.0"
core-js-compat "^3.19.0" core-js-compat "^3.19.1"
semver "^6.3.0" semver "^6.3.0"
"@babel/preset-modules@^0.1.5": "@babel/preset-modules@^0.1.5":
@ -966,14 +966,14 @@
integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==
"@soda/friendly-errors-webpack-plugin@^1.7.1": "@soda/friendly-errors-webpack-plugin@^1.7.1":
version "1.8.0" version "1.8.1"
resolved "https://registry.npmjs.org/@soda/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.8.0.tgz" resolved "https://registry.npmjs.org/@soda/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.8.1.tgz"
integrity sha512-RLotfx6k1+nfLacwNCenj7VnTMPxVwYKoGOcffMFoJDKM8tXzBiCN0hMHFJNnoAojduYAsxuiMm0EOMixgiRow== integrity sha512-h2ooWqP8XuFqTXT+NyAFbrArzfQA7R6HTezADrvD9Re8fxMLTPPniLdqVTdDaO0eIoLaAwKT+d6w+5GeTk7Vbg==
dependencies: dependencies:
chalk "^2.4.2" chalk "^3.0.0"
error-stack-parser "^2.0.2" error-stack-parser "^2.0.6"
string-width "^2.0.0" string-width "^4.2.3"
strip-ansi "^5" strip-ansi "^6.0.1"
"@soda/get-current-script@^1.0.0": "@soda/get-current-script@^1.0.0":
version "1.0.2" version "1.0.2"
@ -981,9 +981,9 @@
integrity sha512-T7VNNlYVM1SgQ+VsMYhnDkcGmWhQdL0bDyGm5TlQ3GBXnJscEClUUOKduWTmm2zCnvNLC1hc3JpuXjs/nFOc5w== integrity sha512-T7VNNlYVM1SgQ+VsMYhnDkcGmWhQdL0bDyGm5TlQ3GBXnJscEClUUOKduWTmm2zCnvNLC1hc3JpuXjs/nFOc5w==
"@types/body-parser@*": "@types/body-parser@*":
version "1.19.1" version "1.19.2"
resolved "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.1.tgz" resolved "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz"
integrity sha512-a6bTJ21vFOGIkwM0kzh9Yr89ziVxq4vYH2fQ6N8AeipEzai/cFK6aGMArIkUeIdRIgpwQa+2bXiLuUJCpSf2Cg== integrity sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==
dependencies: dependencies:
"@types/connect" "*" "@types/connect" "*"
"@types/node" "*" "@types/node" "*"
@ -1058,9 +1058,9 @@
integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==
"@types/node@*": "@types/node@*":
version "16.11.7" version "16.11.9"
resolved "https://registry.npmjs.org/@types/node/-/node-16.11.7.tgz" resolved "https://registry.npmjs.org/@types/node/-/node-16.11.9.tgz"
integrity sha512-QB5D2sqfSjCmTuWcBWyJ+/44bcjO7VbjSbOE0ucoVbAsSNQc4Lt6QkgkVXkTDwkL4z/beecZNDvVX15D4P8Jbw== integrity sha512-MKmdASMf3LtPzwLyRrFjtFFZ48cMf8jmX5VRYrDQiJa8Ybu5VAmkqBWqKU8fdCwD8ysw4mQ9nrEHvzg6gunR7A==
"@types/normalize-package-data@^2.4.0": "@types/normalize-package-data@^2.4.0":
version "2.4.1" version "2.4.1"
@ -1128,9 +1128,9 @@
source-map "^0.7.3" source-map "^0.7.3"
"@types/webpack@^4", "@types/webpack@^4.0.0": "@types/webpack@^4", "@types/webpack@^4.0.0":
version "4.41.31" version "4.41.32"
resolved "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.31.tgz" resolved "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.32.tgz"
integrity sha512-/i0J7sepXFIp1ZT7FjUGi1eXMCg8HCCzLJEQkKsOtbJFontsJLolBcDC+3qxn5pPwiCt1G0ZdRmYRzNBtvpuGQ== integrity sha512-cb+0ioil/7oz5//7tZUSwbrSAN/NWHrQylz5cW8G0dWTcF/g+/dSdMlKVZspBYuMAN1+WnwHrkxiRrLcwd0Heg==
dependencies: dependencies:
"@types/node" "*" "@types/node" "*"
"@types/tapable" "^1" "@types/tapable" "^1"
@ -1279,14 +1279,14 @@
thread-loader "^2.1.3" thread-loader "^2.1.3"
webpack "^4.0.0" webpack "^4.0.0"
"@vue/cli-plugin-router@^4.5.15", "@vue/cli-plugin-router@~4.5.0": "@vue/cli-plugin-router@^4.5.15":
version "4.5.15" version "4.5.15"
resolved "https://registry.npmjs.org/@vue/cli-plugin-router/-/cli-plugin-router-4.5.15.tgz" resolved "https://registry.npmjs.org/@vue/cli-plugin-router/-/cli-plugin-router-4.5.15.tgz"
integrity sha512-q7Y6kP9b3k55Ca2j59xJ7XPA6x+iSRB+N4ac0ZbcL1TbInVQ4j5wCzyE+uqid40hLy4fUdlpl4X9fHJEwuVxPA== integrity sha512-q7Y6kP9b3k55Ca2j59xJ7XPA6x+iSRB+N4ac0ZbcL1TbInVQ4j5wCzyE+uqid40hLy4fUdlpl4X9fHJEwuVxPA==
dependencies: dependencies:
"@vue/cli-shared-utils" "^4.5.15" "@vue/cli-shared-utils" "^4.5.15"
"@vue/cli-plugin-vuex@^4.5.15", "@vue/cli-plugin-vuex@~4.5.0": "@vue/cli-plugin-vuex@^4.5.15":
version "4.5.15" version "4.5.15"
resolved "https://registry.npmjs.org/@vue/cli-plugin-vuex/-/cli-plugin-vuex-4.5.15.tgz" resolved "https://registry.npmjs.org/@vue/cli-plugin-vuex/-/cli-plugin-vuex-4.5.15.tgz"
integrity sha512-fqap+4HN+w+InDxlA3hZTOGE0tzBTgXhKLoDydhywqgmhQ1D9JA6Feh94ze6tG8DsWX58/ujYUqA8jAz17FJtg== integrity sha512-fqap+4HN+w+InDxlA3hZTOGE0tzBTgXhKLoDydhywqgmhQ1D9JA6Feh94ze6tG8DsWX58/ujYUqA8jAz17FJtg==
@ -1621,11 +1621,6 @@ ansi-regex@^2.0.0:
resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz" resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz"
integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8=
ansi-regex@^3.0.0:
version "3.0.0"
resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz"
integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=
ansi-regex@^4.1.0: ansi-regex@^4.1.0:
version "4.1.0" version "4.1.0"
resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz" resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz"
@ -1839,29 +1834,29 @@ babel-plugin-dynamic-import-node@^2.3.3:
dependencies: dependencies:
object.assign "^4.1.0" object.assign "^4.1.0"
babel-plugin-polyfill-corejs2@^0.2.3: babel-plugin-polyfill-corejs2@^0.3.0:
version "0.2.3" version "0.3.0"
resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.3.tgz" resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.0.tgz"
integrity sha512-NDZ0auNRzmAfE1oDDPW2JhzIMXUk+FFe2ICejmt5T4ocKgiQx3e0VCRx9NCAidcMtL2RUZaWtXnmjTCkx0tcbA== integrity sha512-wMDoBJ6uG4u4PNFh72Ty6t3EgfA91puCuAwKIazbQlci+ENb/UU9A3xG5lutjUIiXCIn1CY5L15r9LimiJyrSA==
dependencies: dependencies:
"@babel/compat-data" "^7.13.11" "@babel/compat-data" "^7.13.11"
"@babel/helper-define-polyfill-provider" "^0.2.4" "@babel/helper-define-polyfill-provider" "^0.3.0"
semver "^6.1.1" semver "^6.1.1"
babel-plugin-polyfill-corejs3@^0.3.0: babel-plugin-polyfill-corejs3@^0.4.0:
version "0.3.0" version "0.4.0"
resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.3.0.tgz" resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.4.0.tgz"
integrity sha512-JLwi9vloVdXLjzACL80j24bG6/T1gYxwowG44dg6HN/7aTPdyPbJJidf6ajoA3RPHHtW0j9KMrSOLpIZpAnPpg== integrity sha512-YxFreYwUfglYKdLUGvIF2nJEsGwj+RhWSX/ije3D2vQPOXuyMLMtg/cCGMDpOA7Nd+MwlNdnGODbd2EwUZPlsw==
dependencies: dependencies:
"@babel/helper-define-polyfill-provider" "^0.2.4" "@babel/helper-define-polyfill-provider" "^0.3.0"
core-js-compat "^3.18.0" core-js-compat "^3.18.0"
babel-plugin-polyfill-regenerator@^0.2.3: babel-plugin-polyfill-regenerator@^0.3.0:
version "0.2.3" version "0.3.0"
resolved "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.3.tgz" resolved "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.0.tgz"
integrity sha512-JVE78oRZPKFIeUqFGrSORNzQnrDwZR16oiWeGM8ZyjBn2XAT5OjP+wXx5ESuo33nUsFUEJYjtklnsKbxW5L+7g== integrity sha512-dhAPTDLGoMW5/84wkgwiLRwMnio2i1fUe53EuvtKMv0pn2p3S8OCoV1xAzfJPl0KOX7IB89s2ib85vbYiea3jg==
dependencies: dependencies:
"@babel/helper-define-polyfill-provider" "^0.2.4" "@babel/helper-define-polyfill-provider" "^0.3.0"
balanced-match@^1.0.0: balanced-match@^1.0.0:
version "1.0.2" version "1.0.2"
@ -2081,9 +2076,9 @@ browserify-zlib@^0.2.0:
pako "~1.0.5" pako "~1.0.5"
browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.17.5, browserslist@^4.17.6: browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.17.5, browserslist@^4.17.6:
version "4.18.0" version "4.18.1"
resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.18.0.tgz" resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.18.1.tgz"
integrity sha512-ER2M0g5iAR84fS/zjBDqEgU6iO5fS9JI2EkHr5zxDxYEFk3LjhU9Vpp/INb6RMQphxko7PDV1FH38H/qVP5yCA== integrity sha512-8ScCzdpPwR2wQh8IT82CA2VgDwjHyqMovPBZSNH54+tm4Jk2pCuv90gmAdH6J84OCRWi0b4gMe6O6XPXuJnjgQ==
dependencies: dependencies:
caniuse-lite "^1.0.30001280" caniuse-lite "^1.0.30001280"
electron-to-chromium "^1.3.896" electron-to-chromium "^1.3.896"
@ -2212,7 +2207,7 @@ caller-path@^2.0.0:
callsite@^1.0.0: callsite@^1.0.0:
version "1.0.0" version "1.0.0"
resolved "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz" resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20"
integrity sha1-KAOY5dZkvXQDi28JBRU+borxvCA= integrity sha1-KAOY5dZkvXQDi28JBRU+borxvCA=
callsites@^2.0.0: callsites@^2.0.0:
@ -2234,9 +2229,9 @@ camelcase@^5.0.0, camelcase@^5.3.1:
integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
camelcase@^6.0.0: camelcase@^6.0.0:
version "6.2.0" version "6.2.1"
resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz" resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz"
integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== integrity sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==
caniuse-api@^3.0.0: caniuse-api@^3.0.0:
version "3.0.0" version "3.0.0"
@ -2249,9 +2244,9 @@ caniuse-api@^3.0.0:
lodash.uniq "^4.5.0" lodash.uniq "^4.5.0"
caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001280: caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001280:
version "1.0.30001280" version "1.0.30001282"
resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001280.tgz" resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001282.tgz"
integrity sha512-kFXwYvHe5rix25uwueBxC569o53J6TpnGu0BEEn+6Lhl2vsnAumRFWEBhDft1fwyo6m1r4i+RqA4+163FpeFcA== integrity sha512-YhF/hG6nqBEllymSIjLtR2iWDDnChvhnVJqp+vloyt2tEHFG1yBR+ac2B/rOw0qOK0m0lEXU2dv4E/sMk5P9Kg==
case-sensitive-paths-webpack-plugin@^2.3.0: case-sensitive-paths-webpack-plugin@^2.3.0:
version "2.4.0" version "2.4.0"
@ -2272,6 +2267,14 @@ chalk@^2.0.0, chalk@^2.0.1, chalk@^2.3.0, chalk@^2.4.1, chalk@^2.4.2:
escape-string-regexp "^1.0.5" escape-string-regexp "^1.0.5"
supports-color "^5.3.0" supports-color "^5.3.0"
chalk@^3.0.0:
version "3.0.0"
resolved "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz"
integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==
dependencies:
ansi-styles "^4.1.0"
supports-color "^7.1.0"
chalk@^4.0.0, chalk@^4.1.0: chalk@^4.0.0, chalk@^4.1.0:
version "4.1.2" version "4.1.2"
resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz"
@ -2450,12 +2453,12 @@ color-convert@^2.0.1:
dependencies: dependencies:
color-name "~1.1.4" color-name "~1.1.4"
color-name@1.1.3, color-name@^1.0.0: color-name@1.1.3:
version "1.1.3" version "1.1.3"
resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz"
integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
color-name@~1.1.4: color-name@^1.0.0, color-name@~1.1.4:
version "1.1.4" version "1.1.4"
resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz"
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
@ -2629,7 +2632,7 @@ copy-webpack-plugin@^5.1.1:
serialize-javascript "^4.0.0" serialize-javascript "^4.0.0"
webpack-log "^2.0.0" webpack-log "^2.0.0"
core-js-compat@^3.18.0, core-js-compat@^3.19.0, core-js-compat@^3.6.5: core-js-compat@^3.18.0, core-js-compat@^3.19.1, core-js-compat@^3.6.5:
version "3.19.1" version "3.19.1"
resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.19.1.tgz" resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.19.1.tgz"
integrity sha512-Q/VJ7jAF/y68+aUsQJ/afPOewdsGkDtcMb40J8MbuWKlK3Y+wtHq8bTHKPj2WKWLIqmS5JhHs4CzHtz6pT2W6g== integrity sha512-Q/VJ7jAF/y68+aUsQJ/afPOewdsGkDtcMb40J8MbuWKlK3Y+wtHq8bTHKPj2WKWLIqmS5JhHs4CzHtz6pT2W6g==
@ -2934,7 +2937,7 @@ debug@^4.1.0, debug@^4.1.1:
decache@^4.6.0: decache@^4.6.0:
version "4.6.0" version "4.6.0"
resolved "https://registry.npmjs.org/decache/-/decache-4.6.0.tgz" resolved "https://registry.yarnpkg.com/decache/-/decache-4.6.0.tgz#87026bc6e696759e82d57a3841c4e251a30356e8"
integrity sha512-PppOuLiz+DFeaUvFXEYZjLxAkKiMYH/do/b/MxpDe/8AgKBi5GhZxridoVIbBq72GDbL36e4p0Ce2jTGUwwU+w== integrity sha512-PppOuLiz+DFeaUvFXEYZjLxAkKiMYH/do/b/MxpDe/8AgKBi5GhZxridoVIbBq72GDbL36e4p0Ce2jTGUwwU+w==
dependencies: dependencies:
callsite "^1.0.0" callsite "^1.0.0"
@ -3213,9 +3216,9 @@ ejs@^2.6.1:
integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA== integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==
electron-to-chromium@^1.3.896: electron-to-chromium@^1.3.896:
version "1.3.896" version "1.3.904"
resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.896.tgz" resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.904.tgz"
integrity sha512-NcGkBVXePiuUrPLV8IxP43n1EOtdg+dudVjrfVEUd/bOqpQUFZ2diL5PPYzbgEhZFEltdXV3AcyKwGnEQ5lhMA== integrity sha512-x5uZWXcVNYkTh4JubD7KSC1VMKz0vZwJUqVwY3ihsW0bst1BXDe494Uqbg3Y0fDGVjJqA8vEeGuvO5foyH2+qw==
elliptic@^6.5.3: elliptic@^6.5.3:
version "6.5.4" version "6.5.4"
@ -3290,14 +3293,14 @@ error-ex@^1.3.1:
dependencies: dependencies:
is-arrayish "^0.2.1" is-arrayish "^0.2.1"
error-stack-parser@^2.0.2: error-stack-parser@^2.0.6:
version "2.0.6" version "2.0.6"
resolved "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.6.tgz" resolved "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.6.tgz"
integrity sha512-d51brTeqC+BHlwF0BhPtcYgF5nlzf9ZZ0ZIUQNZpc9ZB9qw5IJ2diTrBY9jlCJkTLITYPjmiX6OWCwH+fuyNgQ== integrity sha512-d51brTeqC+BHlwF0BhPtcYgF5nlzf9ZZ0ZIUQNZpc9ZB9qw5IJ2diTrBY9jlCJkTLITYPjmiX6OWCwH+fuyNgQ==
dependencies: dependencies:
stackframe "^1.1.1" stackframe "^1.1.1"
es-abstract@^1.19.1: es-abstract@^1.17.2, es-abstract@^1.19.1:
version "1.19.1" version "1.19.1"
resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz" resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz"
integrity sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w== integrity sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==
@ -3529,11 +3532,16 @@ extglob@^2.0.4:
snapdragon "^0.8.1" snapdragon "^0.8.1"
to-regex "^3.0.1" to-regex "^3.0.1"
extsprintf@1.3.0, extsprintf@^1.2.0: extsprintf@1.3.0:
version "1.3.0" version "1.3.0"
resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz" resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz"
integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=
extsprintf@^1.2.0:
version "1.4.1"
resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz"
integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==
fast-deep-equal@^3.1.1: fast-deep-equal@^3.1.1:
version "3.1.3" version "3.1.3"
resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz"
@ -3578,7 +3586,7 @@ file-loader@^4.2.0:
file-loader@^6.2.0: file-loader@^6.2.0:
version "6.2.0" version "6.2.0"
resolved "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz" resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.2.0.tgz#baef7cf8e1840df325e4390b4484879480eebe4d"
integrity sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw== integrity sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==
dependencies: dependencies:
loader-utils "^2.0.0" loader-utils "^2.0.0"
@ -3586,7 +3594,7 @@ file-loader@^6.2.0:
file-uri-to-path@1.0.0: file-uri-to-path@1.0.0:
version "1.0.0" version "1.0.0"
resolved "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz" resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd"
integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==
filesize@^3.6.1: filesize@^3.6.1:
@ -4116,7 +4124,7 @@ http-deceiver@^1.2.7:
resolved "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz" resolved "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz"
integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=
http-errors@1.7.2, http-errors@~1.7.2: http-errors@1.7.2:
version "1.7.2" version "1.7.2"
resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz" resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz"
integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==
@ -4137,6 +4145,17 @@ http-errors@~1.6.2:
setprototypeof "1.1.0" setprototypeof "1.1.0"
statuses ">= 1.4.0 < 2" statuses ">= 1.4.0 < 2"
http-errors@~1.7.2:
version "1.7.3"
resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz"
integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==
dependencies:
depd "~1.1.2"
inherits "2.0.4"
setprototypeof "1.1.1"
statuses ">= 1.5.0 < 2"
toidentifier "1.0.0"
http-parser-js@>=0.5.1: http-parser-js@>=0.5.1:
version "0.5.3" version "0.5.3"
resolved "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.3.tgz" resolved "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.3.tgz"
@ -4278,7 +4297,7 @@ inflight@^1.0.4:
once "^1.3.0" once "^1.3.0"
wrappy "1" wrappy "1"
inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3:
version "2.0.4" version "2.0.4"
resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz"
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
@ -4312,7 +4331,7 @@ internal-slot@^1.0.3:
interpret@^1.0.0: interpret@^1.0.0:
version "1.4.0" version "1.4.0"
resolved "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz" resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e"
integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==
ip-regex@^2.1.0: ip-regex@^2.1.0:
@ -4794,6 +4813,11 @@ jsprim@^1.2.2:
json-schema "0.2.3" json-schema "0.2.3"
verror "1.10.0" verror "1.10.0"
jwt-decode@^3.1.2:
version "3.1.2"
resolved "https://registry.npmjs.org/jwt-decode/-/jwt-decode-3.1.2.tgz"
integrity sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A==
killable@^1.0.1: killable@^1.0.1:
version "1.0.1" version "1.0.1"
resolved "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz" resolved "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz"
@ -4944,9 +4968,9 @@ log-symbols@^2.2.0:
chalk "^2.0.1" chalk "^2.0.1"
loglevel@^1.6.8: loglevel@^1.6.8:
version "1.7.1" version "1.8.0"
resolved "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz" resolved "https://registry.npmjs.org/loglevel/-/loglevel-1.8.0.tgz"
integrity sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw== integrity sha512-G6A/nJLRgWOuuwdNuA6koovfEV1YpqqAG4pRUlFaz3jj2QNZ8M4vBqnVA+HBTmU/AMNUtlOsMmSpF6NyOjztbA==
lower-case@^1.1.1: lower-case@^1.1.1:
version "1.1.4" version "1.1.4"
@ -5002,6 +5026,11 @@ map-visit@^1.0.0:
dependencies: dependencies:
object-visit "^1.0.0" object-visit "^1.0.0"
material-design-icons-iconfont@^6.1.1:
version "6.1.1"
resolved "https://registry.npmjs.org/material-design-icons-iconfont/-/material-design-icons-iconfont-6.1.1.tgz"
integrity sha512-nkoXybeXoofanNagj4tbM6+/LALWpWxYX5ee861to5VQrKgb0/TskTw28Svwn0OGDKajuqK7ShFOsIBxIygGKA==
md5.js@^1.3.4: md5.js@^1.3.4:
version "1.3.5" version "1.3.5"
resolved "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz" resolved "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz"
@ -5228,11 +5257,16 @@ ms@2.1.1:
resolved "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz" resolved "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz"
integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==
ms@2.1.2, ms@^2.1.1: ms@2.1.2:
version "2.1.2" version "2.1.2"
resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz"
integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
ms@^2.1.1:
version "2.1.3"
resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz"
integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
multicast-dns-service-types@^1.1.0: multicast-dns-service-types@^1.1.0:
version "1.1.0" version "1.1.0"
resolved "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz" resolved "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz"
@ -5419,7 +5453,7 @@ nth-check@^2.0.0:
null-loader@^4.0.1: null-loader@^4.0.1:
version "4.0.1" version "4.0.1"
resolved "https://registry.npmjs.org/null-loader/-/null-loader-4.0.1.tgz" resolved "https://registry.yarnpkg.com/null-loader/-/null-loader-4.0.1.tgz#8e63bd3a2dd3c64236a4679428632edd0a6dbc6a"
integrity sha512-pxqVbi4U6N26lq+LmgIbB5XATP0VdZKOG25DhHi8btMmJJefGArFyDg1yc4U3hWCJbMqSrw0qyrz1UQX+qYXqg== integrity sha512-pxqVbi4U6N26lq+LmgIbB5XATP0VdZKOG25DhHi8btMmJJefGArFyDg1yc4U3hWCJbMqSrw0qyrz1UQX+qYXqg==
dependencies: dependencies:
loader-utils "^2.0.0" loader-utils "^2.0.0"
@ -5484,7 +5518,7 @@ object.assign@^4.1.0, object.assign@^4.1.2:
has-symbols "^1.0.1" has-symbols "^1.0.1"
object-keys "^1.1.1" object-keys "^1.1.1"
object.getownpropertydescriptors@^2.0.3: object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0:
version "2.1.3" version "2.1.3"
resolved "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz" resolved "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz"
integrity sha512-VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw== integrity sha512-VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw==
@ -6423,7 +6457,7 @@ readdirp@~3.6.0:
rechoir@^0.6.2: rechoir@^0.6.2:
version "0.6.2" version "0.6.2"
resolved "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz" resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384"
integrity sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q= integrity sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=
dependencies: dependencies:
resolve "^1.1.6" resolve "^1.1.6"
@ -6639,12 +6673,12 @@ run-queue@^1.0.0, run-queue@^1.0.3:
dependencies: dependencies:
aproba "^1.1.1" aproba "^1.1.1"
safe-buffer@5.1.2, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
version "5.1.2" version "5.1.2"
resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz"
integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
safe-buffer@^5.2.0: safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0:
version "5.2.1" version "5.2.1"
resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz"
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
@ -6661,7 +6695,7 @@ safe-regex@^1.1.0:
resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz"
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
sass-loader@^10.0.0: sass-loader@^10.2.0:
version "10.2.0" version "10.2.0"
resolved "https://registry.npmjs.org/sass-loader/-/sass-loader-10.2.0.tgz" resolved "https://registry.npmjs.org/sass-loader/-/sass-loader-10.2.0.tgz"
integrity sha512-kUceLzC1gIHz0zNJPpqRsJyisWatGYNFRmv2CKZK2/ngMJgLqxTbXwe/hJ85luyvZkgqU3VlJ33UVF2T/0g6mw== integrity sha512-kUceLzC1gIHz0zNJPpqRsJyisWatGYNFRmv2CKZK2/ngMJgLqxTbXwe/hJ85luyvZkgqU3VlJ33UVF2T/0g6mw==
@ -6672,10 +6706,10 @@ sass-loader@^10.0.0:
schema-utils "^3.0.0" schema-utils "^3.0.0"
semver "^7.3.2" semver "^7.3.2"
sass@~1.32.0: sass@^1.43.4:
version "1.32.13" version "1.43.4"
resolved "https://registry.npmjs.org/sass/-/sass-1.32.13.tgz" resolved "https://registry.npmjs.org/sass/-/sass-1.43.4.tgz"
integrity sha512-dEgI9nShraqP7cXQH+lEXVf73WOPCse0QlFzSD8k+1TcOxCMwVXfQlr0jtoluZysQOyJGnfr21dLvYKDJq8HkA== integrity sha512-/ptG7KE9lxpGSYiXn7Ar+lKOv37xfWsZRtFYal2QHNigyVQDx685VFT/h7ejVr+R8w7H4tmUgtulsKl5YpveOg==
dependencies: dependencies:
chokidar ">=3.0.0 <4.0.0" chokidar ">=3.0.0 <4.0.0"
@ -6863,7 +6897,7 @@ shell-quote@^1.6.1:
shelljs@^0.8.3: shelljs@^0.8.3:
version "0.8.4" version "0.8.4"
resolved "https://registry.npmjs.org/shelljs/-/shelljs-0.8.4.tgz" resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.4.tgz#de7684feeb767f8716b326078a8a00875890e3c2"
integrity sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ== integrity sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==
dependencies: dependencies:
glob "^7.0.0" glob "^7.0.0"
@ -6880,9 +6914,9 @@ side-channel@^1.0.4:
object-inspect "^1.9.0" object-inspect "^1.9.0"
signal-exit@^3.0.0, signal-exit@^3.0.2: signal-exit@^3.0.0, signal-exit@^3.0.2:
version "3.0.5" version "3.0.6"
resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.5.tgz" resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz"
integrity sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ== integrity sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==
simple-swizzle@^0.2.2: simple-swizzle@^0.2.2:
version "0.2.2" version "0.2.2"
@ -6976,9 +7010,9 @@ source-map-resolve@^0.5.0:
urix "^0.1.0" urix "^0.1.0"
source-map-support@~0.5.12: source-map-support@~0.5.12:
version "0.5.20" version "0.5.21"
resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.20.tgz" resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz"
integrity sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw== integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==
dependencies: dependencies:
buffer-from "^1.0.0" buffer-from "^1.0.0"
source-map "^0.6.0" source-map "^0.6.0"
@ -7153,14 +7187,6 @@ strict-uri-encode@^1.0.0:
resolved "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz" resolved "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz"
integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=
string-width@^2.0.0:
version "2.1.1"
resolved "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz"
integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==
dependencies:
is-fullwidth-code-point "^2.0.0"
strip-ansi "^4.0.0"
string-width@^3.0.0, string-width@^3.1.0: string-width@^3.0.0, string-width@^3.1.0:
version "3.1.0" version "3.1.0"
resolved "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz" resolved "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz"
@ -7170,7 +7196,7 @@ string-width@^3.0.0, string-width@^3.1.0:
is-fullwidth-code-point "^2.0.0" is-fullwidth-code-point "^2.0.0"
strip-ansi "^5.1.0" strip-ansi "^5.1.0"
string-width@^4.1.0, string-width@^4.2.0: string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
version "4.2.3" version "4.2.3"
resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz"
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
@ -7195,7 +7221,14 @@ string.prototype.trimstart@^1.0.4:
call-bind "^1.0.2" call-bind "^1.0.2"
define-properties "^1.1.3" define-properties "^1.1.3"
string_decoder@^1.0.0, string_decoder@^1.1.1, string_decoder@~1.1.1: string_decoder@^1.0.0, string_decoder@^1.1.1:
version "1.3.0"
resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz"
integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
dependencies:
safe-buffer "~5.2.0"
string_decoder@~1.1.1:
version "1.1.1" version "1.1.1"
resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz"
integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
@ -7209,14 +7242,7 @@ strip-ansi@^3.0.1:
dependencies: dependencies:
ansi-regex "^2.0.0" ansi-regex "^2.0.0"
strip-ansi@^4.0.0: strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0:
version "4.0.0"
resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz"
integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8=
dependencies:
ansi-regex "^3.0.0"
strip-ansi@^5, strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0:
version "5.2.0" version "5.2.0"
resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz" resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz"
integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==
@ -7631,7 +7657,7 @@ util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1:
resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"
integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
util.promisify@1.0.0, util.promisify@~1.0.0: util.promisify@1.0.0:
version "1.0.0" version "1.0.0"
resolved "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz" resolved "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz"
integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA== integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==
@ -7639,6 +7665,16 @@ util.promisify@1.0.0, util.promisify@~1.0.0:
define-properties "^1.1.2" define-properties "^1.1.2"
object.getownpropertydescriptors "^2.0.3" object.getownpropertydescriptors "^2.0.3"
util.promisify@~1.0.0:
version "1.0.1"
resolved "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz"
integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==
dependencies:
define-properties "^1.1.3"
es-abstract "^1.17.2"
has-symbols "^1.0.1"
object.getownpropertydescriptors "^2.1.0"
util@0.10.3: util@0.10.3:
version "0.10.3" version "0.10.3"
resolved "https://registry.npmjs.org/util/-/util-0.10.3.tgz" resolved "https://registry.npmjs.org/util/-/util-0.10.3.tgz"
@ -7681,11 +7717,6 @@ vary@~1.1.2:
resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz"
integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=
vee-validate@^3.4.14:
version "3.4.14"
resolved "https://registry.npmjs.org/vee-validate/-/vee-validate-3.4.14.tgz"
integrity sha512-Hqqic8G9WcRSIzCxiCPqMZv4qB8JE1lIQqIOLDm2K5BXUiL8d4a2+kqkanv8gQSGDzYpnCQZ7BO/T99Aj05T1Q==
vendors@^1.0.0: vendors@^1.0.0:
version "1.0.4" version "1.0.4"
resolved "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz" resolved "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz"
@ -7712,13 +7743,18 @@ vue-cli-plugin-axios@~0.0.4:
vue-cli-plugin-vuetify@~2.4.3: vue-cli-plugin-vuetify@~2.4.3:
version "2.4.3" version "2.4.3"
resolved "https://registry.npmjs.org/vue-cli-plugin-vuetify/-/vue-cli-plugin-vuetify-2.4.3.tgz" resolved "https://registry.yarnpkg.com/vue-cli-plugin-vuetify/-/vue-cli-plugin-vuetify-2.4.3.tgz#68a893642b354ed8d534e4a9bc63d0728a8987ac"
integrity sha512-dT9KpH1rXT6UWzBDFLMB69sgrNCoWFcxWiIyDDZ4vikv85JDweMHh2dT5n6QaAt7qsGlvL4IMOopjcyUTiPW9g== integrity sha512-dT9KpH1rXT6UWzBDFLMB69sgrNCoWFcxWiIyDDZ4vikv85JDweMHh2dT5n6QaAt7qsGlvL4IMOopjcyUTiPW9g==
dependencies: dependencies:
null-loader "^4.0.1" null-loader "^4.0.1"
semver "^7.1.2" semver "^7.1.2"
shelljs "^0.8.3" shelljs "^0.8.3"
vue-cookies@^1.7.4:
version "1.7.4"
resolved "https://registry.npmjs.org/vue-cookies/-/vue-cookies-1.7.4.tgz"
integrity sha512-mOS5Btr8V9zvAtkmQ7/TfqJIropOx7etDAgBywPCmHjvfJl2gFbH2XgoMghleLoyyMTi5eaJss0mPN7arMoslA==
vue-hot-reload-api@^2.3.0: vue-hot-reload-api@^2.3.0:
version "2.3.4" version "2.3.4"
resolved "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz" resolved "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz"
@ -7744,7 +7780,7 @@ vue-loader@^15.9.2:
vue-hot-reload-api "^2.3.0" vue-hot-reload-api "^2.3.0"
vue-style-loader "^4.1.0" vue-style-loader "^4.1.0"
vue-router@^3.2.0: vue-router@^3.5.3:
version "3.5.3" version "3.5.3"
resolved "https://registry.npmjs.org/vue-router/-/vue-router-3.5.3.tgz" resolved "https://registry.npmjs.org/vue-router/-/vue-router-3.5.3.tgz"
integrity sha512-FUlILrW3DGitS2h+Xaw8aRNvGTwtuaxrRkNSHWTizOfLUie7wuYwezeZ50iflRn8YPV5kxmU2LQuu3nM/b3Zsg== integrity sha512-FUlILrW3DGitS2h+Xaw8aRNvGTwtuaxrRkNSHWTizOfLUie7wuYwezeZ50iflRn8YPV5kxmU2LQuu3nM/b3Zsg==
@ -7777,19 +7813,19 @@ vue@^2.6.11:
vuetify-loader@^1.7.0: vuetify-loader@^1.7.0:
version "1.7.3" version "1.7.3"
resolved "https://registry.npmjs.org/vuetify-loader/-/vuetify-loader-1.7.3.tgz" resolved "https://registry.yarnpkg.com/vuetify-loader/-/vuetify-loader-1.7.3.tgz#404657f4925c828f400fe3269003421d586835c6"
integrity sha512-1Kt6Rfvuw3i9BBlxC9WTMnU3WEU7IBWQmDX+fYGAVGpzWCX7oHythUIwPCZGShHSYcPMKSDbXTPP8UvT5RNw8Q== integrity sha512-1Kt6Rfvuw3i9BBlxC9WTMnU3WEU7IBWQmDX+fYGAVGpzWCX7oHythUIwPCZGShHSYcPMKSDbXTPP8UvT5RNw8Q==
dependencies: dependencies:
decache "^4.6.0" decache "^4.6.0"
file-loader "^6.2.0" file-loader "^6.2.0"
loader-utils "^2.0.0" loader-utils "^2.0.0"
vuetify@^2.5.14: vuetify@^2.6.0:
version "2.5.14" version "2.6.0"
resolved "https://registry.npmjs.org/vuetify/-/vuetify-2.5.14.tgz" resolved "https://registry.npmjs.org/vuetify/-/vuetify-2.6.0.tgz"
integrity sha512-3efk3WnOvh+r9muZ4Ie0FVfFVmPS/ag+l/20qGA45lXZAJuyLeYxJ5gXs5xnCpml1g8xmJfDQPvi8xC6DDuCdg== integrity sha512-a3gClGGY8FYIHvHtqDDmVnmTg8D5pPPcs3HYqdrmJ7b3RrF+bWlpqpAhUPVvD9ByYYWVKba4viAlhOc74meGsg==
vuex@^3.4.0: vuex@^3.6.2:
version "3.6.2" version "3.6.2"
resolved "https://registry.npmjs.org/vuex/-/vuex-3.6.2.tgz" resolved "https://registry.npmjs.org/vuex/-/vuex-3.6.2.tgz"
integrity sha512-ETW44IqCgBpVomy520DT5jf8n0zoCac+sxWnn+hMe/CzaSejb/eVw2YToiXYX+Ex/AuHHia28vWTq4goAexFbw== integrity sha512-ETW44IqCgBpVomy520DT5jf8n0zoCac+sxWnn+hMe/CzaSejb/eVw2YToiXYX+Ex/AuHHia28vWTq4goAexFbw==

Loading…
Cancel
Save