Browse Source

fix: mssql initial migration crash

Nicolas Giard 6 years ago
parent
commit
92d0925d51

+ 1 - 1
client/components/admin/admin-general.vue

@@ -125,7 +125,7 @@ export default {
       metaRobots: ['Index', 'Follow', 'No Index', 'No Follow'],
       useSquareLogo: false,
       displayMascot: true,
-      featurePageRatings: false,
+      featurePageRatings: true,
       featurePersonalWiki: true
     }
   },

+ 8 - 1
client/components/admin/admin-system.vue

@@ -97,11 +97,13 @@
                     v-avatar.indigo.darken-1(size='40')
                       icon-database(fillColor='#FFFFFF')
                   v-list-tile-content
-                    v-list-tile-title {{ info.dbVersion }}
+                    v-list-tile-title(v-html='dbVersion')
                     v-list-tile-sub-title {{ info.dbHost }}
 </template>
 
 <script>
+import _ from 'lodash'
+
 import IconCube from 'mdi/cube'
 import IconDatabase from 'mdi/database'
 import IconNodeJs from 'mdi/nodejs'
@@ -119,6 +121,11 @@ export default {
       info: {}
     }
   },
+  computed: {
+    dbVersion() {
+      return _.get(this.info, 'dbVersion', '').replace(/(?:\r\n|\r|\n)/g, '<br />')
+    }
+  },
   methods: {
     async refresh() {
       await this.$apollo.queries.info.refetch()

+ 2 - 1
config.sample.yml

@@ -22,7 +22,8 @@ bindIP: 0.0.0.0
 # ---------------------------------------------------------------------
 # Supported Database Engines:
 # - postgres = PostgreSQL 9.5 or later
-# - mysql = MySQL 5.7.8 / MariaDB 10.2.7 or later
+# - mysql = MySQL 5.7.8
+# - mariadb = MariaDB 10.2.7 or later
 # - mssql = MS SQL Server 2012 or later
 # - sqlite = SQLite 3.9 or later
 

+ 1 - 1
dev/build/Dockerfile

@@ -1,4 +1,4 @@
-FROM node:8-alpine
+FROM node:10-alpine
 LABEL maintainer="requarks.io"
 
 RUN apk update && \

+ 1 - 1
dev/docker/Dockerfile

@@ -1,7 +1,7 @@
 # -- DEV DOCKERFILE --
 # -- DO NOT USE IN PRODUCTION! --
 
-FROM node:8-alpine
+FROM node:10-alpine
 LABEL maintainer "requarks.io"
 
 RUN apk update && \

+ 19 - 18
package.json

@@ -39,11 +39,11 @@
   },
   "homepage": "https://github.com/Requarks/wiki#readme",
   "engines": {
-    "node": ">=8.11"
+    "node": ">=10.10"
   },
   "dependencies": {
-    "apollo-server": "2.0.6",
-    "apollo-server-express": "2.0.5",
+    "apollo-server": "2.0.7",
+    "apollo-server-express": "2.0.6",
     "auto-load": "3.0.1",
     "axios": "0.18.0",
     "bcryptjs-then": "1.0.1",
@@ -72,15 +72,16 @@
     "follow-redirects": "1.5.7",
     "fs-extra": "7.0.0",
     "getos": "3.1.0",
-    "graphql": "14.0.0",
+    "graphql": "14.0.2",
     "graphql-list-fields": "2.0.2",
     "graphql-tools": "3.1.1",
-    "i18next": "11.6.0",
+    "i18next": "11.7.0",
     "i18next-express-middleware": "1.3.2",
     "i18next-localstorage-cache": "1.1.1",
-    "i18next-node-fs-backend": "2.0.0",
+    "i18next-node-fs-backend": "2.1.0",
     "image-size": "0.6.3",
     "ioredis": "4.0.0",
+    "js-binary": "1.2.0",
     "js-yaml": "3.12.0",
     "jsonwebtoken": "8.3.0",
     "klaw": "3.0.0",
@@ -136,7 +137,7 @@
     "pm2": "3.0.4",
     "pug": "2.0.3",
     "qr-image": "3.2.0",
-    "raven": "2.6.3",
+    "raven": "2.6.4",
     "read-chunk": "3.0.0",
     "remove-markdown": "0.3.0",
     "request": "2.88.0",
@@ -148,8 +149,8 @@
     "uuid": "3.3.2",
     "validator": "10.7.1",
     "validator-as-promised": "1.0.2",
-    "winston": "3.0.0",
-    "yargs": "12.0.1"
+    "winston": "3.1.0",
+    "yargs": "12.0.2"
   },
   "devDependencies": {
     "@babel/cli": "^7.0.0",
@@ -176,13 +177,13 @@
     "apollo-link-error": "1.1.0",
     "apollo-link-http": "1.5.4",
     "apollo-link-persisted-queries": "0.2.1",
-    "autoprefixer": "9.1.3",
+    "autoprefixer": "9.1.5",
     "babel-eslint": "9.0.0",
     "babel-jest": "23.4.2",
     "babel-loader": "^8.0.0",
     "babel-plugin-graphql-tag": "1.6.0",
     "babel-plugin-lodash": "3.3.4",
-    "babel-plugin-transform-imports": "1.5.0",
+    "babel-plugin-transform-imports": "1.5.1",
     "brace": "0.11.1",
     "cache-loader": "1.2.2",
     "chart.js": "2.7.2",
@@ -197,7 +198,7 @@
     "eslint-config-standard": "12.0.0",
     "eslint-plugin-import": "2.14.0",
     "eslint-plugin-node": "7.0.1",
-    "eslint-plugin-promise": "4.0.0",
+    "eslint-plugin-promise": "4.0.1",
     "eslint-plugin-standard": "4.0.0",
     "eslint-plugin-vue": "4.7.1",
     "file-loader": "2.0.0",
@@ -226,8 +227,8 @@
     "pug-loader": "2.4.0",
     "pug-plain-loader": "1.0.0",
     "raw-loader": "0.5.1",
-    "react": "16.4.2",
-    "react-dom": "16.4.2",
+    "react": "16.5.0",
+    "react-dom": "16.5.0",
     "sass-loader": "7.1.0",
     "sass-resources-loader": "1.3.3",
     "script-ext-html-webpack-plugin": "2.0.1",
@@ -240,7 +241,7 @@
     "vee-validate": "2.1.0-beta.8",
     "velocity-animate": "1.5.2",
     "vue": "2.5.17",
-    "vue-apollo": "3.0.0-beta.21",
+    "vue-apollo": "3.0.0-beta.24",
     "vue-chartjs": "3.4.0",
     "vue-clipboards": "1.2.4",
     "vue-codemirror": "4.0.5",
@@ -255,7 +256,7 @@
     "vue-tour": "1.0.1",
     "vue-tree-navigation": "3.0.1",
     "vuedraggable": "2.16.0",
-    "vuetify": "1.2.1",
+    "vuetify": "1.2.3",
     "vuex": "3.0.1",
     "vuex-pathify": "1.1.3",
     "vuex-persistedstate": "2.5.4",
@@ -266,8 +267,8 @@
     "webpack-hot-middleware": "2.23.1",
     "webpack-merge": "4.1.4",
     "whatwg-fetch": "2.0.4",
-    "write-file-webpack-plugin": "4.3.2",
-    "xterm": "3.6.0"
+    "write-file-webpack-plugin": "4.4.0",
+    "xterm": "3.7.0"
   },
   "browserslist": [
     "> 1%",

+ 2 - 0
server/core/db.js

@@ -34,6 +34,7 @@ module.exports = {
       case 'postgres':
         dbClient = 'pg'
         break
+      case 'mariadb':
       case 'mysql':
         dbClient = 'mysql2'
         break
@@ -52,6 +53,7 @@ module.exports = {
     this.knex = Knex({
       client: dbClient,
       useNullAsDefault: true,
+      asyncStackTraces: WIKI.IS_DEBUG,
       connection: dbConfig,
       pool: {
         async afterCreate(conn, done) {

+ 8 - 16
server/db/migrations/2.0.0.js

@@ -25,8 +25,7 @@ exports.up = knex => {
     })
     // AUTHENTICATION ----------------------
     .createTable('authentication', table => {
-      table.increments('id').primary()
-      table.string('key').notNullable().unique()
+      table.string('key').notNullable().primary()
       table.boolean('isEnabled').notNullable().defaultTo(false)
       table.json('config').notNullable()
       table.boolean('selfRegistration').notNullable().defaultTo(false)
@@ -42,8 +41,7 @@ exports.up = knex => {
     })
     // EDITORS -----------------------------
     .createTable('editors', table => {
-      table.increments('id').primary()
-      table.string('key').notNullable().unique()
+      table.string('key').notNullable().primary()
       table.boolean('isEnabled').notNullable().defaultTo(false)
       table.json('config').notNullable()
     })
@@ -56,8 +54,7 @@ exports.up = knex => {
     })
     // LOCALES -----------------------------
     .createTable('locales', table => {
-      table.increments('id').primary()
-      table.string('code', 2).notNullable().unique()
+      table.string('code', 2).notNullable().primary()
       table.json('strings')
       table.boolean('isRTL').notNullable().defaultTo(false)
       table.string('name').notNullable()
@@ -67,8 +64,7 @@ exports.up = knex => {
     })
     // LOGGING ----------------------------
     .createTable('loggers', table => {
-      table.increments('id').primary()
-      table.string('key').notNullable().unique()
+      table.string('key').notNullable().primary()
       table.boolean('isEnabled').notNullable().defaultTo(false)
       table.string('level').notNullable().defaultTo('warn')
       table.json('config')
@@ -106,29 +102,25 @@ exports.up = knex => {
     })
     // RENDERERS ---------------------------
     .createTable('renderers', table => {
-      table.increments('id').primary()
-      table.string('key').notNullable().unique()
+      table.string('key').notNullable().primary()
       table.boolean('isEnabled').notNullable().defaultTo(false)
       table.json('config')
     })
     // SEARCH ------------------------------
     .createTable('searchEngines', table => {
-      table.increments('id').primary()
-      table.string('key').notNullable().unique()
+      table.string('key').notNullable().primary()
       table.boolean('isEnabled').notNullable().defaultTo(false)
       table.json('config')
     })
     // SETTINGS ----------------------------
     .createTable('settings', table => {
-      table.increments('id').primary()
-      table.string('key').notNullable().unique()
+      table.string('key').notNullable().primary()
       table.json('value')
       table.string('updatedAt').notNullable()
     })
     // STORAGE -----------------------------
     .createTable('storage', table => {
-      table.increments('id').primary()
-      table.string('key').notNullable().unique()
+      table.string('key').notNullable().primary()
       table.boolean('isEnabled').notNullable().defaultTo(false)
       table.string('mode', ['sync', 'push', 'pull']).notNullable().defaultTo('push')
       table.json('config')

+ 27 - 4
server/graph/resolvers/system.js

@@ -8,7 +8,8 @@ const path = require('path')
 /* global WIKI */
 
 const dbTypes = {
-  mysql: 'MySQL / MariaDB',
+  mysql: 'MySQL',
+  mariadb: 'MariaDB',
   postgres: 'PostgreSQL',
   sqlite: 'SQLite',
   mssql: 'MS SQL Server'
@@ -35,11 +36,33 @@ module.exports = {
     dbType() {
       return _.get(dbTypes, WIKI.config.db.type, 'Unknown DB')
     },
-    dbVersion() {
-      return _.get(WIKI.models, 'knex.client.version', 'Unknown version')
+    async dbVersion() {
+      let version = 'Unknown Version'
+      switch (WIKI.config.db.type) {
+        case 'mariadb':
+        case 'mysql':
+          const resultMYSQL = await WIKI.models.knex.raw('SELECT VERSION() as version;')
+          version = _.get(resultMYSQL, '[0][0].version', 'Unknown Version')
+          break
+        case 'mssql':
+          const resultMSSQL = await WIKI.models.knex.raw('SELECT @@VERSION as version;')
+          version = _.get(resultMSSQL, '[0].version', 'Unknown Version')
+          break
+        case 'postgres':
+          version = _.get(WIKI.models, 'knex.client.version', 'Unknown Version')
+          break
+        case 'sqlite':
+          version = _.get(WIKI.models, 'knex.client.driver.VERSION', 'Unknown Version')
+          break
+      }
+      return version
     },
     dbHost() {
-      return WIKI.config.db.host
+      if (WIKI.config.db.type === 'sqlite') {
+        return WIKI.config.db.storage
+      } else {
+        return WIKI.config.db.host
+      }
     },
     latestVersion() {
       return '2.0.0' // TODO

+ 1 - 1
server/models/authentication.js

@@ -12,6 +12,7 @@ const commonHelper = require('../helpers/common')
  */
 module.exports = class Authentication extends Model {
   static get tableName() { return 'authentication' }
+  static get idColumn() { return 'key' }
 
   static get jsonSchema () {
     return {
@@ -19,7 +20,6 @@ module.exports = class Authentication extends Model {
       required: ['key', 'isEnabled'],
 
       properties: {
-        id: {type: 'integer'},
         key: {type: 'string'},
         isEnabled: {type: 'boolean'},
         config: {type: 'object'},

+ 1 - 1
server/models/editors.js

@@ -12,6 +12,7 @@ const commonHelper = require('../helpers/common')
  */
 module.exports = class Editor extends Model {
   static get tableName() { return 'editors' }
+  static get idColumn() { return 'key' }
 
   static get jsonSchema () {
     return {
@@ -19,7 +20,6 @@ module.exports = class Editor extends Model {
       required: ['key', 'isEnabled'],
 
       properties: {
-        id: {type: 'integer'},
         key: {type: 'string'},
         isEnabled: {type: 'boolean'},
         config: {type: 'object'}

+ 1 - 1
server/models/locales.js

@@ -5,6 +5,7 @@ const Model = require('objection').Model
  */
 module.exports = class User extends Model {
   static get tableName() { return 'locales' }
+  static get idColumn() { return 'code' }
 
   static get jsonSchema () {
     return {
@@ -12,7 +13,6 @@ module.exports = class User extends Model {
       required: ['code', 'name'],
 
       properties: {
-        id: {type: 'integer'},
         code: {type: 'string'},
         strings: {type: 'object'},
         isRTL: {type: 'boolean', default: false},

+ 1 - 1
server/models/loggers.js

@@ -12,6 +12,7 @@ const commonHelper = require('../helpers/common')
  */
 module.exports = class Logger extends Model {
   static get tableName() { return 'loggers' }
+  static get idColumn() { return 'key' }
 
   static get jsonSchema () {
     return {
@@ -19,7 +20,6 @@ module.exports = class Logger extends Model {
       required: ['key', 'isEnabled'],
 
       properties: {
-        id: {type: 'integer'},
         key: {type: 'string'},
         isEnabled: {type: 'boolean'},
         level: {type: 'string'},

+ 1 - 1
server/models/renderers.js

@@ -12,6 +12,7 @@ const commonHelper = require('../helpers/common')
  */
 module.exports = class Renderer extends Model {
   static get tableName() { return 'renderers' }
+  static get idColumn() { return 'key' }
 
   static get jsonSchema () {
     return {
@@ -19,7 +20,6 @@ module.exports = class Renderer extends Model {
       required: ['key', 'isEnabled'],
 
       properties: {
-        id: {type: 'integer'},
         key: {type: 'string'},
         isEnabled: {type: 'boolean'},
         config: {type: 'object'}

+ 1 - 1
server/models/searchEngines.js

@@ -12,6 +12,7 @@ const commonHelper = require('../helpers/common')
  */
 module.exports = class SearchEngine extends Model {
   static get tableName() { return 'searchEngines' }
+  static get idColumn() { return 'key' }
 
   static get jsonSchema () {
     return {
@@ -19,7 +20,6 @@ module.exports = class SearchEngine extends Model {
       required: ['key', 'isEnabled'],
 
       properties: {
-        id: {type: 'integer'},
         key: {type: 'string'},
         isEnabled: {type: 'boolean'},
         level: {type: 'string'},

+ 1 - 1
server/models/settings.js

@@ -8,6 +8,7 @@ const _ = require('lodash')
  */
 module.exports = class Setting extends Model {
   static get tableName() { return 'settings' }
+  static get idColumn() { return 'key' }
 
   static get jsonSchema () {
     return {
@@ -15,7 +16,6 @@ module.exports = class Setting extends Model {
       required: ['key', 'value'],
 
       properties: {
-        id: {type: 'integer'},
         key: {type: 'string'},
         value: {type: 'object'},
         createdAt: {type: 'string'},

+ 1 - 1
server/models/storage.js

@@ -12,6 +12,7 @@ const commonHelper = require('../helpers/common')
  */
 module.exports = class Storage extends Model {
   static get tableName() { return 'storage' }
+  static get idColumn() { return 'key' }
 
   static get jsonSchema () {
     return {
@@ -19,7 +20,6 @@ module.exports = class Storage extends Model {
       required: ['key', 'isEnabled'],
 
       properties: {
-        id: {type: 'integer'},
         key: {type: 'string'},
         isEnabled: {type: 'boolean'},
         mode: {type: 'string'},

+ 177 - 125
yarn.lock

@@ -1594,9 +1594,9 @@ apollo-engine-reporting-protobuf@0.0.1:
   dependencies:
     protobufjs "^6.8.6"
 
-apollo-engine-reporting@0.0.3:
-  version "0.0.3"
-  resolved "https://registry.yarnpkg.com/apollo-engine-reporting/-/apollo-engine-reporting-0.0.3.tgz#7ab09c0bd5fc023769d722b8472cd5f92f4e4034"
+apollo-engine-reporting@0.0.4:
+  version "0.0.4"
+  resolved "https://registry.yarnpkg.com/apollo-engine-reporting/-/apollo-engine-reporting-0.0.4.tgz#b2d6318febde9a1a64b518736d4695e81f069ba1"
   dependencies:
     apollo-engine-reporting-protobuf "0.0.1"
     apollo-server-env "2.0.3"
@@ -1719,15 +1719,15 @@ apollo-server-caching@^2.0.0-rc.6:
   version "2.0.0-rc.6"
   resolved "https://registry.yarnpkg.com/apollo-server-caching/-/apollo-server-caching-2.0.0-rc.6.tgz#31a672f52254ea399a84053e40c2b5c54e12296a"
 
-apollo-server-core@2.0.5:
-  version "2.0.5"
-  resolved "https://registry.yarnpkg.com/apollo-server-core/-/apollo-server-core-2.0.5.tgz#b0e2b6b46ad9485f17f40b3242ff070b46ddb6c7"
+apollo-server-core@2.0.6:
+  version "2.0.6"
+  resolved "https://registry.yarnpkg.com/apollo-server-core/-/apollo-server-core-2.0.6.tgz#ce49d9616729c482a7d10a9285af3db564ae2c5a"
   dependencies:
     "@apollographql/apollo-upload-server" "^5.0.3"
     "@types/ws" "^5.1.2"
     apollo-cache-control "0.2.3"
     apollo-datasource "0.1.3"
-    apollo-engine-reporting "0.0.3"
+    apollo-engine-reporting "0.0.4"
     apollo-server-caching "0.1.2"
     apollo-server-env "2.0.3"
     apollo-server-errors "2.0.2"
@@ -1786,9 +1786,9 @@ apollo-server-errors@^2.0.0-rc.6:
   version "2.0.0-rc.6"
   resolved "https://registry.yarnpkg.com/apollo-server-errors/-/apollo-server-errors-2.0.0-rc.6.tgz#28bc420ddda040073b49c68c8604ae7bb9180ed6"
 
-apollo-server-express@2.0.5:
-  version "2.0.5"
-  resolved "https://registry.yarnpkg.com/apollo-server-express/-/apollo-server-express-2.0.5.tgz#a576191df808d7e5ecf23665afae28fe78291372"
+apollo-server-express@2.0.6:
+  version "2.0.6"
+  resolved "https://registry.yarnpkg.com/apollo-server-express/-/apollo-server-express-2.0.6.tgz#31288f47479e4f18828823f46e059218e5e12203"
   dependencies:
     "@apollographql/apollo-upload-server" "^5.0.3"
     "@apollographql/graphql-playground-html" "^1.6.0"
@@ -1797,7 +1797,7 @@ apollo-server-express@2.0.5:
     "@types/cors" "^2.8.4"
     "@types/express" "4.16.0"
     accepts "^1.3.5"
-    apollo-server-core "2.0.5"
+    apollo-server-core "2.0.6"
     body-parser "^1.18.3"
     cors "^2.8.4"
     graphql-subscriptions "^0.5.8"
@@ -1822,12 +1822,12 @@ apollo-server-express@^2.0.0-rc.5:
     graphql-tools "^3.0.4"
     type-is "^1.6.16"
 
-apollo-server@2.0.6:
-  version "2.0.6"
-  resolved "https://registry.yarnpkg.com/apollo-server/-/apollo-server-2.0.6.tgz#c4d79162dfac887399d0dddda5c26941d959b806"
+apollo-server@2.0.7:
+  version "2.0.7"
+  resolved "https://registry.yarnpkg.com/apollo-server/-/apollo-server-2.0.7.tgz#a16741c9f7c6b04aff3a079451ae8c4c2abe5382"
   dependencies:
-    apollo-server-core "2.0.5"
-    apollo-server-express "2.0.5"
+    apollo-server-core "2.0.6"
+    apollo-server-express "2.0.6"
     express "^4.0.0"
     graphql-subscriptions "^0.5.8"
     graphql-tools "^3.0.4"
@@ -2057,12 +2057,12 @@ auto-load@3.0.1:
   version "3.0.1"
   resolved "https://registry.yarnpkg.com/auto-load/-/auto-load-3.0.1.tgz#fbdbc2ee26c123fe20b944df0a384228475ae22a"
 
-autoprefixer@9.1.3:
-  version "9.1.3"
-  resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.1.3.tgz#bd5940ccb9d1bfa3508308659915f0a14394c8d5"
+autoprefixer@9.1.5:
+  version "9.1.5"
+  resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.1.5.tgz#8675fd8d1c0d43069f3b19a2c316f3524e4f6671"
   dependencies:
-    browserslist "^4.0.2"
-    caniuse-lite "^1.0.30000878"
+    browserslist "^4.1.0"
+    caniuse-lite "^1.0.30000884"
     normalize-range "^0.1.2"
     num2fraction "^1.2.2"
     postcss "^7.0.2"
@@ -2225,9 +2225,9 @@ babel-plugin-syntax-object-rest-spread@^6.13.0:
   version "6.13.0"
   resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5"
 
-babel-plugin-transform-imports@1.5.0:
-  version "1.5.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-imports/-/babel-plugin-transform-imports-1.5.0.tgz#3105082ab489b1cee162e42d2ffe7b8f7c685f2e"
+babel-plugin-transform-imports@1.5.1:
+  version "1.5.1"
+  resolved "https://registry.yarnpkg.com/babel-plugin-transform-imports/-/babel-plugin-transform-imports-1.5.1.tgz#b3756696aea907719d0d63b0e67c88fba963adb0"
   dependencies:
     babel-types "^6.6.0"
     is-valid-path "^0.1.1"
@@ -2565,14 +2565,6 @@ browserslist@^4.0.0:
     electron-to-chromium "^1.3.52"
     node-releases "^1.0.0-alpha.10"
 
-browserslist@^4.0.2:
-  version "4.0.2"
-  resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.0.2.tgz#294388f5844bb3ab15ef7394ca17f49bf7a4e6f1"
-  dependencies:
-    caniuse-lite "^1.0.30000876"
-    electron-to-chromium "^1.3.57"
-    node-releases "^1.0.0-alpha.11"
-
 browserslist@^4.1.0:
   version "4.1.0"
   resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.1.0.tgz#81cbb8e52dfa09918f93c6e051d779cb7360785d"
@@ -2802,14 +2794,14 @@ caniuse-lite@^1.0.30000864, caniuse-lite@^1.0.30000865:
   version "1.0.30000874"
   resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000874.tgz#a641b1f1c420d58d9b132920ef6ba87bbdcd2223"
 
-caniuse-lite@^1.0.30000876:
-  version "1.0.30000877"
-  resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000877.tgz#f189673b86ecc06436520e3e391de6a13ca923b4"
-
 caniuse-lite@^1.0.30000878:
   version "1.0.30000883"
   resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000883.tgz#597c1eabfb379bd9fbeaa778632762eb574706ac"
 
+caniuse-lite@^1.0.30000884:
+  version "1.0.30000885"
+  resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000885.tgz#e889e9f8e7e50e769f2a49634c932b8aee622984"
+
 capture-stack-trace@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz#4a6fa07399c26bba47f0b2496b4d0fb408c5550d"
@@ -3143,7 +3135,7 @@ collection-visit@^1.0.0:
     map-visit "^1.0.0"
     object-visit "^1.0.0"
 
-color-convert@^0.5.0, color-convert@^0.5.3:
+color-convert@^0.5.3:
   version "0.5.3"
   resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-0.5.3.tgz#bdb6c69ce660fadffe0b0007cc447e1b9f7282bd"
 
@@ -3170,12 +3162,12 @@ color-string@^1.4.0, color-string@^1.5.2:
     color-name "^1.0.0"
     simple-swizzle "^0.2.2"
 
-color@0.8.x:
-  version "0.8.0"
-  resolved "https://registry.yarnpkg.com/color/-/color-0.8.0.tgz#890c07c3fd4e649537638911cf691e5458b6fca5"
+color@3.0.x, color@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/color/-/color-3.0.0.tgz#d920b4328d534a3ac8295d68f7bd4ba6c427be9a"
   dependencies:
-    color-convert "^0.5.0"
-    color-string "^0.3.0"
+    color-convert "^1.9.1"
+    color-string "^1.5.2"
 
 color@^0.11.0:
   version "0.11.4"
@@ -3199,16 +3191,9 @@ color@^2.0.1:
     color-convert "^1.9.1"
     color-string "^1.5.2"
 
-color@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/color/-/color-3.0.0.tgz#d920b4328d534a3ac8295d68f7bd4ba6c427be9a"
-  dependencies:
-    color-convert "^1.9.1"
-    color-string "^1.5.2"
-
-colornames@0.0.2:
-  version "0.0.2"
-  resolved "https://registry.yarnpkg.com/colornames/-/colornames-0.0.2.tgz#d811fd6c84f59029499a8ac4436202935b92be31"
+colornames@^1.1.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/colornames/-/colornames-1.1.1.tgz#f8889030685c7c4ff9e2a559f5077eb76a816f96"
 
 colors@^1.2.1:
   version "1.3.0"
@@ -3218,12 +3203,12 @@ colors@~1.1.2:
   version "1.1.2"
   resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63"
 
-colorspace@1.0.x:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/colorspace/-/colorspace-1.0.1.tgz#c99c796ed31128b9876a52e1ee5ee03a4a719749"
+colorspace@1.1.x:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/colorspace/-/colorspace-1.1.1.tgz#9ac2491e1bc6f8fb690e2176814f8d091636d972"
   dependencies:
-    color "0.8.x"
-    text-hex "0.0.x"
+    color "3.0.x"
+    text-hex "1.0.x"
 
 combined-stream@1.0.6, combined-stream@~1.0.5, combined-stream@~1.0.6:
   version "1.0.6"
@@ -4025,13 +4010,13 @@ detect-libc@^1.0.2:
   version "1.0.3"
   resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
 
-diagnostics@^1.0.1:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/diagnostics/-/diagnostics-1.1.0.tgz#e1090900b49523e8527be20f081275205f2ae36a"
+diagnostics@^1.1.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/diagnostics/-/diagnostics-1.1.1.tgz#cab6ac33df70c9d9a727490ae43ac995a769b22a"
   dependencies:
-    colorspace "1.0.x"
+    colorspace "1.1.x"
     enabled "1.0.x"
-    kuler "0.0.x"
+    kuler "1.0.x"
 
 dicer@0.2.5:
   version "0.2.5"
@@ -4254,10 +4239,6 @@ electron-to-chromium@^1.3.52:
   version "1.3.55"
   resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.55.tgz#f150e10b20b77d9d41afcca312efe0c3b1a7fdce"
 
-electron-to-chromium@^1.3.57:
-  version "1.3.58"
-  resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.58.tgz#8267a4000014e93986d9d18c65a8b4022ca75188"
-
 electron-to-chromium@^1.3.61:
   version "1.3.62"
   resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.62.tgz#2e8e2dc070c800ec8ce23ff9dfcceb585d6f9ed8"
@@ -4450,9 +4431,9 @@ eslint-plugin-node@7.0.1:
     resolve "^1.8.1"
     semver "^5.5.0"
 
-eslint-plugin-promise@4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-4.0.0.tgz#bc15a4aa04fa6116113b6c47488c421821b758fc"
+eslint-plugin-promise@4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-4.0.1.tgz#2d074b653f35a23d1ba89d8e976a985117d1c6a2"
 
 eslint-plugin-standard@4.0.0:
   version "4.0.0"
@@ -5621,9 +5602,9 @@ graphql-voyager@1.0.0-rc.19:
     reselect "^3.0.1"
     svg-pan-zoom "^3.5.2"
 
-graphql@14.0.0:
-  version "14.0.0"
-  resolved "https://registry.yarnpkg.com/graphql/-/graphql-14.0.0.tgz#4ee771c5266d08cb75df2d3ac41e8dd51ce3d599"
+graphql@14.0.2:
+  version "14.0.2"
+  resolved "https://registry.yarnpkg.com/graphql/-/graphql-14.0.2.tgz#7dded337a4c3fd2d075692323384034b357f5650"
   dependencies:
     iterall "^1.2.2"
 
@@ -5923,9 +5904,9 @@ i18next-localstorage-cache@1.1.1:
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/i18next-localstorage-cache/-/i18next-localstorage-cache-1.1.1.tgz#575256cc35e8cb2d88148f754766fdd2d24bb1b7"
 
-i18next-node-fs-backend@2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/i18next-node-fs-backend/-/i18next-node-fs-backend-2.0.0.tgz#ea0fc2c38523bdf8da24be00b73e3ad36ce907e3"
+i18next-node-fs-backend@2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/i18next-node-fs-backend/-/i18next-node-fs-backend-2.1.0.tgz#b0ad55eb8671b4dedbd21fe434fb50e964a4ece2"
   dependencies:
     js-yaml "3.12.0"
     json5 "2.0.0"
@@ -5934,9 +5915,9 @@ i18next-xhr-backend@1.5.1:
   version "1.5.1"
   resolved "https://registry.yarnpkg.com/i18next-xhr-backend/-/i18next-xhr-backend-1.5.1.tgz#50282610780c6a696d880dfa7f4ac1d01e8c3ad5"
 
-i18next@11.6.0:
-  version "11.6.0"
-  resolved "https://registry.yarnpkg.com/i18next/-/i18next-11.6.0.tgz#e0047aa3e3a0080f6f318426f90597cbb0d6ddd5"
+i18next@11.7.0:
+  version "11.7.0"
+  resolved "https://registry.yarnpkg.com/i18next/-/i18next-11.7.0.tgz#caf2f3d512ca5b2f556f065f698f33d44ca311d7"
 
 iconv-lite@0.4.19:
   version "0.4.19"
@@ -6116,6 +6097,10 @@ invert-kv@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6"
 
+invert-kv@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02"
+
 ioredis@4.0.0:
   version "4.0.0"
   resolved "https://registry.yarnpkg.com/ioredis/-/ioredis-4.0.0.tgz#fabf1cf8724f14fd0885233cf2f4fbc6e1e59da2"
@@ -6588,6 +6573,10 @@ js-base64@^2.1.8:
   version "2.4.5"
   resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.4.5.tgz#e293cd3c7c82f070d700fc7a1ca0a2e69f101f92"
 
+js-binary@1.2.0:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/js-binary/-/js-binary-1.2.0.tgz#59ecd73f936183c06a1ed72a811656ce6b84f65c"
+
 js-cookie@2.2.0:
   version "2.2.0"
   resolved "https://registry.yarnpkg.com/js-cookie/-/js-cookie-2.2.0.tgz#1b2c279a6eece380a12168b92485265b35b1effb"
@@ -6835,11 +6824,11 @@ knex@0.15.2:
     uuid "^3.3.2"
     v8flags "^3.1.1"
 
-kuler@0.0.x:
-  version "0.0.0"
-  resolved "https://registry.yarnpkg.com/kuler/-/kuler-0.0.0.tgz#b66bb46b934e550f59d818848e0abba4f7f5553c"
+kuler@1.0.x:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/kuler/-/kuler-1.0.0.tgz#904ad31c373b781695854d32be33818bf1d60250"
   dependencies:
-    colornames "0.0.2"
+    colornames "^1.1.1"
 
 last-call-webpack-plugin@^3.0.0:
   version "3.0.0"
@@ -6875,6 +6864,12 @@ lcid@^1.0.0:
   dependencies:
     invert-kv "^1.0.0"
 
+lcid@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf"
+  dependencies:
+    invert-kv "^2.0.0"
+
 ldap-filter@0.2.2:
   version "0.2.2"
   resolved "https://registry.yarnpkg.com/ldap-filter/-/ldap-filter-0.2.2.tgz#f2b842be0b86da3352798505b31ebcae590d77d0"
@@ -7178,9 +7173,9 @@ log-update@2.3.x:
     cli-cursor "^2.0.0"
     wrap-ansi "^3.0.1"
 
-logform@^1.9.0:
-  version "1.9.0"
-  resolved "https://registry.yarnpkg.com/logform/-/logform-1.9.0.tgz#7e02f7d6b7f70dcc8ae56fcd2d060f9547afbac2"
+logform@^1.9.1:
+  version "1.9.1"
+  resolved "https://registry.yarnpkg.com/logform/-/logform-1.9.1.tgz#58b29d7b11c332456d7a217e17b48a13ad69d60a"
   dependencies:
     colors "^1.2.1"
     fast-safe-stringify "^2.0.4"
@@ -7269,6 +7264,12 @@ mamacro@^0.0.3:
   version "0.0.3"
   resolved "https://registry.yarnpkg.com/mamacro/-/mamacro-0.0.3.tgz#ad2c9576197c9f1abf308d0787865bd975a3f3e4"
 
+map-age-cleaner@^0.1.1:
+  version "0.1.2"
+  resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.2.tgz#098fb15538fd3dbe461f12745b0ca8568d4e3f74"
+  dependencies:
+    p-defer "^1.0.0"
+
 map-cache@^0.2.0, map-cache@^0.2.2:
   version "0.2.2"
   resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf"
@@ -7410,6 +7411,14 @@ mem@^1.1.0:
   dependencies:
     mimic-fn "^1.0.0"
 
+mem@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/mem/-/mem-4.0.0.tgz#6437690d9471678f6cc83659c00cbafcd6b0cdaf"
+  dependencies:
+    map-age-cleaner "^0.1.1"
+    mimic-fn "^1.0.0"
+    p-is-promise "^1.1.0"
+
 memcached@~0.2.4:
   version "0.2.8"
   resolved "https://registry.yarnpkg.com/memcached/-/memcached-0.2.8.tgz#ffbf9498cbc30779625b77e77770bd50dc525212"
@@ -8275,6 +8284,14 @@ os-locale@^2.0.0:
     lcid "^1.0.0"
     mem "^1.1.0"
 
+os-locale@^3.0.0:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.0.1.tgz#3b014fbf01d87f60a1e5348d80fe870dc82c4620"
+  dependencies:
+    execa "^0.10.0"
+    lcid "^2.0.0"
+    mem "^4.0.0"
+
 os-tmpdir@^1.0.0, os-tmpdir@~1.0.2:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
@@ -8294,10 +8311,18 @@ output-file-sync@^2.0.0:
     is-plain-obj "^1.1.0"
     mkdirp "^0.5.1"
 
+p-defer@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c"
+
 p-finally@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
 
+p-is-promise@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-1.1.0.tgz#9c9456989e9f6588017b0434d56097675c3da05e"
+
 p-limit@^1.0.0, p-limit@^1.1.0:
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.2.0.tgz#0e92b6bedcb59f022c13d0f1949dc82d15909f1c"
@@ -9701,6 +9726,13 @@ prop-types@^15.5.10, prop-types@^15.5.4, prop-types@^15.6.0, prop-types@^15.6.1:
     loose-envify "^1.3.1"
     object-assign "^4.1.1"
 
+prop-types@^15.6.2:
+  version "15.6.2"
+  resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.2.tgz#05d5ca77b4453e985d60fc7ff8c859094a497102"
+  dependencies:
+    loose-envify "^1.3.1"
+    object-assign "^4.1.1"
+
 proto-list@~1.2.1:
   version "1.2.4"
   resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849"
@@ -9984,15 +10016,15 @@ range-parser@^1.0.3, range-parser@~1.2.0:
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e"
 
-raven@2.6.3:
-  version "2.6.3"
-  resolved "https://registry.yarnpkg.com/raven/-/raven-2.6.3.tgz#207475a12809277ef54eaceafe2597ff65262ab4"
+raven@2.6.4:
+  version "2.6.4"
+  resolved "https://registry.yarnpkg.com/raven/-/raven-2.6.4.tgz#458d4a380c8fbb59e0150c655625aaf60c167ea3"
   dependencies:
     cookie "0.3.1"
     md5 "^2.2.1"
     stack-trace "0.0.10"
     timed-out "4.0.1"
-    uuid "3.0.0"
+    uuid "3.3.2"
 
 raw-body@2.3.2:
   version "2.3.2"
@@ -10032,14 +10064,14 @@ react-css-themr@^2.1.2:
     hoist-non-react-statics "^1.2.0"
     invariant "^2.2.1"
 
-react-dom@16.4.2:
-  version "16.4.2"
-  resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.4.2.tgz#4afed569689f2c561d2b8da0b819669c38a0bda4"
+react-dom@16.5.0:
+  version "16.5.0"
+  resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.5.0.tgz#57704e5718669374b182a17ea79a6d24922cb27d"
   dependencies:
-    fbjs "^0.8.16"
     loose-envify "^1.1.0"
     object-assign "^4.1.1"
-    prop-types "^15.6.0"
+    prop-types "^15.6.2"
+    schedule "^0.3.0"
 
 react-modal@^2.3.3:
   version "2.4.1"
@@ -10085,14 +10117,14 @@ react-transition-group@^2.2.1:
     loose-envify "^1.3.1"
     prop-types "^15.6.1"
 
-react@16.4.2:
-  version "16.4.2"
-  resolved "https://registry.yarnpkg.com/react/-/react-16.4.2.tgz#2cd90154e3a9d9dd8da2991149fdca3c260e129f"
+react@16.5.0:
+  version "16.5.0"
+  resolved "https://registry.yarnpkg.com/react/-/react-16.5.0.tgz#f2c1e754bf9751a549d9c6d9aca41905beb56575"
   dependencies:
-    fbjs "^0.8.16"
     loose-envify "^1.1.0"
     object-assign "^4.1.1"
-    prop-types "^15.6.0"
+    prop-types "^15.6.2"
+    schedule "^0.3.0"
 
 read-cache@^1.0.0:
   version "1.0.0"
@@ -10697,6 +10729,12 @@ sax@>=0.1.1, sax@>=0.6.0, sax@^1.2.4, sax@~1.2.4:
   version "1.2.4"
   resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
 
+schedule@^0.3.0:
+  version "0.3.0"
+  resolved "https://registry.yarnpkg.com/schedule/-/schedule-0.3.0.tgz#1be2ab2fc2e768536269ce7326efb478d6c045e8"
+  dependencies:
+    object-assign "^4.1.1"
+
 schema-utils@^0.4.2, schema-utils@^0.4.4, schema-utils@^0.4.5:
   version "0.4.5"
   resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.5.tgz#21836f0608aac17b78f9e3e24daff14a5ca13a3e"
@@ -11441,9 +11479,9 @@ test-exclude@^4.2.1:
     read-pkg-up "^1.0.1"
     require-main-filename "^1.0.1"
 
-text-hex@0.0.x:
-  version "0.0.0"
-  resolved "https://registry.yarnpkg.com/text-hex/-/text-hex-0.0.0.tgz#578fbc85a6a92636e42dd17b41d0218cce9eb2b3"
+text-hex@1.0.x:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz#69dc9c1b17446ee79a92bf5b884bb4b9127506f5"
 
 text-table@^0.2.0:
   version "0.2.0"
@@ -11922,10 +11960,6 @@ utils-merge@1.0.1, utils-merge@1.x.x:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
 
-uuid@3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.0.0.tgz#6728fc0459c450d796a99c31837569bdf672d728"
-
 uuid@3.3.2, uuid@^3.3.2:
   version "3.3.2"
   resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131"
@@ -12029,9 +12063,9 @@ void-elements@^2.0.1:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec"
 
-vue-apollo@3.0.0-beta.21:
-  version "3.0.0-beta.21"
-  resolved "https://registry.yarnpkg.com/vue-apollo/-/vue-apollo-3.0.0-beta.21.tgz#f84358c92462f28ce80dfafdd6b77038e6ab5329"
+vue-apollo@3.0.0-beta.24:
+  version "3.0.0-beta.24"
+  resolved "https://registry.yarnpkg.com/vue-apollo/-/vue-apollo-3.0.0-beta.24.tgz#c688f65b69a74b0e2b85576c5c5bb5286458604e"
   dependencies:
     chalk "^2.4.1"
     throttle-debounce "^2.0.0"
@@ -12173,9 +12207,9 @@ vuedraggable@2.16.0:
   dependencies:
     sortablejs "^1.7.0"
 
-vuetify@1.2.1:
-  version "1.2.1"
-  resolved "https://registry.yarnpkg.com/vuetify/-/vuetify-1.2.1.tgz#00fc9568bd7ceeaa906b5c339be5f6934411ffa9"
+vuetify@1.2.3:
+  version "1.2.3"
+  resolved "https://registry.yarnpkg.com/vuetify/-/vuetify-1.2.3.tgz#519bab56c31420892912c0c7dbd23e790c9287bb"
 
 vuex-pathify@1.1.3:
   version "1.1.3"
@@ -12426,14 +12460,14 @@ winston-transport@^4.2.0:
     readable-stream "^2.3.6"
     triple-beam "^1.2.0"
 
-winston@3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/winston/-/winston-3.0.0.tgz#1f0b24a96586798bcf0cd149fb07ed47cb01a1b2"
+winston@3.1.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/winston/-/winston-3.1.0.tgz#80724376aef164e024f316100d5b178d78ac5331"
   dependencies:
     async "^2.6.0"
-    diagnostics "^1.0.1"
+    diagnostics "^1.1.1"
     is-stream "^1.1.0"
-    logform "^1.9.0"
+    logform "^1.9.1"
     one-time "0.0.4"
     readable-stream "^2.3.6"
     stack-trace "0.0.x"
@@ -12487,7 +12521,7 @@ wrappy@1:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
 
-write-file-atomic@^2.0.0:
+write-file-atomic@^2.0.0, write-file-atomic@^2.3.0:
   version "2.3.0"
   resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.3.0.tgz#1ff61575c2e2a4e8e510d6fa4e243cce183999ab"
   dependencies:
@@ -12495,9 +12529,9 @@ write-file-atomic@^2.0.0:
     imurmurhash "^0.1.4"
     signal-exit "^3.0.2"
 
-write-file-webpack-plugin@4.3.2:
-  version "4.3.2"
-  resolved "https://registry.yarnpkg.com/write-file-webpack-plugin/-/write-file-webpack-plugin-4.3.2.tgz#7b07b3be009be1da668edf46cfb8a357b404b912"
+write-file-webpack-plugin@4.4.0:
+  version "4.4.0"
+  resolved "https://registry.yarnpkg.com/write-file-webpack-plugin/-/write-file-webpack-plugin-4.4.0.tgz#344e1551156e015c759d455a0b002c3b54bcad2e"
   dependencies:
     chalk "^2.4.0"
     debug "^3.1.0"
@@ -12505,6 +12539,7 @@ write-file-webpack-plugin@4.3.2:
     lodash "^4.17.5"
     mkdirp "^0.5.1"
     moment "^2.22.1"
+    write-file-atomic "^2.3.0"
 
 write@^0.2.1:
   version "0.2.1"
@@ -12616,9 +12651,9 @@ xtend@^4.0.0, xtend@~4.0.1:
   version "4.0.1"
   resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
 
-xterm@3.6.0:
-  version "3.6.0"
-  resolved "https://registry.yarnpkg.com/xterm/-/xterm-3.6.0.tgz#9b95cd23a338e5842343aec1a104f094c5153e7c"
+xterm@3.7.0:
+  version "3.7.0"
+  resolved "https://registry.yarnpkg.com/xterm/-/xterm-3.7.0.tgz#b3eb1335dc04b92abe361711731d3b661e13db17"
 
 y18n@^3.2.1:
   version "3.2.1"
@@ -12662,7 +12697,24 @@ yargs-parser@^5.0.0:
   dependencies:
     camelcase "^3.0.0"
 
-yargs@12.0.1, yargs@^12.0.1:
+yargs@12.0.2:
+  version "12.0.2"
+  resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.2.tgz#fe58234369392af33ecbef53819171eff0f5aadc"
+  dependencies:
+    cliui "^4.0.0"
+    decamelize "^2.0.0"
+    find-up "^3.0.0"
+    get-caller-file "^1.0.1"
+    os-locale "^3.0.0"
+    require-directory "^2.1.1"
+    require-main-filename "^1.0.1"
+    set-blocking "^2.0.0"
+    string-width "^2.0.0"
+    which-module "^2.0.0"
+    y18n "^3.2.1 || ^4.0.0"
+    yargs-parser "^10.1.0"
+
+yargs@^12.0.1:
   version "12.0.1"
   resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.1.tgz#6432e56123bb4e7c3562115401e98374060261c2"
   dependencies: