Commit 2ad87fb0 authored by Reza Sahebgharan's avatar Reza Sahebgharan

grid with scroll

parent 761f6ecc
...@@ -20,6 +20,9 @@ ...@@ -20,6 +20,9 @@
[ [
"@babel/plugin-proposal-object-rest-spread" "@babel/plugin-proposal-object-rest-spread"
], ],
[
"@babel/plugin-transform-spread"
],
[ [
"@babel/plugin-transform-runtime", "@babel/plugin-transform-runtime",
{ {
......
<template> <template>
<transition name="fade" mode="out-in">
<transition name="fade" mode="out-in"> <keep-alive>
<keep-alive> <router-view></router-view>
<router-view></router-view> </keep-alive>
</keep-alive> </transition>
</transition>
</template> </template>
<script> <script>
...@@ -54,9 +52,7 @@ export default { ...@@ -54,9 +52,7 @@ export default {
font-size: 0.5rem; font-size: 0.5rem;
} }
html { @import url(views/css/globalcss.css);
overflow-y: auto !important;
}
</style> </style>
<style scoped> <style scoped>
.fade-enter-active, .fade-enter-active,
......
<template> <template>
<v-container fluid> <v-container fluid>
<v-row justify="center" dense class="flex-wrap"> <div style="overflow-y:hidden" class="d-flex flex-column justify-space-around wholeLayout">
<v-col md="6" cols="12"> <div class="ma-1">
<v-card> <v-row justify="center" dense class="flex-wrap mb-6">
<v-card> <v-col md="7" lg="6" cols="12">
<v-card-actions> <v-card tile>
<v-combobox <v-card-actions>
v-model="model" <v-row style="margin:auto">
:items="items" <v-col cols="12" sm="8" class="d-flex justify-space-around align-baseline">
:search-input.sync="search" <v-combobox
hide-selected v-model="selectedDevice"
label="please select a machine" :items="deviceCodeItems"
persistent-hint :search-input.sync="deviceComboSearch"
small-chips hide-selected
clearable :label="$t('WorkList.deviceComboboxLabel')"
> persistent-hint
<template v-if="noData" v-slot:no-data> small-chips
<v-list-item> clearable
<v-list-item-content> dense
<v-list-item-title> class="ma-4"
No results matching " item-text="Text"
<strong>{{ search }}</strong>". Press item-value="Value"
<kbd>enter</kbd> to create a new one >
</v-list-item-title> <template v-if="noDataCombo" v-slot:no-data>
</v-list-item-content> <v-list-item>
</v-list-item> <v-list-item-content>
</template> <v-list-item-title>
</v-combobox> {{$t('WorkList.deviceComboboxNoDataMatch')}} "
<v-btn text color="deep-purple accent-4">Search</v-btn> <strong>{{ deviceComboSearch }}</strong>" یافت نشد
</v-card-actions> </v-list-item-title>
</v-card> </v-list-item-content>
<v-card-actions class="d-flex flex-wrap justify-center"> </v-list-item>
<v-btn-toggle v-model="toggle_exclusive" mandatory> </template>
<v-btn class="green"> </v-combobox>
<v-icon left v-if="toggle_exclusive==0">done</v-icon> <v-btn
<strong>All</strong> color="rgb(94, 181, 177,.85)"
</v-btn> class="white--text"
<v-btn class="green" style="margin-left:0px;margin-right:0px"> @click="searchPatients()"
<v-icon left v-if="toggle_exclusive==1">done</v-icon> :disabled="btnDisabled"
<strong>unknown</strong> >{{$t('WorkList.seachBtn')}}</v-btn>
</v-btn> </v-col>
</v-btn-toggle> <v-col cols="12" sm="4" class="d-flex justify-space-around align-center">
<v-btn color="success" text @click="toggleAllOrUnknown=0">
<v-icon left v-if="toggleAllOrUnknown==0">done</v-icon>
<strong>All</strong>
</v-btn>
<v-btn color="success" text @click="toggleAllOrUnknown=1">
<v-icon left v-if="toggleAllOrUnknown==1">done</v-icon>
<strong>Unknown</strong>
</v-btn>
</v-col>
</v-row>
</v-card-actions>
</v-card>
</v-col>
</v-row>
</div>
<div class="d-flex flex-grow-1 ma-1" style="overflow:auto;flex-basis:50%">
<div v-if="worklist && worklist.length > 0">
<v-data-table
ref="patientsDatatable"
v-model="selectedPatientInTable"
:headers="headerOfTable"
:items="patientsOfTable"
single-select
item-key="name"
class="elevation-1"
style="width:100%"
show-select
hide-default-footer
disable-pagination
:sort-by.sync="sortByTable"
:sort-desc.sync="sortDescTable"
>
<template v-slot:top>
<v-toolbar flat color="white">
<v-toolbar-title>{{devicemap==""?'no device':devicemap}}</v-toolbar-title>
<v-divider class="mx-4" inset vertical></v-divider>
</v-toolbar>
</template>
<template v-slot:item.action="{ item }">
<v-icon small>edit</v-icon>
</template>
</v-data-table>
</div>
<v-btn class="ma-3" rounded>
<strong>Export To Excel</strong>
</v-btn>
</v-card-actions>
</v-card>
</v-col>
</v-row>
<v-row justify="center" dense class="flex-wrap">
<v-col cols="12">
<v-data-table <v-data-table
v-model="selected" v-else
:headers="headers" ref="patientsDatatable"
:items="desserts" v-model="selectedPatientInTable"
:headers="headerOfTable"
:items="patientsOfTable"
single-select single-select
item-key="name" item-key="name"
class="elevation-1"
style="width:100%"
show-select show-select
hide-default-footer hide-default-footer
class="elevation-1"
disable-pagination disable-pagination
style="width:100%" :sort-by.sync="sortByTable"
></v-data-table> :sort-desc.sync="sortDescTable"
</v-col> >
</v-row> <template v-slot:top>
<v-toolbar flat color="white">
<v-toolbar-title>{{devicemap==""?'no device':devicemap}}</v-toolbar-title>
<v-divider class="mx-4" inset vertical></v-divider>
</v-toolbar>
</template>
<template v-slot:item.action="{ item }">
<v-icon small>edit</v-icon>
</template>
</v-data-table>
</div>
</div>
</v-container> </v-container>
</template> </template>
<script> <script>
import Worklist from "../../imports/api/collections/worklist.js"; import Worklist from "../../imports/api/collections/worklist.js";
import DeviceCode from "../../imports/api/collections/devicecode.js";
import { Tracker } from "meteor/tracker"; import { Tracker } from "meteor/tracker";
export default { export default {
data: () => ({ methods: {
devicemap: "ratio", searchPatients() {
items: ["Gaming", "Programming", "Vue", "Vuetify"], if (this.selectedDevice && this.devicemap != this.selectedDevice.Value) {
model: ["Vuetify"], Meteor.call("Fetchworklist", this.devicemap);
search: null, this.devicemap = this.selectedDevice.Value;
chips: true, }
multiple: true,
hideSelected: true, if (this.selectedDevice == undefined || this.selectedDevice == null) {
noData: true, alert("لطفا یک مقدار را انتخاب نمایید");
clearable: false,
toggle_exclusive: 0,
selected: [],
headers: [
{
text: "Dessert (100g serving)",
align: "left",
sortable: false,
value: "name"
},
{ text: "Calories", value: "calories" },
{ text: "Fat (g)", value: "fat" },
{ text: "Carbs (g)", value: "carbs" },
{ text: "Protein (g)", value: "protein" },
{ text: "Iron (%)", value: "iron" }
],
desserts: [
{
name: "Frozen Yogurt",
calories: 159,
fat: 6.0,
carbs: 24,
protein: 4.0,
iron: "1%"
},
{
name: "Ice cream sandwich",
calories: 237,
fat: 9.0,
carbs: 37,
protein: 4.3,
iron: "1%"
},
{
name: "Eclair",
calories: 262,
fat: 16.0,
carbs: 23,
protein: 6.0,
iron: "7%"
},
{
name: "Cupcake",
calories: 305,
fat: 3.7,
carbs: 67,
protein: 4.3,
iron: "8%"
},
{
name: "Gingerbread",
calories: 356,
fat: 16.0,
carbs: 49,
protein: 3.9,
iron: "16%"
},
{
name: "Jelly bean",
calories: 375,
fat: 0.0,
carbs: 94,
protein: 0.0,
iron: "0%"
},
{
name: "Lollipop",
calories: 392,
fat: 0.2,
carbs: 98,
protein: 0,
iron: "2%"
},
{
name: "Honeycomb",
calories: 408,
fat: 3.2,
carbs: 87,
protein: 6.5,
iron: "45%"
},
{
name: "Donut",
calories: 452,
fat: 25.0,
carbs: 51,
protein: 4.9,
iron: "22%"
},
{
name: "KitKat",
calories: 518,
fat: 26.0,
carbs: 65,
protein: 7,
iron: "6%"
} }
] }
},
data: () => ({
devicemap: "",
selectedDevice: undefined,
deviceComboSearch: null,
btnDisabled: false,
noDataCombo: true,
toggleAllOrUnknown: 0,
selectedPatientInTable: undefined,
sortByTable: undefined,
sortDescTable: undefined
}), }),
mounted() { mounted() {
Meteor.setTimeout(() => { // Meteor.setTimeout(() => {
this.devicemap = "ct"; // this.devicemap = "ct";
}, 5000); // }, 5000);
Meteor.setTimeout(() => { // Meteor.setTimeout(() => {
this.devicemap = "ratio"; // this.devicemap = "ratio";
}, 10000); // }, 10000);
Meteor.call("getDeviceCodes");
// this.selected = [this.desserts[1]];
},
computed: {
deviceCodeItems() {
return this.devicecode;
},
headerOfTable() {
let headers = [];
if (this.worklist && this.worklist.length > 0) {
const sampleWorkList = this.worklist[0];
for (let prop in sampleWorkList) {
if (prop != "_id" && !Array.isArray(sampleWorkList[prop]))
headers.push({
text: prop,
value: prop,
class: "text-center"
});
}
return headers;
}
return [];
},
patientsOfTable() {
if (this.worklist && this.worklist.length > 0) {
return this.worklist;
}
return [];
}
}, },
meteor: { meteor: {
$subscribe: { $subscribe: {
worklist: function() { worklist: function() {
return [this.devicemap]; return [this.devicemap];
} },
devicecode: []
}, },
worklist() { worklist() {
return Worklist.find({}); return Worklist.find({}).fetch();
},
devicecode() {
return DeviceCode.find({}).fetch();
} }
}, },
watch: { watch: {
worklist: (newWorklist, oldWorklist) => { worklist: (newWorklist, oldWorklist) => {
console.log(newWorklist); console.log(newWorklist);
}, },
"$subReady.worklist": ready => { "$subReady.worklist"(ready) {
console.log(ready); this.btnDisabled = !ready;
},
selectedPatientInTable(newSelected, oldSelected) {
// console.log(this.desserts);
// console.log(this.sortByTable);
// console.log(this.sortDescTable);
// console.log(newSelected);
if (this.sortByTable && this.sortByTable.length > 0) {
const items = this.desserts.sort((a, b) => {
const sortA = a[this.sortByTable[0]];
const sortB = b[this.sortByTable[0]];
if (this.sortDescTable && this.sortDescTable[0] == true) {
if (sortA < sortB) return 1;
if (sortA > sortB) return -1;
return 0;
} else {
if (sortA < sortB) return -1;
if (sortA > sortB) return 1;
return 0;
}
});
console.log(items);
}
} }
} }
}; };
</script> </script>
\ No newline at end of file
<style lang="less" scoped>
.wholeLayout {
height: calc(~"98vh - 106px");
}
td,
th {
width: 50px !important;
}
</style>
\ No newline at end of file
...@@ -59,9 +59,13 @@ const messages = { ...@@ -59,9 +59,13 @@ const messages = {
CheckPassError: 'incorrect old password', CheckPassError: 'incorrect old password',
SuccessChangePass: 'Password Successfully changed', SuccessChangePass: 'Password Successfully changed',
internalServerError: 'internal server error' internalServerError: 'internal server error'
},
WorkList: {
deviceComboboxLabel: 'please select a device',
deviceComboboxNoDataMatch: 'No results matching',
seachBtn: 'search'
} }
}, },
'fa': { 'fa': {
Login: { Login: {
...@@ -119,6 +123,11 @@ const messages = { ...@@ -119,6 +123,11 @@ const messages = {
CheckPassError: 'رمز فعلی نادرست می باشد', CheckPassError: 'رمز فعلی نادرست می باشد',
SuccessChangePass: 'رمز کاربر با موفقیت تغییر یافت', SuccessChangePass: 'رمز کاربر با موفقیت تغییر یافت',
internalServerError: 'خطا در سرور' internalServerError: 'خطا در سرور'
},
WorkList: {
deviceComboboxLabel: 'لطفا یک دستگاه را انتخاب نمایید',
deviceComboboxNoDataMatch: 'هیچ نتیجه ای برابر با',
seachBtn: 'جستجو'
} }
} }
......
...@@ -5,7 +5,7 @@ import ChangePassword from '../views/ChangePassword.vue'; ...@@ -5,7 +5,7 @@ import ChangePassword from '../views/ChangePassword.vue';
import Main from '../views/Main.vue'; import Main from '../views/Main.vue';
import EditWorkList from '../components/EditWorkList.vue'; import EditWorkList from '../components/EditWorkList.vue';
import WorkList from '../components/WorkList.vue'; import WorkList from '../components/Worklist.vue';
const routes = [{ const routes = [{
path: '/', path: '/',
......
...@@ -23,7 +23,6 @@ ...@@ -23,7 +23,6 @@
<v-row> <v-row>
<v-col cols="12"> <v-col cols="12">
<v-text-field <v-text-field
:autofocus="usernameFocus"
:label="$t('Login.username')" :label="$t('Login.username')"
prepend-icon="mdi-account-circle" prepend-icon="mdi-account-circle"
:rules="[rules.required]" :rules="[rules.required]"
...@@ -35,7 +34,6 @@ ...@@ -35,7 +34,6 @@
</v-col> </v-col>
<v-col cols="12"> <v-col cols="12">
<v-text-field <v-text-field
:autofocus="passwordFocus"
:type="!showPassword?'password' :'text'" :type="!showPassword?'password' :'text'"
:label="$t('Login.password')" :label="$t('Login.password')"
prepend-icon="mdi-lock" prepend-icon="mdi-lock"
...@@ -166,7 +164,7 @@ export default { ...@@ -166,7 +164,7 @@ export default {
that.snackbar = true; that.snackbar = true;
} }
} else { } else {
Meteor.call("Fetchworklist", "ratio");
Meteor.setTimeout(() => { Meteor.setTimeout(() => {
that.loading = false; that.loading = false;
that.$router.push("/main/worklist"); that.$router.push("/main/worklist");
......
<template> <template>
<v-app id="inspire"> <v-app id="inspire">
<!-- <div style="height:100%"> -->
<!-- <v-content class="fill-height"> -->
<template v-if="!$vuetify.rtl"> <template v-if="!$vuetify.rtl">
<!-- <v-navigation-drawer v-model="drawerRight" app right clipped :width="$vuetify.breakpoint.width/3" bottom> <!-- <v-navigation-drawer v-model="drawerRight" app right clipped :width="$vuetify.breakpoint.width/3" bottom>
<v-list dense> <v-list dense>
...@@ -17,18 +14,18 @@ ...@@ -17,18 +14,18 @@
</v-list> </v-list>
</v-navigation-drawer>--> </v-navigation-drawer>-->
<keep-alive> <!-- <keep-alive>
<router-view name="edit_worklist"></router-view> <router-view name="edit_worklist"></router-view>
</keep-alive> </keep-alive>-->
<v-app-bar app clipped-right color="teal lighten-3" dark> <v-app-bar app clipped-right color="teal lighten-3" dark>
<v-app-bar-nav-icon @click.stop="drawer = !drawer"></v-app-bar-nav-icon> <v-toolbar-title class="red--text">Karname</v-toolbar-title>
<!-- <v-app-bar-nav-icon @click.stop="drawer = !drawer"></v-app-bar-nav-icon> -->
<v-spacer></v-spacer> <v-spacer></v-spacer>
<v-app-bar-nav-icon @click.stop="drawerRight = !drawerRight"></v-app-bar-nav-icon> <!-- <v-app-bar-nav-icon @click.stop="drawerRight = !drawerRight"></v-app-bar-nav-icon> -->
<v-toolbar-title>Toolbar</v-toolbar-title>
</v-app-bar> </v-app-bar>
<v-navigation-drawer v-model="drawer" app> <!-- <v-navigation-drawer v-model="drawer" app>
<v-list dense> <v-list dense>
<v-list-item @click.stop="left = !left"> <v-list-item @click.stop="left = !left">
<v-list-item-action> <v-list-item-action>
...@@ -39,10 +36,10 @@ ...@@ -39,10 +36,10 @@
</v-list-item-content> </v-list-item-content>
</v-list-item> </v-list-item>
</v-list>left </v-list>left
</v-navigation-drawer> </v-navigation-drawer>-->
</template> </template>
<template v-if="$vuetify.rtl"> <!-- <template v-if="$vuetify.rtl">
<v-navigation-drawer v-model="drawer" app clipped> <v-navigation-drawer v-model="drawer" app clipped>
<v-list dense> <v-list dense>
<v-list-item @click.stop="left = !left"> <v-list-item @click.stop="left = !left">
...@@ -75,47 +72,18 @@ ...@@ -75,47 +72,18 @@
</v-list-item> </v-list-item>
</v-list>right </v-list>right
</v-navigation-drawer> </v-navigation-drawer>
</template> </template>-->
<v-navigation-drawer v-model="left" fixed temporary></v-navigation-drawer> <v-navigation-drawer v-model="left" fixed temporary></v-navigation-drawer>
<v-content class="fill-height"> <v-content>
<v-container class="fill-height align-start" fluid>
<!-- <v-row justify="center" align="center">
<v-col class="shrink">
<v-tooltip right>
<template v-slot:activator="{ on }">
<v-btn :href="source" icon large target="_blank" v-on="on">
<v-icon large>mdi-code-tags</v-icon>
</v-btn>
</template>
<span>Source</span>
</v-tooltip>
<v-tooltip right>
<template v-slot:activator="{ on }">
<v-btn
icon
large
href="https://codepen.io/johnjleider/pen/QewYYx"
target="_blank"
v-on="on"
>
<v-icon large>mdi-codepen</v-icon>
</v-btn>
</template>
<span>Codepen</span>
</v-tooltip>
</v-col>
</v-row>-->
<router-view></router-view> <router-view></router-view>
</v-container> </v-content>
</v-content>
<v-navigation-drawer v-model="right" fixed right temporary></v-navigation-drawer> <v-navigation-drawer v-model="right" fixed right temporary></v-navigation-drawer>
<app-footer></app-footer> <app-footer></app-footer>
<!-- </div> -->
<!-- </v-content> -->
</v-app> </v-app>
</template> </template>
......
html {
overflow-y: hidden !important;
}
body {
overflow: hidden !important;
}
.application {
height: 100%;
}
main {
height: calc(100% - 56px - 36px);
}
.container {
height: 100%;
overflow: auto;
}
\ No newline at end of file
import { Mongo } from 'meteor/mongo';
import { Meteor } from 'meteor/meteor';
let DeviceCode;
if (Meteor.isClient || Meteor.isCordova) {
DeviceCode = new Mongo.Collection('devicecode')
}
if (Meteor.isServer) {
DeviceCode = new Mongo.Collection('devicecode', { connection: null })
}
export default DeviceCode;
\ No newline at end of file
import { Meteor } from 'meteor/meteor';
import { check } from 'meteor/check';
import DeviceCode from '../collections/devicecode.js';
Meteor.methods({
'getDeviceCodes' () {
debugger;
this.unblock();
if (this.userId) {
try {
const result = HTTP.call('GET', `http://192.168.0.156/Broker/HISIntegration.svc/rest/getdevicecodes`);
let deviceCodeHttpResult = JSON.parse(result.content);
DeviceCode.remove({});
deviceCodeHttpResult.Devices.forEach((device) => {
DeviceCode.insert({
...device
});
});
return true
} catch (e) {
// Got a network error, timeout, or HTTP error in the 400 or 500 range.
return false;
}
}
}
});
\ No newline at end of file
...@@ -12,12 +12,12 @@ import Worklist from '../collections/worklist.js'; ...@@ -12,12 +12,12 @@ import Worklist from '../collections/worklist.js';
Meteor.methods({ Meteor.methods({
'Fetchworklist' (devicemap) { 'Fetchworklist' (devicemap) {
debugger;
check(devicemap, String); check(devicemap, String);
this.unblock(); this.unblock();
if (this.userId) { if (this.userId) {
try { try {
debugger;
const result = HTTP.call('GET', `http://192.168.0.156/Broker/HISIntegration.svc/rest/Fetchworklist/${devicemap}`); const result = HTTP.call('GET', `http://192.168.0.156/Broker/HISIntegration.svc/rest/Fetchworklist/${devicemap}`);
let worklistHttp = JSON.parse(result.content); let worklistHttp = JSON.parse(result.content);
......
import DeviceCode from '../../collections/devicecode.js';
import { check } from 'meteor/check';
Meteor.publish("devicecode", function() {
if (!this.userId) {
return this.ready();
}
return DeviceCode.find({});
});
\ No newline at end of file
...@@ -678,9 +678,9 @@ ...@@ -678,9 +678,9 @@
} }
}, },
"@babel/plugin-transform-spread": { "@babel/plugin-transform-spread": {
"version": "7.2.2", "version": "7.6.2",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.2.2.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.6.2.tgz",
"integrity": "sha512-KWfky/58vubwtS0hLqEnrWJjsMGaOeSBn90Ezn5Jeg9Z8KKHmELbP1yGylMlm5N6TPKeY9A2+UaSYLdxahg01w==", "integrity": "sha512-DpSvPFryKdK1x+EDJYCy28nmAaIMdxmhot62jAXF/o99iA33Zj2Lmcp3vDmz+MUh0LNYVPvfj5iC3feb3/+PFg==",
"dev": true, "dev": true,
"requires": { "requires": {
"@babel/helper-plugin-utils": "^7.0.0" "@babel/helper-plugin-utils": "^7.0.0"
...@@ -1216,6 +1216,23 @@ ...@@ -1216,6 +1216,23 @@
"integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
"dev": true "dev": true
}, },
"asap": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
"integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=",
"dev": true,
"optional": true
},
"asn1": {
"version": "0.2.4",
"resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
"integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
"dev": true,
"optional": true,
"requires": {
"safer-buffer": "~2.1.0"
}
},
"asn1.js": { "asn1.js": {
"version": "4.10.1", "version": "4.10.1",
"resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz",
...@@ -1254,6 +1271,13 @@ ...@@ -1254,6 +1271,13 @@
} }
} }
}, },
"assert-plus": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
"integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
"dev": true,
"optional": true
},
"assign-symbols": { "assign-symbols": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
...@@ -1272,12 +1296,33 @@ ...@@ -1272,12 +1296,33 @@
"integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==",
"dev": true "dev": true
}, },
"asynckit": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
"integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
"dev": true,
"optional": true
},
"atob": { "atob": {
"version": "2.1.2", "version": "2.1.2",
"resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
"integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
"dev": true "dev": true
}, },
"aws-sign2": {
"version": "0.7.0",
"resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
"integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
"dev": true,
"optional": true
},
"aws4": {
"version": "1.8.0",
"resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
"integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==",
"dev": true,
"optional": true
},
"babel-loader": { "babel-loader": {
"version": "8.0.6", "version": "8.0.6",
"resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.0.6.tgz", "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.0.6.tgz",
...@@ -1374,6 +1419,16 @@ ...@@ -1374,6 +1419,16 @@
"node-pre-gyp": "0.12.0" "node-pre-gyp": "0.12.0"
} }
}, },
"bcrypt-pbkdf": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
"integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
"dev": true,
"optional": true,
"requires": {
"tweetnacl": "^0.14.3"
}
},
"big.js": { "big.js": {
"version": "5.2.2", "version": "5.2.2",
"resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
...@@ -1601,6 +1656,13 @@ ...@@ -1601,6 +1656,13 @@
"integrity": "sha512-vrMcvSuMz16YY6GSVZ0dWDTJP8jqk3iFQ/Aq5iqblPwxSVVZI+zxDyTX0VPqtQsDnfdrBDcsmhgTEOh5R8Lbpw==", "integrity": "sha512-vrMcvSuMz16YY6GSVZ0dWDTJP8jqk3iFQ/Aq5iqblPwxSVVZI+zxDyTX0VPqtQsDnfdrBDcsmhgTEOh5R8Lbpw==",
"dev": true "dev": true
}, },
"caseless": {
"version": "0.12.0",
"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
"integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
"dev": true,
"optional": true
},
"chalk": { "chalk": {
"version": "2.4.2", "version": "2.4.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
...@@ -1737,6 +1799,12 @@ ...@@ -1737,6 +1799,12 @@
} }
} }
}, },
"clone": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
"integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=",
"dev": true
},
"clone-deep": { "clone-deep": {
"version": "4.0.1", "version": "4.0.1",
"resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz",
...@@ -1778,6 +1846,16 @@ ...@@ -1778,6 +1846,16 @@
"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
"dev": true "dev": true
}, },
"combined-stream": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
"dev": true,
"optional": true,
"requires": {
"delayed-stream": "~1.0.0"
}
},
"commander": { "commander": {
"version": "2.17.1", "version": "2.17.1",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz",
...@@ -2034,6 +2112,16 @@ ...@@ -2034,6 +2112,16 @@
"integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=", "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=",
"dev": true "dev": true
}, },
"dashdash": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
"integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
"dev": true,
"optional": true,
"requires": {
"assert-plus": "^1.0.0"
}
},
"date-now": { "date-now": {
"version": "0.1.4", "version": "0.1.4",
"resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz",
...@@ -2125,6 +2213,13 @@ ...@@ -2125,6 +2213,13 @@
} }
} }
}, },
"delayed-stream": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
"dev": true,
"optional": true
},
"delegates": { "delegates": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
...@@ -2232,6 +2327,17 @@ ...@@ -2232,6 +2327,17 @@
"stream-shift": "^1.0.0" "stream-shift": "^1.0.0"
} }
}, },
"ecc-jsbn": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
"integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
"dev": true,
"optional": true,
"requires": {
"jsbn": "~0.1.0",
"safer-buffer": "^2.1.0"
}
},
"electron-to-chromium": { "electron-to-chromium": {
"version": "1.3.241", "version": "1.3.241",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.241.tgz", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.241.tgz",
...@@ -2467,6 +2573,13 @@ ...@@ -2467,6 +2573,13 @@
"homedir-polyfill": "^1.0.1" "homedir-polyfill": "^1.0.1"
} }
}, },
"extend": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
"integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
"dev": true,
"optional": true
},
"extend-shallow": { "extend-shallow": {
"version": "3.0.2", "version": "3.0.2",
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
...@@ -2553,6 +2666,13 @@ ...@@ -2553,6 +2666,13 @@
} }
} }
}, },
"extsprintf": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
"integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
"dev": true,
"optional": true
},
"fast-deep-equal": { "fast-deep-equal": {
"version": "2.0.1", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
...@@ -2571,6 +2691,14 @@ ...@@ -2571,6 +2691,14 @@
"integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==",
"dev": true "dev": true
}, },
"fibers": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/fibers/-/fibers-4.0.1.tgz",
"integrity": "sha512-H79EJn7DMWXk48ygmC82bMP8KNcFBZF1CPfwBpYF6cO85hGWoIrlu7eyX9ayxfjP9Nsl0JXxdI6fpYU4DWVw2w==",
"requires": {
"detect-libc": "^1.0.3"
}
},
"figgy-pudding": { "figgy-pudding": {
"version": "3.5.1", "version": "3.5.1",
"resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz", "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz",
...@@ -2644,6 +2772,25 @@ ...@@ -2644,6 +2772,25 @@
"integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
"dev": true "dev": true
}, },
"forever-agent": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
"integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
"dev": true,
"optional": true
},
"form-data": {
"version": "2.3.3",
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
"integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
"dev": true,
"optional": true,
"requires": {
"asynckit": "^0.4.0",
"combined-stream": "^1.0.6",
"mime-types": "^2.1.12"
}
},
"fragment-cache": { "fragment-cache": {
"version": "0.2.1", "version": "0.2.1",
"resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
...@@ -2664,11 +2811,11 @@ ...@@ -2664,11 +2811,11 @@
} }
}, },
"fs-minipass": { "fs-minipass": {
"version": "1.2.6", "version": "1.2.7",
"resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.6.tgz", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz",
"integrity": "sha512-crhvyXcMejjv3Z5d2Fa9sf5xLYVCF5O1c71QxbVnbLsmYMBEvDAftewesN/HhY03YRoA7zOMxjNGrF5svGaaeQ==", "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==",
"requires": { "requires": {
"minipass": "^2.2.1" "minipass": "^2.6.0"
} }
}, },
"fs-write-stream-atomic": { "fs-write-stream-atomic": {
...@@ -2737,6 +2884,16 @@ ...@@ -2737,6 +2884,16 @@
"integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=",
"dev": true "dev": true
}, },
"getpass": {
"version": "0.1.7",
"resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
"integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
"dev": true,
"optional": true,
"requires": {
"assert-plus": "^1.0.0"
}
},
"glob": { "glob": {
"version": "7.1.4", "version": "7.1.4",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz",
...@@ -2806,6 +2963,24 @@ ...@@ -2806,6 +2963,24 @@
"integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==", "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==",
"dev": true "dev": true
}, },
"har-schema": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
"integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
"dev": true,
"optional": true
},
"har-validator": {
"version": "5.1.3",
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
"integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
"dev": true,
"optional": true,
"requires": {
"ajv": "^6.5.5",
"har-schema": "^2.0.0"
}
},
"has": { "has": {
"version": "1.0.3", "version": "1.0.3",
"resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
...@@ -3043,6 +3218,18 @@ ...@@ -3043,6 +3218,18 @@
} }
} }
}, },
"http-signature": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
"integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
"dev": true,
"optional": true,
"requires": {
"assert-plus": "^1.0.0",
"jsprim": "^1.2.2",
"sshpk": "^1.7.0"
}
},
"https-browserify": { "https-browserify": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
...@@ -3079,13 +3266,20 @@ ...@@ -3079,13 +3266,20 @@
"dev": true "dev": true
}, },
"ignore-walk": { "ignore-walk": {
"version": "3.0.1", "version": "3.0.2",
"resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz", "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.2.tgz",
"integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", "integrity": "sha512-EXyErtpHbn75ZTsOADsfx6J/FPo6/5cjev46PXrcTpd8z3BoRkXgYu9/JVqrI7tusjmwCZutGeRJeU0Wo1e4Cw==",
"requires": { "requires": {
"minimatch": "^3.0.4" "minimatch": "^3.0.4"
} }
}, },
"image-size": {
"version": "0.5.5",
"resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz",
"integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=",
"dev": true,
"optional": true
},
"import-local": { "import-local": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz",
...@@ -3308,6 +3502,13 @@ ...@@ -3308,6 +3502,13 @@
"has-symbols": "^1.0.0" "has-symbols": "^1.0.0"
} }
}, },
"is-typedarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
"integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
"dev": true,
"optional": true
},
"is-windows": { "is-windows": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
...@@ -3337,6 +3538,13 @@ ...@@ -3337,6 +3538,13 @@
"integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
"dev": true "dev": true
}, },
"isstream": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
"integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
"dev": true,
"optional": true
},
"js-levenshtein": { "js-levenshtein": {
"version": "1.1.6", "version": "1.1.6",
"resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz",
...@@ -3349,6 +3557,13 @@ ...@@ -3349,6 +3557,13 @@
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
"dev": true "dev": true
}, },
"jsbn": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
"integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
"dev": true,
"optional": true
},
"jsesc": { "jsesc": {
"version": "2.5.2", "version": "2.5.2",
"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
...@@ -3361,12 +3576,26 @@ ...@@ -3361,12 +3576,26 @@
"integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
"dev": true "dev": true
}, },
"json-schema": {
"version": "0.2.3",
"resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
"integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
"dev": true,
"optional": true
},
"json-schema-traverse": { "json-schema-traverse": {
"version": "0.4.1", "version": "0.4.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
"dev": true "dev": true
}, },
"json-stringify-safe": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
"integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
"dev": true,
"optional": true
},
"json5": { "json5": {
"version": "2.1.0", "version": "2.1.0",
"resolved": "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz", "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz",
...@@ -3384,6 +3613,19 @@ ...@@ -3384,6 +3613,19 @@
} }
} }
}, },
"jsprim": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
"integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
"dev": true,
"optional": true,
"requires": {
"assert-plus": "1.0.0",
"extsprintf": "1.3.0",
"json-schema": "0.2.3",
"verror": "1.10.0"
}
},
"kind-of": { "kind-of": {
"version": "6.0.2", "version": "6.0.2",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
...@@ -3399,6 +3641,50 @@ ...@@ -3399,6 +3641,50 @@
"invert-kv": "^2.0.0" "invert-kv": "^2.0.0"
} }
}, },
"less": {
"version": "3.10.3",
"resolved": "https://registry.npmjs.org/less/-/less-3.10.3.tgz",
"integrity": "sha512-vz32vqfgmoxF1h3K4J+yKCtajH0PWmjkIFgbs5d78E/c/e+UQTnI+lWK+1eQRE95PXM2mC3rJlLSSP9VQHnaow==",
"dev": true,
"requires": {
"clone": "^2.1.2",
"errno": "^0.1.1",
"graceful-fs": "^4.1.2",
"image-size": "~0.5.0",
"mime": "^1.4.1",
"mkdirp": "^0.5.0",
"promise": "^7.1.1",
"request": "^2.83.0",
"source-map": "~0.6.0"
},
"dependencies": {
"mime": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
"integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
"dev": true,
"optional": true
},
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true,
"optional": true
}
}
},
"less-loader": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/less-loader/-/less-loader-5.0.0.tgz",
"integrity": "sha512-bquCU89mO/yWLaUq0Clk7qCsKhsF/TZpJUzETRvJa9KSVEL9SO3ovCvdEHISBhrC81OwC8QSVX7E0bzElZj9cg==",
"dev": true,
"requires": {
"clone": "^2.1.1",
"loader-utils": "^1.1.0",
"pify": "^4.0.1"
}
},
"loader-runner": { "loader-runner": {
"version": "2.4.0", "version": "2.4.0",
"resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz",
...@@ -4254,6 +4540,23 @@ ...@@ -4254,6 +4540,23 @@
"integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==", "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==",
"dev": true "dev": true
}, },
"mime-db": {
"version": "1.40.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz",
"integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==",
"dev": true,
"optional": true
},
"mime-types": {
"version": "2.1.24",
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz",
"integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==",
"dev": true,
"optional": true,
"requires": {
"mime-db": "1.40.0"
}
},
"mimic-fn": { "mimic-fn": {
"version": "2.1.0", "version": "2.1.0",
"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
...@@ -4286,18 +4589,18 @@ ...@@ -4286,18 +4589,18 @@
"integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
}, },
"minipass": { "minipass": {
"version": "2.5.0", "version": "2.6.5",
"resolved": "https://registry.npmjs.org/minipass/-/minipass-2.5.0.tgz", "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.6.5.tgz",
"integrity": "sha512-9FwMVYhn6ERvMR8XFdOavRz4QK/VJV8elU1x50vYexf9lslDcWe/f4HBRxCPd185ekRSjU6CfYyJCECa/CQy7Q==", "integrity": "sha512-ewSKOPFH9blOLXx0YSE+mbrNMBFPS+11a2b03QZ+P4LVrUHW/GAlqeYC7DBknDyMWkHzrzTpDhUvy7MUxqyrPA==",
"requires": { "requires": {
"safe-buffer": "^5.1.2", "safe-buffer": "^5.1.2",
"yallist": "^3.0.0" "yallist": "^3.0.0"
} }
}, },
"minizlib": { "minizlib": {
"version": "1.2.1", "version": "1.2.2",
"resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.2.1.tgz", "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.2.2.tgz",
"integrity": "sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==", "integrity": "sha512-hR3At21uSrsjjDTWrbu0IMLTpnkpv8IIMFDFaoz43Tmu4LkmAXfH44vNNzpTnf+OAQQCHrb91y/wc2J4x5XgSQ==",
"requires": { "requires": {
"minipass": "^2.2.1" "minipass": "^2.2.1"
} }
...@@ -4557,6 +4860,13 @@ ...@@ -4557,6 +4860,13 @@
"resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
"integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0="
}, },
"oauth-sign": {
"version": "0.9.0",
"resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
"integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
"dev": true,
"optional": true
},
"object-assign": { "object-assign": {
"version": "4.1.1", "version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
...@@ -4824,6 +5134,13 @@ ...@@ -4824,6 +5134,13 @@
"sha.js": "^2.4.8" "sha.js": "^2.4.8"
} }
}, },
"performance-now": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
"integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
"dev": true,
"optional": true
},
"picomatch": { "picomatch": {
"version": "2.0.7", "version": "2.0.7",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.0.7.tgz", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.0.7.tgz",
...@@ -4979,6 +5296,16 @@ ...@@ -4979,6 +5296,16 @@
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
"integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
}, },
"promise": {
"version": "7.3.1",
"resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz",
"integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==",
"dev": true,
"optional": true,
"requires": {
"asap": "~2.0.3"
}
},
"promise-inflight": { "promise-inflight": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz",
...@@ -4997,6 +5324,13 @@ ...@@ -4997,6 +5324,13 @@
"integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
"dev": true "dev": true
}, },
"psl": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/psl/-/psl-1.4.0.tgz",
"integrity": "sha512-HZzqCGPecFLyoRj5HLfuDSKYTJkAfB5thKBIkRHtGjWwY7p1dAyveIbXIq4tO0KYfDF2tHqPUgY9SDnGm00uFw==",
"dev": true,
"optional": true
},
"public-encrypt": { "public-encrypt": {
"version": "4.0.3", "version": "4.0.3",
"resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz",
...@@ -5050,6 +5384,13 @@ ...@@ -5050,6 +5384,13 @@
"integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
"dev": true "dev": true
}, },
"qs": {
"version": "6.5.2",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
"integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
"dev": true,
"optional": true
},
"querystring": { "querystring": {
"version": "0.2.0", "version": "0.2.0",
"resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
...@@ -5259,6 +5600,35 @@ ...@@ -5259,6 +5600,35 @@
"integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
"dev": true "dev": true
}, },
"request": {
"version": "2.88.0",
"resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
"integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
"dev": true,
"optional": true,
"requires": {
"aws-sign2": "~0.7.0",
"aws4": "^1.8.0",
"caseless": "~0.12.0",
"combined-stream": "~1.0.6",
"extend": "~3.0.2",
"forever-agent": "~0.6.1",
"form-data": "~2.3.2",
"har-validator": "~5.1.0",
"http-signature": "~1.2.0",
"is-typedarray": "~1.0.0",
"isstream": "~0.1.2",
"json-stringify-safe": "~5.0.1",
"mime-types": "~2.1.19",
"oauth-sign": "~0.9.0",
"performance-now": "^2.1.0",
"qs": "~6.5.2",
"safe-buffer": "^5.1.2",
"tough-cookie": "~2.4.3",
"tunnel-agent": "^0.6.0",
"uuid": "^3.3.2"
}
},
"require-directory": { "require-directory": {
"version": "2.1.1", "version": "2.1.1",
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
...@@ -5684,6 +6054,24 @@ ...@@ -5684,6 +6054,24 @@
"extend-shallow": "^3.0.0" "extend-shallow": "^3.0.0"
} }
}, },
"sshpk": {
"version": "1.16.1",
"resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
"integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
"dev": true,
"optional": true,
"requires": {
"asn1": "~0.2.3",
"assert-plus": "^1.0.0",
"bcrypt-pbkdf": "^1.0.0",
"dashdash": "^1.12.0",
"ecc-jsbn": "~0.1.1",
"getpass": "^0.1.1",
"jsbn": "~0.1.0",
"safer-buffer": "^2.0.2",
"tweetnacl": "~0.14.0"
}
},
"ssri": { "ssri": {
"version": "6.0.1", "version": "6.0.1",
"resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz",
...@@ -5806,13 +6194,13 @@ ...@@ -5806,13 +6194,13 @@
"dev": true "dev": true
}, },
"tar": { "tar": {
"version": "4.4.10", "version": "4.4.11",
"resolved": "https://registry.npmjs.org/tar/-/tar-4.4.10.tgz", "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.11.tgz",
"integrity": "sha512-g2SVs5QIxvo6OLp0GudTqEf05maawKUxXru104iaayWA09551tFCTI8f1Asb4lPfkBr91k07iL4c11XO3/b0tA==", "integrity": "sha512-iI4zh3ktLJKaDNZKZc+fUONiQrSn9HkCFzamtb7k8FFmVilHVob7QsLX/VySAW8lAviMzMbFw4QtFb4errwgYA==",
"requires": { "requires": {
"chownr": "^1.1.1", "chownr": "^1.1.1",
"fs-minipass": "^1.2.5", "fs-minipass": "^1.2.5",
"minipass": "^2.3.5", "minipass": "^2.6.4",
"minizlib": "^1.2.1", "minizlib": "^1.2.1",
"mkdirp": "^0.5.0", "mkdirp": "^0.5.0",
"safe-buffer": "^5.1.2", "safe-buffer": "^5.1.2",
...@@ -5963,6 +6351,26 @@ ...@@ -5963,6 +6351,26 @@
"integrity": "sha1-LmhELZ9k7HILjMieZEOsbKqVACk=", "integrity": "sha1-LmhELZ9k7HILjMieZEOsbKqVACk=",
"dev": true "dev": true
}, },
"tough-cookie": {
"version": "2.4.3",
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
"integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
"dev": true,
"optional": true,
"requires": {
"psl": "^1.1.24",
"punycode": "^1.4.1"
},
"dependencies": {
"punycode": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
"integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
"dev": true,
"optional": true
}
}
},
"trim-right": { "trim-right": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz",
...@@ -5981,6 +6389,23 @@ ...@@ -5981,6 +6389,23 @@
"integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=",
"dev": true "dev": true
}, },
"tunnel-agent": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
"integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
"dev": true,
"optional": true,
"requires": {
"safe-buffer": "^5.0.1"
}
},
"tweetnacl": {
"version": "0.14.5",
"resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
"integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
"dev": true,
"optional": true
},
"typedarray": { "typedarray": {
"version": "0.0.6", "version": "0.0.6",
"resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
...@@ -6273,6 +6698,18 @@ ...@@ -6273,6 +6698,18 @@
"resolved": "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz", "resolved": "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz",
"integrity": "sha1-HBRHm0DxOXp1eC8RXkCGRHQzogA=" "integrity": "sha1-HBRHm0DxOXp1eC8RXkCGRHQzogA="
}, },
"verror": {
"version": "1.10.0",
"resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
"integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
"dev": true,
"optional": true,
"requires": {
"assert-plus": "^1.0.0",
"core-util-is": "1.0.2",
"extsprintf": "^1.2.0"
}
},
"vm-browserify": { "vm-browserify": {
"version": "1.1.0", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.0.tgz", "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.0.tgz",
......
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
"@babel/runtime": "^7.5.5", "@babel/runtime": "^7.5.5",
"bcrypt": "^3.0.6", "bcrypt": "^3.0.6",
"connect-route": "^0.1.5", "connect-route": "^0.1.5",
"fibers": "^4.0.1",
"meteor-node-stubs": "^1.0.0", "meteor-node-stubs": "^1.0.0",
"valid-url": "^1.0.9", "valid-url": "^1.0.9",
"vue": "^2.6.10", "vue": "^2.6.10",
...@@ -31,6 +32,7 @@ ...@@ -31,6 +32,7 @@
"@babel/plugin-proposal-object-rest-spread": "^7.5.5", "@babel/plugin-proposal-object-rest-spread": "^7.5.5",
"@babel/plugin-transform-arrow-functions": "^7.2.0", "@babel/plugin-transform-arrow-functions": "^7.2.0",
"@babel/plugin-transform-async-to-generator": "^7.5.0", "@babel/plugin-transform-async-to-generator": "^7.5.0",
"@babel/plugin-transform-spread": "^7.6.2",
"@babel/preset-env": "^7.5.5", "@babel/preset-env": "^7.5.5",
"@babel/register": "^7.5.5", "@babel/register": "^7.5.5",
"@mdi/font": "^3.9.97", "@mdi/font": "^3.9.97",
...@@ -41,6 +43,8 @@ ...@@ -41,6 +43,8 @@
"file-loader": "^4.2.0", "file-loader": "^4.2.0",
"html-loader": "^0.5.5", "html-loader": "^0.5.5",
"html-webpack-plugin": "^3.2.0", "html-webpack-plugin": "^3.2.0",
"less": "^3.10.3",
"less-loader": "^5.0.0",
"material-design-icons-iconfont": "^5.0.1", "material-design-icons-iconfont": "^5.0.1",
"sass": "^1.22.9", "sass": "^1.22.9",
"sass-loader": "^7.2.0", "sass-loader": "^7.2.0",
......
...@@ -2,7 +2,9 @@ import { Meteor } from 'meteor/meteor'; ...@@ -2,7 +2,9 @@ import { Meteor } from 'meteor/meteor';
import '../imports/api/methods/worklist.js'; import '../imports/api/methods/worklist.js';
import '../imports/api/methods/changePassword.js'; import '../imports/api/methods/changePassword.js';
import '../imports/api/server/publications/worklist.js' import '../imports/api/methods/devicecode.js';
import '../imports/api/server/publications/worklist.js';
import '../imports/api/server/publications/devicecode.js';
Meteor.startup(() => { Meteor.startup(() => {
......
...@@ -7,164 +7,167 @@ const VueLoaderPlugin = require('vue-loader/lib/plugin'); ...@@ -7,164 +7,167 @@ const VueLoaderPlugin = require('vue-loader/lib/plugin');
const UglifyJsPlugin = require('uglifyjs-webpack-plugin'); const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
const clientConfig = { const clientConfig = {
entry: './client/main.js', entry: './client/main.js',
// output: { // output: {
// publicPath: '/', // publicPath: '/',
// filename: 'build.js' // filename: 'build.js'
// }, // },
output: { output: {
publicPath: '/', publicPath: '/',
filename: '[name].[hash].js', filename: '[name].[hash].js',
}, },
mode: "production", mode: "production",
optimization: { optimization: {
runtimeChunk: 'single', runtimeChunk: 'single',
// minimizer: [new UglifyJsPlugin()], // minimizer: [new UglifyJsPlugin()],
// minimize: false, // minimize: false,
splitChunks: { splitChunks: {
chunks: 'all', chunks: 'all',
maxInitialRequests: Infinity, maxInitialRequests: Infinity,
minSize: 0, minSize: 0,
cacheGroups: { cacheGroups: {
vendor: { vendor: {
test: /[\\/]node_modules[\\/]/, test: /[\\/]node_modules[\\/]/,
name(module) { name(module) {
// get the name. E.g. node_modules/packageName/not/this/part.js // get the name. E.g. node_modules/packageName/not/this/part.js
// or node_modules/packageName // or node_modules/packageName
const packageName = module.context.match(/[\\/]node_modules[\\/](.*?)([\\/]|$)/)[1]; const packageName = module.context.match(/[\\/]node_modules[\\/](.*?)([\\/]|$)/)[1];
// npm package names are URL-safe, but some servers don't like @ symbols // npm package names are URL-safe, but some servers don't like @ symbols
return `npm.${packageName.replace('@', '')}`; return `npm.${packageName.replace('@', '')}`;
}, },
},
},
}, },
},
}, },
}, module: {
module: { rules: [{
rules: [ test: /\.js$/,
{ loader: 'babel-loader',
test: /\.js$/, exclude: /node_modules/
loader: 'babel-loader', },
exclude: /node_modules/ {
}, test: /\.vue$/,
{ loader: 'vue-loader',
test: /\.vue$/, options: {
loader: 'vue-loader', loaders: {}
options: { // other vue-loader options go here
loaders: {} }
// other vue-loader options go here },
} {
}, test: /\.s(c|a)ss$/,
{ use: [
test: /\.s(c|a)ss$/, 'vue-style-loader',
use: [ 'css-loader',
'vue-style-loader', {
'css-loader', loader: 'sass-loader',
{ options: {
loader: 'sass-loader', implementation: require('sass'),
options: { fiber: require('fibers'),
implementation: require('sass'), indentedSyntax: true // optional
fiber: require('fibers'), }
indentedSyntax: true // optional }
} ]
} },
] {
}, test: /\.less$/,
{ use: [
test: /\.(woff(2)?|ttf|eot|svg)(\?v=\d+\.\d+\.\d+)?$/, 'vue-style-loader',
use: [ 'css-loader',
{ 'less-loader'
loader: 'file-loader', ]
options: { },
name: '[name].[ext]', {
outputPath: 'fonts/' test: /\.(woff(2)?|ttf|eot|svg)(\?v=\d+\.\d+\.\d+)?$/,
} use: [{
} loader: 'file-loader',
] options: {
}, name: '[name].[ext]',
{ outputPath: 'fonts/'
test: /\.css$/, }
use: [ }]
'vue-style-loader', },
'css-loader' {
], test: /\.css$/,
}, use: [
{ 'vue-style-loader',
test: /\.(png|jpg|gif|svg)$/, 'css-loader'
loader: 'file-loader', ],
options: { },
name: 'images/[name].[ext]?[hash:8]' {
} test: /\.(png|jpg|gif|svg)$/,
}, loader: 'file-loader',
{ options: {
test: /\.html$/, name: 'images/[name].[ext]?[hash:8]'
use: [ }
// { },
// loader: "file-loader", {
// options: { test: /\.html$/,
// name: "[name].html" use: [
// } // {
// }, // loader: "file-loader",
// { // options: {
// loader: "extract-loader"// tells webpack to not include html file into mainbundle js // name: "[name].html"
// }, // }
{ // },
loader: "html-loader", // {
options: { // loader: "extract-loader"// tells webpack to not include html file into mainbundle js
attrs: ["img:src"]// the src attribute in img element of html is the target // },
} {
} loader: "html-loader",
] options: {
}, attrs: ["img:src"] // the src attribute in img element of html is the target
}
}
]
},
] ]
},
resolve: {
alias: {
'vue$': 'vue/dist/vue.esm.js'
}, },
extensions: ['*', '.js', '.vue', '.json'] resolve: {
}, alias: {
externals: [meteorExternals()], 'vue$': 'vue/dist/vue.esm.js'
devServer: { },
historyApiFallback: true, extensions: ['*', '.js', '.vue', '.json']
noInfo: true, },
overlay: true, externals: [meteorExternals()],
hot: true, devServer: {
open:true historyApiFallback: true,
}, noInfo: true,
performance: { overlay: true,
hints: false hot: true,
}, open: true
devtool: 'source-map', },
plugins: [ performance: {
new webpack.HotModuleReplacementPlugin(), hints: false
new HtmlWebpackPlugin({ },
template: './client/main.html' devtool: 'source-map',
}), plugins: [
new VueLoaderPlugin() new webpack.HotModuleReplacementPlugin(),
] new HtmlWebpackPlugin({
template: './client/main.html'
}),
new VueLoaderPlugin()
]
} }
const serverConfig = { const serverConfig = {
entry: './server/main.js', entry: './server/main.js',
target: 'node', target: 'node',
externals: [meteorExternals()], externals: [meteorExternals()],
devServer: { devServer: {
hot: true, hot: true,
open:true open: true
}, },
devtool: 'source-map', devtool: 'source-map',
mode: "development", mode: "development",
module: { module: {
rules: [ rules: [{
{ test: /\.js$/,
test: /\.js$/, loader: 'babel-loader',
loader: 'babel-loader', exclude: /node_modules/
exclude: /node_modules/ }]
} }
]
}
}; };
module.exports = [clientConfig, serverConfig]; module.exports = [clientConfig, serverConfig];
\ No newline at end of file
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