Commit 360d6ee0 authored by esatakpunar's avatar esatakpunar

add products and customer table and delete properties

parent 549707d3
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
"lint": "vue-cli-service lint" "lint": "vue-cli-service lint"
}, },
"dependencies": { "dependencies": {
"axios": "^0.26.1", "axios": "^0.27.2",
"core-js": "^3.8.3", "core-js": "^3.8.3",
"vue": "^2.6.14", "vue": "^2.6.14",
"vue-router": "^3.5.1", "vue-router": "^3.5.1",
......
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width,initial-scale=1.0"> <meta name="viewport" content="width=device-width,initial-scale=1.0" />
<link rel="icon" href="<%= BASE_URL %>favicon.ico"> <link rel="icon" href="<%= BASE_URL %>favicon.ico" />
<title><%= htmlWebpackPlugin.options.title %></title> <title><%= htmlWebpackPlugin.options.title %></title>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900"> <link
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@mdi/font@latest/css/materialdesignicons.min.css"> rel="stylesheet"
href="https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900"
/>
<link
rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/@mdi/font@latest/css/materialdesignicons.min.css"
/>
<link
href="https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900|Material+Icons"
rel="stylesheet"
/>
</head> </head>
<body> <body>
<noscript> <noscript>
<strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong> <strong
>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work
properly without JavaScript enabled. Please enable it to
continue.</strong
>
</noscript> </noscript>
<div id="app"></div> <div id="app"></div>
<!-- built files will be auto injected --> <!-- built files will be auto injected -->
......
<script> <script>
export default { import Products from "../products";
name: 'App', import Customers from "../customers";
export default {
name: "App",
components: {
Products,
Customers,
},
data: () => ({ data: () => ({
activeLink: '/', activeLink: "/",
links: [ links: ["Profile"],
'Profile',
],
routes: [ routes: [
{ id: 1, name: 'products', link: '/products'}, { id: 1, name: "products", link: "/products" },
{ id: 2, name: 'customers', link: '/customers'}, { id: 2, name: "customers", link: "/customers" },
{ id: 3, name: 'users', link: '/users'}, { id: 3, name: "users", link: "/users" },
{ id: 4, name: 'vendors', link: '/vendors'}, { id: 4, name: "vendors", link: "/vendors" },
] ],
}), }),
created() { created() {
console.log(this); // console.log(this);
}, },
methods: { methods: {
pushRoute(route) { pushRoute(route) {
console.log('route ', route); // console.log("route ", route);
this.activeLink = route.link; this.activeLink = route.link;
this.$router.push(route.link); this.$router.push(route.link).catch(() => {});
}, },
}, },
} };
</script> </script>
<template> <template>
<v-app id="inspire"> <v-app id="inspire">
<v-app-bar <v-app-bar app color="white" flat>
app
color="white"
flat
>
<v-container class="py-0 fill-height"> <v-container class="py-0 fill-height">
<v-avatar <v-avatar class="mr-10" color="grey darken-1" size="32"></v-avatar>
class="mr-10"
color="grey darken-1"
size="32"
></v-avatar>
<h1>mini-reybe<span class="red--text text--lighten-2">x</span></h1> <h1>mini-reybe<span class="red--text text--lighten-2">x</span></h1>
<v-spacer></v-spacer> <v-spacer></v-spacer>
<v-responsive max-width="260"> <v-responsive max-width="260">
...@@ -55,7 +51,8 @@ ...@@ -55,7 +51,8 @@
</v-responsive> </v-responsive>
<v-btn <v-btn
class="ml-1 blue lighten-1 white--text text--capitalize" rounded class="ml-1 blue lighten-1 white--text text--capitalize"
rounded
v-for="link in links" v-for="link in links"
:key="link" :key="link"
text text
...@@ -85,14 +82,9 @@ ...@@ -85,14 +82,9 @@
<v-divider class="my-2"></v-divider> <v-divider class="my-2"></v-divider>
<v-list-item <v-list-item link color="grey lighten-4">
link
color="grey lighten-4"
>
<v-list-item-content> <v-list-item-content>
<v-list-item-title> <v-list-item-title> Refresh </v-list-item-title>
Refresh
</v-list-item-title>
</v-list-item-content> </v-list-item-content>
</v-list-item> </v-list-item>
</v-list> </v-list>
...@@ -100,20 +92,15 @@ ...@@ -100,20 +92,15 @@
</v-col> </v-col>
<v-col cols="10"> <v-col cols="10">
<v-sheet <v-sheet min-height="90vh" rounded="lg">
min-height="90vh"
rounded="lg"
>
<router-view></router-view> <router-view></router-view>
<!-- <template v-if="activeLink === '/products'"> <template v-if="activeLink === '/products'">
<Products /> <Products />
</template> </template>
<template v-if="activeLink === '/customers'"> <template v-if="activeLink === '/customers'">
<Customers />
</template> </template>
<template v-if="activeLink === '/users'"> <template v-if="activeLink === '/users'"> </template>
</template> -->
</v-sheet> </v-sheet>
</v-col> </v-col>
</v-row> </v-row>
......
<script>
import { mapActions, mapGetters } from "vuex";
export default {
name: "App",
data() {
return {
selected: [],
};
},
computed: {
...mapGetters("customers", [
"headers",
"customerList",
"dialog",
"editedItem",
"editedIndex",
]),
},
methods: {
...mapActions("customers", [
"fetchCustomerData",
"toggleSingleExpand",
"closeDialog",
"deleteCustomer",
"deleteMultiCustomer",
]),
},
created() {
this.fetchCustomerData();
},
};
</script>
<template>
<v-app>
<v-flex>
<v-data-table
width="100%"
v-model="selected"
:headers="headers"
:items="customerList"
show-select
class="evation-1"
>
<template v-slot:top>
<v-toolbar flat>
<v-toolbar-title>Customers</v-toolbar-title>
<v-divider class="mx-4" inset vertical></v-divider>
<v-btn
large
icon
color="red"
class="white--text ml-2"
@click="deleteMultiCustomer(selected)"
>
<v-icon>delete</v-icon>
</v-btn>
<v-spacer></v-spacer>
</v-toolbar>
</template>
<template v-slot:[`item.image`]="{ item }">
<img width="100" :src="`${item.image}`" />
</template>
<template v-slot:[`item.actions`]="{ item }">
<v-icon small class="mr-2" @click="editItem(item)">
mdi-pencil
</v-icon>
<v-icon small @click="deleteCustomer([item.id])"> mdi-delete </v-icon>
</template>
</v-data-table>
</v-flex>
</v-app>
</template>
<style>
</style>
\ No newline at end of file
import axios from "axios";
export default {
fetchCustomerData({ commit }) {
axios
.get("http://localhost:3000/customers")
.then((response) => {
commit("setCustomerList", response.data);
})
.catch((e) => {
console.log(e);
});
},
toggleSingleExpand({ commit }) {
commit("setSingleExpand");
},
closeDialog({ commit }) {
commit("setDialog", false);
},
deleteCustomer({ dispatch }, idList) {
confirm("Are you sure you want to delete this item?") &&
idList.forEach((id) => {
axios
.delete(`http://localhost:3000/customers/${id}`)
.then(() => {
dispatch("fetchCustomerData");
})
.catch((e) => {
console.log(e);
});
});
},
deleteMultiCustomer({ dispatch }, items) {
const itemList = [];
items.forEach((item) => {
itemList.push(item.id);
});
console.log(itemList);
dispatch("deleteCustomer", itemList);
},
};
export default {
headers() {
return [
{
text: "First Name",
align: "left",
value: "firstName",
type: "text",
},
{ text: "Last Name", value: "lastName", type: "text" },
{ text: "Email", value: "email", type: "text" },
{ text: "Country", value: "country", type: "text" },
{ text: "City", value: "city", type: "text" },
{ text: "Image", value: "image", type: "text" },
{ text: "Actions", value: "actions", sortable: false },
];
},
customerList(state) {
return state.customerList;
},
editedIndex(state) {
return state.editedIndex;
},
editedItem(state) {
return state.editedItem;
},
dialog(state) {
return state.dialog;
},
};
import state from "./state";
import getters from "./getters";
import mutations from "./mutations";
import actions from "./actions";
export default {
state,
getters,
mutations,
actions,
namespaced: true,
};
export default {
setCustomerList(state, data) {
state.customerList = data;
},
setSingleExpand(state) {
state.singleExpand = !state.singleExpand;
},
setDialog(state, value) {
state.dialog = value;
},
};
export default () => ({
customerList: [],
editedIndex: -1,
editedItem: {},
dialog: false,
});
<script>
import { mapActions, mapGetters } from "vuex";
export default {
name: "App",
data() {
return {
selected: [],
};
},
computed: {
...mapGetters("products", [
"headers",
"productList",
"singleExpand",
"expanded",
"dialog",
"editedItem",
"editedIndex",
]),
},
methods: {
...mapActions("products", [
"fetchProductData",
"toggleSingleExpand",
"closeDialog",
"deleteProduct",
"deleteMultiProduct",
"addProduct",
]),
},
created() {
this.fetchProductData();
},
};
</script>
<template>
<v-app>
<v-flex>
<v-data-table
width="100%"
v-model="selected"
:headers="headers"
:items="productList"
:single-expand="singleExpand"
:expanded.sync="expanded"
show-select
show-expand
class="evation-1"
>
<template v-slot:top>
<v-toolbar flat>
<v-toolbar-title>Products</v-toolbar-title>
<v-divider class="mx-4" inset vertical></v-divider>
<v-dialog v-model="dialog" max-width="750px">
<template v-slot:activator="{ on, attrs }">
<v-btn
large
icon
color="success"
class="ml-4"
v-bind="attrs"
v-on="on"
>
<v-icon>add</v-icon>
</v-btn>
</template>
<v-card>
<v-card-title>
<span class="text-h5">Add Product</span>
</v-card-title>
<v-card-text>
<v-container>
<v-row>
<template v-for="header in headers">
<v-flex
xs12
sm6
md4
pa-4
:key="header.value"
v-if="!(header.value === 'actions')"
>
<v-text-field
v-model="editedItem[header.value]"
:label="header.text"
></v-text-field>
</v-flex>
</template>
</v-row>
</v-container>
</v-card-text>
<v-card-actions>
<v-spacer></v-spacer>
<v-btn color="blue darken-1" text> Cancel </v-btn>
<v-btn color="blue darken-1" text @click="addProduct()">
Save
</v-btn>
</v-card-actions>
</v-card>
</v-dialog>
<!-- <v-btn large icon color="success" class="white--text ml-2">
<v-icon>add</v-icon>
</v-btn> -->
<v-btn
large
icon
color="red"
class="white--text ml-2"
@click="deleteMultiProduct(selected)"
>
<v-icon>delete</v-icon>
</v-btn>
<v-spacer></v-spacer>
<v-switch
v-model="singleExpand"
label="Single expand"
class="mt-2"
@change="toggleSingleExpand"
></v-switch>
</v-toolbar>
</template>
<template v-slot:[`item.image`]="{ item }">
<img width="100" :src="`${item.image}`" />
</template>
<template v-slot:[`item.actions`]="{ item }">
<v-icon small class="mr-2" @click="editItem(item)">
mdi-pencil
</v-icon>
<v-icon small @click="deleteProduct([item.id])"> mdi-delete </v-icon>
</template>
<template v-slot:expanded-item="{ headers, item }">
<td :colspan="headers.length">
{{ item.productDescription }}
</td>
</template>
</v-data-table>
</v-flex>
</v-app>
</template>
<style>
</style>
\ No newline at end of file
import axios from "axios";
export default {
fetchProductData({ commit }) {
axios
.get("http://localhost:3000/products")
.then((response) => {
commit("setProductList", response.data);
})
.catch((e) => {
console.log(e);
});
},
toggleSingleExpand({ commit }) {
commit("setSingleExpand");
},
closeDialog({ commit }) {
commit("setDialog", false);
},
deleteProduct({ dispatch }, idList) {
confirm("Are you sure you want to delete this item?") &&
idList.forEach((id) => {
axios
.delete(`http://localhost:3000/products/${id}`)
.then(() => {
dispatch("fetchProductData");
})
.catch((e) => {
console.log(e);
});
});
},
deleteMultiProduct({ dispatch }, items) {
const itemList = [];
items.forEach((item) => {
itemList.push(item.id);
});
console.log(itemList);
dispatch("deleteProduct", itemList);
},
addProduct({ getters, dispatch }) {
const config = {
method: "post",
url: `http://localhost:3000/products/`,
data: { products: getters.editedItem },
};
axios(config).then(() => {
console.log("TESET");
dispatch("fetchProductData");
});
dispatch("closeDialog");
},
};
export default {
headers() {
return [
{
text: "Product Name",
align: "left",
value: "productName",
type: "text",
},
{ text: "Type", value: "type", type: "text" },
{ text: "Product Material", value: "productMaterial", type: "text" },
{ text: "Department", value: "department", type: "text" },
{ text: "Color", value: "color", type: "text" },
{ text: "Price", value: "price", type: "text" },
{ text: "Image", value: "image", type: "text" },
{ text: "Actions", value: "actions", sortable: false },
];
},
productList(state) {
return state.productList;
},
singleExpand(state) {
return state.singleExpand;
},
expanded(state) {
return state.expanded;
},
editedIndex(state) {
return state.editedIndex;
},
editedItem(state) {
return state.editedItem;
},
dialog(state) {
return state.dialog;
},
};
import state from "./state";
import getters from "./getters";
import mutations from "./mutations";
import actions from "./actions";
export default {
state,
getters,
mutations,
actions,
namespaced: true,
};
export default {
setProductList(state, data) {
state.productList = data;
},
setSingleExpand(state) {
state.singleExpand = !state.singleExpand;
},
setDialog(state, value) {
state.dialog = value;
},
};
export default () => ({
productList: [],
expanded: [],
singleExpand: true,
editedIndex: -1,
editedItem: {},
dialog: false,
});
import Vue from 'vue' import Vue from "vue";
import Vuex from 'vuex' import Vuex from "vuex";
import products from "../modules/products/store";
import customers from "../modules/customers/store";
Vue.use(Vuex) Vue.use(Vuex);
export default new Vuex.Store({ export default new Vuex.Store({
state: { state: {},
}, getters: {},
getters: { mutations: {},
}, actions: {},
mutations: {
},
actions: {
},
modules: { modules: {
} products,
}) customers,
},
});
...@@ -1825,6 +1825,11 @@ async@^2.6.2: ...@@ -1825,6 +1825,11 @@ async@^2.6.2:
dependencies: dependencies:
lodash "^4.17.14" lodash "^4.17.14"
asynckit@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==
at-least-node@^1.0.0: at-least-node@^1.0.0:
version "1.0.0" version "1.0.0"
resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2"
...@@ -1842,12 +1847,13 @@ autoprefixer@^10.2.4: ...@@ -1842,12 +1847,13 @@ autoprefixer@^10.2.4:
picocolors "^1.0.0" picocolors "^1.0.0"
postcss-value-parser "^4.2.0" postcss-value-parser "^4.2.0"
axios@^0.26.1: axios@^0.27.2:
version "0.26.1" version "0.27.2"
resolved "https://registry.yarnpkg.com/axios/-/axios-0.26.1.tgz#1ede41c51fcf51bbbd6fd43669caaa4f0495aaa9" resolved "https://registry.yarnpkg.com/axios/-/axios-0.27.2.tgz#207658cc8621606e586c85db4b41a750e756d972"
integrity sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA== integrity sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==
dependencies: dependencies:
follow-redirects "^1.14.8" follow-redirects "^1.14.9"
form-data "^4.0.0"
babel-loader@^8.2.2: babel-loader@^8.2.2:
version "8.2.4" version "8.2.4"
...@@ -2224,6 +2230,13 @@ colorette@^2.0.10: ...@@ -2224,6 +2230,13 @@ colorette@^2.0.10:
resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.16.tgz#713b9af84fdb000139f04546bd4a93f62a5085da" resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.16.tgz#713b9af84fdb000139f04546bd4a93f62a5085da"
integrity sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g== integrity sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==
combined-stream@^1.0.8:
version "1.0.8"
resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
dependencies:
delayed-stream "~1.0.0"
commander@^2.20.0: commander@^2.20.0:
version "2.20.3" version "2.20.3"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
...@@ -2565,6 +2578,11 @@ define-properties@^1.1.3: ...@@ -2565,6 +2578,11 @@ define-properties@^1.1.3:
dependencies: dependencies:
object-keys "^1.0.12" object-keys "^1.0.12"
delayed-stream@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
depd@~1.1.2: depd@~1.1.2:
version "1.1.2" version "1.1.2"
resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
...@@ -3135,11 +3153,25 @@ flatted@^3.1.0: ...@@ -3135,11 +3153,25 @@ flatted@^3.1.0:
resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.5.tgz#76c8584f4fc843db64702a6bd04ab7a8bd666da3" resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.5.tgz#76c8584f4fc843db64702a6bd04ab7a8bd666da3"
integrity sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg== integrity sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==
follow-redirects@^1.0.0, follow-redirects@^1.14.8: follow-redirects@^1.0.0:
version "1.14.9" version "1.14.9"
resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.9.tgz#dd4ea157de7bfaf9ea9b3fbd85aa16951f78d8d7" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.9.tgz#dd4ea157de7bfaf9ea9b3fbd85aa16951f78d8d7"
integrity sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w== integrity sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==
follow-redirects@^1.14.9:
version "1.15.1"
resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.1.tgz#0ca6a452306c9b276e4d3127483e29575e207ad5"
integrity sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==
form-data@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452"
integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==
dependencies:
asynckit "^0.4.0"
combined-stream "^1.0.8"
mime-types "^2.1.12"
forwarded@0.2.0: forwarded@0.2.0:
version "0.2.0" version "0.2.0"
resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811"
...@@ -3977,7 +4009,7 @@ mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": ...@@ -3977,7 +4009,7 @@ mime-db@1.52.0, "mime-db@>= 1.43.0 < 2":
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.24, mime-types@~2.1.34: mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.24, mime-types@~2.1.34:
version "2.1.35" version "2.1.35"
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
......
{
"systemParams": "win32-x64-93",
"modulesFolders": [],
"flags": [],
"linkedModules": [],
"topLevelPatterns": [],
"lockfileEntries": {},
"files": [],
"artifacts": {}
}
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment