Pārlūkot izejas kodu

style: 使用 vue/recommended 规则 Eslint

zhaihaoyi 6 gadi atpakaļ
vecāks
revīzija
7bf8b1d17c

+ 4 - 2
package.json

@@ -58,10 +58,12 @@
       "node": true
     },
     "extends": [
-      "plugin:vue/essential",
+      "plugin:vue/recommended",
       "@vue/standard"
     ],
-    "rules": {},
+    "rules": {
+      "vue/require-default-prop": false
+    },
     "parserOptions": {
       "parser": "babel-eslint"
     }

+ 11 - 5
src/App.vue

@@ -1,11 +1,17 @@
 <template>
-  <div class="app-ct" :class="{ 'sidebar-open': sidebarOpen }">
-    <app-header @sidebar-change="sidebarOpen = !sidebarOpen"/>
+  <div
+    class="app-ct"
+    :class="{ 'sidebar-open': sidebarOpen }"
+  >
+    <app-header @sidebar-change="sidebarOpen = !sidebarOpen" />
 
     <div class="app-bd">
-      <div class="app-sd-mask" @click="sidebarOpen = false"></div>
-      <app-aside/>
-      <router-view/>
+      <div
+        class="app-sd-mask"
+        @click="sidebarOpen = false"
+      />
+      <app-aside />
+      <router-view />
     </div>
   </div>
 </template>

+ 6 - 2
src/components/AppAside.vue

@@ -1,10 +1,14 @@
 <template>
   <aside class="app-sd">
     <div class="app-sd-menu">
-      <menu-group v-for="(item, index) in menu" :key="index" :data="item"/>
+      <menu-group
+        v-for="(item, index) in menu"
+        :key="index"
+        :data="item"
+      />
     </div>
     <footer class="app-sd-ft">
-      <site-link/>
+      <site-link />
     </footer>
   </aside>
 </template>

+ 10 - 3
src/components/AppHeader.vue

@@ -1,14 +1,21 @@
 <template>
   <header class="app-hd">
     <div class="app-home">
-      <a class="rt-icon-menu toggle-side" @click="$emit('sidebar-change')"></a>
-      <img class="site-logo" src="img/logo.png" alt="Vue Router Tab - logo">
+      <a
+        class="rt-icon-menu toggle-side"
+        @click="$emit('sidebar-change')"
+      />
+      <img
+        class="site-logo"
+        src="img/logo.png"
+        alt="Vue Router Tab - logo"
+      >
       <h2 class="site-title">
         <a href="../">Vue Router Tab</a> - Demo
       </h2>
     </div>
 
-    <site-link/>
+    <site-link />
   </header>
 </template>
 

+ 16 - 6
src/components/MenuGroup.vue

@@ -1,12 +1,22 @@
 <template>
-  <div class="menu-group" v-if="data.children && data.children.length">
-    <menu-item :data="data"/>
+  <div
+    v-if="data.children && data.children.length"
+    class="menu-group"
+  >
+    <menu-item :data="data" />
     <div class="menu-list">
-      <menu-group v-for="(item, index) in data.children" :key="index" :data="item"/>
+      <menu-group
+        v-for="(item, index) in data.children"
+        :key="index"
+        :data="item"
+      />
     </div>
   </div>
 
-  <menu-item v-else :data="data"/>
+  <menu-item
+    v-else
+    :data="data"
+  />
 </template>
 
 <script>
@@ -14,10 +24,10 @@ import MenuItem from './MenuItem.vue'
 
 export default {
   name: 'MenuGroup',
+  components: { MenuItem },
   props: {
     data: Object
-  },
-  components: { MenuItem }
+  }
 }
 </script>
 

+ 13 - 2
src/components/MenuItem.vue

@@ -1,7 +1,18 @@
 <template>
-  <h3 class="menu-title" v-if="data.text && !data.to">{{data.text}}</h3>
+  <h3
+    v-if="data.text && !data.to"
+    class="menu-title"
+  >
+    {{ data.text }}
+  </h3>
 
-  <router-link class="menu-item" v-else-if="data.to" :to="data.to">{{data.text}}</router-link>
+  <router-link
+    v-else-if="data.to"
+    class="menu-item"
+    :to="data.to"
+  >
+    {{ data.text }}
+  </router-link>
 </template>
 
 <script>

+ 9 - 7
src/components/PageRouteInfo.vue

@@ -1,28 +1,30 @@
 <template>
   <table class="route-info">
     <tr>
-      <th width="80">name</th>
-      <td>{{$route.name}}</td>
+      <th width="80">
+        name
+      </th>
+      <td>{{ $route.name }}</td>
     </tr>
     <tr>
       <th>path</th>
-      <td>{{$route.path}}</td>
+      <td>{{ $route.path }}</td>
     </tr>
     <tr>
       <th>params</th>
-      <td>{{$route.params}}</td>
+      <td>{{ $route.params }}</td>
     </tr>
     <tr>
       <th>query</th>
-      <td>{{$route.query}}</td>
+      <td>{{ $route.query }}</td>
     </tr>
     <tr>
       <th>hash</th>
-      <td>{{$route.hash}}</td>
+      <td>{{ $route.hash }}</td>
     </tr>
     <tr>
       <th>fullPath</th>
-      <td>{{$route.fullPath}}</td>
+      <td>{{ $route.fullPath }}</td>
     </tr>
   </table>
 </template>

+ 3 - 2
src/components/SiteLink.vue

@@ -3,10 +3,11 @@
     <a
       v-for="({label, icon, url}, index) in links"
       :key="index"
-      :href="url" :target="url.indexOf('http') === 0 ? '_blank' : '_self'"
+      :href="url"
+      :target="url.indexOf('http') === 0 ? '_blank' : '_self'"
       :title="label"
       :class="`rt-icon-${icon}`"
-      ></a>
+    />
   </div>
 </template>
 

+ 1 - 1
src/components/layout/Default.vue

@@ -1,5 +1,5 @@
 <template>
   <main class="app-main">
-    <router-tab/>
+    <router-tab />
   </main>
 </template>

+ 1 - 1
src/components/layout/GlobalRule.vue

@@ -1,5 +1,5 @@
 <template>
   <main class="app-main">
-    <router-tab :alive-id="route => route.fullPath.replace(route.hash, '')"/>
+    <router-tab :alive-id="route => route.fullPath.replace(route.hash, '')" />
   </main>
 </template>

+ 1 - 1
src/components/layout/InitialTabs.vue

@@ -1,6 +1,6 @@
 <template>
   <main class="app-main">
-    <router-tab :tabs="tabs"/>
+    <router-tab :tabs="tabs" />
   </main>
 </template>
 

+ 1 - 1
src/components/layout/LangCustom.vue

@@ -1,6 +1,6 @@
 <template>
   <main class="app-main">
-    <router-tab :i18n="customLanguage"/>
+    <router-tab :i18n="customLanguage" />
   </main>
 </template>
 

+ 1 - 1
src/components/layout/LangEn.vue

@@ -1,6 +1,6 @@
 <template>
   <main class="app-main">
-    <router-tab :i18n="'en'"/>
+    <router-tab :i18n="'en'" />
   </main>
 </template>
 

+ 12 - 4
src/components/layout/Slot.vue

@@ -2,10 +2,18 @@
   <main class="app-main">
     <router-tab>
       <template v-slot="{ tab: { id, title, icon, closable }, tabs, index}">
-        <i v-if="icon" class="tab-icon" :class="icon"></i>
-        <span class="tab-title">{{title || '未命名页签'}}</span>
-        <span class="tab-badge">{{index}}</span>
-        <i class="tab-close el-icon-close" v-if="closable !== false &&tabs.length > 1" @click.prevent="$routerTab.close(id)"></i>
+        <i
+          v-if="icon"
+          class="tab-icon"
+          :class="icon"
+        />
+        <span class="tab-title">{{ title || '未命名页签' }}</span>
+        <span class="tab-badge">{{ index }}</span>
+        <i
+          v-if="closable !== false &&tabs.length > 1"
+          class="tab-close el-icon-close"
+          @click.prevent="$routerTab.close(id)"
+        />
       </template>
     </router-tab>
   </main>

+ 4 - 1
src/components/layout/Transition.vue

@@ -1,6 +1,9 @@
 <template>
   <main class="app-main">
-    <router-tab page-transition="page-fade" tab-transition="tab-scale"/>
+    <router-tab
+      page-transition="page-fade"
+      tab-transition="tab-scale"
+    />
   </main>
 </template>
 

+ 90 - 33
src/lib/RouterTab/components/RouterTab.vue

@@ -8,74 +8,131 @@
           class="router-tab-nav"
           v-bind="typeof tabTransition === 'string' ? { name: tabTransition } : tabTransition"
           @after-enter="onTabTransitionEnd"
-          @after-leave="onTabTransitionEnd">
-
+          @after-leave="onTabTransitionEnd"
+        >
           <router-link
+            v-for="({ id, to, title, icon, tips, closable }, index) in items"
+            :key="id || to"
             class="router-tab-item"
             tag="li"
-            v-for="({ id, to, title, icon, tips, closable }, index) in items"
             :class="{ actived: activedTab === id, contextmenu: contextmenu.id === id }"
             :title="tips || title || ''"
-            :key="id || to"
             :to="to"
-            @contextmenu.native.prevent="e => showContextmenu(id, index, e)">
-
-            <slot v-bind="{
-              tab: items[index],
-              tabs: items,
-              index
-            }">
-              <i v-if="icon" class="tab-icon" :class="icon"></i>
-              <span class="tab-title">{{title || lang.tab.untitled}}</span>
-              <i class="tab-close" v-if="closable !== false && items.length > 1" :title="lang.contextmenu.close" @click.prevent="closeTab(id)"></i>
+            @contextmenu.native.prevent="e => showContextmenu(id, index, e)"
+          >
+            <slot
+              v-bind="{
+                tab: items[index],
+                tabs: items,
+                index
+              }"
+            >
+              <i
+                v-if="icon"
+                class="tab-icon"
+                :class="icon"
+              />
+              <span class="tab-title">{{ title || lang.tab.untitled }}</span>
+              <i
+                v-if="closable !== false && items.length > 1"
+                class="tab-close"
+                :title="lang.contextmenu.close"
+                @click.prevent="closeTab(id)"
+              />
             </slot>
           </router-link>
         </transition-group>
       </div>
 
       <!-- 页签滚动 -->
-      <a class="el-icon-caret-left nav-prev" @click="tabScroll('left')"></a>
-      <a class="el-icon-caret-right nav-next" @click="tabScroll('right')"></a>
+      <a
+        class="el-icon-caret-left nav-prev"
+        @click="tabScroll('left')"
+      />
+      <a
+        class="el-icon-caret-right nav-next"
+        @click="tabScroll('right')"
+      />
     </header>
 
     <!-- 页面容器 -->
-    <div class="router-tab-container" :class="{ loading }">
-      <router-alive ref="routerAlive" :alive-id="aliveId" @update="updateTab">
+    <div
+      class="router-tab-container"
+      :class="{ loading }"
+    >
+      <router-alive
+        ref="routerAlive"
+        :alive-id="aliveId"
+        @update="updateTab"
+      >
         <transition
           v-bind="typeof pageTransition === 'string' ? { name: pageTransition } : pageTransition"
+          appear
           @after-enter="onPageTransitionEnd"
           @after-leave="onPageTransitionEnd"
-          appear>
-          <router-view ref="routerView" v-if="isRouterAlive" v-bind="routerView"/>
+        >
+          <router-view
+            v-if="isRouterAlive"
+            ref="routerView"
+            v-bind="routerView"
+          />
         </transition>
       </router-alive>
     </div>
 
     <!-- 右键菜单 -->
     <transition name="router-tab-zoom-lt">
-      <div class="router-tab-contextmenu" :style="`left: ${contextmenu.left}px; top: ${contextmenu.top}px;`" v-if="contextmenu.id">
-        <a class="contextmenu-item" :disabled="!isContextTabActived" @click="isContextTabActived && refreshTab(contextmenu.id)">
-          {{lang.contextmenu.refresh}}
+      <div
+        v-if="contextmenu.id"
+        class="router-tab-contextmenu"
+        :style="`left: ${contextmenu.left}px; top: ${contextmenu.top}px;`"
+      >
+        <a
+          class="contextmenu-item"
+          :disabled="!isContextTabActived"
+          @click="isContextTabActived && refreshTab(contextmenu.id)"
+        >
+          {{ lang.contextmenu.refresh }}
         </a>
 
-        <a class="contextmenu-item" :disabled="items.length < 2" @click="items.length > 1 && refreshAll()">
-          {{lang.contextmenu.refreshAll}}
+        <a
+          class="contextmenu-item"
+          :disabled="items.length < 2"
+          @click="items.length > 1 && refreshAll()"
+        >
+          {{ lang.contextmenu.refreshAll }}
         </a>
 
-        <a class="contextmenu-item" :disabled="!isContextTabCanBeClosed" @click="isContextTabCanBeClosed && closeTab(contextmenu.id)">
-          {{lang.contextmenu.close}}
+        <a
+          class="contextmenu-item"
+          :disabled="!isContextTabCanBeClosed"
+          @click="isContextTabCanBeClosed && closeTab(contextmenu.id)"
+        >
+          {{ lang.contextmenu.close }}
         </a>
 
-        <a class="contextmenu-item" :disabled="!tabsLeft.length" @click="tabsLeft.length && closeMulti(tabsLeft)">
-          {{lang.contextmenu.closeLefts}}
+        <a
+          class="contextmenu-item"
+          :disabled="!tabsLeft.length"
+          @click="tabsLeft.length && closeMulti(tabsLeft)"
+        >
+          {{ lang.contextmenu.closeLefts }}
         </a>
 
-        <a class="contextmenu-item" :disabled="!tabsRight.length" @click="tabsRight.length && closeMulti(tabsRight)">
-          {{lang.contextmenu.closeRights}}
+        <a
+          class="contextmenu-item"
+          :disabled="!tabsRight.length"
+          @click="tabsRight.length && closeMulti(tabsRight)"
+        >
+          {{ lang.contextmenu.closeRights }}
         </a>
 
-        <a class="contextmenu-item" :disabled="!tabsOther.length" @click="tabsOther.length && closeMulti(tabsOther)">
-          {{lang.contextmenu.closeOthers}}
+        <a
+          class="contextmenu-item"
+          :disabled="!tabsOther.length"
+          @click="tabsOther.length && closeMulti(tabsOther)"
+        >
+          {{ lang.contextmenu.closeOthers }}
         </a>
       </div>
     </transition>

+ 36 - 12
src/views/Page.vue

@@ -1,46 +1,70 @@
 <template>
   <div class="app-page">
-    <h2 @click="click">页面{{pageId}}</h2>
+    <h2 @click="click">
+      页面{{ pageId }}
+    </h2>
 
-    <p>你在 <strong class="text-strong">{{pageTime}}</strong> 秒前打开本页面</p>
+    <p>你在 <strong class="text-strong">{{ pageTime }}</strong> 秒前打开本页面</p>
 
     <h3>页签操作</h3>
 
     <p>
-      <router-link class="demo-btn" :to="'../page/'+ nextId">打开“页面{{nextId}}”</router-link>
+      <router-link
+        class="demo-btn"
+        :to="'../page/'+ nextId"
+      >
+        打开“页面{{ nextId }}”
+      </router-link>
     </p>
 
     <p v-if="prevId > 0">
-      <router-link class="demo-btn" :to="'../page/'+ prevId">打开“页面{{prevId}}”</router-link>
+      <router-link
+        class="demo-btn"
+        :to="'../page/'+ prevId"
+      >
+        打开“页面{{ prevId }}”
+      </router-link>
 
       <router-link
         class="demo-btn"
         :to="'../page/'+ prevId"
         @click.native="$routerTab.refresh('../page/'+ prevId)"
       >
-        全新打开“页面{{prevId}}”
+        全新打开“页面{{ prevId }}”
       </router-link>
     </p>
 
     <p>
-      <a class="demo-btn" @click="$router.push('../tab-dynamic')">打开“动态更新页签”</a>
+      <a
+        class="demo-btn"
+        @click="$router.push('../tab-dynamic')"
+      >打开“动态更新页签”</a>
 
-      <a class="demo-btn" @click="$routerTab.close('../tab-dynamic')">关闭“动态更新页签”</a>
+      <a
+        class="demo-btn"
+        @click="$routerTab.close('../tab-dynamic')"
+      >关闭“动态更新页签”</a>
     </p>
 
     <p>
-      <a class="demo-btn" @click="$routerTab.refresh()">刷新当前页面</a>
+      <a
+        class="demo-btn"
+        @click="$routerTab.refresh()"
+      >刷新当前页面</a>
 
-      <a class="demo-btn" @click="$routerTab.close()">关闭当前页面</a>
+      <a
+        class="demo-btn"
+        @click="$routerTab.close()"
+      >关闭当前页面</a>
     </p>
 
     <div>
-      <input type="text" />
+      <input type="text">
     </div>
 
     <h3>路由信息</h3>
 
-    <page-route-info/>
+    <page-route-info />
   </div>
 </template>
 
@@ -50,8 +74,8 @@ import PageRouteInfo from '@/components/PageRouteInfo'
 
 export default {
   name: 'Page',
-  mixins: [ pageTimer ],
   components: { PageRouteInfo },
+  mixins: [ pageTimer ],
   data () {
     let id = this.$route.params.id
     return {

+ 19 - 5
src/views/PageLeave.vue

@@ -2,20 +2,34 @@
   <div class="app-page">
     <h2>页面离开确认</h2>
 
-    <p>你在 <strong class="text-strong">{{pageTime}}</strong> 秒前打开本页面</p>
+    <p>你在 <strong class="text-strong">{{ pageTime }}</strong> 秒前打开本页面</p>
 
     <p>
       <strong class="text-strong">修改输入框的值</strong>后,页面在页签关闭/刷新/被替换时将会确认提示
     </p>
 
-    <input type="text" v-model="editValue">
+    <input
+      v-model="editValue"
+      type="text"
+    >
 
     <p>
-      <a class="demo-btn" @click="$routerTab.refresh()">刷新</a>
+      <a
+        class="demo-btn"
+        @click="$routerTab.refresh()"
+      >刷新</a>
 
-      <a class="demo-btn" @click="$routerTab.close()">关闭</a>
+      <a
+        class="demo-btn"
+        @click="$routerTab.close()"
+      >关闭</a>
 
-      <router-link class="demo-btn" :to="`?id=${+(this.$route.query.id || 0) + 1}`">替换</router-link>
+      <router-link
+        class="demo-btn"
+        :to="`?id=${+(this.$route.query.id || 0) + 1}`"
+      >
+        替换
+      </router-link>
     </p>
   </div>
 </template>

+ 44 - 15
src/views/Rule.vue

@@ -1,36 +1,65 @@
 <template>
   <div class="app-page">
-    <h2>{{ruleLabel}}页签规则</h2>
+    <h2>{{ ruleLabel }}页签规则</h2>
 
-    <p>你在 <strong class="text-strong">{{pageTime}}</strong> 秒前打开本页面</p>
+    <p>你在 <strong class="text-strong">{{ pageTime }}</strong> 秒前打开本页面</p>
 
-    <h3>{{ruleLabel}}页签规则</h3>
+    <h3>{{ ruleLabel }}页签规则</h3>
 
-    <p class="rule-desc" v-if="ruleType === 'global'">页签ID: <strong>route => route.fullPath.replace(route.hash, '')`</strong></p>
+    <p
+      v-if="ruleType === 'global'"
+      class="rule-desc"
+    >
+      页签ID: <strong>route => route.fullPath.replace(route.hash, '')`</strong>
+    </p>
 
-    <p class="rule-desc" v-else-if="ruleType === 'route'">页签ID: <strong>route => `route-rule/${route.params.catalog}`</strong></p>
+    <p
+      v-else-if="ruleType === 'route'"
+      class="rule-desc"
+    >
+      页签ID: <strong>route => `route-rule/${route.params.catalog}`</strong>
+    </p>
 
-    <p class="rule-desc" v-else>页签ID: <strong>route.path</strong></p>
+    <p
+      v-else
+      class="rule-desc"
+    >
+      页签ID: <strong>route.path</strong>
+    </p>
 
     <h4>点击下面的链接,并观察页签的变化</h4>
 
     <ul class="btn-list">
-      <li v-for="cat in catalogs" :key="cat">
+      <li
+        v-for="cat in catalogs"
+        :key="cat"
+      >
         <router-link
-          v-for="type in types"
-          :key="type"
+          v-for="t in types"
+          :key="t"
           class="demo-btn"
-          :to="`../${cat}/${type}`">
-          {{cat}}/{{type}}
+          :to="`../${cat}/${t}`"
+        >
+          {{ cat }}/{{ type }}
+        </router-link>
+        <router-link
+          class="demo-btn"
+          :to="`../${cat}/1?q=abc`"
+        >
+          {{ cat }}/1?q=abc
+        </router-link>
+        <router-link
+          class="demo-btn"
+          :to="`../${cat}/1?q=def`"
+        >
+          {{ cat }}/1?q=def
         </router-link>
-        <router-link class="demo-btn" :to="`../${cat}/1?q=abc`">{{cat}}/1?q=abc</router-link>
-        <router-link class="demo-btn" :to="`../${cat}/1?q=def`">{{cat}}/1?q=def</router-link>
       </li>
     </ul>
 
     <h3>路由信息</h3>
 
-    <page-route-info/>
+    <page-route-info />
   </div>
 </template>
 
@@ -40,8 +69,8 @@ import PageRouteInfo from '@/components/PageRouteInfo'
 
 export default {
   name: 'Rule',
-  mixins: [ pageTimer ],
   components: { PageRouteInfo },
+  mixins: [ pageTimer ],
   data () {
     let route = this.$route
     let { catalog, type } = route.params

+ 10 - 5
src/views/TabDynamic.vue

@@ -5,29 +5,34 @@
     <div class="form-item">
       <label>
         <p>修改页签标题</p>
-        <input type="text" v-model="routeTab.title">
+        <input
+          v-model="routeTab.title"
+          type="text"
+        >
       </label>
     </div>
 
     <div class="form-item">
       <label>
         <p>修改页签提示</p>
-        <input type="text" v-model="routeTab.tips">
+        <input
+          v-model="routeTab.tips"
+          type="text"
+        >
       </label>
     </div>
 
     <div class="form-item tab-icons">
       <p>切换图标</p>
       <a
-        class="tab-icon"
         v-for="icon in icons"
         :key="icon"
+        class="tab-icon"
         :class="`${icon === routeTab.icon ? 'actived' : ''} ${icon}`"
         title="设置页签图标"
         @click="routeTab.icon = icon"
-      ></a>
+      />
     </div>
-
   </div>
 </template>
 

+ 21 - 6
yarn.lock

@@ -3797,7 +3797,7 @@ eslint-scope@^3.7.1:
     esrecurse "^4.1.0"
     estraverse "^4.1.1"
 
-eslint-scope@^4.0.0, eslint-scope@^4.0.2:
+eslint-scope@^4.0.0:
   version "4.0.2"
   resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.2.tgz#5f10cd6cabb1965bf479fa65745673439e21cb0e"
   integrity sha512-5q1+B/ogmHl8+paxtOKx38Z8LtWkVGuNt3+GQNErqwLl6ViNp/gdJGMCjZNxZ8j/VYjDNZ2Fo+eQc1TAVPIzbg==
@@ -3805,6 +3805,14 @@ eslint-scope@^4.0.0, eslint-scope@^4.0.2:
     esrecurse "^4.1.0"
     estraverse "^4.1.1"
 
+eslint-scope@^4.0.3:
+  version "4.0.3"
+  resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848"
+  integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==
+  dependencies:
+    esrecurse "^4.1.0"
+    estraverse "^4.1.1"
+
 eslint-utils@^1.3.0, eslint-utils@^1.3.1:
   version "1.3.1"
   resolved "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.3.1.tgz#9a851ba89ee7c460346f97cf8939c7298827e512"
@@ -3860,9 +3868,9 @@ eslint@^4.19.1:
     text-table "~0.2.0"
 
 eslint@^5.8.0:
-  version "5.15.1"
-  resolved "https://registry.npmjs.org/eslint/-/eslint-5.15.1.tgz#8266b089fd5391e0009a047050795b1d73664524"
-  integrity sha512-NTcm6vQ+PTgN3UBsALw5BMhgO6i5EpIjQF/Xb5tIh3sk9QhrFafujUOczGz4J24JBlzWclSB9Vmx8d+9Z6bFCg==
+  version "5.15.3"
+  resolved "https://registry.npmjs.org/eslint/-/eslint-5.15.3.tgz#c79c3909dc8a7fa3714fb340c11e30fd2526b8b5"
+  integrity sha512-vMGi0PjCHSokZxE0NLp2VneGw5sio7SSiDNgIUn2tC0XkWJRNOIoHIg3CliLVfXnJsiHxGAYrkw0PieAu8+KYQ==
   dependencies:
     "@babel/code-frame" "^7.0.0"
     ajv "^6.9.1"
@@ -3870,7 +3878,7 @@ eslint@^5.8.0:
     cross-spawn "^6.0.5"
     debug "^4.0.1"
     doctrine "^3.0.0"
-    eslint-scope "^4.0.2"
+    eslint-scope "^4.0.3"
     eslint-utils "^1.3.1"
     eslint-visitor-keys "^1.0.0"
     espree "^5.0.1"
@@ -9186,13 +9194,20 @@ strip-ansi@^4.0.0:
   dependencies:
     ansi-regex "^3.0.0"
 
-strip-ansi@^5.0.0, strip-ansi@^5.1.0:
+strip-ansi@^5.0.0:
   version "5.1.0"
   resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.1.0.tgz#55aaa54e33b4c0649a7338a43437b1887d153ec4"
   integrity sha512-TjxrkPONqO2Z8QDCpeE2j6n0M6EwxzyDgzEeGp+FbdvaJAt//ClYi6W5my+3ROlC/hZX2KACUwDfK49Ka5eDvg==
   dependencies:
     ansi-regex "^4.1.0"
 
+strip-ansi@^5.1.0:
+  version "5.2.0"
+  resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae"
+  integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==
+  dependencies:
+    ansi-regex "^4.1.0"
+
 strip-bom-string@^1.0.0:
   version "1.0.0"
   resolved "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz#e5211e9224369fbb81d633a2f00044dc8cedad92"