diff --git a/package.json b/package.json index fa5d2781..bc2980d5 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "scripts": { "dev": "webpack-dev-server", "build": "webpack --mode=production -p", - "lint": "eslint --ext=.js,.vue,.ts -f=beauty .", + "lint": "eslint --ext=js,vue,ts -f=beauty .", "test": "jest", "codecov": "codecov -F js" }, @@ -42,8 +42,8 @@ "@types/jest": "^24.0.23", "@types/jquery": "^3.3.29", "@types/webpack": "^4.39.1", - "@typescript-eslint/eslint-plugin": "^1.7.0", - "@typescript-eslint/parser": "^1.7.0", + "@typescript-eslint/eslint-plugin": "^2.8.0", + "@typescript-eslint/parser": "^2.8.0", "@vue/test-utils": "^1.0.0-beta.29", "autoprefixer": "^9.7.2", "babel-eslint": "^10.0.3", @@ -54,10 +54,10 @@ "cache-loader": "^4.1.0", "codecov": "^3.6.1", "css-loader": "^3.2.0", - "eslint": "^5.16.0", - "eslint-config-gplane": "^5.1.3", + "eslint": "^6.7.1", + "eslint-config-gplane": "^6.2.1", "eslint-formatter-beauty": "^3.0.0", - "eslint-plugin-vue": "^5.2.2", + "eslint-plugin-vue": "^6.0.1", "expose-loader": "^0.7.5", "file-loader": "^3.0.1", "jest": "^24.9.0", @@ -81,6 +81,9 @@ "webpack-manifest-plugin": "^2.2.0", "webpackbar": "^4.0.0" }, + "resolutions": { + "vue-eslint-parser": "^7.0.0" + }, "browserslist": [ "> 1%", "not dead", @@ -102,11 +105,6 @@ "gplane/vue" ], "parser": "vue-eslint-parser", - "parserOptions": { - "ecmaVersion": 2018, - "sourceType": "module", - "parser": "babel-eslint" - }, "env": { "node": true, "es6": true, @@ -127,15 +125,18 @@ 2, 120 ], - "prefer-destructuring": 0, - "prefer-object-spread": 0, - "import/no-unresolved": 0 + "prefer-destructuring": 0 }, "overrides": [ { "files": [ "*.ts" ], + "extends": [ + "gplane", + "gplane/typescript", + "gplane/vue" + ], "parserOptions": { "parser": "@typescript-eslint/parser" }, @@ -143,18 +144,32 @@ "@typescript-eslint" ], "rules": { - "no-undef": 0, - "no-unused-vars": 0, - "no-invalid-this": 0, - "no-extra-parens": 0, - "indent": 0, - "@typescript-eslint/indent": [ - 2, + "@typescript-eslint/camelcase": [ 2, { - "SwitchCase": 1 + "properties": "never", + "ignoreDestructuring": true } - ] + ], + "@typescript-eslint/no-invalid-this": 0, + "no-invalid-this": 0 + } + }, + { + "files": ["resources/assets/tests/**/*.ts", "*.d.ts"], + "rules": { + "@typescript-eslint/no-empty-function": 0, + "@typescript-eslint/unbound-method": 0, + "@typescript-eslint/no-extra-parens": 0, + "max-len": [2, 120] + } + }, + { + "files": [ + "resources/assets/src/components/mixins/*.ts" + ], + "rules": { + "@typescript-eslint/no-extra-parens": 0 } } ] diff --git a/postcss.config.js b/postcss.config.js index ffc349a6..7debd249 100644 --- a/postcss.config.js +++ b/postcss.config.js @@ -1,4 +1,3 @@ -/* eslint-disable import/no-extraneous-dependencies */ /* eslint-disable global-require */ module.exports = { plugins: [ diff --git a/resources/assets/src/components/AddPlayerDialog.vue b/resources/assets/src/components/AddPlayerDialog.vue index 9721cbc7..695b762b 100644 --- a/resources/assets/src/components/AddPlayerDialog.vue +++ b/resources/assets/src/components/AddPlayerDialog.vue @@ -64,7 +64,7 @@ export default { async addPlayer() { const { code, message } = await this.$http.post( '/user/player/add', - { name: this.name } + { name: this.name }, ) if (code === 0) { $('#modal-add-player').modal('hide') diff --git a/resources/assets/src/components/ApplyToPlayerDialog.vue b/resources/assets/src/components/ApplyToPlayerDialog.vue index 6fd003de..4bc5cb09 100644 --- a/resources/assets/src/components/ApplyToPlayerDialog.vue +++ b/resources/assets/src/components/ApplyToPlayerDialog.vue @@ -88,7 +88,7 @@ export default { { skin: this.skin || undefined, cape: this.cape || undefined, - } + }, ) if (code === 0) { this.$message.success(message) diff --git a/resources/assets/src/components/ClosetItem.vue b/resources/assets/src/components/ClosetItem.vue index f1c9a62e..a3b8f3c4 100644 --- a/resources/assets/src/components/ClosetItem.vue +++ b/resources/assets/src/components/ClosetItem.vue @@ -88,7 +88,7 @@ export default { inputValue: this.textureName, showCancelButton: true, inputValidator: value => !!value || this.$t('skinlib.emptyNewTextureName'), - } + }, )) } catch { return @@ -96,7 +96,7 @@ export default { const { code, message } = await this.$http.post( `/user/closet/rename/${this.tid}`, - { name: newTextureName } + { name: newTextureName }, ) if (code === 0) { this.textureName = newTextureName diff --git a/resources/assets/src/components/mixins/addClosetItem.ts b/resources/assets/src/components/mixins/addClosetItem.ts index a49438e5..2e503d92 100644 --- a/resources/assets/src/components/mixins/addClosetItem.ts +++ b/resources/assets/src/components/mixins/addClosetItem.ts @@ -2,7 +2,7 @@ import Vue from 'vue' import { MessageBoxInputData } from 'element-ui/types/message-box' export default Vue.extend<{ - name: string, + name: string tid: number }, { addClosetItem(): Promise }, {}>({ methods: { @@ -16,7 +16,7 @@ export default Vue.extend<{ inputValue: this.name, showCancelButton: true, inputValidator: val => !!val || this.$t('skinlib.emptyItemName'), - } + }, ) as MessageBoxInputData) } catch { return @@ -24,7 +24,7 @@ export default Vue.extend<{ const { code, message } = await this.$http.post( '/user/closet/add', - { tid: this.tid, name: value } + { tid: this.tid, name: value }, ) if (code === 0) { this.$message.success(message!) diff --git a/resources/assets/src/components/mixins/enablePlugin.ts b/resources/assets/src/components/mixins/enablePlugin.ts index 52049c70..23267b16 100644 --- a/resources/assets/src/components/mixins/enablePlugin.ts +++ b/resources/assets/src/components/mixins/enablePlugin.ts @@ -6,15 +6,15 @@ export default Vue.extend({ async enablePlugin({ name, dependencies: { all }, originalIndex, }: { - name: string, - dependencies: { all: { [name: string]: string } }, + name: string + dependencies: { all: { [name: string]: string } } originalIndex: number }) { if (Object.keys(all).length === 0) { try { await this.$confirm( this.$t('admin.noDependenciesNotice'), - { type: 'warning' } + { type: 'warning' }, ) } catch { return @@ -25,7 +25,7 @@ export default Vue.extend({ code, message, data: { reason } = { reason: [] }, } = await this.$http.post( '/admin/plugins/manage', - { action: 'enable', name } + { action: 'enable', name }, ) as { code: number, message: string, data: { reason: string[] } } if (code === 0) { this.$message.success(message) diff --git a/resources/assets/src/components/mixins/removeClosetItem.ts b/resources/assets/src/components/mixins/removeClosetItem.ts index 83096cbf..f3262966 100644 --- a/resources/assets/src/components/mixins/removeClosetItem.ts +++ b/resources/assets/src/components/mixins/removeClosetItem.ts @@ -1,7 +1,7 @@ import Vue from 'vue' export default Vue.extend<{ - name: string, + name: string tid: number }, { removeClosetItem(): Promise }, {}>({ methods: { @@ -9,7 +9,7 @@ export default Vue.extend<{ try { await this.$confirm( this.$t('user.removeFromClosetNotice'), - { type: 'warning' } + { type: 'warning' }, ) } catch { return diff --git a/resources/assets/src/components/mixins/serverTable.ts b/resources/assets/src/components/mixins/serverTable.ts index 76767cf1..550b4c95 100644 --- a/resources/assets/src/components/mixins/serverTable.ts +++ b/resources/assets/src/components/mixins/serverTable.ts @@ -27,7 +27,7 @@ export default Vue.extend({ this.serverParams.perPage = params.currentPerPage this.fetchData() }, - onSortChange([params]: { type: 'asc' | 'desc', field: string }[]) { + onSortChange([params]: Array<{ type: 'asc' | 'desc', field: string }>) { this.serverParams.sortType = params.type this.serverParams.sortField = params.field this.fetchData() diff --git a/resources/assets/src/components/mixins/setAsAvatar.ts b/resources/assets/src/components/mixins/setAsAvatar.ts index ff3fde44..f43da21b 100644 --- a/resources/assets/src/components/mixins/setAsAvatar.ts +++ b/resources/assets/src/components/mixins/setAsAvatar.ts @@ -8,7 +8,7 @@ export default Vue.extend<{ try { await this.$confirm( this.$t('user.setAvatarNotice'), - this.$t('user.setAvatar') + this.$t('user.setAvatar'), ) } catch { return @@ -16,12 +16,15 @@ export default Vue.extend<{ const { code, message } = await this.$http.post( '/user/profile/avatar', - { tid: this.tid } + { tid: this.tid }, ) if (code === 0) { this.$message.success(message!) - Array.from(document.querySelectorAll('[alt="User Image"]')) + Array + .from( + document.querySelectorAll('[alt="User Image"]'), + ) .forEach(el => (el.src += `?${new Date().getTime()}`)) } else { this.$message.warning(message!) diff --git a/resources/assets/src/index.ts b/resources/assets/src/index.ts index 5533bf20..f791faa3 100644 --- a/resources/assets/src/index.ts +++ b/resources/assets/src/index.ts @@ -10,14 +10,14 @@ loadI18n().then(loadModules) function loadModules() { const route = routes.find( // eslint-disable-next-line no-shadow - route => (new RegExp(`^${route.path}$`, 'i')).test(blessing.route) + route => new RegExp(`^${route.path}$`, 'i').test(blessing.route), ) if (route) { if (route.module) { Promise.all(route.module.map(m => m())) } if (route.component) { - Vue.prototype.$route = (new RegExp(`^${route.path}$`, 'i')).exec(blessing.route) + Vue.prototype.$route = new RegExp(`^${route.path}$`, 'i').exec(blessing.route) // eslint-disable-next-line no-new new Vue({ el: route.el, diff --git a/resources/assets/src/scripts/check-updates.ts b/resources/assets/src/scripts/check-updates.ts index 4e564db3..26637f2f 100644 --- a/resources/assets/src/scripts/check-updates.ts +++ b/resources/assets/src/scripts/check-updates.ts @@ -26,7 +26,8 @@ export async function checkForPluginUpdates(): Promise { const data = await response.json() const el = document.querySelector(`[href="${blessing.base_url}/admin/plugins/market"] p`) if (data.available && el) { - el.innerHTML += `${data.plugins.length}` + const length = data.plugins.length as number + el.innerHTML += `${length}` } } } diff --git a/resources/assets/src/scripts/event.ts b/resources/assets/src/scripts/event.ts index 2dd86af8..dabcf405 100644 --- a/resources/assets/src/scripts/event.ts +++ b/resources/assets/src/scripts/event.ts @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/no-unnecessary-condition */ const bus: { [name: string]: CallableFunction[] } = Object.create(null) export function on(eventName: string, listener: CallableFunction) { diff --git a/resources/assets/src/scripts/i18n.ts b/resources/assets/src/scripts/i18n.ts index 87bbafe9..e928aa2f 100644 --- a/resources/assets/src/scripts/i18n.ts +++ b/resources/assets/src/scripts/i18n.ts @@ -2,7 +2,10 @@ import Vue from 'vue' export function trans(key: string, parameters = Object.create(null)): string { const segments = key.split('.') - let temp = (blessing.i18n || Object.create(null)) as { [k: string]: string | { [k: string]: string } } + let temp = ( + // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition + blessing.i18n || Object.create(null) + ) as { [k: string]: string | { [k: string]: string } } let result = '' for (const segment of segments) { @@ -24,6 +27,7 @@ export function trans(key: string, parameters = Object.create(null)): string { } Vue.use(_Vue => { + // eslint-disable-next-line @typescript-eslint/unbound-method _Vue.prototype.$t = trans _Vue.directive('t', (el, { value }) => { if (typeof value === 'string') { @@ -41,4 +45,5 @@ Vue.use(_Vue => { }) }) +// eslint-disable-next-line @typescript-eslint/unbound-method window.trans = trans diff --git a/resources/assets/src/scripts/index.ts b/resources/assets/src/scripts/index.ts index 1ba6a3af..07c36f33 100644 --- a/resources/assets/src/scripts/index.ts +++ b/resources/assets/src/scripts/index.ts @@ -1,4 +1,3 @@ -/* eslint-disable import/no-extraneous-dependencies */ import './public-path' // Must be first import $ from 'jquery' import 'bootstrap' diff --git a/resources/assets/src/scripts/language-chooser.ts b/resources/assets/src/scripts/language-chooser.ts index 38dc0472..93981d17 100644 --- a/resources/assets/src/scripts/language-chooser.ts +++ b/resources/assets/src/scripts/language-chooser.ts @@ -1,4 +1,5 @@ -const chooser: HTMLInputElement | null = document.querySelector('#language-chooser') +const chooser: HTMLInputElement | null = + document.querySelector('#language-chooser') if (chooser) { chooser.addEventListener('change', () => { window.location.href = `?lang=${chooser.value}` diff --git a/resources/assets/src/scripts/net.ts b/resources/assets/src/scripts/net.ts index 4fdd05db..583492bd 100644 --- a/resources/assets/src/scripts/net.ts +++ b/resources/assets/src/scripts/net.ts @@ -21,7 +21,9 @@ export const init: RequestInit = { } function retrieveToken() { - const csrfField: HTMLMetaElement | null = document.querySelector('meta[name="csrf-token"]') + const csrfField: HTMLMetaElement | null = + document.querySelector('meta[name="csrf-token"]') + // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition return (csrfField && csrfField.content) || '' } @@ -37,11 +39,14 @@ export async function walkFetch(request: Request): Promise { if (response.ok) { return body } - let message = body.message + let message: string = body.message if (response.status === 422) { // Process validation errors from Laravel. - const { errors }: { message: string, errors: { [field: string]: string[] } } = body + const { errors }: { + message: string + errors: { [field: string]: string[] } + } = body return { code: 1, message: Object.keys(errors).map(field => errors[field][0])[0], @@ -52,7 +57,7 @@ export async function walkFetch(request: Request): Promise { } if (body.exception && Array.isArray(body.trace)) { - const trace = (body.trace as { file: string, line: number }[]) + const trace = (body.trace as Array<{ file: string, line: number }>) .map((t, i) => `[${i + 1}] ${t.file}#L${t.line}`) .join('\n') message = `${message}\n
${trace}
` @@ -91,6 +96,7 @@ function nonGet(method: string, url: string, data: any): Promise { method: method.toUpperCase(), ...init, }) + // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition !isFormData && request.headers.set('Content-Type', 'application/json') return walkFetch(request) diff --git a/resources/assets/src/scripts/notification.ts b/resources/assets/src/scripts/notification.ts index 073a05e3..2ebc5e87 100644 --- a/resources/assets/src/scripts/notification.ts +++ b/resources/assets/src/scripts/notification.ts @@ -6,10 +6,15 @@ export default async function handler(event: Event) { const id = item.getAttribute('data-nid') const { title, content, time, - } = await get(`/user/notifications/${id}`) + }: { + title: string + content: string + time: string + } = await get(`/user/notifications/${id!}`) showModal(`${content}
${time}`, title) item.remove() - const counter = document.querySelector('.notifications-counter') as HTMLSpanElement + const counter = document + .querySelector('.notifications-counter') as HTMLSpanElement const value = Number.parseInt(counter.textContent!) - 1 if (value > 0) { counter.textContent = value.toString() diff --git a/resources/assets/src/scripts/notify.ts b/resources/assets/src/scripts/notify.ts index 237dc2fe..28d20e93 100644 --- a/resources/assets/src/scripts/notify.ts +++ b/resources/assets/src/scripts/notify.ts @@ -4,18 +4,24 @@ import { ModalOptions } from '../shims' import { trans } from './i18n' export function showAjaxError(error: Error): void { - showModal(error.message.replace(/\n/g, '
'), trans('general.fatalError'), 'danger') + showModal( + error.message.replace(/\n/g, '
'), + trans('general.fatalError'), + 'danger', + ) } export function showModal( message: string, title = 'Message', type = 'default', - options: ModalOptions = {} + options: ModalOptions = {}, ): void { const btnType = type === 'default' ? 'btn-primary' : 'btn-outline' + // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition const btnText = options.btnText || 'OK' const onClick = options.callback === undefined ? 'data-dismiss="modal"' + // eslint-disable-next-line @typescript-eslint/restrict-template-expressions : `onclick="${options.callback}"` const destroyOnClose = options.destroyOnClose !== false @@ -43,7 +49,9 @@ export function showModal( $(dom) .on('hidden.bs.modal', /* istanbul ignore next */ function modal() { - destroyOnClose && $(this).remove() + if (destroyOnClose) { + $(this).remove() + } }) // @ts-ignore .modal(options) diff --git a/resources/assets/src/scripts/public-path.ts b/resources/assets/src/scripts/public-path.ts index 80fd6ba5..bc1ae774 100644 --- a/resources/assets/src/scripts/public-path.ts +++ b/resources/assets/src/scripts/public-path.ts @@ -1,5 +1,5 @@ /* eslint-disable prefer-const */ -/* eslint-disable camelcase */ +/* eslint-disable @typescript-eslint/camelcase */ declare let __webpack_public_path__: string const url = new URL(blessing.base_url) diff --git a/resources/assets/src/scripts/utils.ts b/resources/assets/src/scripts/utils.ts index 7fe5d7f9..d5173a17 100644 --- a/resources/assets/src/scripts/utils.ts +++ b/resources/assets/src/scripts/utils.ts @@ -7,7 +7,7 @@ export function debounce(func: CallableFunction, delay: number) { } export function queryString(key: string, defaultValue: string = ''): string { - const result = location.search.match(new RegExp(`[?&]${key}=([^&]+)`, 'i')) + const result = new RegExp(`[?&]${key}=([^&]+)`, 'i').exec(location.search) if (result === null || result.length < 1) { return defaultValue diff --git a/resources/assets/src/shims.d.ts b/resources/assets/src/shims.d.ts index f16dc072..d03ae93d 100644 --- a/resources/assets/src/shims.d.ts +++ b/resources/assets/src/shims.d.ts @@ -5,6 +5,7 @@ import * as JQuery from 'jquery' type I18n = 'en' | 'zh_CN' declare global { + // eslint-disable-next-line no-redeclare let blessing: { base_url: string debug: boolean @@ -47,10 +48,10 @@ declare module 'vue/types/vue' { $t(key: string, parameters?: object): string $http: { - get(url: string, params?: object) - post(url: string, data?: object): { code?: number, message?: string } - put(url: string, data?: object): { code?: number, message?: string } - del(url: string, data?: object): { code?: number, message?: string } + get(url: string, params?: object): Promise + post(url: string, data?: object): Promise<{ code?: number, message?: string }> + put(url: string, data?: object): Promise<{ code?: number, message?: string }> + del(url: string, data?: object): Promise<{ code?: number, message?: string }> } $route: RegExpExecArray | null @@ -58,7 +59,7 @@ declare module 'vue/types/vue' { } interface ModalOptions { - btnText?: string, - callback?: CallableFunction, + btnText?: string + callback?: CallableFunction destroyOnClose?: boolean } diff --git a/resources/assets/src/views/admin/Customization.ts b/resources/assets/src/views/admin/Customization.ts index 0bc212ec..577b46c5 100644 --- a/resources/assets/src/views/admin/Customization.ts +++ b/resources/assets/src/views/admin/Customization.ts @@ -3,7 +3,7 @@ function handler(event: Event): void { document.body.className.replace( /skin-\w+(?:-light)?/, // eslint-disable-next-line no-extra-parens - (event.target as HTMLInputElement).value + (event.target as HTMLInputElement).value, ) } diff --git a/resources/assets/src/views/admin/Dashboard.ts b/resources/assets/src/views/admin/Dashboard.ts index 7c63f58f..bb6b1fd8 100644 --- a/resources/assets/src/views/admin/Dashboard.ts +++ b/resources/assets/src/views/admin/Dashboard.ts @@ -1,4 +1,3 @@ -// eslint-disable-next-line import/no-extraneous-dependencies import 'zrender/lib/svg/svg' import echarts from 'echarts/lib/echarts' import 'echarts/lib/chart/line' @@ -99,7 +98,7 @@ async function createChart(el: HTMLDivElement) { smooth: true, symbol: 'circle', yAxisIndex: index, - }) + }), ), }) diff --git a/resources/assets/src/views/admin/Market.vue b/resources/assets/src/views/admin/Market.vue index f89e985f..1cefb3f6 100644 --- a/resources/assets/src/views/admin/Market.vue +++ b/resources/assets/src/views/admin/Market.vue @@ -135,7 +135,7 @@ export default { const { code, message } = await this.$http.post( '/admin/plugins/market/download', - { name } + { name }, ) if (code === 0) { this.$message.success(message) @@ -152,7 +152,7 @@ export default { await this.$confirm( this.$t('admin.confirmUpdate', { plugin: plugin.title, old: plugin.installed, new: plugin.version, - }) + }), ) } catch { return diff --git a/resources/assets/src/views/admin/Players.vue b/resources/assets/src/views/admin/Players.vue index c5913707..041525d7 100644 --- a/resources/assets/src/views/admin/Players.vue +++ b/resources/assets/src/views/admin/Players.vue @@ -171,7 +171,7 @@ export default { async fetchData() { const { data, totalRecords } = await this.$http.get( `/admin/player-data${location.search}`, - !location.search && this.serverParams + !location.search && this.serverParams, ) this.totalRecords = totalRecords this.players = data @@ -184,7 +184,7 @@ export default { '/admin/players?action=texture', { pid: player.pid, type, tid, - } + }, ) if (code === 0) { player[`tid_${type}`] = tid @@ -207,7 +207,7 @@ export default { const { code, message } = await this.$http.post( '/admin/players?action=name', - { pid: player.pid, name: value } + { pid: player.pid, name: value }, ) if (code === 0) { player.name = value @@ -228,7 +228,7 @@ export default { const { code, message } = await this.$http.post( '/admin/players?action=owner', - { pid: player.pid, uid: value } + { pid: player.pid, uid: value }, ) if (code === 0) { player.uid = value @@ -248,7 +248,7 @@ export default { const { code, message } = await this.$http.post( '/admin/players?action=delete', - { pid } + { pid }, ) if (code === 0) { this.$delete(this.players, originalIndex) diff --git a/resources/assets/src/views/admin/Plugins.vue b/resources/assets/src/views/admin/Plugins.vue index 0ab1ff1b..b3ca4bc6 100644 --- a/resources/assets/src/views/admin/Plugins.vue +++ b/resources/assets/src/views/admin/Plugins.vue @@ -132,7 +132,7 @@ export default { async disablePlugin({ name, originalIndex }) { const { code, message } = await this.$http.post( '/admin/plugins/manage', - { action: 'disable', name } + { action: 'disable', name }, ) if (code === 0) { this.$message.success(message) @@ -150,7 +150,7 @@ export default { const { code, message } = await this.$http.post( '/admin/plugins/manage', - { action: 'delete', name } + { action: 'delete', name }, ) if (code === 0) { this.$delete(this.plugins, originalIndex) diff --git a/resources/assets/src/views/admin/Reports.vue b/resources/assets/src/views/admin/Reports.vue index bebc83fa..63044eda 100644 --- a/resources/assets/src/views/admin/Reports.vue +++ b/resources/assets/src/views/admin/Reports.vue @@ -110,7 +110,7 @@ export default { async fetchData() { const { data, totalRecords } = await this.$http.get( '/admin/report-data', - this.serverParams + this.serverParams, ) this.totalRecords = totalRecords this.reports = data @@ -129,7 +129,7 @@ export default { code, message, data, } = await this.$http.post( '/admin/reports', - { id: report.id, action } + { id: report.id, action }, ) if (code === 0) { this.$message.success(message) diff --git a/resources/assets/src/views/admin/Translations.vue b/resources/assets/src/views/admin/Translations.vue index c678011a..daf5e656 100644 --- a/resources/assets/src/views/admin/Translations.vue +++ b/resources/assets/src/views/admin/Translations.vue @@ -76,7 +76,7 @@ export default { const { code, message } = await this.$http.put( '/admin/i18n', - { id: line.id, text } + { id: line.id, text }, ) if (code === 0) { line.text = text diff --git a/resources/assets/src/views/admin/Update.vue b/resources/assets/src/views/admin/Update.vue index 0b399260..12d664ba 100644 --- a/resources/assets/src/views/admin/Update.vue +++ b/resources/assets/src/views/admin/Update.vue @@ -69,7 +69,7 @@ export default { setTimeout(() => this.polling(), POLLING_INTERVAL) const { code, message } = await this.$http.post( '/admin/update/download', - { action: 'download' } + { action: 'download' }, ) this.updating = false if (code) { @@ -82,7 +82,7 @@ export default { async polling() { const percentage = await this.$http.get( '/admin/update/download', - { action: 'progress' } + { action: 'progress' }, ) this.percentage = ~~percentage * 100 this.updating && setTimeout(this.polling, POLLING_INTERVAL) diff --git a/resources/assets/src/views/admin/Users.vue b/resources/assets/src/views/admin/Users.vue index 9e3256d0..a83e2942 100644 --- a/resources/assets/src/views/admin/Users.vue +++ b/resources/assets/src/views/admin/Users.vue @@ -158,7 +158,7 @@ export default { async fetchData() { const { data, totalRecords } = await this.$http.get( `/admin/user-data${location.search}`, - !location.search && this.serverParams + !location.search && this.serverParams, ) this.totalRecords = totalRecords this.users = data @@ -176,7 +176,7 @@ export default { const { code, message } = await this.$http.post( '/admin/users?action=email', - { uid: user.uid, email: value } + { uid: user.uid, email: value }, ) if (code === 0) { user.email = value @@ -188,7 +188,7 @@ export default { async toggleVerification(user) { const { code, message } = await this.$http.post( '/admin/users?action=verification', - { uid: user.uid } + { uid: user.uid }, ) if (code === 0) { user.verified = !user.verified @@ -210,7 +210,7 @@ export default { const { code, message } = await this.$http.post( '/admin/users?action=nickname', - { uid: user.uid, nickname: value } + { uid: user.uid, nickname: value }, ) if (code === 0) { user.nickname = value @@ -231,7 +231,7 @@ export default { const { code, message } = await this.$http.post( '/admin/users?action=password', - { uid: user.uid, password: value } + { uid: user.uid, password: value }, ) code === 0 ? this.$message.success(message) : this.$message.warning(message) }, @@ -249,7 +249,7 @@ export default { const { code, message } = await this.$http.post( '/admin/users?action=score', - { uid: user.uid, score } + { uid: user.uid, score }, ) if (code === 0) { user.score = score @@ -273,7 +273,7 @@ export default { h( 'select', { attrs: { selectedIndex: 0 } }, - options.map(option => h('option', null, option)) + options.map(option => h('option', null, option)), ), ]) @@ -309,7 +309,7 @@ export default { const { code, message } = await this.$http.post( '/admin/users?action=delete', - { uid } + { uid }, ) if (code === 0) { this.$delete(this.users, originalIndex) diff --git a/resources/assets/src/views/auth/Forgot.vue b/resources/assets/src/views/auth/Forgot.vue index caf06324..2f8739a6 100644 --- a/resources/assets/src/views/auth/Forgot.vue +++ b/resources/assets/src/views/auth/Forgot.vue @@ -73,7 +73,7 @@ export default { this.pending = true const { code, message } = await this.$http.post( '/auth/forgot', - { email, captcha: await this.$refs.captcha.execute() } + { email, captcha: await this.$refs.captcha.execute() }, ) if (code === 0) { this.warningMsg = '' diff --git a/resources/assets/src/views/auth/Login.vue b/resources/assets/src/views/auth/Login.vue index ab8101dd..09a743d4 100644 --- a/resources/assets/src/views/auth/Login.vue +++ b/resources/assets/src/views/auth/Login.vue @@ -107,7 +107,7 @@ export default { captcha: this.tooManyFails ? await this.$refs.captcha.execute() : void 0, - } + }, ) if (code === 0) { this.$message.success(message) diff --git a/resources/assets/src/views/auth/Register.vue b/resources/assets/src/views/auth/Register.vue index 0340f74d..5b279011 100644 --- a/resources/assets/src/views/auth/Register.vue +++ b/resources/assets/src/views/auth/Register.vue @@ -166,7 +166,7 @@ export default { email, password, captcha: await this.$refs.captcha.execute(), - }, this.requirePlayer ? { player_name: playerName } : { nickname }) + }, this.requirePlayer ? { player_name: playerName } : { nickname }), ) if (code === 0) { this.$message.success(message) diff --git a/resources/assets/src/views/auth/Reset.vue b/resources/assets/src/views/auth/Reset.vue index 569398ac..0772f65d 100644 --- a/resources/assets/src/views/auth/Reset.vue +++ b/resources/assets/src/views/auth/Reset.vue @@ -87,7 +87,7 @@ export default { this.pending = true const { code, message } = await this.$http.post( `/auth/reset/${this.uid}${location.search}`, - { password } + { password }, ) if (code === 0) { this.$message.success(message) diff --git a/resources/assets/src/views/skinlib/List.vue b/resources/assets/src/views/skinlib/List.vue index 946ceba6..f6f98db2 100644 --- a/resources/assets/src/views/skinlib/List.vue +++ b/resources/assets/src/views/skinlib/List.vue @@ -252,7 +252,7 @@ export default { sort: this.sort, keyword: this.keyword, page: this.page, - } + }, ) this.items = items this.totalPages = totalPages diff --git a/resources/assets/src/views/skinlib/Show.vue b/resources/assets/src/views/skinlib/Show.vue index 48b5ea3a..e330eb45 100644 --- a/resources/assets/src/views/skinlib/Show.vue +++ b/resources/assets/src/views/skinlib/Show.vue @@ -266,7 +266,7 @@ export default { const { code, message } = await this.$http.post( '/skinlib/rename', - { tid: this.tid, new_name: value } + { tid: this.tid, new_name: value }, ) if (code === 0) { this.name = value @@ -297,7 +297,7 @@ export default { const { code, message } = await this.$http.post( '/skinlib/model', - { tid: this.tid, model: value } + { tid: this.tid, model: value }, ) if (code === 0) { this.type = value @@ -312,7 +312,7 @@ export default { this.public ? this.$t('skinlib.setPrivateNotice') : this.$t('skinlib.setPublicNotice'), - { type: 'warning' } + { type: 'warning' }, ) } catch { return @@ -320,7 +320,7 @@ export default { const { code, message } = await this.$http.post( '/skinlib/privacy', - { tid: this.tid } + { tid: this.tid }, ) if (code === 0) { this.$message.success(message) @@ -333,7 +333,7 @@ export default { try { await this.$confirm( this.$t('skinlib.deleteNotice'), - { type: 'warning' } + { type: 'warning' }, ) } catch { return @@ -341,7 +341,7 @@ export default { const { code, message } = await this.$http.post( '/skinlib/delete', - { tid: this.tid } + { tid: this.tid }, ) if (code === 0) { this.$message.success(message) @@ -371,7 +371,7 @@ export default { const { code, message } = await this.$http.post( '/skinlib/report', - { tid: this.tid, reason } + { tid: this.tid, reason }, ) if (code === 0) { this.$message.success(message) diff --git a/resources/assets/src/views/user/Bind.vue b/resources/assets/src/views/user/Bind.vue index 6dc9e116..7531c6c7 100644 --- a/resources/assets/src/views/user/Bind.vue +++ b/resources/assets/src/views/user/Bind.vue @@ -60,7 +60,7 @@ export default { this.pending = true const { code, message } = await this.$http.post( '/user/player/bind', - { player: this.selected } + { player: this.selected }, ) this.pending = false if (code === 0) { diff --git a/resources/assets/src/views/user/Closet.vue b/resources/assets/src/views/user/Closet.vue index 8046403f..bb04b897 100644 --- a/resources/assets/src/views/user/Closet.vue +++ b/resources/assets/src/views/user/Closet.vue @@ -243,7 +243,7 @@ export default { category: this.category, q: this.query, page, - } + }, ) this[`${category}TotalPages`] = totalPages this[`${category}Items`] = items diff --git a/resources/assets/src/views/user/Dashboard.vue b/resources/assets/src/views/user/Dashboard.vue index e0b6ed6a..ec02fdaf 100644 --- a/resources/assets/src/views/user/Dashboard.vue +++ b/resources/assets/src/views/user/Dashboard.vue @@ -114,7 +114,7 @@ export default { }, signRemainingTime() { if (this.signAfterZero) { - const today = (new Date()).setHours(0, 0, 0, 0) + const today = new Date().setHours(0, 0, 0, 0) const tomorrow = today + ONE_DAY return this.lastSignAt.valueOf() < today ? 0 : tomorrow - Date.now() } @@ -125,12 +125,12 @@ export default { if (time < 60) { return this.$t( 'user.sign-remain-time', - { time: ~~time, unit: this.$t('user.time-unit-min') } + { time: ~~time, unit: this.$t('user.time-unit-min') }, ) } return this.$t( 'user.sign-remain-time', - { time: ~~(time / 60), unit: this.$t('user.time-unit-hour') } + { time: ~~(time / 60), unit: this.$t('user.time-unit-hour') }, ) }, canSign() { diff --git a/resources/assets/src/views/user/OAuth.vue b/resources/assets/src/views/user/OAuth.vue index 7827e3ff..ad5e6f27 100644 --- a/resources/assets/src/views/user/OAuth.vue +++ b/resources/assets/src/views/user/OAuth.vue @@ -198,7 +198,7 @@ export default { Object.assign({}, init, { body: JSON.stringify(Object.assign({ name: client.name, redirect: client.redirect }, modified)), method: 'PUT', - }) + }), ) request.headers.set('Content-Type', 'application/json') const result = await walkFetch(request) @@ -216,7 +216,7 @@ export default { } const request = new Request( `/oauth/clients/${client.id}`, - Object.assign({}, init, { method: 'DELETE' }) + Object.assign({}, init, { method: 'DELETE' }), ) await walkFetch(request) this.$delete(this.clients, this.clients.findIndex(({ id }) => id === client.id)) diff --git a/resources/assets/src/views/user/Players.vue b/resources/assets/src/views/user/Players.vue index df47536e..b8846081 100644 --- a/resources/assets/src/views/user/Players.vue +++ b/resources/assets/src/views/user/Players.vue @@ -240,7 +240,7 @@ export default { const { code, message } = await this.$http.post( `/user/player/rename/${player.pid}`, - { name: value } + { name: value }, ) if (code === 0) { this.$message.success(message) @@ -256,7 +256,7 @@ export default { const { code, message } = await this.$http.post( `/user/player/texture/clear/${this.selected}`, - this.clear + this.clear, ) if (code === 0) { $('.modal').modal('hide') diff --git a/resources/assets/src/views/user/Profile.vue b/resources/assets/src/views/user/Profile.vue index e9eb5e6b..d8025fae 100644 --- a/resources/assets/src/views/user/Profile.vue +++ b/resources/assets/src/views/user/Profile.vue @@ -242,7 +242,7 @@ export default { const { message } = await this.$http.post( '/user/profile/avatar', - { tid: 0 } + { tid: 0 }, ) this.$message.success(message) Array.from(document.querySelectorAll('[alt="User Image"]')) @@ -261,7 +261,7 @@ export default { const { code, message } = await this.$http.post( '/user/profile?action=password', - { current_password: oldPassword, new_password: newPassword } + { current_password: oldPassword, new_password: newPassword }, ) if (code === 0) { await this.$alert(message) @@ -280,7 +280,7 @@ export default { const { code, message } = await this.$http.post( '/user/profile?action=nickname', - { new_nickname: nickname } + { new_nickname: nickname }, ) if (code === 0) { Array.from(document.querySelectorAll('.nickname')) @@ -300,7 +300,7 @@ export default { const { code, message } = await this.$http.post( '/user/profile?action=email', - { new_email: email, password: this.currentPassword } + { new_email: email, password: this.currentPassword }, ) if (code === 0) { await this.$message.success(message) @@ -313,7 +313,7 @@ export default { const { code, message } = await this.$http.post( '/user/profile?action=delete', - { password } + { password }, ) if (code === 0) { await this.$alert(message, { type: 'success' }) diff --git a/resources/assets/tests/components/AddPlayerDialog.test.ts b/resources/assets/tests/components/AddPlayerDialog.test.ts index 273e0c5d..39a67555 100644 --- a/resources/assets/tests/components/AddPlayerDialog.test.ts +++ b/resources/assets/tests/components/AddPlayerDialog.test.ts @@ -21,7 +21,7 @@ test('add player', async () => { button.trigger('click') expect(Vue.prototype.$http.post).toBeCalledWith( '/user/player/add', - { name: 'the-new' } + { name: 'the-new' }, ) await flushPromises() expect(wrapper.text()).not.toContain('the-new') diff --git a/resources/assets/tests/components/ApplyToPlayerDialog.test.ts b/resources/assets/tests/components/ApplyToPlayerDialog.test.ts index 443fbbda..3c988945 100644 --- a/resources/assets/tests/components/ApplyToPlayerDialog.test.ts +++ b/resources/assets/tests/components/ApplyToPlayerDialog.test.ts @@ -25,7 +25,7 @@ test('submit applying texture', async () => { { skin: 1, cape: undefined, - } + }, ) wrapper.setProps({ skin: 0, cape: 1 }) button.trigger('click') @@ -34,7 +34,7 @@ test('submit applying texture', async () => { { skin: undefined, cape: 1, - } + }, ) await flushPromises() expect(Vue.prototype.$message.success).toBeCalledWith('ok') diff --git a/resources/assets/tests/components/ClosetItem.test.ts b/resources/assets/tests/components/ClosetItem.test.ts index 9579db31..ac994fc7 100644 --- a/resources/assets/tests/components/ClosetItem.test.ts +++ b/resources/assets/tests/components/ClosetItem.test.ts @@ -20,7 +20,7 @@ test('computed values', () => { wrapper .findAll('.dropdown-item') .at(2) - .attributes('href') + .attributes('href'), ).toBe('/skinlib/show/1') }) @@ -66,7 +66,7 @@ test('rename texture', async () => { expect(wrapper.find('[data-test="name"]').text()).toBe('new-name (steve)') expect(Vue.prototype.$http.post).toBeCalledWith( '/user/closet/rename/1', - { name: 'new-name' } + { name: 'new-name' }, ) }) diff --git a/resources/assets/tests/components/Previewer.test.ts b/resources/assets/tests/components/Previewer.test.ts index 3c5107c0..9e7d3adf 100644 --- a/resources/assets/tests/components/Previewer.test.ts +++ b/resources/assets/tests/components/Previewer.test.ts @@ -100,7 +100,7 @@ test('reset', () => { mockedSkinview3d.SkinViewer.prototype.dispose = jest.fn( function (this: mockedSkinview3d.SkinViewer) { this.disposed = true - }.bind(new mockedSkinview3d.SkinViewer()) + }.bind(new mockedSkinview3d.SkinViewer()), ) const wrapper = mount(Previewer, { propsData: { diff --git a/resources/assets/tests/components/SkinLibItem.test.ts b/resources/assets/tests/components/SkinLibItem.test.ts index acc82ae6..543c2039 100644 --- a/resources/assets/tests/components/SkinLibItem.test.ts +++ b/resources/assets/tests/components/SkinLibItem.test.ts @@ -98,7 +98,7 @@ test('add to closet', async () => { await flushPromises() expect(Vue.prototype.$http.post).toBeCalledWith( '/user/closet/add', - { tid: 1, name: 'name' } + { tid: 1, name: 'name' }, ) expect(Vue.prototype.$message.warning).toBeCalledWith('1') diff --git a/resources/assets/tests/scripts/home-page.test.ts b/resources/assets/tests/scripts/home-page.test.ts index 5b893898..208813a2 100644 --- a/resources/assets/tests/scripts/home-page.test.ts +++ b/resources/assets/tests/scripts/home-page.test.ts @@ -10,7 +10,7 @@ test('should be transparent at top', () => { handler() window.dispatchEvent(new Event('scroll')) expect( - document.querySelector('nav')!.classList.contains('transparent') + document.querySelector('nav')!.classList.contains('transparent'), ).toBeTrue() }) @@ -20,6 +20,6 @@ test('should not be transparent at bottom', () => { handler() window.dispatchEvent(new Event('scroll')) expect( - document.querySelector('nav')!.classList.contains('transparent') + document.querySelector('nav')!.classList.contains('transparent'), ).toBeFalse() }) diff --git a/resources/assets/tests/scripts/net.test.ts b/resources/assets/tests/scripts/net.test.ts index 16567d15..e0d42ed3 100644 --- a/resources/assets/tests/scripts/net.test.ts +++ b/resources/assets/tests/scripts/net.test.ts @@ -205,7 +205,7 @@ test('process backend errors', async () => { }) const result: { - code: number, + code: number message: string } = await net.walkFetch({ headers: new Headers() } as Request) expect(result.code).toBe(1) @@ -216,7 +216,7 @@ test('process backend errors', async () => { await net.walkFetch({ headers: new Headers() } as Request) expect(showAjaxError.mock.calls[0][0].message).toBe( - 'fake exception\n
[1] k.php#L2\n[2] v.php#L3
' + 'fake exception\n
[1] k.php#L2\n[2] v.php#L3
', ) }) diff --git a/resources/assets/tests/setup.js b/resources/assets/tests/setup.js index febc86e7..8658318b 100644 --- a/resources/assets/tests/setup.js +++ b/resources/assets/tests/setup.js @@ -1,5 +1,4 @@ /* eslint-disable max-classes-per-file */ -/* eslint-disable import/no-extraneous-dependencies */ import 'jest-extended' import Vue from 'vue' import { diff --git a/resources/assets/tests/shims.d.ts b/resources/assets/tests/shims.d.ts index bdf60bde..16ca094a 100644 --- a/resources/assets/tests/shims.d.ts +++ b/resources/assets/tests/shims.d.ts @@ -10,7 +10,7 @@ declare module 'vue/types/vue' { post: jest.Mock put: jest.Mock del: jest.Mock - }, + } $message: { info: jest.Mock, Parameters> success: jest.Mock, Parameters> diff --git a/resources/assets/tests/ts-shims/element.ts b/resources/assets/tests/ts-shims/element.ts index a54d5b98..c1e02e1c 100644 --- a/resources/assets/tests/ts-shims/element.ts +++ b/resources/assets/tests/ts-shims/element.ts @@ -1,9 +1,10 @@ +/* eslint-disable max-len */ import { ElMessage } from 'element-ui/types/message' import { ElMessageBox } from 'element-ui/types/message-box' export const Message = {} as jest.Mock, Parameters> export const MessageBox = {} as jest.Mock, Parameters> & { - alert: jest.Mock, Parameters>, - confirm: jest.Mock, Parameters>, + alert: jest.Mock, Parameters> + confirm: jest.Mock, Parameters> prompt: jest.Mock, Parameters> } diff --git a/resources/assets/tests/views/admin/Market.test.ts b/resources/assets/tests/views/admin/Market.test.ts index 52b75a71..de0e6824 100644 --- a/resources/assets/tests/views/admin/Market.test.ts +++ b/resources/assets/tests/views/admin/Market.test.ts @@ -63,7 +63,7 @@ test('install plugin', async () => { await flushPromises() expect(Vue.prototype.$http.post).toBeCalledWith( '/admin/plugins/market/download', - { name: 'd' } + { name: 'd' }, ) button.trigger('click') await flushPromises() @@ -97,6 +97,6 @@ test('update plugin', async () => { await flushPromises() expect(Vue.prototype.$http.post).toBeCalledWith( '/admin/plugins/market/download', - { name: 'a' } + { name: 'a' }, ) }) diff --git a/resources/assets/tests/views/admin/Players.test.ts b/resources/assets/tests/views/admin/Players.test.ts index f1d4fcb2..6849b779 100644 --- a/resources/assets/tests/views/admin/Players.test.ts +++ b/resources/assets/tests/views/admin/Players.test.ts @@ -11,7 +11,7 @@ test('fetch data after initializing', () => { '/admin/player-data', { page: 1, perPage: 10, search: '', sortField: 'pid', sortType: 'asc', - } + }, ) }) @@ -39,7 +39,7 @@ test('change texture', async () => { '/admin/players?action=texture', { pid: 1, tid: 5, type: 'skin', - } + }, ) button.trigger('click') await flushPromises() @@ -76,7 +76,7 @@ test('change player name', async () => { await flushPromises() expect(Vue.prototype.$http.post).toBeCalledWith( '/admin/players?action=name', - { pid: 1, name: 'new' } + { pid: 1, name: 'new' }, ) button.trigger('click') await flushPromises() @@ -107,7 +107,7 @@ test('change owner', async () => { await flushPromises() expect(Vue.prototype.$http.post).toBeCalledWith( '/admin/players?action=owner', - { pid: 1, uid: '3' } + { pid: 1, uid: '3' }, ) button.trigger('click') await flushPromises() @@ -138,7 +138,7 @@ test('delete player', async () => { await flushPromises() expect(Vue.prototype.$http.post).toBeCalledWith( '/admin/players?action=delete', - { pid: 1 } + { pid: 1 }, ) expect(wrapper.text()).toContain('to-be-deleted') diff --git a/resources/assets/tests/views/admin/Plugins.test.ts b/resources/assets/tests/views/admin/Plugins.test.ts index 2d7085d5..a381c310 100644 --- a/resources/assets/tests/views/admin/Plugins.test.ts +++ b/resources/assets/tests/views/admin/Plugins.test.ts @@ -81,7 +81,7 @@ test('enable plugin', async () => { await flushPromises() expect(Vue.prototype.$http.post).toBeCalledWith( '/admin/plugins/manage', - { action: 'enable', name: 'a' } + { action: 'enable', name: 'a' }, ) expect(Vue.prototype.$alert).toBeCalledWith('', ({ type: 'warning', @@ -112,7 +112,7 @@ test('disable plugin', async () => { await flushPromises() expect(Vue.prototype.$http.post).toBeCalledWith( '/admin/plugins/manage', - { action: 'disable', name: 'a' } + { action: 'disable', name: 'a' }, ) button.trigger('click') await flushPromises() @@ -148,7 +148,7 @@ test('delete plugin', async () => { await flushPromises() expect(Vue.prototype.$http.post).toBeCalledWith( '/admin/plugins/manage', - { action: 'delete', name: 'a' } + { action: 'delete', name: 'a' }, ) expect(Vue.prototype.$message.warning).toBeCalledWith('1') diff --git a/resources/assets/tests/views/admin/Reports.test.ts b/resources/assets/tests/views/admin/Reports.test.ts index 386ef5af..31e1217b 100644 --- a/resources/assets/tests/views/admin/Reports.test.ts +++ b/resources/assets/tests/views/admin/Reports.test.ts @@ -48,7 +48,7 @@ test('delete texture', async () => { await flushPromises() expect(Vue.prototype.$http.post).toBeCalledWith( '/admin/reports', - { id: 1, action: 'delete' } + { id: 1, action: 'delete' }, ) expect(Vue.prototype.$message.warning).toBeCalledWith('fail') @@ -72,7 +72,7 @@ test('ban uploader', async () => { await flushPromises() expect(Vue.prototype.$http.post).toBeCalledWith( '/admin/reports', - { id: 1, action: 'ban' } + { id: 1, action: 'ban' }, ) expect(Vue.prototype.$message.success).toBeCalledWith('ok') expect(wrapper.text()).toContain('report.status.1') @@ -92,7 +92,7 @@ test('reject', async () => { await flushPromises() expect(Vue.prototype.$http.post).toBeCalledWith( '/admin/reports', - { id: 1, action: 'reject' } + { id: 1, action: 'reject' }, ) expect(Vue.prototype.$message.success).toBeCalledWith('ok') expect(wrapper.text()).toContain('report.status.2') diff --git a/resources/assets/tests/views/admin/Translations.test.ts b/resources/assets/tests/views/admin/Translations.test.ts index f18a07e3..23e76f66 100644 --- a/resources/assets/tests/views/admin/Translations.test.ts +++ b/resources/assets/tests/views/admin/Translations.test.ts @@ -43,7 +43,7 @@ test('modify line', async () => { await flushPromises() expect(Vue.prototype.$http.put).toBeCalledWith( '/admin/i18n', - { id: 1, text: '' } + { id: 1, text: '' }, ) expect(Vue.prototype.$message.warning).toBeCalledWith('failed') expect(wrapper.text()).not.toContain('wanshengwei') @@ -52,7 +52,7 @@ test('modify line', async () => { await flushPromises() expect(Vue.prototype.$http.put).toBeCalledWith( '/admin/i18n', - { id: 1, text: 'wanshengwei' } + { id: 1, text: 'wanshengwei' }, ) expect(Vue.prototype.$message.success).toBeCalledWith('ok') expect(wrapper.text()).toContain('wanshengwei') diff --git a/resources/assets/tests/views/admin/Update.test.ts b/resources/assets/tests/views/admin/Update.test.ts index d403b4b2..559fd3e3 100644 --- a/resources/assets/tests/views/admin/Update.test.ts +++ b/resources/assets/tests/views/admin/Update.test.ts @@ -32,11 +32,11 @@ test('perform update', async () => { expect($).toBeCalled() expect(Vue.prototype.$http.get).toBeCalledWith( '/admin/update/download', - { action: 'progress' } + { action: 'progress' }, ) expect(Vue.prototype.$http.post).toBeCalledWith( '/admin/update/download', - { action: 'download' } + { action: 'download' }, ) }) @@ -46,6 +46,6 @@ test('polling for querying download progress', async () => { await wrapper.vm.polling() expect(Vue.prototype.$http.get).toBeCalledWith( '/admin/update/download', - { action: 'progress' } + { action: 'progress' }, ) }) diff --git a/resources/assets/tests/views/admin/Users.test.ts b/resources/assets/tests/views/admin/Users.test.ts index 71bd9868..c2640c95 100644 --- a/resources/assets/tests/views/admin/Users.test.ts +++ b/resources/assets/tests/views/admin/Users.test.ts @@ -16,7 +16,7 @@ test('fetch data after initializing', () => { '/admin/user-data', { page: 1, perPage: 10, search: '', sortField: 'uid', sortType: 'asc', - } + }, ) }) @@ -256,7 +256,7 @@ test('change email', async () => { await flushPromises() expect(Vue.prototype.$http.post).toBeCalledWith( '/admin/users?action=email', - { uid: 1, email: 'd@e.f' } + { uid: 1, email: 'd@e.f' }, ) expect(wrapper.text()).toContain('a@b.c') @@ -283,7 +283,7 @@ test('toggle verification', async () => { await flushPromises() expect(Vue.prototype.$http.post).toBeCalledWith( '/admin/users?action=verification', - { uid: 1 } + { uid: 1 }, ) button.trigger('click') await flushPromises() @@ -319,7 +319,7 @@ test('change nickname', async () => { await flushPromises() expect(Vue.prototype.$http.post).toBeCalledWith( '/admin/users?action=nickname', - { uid: 1, nickname: 'new' } + { uid: 1, nickname: 'new' }, ) expect(wrapper.text()).toContain('old') @@ -352,7 +352,7 @@ test('change password', async () => { await flushPromises() expect(Vue.prototype.$http.post).toBeCalledWith( '/admin/users?action=password', - { uid: 1, password: 'password' } + { uid: 1, password: 'password' }, ) await flushPromises() expect(Vue.prototype.$message.success).toBeCalledWith('0') @@ -387,7 +387,7 @@ test('change score', async () => { await flushPromises() expect(Vue.prototype.$http.post).toBeCalledWith( '/admin/users?action=score', - { uid: 1, score: 45 } + { uid: 1, score: 45 }, ) expect(wrapper.text()).toContain('23') @@ -452,7 +452,7 @@ test('change permission', async () => { await flushPromises() expect(Vue.prototype.$http.post).toBeCalledWith( '/admin/users?action=permission', - { uid: 1, permission: 1 } + { uid: 1, permission: 1 }, ) expect(wrapper.text()).toContain('admin.normal') @@ -489,7 +489,7 @@ test('delete user', async () => { await flushPromises() expect(Vue.prototype.$http.post).toBeCalledWith( '/admin/users?action=delete', - { uid: 1 } + { uid: 1 }, ) expect(wrapper.text()).toContain('to-be-deleted') diff --git a/resources/assets/tests/views/auth/Forgot.test.ts b/resources/assets/tests/views/auth/Forgot.test.ts index e07dee38..79ee8006 100644 --- a/resources/assets/tests/views/auth/Forgot.test.ts +++ b/resources/assets/tests/views/auth/Forgot.test.ts @@ -28,7 +28,7 @@ test('submit forgot form', async () => { await flushPromises() expect(Vue.prototype.$http.post).toBeCalledWith( '/auth/forgot', - { email: 'a@b.c', captcha: 'captcha' } + { email: 'a@b.c', captcha: 'captcha' }, ) expect(warning.text()).toBe('fail') diff --git a/resources/assets/tests/views/auth/Login.test.ts b/resources/assets/tests/views/auth/Login.test.ts index 27f10994..84bda5aa 100644 --- a/resources/assets/tests/views/auth/Login.test.ts +++ b/resources/assets/tests/views/auth/Login.test.ts @@ -41,7 +41,7 @@ test('login', async () => { '/auth/login', { identification: 'a@b.c', password: '123', keep: false, - } + }, ) expect(warning.text()).toBe('fail') @@ -70,7 +70,7 @@ test('login', async () => { '/auth/login', { identification: 'a@b.c', password: '123', keep: true, captcha: 'a', - } + }, ) await flushPromises() jest.runAllTimers() diff --git a/resources/assets/tests/views/auth/Register.test.ts b/resources/assets/tests/views/auth/Register.test.ts index f5dca895..2b244e8c 100644 --- a/resources/assets/tests/views/auth/Register.test.ts +++ b/resources/assets/tests/views/auth/Register.test.ts @@ -56,7 +56,7 @@ test('register', async () => { password: '12345678', nickname: 'abc', captcha: 'captcha', - } + }, ) await flushPromises() expect(warning.text()).toBe('fail') @@ -88,6 +88,6 @@ test('register with player name', async () => { password: '12345678', player_name: 'abc', captcha: 'captcha', - } + }, ) }) diff --git a/resources/assets/tests/views/auth/Reset.test.ts b/resources/assets/tests/views/auth/Reset.test.ts index d88b57f2..7b7310b5 100644 --- a/resources/assets/tests/views/auth/Reset.test.ts +++ b/resources/assets/tests/views/auth/Reset.test.ts @@ -29,7 +29,7 @@ test('reset password', async () => { form.trigger('submit') expect(Vue.prototype.$http.post).toBeCalledWith( '/auth/reset/1', // Ignore `location.search` - { password: '12345678' } + { password: '12345678' }, ) await flushPromises() expect(warning.text()).toBe('fail') diff --git a/resources/assets/tests/views/skinlib/List.test.ts b/resources/assets/tests/views/skinlib/List.test.ts index 8fba1731..03d1af57 100644 --- a/resources/assets/tests/views/skinlib/List.test.ts +++ b/resources/assets/tests/views/skinlib/List.test.ts @@ -19,7 +19,7 @@ test('fetch data before mounting', () => { '/skinlib/data', { filter: 'skin', uploader: 0, sort: 'time', keyword: '', page: 1, - } + }, ) }) @@ -67,7 +67,7 @@ test('toggle texture type', () => { '/skinlib/data', { filter: 'steve', uploader: 0, sort: 'time', keyword: '', page: 1, - } + }, ) btnAlex.trigger('click') @@ -81,7 +81,7 @@ test('toggle texture type', () => { '/skinlib/data', { filter: 'alex', uploader: 0, sort: 'time', keyword: '', page: 1, - } + }, ) expect(queryString('filter')).toBe('alex') @@ -96,7 +96,7 @@ test('toggle texture type', () => { '/skinlib/data', { filter: 'cape', uploader: 0, sort: 'time', keyword: '', page: 1, - } + }, ) expect(queryString('filter')).toBe('cape') }) @@ -120,7 +120,7 @@ test('check specified uploader', async () => { '/skinlib/data', { filter: 'skin', uploader: 1, sort: 'time', keyword: '', page: 1, - } + }, ) expect(queryString('uploader')).toBe('1') }) @@ -141,7 +141,7 @@ test('sort items', () => { '/skinlib/data', { filter: 'skin', uploader: 0, sort: 'likes', keyword: '', page: 1, - } + }, ) expect(wrapper.text()).toContain('skinlib.sort.likes') expect(sortByLikes.classes()).toContain('active') @@ -152,7 +152,7 @@ test('sort items', () => { '/skinlib/data', { filter: 'skin', uploader: 0, sort: 'time', keyword: '', page: 1, - } + }, ) expect(wrapper.text()).toContain('skinlib.sort.time') expect(sortByTime.classes()).toContain('active') @@ -174,7 +174,7 @@ test('search by keyword', () => { '/skinlib/data', { filter: 'skin', uploader: 0, sort: 'time', keyword: 'a', page: 1, - } + }, ) expect(queryString('keyword')).toBe('a') @@ -184,7 +184,7 @@ test('search by keyword', () => { '/skinlib/data', { filter: 'skin', uploader: 0, sort: 'time', keyword: 'b', page: 1, - } + }, ) expect(queryString('keyword')).toBe('b') }) @@ -231,7 +231,7 @@ test('on page changed', () => { '/skinlib/data', { filter: 'skin', uploader: 0, sort: 'time', keyword: '', page: 2, - } + }, ) expect(queryString('page')).toBe('2') }) @@ -247,7 +247,7 @@ test('on like toggled', async () => { }, }) const wrapper = mount }>(List) await flushPromises() diff --git a/resources/assets/tests/views/skinlib/Show.test.ts b/resources/assets/tests/views/skinlib/Show.test.ts index c1d0e0df..8db5c2c2 100644 --- a/resources/assets/tests/views/skinlib/Show.test.ts +++ b/resources/assets/tests/views/skinlib/Show.test.ts @@ -269,7 +269,7 @@ test('change texture name', async () => { await flushPromises() expect(Vue.prototype.$http.post).toBeCalledWith( '/skinlib/rename', - { tid: 1, new_name: 'new-name' } + { tid: 1, new_name: 'new-name' }, ) expect(Vue.prototype.$message.error).toBeCalledWith('1') @@ -314,7 +314,7 @@ test('change texture model', async () => { await flushPromises() expect(Vue.prototype.$http.post).toBeCalledWith( '/skinlib/model', - { tid: 1, model: 'alex' } + { tid: 1, model: 'alex' }, ) expect(Vue.prototype.$message.warning).toBeCalledWith('1') @@ -346,7 +346,7 @@ test('toggle privacy', async () => { await flushPromises() expect(Vue.prototype.$http.post).toBeCalledWith( '/skinlib/privacy', - { tid: 1 } + { tid: 1 }, ) expect(Vue.prototype.$message.warning).toBeCalledWith('1') @@ -382,7 +382,7 @@ test('delete texture', async () => { await flushPromises() expect(Vue.prototype.$http.post).toBeCalledWith( '/skinlib/delete', - { tid: 1 } + { tid: 1 }, ) expect(Vue.prototype.$message.warning).toBeCalledWith('1') @@ -432,7 +432,7 @@ test('report texture', async () => { await flushPromises() expect(Vue.prototype.$http.post).toBeCalledWith( '/skinlib/report', - { tid: 1, reason: 'reason' } + { tid: 1, reason: 'reason' }, ) expect(Vue.prototype.$message.warning).toBeCalledWith('duplicated') diff --git a/resources/assets/tests/views/skinlib/Upload.test.ts b/resources/assets/tests/views/skinlib/Upload.test.ts index 9db6a1b3..1c0828b1 100644 --- a/resources/assets/tests/views/skinlib/Upload.test.ts +++ b/resources/assets/tests/views/skinlib/Upload.test.ts @@ -74,7 +74,9 @@ test('process input file', () => { this.src = '' this.onload = null Object.defineProperty(this, 'onload', { - set: fn => fn(), + set: fn => { + fn() + }, }) }) .mockImplementationOnce(function (this: HTMLImageElement) { @@ -82,7 +84,9 @@ test('process input file', () => { this.width = 500 this.onload = null Object.defineProperty(this, 'onload', { - set: fn => fn(), + set: fn => { + fn() + }, }) }) jest.spyOn(skinview3d, 'isSlimSkin') diff --git a/resources/assets/tests/views/user/Closet.test.ts b/resources/assets/tests/views/user/Closet.test.ts index ad2e98ae..8e961fe2 100644 --- a/resources/assets/tests/views/user/Closet.test.ts +++ b/resources/assets/tests/views/user/Closet.test.ts @@ -17,7 +17,7 @@ test('fetch closet data before mount', () => { category: 'skin', q: '', page: 1, - } + }, ) }) @@ -49,7 +49,7 @@ test('switch tabs', () => { category: 'skin', q: '', page: 1, - } + }, ) wrapper .findAll('.nav-link') @@ -62,7 +62,7 @@ test('switch tabs', () => { category: 'cape', q: '', page: 1, - } + }, ) }) @@ -74,7 +74,7 @@ test('different categories', () => { wrapper .findAll('.nav-link') .at(0) - .classes('active') + .classes('active'), ).toBeTrue() expect(wrapper.find('#skin-category').classes('active')).toBeTrue() @@ -83,7 +83,7 @@ test('different categories', () => { wrapper .findAll('.nav-link') .at(1) - .classes('active') + .classes('active'), ).toBeTrue() expect(wrapper.find('#cape-category').classes('active')).toBeTrue() }) @@ -103,7 +103,7 @@ test('search textures', () => { category: 'skin', q: 'q', page: 1, - } + }, ) }) diff --git a/resources/assets/tests/views/user/OAuth.test.ts b/resources/assets/tests/views/user/OAuth.test.ts index 6d7da7fa..9ec159cb 100644 --- a/resources/assets/tests/views/user/OAuth.test.ts +++ b/resources/assets/tests/views/user/OAuth.test.ts @@ -39,7 +39,7 @@ test('create app', async () => { await flushPromises() expect(Vue.prototype.$http.post).toBeCalledWith( '/oauth/clients', - { name: 'name', redirect: 'https://example.com/' } + { name: 'name', redirect: 'https://example.com/' }, ) expect(Vue.prototype.$message.warning).toBeCalledWith('fail') @@ -73,7 +73,7 @@ test('modify name', async () => { url: '/oauth/clients/1', body: JSON.stringify({ name: 'new-name' }), method: 'PUT', - }) + }), ) expect(Vue.prototype.$message.warning).toBeCalledWith('fail') @@ -107,7 +107,7 @@ test('modify redirect', async () => { url: '/oauth/clients/1', body: JSON.stringify({ redirect: 'https://example.net/' }), method: 'PUT', - }) + }), ) expect(Vue.prototype.$message.warning).toBeCalledWith('fail') diff --git a/resources/assets/tests/views/user/Players.test.ts b/resources/assets/tests/views/user/Players.test.ts index defdc2a5..741d57fa 100644 --- a/resources/assets/tests/views/user/Players.test.ts +++ b/resources/assets/tests/views/user/Players.test.ts @@ -109,7 +109,7 @@ test('change player name', async () => { await flushPromises() expect(Vue.prototype.$http.post).toBeCalledWith( '/user/player/rename/1', - { name: 'new-name' } + { name: 'new-name' }, ) button.trigger('click') await flushPromises() @@ -196,7 +196,7 @@ test('clear texture', async () => { '/user/player/texture/clear/1', { skin: true, cape: false, - } + }, ) button.trigger('click') await flushPromises() diff --git a/resources/assets/tests/views/user/Profile.test.ts b/resources/assets/tests/views/user/Profile.test.ts index a35bd47c..c4f992b9 100644 --- a/resources/assets/tests/views/user/Profile.test.ts +++ b/resources/assets/tests/views/user/Profile.test.ts @@ -35,7 +35,7 @@ test('reset avatar', async () => { await flushPromises() expect(Vue.prototype.$http.post).toBeCalledWith( '/user/profile/avatar', - { tid: 0 } + { tid: 0 }, ) await flushPromises() expect(Vue.prototype.$message.success).toBeCalledWith('ok') @@ -61,7 +61,7 @@ test('change password', async () => { await flushPromises() expect(Vue.prototype.$http.post).toBeCalledWith( '/user/profile?action=password', - { current_password: '1', new_password: '1' } + { current_password: '1', new_password: '1' }, ) expect(Vue.prototype.$alert).toBeCalledWith('w', { type: 'warning' }) @@ -90,7 +90,7 @@ test('change nickname', async () => { await flushPromises() expect(Vue.prototype.$http.post).toBeCalledWith( '/user/profile?action=nickname', - { new_nickname: 'nickname' } + { new_nickname: 'nickname' }, ) await flushPromises() expect(Vue.prototype.$alert).toBeCalledWith('w', { type: 'warning' }) @@ -120,7 +120,7 @@ test('change email', async () => { await flushPromises() expect(Vue.prototype.$http.post).toBeCalledWith( '/user/profile?action=email', - { new_email: 'a@b.c', password: 'abc' } + { new_email: 'a@b.c', password: 'abc' }, ) await flushPromises() expect(Vue.prototype.$alert).toBeCalledWith('w', { type: 'warning' }) @@ -142,7 +142,7 @@ test('delete account', async () => { form.trigger('submit') expect(Vue.prototype.$http.post).toBeCalledWith( '/user/profile?action=delete', - { password: 'abc' } + { password: 'abc' }, ) await flushPromises() expect(Vue.prototype.$alert).toBeCalledWith('w', { type: 'warning' }) diff --git a/resources/assets/tests/webpack.d.ts b/resources/assets/tests/webpack.d.ts index 5be6b115..d2f166d7 100644 --- a/resources/assets/tests/webpack.d.ts +++ b/resources/assets/tests/webpack.d.ts @@ -1,4 +1,3 @@ -/* eslint-disable import/export */ declare module '*.vue' { import Vue from 'vue' diff --git a/webpack.config.js b/webpack.config.js index ae03920b..edd08ece 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -1,4 +1,3 @@ -/* eslint-disable import/no-extraneous-dependencies */ const fs = require('fs') const sass = require('sass') const webpack = require('webpack') diff --git a/yarn.lock b/yarn.lock index dd44da74..acff3208 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1259,6 +1259,11 @@ dependencies: "@types/sizzle" "*" +"@types/json-schema@^7.0.3": + version "7.0.3" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.3.tgz#bdfd69d61e464dcc81b25159c270d75a73c1a636" + integrity sha512-Il2DtDVRGDcqjDtE+rF8iqg1CArehSK84HZJCT7AMITlyXRBpuPhqGLDQMowraqqu1coEaimg4ZOqggt6L6L+A== + "@types/minimatch@*": version "3.0.3" resolved "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" @@ -1339,42 +1344,48 @@ resolved "https://registry.npmjs.org/@types/zrender/-/zrender-4.0.0.tgz#a6806f12ec4eccaaebd9b0d816f049aca6188fbd" integrity sha512-s89GOIeKFiod2KSqHkfd2rzx+T2DVu7ihZCBEBnhFrzvQPUmzvDSBot9Fi1DfMQm9Odg+rTqoMGC38RvrwJK2w== -"@typescript-eslint/eslint-plugin@^1.7.0": - version "1.10.2" - resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-1.10.2.tgz#552fc64cfcb19c6162190360217c945e8faa330a" - integrity sha512-7449RhjE1oLFIy5E/5rT4wG5+KsfPzakJuhvpzXJ3C46lq7xywY0/Rjo9ZBcwrfbk0nRZ5xmUHkk7DZ67tSBKw== +"@typescript-eslint/eslint-plugin@^2.8.0": + version "2.8.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.8.0.tgz#eca584d46094ebebc3cb3e9fb625bfbc904a534d" + integrity sha512-ohqul5s6XEB0AzPWZCuJF5Fd6qC0b4+l5BGEnrlpmvXxvyymb8yw8Bs4YMF8usNAeuCJK87eFIHy8g8GFvOtGA== dependencies: - "@typescript-eslint/experimental-utils" "1.10.2" - eslint-utils "^1.3.1" + "@typescript-eslint/experimental-utils" "2.8.0" + eslint-utils "^1.4.3" functional-red-black-tree "^1.0.1" - regexpp "^2.0.1" - tsutils "^3.7.0" + regexpp "^3.0.0" + tsutils "^3.17.1" -"@typescript-eslint/experimental-utils@1.10.2": - version "1.10.2" - resolved "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-1.10.2.tgz#cd548c03fc1a2b3ba5c136d1599001a1ede24215" - integrity sha512-Hf5lYcrnTH5Oc67SRrQUA7KuHErMvCf5RlZsyxXPIT6AXa8fKTyfFO6vaEnUmlz48RpbxO4f0fY3QtWkuHZNjg== +"@typescript-eslint/experimental-utils@2.8.0": + version "2.8.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.8.0.tgz#208b4164d175587e9b03ce6fea97d55f19c30ca9" + integrity sha512-jZ05E4SxCbbXseQGXOKf3ESKcsGxT8Ucpkp1jiVp55MGhOvZB2twmWKf894PAuVQTCgbPbJz9ZbRDqtUWzP8xA== dependencies: - "@typescript-eslint/typescript-estree" "1.10.2" - eslint-scope "^4.0.0" + "@types/json-schema" "^7.0.3" + "@typescript-eslint/typescript-estree" "2.8.0" + eslint-scope "^5.0.0" -"@typescript-eslint/parser@^1.7.0": - version "1.10.2" - resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-1.10.2.tgz#36cfe8c6bf1b6c1dd81da56f88c8588f4b1a852b" - integrity sha512-xWDWPfZfV0ENU17ermIUVEVSseBBJxKfqBcRCMZ8nAjJbfA5R7NWMZmFFHYnars5MjK4fPjhu4gwQv526oZIPQ== +"@typescript-eslint/parser@^2.8.0": + version "2.8.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-2.8.0.tgz#e10f7c40c8cf2fb19920c879311e6c46ad17bacb" + integrity sha512-NseXWzhkucq+JM2HgqAAoKEzGQMb5LuTRjFPLQzGIdLthXMNUfuiskbl7QSykvWW6mvzCtYbw1fYWGa2EIaekw== dependencies: "@types/eslint-visitor-keys" "^1.0.0" - "@typescript-eslint/experimental-utils" "1.10.2" - "@typescript-eslint/typescript-estree" "1.10.2" - eslint-visitor-keys "^1.0.0" + "@typescript-eslint/experimental-utils" "2.8.0" + "@typescript-eslint/typescript-estree" "2.8.0" + eslint-visitor-keys "^1.1.0" -"@typescript-eslint/typescript-estree@1.10.2": - version "1.10.2" - resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-1.10.2.tgz#8403585dd74b6cfb6f78aa98b6958de158b5897b" - integrity sha512-Kutjz0i69qraOsWeI8ETqYJ07tRLvD9URmdrMoF10bG8y8ucLmPtSxROvVejWvlJUGl2et/plnMiKRDW+rhEhw== +"@typescript-eslint/typescript-estree@2.8.0": + version "2.8.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.8.0.tgz#fcc3fe6532840085d29b75432c8a59895876aeca" + integrity sha512-ksvjBDTdbAQ04cR5JyFSDX113k66FxH1tAXmi+dj6hufsl/G0eMc/f1GgLjEVPkYClDbRKv+rnBFuE5EusomUw== dependencies: + debug "^4.1.1" + eslint-visitor-keys "^1.1.0" + glob "^7.1.6" + is-glob "^4.0.1" lodash.unescape "4.0.1" - semver "5.5.0" + semver "^6.3.0" + tsutils "^3.17.1" "@vue/component-compiler-utils@^2.4.0": version "2.5.2" @@ -1600,9 +1611,10 @@ acorn-globals@^4.1.0: acorn "^6.0.1" acorn-walk "^6.0.1" -acorn-jsx@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.0.1.tgz#32a064fd925429216a09b141102bfdd185fae40e" +acorn-jsx@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.1.0.tgz#294adb71b57398b0680015f0a38c563ee1db5384" + integrity sha512-tMUqwBWfLFbJbizRmEcWSLw6HnFzfdJs2sOJEOwwtVPMoH/0Ay+E703oZz78VSXZiiDcZrQ5XKjPIUQixhmgVw== acorn-node@^1.3.0: version "1.7.0" @@ -1629,15 +1641,16 @@ acorn@^6.0.1, acorn@^6.1.1: resolved "https://registry.npmjs.org/acorn/-/acorn-6.1.1.tgz#7d25ae05bb8ad1f9b699108e1094ecd7884adc1f" integrity sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA== -acorn@^6.0.2, acorn@^6.0.7: - version "6.1.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.1.0.tgz#b0a3be31752c97a0f7013c5f4903b71a05db6818" - acorn@^6.2.1: version "6.3.0" resolved "https://registry.npmjs.org/acorn/-/acorn-6.3.0.tgz#0087509119ffa4fc0a0041d1e93a417e68cb856e" integrity sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA== +acorn@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.1.0.tgz#949d36f2c292535da602283586c2477c57eb2d6c" + integrity sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ== + admin-lte@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/admin-lte/-/admin-lte-3.0.1.tgz#5d6768330868bdc8f424960f7eabc3f38af7a0f4" @@ -1720,7 +1733,7 @@ ajv-keywords@^3.1.0, ajv-keywords@^3.4.1: resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz#ef916e271c64ac12171fd8384eaae6b2345854da" integrity sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ== -ajv@^6.1.0, ajv@^6.10.2: +ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2: version "6.10.2" resolved "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52" integrity sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw== @@ -1763,7 +1776,7 @@ ansi-colors@^3.0.0: resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== -ansi-escapes@^3.0.0, ansi-escapes@^3.2.0: +ansi-escapes@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" @@ -1884,14 +1897,6 @@ array-from@^2.1.1: resolved "https://registry.yarnpkg.com/array-from/-/array-from-2.1.1.tgz#cfe9d8c26628b9dc5aecc62a9f5d8f1f352c1195" integrity sha1-z+nYwmYoudxa7MYqn12PHzUsEZU= -array-includes@^3.0.3: - version "3.0.3" - resolved "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d" - integrity sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0= - dependencies: - define-properties "^1.1.2" - es-abstract "^1.7.0" - array-union@^1.0.1: version "1.0.2" resolved "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" @@ -2706,11 +2711,12 @@ class-utils@^0.3.5: isobject "^3.0.0" static-extend "^0.1.1" -cli-cursor@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== dependencies: - restore-cursor "^2.0.0" + restore-cursor "^3.1.0" cli-width@^2.0.0: version "2.2.0" @@ -2924,11 +2930,6 @@ constants-browserify@^1.0.0: resolved "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= -contains-path@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" - integrity sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo= - content-disposition@0.5.3: version "0.5.3" resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" @@ -3534,7 +3535,7 @@ debug@*: dependencies: ms "2.0.0" -debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9: +debug@2.6.9, debug@^2.2.0, debug@^2.3.3: version "2.6.9" resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== @@ -3746,14 +3747,6 @@ dns-txt@^2.0.2: dependencies: buffer-indexof "^1.0.0" -doctrine@1.5.0: - version "1.5.0" - resolved "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" - integrity sha1-N53Ocw9hZvds76TmcHoVmwLFpvo= - dependencies: - esutils "^2.0.2" - isarray "^1.0.0" - doctrine@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" @@ -3945,7 +3938,7 @@ errno@^0.1.3, errno@~0.1.7: dependencies: prr "~1.0.1" -error-ex@^1.2.0, error-ex@^1.3.1: +error-ex@^1.3.1: version "1.3.2" resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== @@ -3968,7 +3961,7 @@ es-abstract@^1.12.0: string.prototype.trimleft "^2.0.0" string.prototype.trimright "^2.0.0" -es-abstract@^1.5.1, es-abstract@^1.7.0: +es-abstract@^1.5.1: version "1.13.0" resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9" integrity sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg== @@ -4115,13 +4108,10 @@ escodegen@~1.9.0: optionalDependencies: source-map "~0.6.1" -eslint-config-gplane@^5.1.3: - version "5.1.4" - resolved "https://registry.npmjs.org/eslint-config-gplane/-/eslint-config-gplane-5.1.4.tgz#6200c516913bcc1fbf4410645b05440e99c93760" - integrity sha512-TQ8iZcQGadgm//D5ryeqDbFRpHgiDqZHm/jFrRLQnC3CuWv723yMlhnd5nMbv2sCYPfpo1P5kMAWBRe4mYKFAw== - dependencies: - eslint-plugin-import "^2.16.0" - eslint-plugin-node "^8.0.1" +eslint-config-gplane@^6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/eslint-config-gplane/-/eslint-config-gplane-6.2.1.tgz#ef64854427f83de2747e2b92aaf719ba138bcccb" + integrity sha512-/OsRVL2fvfjNxqgGcmmcKVZifdFdyVZHt+nQg66lOIdLUvArmUjH29PHCccOZtcPWLfZKVfDqsoIERQgEDDtMw== eslint-formatter-beauty@^3.0.0: version "3.0.0" @@ -4133,67 +4123,14 @@ eslint-formatter-beauty@^3.0.0: code-excerpt "^2.1.1" log-symbols "^2.2.0" -eslint-import-resolver-node@^0.3.2: - version "0.3.2" - resolved "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz#58f15fb839b8d0576ca980413476aab2472db66a" - integrity sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q== +eslint-plugin-vue@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-6.0.1.tgz#166d3eb24cf290f3ff24d44fe9fca496f3924fc2" + integrity sha512-5tgFPcxGDKjfVB/6Yi56bKiWxygUibfZmzSh26Np3kuwAk/lfaGbVld+Yt+MPgD84ppvcachtiL4/winsXLjXA== dependencies: - debug "^2.6.9" - resolve "^1.5.0" + vue-eslint-parser "^6.0.5" -eslint-module-utils@^2.4.0: - version "2.4.0" - resolved "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.4.0.tgz#8b93499e9b00eab80ccb6614e69f03678e84e09a" - integrity sha512-14tltLm38Eu3zS+mt0KvILC3q8jyIAH518MlG+HO0p+yK885Lb1UHTY/UgR91eOyGdmxAPb+OLoW4znqIT6Ndw== - dependencies: - debug "^2.6.8" - pkg-dir "^2.0.0" - -eslint-plugin-es@^1.3.1: - version "1.4.0" - resolved "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-1.4.0.tgz#475f65bb20c993fc10e8c8fe77d1d60068072da6" - integrity sha512-XfFmgFdIUDgvaRAlaXUkxrRg5JSADoRC8IkKLc/cISeR3yHVMefFHQZpcyXXEUUPHfy5DwviBcrfqlyqEwlQVw== - dependencies: - eslint-utils "^1.3.0" - regexpp "^2.0.1" - -eslint-plugin-import@^2.16.0: - version "2.17.3" - resolved "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.17.3.tgz#00548b4434c18faebaba04b24ae6198f280de189" - integrity sha512-qeVf/UwXFJbeyLbxuY8RgqDyEKCkqV7YC+E5S5uOjAp4tOc8zj01JP3ucoBM8JcEqd1qRasJSg6LLlisirfy0Q== - dependencies: - array-includes "^3.0.3" - contains-path "^0.1.0" - debug "^2.6.9" - doctrine "1.5.0" - eslint-import-resolver-node "^0.3.2" - eslint-module-utils "^2.4.0" - has "^1.0.3" - lodash "^4.17.11" - minimatch "^3.0.4" - read-pkg-up "^2.0.0" - resolve "^1.11.0" - -eslint-plugin-node@^8.0.1: - version "8.0.1" - resolved "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-8.0.1.tgz#55ae3560022863d141fa7a11799532340a685964" - integrity sha512-ZjOjbjEi6jd82rIpFSgagv4CHWzG9xsQAVp1ZPlhRnnYxcTgENUVBvhYmkQ7GvT1QFijUSo69RaiOJKhMu6i8w== - dependencies: - eslint-plugin-es "^1.3.1" - eslint-utils "^1.3.1" - ignore "^5.0.2" - minimatch "^3.0.4" - resolve "^1.8.1" - semver "^5.5.0" - -eslint-plugin-vue@^5.2.2: - version "5.2.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-5.2.2.tgz#86601823b7721b70bc92d54f1728cfc03b36283c" - integrity sha512-CtGWH7IB0DA6BZOwcV9w9q3Ri6Yuo8qMjx05SmOGJ6X6E0Yo3y9E/gQ5tuNxg2dEt30tRnBoFTbvtmW9iEoyHA== - dependencies: - vue-eslint-parser "^5.0.0" - -eslint-scope@^4.0.0, eslint-scope@^4.0.3: +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== @@ -4201,74 +4138,82 @@ eslint-scope@^4.0.0, eslint-scope@^4.0.3: 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" - integrity sha512-Z7YjnIldX+2XMcjr7ZkgEsOj/bREONV60qYeB/bjMAqqqZ4zxKyWX+BOUkdmRmA9riiIPVvo5x86m5elviOk0Q== +eslint-scope@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.0.0.tgz#e87c8887c73e8d1ec84f1ca591645c358bfc8fb9" + integrity sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw== + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-utils@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f" + integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q== + dependencies: + eslint-visitor-keys "^1.1.0" eslint-visitor-keys@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" integrity sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ== -eslint@^5.16.0: - version "5.16.0" - resolved "https://registry.npmjs.org/eslint/-/eslint-5.16.0.tgz#a1e3ac1aae4a3fbd8296fcf8f7ab7314cbb6abea" - integrity sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg== +eslint-visitor-keys@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2" + integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A== + +eslint@^6.7.1: + version "6.7.1" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.7.1.tgz#269ccccec3ef60ab32358a44d147ac209154b919" + integrity sha512-UWzBS79pNcsDSxgxbdjkmzn/B6BhsXMfUaOHnNwyE8nD+Q6pyT96ow2MccVayUTV4yMid4qLhMiQaywctRkBLA== dependencies: "@babel/code-frame" "^7.0.0" - ajv "^6.9.1" + ajv "^6.10.0" chalk "^2.1.0" cross-spawn "^6.0.5" debug "^4.0.1" doctrine "^3.0.0" - eslint-scope "^4.0.3" - eslint-utils "^1.3.1" - eslint-visitor-keys "^1.0.0" - espree "^5.0.1" + eslint-scope "^5.0.0" + eslint-utils "^1.4.3" + eslint-visitor-keys "^1.1.0" + espree "^6.1.2" esquery "^1.0.1" esutils "^2.0.2" file-entry-cache "^5.0.1" functional-red-black-tree "^1.0.1" - glob "^7.1.2" - globals "^11.7.0" + glob-parent "^5.0.0" + globals "^12.1.0" ignore "^4.0.6" import-fresh "^3.0.0" imurmurhash "^0.1.4" - inquirer "^6.2.2" - js-yaml "^3.13.0" + inquirer "^7.0.0" + is-glob "^4.0.0" + js-yaml "^3.13.1" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.3.0" - lodash "^4.17.11" + lodash "^4.17.14" minimatch "^3.0.4" mkdirp "^0.5.1" natural-compare "^1.4.0" - optionator "^0.8.2" - path-is-inside "^1.0.2" + optionator "^0.8.3" progress "^2.0.0" regexpp "^2.0.1" - semver "^5.5.1" - strip-ansi "^4.0.0" - strip-json-comments "^2.0.1" + semver "^6.1.2" + strip-ansi "^5.2.0" + strip-json-comments "^3.0.1" table "^5.2.3" text-table "^0.2.0" + v8-compile-cache "^2.0.3" -espree@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-4.1.0.tgz#728d5451e0fd156c04384a7ad89ed51ff54eb25f" - integrity sha512-I5BycZW6FCVIub93TeVY1s7vjhP9CY6cXCznIRfiig7nRviKZYdRnj/sHEWC6A7WE9RDWOFq9+7OsWSYz8qv2w== +espree@^6.1.2: + version "6.1.2" + resolved "https://registry.yarnpkg.com/espree/-/espree-6.1.2.tgz#6c272650932b4f91c3714e5e7b5f5e2ecf47262d" + integrity sha512-2iUPuuPP+yW1PZaMSDM9eyVf8D5P0Hi8h83YtZ5bPc/zHYjII5khoixIUTMO794NOY8F/ThF1Bo8ncZILarUTA== dependencies: - acorn "^6.0.2" - acorn-jsx "^5.0.0" - eslint-visitor-keys "^1.0.0" - -espree@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-5.0.1.tgz#5d6526fa4fc7f0788a5cf75b15f30323e2f81f7a" - dependencies: - acorn "^6.0.7" - acorn-jsx "^5.0.0" - eslint-visitor-keys "^1.0.0" + acorn "^7.1.0" + acorn-jsx "^5.1.0" + eslint-visitor-keys "^1.1.0" esprima@^3.1.3: version "3.1.3" @@ -4556,7 +4501,7 @@ fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0: resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I= -fast-levenshtein@~2.0.4: +fast-levenshtein@~2.0.4, fast-levenshtein@~2.0.6: version "2.0.6" resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= @@ -4597,13 +4542,6 @@ figgy-pudding@^3.5.1: resolved "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790" integrity sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w== -figures@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" - integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= - dependencies: - escape-string-regexp "^1.0.5" - figures@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/figures/-/figures-3.0.0.tgz#756275c964646163cc6f9197c7a0295dbfd04de9" @@ -4680,13 +4618,6 @@ find-cache-dir@^3.0.0: make-dir "^3.0.0" pkg-dir "^4.1.0" -find-up@^2.0.0, find-up@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= - dependencies: - locate-path "^2.0.0" - find-up@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" @@ -4976,6 +4907,18 @@ glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: once "^1.3.0" path-is-absolute "^1.0.0" +glob@^7.1.6: + version "7.1.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + global-modules@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" @@ -5017,9 +4960,12 @@ globals@^11.1.0: resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globals@^11.7.0: - version "11.7.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.7.0.tgz#a583faa43055b1aca771914bf68258e2fc125673" +globals@^12.1.0: + version "12.3.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-12.3.0.tgz#1e564ee5c4dded2ab098b0f88f24702a3c56be13" + integrity sha512-wAfjdLgFsPZsklLJvOBUBmzYE8/CwhEqSBEMRXA3qxIiNtyqvjYurAtIfDh6chlEPUfmTY3MnZh5Hfh4q0UlIw== + dependencies: + type-fest "^0.8.1" globby@^6.1.0: version "6.1.0" @@ -5345,11 +5291,6 @@ ignore@^4.0.6: version "4.0.6" resolved "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" -ignore@^5.0.2: - version "5.1.2" - resolved "https://registry.npmjs.org/ignore/-/ignore-5.1.2.tgz#e28e584d43ad7e92f96995019cc43b9e1ac49558" - integrity sha512-vdqWBp7MyzdmHkkRWV5nY+PfGRbYbahfuvsBCh277tq+w9zyNi7h5CYJCK0kmzti9kU+O/cB7sE8HvKv6aXAKQ== - imagesloaded@^4.1.4: version "4.1.4" resolved "https://registry.yarnpkg.com/imagesloaded/-/imagesloaded-4.1.4.tgz#1376efcd162bb768c34c3727ac89cc04051f3cc7" @@ -5445,22 +5386,23 @@ inputmask@^4.0.9: resolved "https://registry.yarnpkg.com/inputmask/-/inputmask-4.0.9.tgz#a60fc46cee52a35a0ba5f50b5cca3a6733ece18c" integrity sha512-EodaYhJKncXRBwvCE8YrRmAFmBJ6bWdgX4Qw8QSnK5GBDXE03jgpJhrS+a2N0v2Zsgp+OjKXy7qACktjYD83Uw== -inquirer@^6.2.2: - version "6.2.2" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.2.2.tgz#46941176f65c9eb20804627149b743a218f25406" +inquirer@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.0.0.tgz#9e2b032dde77da1db5db804758b8fea3a970519a" + integrity sha512-rSdC7zelHdRQFkWnhsMu2+2SO41mpv2oF2zy4tMhmiLWkcKbOAs87fWAJhVXttKVwhdZvymvnuM95EyEXg2/tQ== dependencies: - ansi-escapes "^3.2.0" + ansi-escapes "^4.2.1" chalk "^2.4.2" - cli-cursor "^2.1.0" + cli-cursor "^3.1.0" cli-width "^2.0.0" external-editor "^3.0.3" - figures "^2.0.0" - lodash "^4.17.11" - mute-stream "0.0.7" + figures "^3.0.0" + lodash "^4.17.15" + mute-stream "0.0.8" run-async "^2.2.0" rxjs "^6.4.0" - string-width "^2.1.0" - strip-ansi "^5.0.0" + string-width "^4.1.0" + strip-ansi "^5.1.0" through "^2.3.6" internal-ip@^4.3.0: @@ -6305,14 +6247,6 @@ js-levenshtein@^1.1.3: resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@^3.13.0: - version "3.13.0" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.0.tgz#38ee7178ac0eea2c97ff6d96fff4b18c7d8cf98e" - integrity sha512-pZZoSxcCYco+DIKBTimr67J6Hy+EYGZDY/HCWC+iAEA9h1ByhMXAIVUXMcMFpOCxQ/xjXmPI2MkDL5HRm5eFrQ== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - js-yaml@^3.13.1: version "3.13.1" resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" @@ -6540,16 +6474,6 @@ linebreak@^1.0.2: brfs "^2.0.2" unicode-trie "^1.0.0" -load-json-file@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" - integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg= - dependencies: - graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" - strip-bom "^3.0.0" - load-json-file@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" @@ -6574,14 +6498,6 @@ loader-utils@1.2.3, loader-utils@^1.0.1, loader-utils@^1.0.2, loader-utils@^1.1. emojis-list "^2.0.0" json5 "^1.0.1" -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= - dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" - locate-path@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" @@ -6652,7 +6568,7 @@ lodash.uniq@^4.5.0: resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg== -lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.5: +lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.5: version "4.17.15" resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== @@ -6879,14 +6795,9 @@ mime@^2.4.4: resolved "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz#bd7b91135fc6b01cde3e9bae33d659b63d8857e5" integrity sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA== -mimic-fn@^1.0.0: - version "1.2.0" - resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" - integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== - -mimic-fn@^2.0.0: +mimic-fn@^2.0.0, mimic-fn@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== mini-css-extract-plugin@^0.8.0: @@ -7037,9 +6948,10 @@ multicast-dns@^6.0.1: dns-packet "^1.3.1" thunky "^1.0.2" -mute-stream@0.0.7: - version "0.0.7" - resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" +mute-stream@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" + integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== nan@^2.12.1: version "2.14.0" @@ -7422,11 +7334,12 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0: dependencies: wrappy "1" -onetime@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" +onetime@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz#fff0f3c91617fe62bb50189636e99ac8a6df7be5" + integrity sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q== dependencies: - mimic-fn "^1.0.0" + mimic-fn "^2.1.0" opencollective-postinstall@2.0.2: version "2.0.2" @@ -7456,7 +7369,7 @@ optimize-css-assets-webpack-plugin@^5.0.3: cssnano "^4.1.10" last-call-webpack-plugin "^3.0.0" -optionator@^0.8.1, optionator@^0.8.2: +optionator@^0.8.1: version "0.8.2" resolved "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" dependencies: @@ -7467,6 +7380,18 @@ optionator@^0.8.1, optionator@^0.8.2: type-check "~0.3.2" wordwrap "~1.0.0" +optionator@^0.8.3: + version "0.8.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.6" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + word-wrap "~1.2.3" + original@^1.0.0: version "1.0.2" resolved "https://registry.npmjs.org/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" @@ -7532,13 +7457,6 @@ p-is-promise@^2.0.0: resolved "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== -p-limit@^1.1.0: - version "1.3.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" - integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== - dependencies: - p-try "^1.0.0" - p-limit@^2.0.0: version "2.2.1" resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz#aa07a788cc3151c939b5131f63570f0dd2009537" @@ -7553,13 +7471,6 @@ p-limit@^2.2.0: dependencies: p-try "^2.0.0" -p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= - dependencies: - p-limit "^1.1.0" - p-locate@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" @@ -7591,11 +7502,6 @@ p-retry@^3.0.1: dependencies: retry "^0.12.0" -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= - p-try@^2.0.0: version "2.2.0" resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" @@ -7638,13 +7544,6 @@ parse-asn1@^5.0.0: pbkdf2 "^3.0.3" safe-buffer "^5.1.1" -parse-json@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" - integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= - dependencies: - error-ex "^1.2.0" - parse-json@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" @@ -7718,13 +7617,6 @@ path-to-regexp@0.1.7: resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= -path-type@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" - integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM= - dependencies: - pify "^2.0.0" - path-type@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" @@ -7807,13 +7699,6 @@ pirates@^4.0.1: dependencies: node-modules-regexp "^1.0.0" -pkg-dir@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" - integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= - dependencies: - find-up "^2.1.0" - pkg-dir@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" @@ -8468,14 +8353,6 @@ react-is@^16.8.4: resolved "https://registry.npmjs.org/react-is/-/react-is-16.8.6.tgz#5bbc1e2d29141c9fbdfed456343fe2bc430a6a16" integrity sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA== -read-pkg-up@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" - integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4= - dependencies: - find-up "^2.0.0" - read-pkg "^2.0.0" - read-pkg-up@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz#1b221c6088ba7799601c808f91161c66e58f8978" @@ -8484,15 +8361,6 @@ read-pkg-up@^4.0.0: find-up "^3.0.0" read-pkg "^3.0.0" -read-pkg@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" - integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg= - dependencies: - load-json-file "^2.0.0" - normalize-package-data "^2.3.2" - path-type "^2.0.0" - read-pkg@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" @@ -8596,6 +8464,11 @@ regexpp@^2.0.1: resolved "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== +regexpp@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.0.0.tgz#dd63982ee3300e67b41c1956f850aa680d9d330e" + integrity sha512-Z+hNr7RAVWxznLPuA7DIh8UNX1j9CDrUQxskw9IrBE1Dxue2lyXT+shqEIeLUjrokxIP8CMy1WkjgG3rTsd5/g== + regexpu-core@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.6.0.tgz#2037c18b327cfce8a6fea2a4ec441f2432afb8b6" @@ -8753,18 +8626,19 @@ resolve@^1.1.5, resolve@^1.12.0: dependencies: path-parse "^1.0.6" -resolve@^1.11.0, resolve@^1.3.2, resolve@^1.5.0, resolve@^1.8.1: +resolve@^1.3.2, resolve@^1.8.1: version "1.11.0" resolved "https://registry.npmjs.org/resolve/-/resolve-1.11.0.tgz#4014870ba296176b86343d50b60f3b50609ce232" integrity sha512-WL2pBDjqT6pGUNSUzMw00o4T7If+z4H2x3Gz893WoUQ5KW8Vr9txp00ykiP16VBaZF5+j/OcXJHZ9+PCvdiDKw== dependencies: path-parse "^1.0.6" -restore-cursor@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== dependencies: - onetime "^2.0.0" + onetime "^5.1.0" signal-exit "^3.0.2" restructure@^0.5.3: @@ -8964,11 +8838,6 @@ selfsigned@^1.10.7: resolved "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b" integrity sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA== -semver@5.5.0: - version "5.5.0" - resolved "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" - integrity sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA== - semver@^5.3.0, semver@^5.6.0: version "5.7.1" resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" @@ -8988,7 +8857,7 @@ semver@^6.0.0: resolved "https://registry.npmjs.org/semver/-/semver-6.1.1.tgz#53f53da9b30b2103cd4f15eab3a18ecbcb210c9b" integrity sha512-rWYq2e5iYW+fFe/oPPtYJxYgjBm8sC4rmoGdUOgBB7VnwKt6HrL793l2voH1UlsyYZpJ4g0wfjnTEO1s1NP2eQ== -semver@^6.1.1, semver@^6.2.0, semver@^6.3.0: +semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: version "6.3.0" resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== @@ -9485,7 +9354,7 @@ string-width@^1.0.1: is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" -"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: +"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.1: version "2.1.1" resolved "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== @@ -9571,7 +9440,12 @@ strip-eof@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" -strip-json-comments@^2.0.1, strip-json-comments@~2.0.1: +strip-json-comments@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.0.1.tgz#85713975a91fb87bf1b305cca77395e40d2a64a7" + integrity sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw== + +strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= @@ -9915,10 +9789,10 @@ tslib@^1.8.1, tslib@^1.9.0: resolved "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== -tsutils@^3.7.0: - version "3.14.0" - resolved "https://registry.npmjs.org/tsutils/-/tsutils-3.14.0.tgz#bf8d5a7bae5369331fa0f2b0a5a10bd7f7396c77" - integrity sha512-SmzGbB0l+8I0QwsPgjooFRaRvHLBLNYM8SeQ0k6rtNDru5sCGeLJcZdwilNndN+GysuFjF5EIYgN8GfFG6UeUw== +tsutils@^3.17.1: + version "3.17.1" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz#ed719917f11ca0dee586272b2ac49e015a2dd759" + integrity sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g== dependencies: tslib "^1.8.1" @@ -9951,6 +9825,11 @@ type-fest@^0.5.2: resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.5.2.tgz#d6ef42a0356c6cd45f49485c3b6281fc148e48a2" integrity sha512-DWkS49EQKVX//Tbupb9TFa19c7+MK1XmzkrZUR8TAktmE/DizXoaoJV6TZ/tSIPXipqNiRI6CyAe7x69Jb6RSw== +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + type-is@~1.6.17, type-is@~1.6.18: version "1.6.18" resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" @@ -10192,6 +10071,11 @@ v8-compile-cache@2.0.3: resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz#00f7494d2ae2b688cfe2899df6ed2c54bef91dbe" integrity sha512-CNmdbwQMBjwr9Gsmohvm0pbL954tJrNzf6gWL3K+QMQf00PF7ERGrEiLgjuU3mKreLC2MeGhUsNV9ybTbLgd3w== +v8-compile-cache@^2.0.3: + version "2.1.0" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz#e14de37b31a6d194f5690d67efc4e7f6fc6ab30e" + integrity sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g== + validate-npm-package-license@^3.0.1: version "3.0.4" resolved "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" @@ -10229,17 +10113,17 @@ vm-browserify@^1.0.1: resolved "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.0.tgz#bd76d6a23323e2ca8ffa12028dc04559c75f9019" integrity sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw== -vue-eslint-parser@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-5.0.0.tgz#00f4e4da94ec974b821a26ff0ed0f7a78402b8a1" - integrity sha512-JlHVZwBBTNVvzmifwjpZYn0oPWH2SgWv5dojlZBsrhablDu95VFD+hriB1rQGwbD+bms6g+rAFhQHk6+NyiS6g== +vue-eslint-parser@^6.0.5, vue-eslint-parser@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-7.0.0.tgz#a4ed2669f87179dedd06afdd8736acbb3a3864d6" + integrity sha512-yR0dLxsTT7JfD2YQo9BhnQ6bUTLsZouuzt9SKRP7XNaZJV459gvlsJo4vT2nhZ/2dH9j3c53bIx9dnqU2prM9g== dependencies: - debug "^4.1.0" - eslint-scope "^4.0.0" - eslint-visitor-keys "^1.0.0" - espree "^4.1.0" + debug "^4.1.1" + eslint-scope "^5.0.0" + eslint-visitor-keys "^1.1.0" + espree "^6.1.2" esquery "^1.0.1" - lodash "^4.17.11" + lodash "^4.17.15" vue-good-table@^2.18.1: version "2.18.1" @@ -10568,6 +10452,11 @@ wide-align@^1.1.0: dependencies: string-width "^1.0.2 || 2" +word-wrap@~1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + wordwrap@~0.0.2: version "0.0.3" resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107"