You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@weex.apache.org by cn...@apache.org on 2019/12/17 10:40:37 UTC

[incubator-weex-cli] branch debug-frontend updated: perf: deubg frontend yarn dev successful

This is an automated email from the ASF dual-hosted git repository.

cnryb pushed a commit to branch debug-frontend
in repository https://gitbox.apache.org/repos/asf/incubator-weex-cli.git


The following commit(s) were added to refs/heads/debug-frontend by this push:
     new 179b3f7  perf: deubg frontend yarn dev successful
179b3f7 is described below

commit 179b3f77353ce9bed3fefc715cc7dc3887ab394f
Author: 任跃兵 <cn...@live.cn>
AuthorDate: Tue Dec 17 18:38:28 2019 +0800

    perf: deubg frontend yarn dev successful
---
 packages/@weex/plugins/debug/frontend/package.json |   2 +-
 .../debug/frontend/src/components/navbar/navbar.ts |  36 +++---
 packages/@weex/plugins/debug/frontend/src/main.ts  |  10 +-
 .../debug/frontend/src/views/analyze/analyze.ts    | 100 ++++++++--------
 .../debug/frontend/src/views/default/default.ts    |  10 +-
 .../plugins/debug/frontend/src/views/eval/eval.ts  |  12 +-
 .../plugins/debug/frontend/src/views/home/home.ts  |  38 +++----
 .../plugins/debug/frontend/src/views/weex/weex.ts  | 126 +++++++++++----------
 packages/@weex/plugins/debug/frontend/yarn.lock    | 102 ++++-------------
 9 files changed, 189 insertions(+), 247 deletions(-)

diff --git a/packages/@weex/plugins/debug/frontend/package.json b/packages/@weex/plugins/debug/frontend/package.json
index 8537695..7237c36 100644
--- a/packages/@weex/plugins/debug/frontend/package.json
+++ b/packages/@weex/plugins/debug/frontend/package.json
@@ -105,7 +105,7 @@
     "tslint-config-standard": "~7.0.0",
     "tslint-eslint-rules": "^5.4.0",
     "tslint-loader": "~3.5.3",
-    "typescript": "~2.7.1",
+    "typescript": "^3.7.3",
     "url-loader": "~0.6.2",
     "vue": "2.5.21",
     "vue-hot-reload-api": "~2.2.4",
diff --git a/packages/@weex/plugins/debug/frontend/src/components/navbar/navbar.ts b/packages/@weex/plugins/debug/frontend/src/components/navbar/navbar.ts
index ef5fefd..4432b2e 100644
--- a/packages/@weex/plugins/debug/frontend/src/components/navbar/navbar.ts
+++ b/packages/@weex/plugins/debug/frontend/src/components/navbar/navbar.ts
@@ -16,12 +16,12 @@
  * under the License.
  */
 import { Component, Vue, Watch, Prop } from 'vue-property-decorator'
-import bCollapse from 'bootstrap-vue/es/components/collapse/collapse'
-import bNavItem from 'bootstrap-vue/es/components/nav/nav-item'
-import bNavbar from 'bootstrap-vue/es/components/navbar/navbar'
-import bNavbarToggle from 'bootstrap-vue/es/components/navbar/navbar-toggle'
-import bNavbarBrand from 'bootstrap-vue/es/components/navbar/navbar-brand'
-import bNavbarNav from 'bootstrap-vue/es/components/navbar/navbar-nav'
+import { BCollapse } from 'bootstrap-vue/esm/components/collapse/collapse'
+import { BNavItem } from 'bootstrap-vue/esm/components/nav/nav-item'
+import { BNavbar } from 'bootstrap-vue/esm/components/navbar/navbar'
+import { BNavbarToggle } from 'bootstrap-vue/esm/components/navbar/navbar-toggle'
+import { BNavbarBrand } from 'bootstrap-vue/esm/components/navbar/navbar-brand'
+import { BNavbarNav } from 'bootstrap-vue/esm/components/navbar/navbar-nav'
 import * as types from '../../store/mutation-types'
 
 import './navbar.scss'
@@ -33,12 +33,12 @@ import {
 @Component({
   template: require('./navbar.html'),
   components: {
-    'b-collapse': bCollapse,
-    'b-nav-item': bNavItem,
-    'b-navbar': bNavbar,
-    'b-navbar-toggle': bNavbarToggle,
-    'b-navbar-brand': bNavbarBrand,
-    'b-navbar-nav': bNavbarNav
+    'b-collapse': BCollapse,
+    'b-nav-item': BNavItem,
+    'b-navbar': BNavbar,
+    'b-navbar-toggle': BNavbarToggle,
+    'b-navbar-brand': BNavbarBrand,
+    'b-navbar-nav': BNavbarNav
   }
 })
 export class NavbarComponent extends Vue {
@@ -46,28 +46,28 @@ export class NavbarComponent extends Vue {
   @State('helpSetting') helpSetting
   @State('bundleSetting') bundleSetting
 
-  get enableEnvironmentSetting () {
+  get enableEnvironmentSetting() {
     return this.$route.meta.setting
   }
 
-  get title () {
+  get title() {
     return this.$t(`${this.$route.meta.title}.title`)
   }
 
   @Watch('$route.path')
-  pathChanged () {
+  pathChanged() {
     console.log('Changed current path to: ' + this.$route.path)
   }
 
-  toggleEnvironmentSetting () {
+  toggleEnvironmentSetting() {
     this.$store.commit(types.UPDATE_ENVIRONMENT_SETTING, !this.environmentSetting)
   }
 
-  toggleHelpSetting () {
+  toggleHelpSetting() {
     this.$store.commit(types.UPDATE_HELP_SETTING, !this.helpSetting)
   }
 
-  toggleBundlesModal () {
+  toggleBundlesModal() {
     this.$store.commit(types.UPDATE_BUNDLE_SETTING, !this.bundleSetting)
   }
 }
diff --git a/packages/@weex/plugins/debug/frontend/src/main.ts b/packages/@weex/plugins/debug/frontend/src/main.ts
index a7b23bd..7576696 100644
--- a/packages/@weex/plugins/debug/frontend/src/main.ts
+++ b/packages/@weex/plugins/debug/frontend/src/main.ts
@@ -26,8 +26,8 @@ import Snotify, { SnotifyPosition, SnotifyToastConfig } from 'vue-snotify'
 import VueResource from 'vue-resource'
 import TreeView from 'vue-json-tree-view'
 import VueClipboard from 'vue-clipboard2'
-import vBTooltip from 'bootstrap-vue/es/directives/tooltip/tooltip'
-import vBPopover from 'bootstrap-vue/es/directives/popover/popover'
+import { VBTooltip } from 'bootstrap-vue/esm/directives/tooltip/tooltip'
+import { VBPopover } from 'bootstrap-vue/esm/directives/popover/popover'
 import i18n from './lang'
 
 // const navbarComponent = () => import('./components/navbar').then(({ NavbarComponent }) => NavbarComponent)
@@ -43,10 +43,10 @@ Vue.use(TreeView)
 // let vue-clipboard2 set container to current element by doing this
 VueClipboard.config.autoSetContainer = true
 Vue.use(VueClipboard)
-Vue.directive('b-popover', vBPopover)
-Vue.directive('b-tooltip', vBTooltip)
+Vue.directive('b-popover', VBPopover)
+Vue.directive('b-tooltip', VBTooltip)
 
-const options: {toast: SnotifyToastConfig} = {
+const options: { toast: SnotifyToastConfig } = {
   toast: {
     position: SnotifyPosition.centerTop,
     bodyMaxLength: 20,
diff --git a/packages/@weex/plugins/debug/frontend/src/views/analyze/analyze.ts b/packages/@weex/plugins/debug/frontend/src/views/analyze/analyze.ts
index 947801e..e593b9a 100644
--- a/packages/@weex/plugins/debug/frontend/src/views/analyze/analyze.ts
+++ b/packages/@weex/plugins/debug/frontend/src/views/analyze/analyze.ts
@@ -21,19 +21,19 @@ import {
   Action,
   namespace
 } from 'vuex-class'
-import bCheckbox from 'bootstrap-vue/es/components/form-checkbox/form-checkbox'
-import bEmbed from 'bootstrap-vue/es/components/embed/embed'
-import bTable from 'bootstrap-vue/es/components/table/table'
-import bProgress from 'bootstrap-vue/es/components/progress/progress'
-import bButton from 'bootstrap-vue/es/components/button/button'
-import bModal from 'bootstrap-vue/es/components/modal/modal'
+import { BFormCheckbox } from 'bootstrap-vue/esm/components/form-checkbox'
+import { BEmbed } from 'bootstrap-vue/esm/components/embed'
+import { BTable } from 'bootstrap-vue/esm/components/table'
+import { BProgress } from 'bootstrap-vue/esm/components/progress'
+import { BButton } from 'bootstrap-vue/esm/components/button'
+import { BModal } from 'bootstrap-vue/esm/components/modal'
 import SockJS from 'simple-websocket'
 import * as types from '../../store/mutation-types'
 import { Parser } from '../../util/parser'
 import { SelectComponent } from '../../components/select'
 import VeWaterfallBar from 'v-charts/lib/waterfall.common'
-import bFormRadioGroup from 'bootstrap-vue/es/components/form-radio/form-radio-group'
-import bPopover from 'bootstrap-vue/es/components/popover/popover'
+import { BFormRadioGroup } from 'bootstrap-vue/esm/components'
+import { BPopover } from 'bootstrap-vue/esm/components/popover'
 import './analyze.scss'
 
 const Module = namespace('analyze')
@@ -41,15 +41,15 @@ const Module = namespace('analyze')
 @Component({
   template: require('./analyze.html'),
   components: {
-    'b-embed': bEmbed,
-    'b-button': bButton,
+    'b-embed': BEmbed,
+    'b-button': BButton,
     'wx-select': SelectComponent,
-    'b-checkbox': bCheckbox,
-    'b-progress': bProgress,
-    'b-table': bTable,
-    'b-modal': bModal,
-    'b-popover': bPopover,
-    'b-form-radio-group': bFormRadioGroup,
+    'b-checkbox': BFormCheckbox,
+    'b-progress': BProgress,
+    'b-table': BTable,
+    'b-modal': BModal,
+    'b-popover': BPopover,
+    'b-form-radio-group': BFormRadioGroup,
     've-waterfall': VeWaterfallBar
   }
 })
@@ -116,7 +116,7 @@ export class AnalyzeComponent extends Vue {
   progressValue: number = 0
   progressMaxValue: number = 0
   performanceTableData: any = {
-    fields: [ {
+    fields: [{
       key: 'name',
       label: '指标项'
     }, {
@@ -125,7 +125,7 @@ export class AnalyzeComponent extends Vue {
     }, {
       key: 'description',
       label: '说明'
-    } ],
+    }],
     items: [
     ]
   }
@@ -150,10 +150,10 @@ export class AnalyzeComponent extends Vue {
     value: 'all'
   }]
   @Watch('historys')
-  historyChange () {
+  historyChange() {
     let downloadContent
     let len = this.historys.length
-    for (let i = 0; i < len;i++) {
+    for (let i = 0; i < len; i++) {
       if (this.historys[i].key === this.activeId) {
         downloadContent = this.historys[i]
         break
@@ -161,10 +161,10 @@ export class AnalyzeComponent extends Vue {
     }
     let downloadTime = new Date()
     this.downloadName = `${downloadTime.getTime()}-${this.reportData.properties.wxBizID}.json`
-    this.downloadHref = URL.createObjectURL(new Blob([JSON.stringify(downloadContent,null,2)]))
+    this.downloadHref = URL.createObjectURL(new Blob([JSON.stringify(downloadContent, null, 2)]))
   }
 
-  mockAfterConfig (options) {
+  mockAfterConfig(options) {
     let xAxis = options.xAxis
     let yAxis = options.yAxis
     options.xAxis = yAxis
@@ -174,7 +174,7 @@ export class AnalyzeComponent extends Vue {
     options.series[1].label.normal.formatter = (item) => {
       return `${item.data}ms`
     }
-    options.color = ['#f37327','#f37327', '#61a0a8']
+    options.color = ['#f37327', '#f37327', '#61a0a8']
     if (this.relativePositionWithFsAndAsync) {
       options.series[0].data[2] = options.series[0].data[3] + this.relativePositionWithFsAndAsync
       options.series[0].data[1] = options.series[0].data[1] + this.relativePositionWithFsAndAsync - options.series[1].data[3]
@@ -187,26 +187,26 @@ export class AnalyzeComponent extends Vue {
   @Prop({ type: String })
   private channelId: { value: string }
 
-  get reloadToggle () {
+  get reloadToggle() {
     return this.reload
   }
-  set reloadToggle (value) {
+  set reloadToggle(value) {
     this.updateToggle({ value: value, name: 'reloadToggle' })
   }
-  get captureToggle () {
+  get captureToggle() {
     return this.capture
   }
-  set captureToggle (value) {
+  set captureToggle(value) {
     this.updateToggle({ value: value, name: 'captureToggle' })
   }
-  get compareToggle () {
+  get compareToggle() {
     return this.compare
   }
-  set compareToggle (value) {
+  set compareToggle(value) {
     this.updateToggle({ value: value, name: 'compareToggle' })
   }
 
-  mounted () {
+  mounted() {
     if (!this.parser) {
       this.parser = new Parser()
     }
@@ -214,7 +214,7 @@ export class AnalyzeComponent extends Vue {
     this.$store.commit(types.UPDATE_CHANNEL_ID, this.channelId)
   }
 
-  initData () {
+  initData() {
     let jsAsyncTime
     let fsViewTime = this.reportData.stage.wxFirstInteractionView - this.reportData.stage.wxEndLoadBundle
     let bundleCompileTime = this.reportData.stage.wxEndLoadBundle - this.reportData.stage.wxRenderTimeOrigin
@@ -255,7 +255,7 @@ export class AnalyzeComponent extends Vue {
       }
     }
     this.chartData.rows.push({
-      '耗时': fsViewTime ,
+      '耗时': fsViewTime,
       '类型': '首屏视图编译时间'
     })
     this.chartData.rows.push({
@@ -305,7 +305,7 @@ export class AnalyzeComponent extends Vue {
       }
       let len = this.reportData.wxinteraction.length
       let types = []
-      for (let index = 0; index < len; index ++) {
+      for (let index = 0; index < len; index++) {
         if (index === 0) {
           this.reportData.wxinteraction[index].diff = 0
         } else {
@@ -359,11 +359,11 @@ export class AnalyzeComponent extends Vue {
     this.pageScoreTableData = this.generateScoreData(performanceScoreData, this.performanceScoreTextMap, this.performanceScoreSeed)
   }
 
-  initWebSocket () {
+  initWebSocket() {
     this.connection()
   }
 
-  connection () {
+  connection() {
     this.socket = new SockJS(`ws://${this.webSocketHost}/debugProxy/debugger/${this.channelId}`)
     this.socket.on('connect', (data) => {
       this.socket.send(JSON.stringify({ method: 'Page.stopScreencast' }))
@@ -385,7 +385,7 @@ export class AnalyzeComponent extends Vue {
             }
           } else if (this.completeCounter[key]) {
             if (this.completeCounter[key].value === data.params[key].length) {
-              this.completeCounter[key].count ++
+              this.completeCounter[key].count++
             } else {
               this.completeCounter[key].count = 1
               this.completeCounter[key].value = data.params[key].length
@@ -404,7 +404,7 @@ export class AnalyzeComponent extends Vue {
         for (let item in data.params) {
           let instanceID = item
           dataCopy[instanceID] = []
-          for (let index = 0; index < data.params[item].length; index ++) {
+          for (let index = 0; index < data.params[item].length; index++) {
             if (!dataCopy[instanceID][data.params[item][index].type]) {
               dataCopy[instanceID][data.params[item][index].type] = []
             }
@@ -452,35 +452,35 @@ export class AnalyzeComponent extends Vue {
     })
   }
 
-  handleCaptureTimesChange (value) {
+  handleCaptureTimesChange(value) {
     this.updateDefaultCapture(value)
   }
 
-  handleHistoryChange (value) {
+  handleHistoryChange(value) {
     this.updateDefaultHistory(value)
   }
 
-  handleFilterTypeChange (value) {
+  handleFilterTypeChange(value) {
     this.defaultRenderType = value
   }
 
-  activeHistory (history) {
+  activeHistory(history) {
     this.reportData = history.data
     this.activeId = history.key
     this.initData()
   }
 
-  handleSetting () {
+  handleSetting() {
     this.reportData = ''
     this.activeId = ''
   }
 
-  startAnalyze () {
+  startAnalyze() {
     if (!this.start) {
       this.start = true
       this.activeId = ''
       this.reportData = ''
-      this.$snotify.async('捕获数据中...', () => new Promise((resolve, reject) => {}))
+      this.$snotify.async('捕获数据中...', () => new Promise((resolve, reject) => { }))
       if (this.reload) {
         this.socket.send(JSON.stringify({ method: 'WxDebug.reload' }))
       }
@@ -511,7 +511,7 @@ export class AnalyzeComponent extends Vue {
 
   }
 
-  clearHistory (activeId) {
+  clearHistory(activeId) {
     let historys = [].concat(this.historys)
     if (activeId) {
       historys = historys.filter((hisotry) => {
@@ -530,7 +530,7 @@ export class AnalyzeComponent extends Vue {
     }
   }
 
-  showDetail (type, value) {
+  showDetail(type, value) {
     if (type) {
       this.treeViewerOptions.rootObjectKey = type
     }
@@ -538,7 +538,7 @@ export class AnalyzeComponent extends Vue {
     this.modalShow = true
   }
 
-  generateScoreData (raw, map, scoreMap) {
+  generateScoreData(raw, map, scoreMap) {
     let len = raw.length
     let data = []
     let scoreSum = 100
@@ -592,11 +592,11 @@ export class AnalyzeComponent extends Vue {
     }
   }
 
-  copyText (message) {
-    this.$copyText(message).then(() => {})
+  copyText(message) {
+    this.$copyText(message).then(() => { })
   }
 
-  tirggerFile (event) {
+  tirggerFile(event) {
     const files = event.target.files
     if (files && files.length > 0 && files[0].size > 0) {
       let file = files[0]
diff --git a/packages/@weex/plugins/debug/frontend/src/views/default/default.ts b/packages/@weex/plugins/debug/frontend/src/views/default/default.ts
index c5da06d..5283ce0 100644
--- a/packages/@weex/plugins/debug/frontend/src/views/default/default.ts
+++ b/packages/@weex/plugins/debug/frontend/src/views/default/default.ts
@@ -22,9 +22,7 @@ import {
   namespace
 } from 'vuex-class'
 import SockJS from 'simple-websocket'
-import bContainer from 'bootstrap-vue/es/components/layout/container'
-import bCol from 'bootstrap-vue/es/components/layout/col'
-import bRow from 'bootstrap-vue/es/components/layout/row'
+import { BContainer, BCol, BRow } from 'bootstrap-vue/esm'
 import QrcodeVue from 'qrcode.vue'
 import './default.scss'
 
@@ -38,9 +36,9 @@ export interface Tip {
 @Component({
   template: require('./default.html'),
   components: {
-    'b-container': bContainer,
-    'b-col': bCol,
-    'b-row': bRow,
+    'b-container': BContainer,
+    'b-col': BCol,
+    'b-row': BRow,
     'qrcode': QrcodeVue
   }
 })
diff --git a/packages/@weex/plugins/debug/frontend/src/views/eval/eval.ts b/packages/@weex/plugins/debug/frontend/src/views/eval/eval.ts
index e7a4989..87da3b3 100644
--- a/packages/@weex/plugins/debug/frontend/src/views/eval/eval.ts
+++ b/packages/@weex/plugins/debug/frontend/src/views/eval/eval.ts
@@ -21,9 +21,9 @@ import {
   Action,
   namespace
 } from 'vuex-class'
-import bEmbed from 'bootstrap-vue/es/components/embed/embed'
-import bFormSelect from 'bootstrap-vue/es/components/form-select/form-select'
-import bButton from 'bootstrap-vue/es/components/button/button'
+import { BEmbed } from 'bootstrap-vue/esm/components/embed/embed'
+import { BFormSelect } from 'bootstrap-vue/esm/components/form-select/form-select'
+import { BButton } from 'bootstrap-vue/esm/components/button/button'
 import SockJS from 'simple-websocket'
 import * as types from '../../store/mutation-types'
 import { Environment } from '../../store/modules/weex'
@@ -36,9 +36,9 @@ const Module = namespace('eval')
 @Component({
   template: require('./eval.html'),
   components: {
-    'b-embed': bEmbed,
-    'b-button': bButton,
-    'b-form-select': bFormSelect
+    'b-embed': BEmbed,
+    'b-button': BButton,
+    'b-form-select': BFormSelect
   }
 })
 export class EvalComponent extends Vue {
diff --git a/packages/@weex/plugins/debug/frontend/src/views/home/home.ts b/packages/@weex/plugins/debug/frontend/src/views/home/home.ts
index c955f53..d36ed10 100644
--- a/packages/@weex/plugins/debug/frontend/src/views/home/home.ts
+++ b/packages/@weex/plugins/debug/frontend/src/views/home/home.ts
@@ -22,11 +22,11 @@ import {
   namespace
 } from 'vuex-class'
 import SockJS from 'simple-websocket'
-import bContainer from 'bootstrap-vue/es/components/layout/container'
-import bCol from 'bootstrap-vue/es/components/layout/col'
-import bRow from 'bootstrap-vue/es/components/layout/row'
+import { BContainer } from 'bootstrap-vue/esm/components/layout/container'
+import { BCol } from 'bootstrap-vue/esm/components/layout/col'
+import { BRow } from 'bootstrap-vue/esm/components/layout/row'
 import QrcodeVue from 'qrcode.vue'
-import bPopover from 'bootstrap-vue/es/components/popover/popover'
+import { BPopover } from 'bootstrap-vue/esm/components/popover/popover'
 import filters from './filters'
 import './home.scss'
 
@@ -42,10 +42,10 @@ export interface Tip {
 @Component({
   template: require('./home.html'),
   components: {
-    'b-container': bContainer,
-    'b-col': bCol,
-    'b-row': bRow,
-    'b-popover': bPopover,
+    'b-container': BContainer,
+    'b-col': BCol,
+    'b-row': BRow,
+    'b-popover': BPopover,
     'qrcode': QrcodeVue
   },
   filters
@@ -65,18 +65,18 @@ export class HomeComponent extends Vue {
   activeBundle: string = localStorage.getItem('activeBundle') || ''
   socket: any = null
 
-  mounted () {
+  mounted() {
     this.initWebSocket()
     if (!this.socket) {
       this.initWebSocket()
     }
   }
 
-  created () {
+  created() {
     this.initTips()
   }
 
-  initTips () {
+  initTips() {
     this.tips = [
       {
         icon: 'icon-feiji',
@@ -105,11 +105,11 @@ export class HomeComponent extends Vue {
     ]
   }
 
-  initWebSocket () {
+  initWebSocket() {
     this.connection()
   }
 
-  connection () {
+  connection() {
     this.socket = new SockJS(`ws://${this.webSocketHost}/page/entry`)
     this.socket.on('connect', (data) => {
       this.socket.send(JSON.stringify({ method: 'WxDebug.applyChannelId' }))
@@ -135,23 +135,23 @@ export class HomeComponent extends Vue {
     })
   }
 
-  toggleType (type) {
+  toggleType(type) {
     this.activeType = type
     localStorage.setItem(`activeMode`, type)
   }
 
-  disconnect () {
+  disconnect() {
     this.socket && this.socket.connected && this.socket.close()
     this.cleanQRCode()
     this.$snotify.clear()
   }
 
-  openQRCode (bundle: any) {
+  openQRCode(bundle: any) {
     this.activeBundle = bundle.entry
     localStorage.setItem('activeBundle', bundle.entry)
   }
 
-  open (value: string) {
+  open(value: string) {
     this.$snotify.async(`${this.$t('home.toastTips.openPage')} ...`, () => new Promise((resolve, reject) => {
       this.socket.send(JSON.stringify({ method: 'WxDebug.openFile', params: value }))
       setTimeout(() => resolve({
@@ -164,13 +164,13 @@ export class HomeComponent extends Vue {
     }))
   }
 
-  handleLanguageSetting (locale: string) {
+  handleLanguageSetting(locale: string) {
     this.$i18n.locale = locale
     this.initTips()
     localStorage.setItem('language', locale)
   }
 
-  async copy (value: string, filterName: string) {
+  async copy(value: string, filterName: string) {
     if (filterName) {
       value = filters[filterName](value)
     }
diff --git a/packages/@weex/plugins/debug/frontend/src/views/weex/weex.ts b/packages/@weex/plugins/debug/frontend/src/views/weex/weex.ts
index 0056b92..a7d9e09 100644
--- a/packages/@weex/plugins/debug/frontend/src/views/weex/weex.ts
+++ b/packages/@weex/plugins/debug/frontend/src/views/weex/weex.ts
@@ -22,11 +22,11 @@ import {
   namespace
 } from 'vuex-class'
 import QrcodeVue from 'qrcode.vue'
-import bEmbed from 'bootstrap-vue/es/components/embed/embed'
-import bFormSelect from 'bootstrap-vue/es/components/form-select/form-select'
-import bButton from 'bootstrap-vue/es/components/button/button'
+import { BEmbed } from 'bootstrap-vue/esm/components/embed/embed'
+import { BFormSelect } from 'bootstrap-vue/esm/components/form-select/form-select'
+import { BButton } from 'bootstrap-vue/esm/components/button/button'
 import SockJS from 'simple-websocket'
-import bModal from 'bootstrap-vue/es/components/modal/modal'
+import { BModal } from 'bootstrap-vue/esm/components/modal/modal'
 import MonacoEditor from 'vue-monaco-editor'
 import * as types from '../../store/mutation-types'
 import { Environment } from '../../store/modules/weex'
@@ -38,10 +38,10 @@ const Module = namespace('weex')
 @Component({
   template: require('./weex.html'),
   components: {
-    'b-embed': bEmbed,
-    'b-button': bButton,
-    'b-modal': bModal,
-    'b-form-select': bFormSelect,
+    'b-embed': BEmbed,
+    'b-button': BButton,
+    'b-modal': BModal,
+    'b-form-select': BFormSelect,
     'monacoeditor': MonacoEditor,
     'qrcode': QrcodeVue
   }
@@ -115,22 +115,22 @@ export class WeexComponent extends Vue {
   @Prop({ type: String })
   private channelId: { value: string }
   // computed
-  get remoteDebugStatus () {
+  get remoteDebugStatus() {
     return this.remoteDebug
   }
-  get networkStatus () {
+  get networkStatus() {
     return this.network
   }
-  get sourcejs () {
+  get sourcejs() {
     return this.environment.sourcejs
   }
-  set sourcejs (value: string) {
+  set sourcejs(value: string) {
     this.updateWeexEnvironment('sourcejs', value)
   }
-  get elementModeSelected () {
+  get elementModeSelected() {
     return this.elementMode
   }
-  set elementModeSelected (value: boolean) {
+  set elementModeSelected(value: boolean) {
     this.updateForm({ type: types.UPDATE_ELEMENT_MODE_STATUS, value: value })
     this.socket.send(JSON.stringify({
       method: 'WxDebug.setElementMode',
@@ -139,10 +139,10 @@ export class WeexComponent extends Vue {
       }
     }))
   }
-  get logLevelSelected () {
+  get logLevelSelected() {
     return this.logLevel
   }
-  set logLevelSelected (value: boolean) {
+  set logLevelSelected(value: boolean) {
     this.updateForm({ type: types.UPDATE_LOG_LEVEL_STATUS, value: value })
     this.socket.send(JSON.stringify({
       method: 'WxDebug.setLogLevel',
@@ -152,34 +152,34 @@ export class WeexComponent extends Vue {
     }))
   }
 
-  get workerjs () {
+  get workerjs() {
     return this.environment.workerjs
   }
-  set workerjs (value: string) {
+  set workerjs(value: string) {
     this.updateWeexEnvironment('workerjs', value)
   }
 
-  get jsframework () {
+  get jsframework() {
     return this.environment.jsframework
   }
-  set jsframework (value: string) {
+  set jsframework(value: string) {
     this.updateWeexEnvironment('jsframework', value)
   }
-  get dependencejs () {
+  get dependencejs() {
     return this.environment.dependencejs
   }
-  set dependencejs (value: string) {
+  set dependencejs(value: string) {
     this.updateWeexEnvironment('dependencejs', value)
   }
-  get jsservice () {
+  get jsservice() {
     return this.environment.jsservice
   }
-  set jsservice (value: string) {
+  set jsservice(value: string) {
     this.updateWeexEnvironment('jsservice', value)
   }
 
   @Watch('helpSetting')
-  help (n, o) {
+  help(n, o) {
     if (n) {
       this.$tours['miniappTour'].start()
     } else {
@@ -188,11 +188,11 @@ export class WeexComponent extends Vue {
   }
 
   @Watch('bundleSetting')
-  bundle (n, o) {
+  bundle(n, o) {
     this.bundlesModalShow = n
   }
 
-  created () {
+  created() {
     this.tourOptions = {
       labels: {
         buttonSkip: this.$t('tour.skip'),
@@ -252,7 +252,7 @@ export class WeexComponent extends Vue {
     ]
   }
 
-  mounted () {
+  mounted() {
     this.initWebSocket()
     this.$store.commit(types.UPDATE_CHANNEL_ID, this.channelId)
     if (!localStorage.getItem('hasBeenTour')) {
@@ -263,18 +263,20 @@ export class WeexComponent extends Vue {
     })
   }
 
-  destroyed () {
+  destroyed() {
     this.socket.send(JSON.stringify({ method: 'WxDebug.disable' }))
-    this.socket.send(JSON.stringify({ method: 'WxDebug.network', params: {
-      enable: false
-    }}))
+    this.socket.send(JSON.stringify({
+      method: 'WxDebug.network', params: {
+        enable: false
+      }
+    }))
   }
 
-  initWebSocket () {
+  initWebSocket() {
     this.connection()
   }
 
-  connection () {
+  connection() {
     this.socket = new SockJS(`ws://${this.webSocketHost}/debugProxy/debugger/${this.channelId}`)
     this.socket.on('connect', (data) => {
       this.socket.send(JSON.stringify({ method: 'Page.stopScreencast' }))
@@ -301,7 +303,7 @@ export class WeexComponent extends Vue {
           this.updateForm({ type: types.UPDATE_REMOTE_DEBUG_STATUS, value: typeof (device.remoteDebug) === 'undefined' ? sessionStorage.getItem('remoteDebug') === 'true' : device.remoteDebug })
           this.updateForm({ type: types.UPDATE_NETWORK_STATUS, value: typeof (device.network) === 'undefined' ? sessionStorage.getItem('network') === 'true' : device.network })
           this.updateForm({ type: types.UPDATE_LOG_LEVEL_STATUS, value: device.logLevel || 'debug' })
-          this.updateForm({ type: types.UPDATE_ELEMENT_MODE_STATUS,value: device.elementMode || 'native' })
+          this.updateForm({ type: types.UPDATE_ELEMENT_MODE_STATUS, value: device.elementMode || 'native' })
           this.initChromeDevtool()
         }
 
@@ -329,10 +331,12 @@ export class WeexComponent extends Vue {
           this.updateEnvironment(env)
         }
         this.isSandbox = data.params.isSandbox
-        this.updateForm({ type: types.UPDATE_INSTANCE_URL, value: {
-          value: data.params.bundleUrl,
-          env: env
-        } })
+        this.updateForm({
+          type: types.UPDATE_INSTANCE_URL, value: {
+            value: data.params.bundleUrl,
+            env: env
+          }
+        })
       } else if (method === 'WxDebug.getTemplateFile') {
         let env = Object.assign({}, this.environment)
         let template = data.params.value
@@ -353,16 +357,16 @@ export class WeexComponent extends Vue {
     })
   }
 
-  initChromeDevtool () {
+  initChromeDevtool() {
     this.inspectorUrl = `../../assets/inspector/inspector.html?ws=${this.webSocketHost}/debugProxy/inspector/${this.channelId}`
   }
 
-  handleRemoteDebug ($event) {
+  handleRemoteDebug($event) {
     this.updateForm({ type: types.UPDATE_REMOTE_DEBUG_STATUS, value: $event.value })
     this.socket.send(JSON.stringify({ method: 'WxDebug.' + ($event.value ? 'enable' : 'disable') }))
   }
 
-  handleNetwork ($event) {
+  handleNetwork($event) {
     this.updateForm({ type: types.UPDATE_NETWORK_STATUS, value: $event.value })
     this.socket.send(JSON.stringify({
       method: 'WxDebug.network',
@@ -372,7 +376,7 @@ export class WeexComponent extends Vue {
     }))
   }
 
-  reload () {
+  reload() {
     if (this.canReload) {
       this.$snotify.async(`${this.$t('weexDebugPage.reloading')}...`, () => new Promise((resolve, reject) => {
         this.socket.send(JSON.stringify({ method: 'WxDebug.reload' }))
@@ -391,22 +395,24 @@ export class WeexComponent extends Vue {
     }
   }
 
-  cleanHistory () {
+  cleanHistory() {
     let comfirmOptions: SnotifyToastConfig = {
       position: SnotifyPosition.centerCenter,
       buttons: [
-        { text: 'Yes', action: (toast) => {
-          this.cleanHistorys()
-          this.historyLatestUrl = ''
-          this.$snotify.remove(toast.id)
-        } },
+        {
+          text: 'Yes', action: (toast) => {
+            this.cleanHistorys()
+            this.historyLatestUrl = ''
+            this.$snotify.remove(toast.id)
+          }
+        },
         { text: 'No', action: (toast) => this.$snotify.remove(toast.id) }
       ]
     }
     this.$snotify.confirm(this.$t('weexDebugPage.ensureDeleteHistory'), comfirmOptions)
   }
 
-  updateWeexEnvironment (type, value) {
+  updateWeexEnvironment(type, value) {
     let env = Object.assign({}, this.environment)
     if (env[type] !== value) {
       env[type] = value
@@ -414,7 +420,7 @@ export class WeexComponent extends Vue {
     }
   }
 
-  activeWeexEnvironmentSetting () {
+  activeWeexEnvironmentSetting() {
     this.$snotify.async(this.$t('weexDebugPage.changeEnvSetting'), () => new Promise((resolve, reject) => {
       this.socket.send(JSON.stringify({
         method: 'WxDebug.setContextEnvironment',
@@ -434,7 +440,7 @@ export class WeexComponent extends Vue {
     }))
   }
 
-  cleanWeexEnvironmentSetting () {
+  cleanWeexEnvironmentSetting() {
     this.cleanEnvironment()
     this.socket.send(JSON.stringify({
       method: 'WxDebug.setContextEnvironment',
@@ -446,7 +452,7 @@ export class WeexComponent extends Vue {
     this.socket.send(JSON.stringify({ method: 'WxDebug.reload' }))
   }
 
-  navigator (value: string, environment: Environment) {
+  navigator(value: string, environment: Environment) {
     if (!environment) {
       environment = this.environment
     }
@@ -475,22 +481,22 @@ export class WeexComponent extends Vue {
     }))
   }
 
-  restore () {
+  restore() {
     this.cleanWeexEnvironmentSetting()
   }
 
-  mockFile (code: string) {
+  mockFile(code: string) {
     this.$snotify.async(`${this.$t('weexDebugPage.generatingFile')}...`, () => new Promise((resolve, reject) => {
       this.socket.send(JSON.stringify({ method: 'WxDebug.postTemplateFile', params: { value: this.editor.getValue() } }))
       this.editor.setValue('')
     }))
   }
 
-  onMounted (editor) {
+  onMounted(editor) {
     this.editor = editor
   }
 
-  toggleEditor (data: any) {
+  toggleEditor(data: any) {
     let sourceUrl = this.environment[data]
     if (data === 'jsservice') {
       if (Array.isArray(sourceUrl)) {
@@ -526,19 +532,19 @@ export class WeexComponent extends Vue {
     }, 200)
   }
 
-  customNextStepCallback (currentStep) {
+  customNextStepCallback(currentStep) {
     if (currentStep === 4) {
       this.$store.commit(types.UPDATE_ENVIRONMENT_SETTING, true)
     }
   }
 
-  customPreStepCallback (currentStep) {
+  customPreStepCallback(currentStep) {
     // if (currentStep === 5) {
     //   this.$store.commit(types.UPDATE_ENVIRONMENT_SETTING, true)
     // }
   }
 
-  customStopCallback () {
+  customStopCallback() {
     localStorage.setItem('hasBeenTour', 'true')
     this.$store.commit(types.UPDATE_ENVIRONMENT_SETTING, false)
     this.$store.commit(types.UPDATE_HELP_SETTING, false)
diff --git a/packages/@weex/plugins/debug/frontend/yarn.lock b/packages/@weex/plugins/debug/frontend/yarn.lock
index 018464a..2aa2677 100644
--- a/packages/@weex/plugins/debug/frontend/yarn.lock
+++ b/packages/@weex/plugins/debug/frontend/yarn.lock
@@ -2462,7 +2462,7 @@ debug@3.1.0, debug@~3.1.0:
   dependencies:
     ms "2.0.0"
 
-debug@^3.0.0, debug@^3.1.0, debug@^3.1.1, debug@^3.2.6:
+debug@^3.0.0, debug@^3.1.0, debug@^3.1.1:
   version "3.2.6"
   resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b"
   integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==
@@ -2483,7 +2483,7 @@ debug@~2.2.0:
   dependencies:
     ms "0.7.1"
 
-debuglog@*, debuglog@^1.0.1:
+debuglog@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492"
   integrity sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=
@@ -2653,11 +2653,6 @@ detect-indent@~5.0.0:
   resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d"
   integrity sha1-OHHMCmoALow+Wzz38zYmRnXwa50=
 
-detect-libc@^1.0.2:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
-  integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=
-
 detect-newline@^2.1.0:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2"
@@ -4797,7 +4792,7 @@ iconv-lite@0.4.15:
   resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.15.tgz#fe265a218ac6a57cfe854927e9d04c19825eddeb"
   integrity sha1-/iZaIYrGpXz+hUkn6dBMGYJe3es=
 
-iconv-lite@0.4.24, iconv-lite@^0.4.4, iconv-lite@~0.4.13:
+iconv-lite@0.4.24, iconv-lite@~0.4.13:
   version "0.4.24"
   resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
   integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
@@ -4874,7 +4869,7 @@ import-local@^1.0.0:
     pkg-dir "^2.0.0"
     resolve-cwd "^2.0.0"
 
-imurmurhash@*, imurmurhash@^0.1.4:
+imurmurhash@^0.1.4:
   version "0.1.4"
   resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
   integrity sha1-khi5srkoojixPcT7a21XbyMUU+o=
@@ -6178,11 +6173,6 @@ lockfile@^1.0.4:
   dependencies:
     signal-exit "^3.0.2"
 
-lodash._baseindexof@*:
-  version "3.1.0"
-  resolved "https://registry.yarnpkg.com/lodash._baseindexof/-/lodash._baseindexof-3.1.0.tgz#fe52b53a1c6761e42618d654e4a25789ed61822c"
-  integrity sha1-/lK1OhxnYeQmGNZU5KJXie1hgiw=
-
 lodash._baseuniq@~4.6.0:
   version "4.6.0"
   resolved "https://registry.yarnpkg.com/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz#0ebb44e456814af7905c6212fa2c9b2d51b841e8"
@@ -6191,33 +6181,11 @@ lodash._baseuniq@~4.6.0:
     lodash._createset "~4.0.0"
     lodash._root "~3.0.0"
 
-lodash._bindcallback@*:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e"
-  integrity sha1-5THCdkTPi1epnhftlbNcdIeJOS4=
-
-lodash._cacheindexof@*:
-  version "3.0.2"
-  resolved "https://registry.yarnpkg.com/lodash._cacheindexof/-/lodash._cacheindexof-3.0.2.tgz#3dc69ac82498d2ee5e3ce56091bafd2adc7bde92"
-  integrity sha1-PcaayCSY0u5ePOVgkbr9Ktx73pI=
-
-lodash._createcache@*:
-  version "3.1.2"
-  resolved "https://registry.yarnpkg.com/lodash._createcache/-/lodash._createcache-3.1.2.tgz#56d6a064017625e79ebca6b8018e17440bdcf093"
-  integrity sha1-VtagZAF2JeeevKa4AY4XRAvc8JM=
-  dependencies:
-    lodash._getnative "^3.0.0"
-
 lodash._createset@~4.0.0:
   version "4.0.3"
   resolved "https://registry.yarnpkg.com/lodash._createset/-/lodash._createset-4.0.3.tgz#0f4659fbb09d75194fa9e2b88a6644d363c9fe26"
   integrity sha1-D0ZZ+7CddRlPqeK4imZE02PJ/iY=
 
-lodash._getnative@*, lodash._getnative@^3.0.0:
-  version "3.9.1"
-  resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5"
-  integrity sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=
-
 lodash._root@~3.0.0:
   version "3.0.1"
   resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692"
@@ -6258,11 +6226,6 @@ lodash.merge@~4.6.0:
   resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
   integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
 
-lodash.restparam@*:
-  version "3.6.1"
-  resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805"
-  integrity sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=
-
 lodash.tail@^4.1.1:
   version "4.1.1"
   resolved "https://registry.yarnpkg.com/lodash.tail/-/lodash.tail-4.1.1.tgz#d2333a36d9e7717c8ad2f7cacafec7c32b444664"
@@ -6876,15 +6839,6 @@ ncp@~2.0.0:
   resolved "https://registry.yarnpkg.com/ncp/-/ncp-2.0.0.tgz#195a21d6c46e361d2fb1281ba38b91e9df7bdbb3"
   integrity sha1-GVoh1sRuNh0vsSgbo4uR6d9727M=
 
-needle@^2.2.1:
-  version "2.4.0"
-  resolved "https://registry.yarnpkg.com/needle/-/needle-2.4.0.tgz#6833e74975c444642590e15a750288c5f939b57c"
-  integrity sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg==
-  dependencies:
-    debug "^3.2.6"
-    iconv-lite "^0.4.4"
-    sax "^1.2.4"
-
 negotiator@0.6.2:
   version "0.6.2"
   resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb"
@@ -6966,9 +6920,9 @@ node-gyp@^3.8.0:
     which "1"
 
 node-gyp@^5.0.2, node-gyp@^5.0.5:
-  version "5.0.6"
-  resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-5.0.6.tgz#94d79206de985eb93a57ee1ee82d9df292edd7b5"
-  integrity sha512-GRta8AJJE88lLgWTtJ0TUysCy0AVx+j4l1zPd6qLRrHDjG3zWXq2uzFJgXL98S+zXmoH/DRO61Pl24yubAsOJg==
+  version "5.0.7"
+  resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-5.0.7.tgz#dd4225e735e840cf2870e4037c2ed9c28a31719e"
+  integrity sha512-K8aByl8OJD51V0VbUURTKsmdswkQQusIvlvmTyhHlIT1hBvaSxzdxpSle857XuXa7uc02UEZx9OR5aDxSWS5Qw==
   dependencies:
     env-paths "^2.2.0"
     glob "^7.1.4"
@@ -7040,22 +6994,6 @@ node-libs-browser@^2.0.0:
     util "^0.11.0"
     vm-browserify "^1.0.1"
 
-node-pre-gyp@*:
-  version "0.14.0"
-  resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.14.0.tgz#9a0596533b877289bcad4e143982ca3d904ddc83"
-  integrity sha512-+CvDC7ZttU/sSt9rFjix/P05iS43qHCOOGzcr3Ry99bXG7VX953+vFyEuph/tfqoYu8dttBkE86JSKBO2OzcxA==
-  dependencies:
-    detect-libc "^1.0.2"
-    mkdirp "^0.5.1"
-    needle "^2.2.1"
-    nopt "^4.0.1"
-    npm-packlist "^1.1.6"
-    npmlog "^4.0.2"
-    rc "^1.2.7"
-    rimraf "^2.6.1"
-    semver "^5.3.0"
-    tar "^4.4.2"
-
 node-releases@^1.1.42:
   version "1.1.42"
   resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.42.tgz#a999f6a62f8746981f6da90627a8d2fc090bbad7"
@@ -7282,7 +7220,7 @@ npm-normalize-package-bin@^1.0.0, npm-normalize-package-bin@^1.0.1:
     semver "^5.6.0"
     validate-npm-package-name "^3.0.0"
 
-npm-packlist@^1.1.12, npm-packlist@^1.1.6, npm-packlist@^1.4.7:
+npm-packlist@^1.1.12, npm-packlist@^1.4.7:
   version "1.4.7"
   resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.7.tgz#9e954365a06b80b18111ea900945af4f88ed4848"
   integrity sha512-vAj7dIkp5NhieaGZxBJB8fF4R0078rqsmhJcAfXZ6O7JJhjhPK96n5Ry1oZcfLXgfun0GWTZPOxaEyqv8GBykQ==
@@ -7454,7 +7392,7 @@ npm@^6.4.1:
     worker-farm "^1.7.0"
     write-file-atomic "^2.4.3"
 
-"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0, npmlog@^4.0.2, npmlog@^4.1.2, npmlog@~4.1.2:
+"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0, npmlog@^4.1.2, npmlog@~4.1.2:
   version "4.1.2"
   resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
   integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==
@@ -8833,9 +8771,9 @@ postcss@^6.0.0, postcss@^6.0.1, postcss@^6.0.17:
     supports-color "^5.4.0"
 
 postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.5:
-  version "7.0.24"
-  resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.24.tgz#972c3c5be431b32e40caefe6c81b5a19117704c2"
-  integrity sha512-Xl0XvdNWg+CblAXzNvbSOUvgJXwSjmbAKORqyw9V2AlHrm1js2gFw9y3jibBAhpKZi8b5JzJCVh/FyzPsTtgTA==
+  version "7.0.25"
+  resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.25.tgz#dd2a2a753d50b13bed7a2009b4a18ac14d9db21e"
+  integrity sha512-NXXVvWq9icrm/TgQC0O6YVFi4StfJz46M1iNd/h6B26Nvh/HKI+q4YZtFN/EjcInZliEscO/WL10BXnc1E5nwg==
   dependencies:
     chalk "^2.4.2"
     source-map "^0.6.1"
@@ -9172,7 +9110,7 @@ raw-loader@~0.5.1:
   resolved "https://registry.yarnpkg.com/raw-loader/-/raw-loader-0.5.1.tgz#0c3d0beaed8a01c966d9787bf778281252a979aa"
   integrity sha1-DD0L6u2KAclm2Xh793goElKpeao=
 
-rc@^1.0.1, rc@^1.1.6, rc@^1.2.7:
+rc@^1.0.1, rc@^1.1.6:
   version "1.2.8"
   resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
   integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==
@@ -9732,7 +9670,7 @@ right-align@^0.1.1:
   dependencies:
     align-text "^0.1.1"
 
-rimraf@2, rimraf@^2.2.8, rimraf@^2.4.4, rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.0, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3:
+rimraf@2, rimraf@^2.2.8, rimraf@^2.4.4, rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.0, rimraf@^2.6.2, rimraf@^2.6.3:
   version "2.7.1"
   resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
   integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
@@ -9831,7 +9769,7 @@ sass-loader@~6.0.6:
     neo-async "^2.5.0"
     pify "^3.0.0"
 
-sax@>=0.6.0, sax@^1.2.4, sax@~1.2.1, sax@~1.2.4:
+sax@>=0.6.0, sax@~1.2.1, sax@~1.2.4:
   version "1.2.4"
   resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
   integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
@@ -10762,7 +10700,7 @@ tar@^2.0.0:
     fstream "^1.0.12"
     inherits "2"
 
-tar@^4.4.10, tar@^4.4.12, tar@^4.4.13, tar@^4.4.2:
+tar@^4.4.10, tar@^4.4.12, tar@^4.4.13:
   version "4.4.13"
   resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525"
   integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==
@@ -11122,10 +11060,10 @@ typedarray@^0.0.6:
   resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
   integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
 
-typescript@~2.7.1:
-  version "2.7.2"
-  resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.7.2.tgz#2d615a1ef4aee4f574425cdff7026edf81919836"
-  integrity sha512-p5TCYZDAO0m4G344hD+wx/LATebLWZNkkh2asWUFqSsD2OrDNhbAHuSjobrmsUmdzjJjEeZVU9g1h3O6vpstnw==
+typescript@^3.7.3:
+  version "3.7.3"
+  resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.7.3.tgz#b36840668a16458a7025b9eabfad11b66ab85c69"
+  integrity sha512-Mcr/Qk7hXqFBXMN7p7Lusj1ktCBydylfQM/FZCk5glCNQJrCUKPkMHdo9R0MTFWsC/4kPFvDS0fDPvukfCkFsw==
 
 uglify-js@3.4.x:
   version "3.4.10"