From b611c499049e4b1faed47d50b534b06653663be2 Mon Sep 17 00:00:00 2001 From: dannc Date: Sun, 17 Mar 2019 11:20:24 +0700 Subject: [PATCH] Fix linter, fix files by linter rules. Fix backup file. --- .eslintrc.js | 64 +++++--- data/back-up.json | 33 ++-- package.json | 3 +- src/App.vue | 28 ++-- src/components/AppFooter.vue | 10 +- src/components/AppHeader.vue | 111 ++++++------- src/components/Article/Details.vue | 94 ++++++----- src/components/Article/Part/Content.vue | 130 ++++++++------- src/components/Article/Part/ListItem.vue | 58 +++---- src/components/Article/Word/Card.vue | 88 +++++------ src/components/Article/Words.vue | 48 +++--- src/components/Article/YoutubeButton.vue | 4 +- src/components/ArticlesList.vue | 66 ++++---- src/components/User/ProfileData.vue | 104 ++++++------ src/config/firebase.example.js | 2 +- src/main.js | 24 +-- src/router.js | 110 ++++++------- src/store.js | 12 +- src/store/articles.js | 2 +- src/store/user.js | 14 +- src/store/userData.js | 4 +- src/utils/eventBus.js | 2 +- src/utils/helpers/formRules.js | 10 +- src/utils/index.js | 1 - src/views/Article.vue | 34 ++-- src/views/ArticlePart.vue | 160 +++++++++---------- src/views/Articles.vue | 12 +- src/views/Errors/NotFound.vue | 28 ++-- src/views/Home.vue | 13 +- src/views/Profile.vue | 24 +-- src/views/SignIn.vue | 167 ++++++++++---------- src/views/SignUp.vue | 191 ++++++++++++----------- src/views/Words.vue | 5 +- webpack.config.js | 9 ++ yarn.lock | 104 ++++++++++-- 35 files changed, 957 insertions(+), 812 deletions(-) create mode 100644 webpack.config.js diff --git a/.eslintrc.js b/.eslintrc.js index 40f2376..79cbd8a 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,27 +1,39 @@ module.exports = { - root: true, - env: { - node: true - }, - 'extends': [ - 'plugin:vue/essential', - 'eslint:recommended', - 'airbnb' - ], - rules: { - 'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off', - 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off', - 'indent': ['error', 4, { 'SwitchCase': 1 }], - 'max-len': ['error', { 'code': 120 }], - 'class-methods-use-this': 'off', - 'object-curly-newline': ['error', { 'consistent': true }], - 'comma-dangle': ['error', { - 'functions': 'never', - 'arrays': 'always-multiline', - 'objects': 'always-multiline' - }] - }, - parserOptions: { - parser: 'babel-eslint' - } -} + root: true, + env: { + node: true + }, + parserOptions: { + parser: 'babel-eslint', + sourceType: 'module', + }, + plugins: [ + 'vue' + ], + extends: [ + 'plugin:vue/essential', + 'eslint:recommended', + ], + rules: { + 'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off', + 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off', + 'indent': ['error', 4, { 'SwitchCase': 1 }], + 'max-len': ['error', { 'code': 120 }], + 'class-methods-use-this': 'off', + 'object-curly-newline': ['error', { 'consistent': true }], + 'comma-dangle': ['error', { + 'functions': 'never', + 'arrays': 'always-multiline', + 'objects': 'always-multiline' + }], + 'import/extensions': false, + }, + settings: { + 'import/resolver': { + node: { + extensions: ['.js', '.jsx', '.vue'], + }, + }, + }, +}; + diff --git a/data/back-up.json b/data/back-up.json index 2e515a6..eb8741c 100644 --- a/data/back-up.json +++ b/data/back-up.json @@ -57,16 +57,6 @@ "id": "bsdasdad123", "title": "kapitel 1", "youtubeId": "bsdasdad1" - }, - { - "id": "bsdasdad124", - "title": "kapitel 2", - "youtubeId": "bsdasdad2" - }, - { - "id": "bsdasdad125", - "title": "kapitel 3", - "youtubeId": "bsdasdad3" } ], "description": "Третья глава первой книги о Гарри Поттере", @@ -151,7 +141,7 @@ }, "articlePartId": "k2", "youtubeId": "hHW1oY26kxQ", - "articleTitle": "Harry Potter und Stein der Weisen - 2", + "articleTitle": "Harry Potter und Stein der Weisen - 1", "__collections__": {} }, "hp1k3": { @@ -170,7 +160,26 @@ "words": {}, "articlePartId": "k3", "youtubeId": "hHW1oY26kxQ", - "articleTitle": "Harry Potter und Stein der Weisen - 3", + "articleTitle": "Harry Potter und Stein der Weisen - 1", + "__collections__": {} + }, + "hp2k1": { + "content": [ + { + "sentences": [ + { + "origText": "Lorem ipsum dolor sit amet, consectetur adipiscing elit.", + "transText": "Бла21-бла-бла" + } + ] + } + ], + "articleId": "hp2", + "partTitle": "kapitel 1", + "words": {}, + "articlePartId": "k1", + "youtubeId": "hHW1oY26kxQ", + "articleTitle": "Harry Potter und Stein der Weisen - 2", "__collections__": {} } } diff --git a/package.json b/package.json index a974d4d..b97d708 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,8 @@ "@vue/cli-service": "^3.4.0", "babel-eslint": "^10.0.1", "eslint": "^5.8.0", - "eslint-config-airbnb": "^17.1.0", + "eslint-config-airbnb-base": "^13.1.0", + "eslint-plugin-import": "^2.16.0", "eslint-plugin-jsx-a11y": "^6.2.1", "eslint-plugin-vue": "^5.0.0", "stylus": "^0.54.5", diff --git a/src/App.vue b/src/App.vue index d8aed3c..72c8397 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,23 +1,23 @@ diff --git a/src/components/AppFooter.vue b/src/components/AppFooter.vue index 209f007..40862f7 100644 --- a/src/components/AppFooter.vue +++ b/src/components/AppFooter.vue @@ -10,9 +10,9 @@ diff --git a/src/components/AppHeader.vue b/src/components/AppHeader.vue index c56d192..52476d0 100644 --- a/src/components/AppHeader.vue +++ b/src/components/AppHeader.vue @@ -10,10 +10,11 @@ - + - + + @@ -24,7 +25,7 @@ - + @@ -32,9 +33,9 @@ - {{item.title}} + {{ item.title }} - + Выйти @@ -44,49 +45,30 @@ diff --git a/src/components/Article/Part/ListItem.vue b/src/components/Article/Part/ListItem.vue index 128f154..66118be 100644 --- a/src/components/Article/Part/ListItem.vue +++ b/src/components/Article/Part/ListItem.vue @@ -25,38 +25,38 @@ diff --git a/src/components/Article/Word/Card.vue b/src/components/Article/Word/Card.vue index 1ca1203..9238825 100644 --- a/src/components/Article/Word/Card.vue +++ b/src/components/Article/Word/Card.vue @@ -34,57 +34,57 @@ {{ snackbar.text }} - + diff --git a/src/components/Article/Words.vue b/src/components/Article/Words.vue index 12239b3..dc850d7 100644 --- a/src/components/Article/Words.vue +++ b/src/components/Article/Words.vue @@ -21,35 +21,35 @@ diff --git a/src/components/Article/YoutubeButton.vue b/src/components/Article/YoutubeButton.vue index e807d0e..bf17195 100644 --- a/src/components/Article/YoutubeButton.vue +++ b/src/components/Article/YoutubeButton.vue @@ -6,6 +6,6 @@ diff --git a/src/components/ArticlesList.vue b/src/components/ArticlesList.vue index feddb0d..2a5ce0f 100644 --- a/src/components/ArticlesList.vue +++ b/src/components/ArticlesList.vue @@ -23,38 +23,40 @@ diff --git a/src/components/User/ProfileData.vue b/src/components/User/ProfileData.vue index 75f8db8..5e61539 100644 --- a/src/components/User/ProfileData.vue +++ b/src/components/User/ProfileData.vue @@ -33,7 +33,7 @@ - - Отмена diff --git a/src/config/firebase.example.js b/src/config/firebase.example.js index df2dcdd..6a74cbf 100644 --- a/src/config/firebase.example.js +++ b/src/config/firebase.example.js @@ -4,5 +4,5 @@ export default { databaseURL: "https://test.firebaseio.com", projectId: "test", storageBucket: "test.appspot.com", - messagingSenderId: "test" + messagingSenderId: "test", }; diff --git a/src/main.js b/src/main.js index 57d103d..aea06c0 100644 --- a/src/main.js +++ b/src/main.js @@ -24,9 +24,9 @@ Vue.$db = db; Vue.use(Vuetify); Vue.use(VuetifyConfirm, { - buttonTrueText: 'Да', - buttonFalseText: 'Нет', - width: 400, + buttonTrueText: 'Да', + buttonFalseText: 'Нет', + width: 400, }); Vue.use(VueYouTubeEmbed); @@ -35,14 +35,14 @@ Vue.filter('formattedDate', formattedDate); setUpEventBus(); new Vue({ - router, - store, - render: h => h(App), - created: function onApplicationCreated() { - firebase.auth().onAuthStateChanged((user) => { - this.$store.dispatch('stateChanged', user); - }); + router, + store, + render: h => h(App), + created: function onApplicationCreated() { + firebase.auth().onAuthStateChanged((user) => { + this.$store.dispatch('stateChanged', user); + }); - this.$store.dispatch('loadArticles'); - } + this.$store.dispatch('loadArticles'); + }, }).$mount('#app'); diff --git a/src/router.js b/src/router.js index 3f98737..d3d910b 100644 --- a/src/router.js +++ b/src/router.js @@ -7,62 +7,62 @@ import Home from '@/views/Home'; Vue.use(Router); function AuthMiddleware(from, to, next) { - if (Store.getters.isUserAuthentificated) { - next(); - } else { - next('/sign_in'); - } + if (Store.getters.isUserAuthenticated) { + next(); + } else { + next('/sign_in'); + } } export default new Router({ - routes: [ - { - path: '/', - name: 'home', - component: Home - }, - { - path: '/articles', - name: 'articles', - component: () => import(/* webpackChunkName: "articles/index" */ '@/views/Articles'), - }, - { - path: '/articles/:articleId', - name: 'article', - props: true, - component: () => import(/* webpackChunkName: "articles/article" */ '@/views/Article') - }, - { - path: '/articles/:articleId/part/:partId', - name: 'articlePart', - props: true, - component: () => import(/* webpackChunkName: "articles/article_part" */ '@/views/ArticlePart') - }, - { - path: '/words', - name: 'words', - component: () => import(/* webpackChunkName: "words" */ '@/views/Words'), - }, - { - path: '/profile', - name: 'profile', - component: () => import(/* webpackChunkName: "words" */ '@/views/Profile'), - beforeEnter: AuthMiddleware, - }, - { - path: '/sign_in', - name: 'signIn', - component: () => import(/* webpackChunkName: "sign_in" */ '@/views/SignIn'), - }, - { - path: '/sign_up', - name: 'signUp', - component: () => import(/* webpackChunkName: "sign_up" */ '@/views/SignUp'), - }, - { - path: '*', - component: NotFound, - } - ], - mode: 'history', + routes: [ + { + path: '/', + name: 'home', + component: Home, + }, + { + path: '/articles', + name: 'articles', + component: () => import(/* webpackChunkName: "articles/index" */ '@/views/Articles'), + }, + { + path: '/articles/:articleId', + name: 'article', + props: true, + component: () => import(/* webpackChunkName: "articles/article" */ '@/views/Article'), + }, + { + path: '/articles/:articleId/part/:partId', + name: 'articlePart', + props: true, + component: () => import(/* webpackChunkName: "articles/article_part" */ '@/views/ArticlePart'), + }, + { + path: '/words', + name: 'words', + component: () => import(/* webpackChunkName: "words" */ '@/views/Words'), + }, + { + path: '/profile', + name: 'profile', + component: () => import(/* webpackChunkName: "words" */ '@/views/Profile'), + beforeEnter: AuthMiddleware, + }, + { + path: '/sign_in', + name: 'signIn', + component: () => import(/* webpackChunkName: "sign_in" */ '@/views/SignIn'), + }, + { + path: '/sign_up', + name: 'signUp', + component: () => import(/* webpackChunkName: "sign_up" */ '@/views/SignUp'), + }, + { + path: '*', + component: NotFound, + }, + ], + mode: 'history', }); diff --git a/src/store.js b/src/store.js index d3af844..6eb4d74 100644 --- a/src/store.js +++ b/src/store.js @@ -9,10 +9,10 @@ import userDataModule from '@/store/userData'; Vue.use(Vuex); export default new Vuex.Store({ - modules: { - articleModule, - generalModule, - userModule, - userDataModule, - }, + modules: { + articleModule, + generalModule, + userModule, + userDataModule, + }, }); diff --git a/src/store/articles.js b/src/store/articles.js index 6319e3e..5280ae1 100644 --- a/src/store/articles.js +++ b/src/store/articles.js @@ -22,7 +22,7 @@ export default { parts: parts ? parts.map(part => Object.assign({}, part)) : [], }; }); - + commit('setArticles', articles); }) .catch(e => console.error(e)); diff --git a/src/store/user.js b/src/store/user.js index 8b4782f..e034c0b 100644 --- a/src/store/user.js +++ b/src/store/user.js @@ -6,7 +6,7 @@ import { EventBus, EVENTS } from '@/utils'; export default { state: { user: { - isAuthentificated: false, + isAuthenticated: false, uid: null, email: null, name: null, @@ -14,12 +14,12 @@ export default { }, mutations: { setUser(state, { uid, email }) { - state.user.isAuthentificated = true; + state.user.isAuthenticated = true; state.user.uid = uid; state.user.email = email; }, unSetUser(state) { - state.user.isAuthentificated = false; + state.user.isAuthenticated = false; state.user.uid = null; }, setUserName(state, name) { @@ -27,7 +27,7 @@ export default { }, setUserEmail(state, email) { Vue.set(state.user, 'email', email); - } + }, }, actions: { async signUp({ commit }, payload) { @@ -94,8 +94,8 @@ export default { if (changeType === 'changeName') { const { newName } = payload; return reauthenticatedUser.updateProfile({ - displayName: newName, - }) + displayName: newName, + }) .then(() => commit('setUserName', newName)) } @@ -123,7 +123,7 @@ export default { }, }, getters: { - isUserAuthentificated: state => state.user.isAuthentificated, + isUserAuthenticated: state => state.user.isAuthenticated, userId: state => state.user.uid, userName: state => state.user.name, userEmail: state => state.user.email, diff --git a/src/store/userData.js b/src/store/userData.js index 4627321..a6c7511 100644 --- a/src/store/userData.js +++ b/src/store/userData.js @@ -44,7 +44,7 @@ export default { await userDataRef.set({ articles: { [articleId]: article, - } + }, }, { merge: true }) .then(() => commit('addUserArticle', { articleId, article })) .catch(e => window.console.error(e)); @@ -67,7 +67,7 @@ export default { await userDataRef.set({ words: { [key]: word, - } + }, }, { merge: true }) .then(() => commit('addUserWord', { wordKey: key, word })) .catch(e => window.console.error(e)); diff --git a/src/utils/eventBus.js b/src/utils/eventBus.js index 6290ab0..d4e6075 100644 --- a/src/utils/eventBus.js +++ b/src/utils/eventBus.js @@ -22,4 +22,4 @@ export const setUpEventBus = () => { }, }, }); -} \ No newline at end of file +}; diff --git a/src/utils/helpers/formRules.js b/src/utils/helpers/formRules.js index 0cc5c47..46d3434 100644 --- a/src/utils/helpers/formRules.js +++ b/src/utils/helpers/formRules.js @@ -1,13 +1,13 @@ export const emailRules = [ - (value) => !!value || 'Пожалуйста, введите email', - (value) => /^\w+([.-]?\w+)*@\w+([.-]?\w+)*(\.\w{2,3})+$/.test(value) || 'Неправильный email', + value => !!value || 'Пожалуйста, введите email', + value => /^\w+([.-]?\w+)*@\w+([.-]?\w+)*(\.\w{2,3})+$/.test(value) || 'Неправильный email', ]; export const passwordRules = [ - (value) => !!value || 'Пожалуйста введите пароль', - (value) => (value && value.length >= 6) || 'Пароль слишком короткий - минимум 6 символов', + value => !!value || 'Пожалуйста введите пароль', + value => (value && value.length >= 6) || 'Пароль слишком короткий - минимум 6 символов', ]; export const nameRules = [ - (value) => !!value || 'Пожалуйста введите ваше имя', + value => !!value || 'Пожалуйста введите ваше имя', ]; diff --git a/src/utils/index.js b/src/utils/index.js index 0b43e8c..22a71f9 100644 --- a/src/utils/index.js +++ b/src/utils/index.js @@ -8,4 +8,3 @@ export const declOfNum = (number, titles) => { const cases = [2, 0, 1, 1, 1, 2]; return titles[(number % 100 > 4 && number % 100 < 20) ? 2 : cases[(number % 10 < 5) ? number % 10 : 5]]; }; - diff --git a/src/views/Article.vue b/src/views/Article.vue index b7a3e57..b562088 100644 --- a/src/views/Article.vue +++ b/src/views/Article.vue @@ -13,24 +13,24 @@ diff --git a/src/views/ArticlePart.vue b/src/views/ArticlePart.vue index 6b51caa..c85aa61 100644 --- a/src/views/ArticlePart.vue +++ b/src/views/ArticlePart.vue @@ -58,89 +58,89 @@ diff --git a/src/views/Articles.vue b/src/views/Articles.vue index bf83619..d852052 100644 --- a/src/views/Articles.vue +++ b/src/views/Articles.vue @@ -6,10 +6,10 @@ diff --git a/src/views/Errors/NotFound.vue b/src/views/Errors/NotFound.vue index d26272c..3d0d4c3 100644 --- a/src/views/Errors/NotFound.vue +++ b/src/views/Errors/NotFound.vue @@ -1,22 +1,18 @@ - diff --git a/src/views/Home.vue b/src/views/Home.vue index af019c5..1586342 100644 --- a/src/views/Home.vue +++ b/src/views/Home.vue @@ -1,14 +1,11 @@ diff --git a/src/views/Profile.vue b/src/views/Profile.vue index d4ca152..64a8543 100644 --- a/src/views/Profile.vue +++ b/src/views/Profile.vue @@ -28,17 +28,17 @@ diff --git a/src/views/SignIn.vue b/src/views/SignIn.vue index 4cfa50a..9701979 100644 --- a/src/views/SignIn.vue +++ b/src/views/SignIn.vue @@ -1,94 +1,101 @@ diff --git a/src/views/SignUp.vue b/src/views/SignUp.vue index 9745801..52194d4 100644 --- a/src/views/SignUp.vue +++ b/src/views/SignUp.vue @@ -1,107 +1,114 @@ diff --git a/src/views/Words.vue b/src/views/Words.vue index 7ff86d2..dd40226 100644 --- a/src/views/Words.vue +++ b/src/views/Words.vue @@ -6,7 +6,6 @@ diff --git a/webpack.config.js b/webpack.config.js new file mode 100644 index 0000000..a916b93 --- /dev/null +++ b/webpack.config.js @@ -0,0 +1,9 @@ +const path = require('path'); + +module.exports = { + resolve: { + alias: { + '@': path.resolve(__dirname, 'src'), + }, + }, +}; diff --git a/yarn.lock b/yarn.lock index b95a63d..5fbfcea 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2306,6 +2306,11 @@ constants-browserify@^1.0.0: resolved "https://registry.yarnpkg.com/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.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" + integrity sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo= + content-disposition@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" @@ -2687,7 +2692,7 @@ debug@*, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: dependencies: ms "^2.1.1" -debug@2.6.9, debug@^2.1.2, debug@^2.2.0, debug@^2.3.3: +debug@2.6.9, debug@^2.1.2, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== @@ -2868,6 +2873,14 @@ dns-txt@^2.0.2: dependencies: buffer-indexof "^1.0.0" +doctrine@1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" + integrity sha1-N53Ocw9hZvds76TmcHoVmwLFpvo= + dependencies: + esutils "^2.0.2" + isarray "^1.0.0" + doctrine@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" @@ -3055,7 +3068,7 @@ errno@^0.1.3, errno@~0.1.7: dependencies: prr "~1.0.1" -error-ex@^1.3.1: +error-ex@^1.2.0, error-ex@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== @@ -3109,14 +3122,13 @@ eslint-config-airbnb-base@^13.1.0: object.assign "^4.1.0" object.entries "^1.0.4" -eslint-config-airbnb@^17.1.0: - version "17.1.0" - resolved "https://registry.yarnpkg.com/eslint-config-airbnb/-/eslint-config-airbnb-17.1.0.tgz#3964ed4bc198240315ff52030bf8636f42bc4732" - integrity sha512-R9jw28hFfEQnpPau01NO5K/JWMGLi6aymiF6RsnMURjTk+MqZKllCqGK/0tOvHkPi/NWSSOU2Ced/GX++YxLnw== +eslint-import-resolver-node@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz#58f15fb839b8d0576ca980413476aab2472db66a" + integrity sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q== dependencies: - eslint-config-airbnb-base "^13.1.0" - object.assign "^4.1.0" - object.entries "^1.0.4" + debug "^2.6.9" + resolve "^1.5.0" eslint-loader@^2.1.1: version "2.1.2" @@ -3129,6 +3141,30 @@ eslint-loader@^2.1.1: object-hash "^1.1.4" rimraf "^2.6.1" +eslint-module-utils@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.3.0.tgz#546178dab5e046c8b562bbb50705e2456d7bda49" + integrity sha512-lmDJgeOOjk8hObTysjqH7wyMi+nsHwwvfBykwfhjR1LNdd7C2uFJBvx4OpWYpXOw4df1yE1cDEVd1yLHitk34w== + dependencies: + debug "^2.6.8" + pkg-dir "^2.0.0" + +eslint-plugin-import@^2.16.0: + version "2.16.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.16.0.tgz#97ac3e75d0791c4fac0e15ef388510217be7f66f" + integrity sha512-z6oqWlf1x5GkHIFgrSvtmudnqM6Q60KM4KvpWi5ubonMjycLjndvd5+8VAZIsTlHC03djdgJuyKG6XO577px6A== + dependencies: + contains-path "^0.1.0" + debug "^2.6.9" + doctrine "1.5.0" + eslint-import-resolver-node "^0.3.2" + eslint-module-utils "^2.3.0" + has "^1.0.3" + lodash "^4.17.11" + minimatch "^3.0.4" + read-pkg-up "^2.0.0" + resolve "^1.9.0" + eslint-plugin-jsx-a11y@^6.2.1: version "6.2.1" resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.2.1.tgz#4ebba9f339b600ff415ae4166e3e2e008831cf0c" @@ -3671,7 +3707,7 @@ find-up@^1.0.0: path-exists "^2.0.0" pinkie-promise "^2.0.0" -find-up@^2.1.0: +find-up@^2.0.0, find-up@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= @@ -4945,6 +4981,16 @@ levn@^0.3.0, levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" +load-json-file@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/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" + loader-fs-cache@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/loader-fs-cache/-/loader-fs-cache-1.0.1.tgz#56e0bf08bd9708b26a765b68509840c8dec9fdbc" @@ -5905,6 +5951,13 @@ 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.yarnpkg.com/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.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" @@ -5970,6 +6023,13 @@ path-to-regexp@0.1.7: resolved "https://registry.yarnpkg.com/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.yarnpkg.com/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.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" @@ -6596,6 +6656,23 @@ rc@^1.2.7: minimist "^1.2.0" strip-json-comments "~2.0.1" +read-pkg-up@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/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@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/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@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-4.0.1.tgz#963625378f3e1c4d48c85872b5a6ec7d5d093237" @@ -6870,7 +6947,7 @@ resolve-url@^0.2.1: resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= -resolve@^1.10.0, resolve@^1.3.2, resolve@^1.8.1: +resolve@^1.10.0, resolve@^1.3.2, resolve@^1.5.0, resolve@^1.8.1, resolve@^1.9.0: version "1.10.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.10.0.tgz#3bdaaeaf45cc07f375656dfd2e54ed0810b101ba" integrity sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg== @@ -7494,6 +7571,11 @@ strip-ansi@^5.0.0: dependencies: ansi-regex "^4.0.0" +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= + strip-eof@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"