From 4fa9559d02df628317312ae55a6ac3ec4b1a2d27 Mon Sep 17 00:00:00 2001 From: Cloud Date: Mon, 19 Aug 2019 16:14:10 +0800 Subject: [PATCH] feat: eslint && prettier --- .eslintignore | 5 + .eslintrc | 61 ++++- .prettierignore | 7 + .prettierrc | 7 + package.json | 16 +- src/css/options.scss | 2 +- src/css/popup.less | 18 +- src/js/background/index.js | 32 ++- src/js/background/utils.js | 151 +++++----- src/js/common/config.js | 19 +- src/js/common/rules.js | 28 +- src/js/common/utils.js | 4 +- src/js/content/index.js | 2 +- src/js/content/utils.js | 48 ++-- src/js/options/index.js | 11 +- src/js/popup/index.js | 96 ++++--- yarn.lock | 546 ++++++++++++++++++++++++++++++++++++- 17 files changed, 855 insertions(+), 198 deletions(-) create mode 100644 .eslintignore create mode 100644 .prettierignore create mode 100644 .prettierrc diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..a24bd8c --- /dev/null +++ b/.eslintignore @@ -0,0 +1,5 @@ +.github/ +.vscode/ +dist +release +*.config.js \ No newline at end of file diff --git a/.eslintrc b/.eslintrc index 40cec25..bb34673 100644 --- a/.eslintrc +++ b/.eslintrc @@ -1,5 +1,64 @@ { + "extends": [ + "eslint:recommended", + "plugin:prettier/recommended" + ], + "plugins": [ + "prettier" + ], + "parserOptions": { + "ecmaVersion": 2018, + "sourceType": "module" + }, + "env": { + "node": true, + "es6": true + }, "rules": { + "no-console": 0, + "block-scoped-var": 1, + "curly": 1, + "eqeqeq": 1, + "no-global-assign": 1, + "no-implicit-globals": 1, + "no-labels": 1, + "no-multi-str": 1, + "comma-spacing": 1, + "comma-style": 1, + "func-call-spacing": 1, + "keyword-spacing": 1, + "linebreak-style": 1, + "lines-around-comment": 1, + "no-multiple-empty-lines": 1, + "space-infix-ops": 1, + "arrow-spacing": 1, + "no-var": 1, + "prefer-const": 1, + "no-unsafe-negation": 1, + "array-callback-return": 1, + "dot-notation": 1, + "no-eval": 1, + "no-extend-native": 1, + "no-extra-label": 1, + "semi": 1, + "space-before-blocks": 1, + "space-in-parens": 1, + "space-unary-ops": 1, + "spaced-comment": 1, + "arrow-body-style": 1, + "arrow-parens": 1, + "no-restricted-imports": 1, + "no-duplicate-imports": 1, + "no-useless-computed-key": 1, + "no-useless-rename": 1, + "rest-spread-spacing": 1, + "no-trailing-spaces": 1, + "no-control-regex": 0, + "prettier/prettier": 0, + "no-await-in-loop": 1, + "require-atomic-updates": 0, + "no-prototype-builtins": 0, + "no-undef": 0, "vue/no-use-v-if-with-v-for": "off", } -} +} \ No newline at end of file diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..5c7c453 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,7 @@ +package.json +package-lock.json +.github/ +.vscode/ +dist +release +*.config.js diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..8fa3efc --- /dev/null +++ b/.prettierrc @@ -0,0 +1,7 @@ +{ + "printWidth": 233, + "tabWidth": 4, + "singleQuote": true, + "trailingComma": "es5", + "arrowParens": "always" +} diff --git a/package.json b/package.json index 3c585c6..a3ecda6 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,10 @@ "test": "echo \"Error: no test specified\" && exit 1", "dev": "webpack -w --mode=production --progress --display-error-details --colors", "build": "webpack --mode=production --progress --display-error-details --colors", - "release": "npm run build && zip -r release/radar.zip dist" + "release": "npm run build && zip -r release/radar.zip dist", + "format": "eslint \"**/*.js\" --fix && prettier \"**/*.{js,scss,less}\" --write", + "format:staged": "eslint \"**/*.js\" --fix && pretty-quick --staged --verbose --pattern \"**/*.{js,scss,less}\"", + "format:check": "eslint \"**/*.js\" && prettier-check \"**/*.{js,scss,less}\"" }, "repository": { "type": "git", @@ -16,6 +19,9 @@ "rsshub", "rss" ], + "gitHooks": { + "pre-commit": "npm run format:staged" + }, "author": "DIYgod", "license": "MIT", "bugs": { @@ -31,13 +37,19 @@ "copy-webpack-plugin": "5.0.4", "css-loader": "3.2.0", "cssnano": "4.1.10", + "eslint": "6.2.0", + "eslint-config-prettier": "6.0.0", "eslint-loader": "2.2.1", + "eslint-plugin-prettier": "3.1.0", "file-loader": "4.2.0", "less": "3.9.0", "less-loader": "5.0.0", "mini-css-extract-plugin": "0.8.0", "node-sass": "4.12.0", "postcss-loader": "3.0.0", + "prettier": "^1.18.2", + "prettier-check": "2.0.0", + "pretty-quick": "1.11.1", "sass-loader": "7.2.0", "svg-inline-loader": "0.8.0", "template-string-optimize-loader": "3.0.0", @@ -56,4 +68,4 @@ "rss-parser": "3.7.2", "vue-router": "3.1.2" } -} +} \ No newline at end of file diff --git a/src/css/options.scss b/src/css/options.scss index bcf485b..282922a 100644 --- a/src/css/options.scss +++ b/src/css/options.scss @@ -2,4 +2,4 @@ $--color-primary: #f5712c; $--font-path: '~element-ui/lib/theme-chalk/fonts'; -@import "~element-ui/packages/theme-chalk/src/index"; \ No newline at end of file +@import '~element-ui/packages/theme-chalk/src/index'; diff --git a/src/css/popup.less b/src/css/popup.less index 7b5c887..2727868 100644 --- a/src/css/popup.less +++ b/src/css/popup.less @@ -2,7 +2,7 @@ body { min-width: 310px; margin: 0; padding: 20px 20px 5px; - font-family: "Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","微软雅黑",Arial,sans-serif; + font-family: 'Helvetica Neue', Helvetica, 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', '微软雅黑', Arial, sans-serif; &.something { .no-rss { @@ -24,7 +24,7 @@ body { width: 18px; display: inline-block; fill: #666; - transition: .3s; + transition: 0.3s; margin-left: 5px; &:hover { @@ -43,7 +43,7 @@ body { font-size: 16px; margin: 0 0 15px; } - + ul, li { padding: 0; @@ -70,7 +70,7 @@ body { } a { - color: #FF8549; + color: #ff8549; text-decoration: none; } } @@ -121,7 +121,7 @@ body { border: 1px solid #f5712c; line-height: 30px; text-align: center; - transition: .3s; + transition: 0.3s; border-radius: 4px; cursor: pointer; box-sizing: border-box; @@ -159,12 +159,12 @@ body { } &.rss-submitto-inoreader { - color: #0099EB; - border: 1px solid #0099EB; + color: #0099eb; + border: 1px solid #0099eb; &:hover { color: #fff; - background: #0099EB; + background: #0099eb; } } } @@ -179,4 +179,4 @@ body { .rss-action { margin-left: auto; } -} \ No newline at end of file +} diff --git a/src/js/background/index.js b/src/js/background/index.js index 9625da7..4b942ce 100644 --- a/src/js/background/index.js +++ b/src/js/background/index.js @@ -2,20 +2,28 @@ import { handleRSS, removeRSS, addPageRSS, getAllRSS } from './utils'; import { getConfig, saveConfig } from '../common/config'; chrome.tabs.onActivated.addListener((tab) => { - chrome.tabs.sendMessage(tab.tabId, { - text: 'getPageRSS', - }, (feeds) => { - handleRSS(feeds, tab.tabId, true); - }); + chrome.tabs.sendMessage( + tab.tabId, + { + text: 'getPageRSS', + }, + (feeds) => { + handleRSS(feeds, tab.tabId, true); + } + ); }); chrome.tabs.onUpdated.addListener((tabId, changeInfo, tab) => { if (changeInfo.url && tab.active) { - chrome.tabs.sendMessage(tab.id, { - text: 'getPageRSS', - }, (feeds) => { - handleRSS(feeds, tab.id); - }); + chrome.tabs.sendMessage( + tab.id, + { + text: 'getPageRSS', + }, + (feeds) => { + handleRSS(feeds, tab.id); + } + ); } }); @@ -50,7 +58,7 @@ getConfig((config) => { chrome.notifications.onClicked.addListener((id) => { if (id === 'RSSHubRadarUpdate') { chrome.tabs.create({ - url: 'https://github.com/DIYgod/RSSHub-Radar/releases' + url: 'https://github.com/DIYgod/RSSHub-Radar/releases', }); chrome.notifications.clear('RSSHubRadarUpdate'); } @@ -58,4 +66,4 @@ getConfig((config) => { config.version = VERSION; saveConfig(config); } -}); \ No newline at end of file +}); diff --git a/src/js/background/utils.js b/src/js/background/utils.js index 89b922f..89157a9 100644 --- a/src/js/background/utils.js +++ b/src/js/background/utils.js @@ -5,13 +5,13 @@ import { getConfig } from '../common/config'; let config; let rules = {}; import RSSParser from 'rss-parser'; -let rssParser = new RSSParser(); +const rssParser = new RSSParser(); window.pageRSS = {}; window.pageRSSHub = {}; window.websiteRSSHub = {}; -function schedule(time = +new Date + config.refreshTimeout * 1000) { +function schedule(time = +new Date() + config.refreshTimeout * 1000) { chrome.alarms.create('refreshRules', { when: time, periodInMinutes: config.refreshTimeout / 60, @@ -20,7 +20,7 @@ function schedule(time = +new Date + config.refreshTimeout * 1000) { function initSchedule() { getRulesDate((lastDate) => { - if (!lastDate || (+new Date - lastDate > config.refreshTimeout * 1000)) { + if (!lastDate || +new Date() - lastDate > config.refreshTimeout * 1000) { refreshRules(); schedule(); } else { @@ -46,7 +46,7 @@ chrome.alarms.onAlarm.addListener((alarm) => { } }); -chrome.idle.onStateChanged.addListener(newState => { +chrome.idle.onStateChanged.addListener((newState) => { if (newState === 'active') { initSchedule(); } @@ -65,13 +65,14 @@ chrome.browserAction.setBadgeBackgroundColor({ color: '#FF2800', }); -chrome.browserAction.setBadgeTextColor && chrome.browserAction.setBadgeTextColor({ - color: '#fff' -}); +chrome.browserAction.setBadgeTextColor && + chrome.browserAction.setBadgeTextColor({ + color: '#fff', + }); function setBadge(tabId) { chrome.browserAction.setBadgeText({ - text: config.notice.badge ? (((window.pageRSS[tabId].length + window.pageRSSHub[tabId].length) || (window.websiteRSSHub[tabId].length ? ' ' : '')) + '') : '', + text: config.notice.badge ? (window.pageRSS[tabId].length + window.pageRSSHub[tabId].length || (window.websiteRSSHub[tabId].length ? ' ' : '')) + '' : '', tabId, }); } @@ -92,19 +93,23 @@ function ruleHandler(rule, params, tabId, url, success, fail) { } return reaultWithParams; - } + }; if (rule.script) { - chrome.tabs.sendMessage(tabId, { - text: 'executeScript', - code: rule.script - }, (result) => { - params = Object.assign({}, result, params); - if (!rule.verification || rule.verification(params)) { - success(run()); - } else { - fail(); + chrome.tabs.sendMessage( + tabId, + { + text: 'executeScript', + code: rule.script, + }, + (result) => { + params = Object.assign({}, result, params); + if (!rule.verification || rule.verification(params)) { + success(run()); + } else { + fail(); + } } - }); + ); } else { if (!rule.verification || rule.verification(params)) { success(run()); @@ -127,10 +132,12 @@ function getPageRSSHub(url, tabId, done) { if (ru.source instanceof Array) { ru.source.forEach((source) => { const router = new RouteRecognizer(); - router.add([{ - path: source, - handler: index, - }]); + router.add([ + { + path: source, + handler: index, + }, + ]); const result = router.recognize(new URL(url).pathname.replace(/\/$/, '')); if (result && result[0]) { recognized.push(result[0]); @@ -138,10 +145,12 @@ function getPageRSSHub(url, tabId, done) { }); } else if (typeof ru.source === 'string') { const router = new RouteRecognizer(); - router.add([{ - path: ru.source, - handler: index, - }]); + router.add([ + { + path: ru.source, + handler: index, + }, + ]); const result = router.recognize(new URL(url).pathname.replace(/\/$/, '')); if (result && result[0]) { recognized.push(result[0]); @@ -150,27 +159,37 @@ function getPageRSSHub(url, tabId, done) { } }); const result = []; - Promise.all(recognized.map((recog) => { - return new Promise((resolve) => { - ruleHandler(rule[recog.handler], recog.params, tabId, url, (parsed) => { - if (parsed) { - result.push({ - title: formatBlank(rules[domain]._name ? '当前' : '', rule[recog.handler].title), - url: '{rsshubDomain}' + parsed, - }); - } else { - result.push({ - title: formatBlank(rules[domain]._name ? '当前' : '', rule[recog.handler].title), - url: rule[recog.handler].docs, - isDocs: true, - }); - } - resolve(); - }, () => { - resolve(); - }); - }); - })).then(() => { + Promise.all( + recognized.map( + (recog) => + new Promise((resolve) => { + ruleHandler( + rule[recog.handler], + recog.params, + tabId, + url, + (parsed) => { + if (parsed) { + result.push({ + title: formatBlank(rules[domain]._name ? '当前' : '', rule[recog.handler].title), + url: '{rsshubDomain}' + parsed, + }); + } else { + result.push({ + title: formatBlank(rules[domain]._name ? '当前' : '', rule[recog.handler].title), + url: rule[recog.handler].docs, + isDocs: true, + }); + } + resolve(); + }, + () => { + resolve(); + } + ); + }) + ) + ).then(() => { done(result); }); } else { @@ -183,7 +202,7 @@ function getPageRSSHub(url, tabId, done) { function formatBlank(str1, str2) { if (str1 && str2) { - return str1 + ((str1[str1.length - 1].match(/[a-zA-Z0-9]/) || str2[0].match(/[a-zA-Z0-9]/)) ? ' ' : '') + str2; + return str1 + (str1[str1.length - 1].match(/[a-zA-Z0-9]/) || str2[0].match(/[a-zA-Z0-9]/) ? ' ' : '') + str2; } else { return (str1 || '') + (str2 || ''); } @@ -218,10 +237,11 @@ export function handleRSS(feeds, tabId, useCache) { setBadge(tabId); } else { chrome.tabs.get(tabId, (tab) => { - feeds && feeds.forEach((feed) => { - feed.image = tab.favIconUrl || feed.image; - }); - window.pageRSS[tabId] = feeds && feeds.filter((feed) => !feed.uncertain) || []; + feeds && + feeds.forEach((feed) => { + feed.image = tab.favIconUrl || feed.image; + }); + window.pageRSS[tabId] = (feeds && feeds.filter((feed) => !feed.uncertain)) || []; window.websiteRSSHub[tabId] = getWebsiteRSSHub(tab.url) || []; @@ -231,15 +251,18 @@ export function handleRSS(feeds, tabId, useCache) { }); }); - feeds && feeds.filter((feed) => feed.uncertain).forEach((feed) => { - rssParser.parseURL(feed.url, (err, result) => { - if (!err) { - feed.title = result.title; - window.pageRSS[tabId].push(feed); - setBadge(tabId); - } - }); - }); + feeds && + feeds + .filter((feed) => feed.uncertain) + .forEach((feed) => { + rssParser.parseURL(feed.url, (err, result) => { + if (!err) { + feed.title = result.title; + window.pageRSS[tabId].push(feed); + setBadge(tabId); + } + }); + }); } } @@ -264,5 +287,5 @@ export function getAllRSS(tabId) { pageRSS: window.pageRSS[tabId] || {}, websiteRSSHub: window.websiteRSSHub[tabId] || {}, pageRSSHub: window.pageRSSHub[tabId] || {}, - } -} \ No newline at end of file + }; +} diff --git a/src/js/common/config.js b/src/js/common/config.js index 634500d..4cc9f2e 100644 --- a/src/js/common/config.js +++ b/src/js/common/config.js @@ -12,7 +12,7 @@ export const defaultConfig = { refreshTimeout: 5 * 60 * 60, }; -export function getConfig (success) { +export function getConfig(success) { if (chrome.storage) { chrome.storage.sync.get('config', (result) => { success(Object.assign({}, defaultConfig, result.config)); @@ -22,16 +22,19 @@ export function getConfig (success) { } } -export function saveConfig (config, success) { +export function saveConfig(config, success) { if (!config.rsshubDomain) { config.rsshubDomain = defaultConfig.rsshubDomain; } config.rsshubDomain = config.rsshubDomain.replace(/\/$/, ''); if (chrome.storage) { - chrome.storage.sync.set({ - config, - }, () => { - success && success(); - }); + chrome.storage.sync.set( + { + config, + }, + () => { + success && success(); + } + ); } -} \ No newline at end of file +} diff --git a/src/js/common/rules.js b/src/js/common/rules.js index 815a2d2..bf23852 100644 --- a/src/js/common/rules.js +++ b/src/js/common/rules.js @@ -1,18 +1,16 @@ -export function refreshRules (success) { - fetch('https://raw.githubusercontent.com/DIYgod/RSSHub/master/assets/radar-rules.js') - .then((response) => { - response.text() - .then((text) => { - chrome.storage.local.set({ - rules: text, - rulesDate: +new Date(), - }); - success && success(); - }); +export function refreshRules(success) { + fetch('https://raw.githubusercontent.com/DIYgod/RSSHub/master/assets/radar-rules.js').then((response) => { + response.text().then((text) => { + chrome.storage.local.set({ + rules: text, + rulesDate: +new Date(), + }); + success && success(); }); + }); } -export function getRules (success) { +export function getRules(success) { chrome.storage.local.get('rules', (result) => { if (result && result.rules) { success(eval(result.rules), result.rules); @@ -24,7 +22,7 @@ export function getRules (success) { }); } -export function getRulesDate (success) { +export function getRulesDate(success) { chrome.storage.local.get('rulesDate', (result) => { if (result && result.rulesDate) { success(result.rulesDate); @@ -34,9 +32,9 @@ export function getRulesDate (success) { }); } -export function updateRules (text, success) { +export function updateRules(text, success) { chrome.storage.local.set({ rules: text, }); success && success(); -} \ No newline at end of file +} diff --git a/src/js/common/utils.js b/src/js/common/utils.js index 779f1f4..d5584d8 100644 --- a/src/js/common/utils.js +++ b/src/js/common/utils.js @@ -1,5 +1,5 @@ -export function secondToTime (second) { +export function secondToTime(second) { const hour = Math.floor(second / 3600); const min = Math.floor((second - hour * 3600) / 60); return `${hour ? hour + '小时' : ''}${min}分钟`; -} \ No newline at end of file +} diff --git a/src/js/content/index.js b/src/js/content/index.js index 45039da..a33e4de 100644 --- a/src/js/content/index.js +++ b/src/js/content/index.js @@ -11,4 +11,4 @@ chrome.runtime.onMessage.addListener((msg, sender, sendResponse) => { chrome.runtime.sendMessage(null, { text: 'setPageRSS', feeds: getPageRSS(), -}); \ No newline at end of file +}); diff --git a/src/js/content/utils.js b/src/js/content/utils.js index 525692d..a31e5de 100644 --- a/src/js/content/utils.js +++ b/src/js/content/utils.js @@ -1,28 +1,34 @@ import RSSParser from 'rss-parser'; -let rssParser = new RSSParser(); +const rssParser = new RSSParser(); let pageRSS = null; -const defaultTitle = document.querySelector('title') && document.querySelector('title').innerHTML && document.querySelector('title').innerHTML.replace(//, (match, p1) => p1).trim(); -const image = document.querySelector('link[rel~="icon"]') && handleUrl(document.querySelector('link[rel~="icon"]').getAttribute('href')) || document.location.origin + '/favicon.ico'; +const defaultTitle = + document.querySelector('title') && + document.querySelector('title').innerHTML && + document + .querySelector('title') + .innerHTML.replace(//, (match, p1) => p1) + .trim(); +const image = (document.querySelector('link[rel~="icon"]') && handleUrl(document.querySelector('link[rel~="icon"]').getAttribute('href'))) || document.location.origin + '/favicon.ico'; -function handleUrl (url) { +function handleUrl(url) { if (url.startsWith('//')) { url = document.location.protocol + url; } else if (url.startsWith('/')) { url = document.location.origin + url; - } else if (!(/^(http|https):\/\//i.test(url))) { + } else if (!/^(http|https):\/\//i.test(url)) { url = document.location.href + '/' + url.replace(/^\//g, ''); } return url; } -export function getPageRSS () { +export function getPageRSS() { if (!pageRSS) { pageRSS = []; const saved = {}; // links - let types = [ + const types = [ 'application/rss+xml', 'application/atom+xml', 'application/rdf+xml', @@ -34,15 +40,15 @@ export function getPageRSS () { 'text/rdf+xml', 'text/rss', 'text/atom', - 'text/rdf' + 'text/rdf', ]; - let links = document.querySelectorAll('link[type]'); + const links = document.querySelectorAll('link[type]'); for (let i = 0; i < links.length; i++) { if (links[i].hasAttribute('type') && types.indexOf(links[i].getAttribute('type')) !== -1) { - let feed_url = links[i].getAttribute('href'); + const feed_url = links[i].getAttribute('href'); if (feed_url) { - let feed = { + const feed = { url: handleUrl(feed_url), title: links[i].getAttribute('title') || defaultTitle, image, @@ -54,17 +60,19 @@ export function getPageRSS () { } // a - let aEles = document.querySelectorAll('a'); + const aEles = document.querySelectorAll('a'); const check = /([^a-zA-Z]|^)rss([^a-zA-Z]|$)/i; for (let i = 0; i < aEles.length; i++) { if (aEles[i].hasAttribute('href')) { const href = aEles[i].getAttribute('href'); - if (href.match(/\/(feed|rss|atom)(\.(xml|rss|atom))?$/) - || aEles[i].hasAttribute('title') && aEles[i].getAttribute('title').match(check) - || aEles[i].hasAttribute('class') && aEles[i].getAttribute('class').match(check) - || aEles[i].innerText && aEles[i].innerText.match(check)) { - let feed = { + if ( + href.match(/\/(feed|rss|atom)(\.(xml|rss|atom))?$/) || + (aEles[i].hasAttribute('title') && aEles[i].getAttribute('title').match(check)) || + (aEles[i].hasAttribute('class') && aEles[i].getAttribute('class').match(check)) || + (aEles[i].innerText && aEles[i].innerText.match(check)) + ) { + const feed = { url: handleUrl(href), title: aEles[i].innerText || aEles[i].getAttribute('title') || defaultTitle, image, @@ -99,7 +107,7 @@ export function getPageRSS () { }, }); } - }) + }); } } saved[document.location.href] = 1; @@ -107,11 +115,11 @@ export function getPageRSS () { return pageRSS; } -export function runCode (code) { +export function runCode(code) { try { return eval(code); } catch (e) { console.warn('RSS Radar error: ', e); return {}; } -} \ No newline at end of file +} diff --git a/src/js/options/index.js b/src/js/options/index.js index 72acccd..f1f2913 100644 --- a/src/js/options/index.js +++ b/src/js/options/index.js @@ -1,4 +1,4 @@ -import '../../css/options.scss' +import '../../css/options.scss'; import Vue from 'vue'; import VueRouter from 'vue-router'; import App from './App.vue'; @@ -27,17 +27,12 @@ Vue.prototype.$loading = Loading.service; Vue.prototype.$message = Message; Vue.config.productionTip = false; -const routes = [ - { path: '/', redirect: '/setting' }, - { path: '/setting', component: Setting }, - { path: '/list', component: List }, - { path: '/about', component: About }, -]; +const routes = [{ path: '/', redirect: '/setting' }, { path: '/setting', component: Setting }, { path: '/list', component: List }, { path: '/about', component: About }]; const router = new VueRouter({ routes, }); new Vue({ - render: h => h(App), + render: (h) => h(App), router, }).$mount('#app'); diff --git a/src/js/popup/index.js b/src/js/popup/index.js index 8880a5f..b993e3b 100644 --- a/src/js/popup/index.js +++ b/src/js/popup/index.js @@ -17,13 +17,20 @@ function generateList(type, list) {
${item.title}
${url.replace('https://', '').replace('http://', '')}
- ${item.isDocs ? `文档` : `
复制
- ${config.submitto.ttrss && config.submitto.ttrssDomain ? `订阅到 TTRSS` : ''} + ${ + item.isDocs + ? `文档` + : `
复制
+ ${ + config.submitto.ttrss && config.submitto.ttrssDomain + ? `订阅到 TTRSS` + : '' + } ${config.submitto.feedly ? `订阅到 Feedly` : ''} ${config.submitto.inoreader ? `订阅到 Inoreader` : ''}` } - ` + `; }); document.querySelector(`.${type} ul`).innerHTML = result; document.querySelector(`.${type}`).style.display = 'block'; @@ -34,45 +41,52 @@ function generateList(type, list) { document.querySelector('.icons-setting').innerHTML = settingIcon; document.querySelector('.icons-about').innerHTML = aboutIcon; -chrome.tabs.query({ - active: true, - currentWindow: true -}, (tabs) => { - const tabId = tabs[0].id; +chrome.tabs.query( + { + active: true, + currentWindow: true, + }, + (tabs) => { + const tabId = tabs[0].id; - getConfig((conf) => { - config = conf; - chrome.runtime.sendMessage(null, { - text: 'getAllRSS', - tabId: tabId - }, (feeds) => { - generateList('page-rss', feeds.pageRSS); - generateList('page-rsshub', feeds.pageRSSHub); - generateList('website-rsshub', feeds.websiteRSSHub); - - const clipboard = new ClipboardJS('.rss-copy'); - clipboard.on('success', function (e) { - e.trigger.innerHTML = '已复制'; - setTimeout(() => { - e.trigger.innerHTML = '复制'; - }, 1000); - }); + getConfig((conf) => { + config = conf; + chrome.runtime.sendMessage( + null, + { + text: 'getAllRSS', + tabId: tabId, + }, + (feeds) => { + generateList('page-rss', feeds.pageRSS); + generateList('page-rsshub', feeds.pageRSSHub); + generateList('website-rsshub', feeds.websiteRSSHub); - document.querySelectorAll('.rss-image').forEach((ele) => { - ele.addEventListener('error', function () { - this.setAttribute('src', './rsshub.png'); - }); - }); - - document.querySelectorAll('a').forEach((ele) => { - ele.addEventListener('click', (e) => { - e.preventDefault(); - chrome.tabs.create({ - url: ele.getAttribute('href'), + const clipboard = new ClipboardJS('.rss-copy'); + clipboard.on('success', function(e) { + e.trigger.innerHTML = '已复制'; + setTimeout(() => { + e.trigger.innerHTML = '复制'; + }, 1000); }); - window.close(); - }); - }); + + document.querySelectorAll('.rss-image').forEach((ele) => { + ele.addEventListener('error', function() { + this.setAttribute('src', './rsshub.png'); + }); + }); + + document.querySelectorAll('a').forEach((ele) => { + ele.addEventListener('click', (e) => { + e.preventDefault(); + chrome.tabs.create({ + url: ele.getAttribute('href'), + }); + window.close(); + }); + }); + } + ); }); - }); -}); + } +); diff --git a/yarn.lock b/yarn.lock index a789210..b189636 100644 --- a/yarn.lock +++ b/yarn.lock @@ -888,6 +888,11 @@ abbrev@1: resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== +acorn-jsx@^5.0.0: + version "5.0.1" + resolved "https://registry.npm.taobao.org/acorn-jsx/download/acorn-jsx-5.0.1.tgz#32a064fd925429216a09b141102bfdd185fae40e" + integrity sha1-MqBk/ZJUKSFqCbFBECv90YX65A4= + acorn@5.7.1: version "5.7.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.1.tgz#f095829297706a7c9776958c0afc8930a9b9d9d8" @@ -898,6 +903,11 @@ acorn@^6.2.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.2.1.tgz#3ed8422d6dec09e6121cc7a843ca86a330a86b51" integrity sha512-JD0xT5FCRDNyjDda3Lrg/IxFscp9q4tiYtxE1/nOzlKCk7hIRuYjhq1kCNkbPjMRMZuFq20HNQn1I9k8Oj0E+Q== +acorn@^7.0.0: + version "7.0.0" + resolved "https://registry.npm.taobao.org/acorn/download/acorn-7.0.0.tgz#26b8d1cd9a9b700350b71c0905546f64d1284e7a" + integrity sha1-JrjRzZqbcANQtxwJBVRvZNEoTno= + ajv-errors@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" @@ -908,7 +918,7 @@ ajv-keywords@^3.1.0, ajv-keywords@^3.4.1: resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.1.tgz#ef916e271c64ac12171fd8384eaae6b2345854da" integrity sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ== -ajv@^6.1.0, ajv@^6.10.2, ajv@^6.5.5: +ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.5.5: version "6.10.2" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52" integrity sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw== @@ -938,6 +948,13 @@ ansi-colors@^3.0.0: resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== +ansi-escapes@^4.2.1: + version "4.2.1" + resolved "https://registry.npm.taobao.org/ansi-escapes/download/ansi-escapes-4.2.1.tgz#4dccdb846c3eee10f6d64dea66273eab90c37228" + integrity sha1-TczbhGw+7hD21k3qZic+q5DDcig= + dependencies: + type-fest "^0.5.2" + ansi-regex@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" @@ -1008,6 +1025,11 @@ arr-union@^3.1.0: resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= +array-differ@^2.0.3: + version "2.1.0" + resolved "https://registry.npm.taobao.org/array-differ/download/array-differ-2.1.0.tgz#4b9c1c3f14b906757082925769e8ab904f4801b1" + integrity sha1-S5wcPxS5BnVwgpJXaeirkE9IAbE= + array-filter@~0.0.0: version "0.0.1" resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-0.0.1.tgz#7da8cf2e26628ed732803581fd21f67cacd2eeec" @@ -1028,7 +1050,7 @@ array-reduce@~0.0.0: resolved "https://registry.yarnpkg.com/array-reduce/-/array-reduce-0.0.0.tgz#173899d3ffd1c7d9383e4479525dbe278cab5f2b" integrity sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys= -array-union@^1.0.1: +array-union@^1.0.1, array-union@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= @@ -1045,6 +1067,11 @@ array-unique@^0.3.2: resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= +arrify@^1.0.1: + version "1.0.1" + resolved "https://registry.npm.taobao.org/arrify/download/arrify-1.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Farrify%2Fdownload%2Farrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= + asap@~2.0.3: version "2.0.6" resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" @@ -1089,6 +1116,11 @@ assign-symbols@^1.0.0: resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= +astral-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/astral-regex/download/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" + integrity sha1-bIw/uCfdQ+45GPJ7gngqt2WKb9k= + async-each@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" @@ -1457,6 +1489,11 @@ callsites@^2.0.0: resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.npm.taobao.org/callsites/download/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha1-s2MKvYlDQy9Us/BRkjjjPNffL3M= + camelcase-keys@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" @@ -1512,7 +1549,7 @@ chai@^4.2.0: pathval "^1.1.0" type-detect "^4.0.5" -chalk@2.4.2, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.4.1, chalk@^2.4.2: +chalk@2.4.2, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -1532,6 +1569,11 @@ chalk@^1.1.1: strip-ansi "^3.0.0" supports-color "^2.0.0" +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.npm.taobao.org/chardet/download/chardet-0.7.0.tgz?cache=0&sync_timestamp=1562887878067&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchardet%2Fdownload%2Fchardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" + integrity sha1-kAlISfCTfy7twkJdDSip5fDLrZ4= + check-error@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" @@ -1586,6 +1628,18 @@ class-utils@^0.3.5: isobject "^3.0.0" static-extend "^0.1.1" +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.npm.taobao.org/cli-cursor/download/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + integrity sha1-JkMFp65JDR0Dvwybp8kl0XU68wc= + dependencies: + restore-cursor "^3.1.0" + +cli-width@^2.0.0: + version "2.2.0" + resolved "https://registry.npm.taobao.org/cli-width/download/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" + integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk= + clipboard@2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/clipboard/-/clipboard-2.0.4.tgz#836dafd66cf0fea5d71ce5d5b0bf6e958009112d" @@ -1885,6 +1939,15 @@ cross-spawn@^3.0.0: lru-cache "^4.0.1" which "^1.2.9" +cross-spawn@^5.0.1: + version "5.1.0" + resolved "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-5.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcross-spawn%2Fdownload%2Fcross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" + integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= + dependencies: + lru-cache "^4.0.1" + shebang-command "^1.2.0" + which "^1.2.9" + crypto-browserify@^3.11.0: version "3.12.0" resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" @@ -2102,7 +2165,7 @@ debug@^2.2.0, debug@^2.3.3: dependencies: ms "2.0.0" -debug@^4.1.0: +debug@^4.0.1, debug@^4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== @@ -2231,6 +2294,13 @@ dir-glob@^2.0.0: dependencies: path-type "^3.0.0" +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/doctrine/download/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha1-rd6+rXKmV023g2OdyHoSF3OXOWE= + dependencies: + esutils "^2.0.2" + dom-serializer@0: version "0.1.1" resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.1.tgz#1ec4059e284babed36eec2941d4a970a189ce7c0" @@ -2322,6 +2392,11 @@ emoji-regex@^7.0.1: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.npm.taobao.org/emoji-regex/download/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha1-6Bj9ac5cz8tARZT4QpY79TFkzDc= + emojis-list@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" @@ -2400,6 +2475,13 @@ escodegen@1.11.0: optionalDependencies: source-map "~0.6.1" +eslint-config-prettier@^6.0.0: + version "6.0.0" + resolved "https://registry.npm.taobao.org/eslint-config-prettier/download/eslint-config-prettier-6.0.0.tgz#f429a53bde9fc7660e6353910fd996d6284d3c25" + integrity sha1-9CmlO96fx2YOY1ORD9mW1ihNPCU= + dependencies: + get-stdin "^6.0.0" + eslint-loader@2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/eslint-loader/-/eslint-loader-2.2.1.tgz#28b9c12da54057af0845e2a6112701a2f6bf8337" @@ -2411,6 +2493,13 @@ eslint-loader@2.2.1: object-hash "^1.1.4" rimraf "^2.6.1" +eslint-plugin-prettier@^3.1.0: + version "3.1.0" + resolved "https://registry.npm.taobao.org/eslint-plugin-prettier/download/eslint-plugin-prettier-3.1.0.tgz#8695188f95daa93b0dc54b249347ca3b79c4686d" + integrity sha1-hpUYj5XaqTsNxUskk0fKO3nEaG0= + dependencies: + prettier-linter-helpers "^1.0.0" + eslint-scope@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" @@ -2419,6 +2508,78 @@ eslint-scope@^4.0.3: esrecurse "^4.1.0" estraverse "^4.1.1" +eslint-scope@^5.0.0: + version "5.0.0" + resolved "https://registry.npm.taobao.org/eslint-scope/download/eslint-scope-5.0.0.tgz#e87c8887c73e8d1ec84f1ca591645c358bfc8fb9" + integrity sha1-6HyIh8c+jR7ITxylkWRcNYv8j7k= + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-utils@^1.4.0: + version "1.4.0" + resolved "https://registry.npm.taobao.org/eslint-utils/download/eslint-utils-1.4.0.tgz#e2c3c8dba768425f897cf0f9e51fe2e241485d4c" + integrity sha1-4sPI26doQl+JfPD55R/i4kFIXUw= + dependencies: + eslint-visitor-keys "^1.0.0" + +eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0: + version "1.1.0" + resolved "https://registry.npm.taobao.org/eslint-visitor-keys/download/eslint-visitor-keys-1.1.0.tgz?cache=0&sync_timestamp=1565705523991&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-visitor-keys%2Fdownload%2Feslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2" + integrity sha1-4qgs6oT/JGrW+1f5veW0ZiFFnsI= + +eslint@^6.2.0: + version "6.2.0" + resolved "https://registry.npm.taobao.org/eslint/download/eslint-6.2.0.tgz?cache=0&sync_timestamp=1566166030868&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint%2Fdownload%2Feslint-6.2.0.tgz#4c42c20e3fc03f28db25f34ccba621a9a47e8b56" + integrity sha1-TELCDj/APyjbJfNMy6YhqaR+i1Y= + dependencies: + "@babel/code-frame" "^7.0.0" + ajv "^6.10.0" + chalk "^2.1.0" + cross-spawn "^6.0.5" + debug "^4.0.1" + doctrine "^3.0.0" + eslint-scope "^5.0.0" + eslint-utils "^1.4.0" + eslint-visitor-keys "^1.1.0" + espree "^6.1.0" + esquery "^1.0.1" + esutils "^2.0.2" + file-entry-cache "^5.0.1" + functional-red-black-tree "^1.0.1" + glob-parent "^5.0.0" + globals "^11.7.0" + ignore "^4.0.6" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + inquirer "^6.4.1" + 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.14" + minimatch "^3.0.4" + mkdirp "^0.5.1" + natural-compare "^1.4.0" + optionator "^0.8.2" + progress "^2.0.0" + regexpp "^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@^6.1.0: + version "6.1.0" + resolved "https://registry.npm.taobao.org/espree/download/espree-6.1.0.tgz#a1e8aa65bf29a331d70351ed814a80e7534e0884" + integrity sha1-oeiqZb8pozHXA1HtgUqA51NOCIQ= + dependencies: + acorn "^7.0.0" + acorn-jsx "^5.0.0" + eslint-visitor-keys "^1.1.0" + esprima@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" @@ -2429,6 +2590,13 @@ esprima@^4.0.0: resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== +esquery@^1.0.1: + version "1.0.1" + resolved "https://registry.npm.taobao.org/esquery/download/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708" + integrity sha1-QGxRZYsfWZGl+bYrHcJbAOPlxwg= + dependencies: + estraverse "^4.0.0" + esrecurse@^4.1.0: version "4.2.1" resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" @@ -2436,6 +2604,11 @@ esrecurse@^4.1.0: dependencies: estraverse "^4.1.0" +estraverse@^4.0.0: + version "4.3.0" + resolved "https://registry.npm.taobao.org/estraverse/download/estraverse-4.3.0.tgz?cache=0&sync_timestamp=1565734335990&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Festraverse%2Fdownload%2Festraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0= + estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" @@ -2459,6 +2632,32 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: md5.js "^1.3.4" safe-buffer "^5.1.1" +execa@^0.6.0: + version "0.6.3" + resolved "https://registry.npm.taobao.org/execa/download/execa-0.6.3.tgz#57b69a594f081759c69e5370f0d17b9cb11658fe" + integrity sha1-V7aaWU8IF1nGnlNw8NF7nLEWWP4= + dependencies: + cross-spawn "^5.0.1" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +execa@^0.8.0: + version "0.8.0" + resolved "https://registry.npm.taobao.org/execa/download/execa-0.8.0.tgz#d8d76bbc1b55217ed190fd6dd49d3c774ecfc8da" + integrity sha1-2NdrvBtVIX7RkP1t1J08d07PyNo= + dependencies: + cross-spawn "^5.0.1" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + execa@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" @@ -2512,6 +2711,15 @@ extend@~3.0.2: resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== +external-editor@^3.0.3: + version "3.1.0" + resolved "https://registry.npm.taobao.org/external-editor/download/external-editor-3.1.0.tgz?cache=0&sync_timestamp=1562602052556&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexternal-editor%2Fdownload%2Fexternal-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" + integrity sha1-ywP3QL764D6k0oPK7SdBqD8zVJU= + dependencies: + chardet "^0.7.0" + iconv-lite "^0.4.24" + tmp "^0.0.33" + extglob@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" @@ -2541,6 +2749,11 @@ fast-deep-equal@^2.0.1: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= +fast-diff@^1.1.2: + version "1.2.0" + resolved "https://registry.npm.taobao.org/fast-diff/download/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" + integrity sha1-c+4RmC2Gyq95WYKNUZz+kn+sXwM= + fast-json-stable-stringify@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" @@ -2556,6 +2769,20 @@ figgy-pudding@^3.5.1: resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790" integrity sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w== +figures@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/figures/download/figures-3.0.0.tgz#756275c964646163cc6f9197c7a0295dbfd04de9" + integrity sha1-dWJ1yWRkYWPMb5GXx6ApXb/QTek= + dependencies: + escape-string-regexp "^1.0.5" + +file-entry-cache@^5.0.1: + version "5.0.1" + resolved "https://registry.npm.taobao.org/file-entry-cache/download/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" + integrity sha1-yg9u+m3T1WEzP7FFFQZcL6/fQ5w= + dependencies: + flat-cache "^2.0.1" + file-loader@4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-4.2.0.tgz#5fb124d2369d7075d70a9a5abecd12e60a95215e" @@ -2607,6 +2834,13 @@ find-up@^1.0.0: path-exists "^2.0.0" pinkie-promise "^2.0.0" +find-up@^2.1.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/find-up/download/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= + dependencies: + locate-path "^2.0.0" + findup-sync@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-3.0.0.tgz#17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1" @@ -2617,6 +2851,15 @@ findup-sync@3.0.0: micromatch "^3.0.4" resolve-dir "^1.0.1" +flat-cache@^2.0.1: + version "2.0.1" + resolved "https://registry.npm.taobao.org/flat-cache/download/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" + integrity sha1-XSltbwS9pEpGMKMBQTvbwuwIXsA= + dependencies: + flatted "^2.0.0" + rimraf "2.6.3" + write "1.0.3" + flat@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/flat/-/flat-4.1.0.tgz#090bec8b05e39cba309747f1d588f04dbaf98db2" @@ -2624,6 +2867,11 @@ flat@^4.1.0: dependencies: is-buffer "~2.0.3" +flatted@^2.0.0: + version "2.0.1" + resolved "https://registry.npm.taobao.org/flatted/download/flatted-2.0.1.tgz#69e57caa8f0eacbc281d2e2cb458d46fdb449e08" + integrity sha1-aeV8qo8OrLwoHS4stFjUb9tEngg= + flush-write-stream@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" @@ -2711,6 +2959,11 @@ function-bind@^1.0.2, function-bind@^1.1.1: resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.npm.taobao.org/functional-red-black-tree/download/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= + gauge@~2.7.3: version "2.7.4" resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" @@ -2752,6 +3005,11 @@ get-stdin@^4.0.1: resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4= +get-stdin@^6.0.0: + version "6.0.0" + resolved "https://registry.npm.taobao.org/get-stdin/download/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" + integrity sha1-ngm/cSs2CrkiXoEgSPcf3pyJZXs= + get-stream@3.0.0, get-stream@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" @@ -2784,6 +3042,13 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" +glob-parent@^5.0.0: + version "5.0.0" + resolved "https://registry.npm.taobao.org/glob-parent/download/glob-parent-5.0.0.tgz#1dc99f0f39b006d3e92c2c284068382f0c20e954" + integrity sha1-HcmfDzmwBtPpLCwoQGg4Lwwg6VQ= + dependencies: + is-glob "^4.0.1" + glob@7.1.3: version "7.1.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" @@ -2844,7 +3109,7 @@ global-prefix@^3.0.0: kind-of "^6.0.2" which "^1.3.1" -globals@^11.1.0: +globals@^11.1.0, globals@^11.7.0: version "11.12.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== @@ -3081,7 +3346,7 @@ https-browserify@^1.0.0: resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= -iconv-lite@^0.4.4: +iconv-lite@^0.4.24, iconv-lite@^0.4.4: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== @@ -3112,11 +3377,16 @@ ignore-walk@^3.0.1: dependencies: minimatch "^3.0.4" -ignore@^3.3.5: +ignore@^3.3.5, ignore@^3.3.7: version "3.3.10" resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== +ignore@^4.0.6: + version "4.0.6" + resolved "https://registry.npm.taobao.org/ignore/download/ignore-4.0.6.tgz?cache=0&sync_timestamp=1565775199290&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fignore%2Fdownload%2Fignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + integrity sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw= + image-size@~0.5.0: version "0.5.5" resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c" @@ -3137,6 +3407,14 @@ import-fresh@^2.0.0: caller-path "^2.0.0" resolve-from "^3.0.0" +import-fresh@^3.0.0: + version "3.1.0" + resolved "https://registry.npm.taobao.org/import-fresh/download/import-fresh-3.1.0.tgz#6d33fa1dcef6df930fae003446f33415af905118" + integrity sha1-bTP6Hc7235MPrgA0RvM0Fa+QURg= + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + import-from@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" @@ -3207,6 +3485,25 @@ ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== +inquirer@^6.4.1: + version "6.5.1" + resolved "https://registry.npm.taobao.org/inquirer/download/inquirer-6.5.1.tgz#8bfb7a5ac02dac6ff641ac4c5ff17da112fcdb42" + integrity sha1-i/t6WsAtrG/2QaxMX/F9oRL820I= + dependencies: + ansi-escapes "^4.2.1" + chalk "^2.4.2" + cli-cursor "^3.1.0" + cli-width "^2.0.0" + external-editor "^3.0.3" + figures "^3.0.0" + lodash "^4.17.15" + mute-stream "0.0.8" + run-async "^2.2.0" + rxjs "^6.4.0" + string-width "^4.1.0" + strip-ansi "^5.1.0" + through "^2.3.6" + interpret@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296" @@ -3378,6 +3675,11 @@ is-fullwidth-code-point@^2.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0= + is-glob@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" @@ -3421,6 +3723,11 @@ is-plain-object@^2.0.3, is-plain-object@^2.0.4: dependencies: isobject "^3.0.1" +is-promise@^2.1.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/is-promise/download/is-promise-2.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-promise%2Fdownload%2Fis-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" + integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o= + is-regex@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" @@ -3570,6 +3877,11 @@ json-schema@0.2.3: resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.npm.taobao.org/json-stable-stringify-without-jsonify/download/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" @@ -3679,7 +3991,7 @@ less@3.9.0: request "^2.83.0" source-map "~0.6.0" -levn@~0.3.0: +levn@^0.3.0, levn@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= @@ -3740,6 +4052,14 @@ loader-utils@^0.2.11: json5 "^0.5.0" object-assign "^4.0.1" +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/locate-path/download/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.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" @@ -3758,7 +4078,7 @@ lodash.uniq@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= -lodash@^4.0.0, lodash@^4.2.0, lodash@~4.17.10: +lodash@^4.0.0, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.2.0, lodash@~4.17.10: version "4.17.15" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== @@ -3965,7 +4285,7 @@ mime@^2.4.4: resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.4.tgz#bd7b91135fc6b01cde3e9bae33d659b63d8857e5" integrity sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA== -mimic-fn@^2.0.0: +mimic-fn@^2.0.0, mimic-fn@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== @@ -4099,6 +4419,11 @@ move-concurrently@^1.0.1: rimraf "^2.5.4" run-queue "^1.0.3" +mri@^1.1.0: + version "1.1.4" + resolved "https://registry.npm.taobao.org/mri/download/mri-1.1.4.tgz#7cb1dd1b9b40905f1fac053abe25b6720f44744a" + integrity sha1-fLHdG5tAkF8frAU6viW2cg9EdEo= + ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" @@ -4114,6 +4439,21 @@ ms@^2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== +multimatch@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/multimatch/download/multimatch-3.0.0.tgz#0e2534cc6bc238d9ab67e1b9cd5fcd85a6dbf70b" + integrity sha1-DiU0zGvCONmrZ+G5zV/Nhabb9ws= + dependencies: + array-differ "^2.0.3" + array-union "^1.0.2" + arrify "^1.0.1" + minimatch "^3.0.4" + +mute-stream@0.0.8: + version "0.0.8" + resolved "https://registry.npm.taobao.org/mute-stream/download/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" + integrity sha1-FjDEKyJR/4HiooPelqVJfqkuXg0= + nan@^2.12.1, nan@^2.13.2: version "2.14.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" @@ -4136,6 +4476,11 @@ nanomatch@^1.2.9: snapdragon "^0.8.1" to-regex "^3.0.1" +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.npm.taobao.org/natural-compare/download/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + needle@^2.2.1: version "2.4.0" resolved "https://registry.yarnpkg.com/needle/-/needle-2.4.0.tgz#6833e74975c444642590e15a750288c5f939b57c" @@ -4467,7 +4812,14 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0: dependencies: wrappy "1" -optionator@^0.8.1: +onetime@^5.1.0: + version "5.1.0" + resolved "https://registry.npm.taobao.org/onetime/download/onetime-5.1.0.tgz#fff0f3c91617fe62bb50189636e99ac8a6df7be5" + integrity sha1-//DzyRYX/mK7UBiWNumayKbfe+U= + dependencies: + mimic-fn "^2.1.0" + +optionator@^0.8.1, optionator@^0.8.2: version "0.8.2" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" integrity sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q= @@ -4505,7 +4857,7 @@ os-locale@^3.0.0, os-locale@^3.1.0: lcid "^2.0.0" mem "^4.0.0" -os-tmpdir@^1.0.0: +os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= @@ -4543,6 +4895,13 @@ p-is-promise@^2.0.0: resolved "https://registry.yarnpkg.com/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.npm.taobao.org/p-limit/download/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + integrity sha1-uGvV8MJWkJEcdZD8v8IBDVSzzLg= + dependencies: + p-try "^1.0.0" + p-limit@^2.0.0, p-limit@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.0.tgz#417c9941e6027a9abcba5092dd2904e255b5fbc2" @@ -4550,6 +4909,13 @@ p-limit@^2.0.0, p-limit@^2.2.0: dependencies: p-try "^2.0.0" +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/p-locate/download/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.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" @@ -4564,6 +4930,11 @@ p-timeout@^2.0.1: dependencies: p-finally "^1.0.0" +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/p-try/download/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= + p-try@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" @@ -4583,6 +4954,13 @@ parallel-transform@^1.1.0: inherits "^2.0.3" readable-stream "^2.1.5" +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.npm.taobao.org/parent-module/download/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha1-aR0nCeeMefrjoVZiJFLQB2LKqqI= + dependencies: + callsites "^3.0.0" + parse-asn1@^5.0.0: version "5.1.4" resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.4.tgz#37f6628f823fbdeb2273b4d540434a22f3ef1fcc" @@ -5116,11 +5494,42 @@ prepend-http@^2.0.0: resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= +prettier-check@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/prettier-check/download/prettier-check-2.0.0.tgz#edd086ee12d270579233ccb136a16e6afcfba1ae" + integrity sha1-7dCG7hLScFeSM8yxNqFuavz7oa4= + dependencies: + execa "^0.6.0" + +prettier-linter-helpers@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/prettier-linter-helpers/download/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" + integrity sha1-0j1B/hN1ZG3i0BBNNFSjAIgCz3s= + dependencies: + fast-diff "^1.1.2" + prettier@1.16.3: version "1.16.3" resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.16.3.tgz#8c62168453badef702f34b45b6ee899574a6a65d" integrity sha512-kn/GU6SMRYPxUakNXhpP0EedT/KmaPzr0H5lIsDogrykbaxOpOfAFfk5XA7DZrJyMAv1wlMV3CPcZruGXVVUZw== +prettier@^1.18.2: + version "1.18.2" + resolved "https://registry.npm.taobao.org/prettier/download/prettier-1.18.2.tgz#6823e7c5900017b4bd3acf46fe9ac4b4d7bda9ea" + integrity sha1-aCPnxZAAF7S9Os9G/prEtNe9qeo= + +pretty-quick@^1.11.1: + version "1.11.1" + resolved "https://registry.npm.taobao.org/pretty-quick/download/pretty-quick-1.11.1.tgz#462ffa2b93d24c05b7a0c3a001e08601a0c55ee4" + integrity sha1-Ri/6K5PSTAW3oMOgAeCGAaDFXuQ= + dependencies: + chalk "^2.3.0" + execa "^0.8.0" + find-up "^2.1.0" + ignore "^3.3.7" + mri "^1.1.0" + multimatch "^3.0.0" + private@^0.1.6: version "0.1.8" resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" @@ -5136,6 +5545,11 @@ process@^0.11.10: resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= +progress@^2.0.0: + version "2.0.3" + resolved "https://registry.npm.taobao.org/progress/download/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha1-foz42PW48jnBvGi+tOt4Vn1XLvg= + promise-inflight@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" @@ -5370,6 +5784,11 @@ regexp-tree@^0.1.6: resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.11.tgz#c9c7f00fcf722e0a56c7390983a7a63dd6c272f3" integrity sha512-7/l/DgapVVDzZobwMCCgMlqiqyLFJ0cduo/j+3BcDJIB+yJdsYCfKuI3l/04NV+H/rfNRdPIDbXNZHM9XvQatg== +regexpp@^2.0.1: + version "2.0.1" + resolved "https://registry.npm.taobao.org/regexpp/download/regexpp-2.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexpp%2Fdownload%2Fregexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" + integrity sha1-jRnTHPYySCtYkEn4KB+T28uk0H8= + regexpu-core@^4.5.4: version "4.5.4" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.5.4.tgz#080d9d02289aa87fe1667a4f5136bc98a6aebaae" @@ -5482,6 +5901,11 @@ resolve-from@^3.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" integrity sha1-six699nWiBvItuZTM17rywoYh0g= +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.npm.taobao.org/resolve-from/download/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha1-SrzYUq0y3Xuqv+m0DgCjbbXzkuY= + resolve-url@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" @@ -5501,6 +5925,14 @@ responselike@1.0.2: dependencies: lowercase-keys "^1.0.0" +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.npm.taobao.org/restore-cursor/download/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + integrity sha1-OfZ8VLOnpYzqUjbZXPADQjljH34= + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + ret@~0.1.10: version "0.1.15" resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" @@ -5516,7 +5948,7 @@ rgba-regex@^1.0.0: resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= -rimraf@2, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.3: +rimraf@2, rimraf@2.6.3, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.3: version "2.6.3" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== @@ -5544,6 +5976,13 @@ rss-parser@3.7.2: entities "^1.1.1" xml2js "^0.4.19" +run-async@^2.2.0: + version "2.3.0" + resolved "https://registry.npm.taobao.org/run-async/download/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" + integrity sha1-A3GrSuC91yDUFm19/aZP96RFpsA= + dependencies: + is-promise "^2.1.0" + run-queue@^1.0.0, run-queue@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" @@ -5551,6 +5990,13 @@ run-queue@^1.0.0, run-queue@^1.0.3: dependencies: aproba "^1.1.1" +rxjs@^6.4.0: + version "6.5.2" + resolved "https://registry.npm.taobao.org/rxjs/download/rxjs-6.5.2.tgz#2e35ce815cd46d84d02a209fb4e5921e051dbec7" + integrity sha1-LjXOgVzUbYTQKiCftOWSHgUdvsc= + dependencies: + tslib "^1.9.0" + safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2: version "5.2.0" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" @@ -5639,6 +6085,11 @@ semver@^6.1.1: resolved "https://registry.yarnpkg.com/semver/-/semver-6.2.0.tgz#4d813d9590aaf8a9192693d6c85b9344de5901db" integrity sha512-jdFC1VdUGT/2Scgbimf7FSx9iJLXoqfglSF+gJeuNWVpiE37OIbc1jywR/GJyFdz3mnkz2/id0L0J/cr0izR5A== +semver@^6.1.2: + version "6.3.0" + resolved "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0= + semver@~5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" @@ -5706,7 +6157,7 @@ shell-quote@^1.6.1: array-reduce "~0.0.0" jsonify "~0.0.0" -signal-exit@^3.0.0: +signal-exit@^3.0.0, signal-exit@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= @@ -5728,6 +6179,15 @@ slash@^1.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= +slice-ansi@^2.1.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/slice-ansi/download/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" + integrity sha1-ys12k0YaY3pXiNkqfdT7oGjoFjY= + dependencies: + ansi-styles "^3.2.0" + astral-regex "^1.0.0" + is-fullwidth-code-point "^2.0.0" + snapdragon-node@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" @@ -5961,6 +6421,15 @@ string-width@^3.0.0, string-width@^3.1.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" +string-width@^4.1.0: + version "4.1.0" + resolved "https://registry.npm.taobao.org/string-width/download/string-width-4.1.0.tgz#ba846d1daa97c3c596155308063e075ed1c99aff" + integrity sha1-uoRtHaqXw8WWFVMIBj4HXtHJmv8= + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^5.2.0" + string.prototype.padend@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/string.prototype.padend/-/string.prototype.padend-3.0.0.tgz#f3aaef7c1719f170c5eab1c32bf780d96e21f2f0" @@ -6034,6 +6503,11 @@ strip-json-comments@2.0.1, strip-json-comments@~2.0.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= +strip-json-comments@^3.0.1: + version "3.0.1" + resolved "https://registry.npm.taobao.org/strip-json-comments/download/strip-json-comments-3.0.1.tgz#85713975a91fb87bf1b305cca77395e40d2a64a7" + integrity sha1-hXE5dakfuHvxswXMp3OV5A0qZKc= + stylehacks@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" @@ -6097,6 +6571,16 @@ svgo@^1.0.0: unquote "~1.1.1" util.promisify "~1.0.0" +table@^5.2.3: + version "5.4.6" + resolved "https://registry.npm.taobao.org/table/download/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" + integrity sha1-EpLRlQDOP4YFOwXw6Ofko7shB54= + dependencies: + ajv "^6.10.2" + lodash "^4.17.14" + slice-ansi "^2.1.0" + string-width "^3.0.0" + tapable@^1.0.0, tapable@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" @@ -6156,6 +6640,11 @@ terser@^4.1.2: source-map "~0.6.1" source-map-support "~0.5.12" +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.npm.taobao.org/text-table/download/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + throttle-debounce@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/throttle-debounce/-/throttle-debounce-1.1.0.tgz#51853da37be68a155cb6e827b3514a3c422e89cd" @@ -6169,6 +6658,11 @@ through2@^2.0.0: readable-stream "~2.3.6" xtend "~4.0.1" +through@^2.3.6: + version "2.3.8" + resolved "https://registry.npm.taobao.org/through/download/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= + timed-out@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" @@ -6191,6 +6685,13 @@ tiny-emitter@^2.0.0: resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423" integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q== +tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.npm.taobao.org/tmp/download/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha1-bTQzWIl2jSGyvNoKonfO07G/rfk= + dependencies: + os-tmpdir "~1.0.2" + to-arraybuffer@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" @@ -6285,6 +6786,11 @@ type-detect@^4.0.0, type-detect@^4.0.5: resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== +type-fest@^0.5.2: + version "0.5.2" + resolved "https://registry.npm.taobao.org/type-fest/download/type-fest-0.5.2.tgz#d6ef42a0356c6cd45f49485c3b6281fc148e48a2" + integrity sha1-1u9CoDVsbNRfSUhcO2KB/BSOSKI= + typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" @@ -6448,6 +6954,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.npm.taobao.org/v8-compile-cache/download/v8-compile-cache-2.1.0.tgz#e14de37b31a6d194f5690d67efc4e7f6fc6ab30e" + integrity sha1-4U3jezGm0ZT1aQ1n78Tn9vxqsw4= + validate-npm-package-license@^3.0.1: version "3.0.4" resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" @@ -6651,6 +7162,13 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= +write@1.0.3: + version "1.0.3" + resolved "https://registry.npm.taobao.org/write/download/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" + integrity sha1-CADhRSO5I6OH5BUSPIZWFqrg9cM= + dependencies: + mkdirp "^0.5.1" + xml2js@^0.4.19: version "0.4.19" resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.19.tgz#686c20f213209e94abf0d1bcf1efaa291c7827a7"