From 83276a328fff5b86074f6b4534339fa9d10d4beb Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Fri, 13 Nov 2020 14:36:00 +0800 Subject: [PATCH 01/51] =?UTF-8?q?perf:=20=E6=94=AF=E6=8C=81=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/gui/src/bridge/index.js | 4 ++ packages/gui/src/view/api.js | 19 +++++---- packages/gui/src/view/mixins/plugin.js | 7 ++-- packages/gui/src/view/modules/error/index.js | 4 +- packages/gui/src/view/modules/update/index.js | 8 ++-- packages/gui/src/view/pages/index.vue | 4 +- packages/gui/src/view/pages/server.vue | 6 +++ packages/gui/src/view/status.js | 2 +- packages/mitmproxy/src/index.js | 26 ++++++------ packages/mitmproxy/src/lib/dns/base.js | 8 ++-- packages/mitmproxy/src/lib/dns/https.js | 10 ++--- .../src/lib/interceptor/impl/abort.js | 22 +++++----- .../src/lib/interceptor/impl/proxy.js | 39 +++++++++--------- .../src/lib/interceptor/impl/redirect.js | 33 ++++++++------- .../mitmproxy/src/lib/interceptor/index.js | 5 ++- packages/mitmproxy/src/lib/proxy/bin/index.js | 32 --------------- .../mitmproxy/src/lib/proxy/common/util.js | 4 +- .../proxy/mitmproxy/createConnectHandler.js | 13 +++--- .../proxy/mitmproxy/createFakeServerCenter.js | 4 +- .../proxy/mitmproxy/createRequestHandler.js | 40 ++++++++++++------- .../proxy/mitmproxy/createUpgradeHandler.js | 11 +++-- .../src/lib/proxy/mitmproxy/index.js | 14 +++---- .../src/lib/proxy/tls/FakeServersCenter.js | 12 +++--- packages/mitmproxy/src/options.js | 5 ++- packages/mitmproxy/src/utils/util.js | 3 +- packages/mitmproxy/src/utils/util.log.js | 8 ++++ 26 files changed, 178 insertions(+), 165 deletions(-) delete mode 100644 packages/mitmproxy/src/lib/proxy/bin/index.js create mode 100644 packages/mitmproxy/src/utils/util.log.js diff --git a/packages/gui/src/bridge/index.js b/packages/gui/src/bridge/index.js index abe5d02a..91a528f5 100644 --- a/packages/gui/src/bridge/index.js +++ b/packages/gui/src/bridge/index.js @@ -31,6 +31,9 @@ const localApi = { return { version: pk.version } + }, + getConfigDir () { + return getDefaultConfigBasePath() } }, /** @@ -81,6 +84,7 @@ const localApi = { */ save (newConfig) { // 对比默认config的异同 + DevSidecar.api.config.set(newConfig) const defConfig = DevSidecar.api.config.getDefault() const saveConfig = doMerge(defConfig, newConfig) fs.writeFileSync(_getConfigPath(), JSON5.stringify(saveConfig, null, 2)) diff --git a/packages/gui/src/view/api.js b/packages/gui/src/view/api.js index f4db65a6..204185cf 100644 --- a/packages/gui/src/view/api.js +++ b/packages/gui/src/view/api.js @@ -17,13 +17,18 @@ const bindApi = (api, param1) => { }) } const apiObj = { - on (channel, callback) { - ipcRenderer.on(channel, callback) - }, - invoke, - send, - openExternal (href) { - shell.openExternal(href) + ipc: { + on (channel, callback) { + ipcRenderer.on(channel, callback) + }, + invoke, + send, + openExternal (href) { + shell.openExternal(href) + }, + openPath (file) { + shell.openPath(file) + } } } let inited = false diff --git a/packages/gui/src/view/mixins/plugin.js b/packages/gui/src/view/mixins/plugin.js index 74aa0314..e74d4a4f 100644 --- a/packages/gui/src/view/mixins/plugin.js +++ b/packages/gui/src/view/mixins/plugin.js @@ -39,13 +39,14 @@ export default { this.applyLoading = true await this.applyBefore() await this.saveConfig() - if (this.applyAfter) { - await this.applyAfter() - } + await this.applyAfter() this.applyLoading = false }, async applyBefore () { + }, + async applyAfter () { + }, resetDefault () { const key = this.getKey() diff --git a/packages/gui/src/view/modules/error/index.js b/packages/gui/src/view/modules/error/index.js index d8fd718c..a73354d6 100644 --- a/packages/gui/src/view/modules/error/index.js +++ b/packages/gui/src/view/modules/error/index.js @@ -1,12 +1,12 @@ function install (app, api) { - api.on('error.core', (event, message) => { + api.ipc.on('error.core', (event, message) => { console.error('view on error', message) const key = message.key if (key === 'server') { handleServerStartError(message, message.error, app, api) } }) - api.on('error', (event, message) => { + api.ipc.on('error', (event, message) => { console.error('error', event, message) }) } diff --git a/packages/gui/src/view/modules/update/index.js b/packages/gui/src/view/modules/update/index.js index 28f6fed4..376911ea 100644 --- a/packages/gui/src/view/modules/update/index.js +++ b/packages/gui/src/view/modules/update/index.js @@ -1,6 +1,6 @@ let updateParams = { } function install (app, api) { - api.on('update', (event, message) => { + api.ipc.on('update', (event, message) => { console.log('on message', event, message) handleUpdateMessage(message, app) }) @@ -8,13 +8,13 @@ function install (app, api) { api.update = { checkForUpdate (params) { updateParams = params || { fromUser: false, autoDownload: true, progress: 0 } - api.send('update', { key: 'checkForUpdate' }) + api.ipc.send('update', { key: 'checkForUpdate' }) }, downloadUpdate () { - api.send('update', { key: 'downloadUpdate' }) + api.ipc.send('update', { key: 'downloadUpdate' }) }, doUpdateNow () { - api.send('update', { key: 'doUpdateNow' }) + api.ipc.send('update', { key: 'doUpdateNow' }) } } diff --git a/packages/gui/src/view/pages/index.vue b/packages/gui/src/view/pages/index.vue index 4ed70549..95b78d44 100644 --- a/packages/gui/src/view/pages/index.vue +++ b/packages/gui/src/view/pages/index.vue @@ -45,7 +45,7 @@
如果它解决了你的问题,请不要吝啬你的star哟!
star - GitHub stars + GitHub stars
@@ -233,7 +233,7 @@ export default { this.$api.update.checkForUpdate(this.update) }, openExternal (url) { - this.$api.openExternal(url) + this.$api.ipc.openExternal(url) } } } diff --git a/packages/gui/src/view/pages/server.vue b/packages/gui/src/view/pages/server.vue index 5b9e92eb..2bd41921 100644 --- a/packages/gui/src/view/pages/server.vue +++ b/packages/gui/src/view/pages/server.vue @@ -25,6 +25,8 @@ 当前未启动 + + 日志 @@ -132,6 +134,10 @@ export default { }, addDnsMapping () { this.dnsMappings.unshift({ key: '', value: 'usa' }) + }, + async openLog () { + const dir = await this.$api.info.getConfigDir() + this.$api.ipc.openPath(dir + '/logs/server.log') } } } diff --git a/packages/gui/src/view/status.js b/packages/gui/src/view/status.js index b54040f3..47942f62 100644 --- a/packages/gui/src/view/status.js +++ b/packages/gui/src/view/status.js @@ -12,7 +12,7 @@ const status = { } } async function install (api) { - api.on('status', (event, message) => { + api.ipc.on('status', (event, message) => { console.log('view on status', event, message) const value = message.value const key = message.key diff --git a/packages/mitmproxy/src/index.js b/packages/mitmproxy/src/index.js index 5a34f382..f19df554 100644 --- a/packages/mitmproxy/src/index.js +++ b/packages/mitmproxy/src/index.js @@ -1,7 +1,7 @@ const mitmproxy = require('./lib/proxy') const ProxyOptions = require('./options') const config = require('./lib/proxy/common/config') - +const log = require('./utils/util.log') function fireError (e) { process.send({ type: 'error', event: e }) } @@ -13,28 +13,28 @@ let server function registerProcessListener () { process.on('message', function (msg) { - console.log('child get msg: ' + JSON.stringify(msg)) + log.info('child get msg: ' + JSON.stringify(msg)) if (msg.type === 'action') { api[msg.event.key](msg.event.params) } }) process.on('SIGINT', () => { - console.log('on sigint : closed ') + log.info('on sigint : closed ') process.exit(0) }) // 避免异常崩溃 process.on('uncaughtException', function (err) { if (err.code === 'ECONNABORTED') { - // console.error(err.errno) + // log.error(err.errno) return } - console.error('uncaughtException:', err) + log.error('uncaughtException:', err) }) process.on('unhandledRejection', (reason, p) => { - console.log('Unhandled Rejection at: Promise', p, 'reason:', reason) + log.info('Unhandled Rejection at: Promise', p, 'reason:', reason) // application specific logging, throwing an error, or other logic here }) } @@ -49,17 +49,17 @@ const api = { } const newServer = mitmproxy.createProxy(proxyOptions, () => { fireStatus(true) - console.log('代理服务已启动:127.0.0.1:' + proxyOptions.port) + log.info('代理服务已启动:127.0.0.1:' + proxyOptions.port) }) newServer.on('close', () => { - console.log('server will closed ') + log.info('server will closed ') if (server === newServer) { server = null fireStatus(false) } }) newServer.on('error', (e) => { - console.log('server error', e) + log.info('server error', e) // newServer = null fireError(e) }) @@ -72,20 +72,20 @@ const api = { if (server) { server.close((err) => { if (err) { - console.log('close error', err, ',', err.code, ',', err.message, ',', err.errno) + log.info('close error', err, ',', err.code, ',', err.message, ',', err.errno) if (err.code === 'ERR_SERVER_NOT_RUNNING') { - console.log('代理服务关闭成功') + log.info('代理服务关闭成功') resolve() return } reject(err) } else { - console.log('代理服务关闭成功') + log.info('代理服务关闭成功') resolve() } }) } else { - console.log('server is null') + log.info('server is null') fireStatus(false) resolve() } diff --git a/packages/mitmproxy/src/lib/dns/base.js b/packages/mitmproxy/src/lib/dns/base.js index 5a70932c..5b27ce64 100644 --- a/packages/mitmproxy/src/lib/dns/base.js +++ b/packages/mitmproxy/src/lib/dns/base.js @@ -1,8 +1,6 @@ const LRU = require('lru-cache') // const { isIP } = require('validator') -const getLogger = require('../utils/logger') - -const logger = getLogger('dns') +const log = require('../../utils/util.log') const cacheSize = 1024 // eslint-disable-next-line no-unused-vars // function _isIP (v) { @@ -104,11 +102,11 @@ module.exports = class BaseDNS { ipCache.setIpList(ipList) - logger.debug(`[DNS] ${hostname} -> ${ipCache.ip} (${new Date() - t} ms)`) + log.info(`[DNS] ${hostname} -> ${ipCache.ip} (${new Date() - t} ms)`) return ipCache.ip } catch (error) { - logger.debug(`[DNS] cannot resolve hostname ${hostname} (${error})`) + log.error(`[DNS] cannot resolve hostname ${hostname} (${error})`) return hostname } } diff --git a/packages/mitmproxy/src/lib/dns/https.js b/packages/mitmproxy/src/lib/dns/https.js index f11b7071..148f1966 100644 --- a/packages/mitmproxy/src/lib/dns/https.js +++ b/packages/mitmproxy/src/lib/dns/https.js @@ -1,7 +1,7 @@ const { promisify } = require('util') const doh = require('dns-over-http') const BaseDNS = require('./base') - +const log = require('../../utils/util.log') const dohQueryAsync = promisify(doh.query) module.exports = class DNSOverHTTPS extends BaseDNS { @@ -15,18 +15,18 @@ module.exports = class DNSOverHTTPS extends BaseDNS { const result = await dohQueryAsync({ url: this.dnsServer }, [{ type: 'A', name: hostname }]) if (result.answers.length === 0) { // 说明没有获取到ip - console.log('该域名没有ip地址解析', hostname) + log.info('该域名没有ip地址解析', hostname) return [] } const ret = result.answers.filter(item => { return item.type === 'A' }).map(item => { return item.data }) if (ret.length === 0) { - console.log('该域名没有ipv4地址解析', hostname) + log.info('该域名没有ipv4地址解析', hostname) } else { - console.log('获取到域名地址:', hostname, JSON.stringify(ret)) + log.info('获取到域名地址:', hostname, JSON.stringify(ret)) } return ret } catch (err) { - console.log('dns query error', hostname, err) + log.info('dns query error', hostname, err.message) return [] } } diff --git a/packages/mitmproxy/src/lib/interceptor/impl/abort.js b/packages/mitmproxy/src/lib/interceptor/impl/abort.js index b5fb1cef..2b0ade3e 100644 --- a/packages/mitmproxy/src/lib/interceptor/impl/abort.js +++ b/packages/mitmproxy/src/lib/interceptor/impl/abort.js @@ -1,11 +1,15 @@ -module.exports = { - requestInterceptor (interceptOpt, rOptions, req, res, ssl) { - console.log('abort:', rOptions.hostname, req.url) - res.writeHead(403) - res.write('DevSidecar 403: \n\n request abort, this request is matched by abort intercept.\n\n 因配置abort拦截器,本请求将取消') - res.end() - }, - is (interceptOpt) { - return !!interceptOpt.abort + +module.exports = function createIntercept (context) { + const { log } = context + return { + requestInterceptor (interceptOpt, rOptions, req, res, ssl) { + log.info('abort:', rOptions.hostname, req.url) + res.writeHead(403) + res.write('DevSidecar 403: \n\n request abort, this request is matched by abort intercept.\n\n 因配置abort拦截器,本请求将取消') + res.end() + }, + is (interceptOpt) { + return !!interceptOpt.abort + } } } diff --git a/packages/mitmproxy/src/lib/interceptor/impl/proxy.js b/packages/mitmproxy/src/lib/interceptor/impl/proxy.js index 31fe26b7..6fac9371 100644 --- a/packages/mitmproxy/src/lib/interceptor/impl/proxy.js +++ b/packages/mitmproxy/src/lib/interceptor/impl/proxy.js @@ -1,22 +1,25 @@ const url = require('url') -module.exports = { - requestInterceptor (interceptOpt, rOptions, req, res, ssl, next) { - const proxyTarget = interceptOpt.proxy - // const backup = interceptOpt.backup - const proxy = proxyTarget.indexOf('http') === 0 ? proxyTarget : rOptions.protocol + '//' + proxyTarget - // eslint-disable-next-line node/no-deprecated-api - const URL = url.parse(proxy) - rOptions.protocol = URL.protocol - rOptions.hostname = URL.host - rOptions.host = URL.host - rOptions.headers.host = URL.host - if (URL.port == null) { - rOptions.port = rOptions.protocol === 'https:' ? 443 : 80 - } +module.exports = function createInterceptor (context) { + const { log } = context + return { + requestInterceptor (interceptOpt, rOptions, req, res, ssl, next) { + const proxyTarget = interceptOpt.proxy + // const backup = interceptOpt.backup + const proxy = proxyTarget.indexOf('http') === 0 ? proxyTarget : rOptions.protocol + '//' + proxyTarget + // eslint-disable-next-line node/no-deprecated-api + const URL = url.parse(proxy) + rOptions.protocol = URL.protocol + rOptions.hostname = URL.host + rOptions.host = URL.host + rOptions.headers.host = URL.host + if (URL.port == null) { + rOptions.port = rOptions.protocol === 'https:' ? 443 : 80 + } - console.log('proxy:', rOptions.hostname, req.url, proxyTarget) - }, - is (interceptOpt) { - return !!interceptOpt.proxy + log.info('proxy:', rOptions.hostname, req.url, proxyTarget) + }, + is (interceptOpt) { + return !!interceptOpt.proxy + } } } diff --git a/packages/mitmproxy/src/lib/interceptor/impl/redirect.js b/packages/mitmproxy/src/lib/interceptor/impl/redirect.js index e8e3ef61..07d7af84 100644 --- a/packages/mitmproxy/src/lib/interceptor/impl/redirect.js +++ b/packages/mitmproxy/src/lib/interceptor/impl/redirect.js @@ -1,18 +1,21 @@ -module.exports = { - requestInterceptor (interceptOpt, rOptions, req, res, ssl) { - const url = req.url - let redirect - if (typeof interceptOpt.redirect === 'string') { - redirect = rOptions.protocol + '//' + interceptOpt.redirect + url - } else { - redirect = interceptOpt.redirect(url) +module.exports = function createInterceptor (context) { + const { log } = context + return { + requestInterceptor (interceptOpt, rOptions, req, res, ssl) { + const url = req.url + let redirect + if (typeof interceptOpt.redirect === 'string') { + redirect = rOptions.protocol + '//' + interceptOpt.redirect + url + } else { + redirect = interceptOpt.redirect(url) + } + log.info('请求重定向:', rOptions.hostname, url, redirect) + res.writeHead(302, { Location: redirect }) + res.end() + return true + }, + is (interceptOpt) { + return interceptOpt.redirect // 如果配置中有redirect,那么这个配置是需要redirect拦截的 } - console.log('请求重定向:', rOptions.hostname, url, redirect) - res.writeHead(302, { Location: redirect }) - res.end() - return true - }, - is (interceptOpt) { - return interceptOpt.redirect // 如果配置中有redirect,那么这个配置是需要redirect拦截的 } } diff --git a/packages/mitmproxy/src/lib/interceptor/index.js b/packages/mitmproxy/src/lib/interceptor/index.js index 6b10e5bb..f072b075 100644 --- a/packages/mitmproxy/src/lib/interceptor/index.js +++ b/packages/mitmproxy/src/lib/interceptor/index.js @@ -1,7 +1,8 @@ const proxy = require('./impl/proxy') const redirect = require('./impl/redirect') const abort = require('./impl/abort') - -const modules = [proxy, redirect, abort] +const log = require('../../utils/util.log') +const context = { log } +const modules = [proxy(context), redirect(context), abort(context)] module.exports = modules diff --git a/packages/mitmproxy/src/lib/proxy/bin/index.js b/packages/mitmproxy/src/lib/proxy/bin/index.js deleted file mode 100644 index a6217de5..00000000 --- a/packages/mitmproxy/src/lib/proxy/bin/index.js +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/env node -require('babel-polyfill') -const mitmproxy = require('../mitmproxy') -const program = require('commander') -const packageJson = require('../../package.json') -// const tlsUtils = require('../tls/tlsUtils') -const fs = require('fs') -const path = require('path') -const colors = require('colors') - -fs.existsSync = fs.existsSync || path.existsSync - -program - .version(packageJson.version) - .option('-c, --config [value]', 'config file path') - .parse(process.argv) - -console.log(program.config) - -const configPath = path.resolve(program.config) - -if (fs.existsSync(configPath)) { - const configObject = require(configPath) - - if (typeof configObject !== 'object') { - console.error(colors.red(`Config Error in ${configPath}`)) - } else { - mitmproxy.createProxy(configObject) - } -} else { - console.error(colors.red(`Can not find \`config file\` file: ${configPath}`)) -} diff --git a/packages/mitmproxy/src/lib/proxy/common/util.js b/packages/mitmproxy/src/lib/proxy/common/util.js index 6fa2b769..16b686a6 100644 --- a/packages/mitmproxy/src/lib/proxy/common/util.js +++ b/packages/mitmproxy/src/lib/proxy/common/util.js @@ -2,7 +2,7 @@ const url = require('url') const Agent = require('./ProxyHttpAgent') const HttpsAgent = require('./ProxyHttpsAgent') const tunnelAgent = require('tunnel-agent') - +const log = require('../../../utils/util.log') const util = exports const httpsAgent = new HttpsAgent({ keepAlive: true, @@ -34,7 +34,7 @@ util.getOptionsFormRequest = (req, ssl, externalProxy = null) => { try { externalProxyUrl = externalProxy(req, ssl) } catch (e) { - console.error('externalProxy', e) + log.error('externalProxy', e) } } } diff --git a/packages/mitmproxy/src/lib/proxy/mitmproxy/createConnectHandler.js b/packages/mitmproxy/src/lib/proxy/mitmproxy/createConnectHandler.js index d2a13fc9..db13d452 100644 --- a/packages/mitmproxy/src/lib/proxy/mitmproxy/createConnectHandler.js +++ b/packages/mitmproxy/src/lib/proxy/mitmproxy/createConnectHandler.js @@ -1,5 +1,6 @@ const net = require('net') const url = require('url') +const log = require('../../../utils/util.log') // const colors = require('colors') const DnsUtil = require('../../dns/index') const localIP = '127.0.0.1' @@ -15,7 +16,7 @@ module.exports = function createConnectHandler (sslConnectInterceptor, fakeServe fakeServerCenter.getServerPromise(hostname, srvUrl.port).then((serverObj) => { connect(req, cltSocket, head, localIP, serverObj.port) }, (e) => { - console.error('getServerPromise', e) + log.error('getServerPromise', e) }) } else { connect(req, cltSocket, head, hostname, srvUrl.port, dnsConfig) @@ -25,7 +26,7 @@ module.exports = function createConnectHandler (sslConnectInterceptor, fakeServe function connect (req, cltSocket, head, hostname, port, dnsConfig) { // tunneling https - // console.log('connect:', hostname, port) + // log.info('connect:', hostname, port) const start = new Date().getTime() let isDnsIntercept = null try { @@ -62,21 +63,21 @@ function connect (req, cltSocket, head, hostname, port, dnsConfig) { proxySocket.on('timeout', () => { const end = new Date().getTime() - console.log('代理socket timeout:', hostname, port, (end - start) + 'ms') + log.info('代理socket timeout:', hostname, port, (end - start) + 'ms') }) proxySocket.on('error', (e) => { // 连接失败,可能被GFW拦截,或者服务端拥挤 const end = new Date().getTime() - console.error('代理连接失败:', e.message, hostname, port, (end - start) + 'ms') + log.error('代理连接失败:', e.message, hostname, port, (end - start) + 'ms') cltSocket.destroy() if (isDnsIntercept) { const { dns, ip, hostname } = isDnsIntercept dns.count(hostname, ip, true) - console.error('记录ip失败次数,用于优选ip:', hostname, ip) + log.error('记录ip失败次数,用于优选ip:', hostname, ip) } }) return proxySocket } catch (error) { - console.log('connect err', error) + log.error('connect err', error) } } diff --git a/packages/mitmproxy/src/lib/proxy/mitmproxy/createFakeServerCenter.js b/packages/mitmproxy/src/lib/proxy/mitmproxy/createFakeServerCenter.js index 982c745d..96ef8f9b 100644 --- a/packages/mitmproxy/src/lib/proxy/mitmproxy/createFakeServerCenter.js +++ b/packages/mitmproxy/src/lib/proxy/mitmproxy/createFakeServerCenter.js @@ -2,7 +2,7 @@ const fs = require('fs') const forge = require('node-forge') const FakeServersCenter = require('../tls/FakeServersCenter') const colors = require('colors') - +const log = require('../../../utils/util.log') module.exports = function createFakeServerCenter ({ caCertPath, caKeyPath, @@ -20,7 +20,7 @@ module.exports = function createFakeServerCenter ({ caCert = forge.pki.certificateFromPem(caCertPem) caKey = forge.pki.privateKeyFromPem(caKeyPem) } catch (e) { - console.log(colors.red('Can not find `CA certificate` or `CA key`.'), e) + log.info(colors.red('Can not find `CA certificate` or `CA key`.'), e) process.exit(1) } diff --git a/packages/mitmproxy/src/lib/proxy/mitmproxy/createRequestHandler.js b/packages/mitmproxy/src/lib/proxy/mitmproxy/createRequestHandler.js index 4c2c293e..cd16eb03 100644 --- a/packages/mitmproxy/src/lib/proxy/mitmproxy/createRequestHandler.js +++ b/packages/mitmproxy/src/lib/proxy/mitmproxy/createRequestHandler.js @@ -3,7 +3,7 @@ const https = require('https') const commonUtil = require('../common/util') // const upgradeHeader = /(^|,)\s*upgrade\s*($|,)/i const DnsUtil = require('../../dns/index') - +const log = require('../../../utils/util.log') // create requestHandler function module.exports = function createRequestHandler (requestInterceptor, responseInterceptor, middlewares, externalProxy, dnsConfig) { // return @@ -43,7 +43,7 @@ module.exports = function createRequestHandler (requestInterceptor, responseInte // const dns = DnsUtil.hasDnsLookup(dnsConfig, rOptions.host) // if (dns) { // const ip = await dns.lookup(rOptions.host) - // console.log('使用自定义dns:', rOptions.host, ip, dns.dnsServer) + // log.info('使用自定义dns:', rOptions.host, ip, dns.dnsServer) // rOptions.host = ip // } // } @@ -63,7 +63,7 @@ module.exports = function createRequestHandler (requestInterceptor, responseInte function onFree () { const url = `${rOptions.protocol}//${rOptions.hostname}:${rOptions.port}${rOptions.path}` const start = new Date().getTime() - console.log('代理请求:', url, rOptions.method) + log.info('代理请求:', url, rOptions.method) let isDnsIntercept if (dnsConfig) { const dns = DnsUtil.hasDnsLookup(dnsConfig, rOptions.hostname) @@ -80,11 +80,10 @@ module.exports = function createRequestHandler (requestInterceptor, responseInte } } } - proxyReq = (rOptions.protocol === 'https:' ? https : http).request(rOptions, (proxyRes) => { const end = new Date().getTime() if (rOptions.protocol === 'https:') { - console.log('代理请求返回:', url, (end - start) + 'ms') + log.info('代理请求返回:', url, (end - start) + 'ms') } resolve(proxyRes) }) @@ -94,10 +93,15 @@ module.exports = function createRequestHandler (requestInterceptor, responseInte if (isDnsIntercept) { const { dns, ip, hostname } = isDnsIntercept dns.count(hostname, ip, true) - console.error('记录ip失败次数,用于优选ip:', hostname, ip) + log.error('记录ip失败次数,用于优选ip:', hostname, ip) } - console.error('代理请求超时', rOptions.protocol, rOptions.hostname, rOptions.path, (end - start) + 'ms') - reject(new Error(`${rOptions.host}:${rOptions.port}, 代理请求超时`)) + log.error('代理请求超时', rOptions.protocol, rOptions.hostname, rOptions.path, (end - start) + 'ms') + // reject(new Error(`${rOptions.host}:${rOptions.port}, 代理请求超时`)) + proxyReq.end() + proxyReq.destroy() + res.writeHead(408) + res.write('DevSidecar Warning:\n\n 请求超时') + res.end() }) proxyReq.on('error', (e) => { @@ -105,28 +109,34 @@ module.exports = function createRequestHandler (requestInterceptor, responseInte if (isDnsIntercept) { const { dns, ip, hostname } = isDnsIntercept dns.count(hostname, ip, true) - console.error('记录ip失败次数,用于优选ip:', hostname, ip) + log.error('记录ip失败次数,用于优选ip:', hostname, ip) } - console.error('代理请求错误', e.errno, rOptions.hostname, rOptions.path, (end - start) + 'ms', e) + log.error('代理请求错误', e.code, e.message, rOptions.hostname, rOptions.path, (end - start) + 'ms') reject(e) }) proxyReq.on('aborted', () => { - console.error('代理请求被取消', rOptions.hostname, rOptions.path) + log.error('代理请求被取消', rOptions.hostname, rOptions.path) + if (res.finished) { + return + } reject(new Error('代理请求被取消')) }) req.on('aborted', function () { - console.error('请求被取消', rOptions.hostname, rOptions.path) + log.error('请求被取消', rOptions.hostname, rOptions.path) proxyReq.abort() + if (res.finished) { + return + } reject(new Error('请求被取消')) }) req.on('error', function (e, req, res) { - console.error('请求错误:', e.errno, rOptions.hostname, rOptions.path) + log.error('请求错误:', e.errno, rOptions.hostname, rOptions.path) reject(e) }) req.on('timeout', () => { - console.error('请求超时', rOptions.hostname, rOptions.path) + log.error('请求超时', rOptions.hostname, rOptions.path) reject(new Error(`${rOptions.hostname}:${rOptions.port}, 请求超时`)) }) req.pipe(proxyReq) @@ -191,8 +201,8 @@ module.exports = function createRequestHandler (requestInterceptor, responseInte res.writeHead(500) res.write(`DevSidecar Warning:\n\n ${e.toString()}`) res.end() + log.error('request error', e.message) } - console.error('request error', e.message) } ) } diff --git a/packages/mitmproxy/src/lib/proxy/mitmproxy/createUpgradeHandler.js b/packages/mitmproxy/src/lib/proxy/mitmproxy/createUpgradeHandler.js index 601ec7d5..d54c9848 100644 --- a/packages/mitmproxy/src/lib/proxy/mitmproxy/createUpgradeHandler.js +++ b/packages/mitmproxy/src/lib/proxy/mitmproxy/createUpgradeHandler.js @@ -1,7 +1,7 @@ const http = require('http') const https = require('https') const util = require('../common/util') - +const log = require('../../../utils/util.log') // copy from node-http-proxy. ^_^ // create connectHandler function @@ -11,7 +11,7 @@ module.exports = function createUpgradeHandler () { const clientOptions = util.getOptionsFormRequest(req, ssl) const proxyReq = (ssl ? https : http).request(clientOptions) proxyReq.on('error', (e) => { - console.error(e) + log.error('upgradeHandler', e) }) proxyReq.on('response', function (res) { // if upgrade event isn't going to happen, close the socket @@ -20,12 +20,11 @@ module.exports = function createUpgradeHandler () { proxyReq.on('upgrade', function (proxyRes, proxySocket, proxyHead) { proxySocket.on('error', (e) => { - console.log('error-----1111') - console.error(e) + log.error('on upgrade:', e) }) - cltSocket.on('error', function () { - console.log('error-----2222') + cltSocket.on('error', function (e) { + log.error('upgrade socket ', e) proxySocket.end() }) diff --git a/packages/mitmproxy/src/lib/proxy/mitmproxy/index.js b/packages/mitmproxy/src/lib/proxy/mitmproxy/index.js index 5dfd2dec..e7fd38ee 100644 --- a/packages/mitmproxy/src/lib/proxy/mitmproxy/index.js +++ b/packages/mitmproxy/src/lib/proxy/mitmproxy/index.js @@ -1,7 +1,7 @@ const tlsUtils = require('../tls/tlsUtils') const http = require('http') const config = require('../common/config') -const colors = require('colors') +const log = require('../../../utils/util.log') const createRequestHandler = require('./createRequestHandler') const createConnectHandler = require('./createConnectHandler') const createFakeServerCenter = require('./createFakeServerCenter') @@ -27,8 +27,8 @@ module.exports = { caCertPath = rs.caCertPath caKeyPath = rs.caKeyPath if (rs.create) { - console.log(colors.cyan(`CA Cert saved in: ${caCertPath}`)) - console.log(colors.cyan(`CA private key saved in: ${caKeyPath}`)) + log.info(`CA Cert saved in: ${caCertPath}`) + log.info(`CA private key saved in: ${caKeyPath}`) } } @@ -59,18 +59,18 @@ module.exports = { const server = new http.Server() server.listen(port, () => { - console.log(colors.green(`dev-sidecar启动端口: ${port}`)) + log.info(`dev-sidecar启动端口: ${port}`) server.on('error', (e) => { - console.error(colors.red(e)) + log.error('server error', e) }) server.on('request', (req, res) => { const ssl = false - // console.log('request,', req.url, req.port, req.host) + // log.info('request,', req.url, req.port, req.host) requestHandler(req, res, ssl) }) // tunneling for https server.on('connect', (req, cltSocket, head) => { - // console.log('connect,', req.url) + // log.info('connect,', req.url) connectHandler(req, cltSocket, head) }) // TODO: handler WebSocket diff --git a/packages/mitmproxy/src/lib/proxy/tls/FakeServersCenter.js b/packages/mitmproxy/src/lib/proxy/tls/FakeServersCenter.js index bd2c07ac..7dbc449c 100644 --- a/packages/mitmproxy/src/lib/proxy/tls/FakeServersCenter.js +++ b/packages/mitmproxy/src/lib/proxy/tls/FakeServersCenter.js @@ -5,7 +5,7 @@ const forge = require('node-forge') const pki = forge.pki // const colors = require('colors') const tls = require('tls') - +const log = require('../../../utils/util.log') module.exports = class FakeServersCenter { constructor ({ maxLength = 256, requestHandler, upgradeHandler, caCert, caKey, getCertSocketTimeout }) { this.queue = [] @@ -23,13 +23,13 @@ module.exports = class FakeServersCenter { if (this.queue.length >= this.maxLength) { const delServerObj = this.queue.shift() try { - console.log('超过最大服务数量,删除旧服务', delServerObj) + log.info('超过最大服务数量,删除旧服务', delServerObj) delServerObj.serverObj.server.close() } catch (e) { - console.log(e) + log.info(e) } } - console.log('add server promise:', serverPromiseObj) + log.info('add server promise:', serverPromiseObj) this.queue.push(serverPromiseObj) return serverPromiseObj } @@ -64,7 +64,7 @@ module.exports = class FakeServersCenter { SNICallback: (hostname, done) => { (async () => { const certObj = await this.certAndKeyContainer.getCertPromise(hostname, port) - console.log('sni callback:', hostname) + log.info('sni callback:', hostname) done(null, tls.createSecureContext({ key: pki.privateKeyToPem(certObj.key), cert: pki.certificateToPem(certObj.cert) @@ -88,7 +88,7 @@ module.exports = class FakeServersCenter { this.requestHandler(req, res, ssl) }) fakeServer.on('error', (e) => { - console.error(e) + log.error(e) }) fakeServer.on('listening', () => { const mappingHostNames = tlsUtils.getMappingHostNamesFormCert(certObj.cert) diff --git a/packages/mitmproxy/src/options.js b/packages/mitmproxy/src/options.js index 085b0002..b044879b 100644 --- a/packages/mitmproxy/src/options.js +++ b/packages/mitmproxy/src/options.js @@ -1,6 +1,7 @@ const interceptors = require('./lib/interceptor') const dnsUtil = require('./lib/dns') const lodash = require('lodash') +const log = require('./utils/util.log') function matchHostname (hostMap, hostname) { const value = hostMap[hostname] if (value) { @@ -57,7 +58,7 @@ module.exports = (config) => { const hostname = req.url.split(':')[0] const inWhiteList = matchHostname(whiteList, hostname) != null if (inWhiteList) { - console.log('白名单域名,不拦截', hostname) + log.info('白名单域名,不拦截', hostname) return false } return !!matchHostname(intercepts, hostname) // 配置了拦截的域名,将会被代理 @@ -89,7 +90,7 @@ module.exports = (config) => { } } catch (err) { // 拦截失败 - console.error(err) + log.error('拦截器执行错误', err) } } } diff --git a/packages/mitmproxy/src/utils/util.js b/packages/mitmproxy/src/utils/util.js index 39bb4346..82ea1b26 100644 --- a/packages/mitmproxy/src/utils/util.js +++ b/packages/mitmproxy/src/utils/util.js @@ -1,8 +1,9 @@ const os = require('os') +const log = require('util.log') const util = { getNodeVersion () { const version = process.version - console.log(version) + log.info(version) } } util.getNodeVersion() diff --git a/packages/mitmproxy/src/utils/util.log.js b/packages/mitmproxy/src/utils/util.log.js new file mode 100644 index 00000000..273251c2 --- /dev/null +++ b/packages/mitmproxy/src/utils/util.log.js @@ -0,0 +1,8 @@ +const log4js = require('log4js') +const proxyConfig = require('../lib/proxy/common/config') +log4js.configure({ + appenders: { std: { type: 'stdout' }, file: { type: 'file', pattern: '.yyyy-MM-dd', daysToKeep: 3, filename: proxyConfig.getDefaultCABasePath() + '/logs/server.log' } }, + categories: { default: { appenders: ['file', 'std'], level: 'info' } } +}) +const logger = log4js.getLogger('server') +module.exports = logger From a4ce3fd13869bf7e4b3f84448fa2dcb452c0035b Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Fri, 13 Nov 2020 14:50:43 +0800 Subject: [PATCH 02/51] =?UTF-8?q?perf:=20=E6=94=AF=E6=8C=81=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/core/package.json | 1 + packages/core/src/expose.js | 28 ++++++++-------- packages/core/src/index.js | 6 ++-- .../core/src/modules/plugin/node/index.js | 8 ++--- packages/core/src/modules/proxy/index.js | 8 ++--- packages/core/src/modules/server/index.js | 13 ++++---- .../shell/scripts/set-system-proxy/index.js | 32 +++++-------------- packages/core/src/shell/shell.js | 12 +++---- packages/core/src/status.js | 3 +- packages/core/src/utils/os.util.js | 6 ---- packages/core/src/utils/util.js | 9 ------ packages/core/src/utils/util.log.js | 12 +++++++ packages/gui/package.json | 1 + packages/gui/src/background.js | 14 ++++---- packages/gui/src/bridge/index.js | 14 ++++---- packages/gui/src/bridge/update-handle.js | 21 ++++++------ packages/gui/src/utils/util.log.js | 12 +++++++ 17 files changed, 100 insertions(+), 100 deletions(-) delete mode 100644 packages/core/src/utils/os.util.js delete mode 100644 packages/core/src/utils/util.js create mode 100644 packages/core/src/utils/util.log.js create mode 100644 packages/gui/src/utils/util.log.js diff --git a/packages/core/package.json b/packages/core/package.json index a8b2ab9b..ad3da479 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -16,6 +16,7 @@ "start": "node ./start" }, "dependencies": { + "log4js": "^6.3.0", "@docmirror/mitmproxy": "^1.1.0", "agentkeepalive": "^2.1.1", "charset": "^1.0.0", diff --git a/packages/core/src/expose.js b/packages/core/src/expose.js index 8f8c39d3..bcf633c6 100644 --- a/packages/core/src/expose.js +++ b/packages/core/src/expose.js @@ -6,12 +6,14 @@ const modules = require('./modules') const lodash = require('lodash') const proxyServer = require('@docmirror/mitmproxy') const proxyConfig = proxyServer.config +const log = require('./utils/util.log') const context = { config, shell, status, event, - rootCaFile: proxyConfig.getDefaultCACertPath() + rootCaFile: proxyConfig.getDefaultCACertPath(), + log } function setupPlugin (key, plugin, context, config) { @@ -43,14 +45,14 @@ module.exports = { try { await server.start({ mitmproxyPath }) } catch (err) { - console.error('代理服务启动失败:', err) + log.error('代理服务启动失败:', err) } } if (conf.proxy.enabled) { try { await proxy.start() } catch (err) { - console.error('开启系统代理失败:', err) + log.error('开启系统代理失败:', err) } } try { @@ -60,9 +62,9 @@ module.exports = { const start = async () => { try { await plugin[key].start() - console.log(`插件【${key}】已启动`) + log.info(`插件【${key}】已启动`) } catch (err) { - console.log(`插件【${key}】启动失败`, err) + log.error(`插件【${key}】启动失败`, err) } } plugins.push(start()) @@ -72,7 +74,7 @@ module.exports = { await Promise.all(plugins) } } catch (err) { - console.error('开启插件失败:', err) + log.error('开启插件失败:', err) } }, shutdown: async () => { @@ -83,9 +85,9 @@ module.exports = { const close = async () => { try { await plugin[key].close() - console.log(`插件【${key}】已关闭`) + log.info(`插件【${key}】已关闭`) } catch (err) { - console.log(`插件【${key}】关闭失败`, err) + log.info(`插件【${key}】关闭失败`, err) } } plugins.push(close()) @@ -95,23 +97,23 @@ module.exports = { await Promise.all(plugins) } } catch (error) { - console.error('插件关闭失败'.error) + log.error('插件关闭失败'.error) } if (status.proxy.enabled) { try { await proxy.close() - console.log('系统代理已关闭') + log.info('系统代理已关闭') } catch (err) { - console.error('系统代理关闭失败', err) + log.error('系统代理关闭失败', err) } } if (status.server.enabled) { try { await server.close() - console.log('代理服务已关闭') + log.info('代理服务已关闭') } catch (err) { - console.error('代理服务关闭失败', err) + log.error('代理服务关闭失败', err) } } }, diff --git a/packages/core/src/index.js b/packages/core/src/index.js index 5e60f682..269149af 100644 --- a/packages/core/src/index.js +++ b/packages/core/src/index.js @@ -1,5 +1,5 @@ const expose = require('./expose.js') - +const log = require('./utils/util.log') // process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0' // 避免异常崩溃 @@ -8,11 +8,11 @@ process.on('uncaughtException', function (err) { // console.error(err.errno) return } - console.error('uncaughtException', err) + log.error('uncaughtException', err) }) process.on('unhandledRejection', (reason, p) => { - console.log('Unhandled Rejection at: Promise', p, 'reason:', reason) + log.error('Unhandled Rejection at: Promise', p, 'reason:', reason) // application specific logging, throwing an error, or other logic here }) diff --git a/packages/core/src/modules/plugin/node/index.js b/packages/core/src/modules/plugin/node/index.js index 8ec2fa9f..72b1c2fa 100644 --- a/packages/core/src/modules/plugin/node/index.js +++ b/packages/core/src/modules/plugin/node/index.js @@ -1,12 +1,12 @@ const nodeConfig = require('./config') const NodePlugin = function (context) { - const { config, shell, event, rootCaFile } = context + const { config, shell, event, rootCaFile, log } = context const nodeApi = { async start () { try { await nodeApi.setVariables() } catch (err) { - console.warn('set variables error', err) + log.warn('set variables error', err) } const ip = '127.0.0.1' @@ -123,7 +123,7 @@ const NodePlugin = function (context) { await shell.setSystemEnv({ list: env }) } event.fire('status', { key: 'plugin.node.enabled', value: true }) - console.info('开启【NPM】代理成功') + log.info('开启【NPM】代理成功') return ret }, @@ -137,7 +137,7 @@ const NodePlugin = function (context) { ] const ret = await shell.exec(cmds, { type: 'cmd' }) event.fire('status', { key: 'plugin.node.enabled', value: false }) - console.info('关闭【NPM】代理成功') + log.info('关闭【NPM】代理成功') return ret } } diff --git a/packages/core/src/modules/proxy/index.js b/packages/core/src/modules/proxy/index.js index a1cc63c7..bc5d3181 100644 --- a/packages/core/src/modules/proxy/index.js +++ b/packages/core/src/modules/proxy/index.js @@ -1,5 +1,5 @@ const ProxyPlugin = function (context) { - const { config, event, shell } = context + const { config, event, shell, log } = context const api = { async start () { return api.setProxy() @@ -13,7 +13,7 @@ const ProxyPlugin = function (context) { const ip = '127.0.0.1' const port = config.get().server.port await shell.setSystemProxy({ ip, port }) - console.log(`开启系统代理成功:${ip}:${port}`) + log.info(`开启系统代理成功:${ip}:${port}`) event.fire('status', { key: 'proxy.enabled', value: true }) return { ip, port } }, @@ -22,10 +22,10 @@ const ProxyPlugin = function (context) { try { await shell.setSystemProxy() event.fire('status', { key: 'proxy.enabled', vlaue: false }) - console.log('关闭系统代理成功') + log.info('关闭系统代理成功') return true } catch (err) { - console.error('关闭系统代理失败', err) + log.error('关闭系统代理失败', err) return false } } diff --git a/packages/core/src/modules/server/index.js b/packages/core/src/modules/server/index.js index de1f75d5..df6bd51b 100644 --- a/packages/core/src/modules/server/index.js +++ b/packages/core/src/modules/server/index.js @@ -3,6 +3,7 @@ const event = require('../../event') const status = require('../../status') const lodash = require('lodash') const fork = require('child_process').fork +const log = require('../../utils/util.log') let server function fireStatus (status) { event.fire('status', { key: 'server.enabled', value: status }) @@ -53,7 +54,7 @@ const serverApi = { } } serverProcess.on('message', function (msg) { - console.log('收到子进程消息', msg) + log.info('收到子进程消息', msg) if (msg.type === 'status') { fireStatus(msg.event) } else if (msg.type === 'error') { @@ -81,21 +82,21 @@ const serverApi = { // fireStatus('ing')// 关闭中 server.close((err) => { if (err) { - console.log('close error', err, ',', err.code, ',', err.message, ',', err.errno) + log.info('close error', err, ',', err.code, ',', err.message, ',', err.errno) if (err.code === 'ERR_SERVER_NOT_RUNNING') { - console.log('代理服务关闭成功') + log.info('代理服务关闭成功') resolve() return } - console.log('代理服务关闭失败', err) + log.info('代理服务关闭失败', err) reject(err) } else { - console.log('代理服务关闭成功') + log.info('代理服务关闭成功') resolve() } }) } else { - console.log('server is null') + log.info('server is null') resolve() } }) diff --git a/packages/core/src/shell/scripts/set-system-proxy/index.js b/packages/core/src/shell/scripts/set-system-proxy/index.js index 9bd7aa1a..e3f2e73e 100644 --- a/packages/core/src/shell/scripts/set-system-proxy/index.js +++ b/packages/core/src/shell/scripts/set-system-proxy/index.js @@ -7,7 +7,7 @@ const Registry = require('winreg') // const cmd = require('node-cmd') const refreshInternetPs = require('./refresh-internet') const PowerShell = require('node-powershell') - +const log = require('../../../utils/util.log') const _lanIP = [ 'localhost', '127.*', @@ -42,9 +42,9 @@ async function _winUnsetProxy (exec) { _winAsyncRegSet(regKey, 'ProxyEnable', Registry.REG_DWORD, 0), _winAsyncRegSet(regKey, 'ProxyServer', Registry.REG_SZ, '') ]) - console.log('代理关闭成功,等待refresh') + log.info('代理关闭成功,等待refresh') await exec(refreshInternetPs, { type: 'ps' }) - console.log('代理关闭refresh完成') + log.info('代理关闭refresh完成') return true } @@ -58,7 +58,7 @@ async function _winSetProxy (exec, ip, port) { for (const string of _lanIP) { lanIpStr += string + ';' } - // console.log('lanIps:', lanIpStr, ip, port) + // log.info('lanIps:', lanIpStr, ip, port) await Promise.all([ _winAsyncRegSet(regKey, 'MigrateProxy', Registry.REG_DWORD, 1), _winAsyncRegSet(regKey, 'ProxyEnable', Registry.REG_DWORD, 1), @@ -66,9 +66,9 @@ async function _winSetProxy (exec, ip, port) { _winAsyncRegSet(regKey, 'ProxyServer', Registry.REG_SZ, `${ip}:${port}`), _winAsyncRegSet(regKey, 'ProxyOverride', Registry.REG_SZ, lanIpStr) ]) - console.log('代理设置成功,等待refresh') + log.info('代理设置成功,等待refresh') await exec(refreshInternetPs) - console.log('代理设置refresh完成') + log.info('代理设置refresh完成') return true } @@ -84,32 +84,16 @@ function _winAsyncRegSet (regKey, name, type, value) { }) } -async function _winResetWininetProxySettings (script) { - const ps = new PowerShell({ - executionPolicy: 'Bypass', - noProfile: true - }) - ps.addCommand(script) - - try { - const ret = await ps.invoke() - console.log('ps complete', script) - return ret - } finally { - ps.dispose() - } -} - const executor = { async windows (exec, params) { if (params == null) { // 清空代理 - console.log('关闭代理') + log.info('关闭代理') return _winUnsetProxy(exec) } else { // 设置代理 const { ip, port } = params - console.log('设置代理', ip, port) + log.info('设置代理', ip, port) return _winSetProxy(exec, ip, port) } }, diff --git a/packages/core/src/shell/shell.js b/packages/core/src/shell/shell.js index c374bd1f..600e54a7 100644 --- a/packages/core/src/shell/shell.js +++ b/packages/core/src/shell/shell.js @@ -4,7 +4,7 @@ const childProcess = require('child_process') const _exec = childProcess.exec const exec = util.promisify(_exec) const PowerShell = require('node-powershell') - +const log = require('../utils/util.log') class SystemShell { static async exec (cmds, args) { throw new Error('You have to implement the method exec!') @@ -52,7 +52,7 @@ class WindowsSystemShell extends SystemShell { try { const ret = await ps.invoke() - // console.log('ps complete', cmds) + // log.info('ps complete', cmds) return ret } finally { ps.dispose() @@ -64,7 +64,7 @@ class WindowsSystemShell extends SystemShell { } // compose += '&& exit' const ret = await childExec(compose) - // console.log('cmd complete:', compose) + // log.info('cmd complete:', compose) return ret } } @@ -75,13 +75,13 @@ function childExec (composeCmds) { const childProcess = require('child_process') childProcess.exec(composeCmds, function (error, stdout, stderr) { if (error) { - console.error('cmd 命令执行错误:', composeCmds, error, stderr) + log.error('cmd 命令执行错误:', composeCmds, error, stderr) reject(error) } else { - // console.log('cmd 命令完成:', stdout) + // log.info('cmd 命令完成:', stdout) resolve(stdout) } - // console.log('关闭 cmd') + // log.info('关闭 cmd') // ps.kill('SIGINT') }) }) diff --git a/packages/core/src/status.js b/packages/core/src/status.js index 7460ad25..62d1a12c 100644 --- a/packages/core/src/status.js +++ b/packages/core/src/status.js @@ -1,5 +1,6 @@ const event = require('./event') const lodash = require('lodash') +const log = require('./utils/util.log') const status = { server: { enabled: false }, proxy: {}, @@ -8,7 +9,7 @@ const status = { event.register('status', (event) => { lodash.set(status, event.key, event.value) - console.log('status changed:', event) + log.info('status changed:', event) }, -999) module.exports = status diff --git a/packages/core/src/utils/os.util.js b/packages/core/src/utils/os.util.js deleted file mode 100644 index 9f8aaf7f..00000000 --- a/packages/core/src/utils/os.util.js +++ /dev/null @@ -1,6 +0,0 @@ -const os = require('os') -module.exports = { - isWindows7 () { - const version = os.release() - } -} diff --git a/packages/core/src/utils/util.js b/packages/core/src/utils/util.js deleted file mode 100644 index 39bb4346..00000000 --- a/packages/core/src/utils/util.js +++ /dev/null @@ -1,9 +0,0 @@ -const os = require('os') -const util = { - getNodeVersion () { - const version = process.version - console.log(version) - } -} -util.getNodeVersion() -module.exports = util diff --git a/packages/core/src/utils/util.log.js b/packages/core/src/utils/util.log.js new file mode 100644 index 00000000..d46684f0 --- /dev/null +++ b/packages/core/src/utils/util.log.js @@ -0,0 +1,12 @@ +const log4js = require('log4js') +const path = require('path') +const getDefaultConfigBasePath = function () { + const userHome = process.env.HOME || process.env.USERPROFILE + return path.resolve(userHome, './.dev-sidecar') +} +log4js.configure({ + appenders: { std: { type: 'stdout' }, file: { type: 'file', pattern: '.yyyy-MM-dd', daysToKeep: 3, filename: getDefaultConfigBasePath() + '/logs/server.log' } }, + categories: { default: { appenders: ['file', 'std'], level: 'info' } } +}) +const logger = log4js.getLogger('server') +module.exports = logger diff --git a/packages/gui/package.json b/packages/gui/package.json index 242bd80a..57e6e857 100644 --- a/packages/gui/package.json +++ b/packages/gui/package.json @@ -14,6 +14,7 @@ }, "main": "background.js", "dependencies": { + "log4js": "^6.3.0", "@docmirror/dev-sidecar": "^1.1.0", "@docmirror/mitmproxy": "^1.1.0", "ant-design-vue": "^1.6.5", diff --git a/packages/gui/src/background.js b/packages/gui/src/background.js index 22856d41..e1929233 100644 --- a/packages/gui/src/background.js +++ b/packages/gui/src/background.js @@ -6,7 +6,7 @@ import { createProtocol } from 'vue-cli-plugin-electron-builder/lib' import bridge from './bridge/index' import updateHandle from './bridge/update-handle' import { ebtMain } from './tongji' - +import log from './utils/util.log' // eslint-disable-next-line no-unused-vars const isMac = process.platform === 'darwin' @@ -60,7 +60,7 @@ function setTray (app) { // appTray.setContextMenu(contextMenu) // appTray.on('double-click', function () { - // console.log('double click') + // log.info('double click') // win.show() // }) appTray.on('right-click', function (event, bounds) { @@ -122,13 +122,13 @@ app.disableHardwareAcceleration() // 禁用gpu // 禁止双开 const isFirstInstance = app.requestSingleInstanceLock() if (!isFirstInstance) { - console.log('is second instance') + log.info('is second instance') setTimeout(() => { app.quit() }, 1000) } else { app.on('before-quit', async (event) => { - console.log('before-quit') + log.info('before-quit') event.preventDefault() // if (tray) { // tray.displayBalloon({ title: '正在关闭,请稍候...', content: '正在关闭中,请稍候。。。' }) @@ -137,7 +137,7 @@ if (!isFirstInstance) { app.exit() }) app.on('second-instance', (event, commandLine, workingDirectory) => { - console.log('new app started', commandLine) + log.info('new app started', commandLine) if (win) { win.show() win.focus() @@ -170,7 +170,7 @@ if (!isFirstInstance) { // try { // await installExtension(VUEJS_DEVTOOLS) // } catch (e) { - // console.error('Vue Devtools failed to install:', e.toString()) + // log.error('Vue Devtools failed to install:', e.toString()) // } } createWindow() @@ -196,7 +196,7 @@ if (!isFirstInstance) { // 最小化到托盘 tray = setTray(app) } catch (err) { - console.log('err', err) + log.info('err', err) } }) } diff --git a/packages/gui/src/bridge/index.js b/packages/gui/src/bridge/index.js index 91a528f5..52bd640d 100644 --- a/packages/gui/src/bridge/index.js +++ b/packages/gui/src/bridge/index.js @@ -6,7 +6,7 @@ import JSON5 from 'json5' import path from 'path' const pk = require('../../package.json') const mitmproxyPath = path.join(__dirname, 'mitmproxy.js') - +const log = require('../utils/util.log') const getDefaultConfigBasePath = function () { const userHome = process.env.HOME || process.env.USERPROFILE return path.resolve(userHome, './.dev-sidecar') @@ -22,12 +22,12 @@ const localApi = { lodash.merge(core, local) const list = [] _deepFindFunction(list, core, '') - // console.log('api list:', list) + // log.info('api list:', list) return list }, info: { get () { - console.log(pk) + log.info(pk) return { version: pk.version } @@ -182,23 +182,23 @@ export default { target = lodash.get(DevSidecar.api, api) } if (target == null) { - console.log('找不到此接口方法:', api) + log.info('找不到此接口方法:', api) } let param if (args.length >= 2) { param = args[1] } const ret = target(param) - // console.log('api:', api, 'ret:', ret) + // log.info('api:', api, 'ret:', ret) return ret }) // 注册从core里来的事件,并转发给view DevSidecar.api.event.register('status', (event) => { - console.log('bridge on status', event) + log.info('bridge on status', event) win.webContents.send('status', { ...event }) }) DevSidecar.api.event.register('error', (event) => { - console.error('bridge on error', event) + log.error('bridge on error', event) win.webContents.send('error.core', event) }) diff --git a/packages/gui/src/bridge/update-handle.js b/packages/gui/src/bridge/update-handle.js index bffe033d..b84a6d18 100644 --- a/packages/gui/src/bridge/update-handle.js +++ b/packages/gui/src/bridge/update-handle.js @@ -1,5 +1,6 @@ import { ipcMain, dialog } from 'electron' import { autoUpdater } from 'electron-updater' +import log from '../utils/util.log' import path from 'path' // win是所有窗口的引用 // const path = require('path') // 引入path模块 @@ -31,30 +32,30 @@ function updateHandle (win, updateUrl) { url: updateUrl }) autoUpdater.on('error', function (error) { - console.log('autoUpdater error', error) + log.info('autoUpdater error', error) sendUpdateMessage({ key: 'error', value: error, error: error }) // dialog.showErrorBox('Error: ', error == null ? 'unknown' : (error.stack || error).toString()) }) autoUpdater.on('checking-for-update', function () { - console.log('autoUpdater checking-for-update') + log.info('autoUpdater checking-for-update') sendUpdateMessage({ key: 'checking', value: message.checking }) }) autoUpdater.on('update-available', function (info) { - console.log('autoUpdater update-available') + log.info('autoUpdater update-available') sendUpdateMessage({ key: 'available', value: info }) }) autoUpdater.on('update-not-available', function (info) { - console.log('autoUpdater update-not-available') + log.info('autoUpdater update-not-available') sendUpdateMessage({ key: 'notAvailable', value: message.updateNotAva }) }) // 更新下载进度 autoUpdater.on('download-progress', function (progressObj) { - console.log('autoUpdater download-progress') + log.info('autoUpdater download-progress') win.webContents.send('update', { key: 'progress', value: parseInt(progressObj.percent) }) }) // 更新完成,重启应用 autoUpdater.on('update-downloaded', function (info) { - console.log('download complete', info.version) + log.info('download complete', info.version) win.webContents.send('update', { key: 'downloaded', value: { @@ -70,21 +71,21 @@ function updateHandle (win, updateUrl) { autoUpdater.quitAndInstall() } else if (arg.key === 'checkForUpdate') { // 执行自动更新检查 - console.log('autoUpdater checkForUpdates') + log.info('autoUpdater checkForUpdates') autoUpdater.checkForUpdates() } else if (arg.key === 'downloadUpdate') { // 下载新版本 - console.log('autoUpdater downloadUpdate') + log.info('autoUpdater downloadUpdate') autoUpdater.downloadUpdate() } }) // 通过main进程发送事件给renderer进程,提示更新信息 function sendUpdateMessage (message) { - console.log('autoUpdater sendUpdateMessage') + log.info('autoUpdater sendUpdateMessage') win.webContents.send('update', message) } - console.log('auto update inited') + log.info('auto update inited') return autoUpdater } export default updateHandle diff --git a/packages/gui/src/utils/util.log.js b/packages/gui/src/utils/util.log.js new file mode 100644 index 00000000..d46684f0 --- /dev/null +++ b/packages/gui/src/utils/util.log.js @@ -0,0 +1,12 @@ +const log4js = require('log4js') +const path = require('path') +const getDefaultConfigBasePath = function () { + const userHome = process.env.HOME || process.env.USERPROFILE + return path.resolve(userHome, './.dev-sidecar') +} +log4js.configure({ + appenders: { std: { type: 'stdout' }, file: { type: 'file', pattern: '.yyyy-MM-dd', daysToKeep: 3, filename: getDefaultConfigBasePath() + '/logs/server.log' } }, + categories: { default: { appenders: ['file', 'std'], level: 'info' } } +}) +const logger = log4js.getLogger('server') +module.exports = logger From f2846b8e0b7174c759da8c0656636000df68cfb9 Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Fri, 13 Nov 2020 14:59:48 +0800 Subject: [PATCH 03/51] =?UTF-8?q?perf:=20=E6=94=AF=E6=8C=81=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/core/yarn.lock | 5143 +------------------------------------ packages/gui/package.json | 4 - packages/gui/yarn.lock | 333 +-- 3 files changed, 117 insertions(+), 5363 deletions(-) diff --git a/packages/core/yarn.lock b/packages/core/yarn.lock index ca59056f..c4a86049 100644 --- a/packages/core/yarn.lock +++ b/packages/core/yarn.lock @@ -9,33 +9,6 @@ dependencies: "@babel/highlight" "^7.10.4" -"@babel/compat-data@^7.12.0": - version "7.12.0" - resolved "https://registry.npm.taobao.org/@babel/compat-data/download/@babel/compat-data-7.12.0.tgz?cache=0&sync_timestamp=1602704223536&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcompat-data%2Fdownload%2F%40babel%2Fcompat-data-7.12.0.tgz#443aea07a5aeba7942cb067de6b8272f2ab36b9e" - integrity sha1-RDrqB6WuunlCywZ95rgnLyqza54= - -"@babel/core@^7.11.0": - version "7.12.0" - resolved "https://registry.npm.taobao.org/@babel/core/download/@babel/core-7.12.0.tgz?cache=0&sync_timestamp=1602704221957&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.12.0.tgz#e42e07a086e978cdd4c61f4078d8230fb817cc86" - integrity sha1-5C4HoIbpeM3Uxh9AeNgjD7gXzIY= - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/generator" "^7.12.0" - "@babel/helper-module-transforms" "^7.12.0" - "@babel/helpers" "^7.10.4" - "@babel/parser" "^7.12.0" - "@babel/template" "^7.10.4" - "@babel/traverse" "^7.12.0" - "@babel/types" "^7.12.0" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.1" - json5 "^2.1.2" - lodash "^4.17.19" - resolve "^1.3.2" - semver "^5.4.1" - source-map "^0.5.0" - "@babel/generator@^7.12.0": version "7.12.0" resolved "https://registry.npm.taobao.org/@babel/generator/download/@babel/generator-7.12.0.tgz?cache=0&sync_timestamp=1602704228090&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fgenerator%2Fdownload%2F%40babel%2Fgenerator-7.12.0.tgz#91a45f1c18ca8d895a35a04da1a4cf7ea3f37f98" @@ -45,68 +18,6 @@ jsesc "^2.5.1" source-map "^0.5.0" -"@babel/helper-annotate-as-pure@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/helper-annotate-as-pure/download/@babel/helper-annotate-as-pure-7.10.4.tgz?cache=0&sync_timestamp=1593521294951&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-annotate-as-pure%2Fdownload%2F%40babel%2Fhelper-annotate-as-pure-7.10.4.tgz#5bf0d495a3f757ac3bda48b5bf3b3ba309c72ba3" - integrity sha1-W/DUlaP3V6w72ki1vzs7ownHK6M= - dependencies: - "@babel/types" "^7.10.4" - -"@babel/helper-builder-binary-assignment-operator-visitor@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/helper-builder-binary-assignment-operator-visitor/download/@babel/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz?cache=0&sync_timestamp=1593522960718&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-builder-binary-assignment-operator-visitor%2Fdownload%2F%40babel%2Fhelper-builder-binary-assignment-operator-visitor-7.10.4.tgz#bb0b75f31bf98cbf9ff143c1ae578b87274ae1a3" - integrity sha1-uwt18xv5jL+f8UPBrleLhydK4aM= - dependencies: - "@babel/helper-explode-assignable-expression" "^7.10.4" - "@babel/types" "^7.10.4" - -"@babel/helper-compilation-targets@^7.12.0", "@babel/helper-compilation-targets@^7.9.6": - version "7.12.0" - resolved "https://registry.npm.taobao.org/@babel/helper-compilation-targets/download/@babel/helper-compilation-targets-7.12.0.tgz?cache=0&sync_timestamp=1602704226925&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-compilation-targets%2Fdownload%2F%40babel%2Fhelper-compilation-targets-7.12.0.tgz#c477d89a1f4d626c8149b9b88802f78d66d0c99a" - integrity sha1-xHfYmh9NYmyBSbm4iAL3jWbQyZo= - dependencies: - "@babel/compat-data" "^7.12.0" - "@babel/helper-validator-option" "^7.12.0" - browserslist "^4.12.0" - semver "^5.5.0" - -"@babel/helper-create-class-features-plugin@^7.10.4", "@babel/helper-create-class-features-plugin@^7.10.5": - version "7.12.0" - resolved "https://registry.npm.taobao.org/@babel/helper-create-class-features-plugin/download/@babel/helper-create-class-features-plugin-7.12.0.tgz?cache=0&sync_timestamp=1602704228338&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-create-class-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-class-features-plugin-7.12.0.tgz#f3f2fc77bacc89e59ce6764daeabc1fb23e79a05" - integrity sha1-8/L8d7rMieWc5nZNrqvB+yPnmgU= - dependencies: - "@babel/helper-function-name" "^7.10.4" - "@babel/helper-member-expression-to-functions" "^7.12.0" - "@babel/helper-optimise-call-expression" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-replace-supers" "^7.12.0" - "@babel/helper-split-export-declaration" "^7.10.4" - -"@babel/helper-create-regexp-features-plugin@^7.10.4": - version "7.12.0" - resolved "https://registry.npm.taobao.org/@babel/helper-create-regexp-features-plugin/download/@babel/helper-create-regexp-features-plugin-7.12.0.tgz?cache=0&sync_timestamp=1602704230644&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-create-regexp-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-regexp-features-plugin-7.12.0.tgz#858cef57039f3b3a9012273597288a71e1dff8ca" - integrity sha1-hYzvVwOfOzqQEic1lyiKceHf+Mo= - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.4" - "@babel/helper-regex" "^7.10.4" - regexpu-core "^4.7.1" - -"@babel/helper-define-map@^7.10.4": - version "7.10.5" - resolved "https://registry.npm.taobao.org/@babel/helper-define-map/download/@babel/helper-define-map-7.10.5.tgz#b53c10db78a640800152692b13393147acb9bb30" - integrity sha1-tTwQ23imQIABUmkrEzkxR6y5uzA= - dependencies: - "@babel/helper-function-name" "^7.10.4" - "@babel/types" "^7.10.5" - lodash "^4.17.19" - -"@babel/helper-explode-assignable-expression@^7.10.4": - version "7.11.4" - resolved "https://registry.npm.taobao.org/@babel/helper-explode-assignable-expression/download/@babel/helper-explode-assignable-expression-7.11.4.tgz?cache=0&sync_timestamp=1597948364953&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-explode-assignable-expression%2Fdownload%2F%40babel%2Fhelper-explode-assignable-expression-7.11.4.tgz#2d8e3470252cc17aba917ede7803d4a7a276a41b" - integrity sha1-LY40cCUswXq6kX7eeAPUp6J2pBs= - dependencies: - "@babel/types" "^7.10.4" - "@babel/helper-function-name@^7.10.4": version "7.10.4" resolved "https://registry.npm.taobao.org/@babel/helper-function-name/download/@babel/helper-function-name-7.10.4.tgz?cache=0&sync_timestamp=1593522977138&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-function-name%2Fdownload%2F%40babel%2Fhelper-function-name-7.10.4.tgz#d2d3b20c59ad8c47112fa7d2a94bc09d5ef82f1a" @@ -123,97 +34,7 @@ dependencies: "@babel/types" "^7.10.4" -"@babel/helper-hoist-variables@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/helper-hoist-variables/download/@babel/helper-hoist-variables-7.10.4.tgz?cache=0&sync_timestamp=1593521294715&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-hoist-variables%2Fdownload%2F%40babel%2Fhelper-hoist-variables-7.10.4.tgz#d49b001d1d5a68ca5e6604dda01a6297f7c9381e" - integrity sha1-1JsAHR1aaMpeZgTdoBpil/fJOB4= - dependencies: - "@babel/types" "^7.10.4" - -"@babel/helper-member-expression-to-functions@^7.12.0": - version "7.12.0" - resolved "https://registry.npm.taobao.org/@babel/helper-member-expression-to-functions/download/@babel/helper-member-expression-to-functions-7.12.0.tgz?cache=0&sync_timestamp=1602704227866&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-member-expression-to-functions%2Fdownload%2F%40babel%2Fhelper-member-expression-to-functions-7.12.0.tgz#48f605fa801764f3e5b2e301e49d35fe1820c4f3" - integrity sha1-SPYF+oAXZPPlsuMB5J01/hggxPM= - dependencies: - "@babel/types" "^7.12.0" - -"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.8.3": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/helper-module-imports/download/@babel/helper-module-imports-7.10.4.tgz?cache=0&sync_timestamp=1593522965782&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-module-imports%2Fdownload%2F%40babel%2Fhelper-module-imports-7.10.4.tgz#4c5c54be04bd31670a7382797d75b9fa2e5b5620" - integrity sha1-TFxUvgS9MWcKc4J5fXW5+i5bViA= - dependencies: - "@babel/types" "^7.10.4" - -"@babel/helper-module-transforms@^7.10.4", "@babel/helper-module-transforms@^7.10.5", "@babel/helper-module-transforms@^7.12.0": - version "7.12.0" - resolved "https://registry.npm.taobao.org/@babel/helper-module-transforms/download/@babel/helper-module-transforms-7.12.0.tgz?cache=0&sync_timestamp=1602704228486&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-module-transforms%2Fdownload%2F%40babel%2Fhelper-module-transforms-7.12.0.tgz#8ac7d9e8716f94549a42e577c5429391950e33f3" - integrity sha1-isfZ6HFvlFSaQuV3xUKTkZUOM/M= - dependencies: - "@babel/helper-module-imports" "^7.10.4" - "@babel/helper-replace-supers" "^7.12.0" - "@babel/helper-simple-access" "^7.10.4" - "@babel/helper-split-export-declaration" "^7.11.0" - "@babel/helper-validator-identifier" "^7.10.4" - "@babel/template" "^7.10.4" - "@babel/traverse" "^7.12.0" - "@babel/types" "^7.12.0" - lodash "^4.17.19" - -"@babel/helper-optimise-call-expression@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/helper-optimise-call-expression/download/@babel/helper-optimise-call-expression-7.10.4.tgz?cache=0&sync_timestamp=1593521296446&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-optimise-call-expression%2Fdownload%2F%40babel%2Fhelper-optimise-call-expression-7.10.4.tgz#50dc96413d594f995a77905905b05893cd779673" - integrity sha1-UNyWQT1ZT5lad5BZBbBYk813lnM= - dependencies: - "@babel/types" "^7.10.4" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.10.4.tgz?cache=0&sync_timestamp=1593521082372&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375" - integrity sha1-L3WoMSadT2d95JmG3/WZJ1M883U= - -"@babel/helper-regex@^7.10.4": - version "7.10.5" - resolved "https://registry.npm.taobao.org/@babel/helper-regex/download/@babel/helper-regex-7.10.5.tgz?cache=0&sync_timestamp=1594750677873&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-regex%2Fdownload%2F%40babel%2Fhelper-regex-7.10.5.tgz#32dfbb79899073c415557053a19bd055aae50ae0" - integrity sha1-Mt+7eYmQc8QVVXBToZvQVarlCuA= - dependencies: - lodash "^4.17.19" - -"@babel/helper-remap-async-to-generator@^7.10.4": - version "7.11.4" - resolved "https://registry.npm.taobao.org/@babel/helper-remap-async-to-generator/download/@babel/helper-remap-async-to-generator-7.11.4.tgz?cache=0&sync_timestamp=1597948363357&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-remap-async-to-generator%2Fdownload%2F%40babel%2Fhelper-remap-async-to-generator-7.11.4.tgz#4474ea9f7438f18575e30b0cac784045b402a12d" - integrity sha1-RHTqn3Q48YV14wsMrHhARbQCoS0= - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.4" - "@babel/helper-wrap-function" "^7.10.4" - "@babel/template" "^7.10.4" - "@babel/types" "^7.10.4" - -"@babel/helper-replace-supers@^7.10.4", "@babel/helper-replace-supers@^7.12.0": - version "7.12.0" - resolved "https://registry.npm.taobao.org/@babel/helper-replace-supers/download/@babel/helper-replace-supers-7.12.0.tgz?cache=0&sync_timestamp=1602704228599&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-replace-supers%2Fdownload%2F%40babel%2Fhelper-replace-supers-7.12.0.tgz#98d3f3eb779752e59c7422ab387c9b444323be60" - integrity sha1-mNPz63eXUuWcdCKrOHybREMjvmA= - dependencies: - "@babel/helper-member-expression-to-functions" "^7.12.0" - "@babel/helper-optimise-call-expression" "^7.10.4" - "@babel/traverse" "^7.12.0" - "@babel/types" "^7.12.0" - -"@babel/helper-simple-access@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/helper-simple-access/download/@babel/helper-simple-access-7.10.4.tgz?cache=0&sync_timestamp=1593522975802&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-simple-access%2Fdownload%2F%40babel%2Fhelper-simple-access-7.10.4.tgz#0f5ccda2945277a2a7a2d3a821e15395edcf3461" - integrity sha1-D1zNopRSd6KnotOoIeFTle3PNGE= - dependencies: - "@babel/template" "^7.10.4" - "@babel/types" "^7.10.4" - -"@babel/helper-skip-transparent-expression-wrappers@^7.11.0": - version "7.11.0" - resolved "https://registry.npm.taobao.org/@babel/helper-skip-transparent-expression-wrappers/download/@babel/helper-skip-transparent-expression-wrappers-7.11.0.tgz#eec162f112c2f58d3af0af125e3bb57665146729" - integrity sha1-7sFi8RLC9Y068K8SXju1dmUUZyk= - dependencies: - "@babel/types" "^7.11.0" - -"@babel/helper-split-export-declaration@^7.10.4", "@babel/helper-split-export-declaration@^7.11.0": +"@babel/helper-split-export-declaration@^7.11.0": version "7.11.0" resolved "https://registry.npm.taobao.org/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.11.0.tgz#f8a491244acf6a676158ac42072911ba83ad099f" integrity sha1-+KSRJErPamdhWKxCBykRuoOtCZ8= @@ -225,30 +46,6 @@ resolved "https://registry.npm.taobao.org/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.10.4.tgz?cache=0&sync_timestamp=1593521083613&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-validator-identifier%2Fdownload%2F%40babel%2Fhelper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2" integrity sha1-p4x6clHgH2FlEtMbEK3PUq2l4NI= -"@babel/helper-validator-option@^7.12.0": - version "7.12.0" - resolved "https://registry.npm.taobao.org/@babel/helper-validator-option/download/@babel/helper-validator-option-7.12.0.tgz?cache=0&sync_timestamp=1602706050923&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-validator-option%2Fdownload%2F%40babel%2Fhelper-validator-option-7.12.0.tgz#1d1fc48a9b69763da61b892774b0df89aee1c969" - integrity sha1-HR/Eiptpdj2mG4kndLDfia7hyWk= - -"@babel/helper-wrap-function@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/helper-wrap-function/download/@babel/helper-wrap-function-7.10.4.tgz?cache=0&sync_timestamp=1593522965325&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-wrap-function%2Fdownload%2F%40babel%2Fhelper-wrap-function-7.10.4.tgz#8a6f701eab0ff39f765b5a1cfef409990e624b87" - integrity sha1-im9wHqsP8592W1oc/vQJmQ5iS4c= - dependencies: - "@babel/helper-function-name" "^7.10.4" - "@babel/template" "^7.10.4" - "@babel/traverse" "^7.10.4" - "@babel/types" "^7.10.4" - -"@babel/helpers@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/helpers/download/@babel/helpers-7.10.4.tgz?cache=0&sync_timestamp=1593522959913&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelpers%2Fdownload%2F%40babel%2Fhelpers-7.10.4.tgz#2abeb0d721aff7c0a97376b9e1f6f65d7a475044" - integrity sha1-Kr6w1yGv98Cpc3a54fb2XXpHUEQ= - dependencies: - "@babel/template" "^7.10.4" - "@babel/traverse" "^7.10.4" - "@babel/types" "^7.10.4" - "@babel/highlight@^7.10.4": version "7.10.4" resolved "https://registry.npm.taobao.org/@babel/highlight/download/@babel/highlight-7.10.4.tgz?cache=0&sync_timestamp=1593521095576&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhighlight%2Fdownload%2F%40babel%2Fhighlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143" @@ -263,573 +60,6 @@ resolved "https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.12.0.tgz?cache=0&sync_timestamp=1602704213929&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.12.0.tgz#2ad388f3960045b22f9b7d4bf85e80b15a1c9e3a" integrity sha1-KtOI85YARbIvm31L+F6AsVocnjo= -"@babel/plugin-proposal-async-generator-functions@^7.10.4": - version "7.10.5" - resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-async-generator-functions/download/@babel/plugin-proposal-async-generator-functions-7.10.5.tgz?cache=0&sync_timestamp=1594750682516&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-async-generator-functions%2Fdownload%2F%40babel%2Fplugin-proposal-async-generator-functions-7.10.5.tgz#3491cabf2f7c179ab820606cec27fed15e0e8558" - integrity sha1-NJHKvy98F5q4IGBs7Cf+0V4OhVg= - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-remap-async-to-generator" "^7.10.4" - "@babel/plugin-syntax-async-generators" "^7.8.0" - -"@babel/plugin-proposal-class-properties@^7.10.4", "@babel/plugin-proposal-class-properties@^7.8.3": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-class-properties/download/@babel/plugin-proposal-class-properties-7.10.4.tgz?cache=0&sync_timestamp=1593522963242&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-class-properties%2Fdownload%2F%40babel%2Fplugin-proposal-class-properties-7.10.4.tgz#a33bf632da390a59c7a8c570045d1115cd778807" - integrity sha1-ozv2Mto5ClnHqMVwBF0RFc13iAc= - dependencies: - "@babel/helper-create-class-features-plugin" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-proposal-decorators@^7.8.3": - version "7.10.5" - resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-decorators/download/@babel/plugin-proposal-decorators-7.10.5.tgz?cache=0&sync_timestamp=1594750722573&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-decorators%2Fdownload%2F%40babel%2Fplugin-proposal-decorators-7.10.5.tgz#42898bba478bc4b1ae242a703a953a7ad350ffb4" - integrity sha1-QomLukeLxLGuJCpwOpU6etNQ/7Q= - dependencies: - "@babel/helper-create-class-features-plugin" "^7.10.5" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-decorators" "^7.10.4" - -"@babel/plugin-proposal-dynamic-import@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-dynamic-import/download/@babel/plugin-proposal-dynamic-import-7.10.4.tgz?cache=0&sync_timestamp=1593521093903&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-dynamic-import%2Fdownload%2F%40babel%2Fplugin-proposal-dynamic-import-7.10.4.tgz#ba57a26cb98b37741e9d5bca1b8b0ddf8291f17e" - integrity sha1-uleibLmLN3QenVvKG4sN34KR8X4= - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-dynamic-import" "^7.8.0" - -"@babel/plugin-proposal-export-namespace-from@^7.12.0": - version "7.12.0" - resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-export-namespace-from/download/@babel/plugin-proposal-export-namespace-from-7.12.0.tgz?cache=0&sync_timestamp=1602704223947&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-export-namespace-from%2Fdownload%2F%40babel%2Fplugin-proposal-export-namespace-from-7.12.0.tgz#08b0f8100bbae1199a5f5294f38a1b0b8d8402fc" - integrity sha1-CLD4EAu64RmaX1KU84obC42EAvw= - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - -"@babel/plugin-proposal-json-strings@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-json-strings/download/@babel/plugin-proposal-json-strings-7.10.4.tgz?cache=0&sync_timestamp=1593521092651&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-json-strings%2Fdownload%2F%40babel%2Fplugin-proposal-json-strings-7.10.4.tgz#593e59c63528160233bd321b1aebe0820c2341db" - integrity sha1-WT5ZxjUoFgIzvTIbGuvgggwjQds= - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-json-strings" "^7.8.0" - -"@babel/plugin-proposal-logical-assignment-operators@^7.12.0": - version "7.12.0" - resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-logical-assignment-operators/download/@babel/plugin-proposal-logical-assignment-operators-7.12.0.tgz?cache=0&sync_timestamp=1602704224051&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-logical-assignment-operators%2Fdownload%2F%40babel%2Fplugin-proposal-logical-assignment-operators-7.12.0.tgz#830d8ff4984d800b2824e8eac0005ecb7430328e" - integrity sha1-gw2P9JhNgAsoJOjqwABey3QwMo4= - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - -"@babel/plugin-proposal-nullish-coalescing-operator@^7.12.0": - version "7.12.0" - resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-nullish-coalescing-operator/download/@babel/plugin-proposal-nullish-coalescing-operator-7.12.0.tgz?cache=0&sync_timestamp=1602704224189&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-nullish-coalescing-operator%2Fdownload%2F%40babel%2Fplugin-proposal-nullish-coalescing-operator-7.12.0.tgz#d82174a531305df4d7079ce3782269b35b810b82" - integrity sha1-2CF0pTEwXfTXB5zjeCJps1uBC4I= - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" - -"@babel/plugin-proposal-numeric-separator@^7.12.0": - version "7.12.0" - resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-numeric-separator/download/@babel/plugin-proposal-numeric-separator-7.12.0.tgz?cache=0&sync_timestamp=1602704224612&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-numeric-separator%2Fdownload%2F%40babel%2Fplugin-proposal-numeric-separator-7.12.0.tgz#76de244152abaf2e72800ab0aebc9771f6de3e9a" - integrity sha1-dt4kQVKrry5ygAqwrryXcfbePpo= - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - -"@babel/plugin-proposal-object-rest-spread@^7.11.0": - version "7.11.0" - resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-object-rest-spread/download/@babel/plugin-proposal-object-rest-spread-7.11.0.tgz#bd81f95a1f746760ea43b6c2d3d62b11790ad0af" - integrity sha1-vYH5Wh90Z2DqQ7bC09YrEXkK0K8= - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-object-rest-spread" "^7.8.0" - "@babel/plugin-transform-parameters" "^7.10.4" - -"@babel/plugin-proposal-optional-catch-binding@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-optional-catch-binding/download/@babel/plugin-proposal-optional-catch-binding-7.10.4.tgz?cache=0&sync_timestamp=1593521089386&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-optional-catch-binding%2Fdownload%2F%40babel%2Fplugin-proposal-optional-catch-binding-7.10.4.tgz#31c938309d24a78a49d68fdabffaa863758554dd" - integrity sha1-Mck4MJ0kp4pJ1o/av/qoY3WFVN0= - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" - -"@babel/plugin-proposal-optional-chaining@^7.12.0": - version "7.12.0" - resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-optional-chaining/download/@babel/plugin-proposal-optional-chaining-7.12.0.tgz?cache=0&sync_timestamp=1602704224502&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-optional-chaining%2Fdownload%2F%40babel%2Fplugin-proposal-optional-chaining-7.12.0.tgz#0159b549f165016fc9f284b8607a58a37a3b71fe" - integrity sha1-AVm1SfFlAW/J8oS4YHpYo3o7cf4= - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-skip-transparent-expression-wrappers" "^7.11.0" - "@babel/plugin-syntax-optional-chaining" "^7.8.0" - -"@babel/plugin-proposal-private-methods@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-private-methods/download/@babel/plugin-proposal-private-methods-7.10.4.tgz?cache=0&sync_timestamp=1593522970831&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-private-methods%2Fdownload%2F%40babel%2Fplugin-proposal-private-methods-7.10.4.tgz#b160d972b8fdba5c7d111a145fc8c421fc2a6909" - integrity sha1-sWDZcrj9ulx9ERoUX8jEIfwqaQk= - dependencies: - "@babel/helper-create-class-features-plugin" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-proposal-unicode-property-regex@^7.10.4", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-unicode-property-regex/download/@babel/plugin-proposal-unicode-property-regex-7.10.4.tgz#4483cda53041ce3413b7fe2f00022665ddfaa75d" - integrity sha1-RIPNpTBBzjQTt/4vAAImZd36p10= - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-async-generators@^7.8.0": - version "7.8.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-async-generators/download/@babel/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" - integrity sha1-qYP7Gusuw/btBCohD2QOkOeG/g0= - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-class-properties@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-class-properties/download/@babel/plugin-syntax-class-properties-7.10.4.tgz?cache=0&sync_timestamp=1593521086484&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-class-properties%2Fdownload%2F%40babel%2Fplugin-syntax-class-properties-7.10.4.tgz#6644e6a0baa55a61f9e3231f6c9eeb6ee46c124c" - integrity sha1-ZkTmoLqlWmH54yMfbJ7rbuRsEkw= - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-decorators@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-decorators/download/@babel/plugin-syntax-decorators-7.10.4.tgz?cache=0&sync_timestamp=1593521097781&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-decorators%2Fdownload%2F%40babel%2Fplugin-syntax-decorators-7.10.4.tgz#6853085b2c429f9d322d02f5a635018cdeb2360c" - integrity sha1-aFMIWyxCn50yLQL1pjUBjN6yNgw= - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-dynamic-import@^7.8.0", "@babel/plugin-syntax-dynamic-import@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-dynamic-import/download/@babel/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" - integrity sha1-Yr+Ysto80h1iYVT8lu5bPLaOrLM= - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-export-namespace-from@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-export-namespace-from/download/@babel/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" - integrity sha1-AolkqbqA28CUyRXEh618TnpmRlo= - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-syntax-json-strings@^7.8.0": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-json-strings/download/@babel/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" - integrity sha1-AcohtmjNghjJ5kDLbdiMVBKyyWo= - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-jsx@^7.0.0", "@babel/plugin-syntax-jsx@^7.2.0", "@babel/plugin-syntax-jsx@^7.8.3": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-jsx/download/@babel/plugin-syntax-jsx-7.10.4.tgz#39abaae3cbf710c4373d8429484e6ba21340166c" - integrity sha1-Oauq48v3EMQ3PYQpSE5rohNAFmw= - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-logical-assignment-operators/download/@babel/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" - integrity sha1-ypHvRjA1MESLkGZSusLp/plB9pk= - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-nullish-coalescing-operator/download/@babel/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" - integrity sha1-Fn7XA2iIYIH3S1w2xlqIwDtm0ak= - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-numeric-separator@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-numeric-separator/download/@babel/plugin-syntax-numeric-separator-7.10.4.tgz?cache=0&sync_timestamp=1593521788128&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-numeric-separator%2Fdownload%2F%40babel%2Fplugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" - integrity sha1-ubBws+M1cM2f0Hun+pHA3Te5r5c= - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-object-rest-spread@^7.8.0": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-object-rest-spread/download/@babel/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" - integrity sha1-YOIl7cvZimQDMqLnLdPmbxr1WHE= - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-catch-binding@^7.8.0": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-optional-catch-binding/download/@babel/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" - integrity sha1-YRGiZbz7Ag6579D9/X0mQCue1sE= - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-chaining@^7.8.0": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-optional-chaining/download/@babel/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" - integrity sha1-T2nCq5UWfgGAzVM2YT+MV4j31Io= - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-top-level-await@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-top-level-await/download/@babel/plugin-syntax-top-level-await-7.10.4.tgz#4bbeb8917b54fcf768364e0a81f560e33a3ef57d" - integrity sha1-S764kXtU/PdoNk4KgfVg4zo+9X0= - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-arrow-functions@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-arrow-functions/download/@babel/plugin-transform-arrow-functions-7.10.4.tgz?cache=0&sync_timestamp=1593521290488&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-arrow-functions%2Fdownload%2F%40babel%2Fplugin-transform-arrow-functions-7.10.4.tgz#e22960d77e697c74f41c501d44d73dbf8a6a64cd" - integrity sha1-4ilg135pfHT0HFAdRNc9v4pqZM0= - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-async-to-generator@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-async-to-generator/download/@babel/plugin-transform-async-to-generator-7.10.4.tgz?cache=0&sync_timestamp=1593522968362&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-async-to-generator%2Fdownload%2F%40babel%2Fplugin-transform-async-to-generator-7.10.4.tgz#41a5017e49eb6f3cda9392a51eef29405b245a37" - integrity sha1-QaUBfknrbzzak5KlHu8pQFskWjc= - dependencies: - "@babel/helper-module-imports" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-remap-async-to-generator" "^7.10.4" - -"@babel/plugin-transform-block-scoped-functions@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-block-scoped-functions/download/@babel/plugin-transform-block-scoped-functions-7.10.4.tgz?cache=0&sync_timestamp=1593522071341&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-block-scoped-functions%2Fdownload%2F%40babel%2Fplugin-transform-block-scoped-functions-7.10.4.tgz#1afa595744f75e43a91af73b0d998ecfe4ebc2e8" - integrity sha1-GvpZV0T3XkOpGvc7DZmOz+Trwug= - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-block-scoping@^7.10.4": - version "7.11.1" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-block-scoping/download/@babel/plugin-transform-block-scoping-7.11.1.tgz#5b7efe98852bef8d652c0b28144cd93a9e4b5215" - integrity sha1-W37+mIUr741lLAsoFEzZOp5LUhU= - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-classes@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-classes/download/@babel/plugin-transform-classes-7.10.4.tgz?cache=0&sync_timestamp=1593522971188&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-classes%2Fdownload%2F%40babel%2Fplugin-transform-classes-7.10.4.tgz#405136af2b3e218bc4a1926228bc917ab1a0adc7" - integrity sha1-QFE2rys+IYvEoZJiKLyRerGgrcc= - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.4" - "@babel/helper-define-map" "^7.10.4" - "@babel/helper-function-name" "^7.10.4" - "@babel/helper-optimise-call-expression" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-replace-supers" "^7.10.4" - "@babel/helper-split-export-declaration" "^7.10.4" - globals "^11.1.0" - -"@babel/plugin-transform-computed-properties@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-computed-properties/download/@babel/plugin-transform-computed-properties-7.10.4.tgz?cache=0&sync_timestamp=1593521290771&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-computed-properties%2Fdownload%2F%40babel%2Fplugin-transform-computed-properties-7.10.4.tgz#9ded83a816e82ded28d52d4b4ecbdd810cdfc0eb" - integrity sha1-ne2DqBboLe0o1S1LTsvdgQzfwOs= - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-destructuring@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-destructuring/download/@babel/plugin-transform-destructuring-7.10.4.tgz?cache=0&sync_timestamp=1593521291443&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-destructuring%2Fdownload%2F%40babel%2Fplugin-transform-destructuring-7.10.4.tgz#70ddd2b3d1bea83d01509e9bb25ddb3a74fc85e5" - integrity sha1-cN3Ss9G+qD0BUJ6bsl3bOnT8heU= - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-dotall-regex@^7.10.4", "@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-dotall-regex/download/@babel/plugin-transform-dotall-regex-7.10.4.tgz?cache=0&sync_timestamp=1593522977820&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-dotall-regex%2Fdownload%2F%40babel%2Fplugin-transform-dotall-regex-7.10.4.tgz#469c2062105c1eb6a040eaf4fac4b488078395ee" - integrity sha1-RpwgYhBcHragQOr0+sS0iAeDle4= - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-duplicate-keys@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-duplicate-keys/download/@babel/plugin-transform-duplicate-keys-7.10.4.tgz#697e50c9fee14380fe843d1f306b295617431e47" - integrity sha1-aX5Qyf7hQ4D+hD0fMGspVhdDHkc= - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-exponentiation-operator@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-exponentiation-operator/download/@babel/plugin-transform-exponentiation-operator-7.10.4.tgz?cache=0&sync_timestamp=1593522967206&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-exponentiation-operator%2Fdownload%2F%40babel%2Fplugin-transform-exponentiation-operator-7.10.4.tgz#5ae338c57f8cf4001bdb35607ae66b92d665af2e" - integrity sha1-WuM4xX+M9AAb2zVgeuZrktZlry4= - dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-for-of@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-for-of/download/@babel/plugin-transform-for-of-7.10.4.tgz?cache=0&sync_timestamp=1593521291715&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-for-of%2Fdownload%2F%40babel%2Fplugin-transform-for-of-7.10.4.tgz#c08892e8819d3a5db29031b115af511dbbfebae9" - integrity sha1-wIiS6IGdOl2ykDGxFa9RHbv+uuk= - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-function-name@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-function-name/download/@babel/plugin-transform-function-name-7.10.4.tgz?cache=0&sync_timestamp=1593522961117&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-function-name%2Fdownload%2F%40babel%2Fplugin-transform-function-name-7.10.4.tgz#6a467880e0fc9638514ba369111811ddbe2644b7" - integrity sha1-akZ4gOD8ljhRS6NpERgR3b4mRLc= - dependencies: - "@babel/helper-function-name" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-literals@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-literals/download/@babel/plugin-transform-literals-7.10.4.tgz?cache=0&sync_timestamp=1593521291903&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-literals%2Fdownload%2F%40babel%2Fplugin-transform-literals-7.10.4.tgz#9f42ba0841100a135f22712d0e391c462f571f3c" - integrity sha1-n0K6CEEQChNfInEtDjkcRi9XHzw= - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-member-expression-literals@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-member-expression-literals/download/@babel/plugin-transform-member-expression-literals-7.10.4.tgz?cache=0&sync_timestamp=1593521293070&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-member-expression-literals%2Fdownload%2F%40babel%2Fplugin-transform-member-expression-literals-7.10.4.tgz#b1ec44fcf195afcb8db2c62cd8e551c881baf8b7" - integrity sha1-sexE/PGVr8uNssYs2OVRyIG6+Lc= - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-modules-amd@^7.10.4": - version "7.10.5" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-modules-amd/download/@babel/plugin-transform-modules-amd-7.10.5.tgz?cache=0&sync_timestamp=1594750712546&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-amd%2Fdownload%2F%40babel%2Fplugin-transform-modules-amd-7.10.5.tgz#1b9cddaf05d9e88b3aad339cb3e445c4f020a9b1" - integrity sha1-G5zdrwXZ6Is6rTOcs+RFxPAgqbE= - dependencies: - "@babel/helper-module-transforms" "^7.10.5" - "@babel/helper-plugin-utils" "^7.10.4" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-commonjs@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-modules-commonjs/download/@babel/plugin-transform-modules-commonjs-7.10.4.tgz?cache=0&sync_timestamp=1593522963909&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-commonjs%2Fdownload%2F%40babel%2Fplugin-transform-modules-commonjs-7.10.4.tgz#66667c3eeda1ebf7896d41f1f16b17105a2fbca0" - integrity sha1-ZmZ8Pu2h6/eJbUHx8WsXEFovvKA= - dependencies: - "@babel/helper-module-transforms" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-simple-access" "^7.10.4" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-systemjs@^7.12.0": - version "7.12.0" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-modules-systemjs/download/@babel/plugin-transform-modules-systemjs-7.12.0.tgz?cache=0&sync_timestamp=1602704228726&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-systemjs%2Fdownload%2F%40babel%2Fplugin-transform-modules-systemjs-7.12.0.tgz#bca842db6980cfc98ae7d0f2c907c9b1df3f874e" - integrity sha1-vKhC22mAz8mK59DyyQfJsd8/h04= - dependencies: - "@babel/helper-hoist-variables" "^7.10.4" - "@babel/helper-module-transforms" "^7.12.0" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-validator-identifier" "^7.10.4" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-umd@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-modules-umd/download/@babel/plugin-transform-modules-umd-7.10.4.tgz?cache=0&sync_timestamp=1593522964232&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-umd%2Fdownload%2F%40babel%2Fplugin-transform-modules-umd-7.10.4.tgz#9a8481fe81b824654b3a0b65da3df89f3d21839e" - integrity sha1-moSB/oG4JGVLOgtl2j34nz0hg54= - dependencies: - "@babel/helper-module-transforms" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-named-capturing-groups-regex@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-named-capturing-groups-regex/download/@babel/plugin-transform-named-capturing-groups-regex-7.10.4.tgz#78b4d978810b6f3bcf03f9e318f2fc0ed41aecb6" - integrity sha1-eLTZeIELbzvPA/njGPL8DtQa7LY= - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.10.4" - -"@babel/plugin-transform-new-target@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-new-target/download/@babel/plugin-transform-new-target-7.10.4.tgz#9097d753cb7b024cb7381a3b2e52e9513a9c6888" - integrity sha1-kJfXU8t7Aky3OBo7LlLpUTqcaIg= - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-object-super@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-object-super/download/@babel/plugin-transform-object-super-7.10.4.tgz?cache=0&sync_timestamp=1593522965761&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-object-super%2Fdownload%2F%40babel%2Fplugin-transform-object-super-7.10.4.tgz#d7146c4d139433e7a6526f888c667e314a093894" - integrity sha1-1xRsTROUM+emUm+IjGZ+MUoJOJQ= - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-replace-supers" "^7.10.4" - -"@babel/plugin-transform-parameters@^7.10.4": - version "7.10.5" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-parameters/download/@babel/plugin-transform-parameters-7.10.5.tgz?cache=0&sync_timestamp=1594750687789&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-parameters%2Fdownload%2F%40babel%2Fplugin-transform-parameters-7.10.5.tgz#59d339d58d0b1950435f4043e74e2510005e2c4a" - integrity sha1-WdM51Y0LGVBDX0BD504lEABeLEo= - dependencies: - "@babel/helper-get-function-arity" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-property-literals@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-property-literals/download/@babel/plugin-transform-property-literals-7.10.4.tgz?cache=0&sync_timestamp=1593521293406&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-property-literals%2Fdownload%2F%40babel%2Fplugin-transform-property-literals-7.10.4.tgz#f6fe54b6590352298785b83edd815d214c42e3c0" - integrity sha1-9v5UtlkDUimHhbg+3YFdIUxC48A= - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-regenerator@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-regenerator/download/@babel/plugin-transform-regenerator-7.10.4.tgz?cache=0&sync_timestamp=1593521089707&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-regenerator%2Fdownload%2F%40babel%2Fplugin-transform-regenerator-7.10.4.tgz#2015e59d839074e76838de2159db421966fd8b63" - integrity sha1-IBXlnYOQdOdoON4hWdtCGWb9i2M= - dependencies: - regenerator-transform "^0.14.2" - -"@babel/plugin-transform-reserved-words@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-reserved-words/download/@babel/plugin-transform-reserved-words-7.10.4.tgz?cache=0&sync_timestamp=1593522978219&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-reserved-words%2Fdownload%2F%40babel%2Fplugin-transform-reserved-words-7.10.4.tgz#8f2682bcdcef9ed327e1b0861585d7013f8a54dd" - integrity sha1-jyaCvNzvntMn4bCGFYXXAT+KVN0= - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-runtime@^7.11.0": - version "7.12.0" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-runtime/download/@babel/plugin-transform-runtime-7.12.0.tgz?cache=0&sync_timestamp=1602704224745&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-runtime%2Fdownload%2F%40babel%2Fplugin-transform-runtime-7.12.0.tgz#01f67ea62662e7de401af7567b6054e6a4807d65" - integrity sha1-AfZ+piZi595AGvdWe2BU5qSAfWU= - dependencies: - "@babel/helper-module-imports" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - resolve "^1.8.1" - semver "^5.5.1" - -"@babel/plugin-transform-shorthand-properties@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-shorthand-properties/download/@babel/plugin-transform-shorthand-properties-7.10.4.tgz?cache=0&sync_timestamp=1593521293679&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-shorthand-properties%2Fdownload%2F%40babel%2Fplugin-transform-shorthand-properties-7.10.4.tgz#9fd25ec5cdd555bb7f473e5e6ee1c971eede4dd6" - integrity sha1-n9Jexc3VVbt/Rz5ebuHJce7eTdY= - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-spread@^7.11.0": - version "7.11.0" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-spread/download/@babel/plugin-transform-spread-7.11.0.tgz#fa84d300f5e4f57752fe41a6d1b3c554f13f17cc" - integrity sha1-+oTTAPXk9XdS/kGm0bPFVPE/F8w= - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-skip-transparent-expression-wrappers" "^7.11.0" - -"@babel/plugin-transform-sticky-regex@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-sticky-regex/download/@babel/plugin-transform-sticky-regex-7.10.4.tgz?cache=0&sync_timestamp=1593521295131&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-sticky-regex%2Fdownload%2F%40babel%2Fplugin-transform-sticky-regex-7.10.4.tgz#8f3889ee8657581130a29d9cc91d7c73b7c4a28d" - integrity sha1-jziJ7oZXWBEwop2cyR18c7fEoo0= - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-regex" "^7.10.4" - -"@babel/plugin-transform-template-literals@^7.10.4": - version "7.10.5" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-template-literals/download/@babel/plugin-transform-template-literals-7.10.5.tgz#78bc5d626a6642db3312d9d0f001f5e7639fde8c" - integrity sha1-eLxdYmpmQtszEtnQ8AH152Of3ow= - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-typeof-symbol@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-typeof-symbol/download/@babel/plugin-transform-typeof-symbol-7.10.4.tgz?cache=0&sync_timestamp=1593522969066&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-typeof-symbol%2Fdownload%2F%40babel%2Fplugin-transform-typeof-symbol-7.10.4.tgz#9509f1a7eec31c4edbffe137c16cc33ff0bc5bfc" - integrity sha1-lQnxp+7DHE7b/+E3wWzDP/C8W/w= - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-unicode-escapes@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-unicode-escapes/download/@babel/plugin-transform-unicode-escapes-7.10.4.tgz?cache=0&sync_timestamp=1593522967875&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-unicode-escapes%2Fdownload%2F%40babel%2Fplugin-transform-unicode-escapes-7.10.4.tgz#feae523391c7651ddac115dae0a9d06857892007" - integrity sha1-/q5SM5HHZR3awRXa4KnQaFeJIAc= - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-unicode-regex@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-unicode-regex/download/@babel/plugin-transform-unicode-regex-7.10.4.tgz#e56d71f9282fac6db09c82742055576d5e6d80a8" - integrity sha1-5W1x+SgvrG2wnIJ0IFVXbV5tgKg= - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/preset-env@^7.11.0": - version "7.12.0" - resolved "https://registry.npm.taobao.org/@babel/preset-env/download/@babel/preset-env-7.12.0.tgz?cache=0&sync_timestamp=1602704222323&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fpreset-env%2Fdownload%2F%40babel%2Fpreset-env-7.12.0.tgz#7d2d0c4f4a14ca0fd7d905a741070ab4745177b7" - integrity sha1-fS0MT0oUyg/X2QWnQQcKtHRRd7c= - dependencies: - "@babel/compat-data" "^7.12.0" - "@babel/helper-compilation-targets" "^7.12.0" - "@babel/helper-module-imports" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-validator-option" "^7.12.0" - "@babel/plugin-proposal-async-generator-functions" "^7.10.4" - "@babel/plugin-proposal-class-properties" "^7.10.4" - "@babel/plugin-proposal-dynamic-import" "^7.10.4" - "@babel/plugin-proposal-export-namespace-from" "^7.12.0" - "@babel/plugin-proposal-json-strings" "^7.10.4" - "@babel/plugin-proposal-logical-assignment-operators" "^7.12.0" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.12.0" - "@babel/plugin-proposal-numeric-separator" "^7.12.0" - "@babel/plugin-proposal-object-rest-spread" "^7.11.0" - "@babel/plugin-proposal-optional-catch-binding" "^7.10.4" - "@babel/plugin-proposal-optional-chaining" "^7.12.0" - "@babel/plugin-proposal-private-methods" "^7.10.4" - "@babel/plugin-proposal-unicode-property-regex" "^7.10.4" - "@babel/plugin-syntax-async-generators" "^7.8.0" - "@babel/plugin-syntax-class-properties" "^7.10.4" - "@babel/plugin-syntax-dynamic-import" "^7.8.0" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - "@babel/plugin-syntax-json-strings" "^7.8.0" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - "@babel/plugin-syntax-object-rest-spread" "^7.8.0" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" - "@babel/plugin-syntax-optional-chaining" "^7.8.0" - "@babel/plugin-syntax-top-level-await" "^7.10.4" - "@babel/plugin-transform-arrow-functions" "^7.10.4" - "@babel/plugin-transform-async-to-generator" "^7.10.4" - "@babel/plugin-transform-block-scoped-functions" "^7.10.4" - "@babel/plugin-transform-block-scoping" "^7.10.4" - "@babel/plugin-transform-classes" "^7.10.4" - "@babel/plugin-transform-computed-properties" "^7.10.4" - "@babel/plugin-transform-destructuring" "^7.10.4" - "@babel/plugin-transform-dotall-regex" "^7.10.4" - "@babel/plugin-transform-duplicate-keys" "^7.10.4" - "@babel/plugin-transform-exponentiation-operator" "^7.10.4" - "@babel/plugin-transform-for-of" "^7.10.4" - "@babel/plugin-transform-function-name" "^7.10.4" - "@babel/plugin-transform-literals" "^7.10.4" - "@babel/plugin-transform-member-expression-literals" "^7.10.4" - "@babel/plugin-transform-modules-amd" "^7.10.4" - "@babel/plugin-transform-modules-commonjs" "^7.10.4" - "@babel/plugin-transform-modules-systemjs" "^7.12.0" - "@babel/plugin-transform-modules-umd" "^7.10.4" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.10.4" - "@babel/plugin-transform-new-target" "^7.10.4" - "@babel/plugin-transform-object-super" "^7.10.4" - "@babel/plugin-transform-parameters" "^7.10.4" - "@babel/plugin-transform-property-literals" "^7.10.4" - "@babel/plugin-transform-regenerator" "^7.10.4" - "@babel/plugin-transform-reserved-words" "^7.10.4" - "@babel/plugin-transform-shorthand-properties" "^7.10.4" - "@babel/plugin-transform-spread" "^7.11.0" - "@babel/plugin-transform-sticky-regex" "^7.10.4" - "@babel/plugin-transform-template-literals" "^7.10.4" - "@babel/plugin-transform-typeof-symbol" "^7.10.4" - "@babel/plugin-transform-unicode-escapes" "^7.10.4" - "@babel/plugin-transform-unicode-regex" "^7.10.4" - "@babel/preset-modules" "^0.1.3" - "@babel/types" "^7.12.0" - browserslist "^4.12.0" - core-js-compat "^3.6.2" - semver "^5.5.0" - -"@babel/preset-modules@^0.1.3": - version "0.1.4" - resolved "https://registry.npm.taobao.org/@babel/preset-modules/download/@babel/preset-modules-0.1.4.tgz?cache=0&sync_timestamp=1598549925898&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fpreset-modules%2Fdownload%2F%40babel%2Fpreset-modules-0.1.4.tgz#362f2b68c662842970fdb5e254ffc8fc1c2e415e" - integrity sha1-Ni8raMZihClw/bXiVP/I/BwuQV4= - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" - "@babel/plugin-transform-dotall-regex" "^7.4.4" - "@babel/types" "^7.4.4" - esutils "^2.0.2" - -"@babel/runtime@^7.11.0", "@babel/runtime@^7.8.4": - version "7.12.0" - resolved "https://registry.npm.taobao.org/@babel/runtime/download/@babel/runtime-7.12.0.tgz?cache=0&sync_timestamp=1602704226437&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.12.0.tgz#98bd7666186969c04be893d747cf4a6c6c8fa6b0" - integrity sha1-mL12ZhhpacBL6JPXR89KbGyPprA= - dependencies: - regenerator-runtime "^0.13.4" - "@babel/template@^7.10.4": version "7.10.4" resolved "https://registry.npm.taobao.org/@babel/template/download/@babel/template-7.10.4.tgz#3251996c4200ebc71d1a8fc405fba940f36ba278" @@ -839,7 +69,7 @@ "@babel/parser" "^7.10.4" "@babel/types" "^7.10.4" -"@babel/traverse@^7.0.0", "@babel/traverse@^7.10.4", "@babel/traverse@^7.12.0", "@babel/traverse@^7.7.0": +"@babel/traverse@^7.7.0": version "7.12.0" resolved "https://registry.npm.taobao.org/@babel/traverse/download/@babel/traverse-7.12.0.tgz?cache=0&sync_timestamp=1602704228239&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftraverse%2Fdownload%2F%40babel%2Ftraverse-7.12.0.tgz#ed31953d6e708cdd34443de2fcdb55f72cdfb266" integrity sha1-7TGVPW5wjN00RD3i/NtV9yzfsmY= @@ -854,7 +84,7 @@ globals "^11.1.0" lodash "^4.17.19" -"@babel/types@^7.0.0", "@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.11.0", "@babel/types@^7.12.0", "@babel/types@^7.4.4", "@babel/types@^7.7.0": +"@babel/types@^7.10.4", "@babel/types@^7.11.0", "@babel/types@^7.12.0", "@babel/types@^7.7.0": version "7.12.0" resolved "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.12.0.tgz?cache=0&sync_timestamp=1602706035058&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.12.0.tgz#b6b49f425ee59043fbc89c61b11a13d5eae7b5c6" integrity sha1-trSfQl7lkEP7yJxhsRoT1erntcY= @@ -863,50 +93,6 @@ lodash "^4.17.19" to-fast-properties "^2.0.0" -"@coolaj86/urequest@^1.3.6": - version "1.3.7" - resolved "https://registry.yarnpkg.com/@coolaj86/urequest/-/urequest-1.3.7.tgz#66a1d66378dd6534e9c8e68948bf09acf32bab77" - integrity sha512-PPrVYra9aWvZjSCKl/x1pJ9ZpXda1652oJrPBYy5rQumJJMkmTBN3ux+sK2xAUwVvv2wnewDlaQaHLxLwSHnIA== - -"@docmirror/mitmproxy@1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@docmirror/mitmproxy/-/mitmproxy-1.0.0.tgz#5d97aa04a187271949e21be10305ec5487eab1d1" - integrity sha512-gtrMtqSbUtVhhEnvsccGl7DfiUAQ1WS76mwQcqc5oCWfCa5Aw1sZVtCIwyfdljb2F1fyaLWm2xtC24gFOkBJfw== - dependencies: - agentkeepalive "^2.1.1" - babel-core "^6.8.0" - babel-plugin-transform-async-to-generator "^6.7.4" - babel-polyfill "^6.8.0" - babel-preset-es2015 "^6.6.0" - babel-register "^6.8.0" - charset "^1.0.0" - child_process "^1.0.2" - colors "^1.1.2" - commander "^2.9.0" - core-js "^3.6.5" - debug "^4.1.1" - dns-over-http "^0.2.0" - dns-over-tls "^0.0.8" - iconv-lite "^0.4.13" - is-browser "^2.1.0" - jschardet "^1.4.1" - json5 "^2.1.3" - lodash "^4.7.0" - lru-cache "^6.0.0" - mkdirp "^0.5.1" - node-cmd "^3.0.0" - node-forge "^0.8.2" - node-mitmproxy "^3.1.1" - node-powershell "^4.0.0" - require-context "^1.1.0" - ssl-root-cas "^1.3.1" - through2 "^2.0.1" - tunnel-agent "^0.4.3" - util "^0.12.3" - validator "^13.1.17" - vue "^2.6.11" - winreg "^1.2.4" - "@hapi/address@2.x.x": version "2.1.4" resolved "https://registry.npm.taobao.org/@hapi/address/download/@hapi/address-2.1.4.tgz?cache=0&sync_timestamp=1593993895205&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Faddress%2Fdownload%2F%40hapi%2Faddress-2.1.4.tgz#5d67ed43f3fd41a69d4b9ff7b56e7c0d1d0a81e5" @@ -939,15 +125,6 @@ dependencies: "@hapi/hoek" "^8.3.0" -"@intervolga/optimize-cssnano-plugin@^1.0.5": - version "1.0.6" - resolved "https://registry.npm.taobao.org/@intervolga/optimize-cssnano-plugin/download/@intervolga/optimize-cssnano-plugin-1.0.6.tgz#be7c7846128b88f6a9b1d1261a0ad06eb5c0fdf8" - integrity sha1-vnx4RhKLiPapsdEmGgrQbrXA/fg= - dependencies: - cssnano "^4.0.0" - cssnano-preset-default "^4.0.0" - postcss "^7.0.0" - "@mrmlnc/readdir-enhanced@^2.2.1": version "2.2.1" resolved "https://registry.npm.taobao.org/@mrmlnc/readdir-enhanced/download/@mrmlnc/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" @@ -961,67 +138,6 @@ resolved "https://registry.npm.taobao.org/@nodelib/fs.stat/download/@nodelib/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" integrity sha1-K1o6s/kYzKSKjHVMCBaOPwPrphs= -"@soda/friendly-errors-webpack-plugin@^1.7.1": - version "1.7.1" - resolved "https://registry.npm.taobao.org/@soda/friendly-errors-webpack-plugin/download/@soda/friendly-errors-webpack-plugin-1.7.1.tgz#706f64bcb4a8b9642b48ae3ace444c70334d615d" - integrity sha1-cG9kvLSouWQrSK46zkRMcDNNYV0= - dependencies: - chalk "^1.1.3" - error-stack-parser "^2.0.0" - string-width "^2.0.0" - -"@soda/get-current-script@^1.0.0": - version "1.0.2" - resolved "https://registry.npm.taobao.org/@soda/get-current-script/download/@soda/get-current-script-1.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40soda%2Fget-current-script%2Fdownload%2F%40soda%2Fget-current-script-1.0.2.tgz#a53515db25d8038374381b73af20bb4f2e508d87" - integrity sha1-pTUV2yXYA4N0OBtzryC7Ty5QjYc= - -"@types/anymatch@*": - version "1.3.1" - resolved "https://registry.npm.taobao.org/@types/anymatch/download/@types/anymatch-1.3.1.tgz#336badc1beecb9dacc38bea2cf32adf627a8421a" - integrity sha1-M2utwb7sudrMOL6izzKt9ieoQho= - -"@types/body-parser@*": - version "1.19.0" - resolved "https://registry.npm.taobao.org/@types/body-parser/download/@types/body-parser-1.19.0.tgz#0685b3c47eb3006ffed117cdd55164b61f80538f" - integrity sha1-BoWzxH6zAG/+0RfN1VFkth+AU48= - dependencies: - "@types/connect" "*" - "@types/node" "*" - -"@types/connect-history-api-fallback@*": - version "1.3.3" - resolved "https://registry.npm.taobao.org/@types/connect-history-api-fallback/download/@types/connect-history-api-fallback-1.3.3.tgz#4772b79b8b53185f0f4c9deab09236baf76ee3b4" - integrity sha1-R3K3m4tTGF8PTJ3qsJI2uvdu47Q= - dependencies: - "@types/express-serve-static-core" "*" - "@types/node" "*" - -"@types/connect@*": - version "3.4.33" - resolved "https://registry.npm.taobao.org/@types/connect/download/@types/connect-3.4.33.tgz?cache=0&sync_timestamp=1596837850490&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fconnect%2Fdownload%2F%40types%2Fconnect-3.4.33.tgz#31610c901eca573b8713c3330abc6e6b9f588546" - integrity sha1-MWEMkB7KVzuHE8MzCrxua59YhUY= - dependencies: - "@types/node" "*" - -"@types/express-serve-static-core@*": - version "4.17.13" - resolved "https://registry.npm.taobao.org/@types/express-serve-static-core/download/@types/express-serve-static-core-4.17.13.tgz?cache=0&sync_timestamp=1600734282121&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fexpress-serve-static-core%2Fdownload%2F%40types%2Fexpress-serve-static-core-4.17.13.tgz#d9af025e925fc8b089be37423b8d1eac781be084" - integrity sha1-2a8CXpJfyLCJvjdCO40erHgb4IQ= - dependencies: - "@types/node" "*" - "@types/qs" "*" - "@types/range-parser" "*" - -"@types/express@*": - version "4.17.8" - resolved "https://registry.npm.taobao.org/@types/express/download/@types/express-4.17.8.tgz?cache=0&sync_timestamp=1598966318122&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fexpress%2Fdownload%2F%40types%2Fexpress-4.17.8.tgz#3df4293293317e61c60137d273a2e96cd8d5f27a" - integrity sha1-PfQpMpMxfmHGATfSc6LpbNjV8no= - dependencies: - "@types/body-parser" "*" - "@types/express-serve-static-core" "*" - "@types/qs" "*" - "@types/serve-static" "*" - "@types/glob@^7.1.1": version "7.1.3" resolved "https://registry.npm.taobao.org/@types/glob/download/@types/glob-7.1.3.tgz?cache=0&sync_timestamp=1596838206290&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fglob%2Fdownload%2F%40types%2Fglob-7.1.3.tgz#e6ba80f36b7daad2c685acd9266382e68985c183" @@ -1030,47 +146,16 @@ "@types/minimatch" "*" "@types/node" "*" -"@types/http-proxy-middleware@*": - version "0.19.3" - resolved "https://registry.npm.taobao.org/@types/http-proxy-middleware/download/@types/http-proxy-middleware-0.19.3.tgz?cache=0&sync_timestamp=1596839386511&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fhttp-proxy-middleware%2Fdownload%2F%40types%2Fhttp-proxy-middleware-0.19.3.tgz#b2eb96fbc0f9ac7250b5d9c4c53aade049497d03" - integrity sha1-suuW+8D5rHJQtdnExTqt4ElJfQM= - dependencies: - "@types/connect" "*" - "@types/http-proxy" "*" - "@types/node" "*" - -"@types/http-proxy@*": - version "1.17.4" - resolved "https://registry.npm.taobao.org/@types/http-proxy/download/@types/http-proxy-1.17.4.tgz?cache=0&sync_timestamp=1596839386031&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fhttp-proxy%2Fdownload%2F%40types%2Fhttp-proxy-1.17.4.tgz#e7c92e3dbe3e13aa799440ff42e6d3a17a9d045b" - integrity sha1-58kuPb4+E6p5lED/QubToXqdBFs= - dependencies: - "@types/node" "*" - -"@types/json-schema@^7.0.5": - version "7.0.6" - resolved "https://registry.npm.taobao.org/@types/json-schema/download/@types/json-schema-7.0.6.tgz?cache=0&sync_timestamp=1598910403749&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fjson-schema%2Fdownload%2F%40types%2Fjson-schema-7.0.6.tgz#f4c7ec43e81b319a9815115031709f26987891f0" - integrity sha1-9MfsQ+gbMZqYFRFQMXCfJph4kfA= - "@types/json5@^0.0.29": version "0.0.29" resolved "https://registry.npm.taobao.org/@types/json5/download/@types/json5-0.0.29.tgz?cache=0&sync_timestamp=1596839392866&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fjson5%2Fdownload%2F%40types%2Fjson5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= -"@types/mime@*": - version "2.0.3" - resolved "https://registry.npm.taobao.org/@types/mime/download/@types/mime-2.0.3.tgz#c893b73721db73699943bfc3653b1deb7faa4a3a" - integrity sha1-yJO3NyHbc2mZQ7/DZTsd63+qSjo= - "@types/minimatch@*": version "3.0.3" resolved "https://registry.npm.taobao.org/@types/minimatch/download/@types/minimatch-3.0.3.tgz?cache=0&sync_timestamp=1596839141589&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fminimatch%2Fdownload%2F%40types%2Fminimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" integrity sha1-PcoOPzOyAPx9ETnAzZbBJoyt/Z0= -"@types/minimist@^1.2.0": - version "1.2.0" - resolved "https://registry.npm.taobao.org/@types/minimist/download/@types/minimist-1.2.0.tgz#69a23a3ad29caf0097f06eda59b361ee2f0639f6" - integrity sha1-aaI6OtKcrwCX8G7aWbNh7i8GOfY= - "@types/node@*": version "14.11.8" resolved "https://registry.npm.taobao.org/@types/node/download/@types/node-14.11.8.tgz#fe2012f2355e4ce08bca44aeb3abbb21cf88d33f" @@ -1081,201 +166,6 @@ resolved "https://registry.npm.taobao.org/@types/normalize-package-data/download/@types/normalize-package-data-2.4.0.tgz?cache=0&sync_timestamp=1596839391651&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnormalize-package-data%2Fdownload%2F%40types%2Fnormalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" integrity sha1-5IbQ2XOW15vu3QpuM/RTT/a0lz4= -"@types/q@^1.5.1": - version "1.5.4" - resolved "https://registry.npm.taobao.org/@types/q/download/@types/q-1.5.4.tgz#15925414e0ad2cd765bfef58842f7e26a7accb24" - integrity sha1-FZJUFOCtLNdlv+9YhC9+JqesyyQ= - -"@types/qs@*": - version "6.9.5" - resolved "https://registry.npm.taobao.org/@types/qs/download/@types/qs-6.9.5.tgz?cache=0&sync_timestamp=1600295893721&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fqs%2Fdownload%2F%40types%2Fqs-6.9.5.tgz#434711bdd49eb5ee69d90c1d67c354a9a8ecb18b" - integrity sha1-Q0cRvdSete5p2QwdZ8NUqajssYs= - -"@types/range-parser@*": - version "1.2.3" - resolved "https://registry.npm.taobao.org/@types/range-parser/download/@types/range-parser-1.2.3.tgz#7ee330ba7caafb98090bece86a5ee44115904c2c" - integrity sha1-fuMwunyq+5gJC+zoal7kQRWQTCw= - -"@types/serve-static@*": - version "1.13.5" - resolved "https://registry.npm.taobao.org/@types/serve-static/download/@types/serve-static-1.13.5.tgz?cache=0&sync_timestamp=1596840339942&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fserve-static%2Fdownload%2F%40types%2Fserve-static-1.13.5.tgz#3d25d941a18415d3ab092def846e135a08bbcf53" - integrity sha1-PSXZQaGEFdOrCS3vhG4TWgi7z1M= - dependencies: - "@types/express-serve-static-core" "*" - "@types/mime" "*" - -"@types/source-list-map@*": - version "0.1.2" - resolved "https://registry.npm.taobao.org/@types/source-list-map/download/@types/source-list-map-0.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fsource-list-map%2Fdownload%2F%40types%2Fsource-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9" - integrity sha1-AHiDYGP/rxdBI0m7o2QIfgrALsk= - -"@types/tapable@*": - version "1.0.6" - resolved "https://registry.npm.taobao.org/@types/tapable/download/@types/tapable-1.0.6.tgz#a9ca4b70a18b270ccb2bc0aaafefd1d486b7ea74" - integrity sha1-qcpLcKGLJwzLK8Cqr+/R1Ia36nQ= - -"@types/uglify-js@*": - version "3.11.0" - resolved "https://registry.npm.taobao.org/@types/uglify-js/download/@types/uglify-js-3.11.0.tgz#2868d405cc45cd9dc3069179052103032c33afbc" - integrity sha1-KGjUBcxFzZ3DBpF5BSEDAywzr7w= - dependencies: - source-map "^0.6.1" - -"@types/webpack-dev-server@^3.11.0": - version "3.11.0" - resolved "https://registry.npm.taobao.org/@types/webpack-dev-server/download/@types/webpack-dev-server-3.11.0.tgz?cache=0&sync_timestamp=1596841577349&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fwebpack-dev-server%2Fdownload%2F%40types%2Fwebpack-dev-server-3.11.0.tgz#bcc3b85e7dc6ac2db25330610513f2228c2fcfb2" - integrity sha1-vMO4Xn3GrC2yUzBhBRPyIowvz7I= - dependencies: - "@types/connect-history-api-fallback" "*" - "@types/express" "*" - "@types/http-proxy-middleware" "*" - "@types/serve-static" "*" - "@types/webpack" "*" - -"@types/webpack-sources@*": - version "2.0.0" - resolved "https://registry.npm.taobao.org/@types/webpack-sources/download/@types/webpack-sources-2.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fwebpack-sources%2Fdownload%2F%40types%2Fwebpack-sources-2.0.0.tgz#08216ab9be2be2e1499beaebc4d469cec81e82a7" - integrity sha1-CCFqub4r4uFJm+rrxNRpzsgegqc= - dependencies: - "@types/node" "*" - "@types/source-list-map" "*" - source-map "^0.7.3" - -"@types/webpack@*", "@types/webpack@^4.0.0": - version "4.41.22" - resolved "https://registry.npm.taobao.org/@types/webpack/download/@types/webpack-4.41.22.tgz#ff9758a17c6bd499e459b91e78539848c32d0731" - integrity sha1-/5dYoXxr1JnkWbkeeFOYSMMtBzE= - dependencies: - "@types/anymatch" "*" - "@types/node" "*" - "@types/tapable" "*" - "@types/uglify-js" "*" - "@types/webpack-sources" "*" - source-map "^0.6.0" - -"@vue/babel-helper-vue-jsx-merge-props@^1.0.0": - version "1.0.0" - resolved "https://registry.npm.taobao.org/@vue/babel-helper-vue-jsx-merge-props/download/@vue/babel-helper-vue-jsx-merge-props-1.0.0.tgz?cache=0&sync_timestamp=1596768129236&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-helper-vue-jsx-merge-props%2Fdownload%2F%40vue%2Fbabel-helper-vue-jsx-merge-props-1.0.0.tgz#048fe579958da408fb7a8b2a3ec050b50a661040" - integrity sha1-BI/leZWNpAj7eosqPsBQtQpmEEA= - -"@vue/babel-helper-vue-transform-on@^1.0.0-rc.2": - version "1.0.0-rc.2" - resolved "https://registry.npm.taobao.org/@vue/babel-helper-vue-transform-on/download/@vue/babel-helper-vue-transform-on-1.0.0-rc.2.tgz#7246341f666e7c6e65b13da420e2ce85714fbbca" - integrity sha1-ckY0H2ZufG5lsT2kIOLOhXFPu8o= - -"@vue/babel-plugin-jsx@^1.0.0-0": - version "1.0.0-rc.3" - resolved "https://registry.npm.taobao.org/@vue/babel-plugin-jsx/download/@vue/babel-plugin-jsx-1.0.0-rc.3.tgz?cache=0&sync_timestamp=1600074484657&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-plugin-jsx%2Fdownload%2F%40vue%2Fbabel-plugin-jsx-1.0.0-rc.3.tgz#ab477ee95c764fbe68842a2eddd474f122e70ac6" - integrity sha1-q0d+6Vx2T75ohCou3dR08SLnCsY= - dependencies: - "@babel/helper-module-imports" "^7.0.0" - "@babel/plugin-syntax-jsx" "^7.0.0" - "@babel/traverse" "^7.0.0" - "@babel/types" "^7.0.0" - "@vue/babel-helper-vue-transform-on" "^1.0.0-rc.2" - camelcase "^6.0.0" - html-tags "^3.1.0" - svg-tags "^1.0.0" - -"@vue/babel-plugin-transform-vue-jsx@^1.1.2": - version "1.1.2" - resolved "https://registry.npm.taobao.org/@vue/babel-plugin-transform-vue-jsx/download/@vue/babel-plugin-transform-vue-jsx-1.1.2.tgz#c0a3e6efc022e75e4247b448a8fc6b86f03e91c0" - integrity sha1-wKPm78Ai515CR7RIqPxrhvA+kcA= - dependencies: - "@babel/helper-module-imports" "^7.0.0" - "@babel/plugin-syntax-jsx" "^7.2.0" - "@vue/babel-helper-vue-jsx-merge-props" "^1.0.0" - html-tags "^2.0.0" - lodash.kebabcase "^4.1.1" - svg-tags "^1.0.0" - -"@vue/babel-preset-app@^4.5.7": - version "4.5.7" - resolved "https://registry.npm.taobao.org/@vue/babel-preset-app/download/@vue/babel-preset-app-4.5.7.tgz?cache=0&sync_timestamp=1602060135846&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-preset-app%2Fdownload%2F%40vue%2Fbabel-preset-app-4.5.7.tgz#3c0f97edad332e3a85e372d3f770a44f3d46fd34" - integrity sha1-PA+X7a0zLjqF43LT93CkTz1G/TQ= - dependencies: - "@babel/core" "^7.11.0" - "@babel/helper-compilation-targets" "^7.9.6" - "@babel/helper-module-imports" "^7.8.3" - "@babel/plugin-proposal-class-properties" "^7.8.3" - "@babel/plugin-proposal-decorators" "^7.8.3" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - "@babel/plugin-syntax-jsx" "^7.8.3" - "@babel/plugin-transform-runtime" "^7.11.0" - "@babel/preset-env" "^7.11.0" - "@babel/runtime" "^7.11.0" - "@vue/babel-plugin-jsx" "^1.0.0-0" - "@vue/babel-preset-jsx" "^1.1.2" - babel-plugin-dynamic-import-node "^2.3.3" - core-js "^3.6.5" - core-js-compat "^3.6.5" - semver "^6.1.0" - -"@vue/babel-preset-jsx@^1.1.2": - version "1.1.2" - resolved "https://registry.npm.taobao.org/@vue/babel-preset-jsx/download/@vue/babel-preset-jsx-1.1.2.tgz#2e169eb4c204ea37ca66c2ea85a880bfc99d4f20" - integrity sha1-LhaetMIE6jfKZsLqhaiAv8mdTyA= - dependencies: - "@vue/babel-helper-vue-jsx-merge-props" "^1.0.0" - "@vue/babel-plugin-transform-vue-jsx" "^1.1.2" - "@vue/babel-sugar-functional-vue" "^1.1.2" - "@vue/babel-sugar-inject-h" "^1.1.2" - "@vue/babel-sugar-v-model" "^1.1.2" - "@vue/babel-sugar-v-on" "^1.1.2" - -"@vue/babel-sugar-functional-vue@^1.1.2": - version "1.1.2" - resolved "https://registry.npm.taobao.org/@vue/babel-sugar-functional-vue/download/@vue/babel-sugar-functional-vue-1.1.2.tgz#f7e24fba09e6f1ee70104560a8808057555f1a9a" - integrity sha1-9+JPugnm8e5wEEVgqICAV1VfGpo= - dependencies: - "@babel/plugin-syntax-jsx" "^7.2.0" - -"@vue/babel-sugar-inject-h@^1.1.2": - version "1.1.2" - resolved "https://registry.npm.taobao.org/@vue/babel-sugar-inject-h/download/@vue/babel-sugar-inject-h-1.1.2.tgz#8a5276b6d8e2ed16ffc8078aad94236274e6edf0" - integrity sha1-ilJ2ttji7Rb/yAeKrZQjYnTm7fA= - dependencies: - "@babel/plugin-syntax-jsx" "^7.2.0" - -"@vue/babel-sugar-v-model@^1.1.2": - version "1.1.2" - resolved "https://registry.npm.taobao.org/@vue/babel-sugar-v-model/download/@vue/babel-sugar-v-model-1.1.2.tgz#1ff6fd1b800223fc9cb1e84dceb5e52d737a8192" - integrity sha1-H/b9G4ACI/ycsehNzrXlLXN6gZI= - dependencies: - "@babel/plugin-syntax-jsx" "^7.2.0" - "@vue/babel-helper-vue-jsx-merge-props" "^1.0.0" - "@vue/babel-plugin-transform-vue-jsx" "^1.1.2" - camelcase "^5.0.0" - html-tags "^2.0.0" - svg-tags "^1.0.0" - -"@vue/babel-sugar-v-on@^1.1.2": - version "1.1.2" - resolved "https://registry.npm.taobao.org/@vue/babel-sugar-v-on/download/@vue/babel-sugar-v-on-1.1.2.tgz#b2ef99b8f2fab09fbead25aad70ef42e1cf5b13b" - integrity sha1-su+ZuPL6sJ++rSWq1w70Lhz1sTs= - dependencies: - "@babel/plugin-syntax-jsx" "^7.2.0" - "@vue/babel-plugin-transform-vue-jsx" "^1.1.2" - camelcase "^5.0.0" - -"@vue/cli-overlay@^4.5.7": - version "4.5.7" - resolved "https://registry.npm.taobao.org/@vue/cli-overlay/download/@vue/cli-overlay-4.5.7.tgz?cache=0&sync_timestamp=1602060152047&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fcli-overlay%2Fdownload%2F%40vue%2Fcli-overlay-4.5.7.tgz#44d78e859d5c7d3dd98b9c967f9ad9a3584b908b" - integrity sha1-RNeOhZ1cfT3Zi5yWf5rZo1hLkIs= - -"@vue/cli-plugin-babel@~4.5.0": - version "4.5.7" - resolved "https://registry.npm.taobao.org/@vue/cli-plugin-babel/download/@vue/cli-plugin-babel-4.5.7.tgz?cache=0&sync_timestamp=1602060138256&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fcli-plugin-babel%2Fdownload%2F%40vue%2Fcli-plugin-babel-4.5.7.tgz#54018316a41afc5445e697557e200dd77992325a" - integrity sha1-VAGDFqQa/FRF5pdVfiAN13mSMlo= - dependencies: - "@babel/core" "^7.11.0" - "@vue/babel-preset-app" "^4.5.7" - "@vue/cli-shared-utils" "^4.5.7" - babel-loader "^8.1.0" - cache-loader "^4.1.0" - thread-loader "^2.1.3" - webpack "^4.0.0" - "@vue/cli-plugin-eslint@~4.5.0": version "4.5.7" resolved "https://registry.npm.taobao.org/@vue/cli-plugin-eslint/download/@vue/cli-plugin-eslint-4.5.7.tgz?cache=0&sync_timestamp=1602060137408&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fcli-plugin-eslint%2Fdownload%2F%40vue%2Fcli-plugin-eslint-4.5.7.tgz#e66c0011f8d58bd86ee525f2062c6dab2c4272da" @@ -1288,81 +178,6 @@ webpack "^4.0.0" yorkie "^2.0.0" -"@vue/cli-plugin-router@^4.5.7": - version "4.5.7" - resolved "https://registry.npm.taobao.org/@vue/cli-plugin-router/download/@vue/cli-plugin-router-4.5.7.tgz?cache=0&sync_timestamp=1602060137675&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fcli-plugin-router%2Fdownload%2F%40vue%2Fcli-plugin-router-4.5.7.tgz#65873dcdf8a27a65733ba2d015ff82c0c03f6119" - integrity sha1-ZYc9zfiiemVzO6LQFf+CwMA/YRk= - dependencies: - "@vue/cli-shared-utils" "^4.5.7" - -"@vue/cli-plugin-vuex@^4.5.7": - version "4.5.7" - resolved "https://registry.npm.taobao.org/@vue/cli-plugin-vuex/download/@vue/cli-plugin-vuex-4.5.7.tgz?cache=0&sync_timestamp=1602060141811&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fcli-plugin-vuex%2Fdownload%2F%40vue%2Fcli-plugin-vuex-4.5.7.tgz#56bae6c1c366544612e995e5236d86a28d54e838" - integrity sha1-VrrmwcNmVEYS6ZXlI22Goo1U6Dg= - -"@vue/cli-service@~4.5.0": - version "4.5.7" - resolved "https://registry.npm.taobao.org/@vue/cli-service/download/@vue/cli-service-4.5.7.tgz?cache=0&sync_timestamp=1602060205978&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fcli-service%2Fdownload%2F%40vue%2Fcli-service-4.5.7.tgz#dbbd7209b493c95c4da82ebc0102f29d2b7e2964" - integrity sha1-271yCbSTyVxNqC68AQLynSt+KWQ= - dependencies: - "@intervolga/optimize-cssnano-plugin" "^1.0.5" - "@soda/friendly-errors-webpack-plugin" "^1.7.1" - "@soda/get-current-script" "^1.0.0" - "@types/minimist" "^1.2.0" - "@types/webpack" "^4.0.0" - "@types/webpack-dev-server" "^3.11.0" - "@vue/cli-overlay" "^4.5.7" - "@vue/cli-plugin-router" "^4.5.7" - "@vue/cli-plugin-vuex" "^4.5.7" - "@vue/cli-shared-utils" "^4.5.7" - "@vue/component-compiler-utils" "^3.1.2" - "@vue/preload-webpack-plugin" "^1.1.0" - "@vue/web-component-wrapper" "^1.2.0" - acorn "^7.4.0" - acorn-walk "^7.1.1" - address "^1.1.2" - autoprefixer "^9.8.6" - browserslist "^4.12.0" - cache-loader "^4.1.0" - case-sensitive-paths-webpack-plugin "^2.3.0" - cli-highlight "^2.1.4" - clipboardy "^2.3.0" - cliui "^6.0.0" - copy-webpack-plugin "^5.1.1" - css-loader "^3.5.3" - cssnano "^4.1.10" - debug "^4.1.1" - default-gateway "^5.0.5" - dotenv "^8.2.0" - dotenv-expand "^5.1.0" - file-loader "^4.2.0" - fs-extra "^7.0.1" - globby "^9.2.0" - hash-sum "^2.0.0" - html-webpack-plugin "^3.2.0" - launch-editor-middleware "^2.2.1" - lodash.defaultsdeep "^4.6.1" - lodash.mapvalues "^4.6.0" - lodash.transform "^4.6.0" - mini-css-extract-plugin "^0.9.0" - minimist "^1.2.5" - pnp-webpack-plugin "^1.6.4" - portfinder "^1.0.26" - postcss-loader "^3.0.0" - ssri "^7.1.0" - terser-webpack-plugin "^2.3.6" - thread-loader "^2.1.3" - url-loader "^2.2.0" - vue-loader "^15.9.2" - vue-style-loader "^4.1.2" - webpack "^4.0.0" - webpack-bundle-analyzer "^3.8.0" - webpack-chain "^6.4.0" - webpack-dev-server "^3.11.0" - webpack-merge "^4.2.2" - optionalDependencies: - vue-loader-v16 "npm:vue-loader@^16.0.0-beta.7" - "@vue/cli-shared-utils@^4.5.7": version "4.5.7" resolved "https://registry.npm.taobao.org/@vue/cli-shared-utils/download/@vue/cli-shared-utils-4.5.7.tgz?cache=0&sync_timestamp=1602060136132&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fcli-shared-utils%2Fdownload%2F%40vue%2Fcli-shared-utils-4.5.7.tgz#b8e911c2f9b6b77123f5d26988b9613d92dcda95" @@ -1381,22 +196,6 @@ semver "^6.1.0" strip-ansi "^6.0.0" -"@vue/component-compiler-utils@^3.1.0", "@vue/component-compiler-utils@^3.1.2": - version "3.2.0" - resolved "https://registry.npm.taobao.org/@vue/component-compiler-utils/download/@vue/component-compiler-utils-3.2.0.tgz?cache=0&sync_timestamp=1595427628913&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fcomponent-compiler-utils%2Fdownload%2F%40vue%2Fcomponent-compiler-utils-3.2.0.tgz#8f85182ceed28e9b3c75313de669f83166d11e5d" - integrity sha1-j4UYLO7Sjps8dTE95mn4MWbRHl0= - dependencies: - consolidate "^0.15.1" - hash-sum "^1.0.2" - lru-cache "^4.1.2" - merge-source-map "^1.1.0" - postcss "^7.0.14" - postcss-selector-parser "^6.0.2" - source-map "~0.6.1" - vue-template-es2015-compiler "^1.9.0" - optionalDependencies: - prettier "^1.18.2" - "@vue/eslint-config-standard@^5.1.2": version "5.1.2" resolved "https://registry.npm.taobao.org/@vue/eslint-config-standard/download/@vue/eslint-config-standard-5.1.2.tgz#c5d55af894a3ae23b65b1af4a425777ac0170b42" @@ -1406,16 +205,6 @@ eslint-import-resolver-node "^0.3.3" eslint-import-resolver-webpack "^0.12.1" -"@vue/preload-webpack-plugin@^1.1.0": - version "1.1.2" - resolved "https://registry.npm.taobao.org/@vue/preload-webpack-plugin/download/@vue/preload-webpack-plugin-1.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fpreload-webpack-plugin%2Fdownload%2F%40vue%2Fpreload-webpack-plugin-1.1.2.tgz#ceb924b4ecb3b9c43871c7a429a02f8423e621ab" - integrity sha1-zrkktOyzucQ4ccekKaAvhCPmIas= - -"@vue/web-component-wrapper@^1.2.0": - version "1.2.0" - resolved "https://registry.npm.taobao.org/@vue/web-component-wrapper/download/@vue/web-component-wrapper-1.2.0.tgz#bb0e46f1585a7e289b4ee6067dcc5a6ae62f1dd1" - integrity sha1-uw5G8VhafiibTuYGfcxaauYvHdE= - "@webassemblyjs/ast@1.9.0": version "1.9.0" resolved "https://registry.npm.taobao.org/@webassemblyjs/ast/download/@webassemblyjs/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" @@ -1579,63 +368,37 @@ accept@^3.1.3: boom "7.x.x" hoek "6.x.x" -accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: - version "1.3.7" - resolved "https://registry.npm.taobao.org/accepts/download/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" - integrity sha1-UxvHJlF6OytB+FACHGzBXqq1B80= - dependencies: - mime-types "~2.1.24" - negotiator "0.6.2" - acorn-jsx@^5.2.0: version "5.3.1" resolved "https://registry.npm.taobao.org/acorn-jsx/download/acorn-jsx-5.3.1.tgz?cache=0&sync_timestamp=1599499155970&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn-jsx%2Fdownload%2Facorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b" integrity sha1-/IZh4Rt6wVOcR9v+oucrOvNNJns= -acorn-walk@^7.1.1: - version "7.2.0" - resolved "https://registry.npm.taobao.org/acorn-walk/download/acorn-walk-7.2.0.tgz?cache=0&sync_timestamp=1597235855275&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn-walk%2Fdownload%2Facorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" - integrity sha1-DeiJpgEgOQmw++B7iTjcIdLpZ7w= - acorn@^6.4.1: version "6.4.2" resolved "https://registry.npm.taobao.org/acorn/download/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" integrity sha1-NYZv1xBSjpLeEM8GAWSY5H454eY= -acorn@^7.1.1, acorn@^7.4.0: +acorn@^7.1.1: version "7.4.1" resolved "https://registry.npm.taobao.org/acorn/download/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo= -address@^1.1.2: - version "1.1.2" - resolved "https://registry.npm.taobao.org/address/download/address-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6" - integrity sha1-vxEWycdYxRt6kz0pa3LCIe2UKLY= - agentkeepalive@^2.1.1: version "2.2.0" resolved "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-2.2.0.tgz#c5d1bd4b129008f1163f236f86e5faea2026e2ef" integrity sha1-xdG9SxKQCPEWPyNvhuX66iAm4u8= -aggregate-error@^3.0.0: - version "3.1.0" - resolved "https://registry.npm.taobao.org/aggregate-error/download/aggregate-error-3.1.0.tgz?cache=0&sync_timestamp=1598049717562&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Faggregate-error%2Fdownload%2Faggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" - integrity sha1-kmcP9Q9TWb23o+DUDQ7DDFc3aHo= - dependencies: - clean-stack "^2.0.0" - indent-string "^4.0.0" - ajv-errors@^1.0.0: version "1.0.1" resolved "https://registry.npm.taobao.org/ajv-errors/download/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" integrity sha1-81mGrOuRr63sQQL72FAUlQzvpk0= -ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: +ajv-keywords@^3.1.0, ajv-keywords@^3.4.1: version "3.5.2" resolved "https://registry.npm.taobao.org/ajv-keywords/download/ajv-keywords-3.5.2.tgz?cache=0&sync_timestamp=1595907068314&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv-keywords%2Fdownload%2Fajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" integrity sha1-MfKdpatuANHC0yms97WSlhTVAU0= -ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4: +ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3: version "6.12.6" resolved "https://registry.npm.taobao.org/ajv/download/ajv-6.12.6.tgz?cache=0&sync_timestamp=1602353715225&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv%2Fdownload%2Fajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ= @@ -1645,16 +408,6 @@ ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -alphanum-sort@^1.0.0: - version "1.0.2" - resolved "https://registry.npm.taobao.org/alphanum-sort/download/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" - integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= - -ansi-colors@^3.0.0: - version "3.2.4" - resolved "https://registry.npm.taobao.org/ansi-colors/download/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" - integrity sha1-46PaS/uubIapwoViXeEkojQCb78= - ansi-escapes@^4.2.1: version "4.3.1" resolved "https://registry.npm.taobao.org/ansi-escapes/download/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61" @@ -1662,21 +415,6 @@ ansi-escapes@^4.2.1: dependencies: type-fest "^0.11.0" -ansi-html@0.0.7: - version "0.0.7" - resolved "https://registry.npm.taobao.org/ansi-html/download/ansi-html-0.0.7.tgz?cache=0&sync_timestamp=1589682753624&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-html%2Fdownload%2Fansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" - integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4= - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= - -ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= - ansi-regex@^4.1.0: version "4.1.0" resolved "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" @@ -1687,11 +425,6 @@ ansi-regex@^5.0.0: resolved "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" integrity sha1-OIU59VF5vzkznIGvMKZU1p+Hy3U= -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= - ansi-styles@^3.2.0, ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1601839122515&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" @@ -1699,18 +432,13 @@ ansi-styles@^3.2.0, ansi-styles@^3.2.1: dependencies: color-convert "^1.9.0" -ansi-styles@^4.0.0, ansi-styles@^4.1.0: +ansi-styles@^4.1.0: version "4.3.0" resolved "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1601839122515&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" integrity sha1-7dgDYornHATIWuegkG7a00tkiTc= dependencies: color-convert "^2.0.1" -any-promise@^1.0.0: - version "1.3.0" - resolved "https://registry.npm.taobao.org/any-promise/download/any-promise-1.3.0.tgz?cache=0&sync_timestamp=1589682733115&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fany-promise%2Fdownload%2Fany-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" - integrity sha1-q8av7tzqUugJzcA3au0845Y10X8= - anymatch@^2.0.0: version "2.0.0" resolved "https://registry.npm.taobao.org/anymatch/download/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" @@ -1732,11 +460,6 @@ aproba@^1.1.1: resolved "https://registry.npm.taobao.org/aproba/download/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" integrity sha1-aALmJk79GMeQobDVF/DyYnvyyUo= -arch@^2.1.1: - version "2.1.2" - resolved "https://registry.npm.taobao.org/arch/download/arch-2.1.2.tgz#0c52bbe7344bb4fa260c443d2cbad9c00ff2f0bf" - integrity sha1-DFK75zRLtPomDEQ9LLrZwA/y8L8= - argparse@^1.0.7: version "1.0.10" resolved "https://registry.npm.taobao.org/argparse/download/argparse-1.0.10.tgz?cache=0&sync_timestamp=1598649734444&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fargparse%2Fdownload%2Fargparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" @@ -1769,16 +492,6 @@ array-find@^1.0.0: resolved "https://registry.npm.taobao.org/array-find/download/array-find-1.0.0.tgz#6c8e286d11ed768327f8e62ecee87353ca3e78b8" integrity sha1-bI4obRHtdoMn+OYuzuhzU8o+eLg= -array-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.npm.taobao.org/array-flatten/download/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= - -array-flatten@^2.1.0: - version "2.1.2" - resolved "https://registry.npm.taobao.org/array-flatten/download/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" - integrity sha1-JO+AoowaiTYX4hSbDG0NeIKTsJk= - array-includes@^3.1.1: version "3.1.1" resolved "https://registry.npm.taobao.org/array-includes/download/array-includes-3.1.1.tgz#cdd67e6852bdf9c1215460786732255ed2459348" @@ -1788,7 +501,7 @@ array-includes@^3.1.1: es-abstract "^1.17.0" is-string "^1.0.5" -array-union@^1.0.1, array-union@^1.0.2: +array-union@^1.0.2: version "1.0.2" resolved "https://registry.npm.taobao.org/array-union/download/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= @@ -1858,18 +571,6 @@ async-each@^1.0.1: resolved "https://registry.npm.taobao.org/async-each/download/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" integrity sha1-tyfb+H12UWAvBvTUrDh/R9kbDL8= -async-limiter@~1.0.0: - version "1.0.1" - resolved "https://registry.npm.taobao.org/async-limiter/download/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" - integrity sha1-3TeelPDbgxCwgpH51kwyCXZmF/0= - -async@^2.6.2: - version "2.6.3" - resolved "https://registry.npm.taobao.org/async/download/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" - integrity sha1-1yYl4jRKNlbjo61Pp0n6gymdgv8= - dependencies: - lodash "^4.17.14" - asynckit@^0.4.0: version "0.4.0" resolved "https://registry.npm.taobao.org/asynckit/download/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" @@ -1880,19 +581,6 @@ atob@^2.1.2: resolved "https://registry.npm.taobao.org/atob/download/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha1-bZUX654DDSQ2ZmZR6GvZ9vE1M8k= -autoprefixer@^9.8.6: - version "9.8.6" - resolved "https://registry.npm.taobao.org/autoprefixer/download/autoprefixer-9.8.6.tgz?cache=0&sync_timestamp=1601167582745&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fautoprefixer%2Fdownload%2Fautoprefixer-9.8.6.tgz#3b73594ca1bf9266320c5acf1588d74dea74210f" - integrity sha1-O3NZTKG/kmYyDFrPFYjXTep0IQ8= - dependencies: - browserslist "^4.12.0" - caniuse-lite "^1.0.30001109" - colorette "^1.2.1" - normalize-range "^0.1.2" - num2fraction "^1.2.2" - postcss "^7.0.32" - postcss-value-parser "^4.1.0" - available-typed-arrays@^1.0.0, available-typed-arrays@^1.0.2: version "1.0.2" resolved "https://registry.npm.taobao.org/available-typed-arrays/download/available-typed-arrays-1.0.2.tgz#6b098ca9d8039079ee3f77f7b783c4480ba513f5" @@ -1910,40 +598,6 @@ aws4@^1.8.0: resolved "https://registry.npm.taobao.org/aws4/download/aws4-1.10.1.tgz?cache=0&sync_timestamp=1597236947743&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Faws4%2Fdownload%2Faws4-1.10.1.tgz#e1e82e4f3e999e2cfd61b161280d16a111f86428" integrity sha1-4eguTz6Zniz9YbFhKA0WoRH4ZCg= -babel-code-frame@^6.26.0: - version "6.26.0" - resolved "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" - integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= - dependencies: - chalk "^1.1.3" - esutils "^2.0.2" - js-tokens "^3.0.2" - -babel-core@^6.26.0, babel-core@^6.8.0: - version "6.26.3" - resolved "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" - integrity sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA== - dependencies: - babel-code-frame "^6.26.0" - babel-generator "^6.26.0" - babel-helpers "^6.24.1" - babel-messages "^6.23.0" - babel-register "^6.26.0" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - convert-source-map "^1.5.1" - debug "^2.6.9" - json5 "^0.5.1" - lodash "^4.17.4" - minimatch "^3.0.4" - path-is-absolute "^1.0.1" - private "^0.1.8" - slash "^1.0.0" - source-map "^0.5.7" - babel-eslint@^10.1.0: version "10.1.0" resolved "https://registry.npm.taobao.org/babel-eslint/download/babel-eslint-10.1.0.tgz?cache=0&sync_timestamp=1599054223324&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-eslint%2Fdownload%2Fbabel-eslint-10.1.0.tgz#6968e568a910b78fb3779cdd8b6ac2f479943232" @@ -1956,467 +610,6 @@ babel-eslint@^10.1.0: eslint-visitor-keys "^1.0.0" resolve "^1.12.0" -babel-generator@^6.26.0: - version "6.26.1" - resolved "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" - integrity sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA== - dependencies: - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - detect-indent "^4.0.0" - jsesc "^1.3.0" - lodash "^4.17.4" - source-map "^0.5.7" - trim-right "^1.0.1" - -babel-helper-call-delegate@^6.24.1: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" - integrity sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340= - dependencies: - babel-helper-hoist-variables "^6.24.1" - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-define-map@^6.24.1: - version "6.26.0" - resolved "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f" - integrity sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8= - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-helper-function-name@^6.24.1: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" - integrity sha1-00dbjAPtmCQqJbSDUasYOZ01gKk= - dependencies: - babel-helper-get-function-arity "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-get-function-arity@^6.24.1: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" - integrity sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0= - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-hoist-variables@^6.24.1: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" - integrity sha1-HssnaJydJVE+rbyZFKc/VAi+enY= - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-optimise-call-expression@^6.24.1: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" - integrity sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc= - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-regex@^6.24.1: - version "6.26.0" - resolved "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72" - integrity sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI= - dependencies: - babel-runtime "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-helper-remap-async-to-generator@^6.24.1: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b" - integrity sha1-XsWBgnrXI/7N04HxySg5BnbkVRs= - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-replace-supers@^6.24.1: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" - integrity sha1-v22/5Dk40XNpohPKiov3S2qQqxo= - dependencies: - babel-helper-optimise-call-expression "^6.24.1" - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helpers@^6.24.1: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" - integrity sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI= - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-loader@^8.1.0: - version "8.1.0" - resolved "https://registry.npm.taobao.org/babel-loader/download/babel-loader-8.1.0.tgz#c611d5112bd5209abe8b9fa84c3e4da25275f1c3" - integrity sha1-xhHVESvVIJq+i5+oTD5NolJ18cM= - dependencies: - find-cache-dir "^2.1.0" - loader-utils "^1.4.0" - mkdirp "^0.5.3" - pify "^4.0.1" - schema-utils "^2.6.5" - -babel-messages@^6.23.0: - version "6.23.0" - resolved "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" - integrity sha1-8830cDhYA1sqKVHG7F7fbGLyYw4= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-check-es2015-constants@^6.22.0: - version "6.22.0" - resolved "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" - integrity sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-dynamic-import-node@^2.3.3: - version "2.3.3" - resolved "https://registry.npm.taobao.org/babel-plugin-dynamic-import-node/download/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" - integrity sha1-hP2hnJduxcbe/vV/lCez3vZuF6M= - dependencies: - object.assign "^4.1.0" - -babel-plugin-syntax-async-functions@^6.8.0: - version "6.13.0" - resolved "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" - integrity sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU= - -babel-plugin-transform-async-to-generator@^6.7.4: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" - integrity sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E= - dependencies: - babel-helper-remap-async-to-generator "^6.24.1" - babel-plugin-syntax-async-functions "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-arrow-functions@^6.22.0: - version "6.22.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" - integrity sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: - version "6.22.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" - integrity sha1-u8UbSflk1wy42OC5ToICRs46YUE= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-block-scoping@^6.24.1: - version "6.26.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" - integrity sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8= - dependencies: - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-plugin-transform-es2015-classes@^6.24.1: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" - integrity sha1-WkxYpQyclGHlZLSyo7+ryXolhNs= - dependencies: - babel-helper-define-map "^6.24.1" - babel-helper-function-name "^6.24.1" - babel-helper-optimise-call-expression "^6.24.1" - babel-helper-replace-supers "^6.24.1" - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-computed-properties@^6.24.1: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" - integrity sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM= - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-destructuring@^6.22.0: - version "6.23.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" - integrity sha1-mXux8auWf2gtKwh2/jWNYOdlxW0= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-duplicate-keys@^6.24.1: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" - integrity sha1-c+s9MQypaePvnskcU3QabxV2Qj4= - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-for-of@^6.22.0: - version "6.23.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" - integrity sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-function-name@^6.24.1: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" - integrity sha1-g0yJhTvDaxrw86TF26qU/Y6sqos= - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-literals@^6.22.0: - version "6.22.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" - integrity sha1-T1SgLWzWbPkVKAAZox0xklN3yi4= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-modules-amd@^6.24.1: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" - integrity sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ= - dependencies: - babel-plugin-transform-es2015-modules-commonjs "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-modules-commonjs@^6.24.1: - version "6.26.2" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz#58a793863a9e7ca870bdc5a881117ffac27db6f3" - integrity sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q== - dependencies: - babel-plugin-transform-strict-mode "^6.24.1" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-types "^6.26.0" - -babel-plugin-transform-es2015-modules-systemjs@^6.24.1: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" - integrity sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM= - dependencies: - babel-helper-hoist-variables "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-modules-umd@^6.24.1: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" - integrity sha1-rJl+YoXNGO1hdq22B9YCNErThGg= - dependencies: - babel-plugin-transform-es2015-modules-amd "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-object-super@^6.24.1: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" - integrity sha1-JM72muIcuDp/hgPa0CH1cusnj40= - dependencies: - babel-helper-replace-supers "^6.24.1" - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-parameters@^6.24.1: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" - integrity sha1-V6w1GrScrxSpfNE7CfZv3wpiXys= - dependencies: - babel-helper-call-delegate "^6.24.1" - babel-helper-get-function-arity "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-shorthand-properties@^6.24.1: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" - integrity sha1-JPh11nIch2YbvZmkYi5R8U3jiqA= - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-spread@^6.22.0: - version "6.22.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" - integrity sha1-1taKmfia7cRTbIGlQujdnxdG+NE= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-sticky-regex@^6.24.1: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" - integrity sha1-AMHNsaynERLN8M9hJsLta0V8zbw= - dependencies: - babel-helper-regex "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-template-literals@^6.22.0: - version "6.22.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" - integrity sha1-qEs0UPfp+PH2g51taH2oS7EjbY0= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-typeof-symbol@^6.22.0: - version "6.23.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" - integrity sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-unicode-regex@^6.24.1: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" - integrity sha1-04sS9C6nMj9yk4fxinxa4frrNek= - dependencies: - babel-helper-regex "^6.24.1" - babel-runtime "^6.22.0" - regexpu-core "^2.0.0" - -babel-plugin-transform-regenerator@^6.24.1: - version "6.26.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" - integrity sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8= - dependencies: - regenerator-transform "^0.10.0" - -babel-plugin-transform-strict-mode@^6.24.1: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" - integrity sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g= - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-polyfill@^6.8.0: - version "6.26.0" - resolved "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153" - integrity sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM= - dependencies: - babel-runtime "^6.26.0" - core-js "^2.5.0" - regenerator-runtime "^0.10.5" - -babel-preset-es2015@^6.6.0: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz#d44050d6bc2c9feea702aaf38d727a0210538939" - integrity sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk= - dependencies: - babel-plugin-check-es2015-constants "^6.22.0" - babel-plugin-transform-es2015-arrow-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoping "^6.24.1" - babel-plugin-transform-es2015-classes "^6.24.1" - babel-plugin-transform-es2015-computed-properties "^6.24.1" - babel-plugin-transform-es2015-destructuring "^6.22.0" - babel-plugin-transform-es2015-duplicate-keys "^6.24.1" - babel-plugin-transform-es2015-for-of "^6.22.0" - babel-plugin-transform-es2015-function-name "^6.24.1" - babel-plugin-transform-es2015-literals "^6.22.0" - babel-plugin-transform-es2015-modules-amd "^6.24.1" - babel-plugin-transform-es2015-modules-commonjs "^6.24.1" - babel-plugin-transform-es2015-modules-systemjs "^6.24.1" - babel-plugin-transform-es2015-modules-umd "^6.24.1" - babel-plugin-transform-es2015-object-super "^6.24.1" - babel-plugin-transform-es2015-parameters "^6.24.1" - babel-plugin-transform-es2015-shorthand-properties "^6.24.1" - babel-plugin-transform-es2015-spread "^6.22.0" - babel-plugin-transform-es2015-sticky-regex "^6.24.1" - babel-plugin-transform-es2015-template-literals "^6.22.0" - babel-plugin-transform-es2015-typeof-symbol "^6.22.0" - babel-plugin-transform-es2015-unicode-regex "^6.24.1" - babel-plugin-transform-regenerator "^6.24.1" - -babel-register@^6.26.0, babel-register@^6.8.0: - version "6.26.0" - resolved "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" - integrity sha1-btAhFz4vy0htestFxgCahW9kcHE= - dependencies: - babel-core "^6.26.0" - babel-runtime "^6.26.0" - core-js "^2.5.0" - home-or-tmp "^2.0.0" - lodash "^4.17.4" - mkdirp "^0.5.1" - source-map-support "^0.4.15" - -babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0: - version "6.26.0" - resolved "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" - integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= - dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.11.0" - -babel-template@^6.24.1, babel-template@^6.26.0: - version "6.26.0" - resolved "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" - integrity sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI= - dependencies: - babel-runtime "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - lodash "^4.17.4" - -babel-traverse@^6.24.1, babel-traverse@^6.26.0: - version "6.26.0" - resolved "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" - integrity sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4= - dependencies: - babel-code-frame "^6.26.0" - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - debug "^2.6.8" - globals "^9.18.0" - invariant "^2.2.2" - lodash "^4.17.4" - -babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0: - version "6.26.0" - resolved "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" - integrity sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc= - dependencies: - babel-runtime "^6.26.0" - esutils "^2.0.2" - lodash "^4.17.4" - to-fast-properties "^1.0.3" - -babylon@^6.18.0: - version "6.18.0" - resolved "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" - integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== - balanced-match@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" @@ -2440,11 +633,6 @@ base@^0.11.1: mixin-deep "^1.2.0" pascalcase "^0.1.1" -batch@0.6.1: - version "0.6.1" - resolved "https://registry.npm.taobao.org/batch/download/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" - integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY= - bcrypt-pbkdf@^1.0.0: version "1.0.2" resolved "https://registry.npm.taobao.org/bcrypt-pbkdf/download/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" @@ -2452,21 +640,6 @@ bcrypt-pbkdf@^1.0.0: dependencies: tweetnacl "^0.14.3" -bfj@^6.1.1: - version "6.1.2" - resolved "https://registry.npm.taobao.org/bfj/download/bfj-6.1.2.tgz#325c861a822bcb358a41c78a33b8e6e2086dde7f" - integrity sha1-MlyGGoIryzWKQceKM7jm4ght3n8= - dependencies: - bluebird "^3.5.5" - check-types "^8.0.3" - hoopy "^0.1.4" - tryer "^1.0.1" - -big.js@^3.1.3: - version "3.2.0" - resolved "https://registry.npm.taobao.org/big.js/download/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" - integrity sha1-pfwpi4G54Nyi5FiCR4S2XFK6WI4= - big.js@^5.2.2: version "5.2.2" resolved "https://registry.npm.taobao.org/big.js/download/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" @@ -2489,7 +662,7 @@ bindings@^1.5.0: dependencies: file-uri-to-path "1.0.0" -bluebird@^3.1.1, bluebird@^3.5.5: +bluebird@^3.5.5: version "3.7.2" resolved "https://registry.npm.taobao.org/bluebird/download/bluebird-3.7.2.tgz?cache=0&sync_timestamp=1589682744631&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbluebird%2Fdownload%2Fbluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha1-nyKcFb4nJFT/qXOs4NvueaGww28= @@ -2504,39 +677,6 @@ bn.js@^5.1.1: resolved "https://registry.npm.taobao.org/bn.js/download/bn.js-5.1.3.tgz#beca005408f642ebebea80b042b4d18d2ac0ee6b" integrity sha1-vsoAVAj2Quvr6oCwQrTRjSrA7ms= -body-parser@1.19.0: - version "1.19.0" - resolved "https://registry.npm.taobao.org/body-parser/download/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" - integrity sha1-lrJwnlfJxOCab9Zqj9l5hE9p8Io= - dependencies: - bytes "3.1.0" - content-type "~1.0.4" - debug "2.6.9" - depd "~1.1.2" - http-errors "1.7.2" - iconv-lite "0.4.24" - on-finished "~2.3.0" - qs "6.7.0" - raw-body "2.4.0" - type-is "~1.6.17" - -bonjour@^3.5.0: - version "3.5.0" - resolved "https://registry.npm.taobao.org/bonjour/download/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" - integrity sha1-jokKGD2O6aI5OzhExpGkK897yfU= - dependencies: - array-flatten "^2.1.0" - deep-equal "^1.0.1" - dns-equal "^1.0.0" - dns-txt "^2.0.2" - multicast-dns "^6.0.1" - multicast-dns-service-types "^1.1.0" - -boolbase@^1.0.0, boolbase@~1.0.0: - version "1.0.0" - resolved "https://registry.npm.taobao.org/boolbase/download/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" - integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= - boom@7.x.x: version "7.3.0" resolved "https://registry.npm.taobao.org/boom/download/boom-7.3.0.tgz#733a6d956d33b0b1999da3fe6c12996950d017b9" @@ -2641,31 +781,11 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.8.5: - version "4.14.5" - resolved "https://registry.npm.taobao.org/browserslist/download/browserslist-4.14.5.tgz?cache=0&sync_timestamp=1600993129773&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.14.5.tgz#1c751461a102ddc60e40993639b709be7f2c4015" - integrity sha1-HHUUYaEC3cYOQJk2ObcJvn8sQBU= - dependencies: - caniuse-lite "^1.0.30001135" - electron-to-chromium "^1.3.571" - escalade "^3.1.0" - node-releases "^1.1.61" - buffer-from@^1.0.0: version "1.1.1" resolved "https://registry.npm.taobao.org/buffer-from/download/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" integrity sha1-MnE7wCj3XAL9txDXx7zsHyxgcO8= -buffer-indexof@^1.0.0: - version "1.1.1" - resolved "https://registry.npm.taobao.org/buffer-indexof/download/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" - integrity sha1-Uvq8xqYG0aADAoAmSO9o9jnaJow= - -buffer-json@^2.0.0: - version "2.0.0" - resolved "https://registry.npm.taobao.org/buffer-json/download/buffer-json-2.0.0.tgz#f73e13b1e42f196fe2fd67d001c7d7107edd7c23" - integrity sha1-9z4TseQvGW/i/WfQAcfXEH7dfCM= - buffer-xor@^1.0.3: version "1.0.3" resolved "https://registry.npm.taobao.org/buffer-xor/download/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" @@ -2685,17 +805,7 @@ builtin-status-codes@^3.0.0: resolved "https://registry.npm.taobao.org/builtin-status-codes/download/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= -bytes@3.0.0: - version "3.0.0" - resolved "https://registry.npm.taobao.org/bytes/download/bytes-3.0.0.tgz?cache=0&sync_timestamp=1589682741197&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbytes%2Fdownload%2Fbytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" - integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= - -bytes@3.1.0: - version "3.1.0" - resolved "https://registry.npm.taobao.org/bytes/download/bytes-3.1.0.tgz?cache=0&sync_timestamp=1589682741197&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbytes%2Fdownload%2Fbytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" - integrity sha1-9s95M6Ng4FiPqf3oVlHNx/gF0fY= - -cacache@^12.0.2, cacache@^12.0.3: +cacache@^12.0.2: version "12.0.4" resolved "https://registry.npm.taobao.org/cacache/download/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c" integrity sha1-ZovL0QWutfHZL+JVcOyVJcj6pAw= @@ -2716,30 +826,6 @@ cacache@^12.0.2, cacache@^12.0.3: unique-filename "^1.1.1" y18n "^4.0.0" -cacache@^13.0.1: - version "13.0.1" - resolved "https://registry.npm.taobao.org/cacache/download/cacache-13.0.1.tgz#a8000c21697089082f85287a1aec6e382024a71c" - integrity sha1-qAAMIWlwiQgvhSh6GuxuOCAkpxw= - dependencies: - chownr "^1.1.2" - figgy-pudding "^3.5.1" - fs-minipass "^2.0.0" - glob "^7.1.4" - graceful-fs "^4.2.2" - infer-owner "^1.0.4" - lru-cache "^5.1.1" - minipass "^3.0.0" - minipass-collect "^1.0.2" - minipass-flush "^1.0.5" - minipass-pipeline "^1.2.2" - mkdirp "^0.5.1" - move-concurrently "^1.0.1" - p-map "^3.0.0" - promise-inflight "^1.0.1" - rimraf "^2.7.1" - ssri "^7.0.0" - unique-filename "^1.1.1" - cache-base@^1.0.1: version "1.0.1" resolved "https://registry.npm.taobao.org/cache-base/download/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" @@ -2755,101 +841,21 @@ cache-base@^1.0.1: union-value "^1.0.0" unset-value "^1.0.0" -cache-loader@^4.1.0: - version "4.1.0" - resolved "https://registry.npm.taobao.org/cache-loader/download/cache-loader-4.1.0.tgz#9948cae353aec0a1fcb1eafda2300816ec85387e" - integrity sha1-mUjK41OuwKH8ser9ojAIFuyFOH4= - dependencies: - buffer-json "^2.0.0" - find-cache-dir "^3.0.0" - loader-utils "^1.2.3" - mkdirp "^0.5.1" - neo-async "^2.6.1" - schema-utils "^2.0.0" - call-me-maybe@^1.0.1: version "1.0.1" resolved "https://registry.npm.taobao.org/call-me-maybe/download/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" integrity sha1-JtII6onje1y95gJQoV8DHBak1ms= -caller-callsite@^2.0.0: - version "2.0.0" - resolved "https://registry.npm.taobao.org/caller-callsite/download/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" - integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= - dependencies: - callsites "^2.0.0" - -caller-path@^2.0.0: - version "2.0.0" - resolved "https://registry.npm.taobao.org/caller-path/download/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" - integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= - dependencies: - caller-callsite "^2.0.0" - -callsites@^2.0.0: - version "2.0.0" - resolved "https://registry.npm.taobao.org/callsites/download/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= -camel-case@3.0.x: - version "3.0.0" - resolved "https://registry.npm.taobao.org/camel-case/download/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73" - integrity sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M= - dependencies: - no-case "^2.2.0" - upper-case "^1.1.1" - -camelcase@^5.0.0, camelcase@^5.3.1: - version "5.3.1" - resolved "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz?cache=0&sync_timestamp=1602350083472&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamelcase%2Fdownload%2Fcamelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA= - -camelcase@^6.0.0: - version "6.1.0" - resolved "https://registry.npm.taobao.org/camelcase/download/camelcase-6.1.0.tgz?cache=0&sync_timestamp=1602350083472&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamelcase%2Fdownload%2Fcamelcase-6.1.0.tgz#27dc176173725fb0adf8a48b647f4d7871944d78" - integrity sha1-J9wXYXNyX7Ct+KSLZH9NeHGUTXg= - -caniuse-api@^3.0.0: - version "3.0.0" - resolved "https://registry.npm.taobao.org/caniuse-api/download/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" - integrity sha1-Xk2Q4idJYdRikZl99Znj7QCO5MA= - dependencies: - browserslist "^4.0.0" - caniuse-lite "^1.0.0" - lodash.memoize "^4.1.2" - lodash.uniq "^4.5.0" - -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001135: - version "1.0.30001148" - resolved "https://registry.npm.taobao.org/caniuse-lite/download/caniuse-lite-1.0.30001148.tgz#dc97c7ed918ab33bf8706ddd5e387287e015d637" - integrity sha1-3JfH7ZGKszv4cG3dXjhyh+AV1jc= - -case-sensitive-paths-webpack-plugin@^2.3.0: - version "2.3.0" - resolved "https://registry.npm.taobao.org/case-sensitive-paths-webpack-plugin/download/case-sensitive-paths-webpack-plugin-2.3.0.tgz#23ac613cc9a856e4f88ff8bb73bbb5e989825cf7" - integrity sha1-I6xhPMmoVuT4j/i7c7u16YmCXPc= - caseless@~0.12.0: version "0.12.0" resolved "https://registry.npm.taobao.org/caseless/download/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= -chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" - 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.npm.taobao.org/chalk/download/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" @@ -2859,14 +865,6 @@ chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.4.1, chalk@^2.4 escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^3.0.0: - version "3.0.0" - resolved "https://registry.npm.taobao.org/chalk/download/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" - integrity sha1-P3PCv1JlkfV0zEksUeJFY0n4ROQ= - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - chalk@^4.1.0: version "4.1.0" resolved "https://registry.npm.taobao.org/chalk/download/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" @@ -2885,11 +883,6 @@ charset@^1.0.0: resolved "https://registry.npmjs.org/charset/-/charset-1.0.1.tgz#8d59546c355be61049a8fa9164747793319852bd" integrity sha512-6dVyOOYjpfFcL1Y4qChrAoQLRHvj2ziyhcm0QJlhOcAhykL/k1kTUPbeo+87MNRTRdk2OIIsIXbuF3x2wi5EXg== -check-types@^8.0.3: - version "8.0.3" - resolved "https://registry.npm.taobao.org/check-types/download/check-types-8.0.3.tgz#3356cca19c889544f2d7a95ed49ce508a0ecf552" - integrity sha1-M1bMoZyIlUTy16le1JzlCKDs9VI= - child_process@^1.0.2: version "1.0.2" resolved "https://registry.npm.taobao.org/child_process/download/child_process-1.0.2.tgz#b1f7e7fc73d25e7fd1d455adc94e143830182b5a" @@ -2929,7 +922,7 @@ chokidar@^3.4.1: optionalDependencies: fsevents "~2.1.2" -chownr@^1.1.1, chownr@^1.1.2: +chownr@^1.1.1: version "1.1.4" resolved "https://registry.npm.taobao.org/chownr/download/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" integrity sha1-b8nXtC0ypYNZYzdmbn0ICE2izGs= @@ -2964,18 +957,6 @@ class-utils@^0.3.5: isobject "^3.0.0" static-extend "^0.1.1" -clean-css@4.2.x: - version "4.2.3" - resolved "https://registry.npm.taobao.org/clean-css/download/clean-css-4.2.3.tgz#507b5de7d97b48ee53d84adb0160ff6216380f78" - integrity sha1-UHtd59l7SO5T2ErbAWD/YhY4D3g= - dependencies: - source-map "~0.6.0" - -clean-stack@^2.0.0: - version "2.2.0" - resolved "https://registry.npm.taobao.org/clean-stack/download/clean-stack-2.2.0.tgz?cache=0&sync_timestamp=1592035524745&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fclean-stack%2Fdownload%2Fclean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" - integrity sha1-7oRy27Ep5yezHooQpCfe6d/kAIs= - cli-cursor@^2.1.0: version "2.1.0" resolved "https://registry.npm.taobao.org/cli-cursor/download/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" @@ -2990,18 +971,6 @@ cli-cursor@^3.1.0: dependencies: restore-cursor "^3.1.0" -cli-highlight@^2.1.4: - version "2.1.4" - resolved "https://registry.npm.taobao.org/cli-highlight/download/cli-highlight-2.1.4.tgz#098cb642cf17f42adc1c1145e07f960ec4d7522b" - integrity sha1-CYy2Qs8X9CrcHBFF4H+WDsTXUis= - dependencies: - chalk "^3.0.0" - highlight.js "^9.6.0" - mz "^2.4.0" - parse5 "^5.1.1" - parse5-htmlparser2-tree-adapter "^5.1.1" - yargs "^15.0.0" - cli-spinners@^2.0.0: version "2.5.0" resolved "https://registry.npm.taobao.org/cli-spinners/download/cli-spinners-2.5.0.tgz?cache=0&sync_timestamp=1602505826257&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcli-spinners%2Fdownload%2Fcli-spinners-2.5.0.tgz#12763e47251bf951cb75c201dfa58ff1bcb2d047" @@ -3012,47 +981,11 @@ cli-width@^3.0.0: resolved "https://registry.npm.taobao.org/cli-width/download/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" integrity sha1-ovSEN6LKqaIkNueUvwceyeYc7fY= -clipboardy@^2.3.0: - version "2.3.0" - resolved "https://registry.npm.taobao.org/clipboardy/download/clipboardy-2.3.0.tgz#3c2903650c68e46a91b388985bc2774287dba290" - integrity sha1-PCkDZQxo5GqRs4iYW8J3QofbopA= - dependencies: - arch "^2.1.1" - execa "^1.0.0" - is-wsl "^2.1.1" - -cliui@^5.0.0: - version "5.0.0" - resolved "https://registry.npm.taobao.org/cliui/download/cliui-5.0.0.tgz?cache=0&sync_timestamp=1602718433949&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcliui%2Fdownload%2Fcliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" - integrity sha1-3u/P2y6AB4SqNPRvoI4GhRx7u8U= - dependencies: - string-width "^3.1.0" - strip-ansi "^5.2.0" - wrap-ansi "^5.1.0" - -cliui@^6.0.0: - version "6.0.0" - resolved "https://registry.npm.taobao.org/cliui/download/cliui-6.0.0.tgz?cache=0&sync_timestamp=1602718433949&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcliui%2Fdownload%2Fcliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" - integrity sha1-UR1wLAxOQcoVbX0OlgIfI+EyJbE= - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^6.2.0" - clone@^1.0.2: version "1.0.4" resolved "https://registry.npm.taobao.org/clone/download/clone-1.0.4.tgz?cache=0&sync_timestamp=1589682821772&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fclone%2Fdownload%2Fclone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= -coa@^2.0.2: - version "2.0.2" - resolved "https://registry.npm.taobao.org/coa/download/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" - integrity sha1-Q/bCEVG07yv1cYfbDXPeIp4+fsM= - dependencies: - "@types/q" "^1.5.1" - chalk "^2.4.1" - q "^1.1.2" - collection-visit@^1.0.0: version "1.0.0" resolved "https://registry.npm.taobao.org/collection-visit/download/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" @@ -3061,7 +994,7 @@ collection-visit@^1.0.0: map-visit "^1.0.0" object-visit "^1.0.0" -color-convert@^1.9.0, color-convert@^1.9.1: +color-convert@^1.9.0: version "1.9.3" resolved "https://registry.npm.taobao.org/color-convert/download/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" integrity sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg= @@ -3080,32 +1013,11 @@ color-name@1.1.3: resolved "https://registry.npm.taobao.org/color-name/download/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= -color-name@^1.0.0, color-name@~1.1.4: +color-name@~1.1.4: version "1.1.4" resolved "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha1-wqCah6y95pVD3m9j+jmVyCbFNqI= -color-string@^1.5.4: - version "1.5.4" - resolved "https://registry.npm.taobao.org/color-string/download/color-string-1.5.4.tgz?cache=0&sync_timestamp=1602228106182&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolor-string%2Fdownload%2Fcolor-string-1.5.4.tgz#dd51cd25cfee953d138fe4002372cc3d0e504cb6" - integrity sha1-3VHNJc/ulT0Tj+QAI3LMPQ5QTLY= - dependencies: - color-name "^1.0.0" - simple-swizzle "^0.2.2" - -color@^3.0.0: - version "3.1.3" - resolved "https://registry.npm.taobao.org/color/download/color-3.1.3.tgz?cache=0&sync_timestamp=1602228883047&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolor%2Fdownload%2Fcolor-3.1.3.tgz#ca67fb4e7b97d611dcde39eceed422067d91596e" - integrity sha1-ymf7TnuX1hHc3jns7tQiBn2RWW4= - dependencies: - color-convert "^1.9.1" - color-string "^1.5.4" - -colorette@^1.2.1: - version "1.2.1" - resolved "https://registry.npm.taobao.org/colorette/download/colorette-1.2.1.tgz?cache=0&sync_timestamp=1593955763917&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolorette%2Fdownload%2Fcolorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b" - integrity sha1-TQuSEyXBT6+SYzCGpTbbbolWSxs= - colors@^1.1.2: version "1.4.0" resolved "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" @@ -3118,21 +1030,11 @@ combined-stream@^1.0.6, combined-stream@~1.0.6: dependencies: delayed-stream "~1.0.0" -commander@2.17.x: - version "2.17.1" - resolved "https://registry.npm.taobao.org/commander/download/commander-2.17.1.tgz?cache=0&sync_timestamp=1598576116597&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" - integrity sha1-vXerfebelCBc6sxy8XFtKfIKd78= - -commander@^2.18.0, commander@^2.20.0, commander@^2.9.0: +commander@^2.20.0, commander@^2.9.0: version "2.20.3" resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== -commander@~2.19.0: - version "2.19.0" - resolved "https://registry.npm.taobao.org/commander/download/commander-2.19.0.tgz?cache=0&sync_timestamp=1598576116597&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" - integrity sha1-9hmKqE5bg8RgVLlN3tv+1e6f8So= - commondir@^1.0.1: version "1.0.1" resolved "https://registry.npm.taobao.org/commondir/download/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" @@ -3143,26 +1045,6 @@ component-emitter@^1.2.1: resolved "https://registry.npm.taobao.org/component-emitter/download/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" integrity sha1-FuQHD7qK4ptnnyIVhT7hgasuq8A= -compressible@~2.0.16: - version "2.0.18" - resolved "https://registry.npm.taobao.org/compressible/download/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" - integrity sha1-r1PMprBw1MPAdQ+9dyhqbXzEb7o= - dependencies: - mime-db ">= 1.43.0 < 2" - -compression@^1.7.4: - version "1.7.4" - resolved "https://registry.npm.taobao.org/compression/download/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" - integrity sha1-lVI+/xcMpXwpoMpB5v4TH0Hlu48= - dependencies: - accepts "~1.3.5" - bytes "3.0.0" - compressible "~2.0.16" - debug "2.6.9" - on-headers "~1.0.2" - safe-buffer "5.1.2" - vary "~1.1.2" - concat-map@0.0.1: version "0.0.1" resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" @@ -3178,23 +1060,11 @@ concat-stream@^1.5.0: readable-stream "^2.2.2" typedarray "^0.0.6" -connect-history-api-fallback@^1.6.0: - version "1.6.0" - resolved "https://registry.npm.taobao.org/connect-history-api-fallback/download/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" - integrity sha1-izIIk1kwjRERFdgcrT/Oq4iPl7w= - console-browserify@^1.1.0: version "1.2.0" resolved "https://registry.npm.taobao.org/console-browserify/download/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" integrity sha1-ZwY871fOts9Jk6KrOlWECujEkzY= -consolidate@^0.15.1: - version "0.15.1" - resolved "https://registry.npm.taobao.org/consolidate/download/consolidate-0.15.1.tgz?cache=0&sync_timestamp=1599596647062&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fconsolidate%2Fdownload%2Fconsolidate-0.15.1.tgz#21ab043235c71a07d45d9aad98593b0dba56bab7" - integrity sha1-IasEMjXHGgfUXZqtmFk7DbpWurc= - dependencies: - bluebird "^3.1.1" - constants-browserify@^1.0.0: version "1.0.0" resolved "https://registry.npm.taobao.org/constants-browserify/download/constants-browserify-1.0.0.tgz?cache=0&sync_timestamp=1589682802723&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fconstants-browserify%2Fdownload%2Fconstants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" @@ -3205,35 +1075,6 @@ contains-path@^0.1.0: resolved "https://registry.npm.taobao.org/contains-path/download/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" integrity sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo= -content-disposition@0.5.3: - version "0.5.3" - resolved "https://registry.npm.taobao.org/content-disposition/download/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" - integrity sha1-4TDK9+cnkIfFYWwgB9BIVpiYT70= - dependencies: - safe-buffer "5.1.2" - -content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.npm.taobao.org/content-type/download/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - integrity sha1-4TjMdeBAxyexlm/l5fjJruJW/js= - -convert-source-map@^1.5.1, convert-source-map@^1.7.0: - version "1.7.0" - resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" - integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== - dependencies: - safe-buffer "~5.1.1" - -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.npm.taobao.org/cookie-signature/download/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= - -cookie@0.4.0: - version "0.4.0" - resolved "https://registry.npm.taobao.org/cookie/download/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" - integrity sha1-vrQ35wIrO21JAZ0IhmUwPr6cFLo= - copy-concurrently@^1.0.0: version "1.0.5" resolved "https://registry.npm.taobao.org/copy-concurrently/download/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" @@ -3251,42 +1092,6 @@ copy-descriptor@^0.1.0: resolved "https://registry.npm.taobao.org/copy-descriptor/download/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= -copy-webpack-plugin@^5.1.1: - version "5.1.2" - resolved "https://registry.npm.taobao.org/copy-webpack-plugin/download/copy-webpack-plugin-5.1.2.tgz#8a889e1dcafa6c91c6cd4be1ad158f1d3823bae2" - integrity sha1-ioieHcr6bJHGzUvhrRWPHTgjuuI= - dependencies: - cacache "^12.0.3" - find-cache-dir "^2.1.0" - glob-parent "^3.1.0" - globby "^7.1.1" - is-glob "^4.0.1" - loader-utils "^1.2.3" - minimatch "^3.0.4" - normalize-path "^3.0.0" - p-limit "^2.2.1" - schema-utils "^1.0.0" - serialize-javascript "^4.0.0" - webpack-log "^2.0.0" - -core-js-compat@^3.6.2, core-js-compat@^3.6.5: - version "3.6.5" - resolved "https://registry.npm.taobao.org/core-js-compat/download/core-js-compat-3.6.5.tgz#2a51d9a4e25dfd6e690251aa81f99e3c05481f1c" - integrity sha1-KlHZpOJd/W5pAlGqgfmePAVIHxw= - dependencies: - browserslist "^4.8.5" - semver "7.0.0" - -core-js@^2.4.0, core-js@^2.5.0: - version "2.6.11" - resolved "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c" - integrity sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg== - -core-js@^3.6.5: - version "3.6.5" - resolved "https://registry.npm.taobao.org/core-js/download/core-js-3.6.5.tgz?cache=0&sync_timestamp=1589682726446&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-3.6.5.tgz#7395dc273af37fb2e50e9bd3d9fe841285231d1a" - integrity sha1-c5XcJzrzf7LlDpvT2f6EEoUjHRo= - core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" @@ -3300,16 +1105,6 @@ cors@^2.8.5: object-assign "^4" vary "^1" -cosmiconfig@^5.0.0: - version "5.2.1" - resolved "https://registry.npm.taobao.org/cosmiconfig/download/cosmiconfig-5.2.1.tgz?cache=0&sync_timestamp=1596310819353&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcosmiconfig%2Fdownload%2Fcosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" - integrity sha1-BA9yaAnFked6F8CjYmykW08Wixo= - dependencies: - import-fresh "^2.0.0" - is-directory "^0.3.1" - js-yaml "^3.13.1" - parse-json "^4.0.0" - create-ecdh@^4.0.0: version "4.0.4" resolved "https://registry.npm.taobao.org/create-ecdh/download/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" @@ -3361,15 +1156,6 @@ cross-spawn@^6.0.0, cross-spawn@^6.0.5: shebang-command "^1.2.0" which "^1.2.9" -cross-spawn@^7.0.0: - version "7.0.3" - resolved "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha1-9zqFudXUHQRVUcF34ogtSshXKKY= - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - crypto-browserify@^3.11.0: version "3.12.0" resolved "https://registry.npm.taobao.org/crypto-browserify/download/crypto-browserify-3.12.0.tgz?cache=0&sync_timestamp=1589682788096&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcrypto-browserify%2Fdownload%2Fcrypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" @@ -3387,169 +1173,6 @@ crypto-browserify@^3.11.0: randombytes "^2.0.0" randomfill "^1.0.3" -css-color-names@0.0.4, css-color-names@^0.0.4: - version "0.0.4" - resolved "https://registry.npm.taobao.org/css-color-names/download/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" - integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= - -css-declaration-sorter@^4.0.1: - version "4.0.1" - resolved "https://registry.npm.taobao.org/css-declaration-sorter/download/css-declaration-sorter-4.0.1.tgz?cache=0&sync_timestamp=1602012629570&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-declaration-sorter%2Fdownload%2Fcss-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22" - integrity sha1-wZiUD2OnbX42wecQGLABchBUyyI= - dependencies: - postcss "^7.0.1" - timsort "^0.3.0" - -css-loader@^3.5.3: - version "3.6.0" - resolved "https://registry.npm.taobao.org/css-loader/download/css-loader-3.6.0.tgz?cache=0&sync_timestamp=1602609200442&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-loader%2Fdownload%2Fcss-loader-3.6.0.tgz#2e4b2c7e6e2d27f8c8f28f61bffcd2e6c91ef645" - integrity sha1-Lkssfm4tJ/jI8o9hv/zS5ske9kU= - dependencies: - camelcase "^5.3.1" - cssesc "^3.0.0" - icss-utils "^4.1.1" - loader-utils "^1.2.3" - normalize-path "^3.0.0" - postcss "^7.0.32" - postcss-modules-extract-imports "^2.0.0" - postcss-modules-local-by-default "^3.0.2" - postcss-modules-scope "^2.2.0" - postcss-modules-values "^3.0.0" - postcss-value-parser "^4.1.0" - schema-utils "^2.7.0" - semver "^6.3.0" - -css-select-base-adapter@^0.1.1: - version "0.1.1" - resolved "https://registry.npm.taobao.org/css-select-base-adapter/download/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" - integrity sha1-Oy/0lyzDYquIVhUHqVQIoUMhNdc= - -css-select@^1.1.0: - version "1.2.0" - resolved "https://registry.npm.taobao.org/css-select/download/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" - integrity sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg= - dependencies: - boolbase "~1.0.0" - css-what "2.1" - domutils "1.5.1" - nth-check "~1.0.1" - -css-select@^2.0.0: - version "2.1.0" - resolved "https://registry.npm.taobao.org/css-select/download/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" - integrity sha1-ajRlM1ZjWTSoG6ymjQJVQyEF2+8= - dependencies: - boolbase "^1.0.0" - css-what "^3.2.1" - domutils "^1.7.0" - nth-check "^1.0.2" - -css-tree@1.0.0-alpha.37: - version "1.0.0-alpha.37" - resolved "https://registry.npm.taobao.org/css-tree/download/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22" - integrity sha1-mL69YsTB2flg7DQM+fdSLjBwmiI= - dependencies: - mdn-data "2.0.4" - source-map "^0.6.1" - -css-tree@1.0.0-alpha.39: - version "1.0.0-alpha.39" - resolved "https://registry.npm.taobao.org/css-tree/download/css-tree-1.0.0-alpha.39.tgz#2bff3ffe1bb3f776cf7eefd91ee5cba77a149eeb" - integrity sha1-K/8//huz93bPfu/ZHuXLp3oUnus= - dependencies: - mdn-data "2.0.6" - source-map "^0.6.1" - -css-what@2.1: - version "2.1.3" - resolved "https://registry.npm.taobao.org/css-what/download/css-what-2.1.3.tgz?cache=0&sync_timestamp=1602571001952&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-what%2Fdownload%2Fcss-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2" - integrity sha1-ptdgRXM2X+dGhsPzEcVlE9iChfI= - -css-what@^3.2.1: - version "3.4.2" - resolved "https://registry.npm.taobao.org/css-what/download/css-what-3.4.2.tgz?cache=0&sync_timestamp=1602571001952&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-what%2Fdownload%2Fcss-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4" - integrity sha1-6nAm/LAXd+295SEk4h8yfnrpUOQ= - -cssesc@^3.0.0: - version "3.0.0" - resolved "https://registry.npm.taobao.org/cssesc/download/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" - integrity sha1-N3QZGZA7hoVl4cCep0dEXNGJg+4= - -cssnano-preset-default@^4.0.0, cssnano-preset-default@^4.0.7: - version "4.0.7" - resolved "https://registry.npm.taobao.org/cssnano-preset-default/download/cssnano-preset-default-4.0.7.tgz?cache=0&sync_timestamp=1599670156743&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcssnano-preset-default%2Fdownload%2Fcssnano-preset-default-4.0.7.tgz#51ec662ccfca0f88b396dcd9679cdb931be17f76" - integrity sha1-UexmLM/KD4izltzZZ5zbkxvhf3Y= - dependencies: - css-declaration-sorter "^4.0.1" - cssnano-util-raw-cache "^4.0.1" - postcss "^7.0.0" - postcss-calc "^7.0.1" - postcss-colormin "^4.0.3" - postcss-convert-values "^4.0.1" - postcss-discard-comments "^4.0.2" - postcss-discard-duplicates "^4.0.2" - postcss-discard-empty "^4.0.1" - postcss-discard-overridden "^4.0.1" - postcss-merge-longhand "^4.0.11" - postcss-merge-rules "^4.0.3" - postcss-minify-font-values "^4.0.2" - postcss-minify-gradients "^4.0.2" - postcss-minify-params "^4.0.2" - postcss-minify-selectors "^4.0.2" - postcss-normalize-charset "^4.0.1" - postcss-normalize-display-values "^4.0.2" - postcss-normalize-positions "^4.0.2" - postcss-normalize-repeat-style "^4.0.2" - postcss-normalize-string "^4.0.2" - postcss-normalize-timing-functions "^4.0.2" - postcss-normalize-unicode "^4.0.1" - postcss-normalize-url "^4.0.1" - postcss-normalize-whitespace "^4.0.2" - postcss-ordered-values "^4.1.2" - postcss-reduce-initial "^4.0.3" - postcss-reduce-transforms "^4.0.2" - postcss-svgo "^4.0.2" - postcss-unique-selectors "^4.0.1" - -cssnano-util-get-arguments@^4.0.0: - version "4.0.0" - resolved "https://registry.npm.taobao.org/cssnano-util-get-arguments/download/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" - integrity sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8= - -cssnano-util-get-match@^4.0.0: - version "4.0.0" - resolved "https://registry.npm.taobao.org/cssnano-util-get-match/download/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d" - integrity sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0= - -cssnano-util-raw-cache@^4.0.1: - version "4.0.1" - resolved "https://registry.npm.taobao.org/cssnano-util-raw-cache/download/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282" - integrity sha1-sm1f1fcqEd/np4RvtMZyYPlr8oI= - dependencies: - postcss "^7.0.0" - -cssnano-util-same-parent@^4.0.0: - version "4.0.1" - resolved "https://registry.npm.taobao.org/cssnano-util-same-parent/download/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" - integrity sha1-V0CC+yhZ0ttDOFWDXZqEVuoYu/M= - -cssnano@^4.0.0, cssnano@^4.1.10: - version "4.1.10" - resolved "https://registry.npm.taobao.org/cssnano/download/cssnano-4.1.10.tgz?cache=0&sync_timestamp=1599670118397&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcssnano%2Fdownload%2Fcssnano-4.1.10.tgz#0ac41f0b13d13d465487e111b778d42da631b8b2" - integrity sha1-CsQfCxPRPUZUh+ERt3jULaYxuLI= - dependencies: - cosmiconfig "^5.0.0" - cssnano-preset-default "^4.0.7" - is-resolvable "^1.0.0" - postcss "^7.0.0" - -csso@^4.0.2: - version "4.0.3" - resolved "https://registry.npm.taobao.org/csso/download/csso-4.0.3.tgz#0d9985dc852c7cc2b2cacfbbe1079014d1a8e903" - integrity sha1-DZmF3IUsfMKyys+74QeQFNGo6QM= - dependencies: - css-tree "1.0.0-alpha.39" - cyclist@^1.0.1: version "1.0.1" resolved "https://registry.npm.taobao.org/cyclist/download/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" @@ -3562,19 +1185,24 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.0.0" -de-indent@^1.0.2: - version "1.0.2" - resolved "https://registry.npm.taobao.org/de-indent/download/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d" - integrity sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0= +date-format@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/date-format/-/date-format-2.1.0.tgz#31d5b5ea211cf5fd764cd38baf9d033df7e125cf" + integrity sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA== -debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9: +date-format@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/date-format/-/date-format-3.0.0.tgz#eb8780365c7d2b1511078fb491e6479780f3ad95" + integrity sha512-eyTcpKOcamdhWJXj56DpQMo1ylSQpcGtGKXcU0Tb97+K56/CF5amAqqqNj0+KvA0iw2ynxtHWFsPDSClCxe48w== + +debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: version "2.6.9" resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" -debug@^3.1.0, debug@^3.1.1, debug@^3.2.5: +debug@^3.1.0: version "3.2.6" resolved "https://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz?cache=0&sync_timestamp=1600502894812&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" integrity sha1-6D0X3hbYp++3cX7b5fsQE17uYps= @@ -3588,53 +1216,16 @@ debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: dependencies: ms "2.1.2" -decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.npm.taobao.org/decamelize/download/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= - decode-uri-component@^0.2.0: version "0.2.0" resolved "https://registry.npm.taobao.org/decode-uri-component/download/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= -deep-equal@^1.0.1: - version "1.1.1" - resolved "https://registry.npm.taobao.org/deep-equal/download/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" - integrity sha1-tcmMlCzv+vfLBR4k4UNKJaLmB2o= - dependencies: - is-arguments "^1.0.4" - is-date-object "^1.0.1" - is-regex "^1.0.4" - object-is "^1.0.1" - object-keys "^1.1.1" - regexp.prototype.flags "^1.2.0" - deep-is@~0.1.3: version "0.1.3" resolved "https://registry.npm.taobao.org/deep-is/download/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= -deepmerge@^1.5.2: - version "1.5.2" - resolved "https://registry.npm.taobao.org/deepmerge/download/deepmerge-1.5.2.tgz#10499d868844cdad4fee0842df8c7f6f0c95a753" - integrity sha1-EEmdhohEza1P7ghC34x/bwyVp1M= - -default-gateway@^4.2.0: - version "4.2.0" - resolved "https://registry.npm.taobao.org/default-gateway/download/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" - integrity sha1-FnEEx1AMIRX23WmwpTa7jtcgVSs= - dependencies: - execa "^1.0.0" - ip-regex "^2.1.0" - -default-gateway@^5.0.5: - version "5.0.5" - resolved "https://registry.npm.taobao.org/default-gateway/download/default-gateway-5.0.5.tgz#4fd6bd5d2855d39b34cc5a59505486e9aafc9b10" - integrity sha1-T9a9XShV05s0zFpZUFSG6ar8mxA= - dependencies: - execa "^3.3.0" - defaults@^1.0.3: version "1.0.3" resolved "https://registry.npm.taobao.org/defaults/download/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" @@ -3642,7 +1233,7 @@ defaults@^1.0.3: dependencies: clone "^1.0.2" -define-properties@^1.1.2, define-properties@^1.1.3: +define-properties@^1.1.3: version "1.1.3" resolved "https://registry.npm.taobao.org/define-properties/download/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" integrity sha1-z4jabL7ib+bbcJT2HYcMvYTO6fE= @@ -3671,29 +1262,11 @@ define-property@^2.0.2: is-descriptor "^1.0.2" isobject "^3.0.1" -del@^4.1.1: - version "4.1.1" - resolved "https://registry.npm.taobao.org/del/download/del-4.1.1.tgz?cache=0&sync_timestamp=1601076882347&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdel%2Fdownload%2Fdel-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" - integrity sha1-no8RciLqRKMf86FWwEm5kFKp8LQ= - dependencies: - "@types/glob" "^7.1.1" - globby "^6.1.0" - is-path-cwd "^2.0.0" - is-path-in-cwd "^2.0.0" - p-map "^2.0.0" - pify "^4.0.1" - rimraf "^2.6.3" - delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.npm.taobao.org/delayed-stream/download/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= -depd@~1.1.2: - version "1.1.2" - resolved "https://registry.npm.taobao.org/depd/download/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= - des.js@^1.0.0: version "1.0.1" resolved "https://registry.npm.taobao.org/des.js/download/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" @@ -3702,23 +1275,6 @@ des.js@^1.0.0: inherits "^2.0.1" minimalistic-assert "^1.0.0" -destroy@~1.0.4: - version "1.0.4" - resolved "https://registry.npm.taobao.org/destroy/download/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" - integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= - -detect-indent@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" - integrity sha1-920GQ1LN9Docts5hnE7jqUdd4gg= - dependencies: - repeating "^2.0.0" - -detect-node@^2.0.4: - version "2.0.4" - resolved "https://registry.npm.taobao.org/detect-node/download/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" - integrity sha1-AU7o+PZpxcWAI9pkuBecCDooxGw= - diffie-hellman@^5.0.0: version "5.0.3" resolved "https://registry.npm.taobao.org/diffie-hellman/download/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" @@ -3728,18 +1284,13 @@ diffie-hellman@^5.0.0: miller-rabin "^4.0.0" randombytes "^2.0.0" -dir-glob@^2.0.0, dir-glob@^2.2.2: +dir-glob@^2.2.2: version "2.2.2" resolved "https://registry.npm.taobao.org/dir-glob/download/dir-glob-2.2.2.tgz#fa09f0694153c8918b18ba0deafae94769fc50c4" integrity sha1-+gnwaUFTyJGLGLoN6vrpR2n8UMQ= dependencies: path-type "^3.0.0" -dns-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.npm.taobao.org/dns-equal/download/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" - integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= - dns-over-http@^0.2.0: version "0.2.0" resolved "https://registry.npm.taobao.org/dns-over-http/download/dns-over-http-0.2.0.tgz#1f2ead0752621668b67b8fbbfa85b10abd9f4768" @@ -3762,14 +1313,6 @@ dns-over-tls@^0.0.8: dependencies: dns-packet "^5.2.1" -dns-packet@^1.3.1: - version "1.3.1" - resolved "https://registry.npm.taobao.org/dns-packet/download/dns-packet-1.3.1.tgz#12aa426981075be500b910eedcd0b47dd7deda5a" - integrity sha1-EqpCaYEHW+UAuRDu3NC0fdfe2lo= - dependencies: - ip "^1.1.0" - safe-buffer "^5.0.1" - dns-packet@^4.1.0, dns-packet@^4.2.0: version "4.2.0" resolved "https://registry.npm.taobao.org/dns-packet/download/dns-packet-4.2.0.tgz#3fd6f5ff5a4ec3194ed0b15312693ffe8776b343" @@ -3792,13 +1335,6 @@ dns-socket@^3.0.0: dependencies: dns-packet "^4.1.0" -dns-txt@^2.0.2: - version "2.0.2" - resolved "https://registry.npm.taobao.org/dns-txt/download/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" - integrity sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY= - dependencies: - buffer-indexof "^1.0.0" - doctrine@1.5.0: version "1.5.0" resolved "https://registry.npm.taobao.org/doctrine/download/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" @@ -3814,81 +1350,11 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" -dom-converter@^0.2: - version "0.2.0" - resolved "https://registry.npm.taobao.org/dom-converter/download/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" - integrity sha1-ZyGp2u4uKTaClVtq/kFncWJ7t2g= - dependencies: - utila "~0.4" - -dom-serializer@0: - version "0.2.2" - resolved "https://registry.npm.taobao.org/dom-serializer/download/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" - integrity sha1-GvuB9TNxcXXUeGVd68XjMtn5u1E= - dependencies: - domelementtype "^2.0.1" - entities "^2.0.0" - domain-browser@^1.1.1: version "1.2.0" resolved "https://registry.npm.taobao.org/domain-browser/download/domain-browser-1.2.0.tgz?cache=0&sync_timestamp=1599393068432&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomain-browser%2Fdownload%2Fdomain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" integrity sha1-PTH1AZGmdJ3RN1p/Ui6CPULlTto= -domelementtype@1, domelementtype@^1.3.1: - version "1.3.1" - resolved "https://registry.npm.taobao.org/domelementtype/download/domelementtype-1.3.1.tgz?cache=0&sync_timestamp=1600028495728&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomelementtype%2Fdownload%2Fdomelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" - integrity sha1-0EjESzew0Qp/Kj1f7j9DM9eQSB8= - -domelementtype@^2.0.1: - version "2.0.2" - resolved "https://registry.npm.taobao.org/domelementtype/download/domelementtype-2.0.2.tgz?cache=0&sync_timestamp=1600028495728&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomelementtype%2Fdownload%2Fdomelementtype-2.0.2.tgz#f3b6e549201e46f588b59463dd77187131fe6971" - integrity sha1-87blSSAeRvWItZRj3XcYcTH+aXE= - -domhandler@^2.3.0: - version "2.4.2" - resolved "https://registry.npm.taobao.org/domhandler/download/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" - integrity sha1-iAUJfpM9ZehVRvcm1g9euItE+AM= - dependencies: - domelementtype "1" - -domutils@1.5.1: - version "1.5.1" - resolved "https://registry.npm.taobao.org/domutils/download/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" - integrity sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8= - dependencies: - dom-serializer "0" - domelementtype "1" - -domutils@^1.5.1, domutils@^1.7.0: - version "1.7.0" - resolved "https://registry.npm.taobao.org/domutils/download/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" - integrity sha1-Vuo0HoNOBuZ0ivehyyXaZ+qfjCo= - dependencies: - dom-serializer "0" - domelementtype "1" - -dot-prop@^5.2.0: - version "5.3.0" - resolved "https://registry.npm.taobao.org/dot-prop/download/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" - integrity sha1-kMzOcIzZzYLMTcjD3dmr3VWyDog= - dependencies: - is-obj "^2.0.0" - -dotenv-expand@^5.1.0: - version "5.1.0" - resolved "https://registry.npm.taobao.org/dotenv-expand/download/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0" - integrity sha1-P7rwIL/XlIhAcuomsel5HUWmKfA= - -dotenv@^8.2.0: - version "8.2.0" - resolved "https://registry.npm.taobao.org/dotenv/download/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a" - integrity sha1-l+YZJZradQ7qPk6j4mvO6lQksWo= - -duplexer@^0.1.1: - version "0.1.2" - resolved "https://registry.npm.taobao.org/duplexer/download/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" - integrity sha1-Or5DrvODX4rgd9E23c4PJ2sEAOY= - duplexify@^3.4.2, duplexify@^3.6.0: version "3.7.1" resolved "https://registry.npm.taobao.org/duplexify/download/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" @@ -3912,21 +1378,6 @@ ecc-jsbn@~0.1.1: jsbn "~0.1.0" safer-buffer "^2.1.0" -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.npm.taobao.org/ee-first/download/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= - -ejs@^2.6.1: - version "2.7.4" - resolved "https://registry.npm.taobao.org/ejs/download/ejs-2.7.4.tgz?cache=0&sync_timestamp=1597678506855&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fejs%2Fdownload%2Fejs-2.7.4.tgz#48661287573dcc53e366c7a1ae52c3a120eec9ba" - integrity sha1-SGYSh1c9zFPjZsehrlLDoSDuybo= - -electron-to-chromium@^1.3.571: - version "1.3.580" - resolved "https://registry.npm.taobao.org/electron-to-chromium/download/electron-to-chromium-1.3.580.tgz?cache=0&sync_timestamp=1602732835512&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Felectron-to-chromium%2Fdownload%2Felectron-to-chromium-1.3.580.tgz#eb27873cfa012c43c53c9e9129038b8fd7cb964f" - integrity sha1-6yeHPPoBLEPFPJ6RKQOLj9fLlk8= - elliptic@^6.5.3: version "6.5.3" resolved "https://registry.npm.taobao.org/elliptic/download/elliptic-6.5.3.tgz#cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6" @@ -3950,21 +1401,11 @@ emoji-regex@^8.0.0: resolved "https://registry.npm.taobao.org/emoji-regex/download/emoji-regex-8.0.0.tgz?cache=0&sync_timestamp=1602593628405&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Femoji-regex%2Fdownload%2Femoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha1-6Bj9ac5cz8tARZT4QpY79TFkzDc= -emojis-list@^2.0.0: - version "2.1.0" - resolved "https://registry.npm.taobao.org/emojis-list/download/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" - integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= - emojis-list@^3.0.0: version "3.0.0" resolved "https://registry.npm.taobao.org/emojis-list/download/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" integrity sha1-VXBmIEatKeLpFucariYKvf9Pang= -encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.npm.taobao.org/encodeurl/download/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= - end-of-stream@^1.0.0, end-of-stream@^1.1.0: version "1.4.4" resolved "https://registry.npm.taobao.org/end-of-stream/download/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" @@ -3990,16 +1431,6 @@ enhanced-resolve@^4.3.0: memory-fs "^0.5.0" tapable "^1.0.0" -entities@^1.1.1: - version "1.1.2" - resolved "https://registry.npm.taobao.org/entities/download/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" - integrity sha1-vfpzUplmTfr9NFKe1PhSKidf6lY= - -entities@^2.0.0: - version "2.0.3" - resolved "https://registry.npm.taobao.org/entities/download/entities-2.0.3.tgz#5c487e5742ab93c15abb5da22759b8590ec03b7f" - integrity sha1-XEh+V0Krk8Fau12iJ1m4WQ7AO38= - errno@^0.1.3, errno@~0.1.7: version "0.1.7" resolved "https://registry.npm.taobao.org/errno/download/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" @@ -4014,14 +1445,7 @@ error-ex@^1.2.0, error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -error-stack-parser@^2.0.0: - version "2.0.6" - resolved "https://registry.npm.taobao.org/error-stack-parser/download/error-stack-parser-2.0.6.tgz#5a99a707bd7a4c58a797902d48d82803ede6aad8" - integrity sha1-WpmnB716TFinl5AtSNgoA+3mqtg= - dependencies: - stackframe "^1.1.1" - -es-abstract@^1.17.0, es-abstract@^1.17.0-next.1, es-abstract@^1.17.2: +es-abstract@^1.17.0, es-abstract@^1.17.0-next.1: version "1.17.7" resolved "https://registry.npm.taobao.org/es-abstract/download/es-abstract-1.17.7.tgz?cache=0&sync_timestamp=1601502719982&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-abstract%2Fdownload%2Fes-abstract-1.17.7.tgz#a4de61b2f66989fc7421676c1cb9787573ace54c" integrity sha1-pN5hsvZpifx0IWdsHLl4dXOs5Uw= @@ -4073,24 +1497,6 @@ es-abstract@^1.18.0-next.0: string.prototype.trimend "^1.0.1" string.prototype.trimstart "^1.0.1" -es-abstract@^1.18.0-next.1: - version "1.18.0-next.1" - resolved "https://registry.npm.taobao.org/es-abstract/download/es-abstract-1.18.0-next.1.tgz?cache=0&sync_timestamp=1601502719982&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-abstract%2Fdownload%2Fes-abstract-1.18.0-next.1.tgz#6e3a0a4bda717e5023ab3b8e90bec36108d22c68" - integrity sha1-bjoKS9pxflAjqzuOkL7DYQjSLGg= - dependencies: - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - is-callable "^1.2.2" - is-negative-zero "^2.0.0" - is-regex "^1.1.1" - object-inspect "^1.8.0" - object-keys "^1.1.1" - object.assign "^4.1.1" - string.prototype.trimend "^1.0.1" - string.prototype.trimstart "^1.0.1" - es-to-primitive@^1.2.1: version "1.2.1" resolved "https://registry.npm.taobao.org/es-to-primitive/download/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" @@ -4100,17 +1506,7 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -escalade@^3.1.0: - version "3.1.1" - resolved "https://registry.npm.taobao.org/escalade/download/escalade-3.1.1.tgz?cache=0&sync_timestamp=1602567224085&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescalade%2Fdownload%2Fescalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha1-2M/ccACWXFoBdLSoLqpcBVJ0LkA= - -escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.npm.taobao.org/escape-html/download/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= - -escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: +escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= @@ -4342,33 +1738,16 @@ esutils@^2.0.2: resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== -etag@~1.8.1: - version "1.8.1" - resolved "https://registry.npm.taobao.org/etag/download/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= - event-pubsub@4.3.0: version "4.3.0" resolved "https://registry.npm.taobao.org/event-pubsub/download/event-pubsub-4.3.0.tgz#f68d816bc29f1ec02c539dc58c8dd40ce72cb36e" integrity sha1-9o2Ba8KfHsAsU53FjI3UDOcss24= -eventemitter3@^4.0.0: - version "4.0.7" - resolved "https://registry.npm.taobao.org/eventemitter3/download/eventemitter3-4.0.7.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feventemitter3%2Fdownload%2Feventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" - integrity sha1-Lem2j2Uo1WRO9cWVJqG0oHMGFp8= - events@^3.0.0: version "3.2.0" resolved "https://registry.npm.taobao.org/events/download/events-3.2.0.tgz?cache=0&sync_timestamp=1595422595227&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fevents%2Fdownload%2Fevents-3.2.0.tgz#93b87c18f8efcd4202a461aec4dfc0556b639379" integrity sha1-k7h8GPjvzUICpGGuxN/AVWtjk3k= -eventsource@^1.0.7: - version "1.0.7" - resolved "https://registry.npm.taobao.org/eventsource/download/eventsource-1.0.7.tgz#8fbc72c93fcd34088090bc0a4e64f4b5cee6d8d0" - integrity sha1-j7xyyT/NNAiAkLwKTmT0tc7m2NA= - dependencies: - original "^1.0.0" - evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: version "1.0.3" resolved "https://registry.npm.taobao.org/evp_bytestokey/download/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" @@ -4403,22 +1782,6 @@ execa@^1.0.0: signal-exit "^3.0.0" strip-eof "^1.0.0" -execa@^3.3.0: - version "3.4.0" - resolved "https://registry.npm.taobao.org/execa/download/execa-3.4.0.tgz#c08ed4550ef65d858fac269ffc8572446f37eb89" - integrity sha1-wI7UVQ72XYWPrCaf/IVyRG8364k= - dependencies: - cross-spawn "^7.0.0" - get-stream "^5.0.0" - human-signals "^1.1.1" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.0" - onetime "^5.1.0" - p-finally "^2.0.0" - signal-exit "^3.0.2" - strip-final-newline "^2.0.0" - expand-brackets@^2.1.4: version "2.1.4" resolved "https://registry.npm.taobao.org/expand-brackets/download/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" @@ -4432,42 +1795,6 @@ expand-brackets@^2.1.4: snapdragon "^0.8.1" to-regex "^3.0.1" -express@^4.16.3, express@^4.17.1: - version "4.17.1" - resolved "https://registry.npm.taobao.org/express/download/express-4.17.1.tgz?cache=0&sync_timestamp=1589682766604&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexpress%2Fdownload%2Fexpress-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" - integrity sha1-RJH8OGBc9R+GKdOcK10Cb5ikwTQ= - dependencies: - accepts "~1.3.7" - array-flatten "1.1.1" - body-parser "1.19.0" - content-disposition "0.5.3" - content-type "~1.0.4" - cookie "0.4.0" - cookie-signature "1.0.6" - debug "2.6.9" - depd "~1.1.2" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - finalhandler "~1.1.2" - fresh "0.5.2" - merge-descriptors "1.0.1" - methods "~1.1.2" - on-finished "~2.3.0" - parseurl "~1.3.3" - path-to-regexp "0.1.7" - proxy-addr "~2.0.5" - qs "6.7.0" - range-parser "~1.2.1" - safe-buffer "5.1.2" - send "0.17.1" - serve-static "1.14.1" - setprototypeof "1.1.1" - statuses "~1.5.0" - type-is "~1.6.18" - utils-merge "1.0.1" - vary "~1.1.2" - extend-shallow@^2.0.1: version "2.0.1" resolved "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" @@ -4548,20 +1875,6 @@ fast-levenshtein@~2.0.6: resolved "https://registry.npm.taobao.org/fast-levenshtein/download/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= -faye-websocket@^0.10.0: - version "0.10.0" - resolved "https://registry.npm.taobao.org/faye-websocket/download/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" - integrity sha1-TkkvjQTftviQA1B/btvy1QHnxvQ= - dependencies: - websocket-driver ">=0.5.1" - -faye-websocket@~0.11.1: - version "0.11.3" - resolved "https://registry.npm.taobao.org/faye-websocket/download/faye-websocket-0.11.3.tgz#5c0e9a8968e8912c286639fde977a8b209f2508e" - integrity sha1-XA6aiWjokSwoZjn96XeosgnyUI4= - dependencies: - websocket-driver ">=0.5.1" - figgy-pudding@^3.5.1: version "3.5.2" resolved "https://registry.npm.taobao.org/figgy-pudding/download/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" @@ -4581,24 +1894,11 @@ file-entry-cache@^5.0.1: dependencies: flat-cache "^2.0.1" -file-loader@^4.2.0: - version "4.3.0" - resolved "https://registry.npm.taobao.org/file-loader/download/file-loader-4.3.0.tgz#780f040f729b3d18019f20605f723e844b8a58af" - integrity sha1-eA8ED3KbPRgBnyBgX3I+hEuKWK8= - dependencies: - loader-utils "^1.2.3" - schema-utils "^2.5.0" - file-uri-to-path@1.0.0: version "1.0.0" resolved "https://registry.npm.taobao.org/file-uri-to-path/download/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" integrity sha1-VTp7hEb/b2hDWcRF8eN6BdrMM90= -filesize@^3.6.1: - version "3.6.1" - resolved "https://registry.npm.taobao.org/filesize/download/filesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317" - integrity sha1-CQuz7gG2+AGoqL6Z0xcQs0Irsxc= - fill-range@^4.0.0: version "4.0.0" resolved "https://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" @@ -4616,19 +1916,6 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" -finalhandler@~1.1.2: - version "1.1.2" - resolved "https://registry.npm.taobao.org/finalhandler/download/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" - integrity sha1-t+fQAP/RGTjQ/bBTUG9uur6fWH0= - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "~2.3.0" - parseurl "~1.3.3" - statuses "~1.5.0" - unpipe "~1.0.0" - find-cache-dir@^0.1.1: version "0.1.1" resolved "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9" @@ -4647,15 +1934,6 @@ find-cache-dir@^2.1.0: make-dir "^2.0.0" pkg-dir "^3.0.0" -find-cache-dir@^3.0.0, find-cache-dir@^3.3.1: - version "3.3.1" - resolved "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880" - integrity sha1-ibM/rUpGcNqpT4Vff74x1thP6IA= - dependencies: - commondir "^1.0.1" - make-dir "^3.0.2" - pkg-dir "^4.1.0" - find-root@^1.1.0: version "1.1.0" resolved "https://registry.npm.taobao.org/find-root/download/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" @@ -4683,14 +1961,6 @@ find-up@^3.0.0: dependencies: locate-path "^3.0.0" -find-up@^4.0.0, find-up@^4.1.0: - version "4.1.0" - resolved "https://registry.npm.taobao.org/find-up/download/find-up-4.1.0.tgz?cache=0&sync_timestamp=1597169842138&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - integrity sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk= - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - 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" @@ -4700,10 +1970,10 @@ flat-cache@^2.0.1: rimraf "2.6.3" write "1.0.3" -flatted@^2.0.0: +flatted@^2.0.0, flatted@^2.0.1: version "2.0.2" - resolved "https://registry.npm.taobao.org/flatted/download/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" - integrity sha1-RXWyHivO50NKqb5mL0t7X5wrUTg= + resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" + integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== flush-write-stream@^1.0.0: version "1.1.1" @@ -4713,11 +1983,6 @@ flush-write-stream@^1.0.0: inherits "^2.0.3" readable-stream "^2.3.6" -follow-redirects@^1.0.0: - version "1.13.0" - resolved "https://registry.npm.taobao.org/follow-redirects/download/follow-redirects-1.13.0.tgz?cache=0&sync_timestamp=1597057976909&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffollow-redirects%2Fdownload%2Ffollow-redirects-1.13.0.tgz#b42e8d93a2a7eea5ed88633676d6597bc8e384db" - integrity sha1-tC6Nk6Kn7qXtiGM2dtZZe8jjhNs= - for-in@^1.0.2: version "1.0.2" resolved "https://registry.npm.taobao.org/for-in/download/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" @@ -4742,11 +2007,6 @@ form-data@~2.3.2: combined-stream "^1.0.6" mime-types "^2.1.12" -forwarded@~0.1.2: - version "0.1.2" - resolved "https://registry.npm.taobao.org/forwarded/download/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" - integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= - fragment-cache@^0.2.1: version "0.2.1" resolved "https://registry.npm.taobao.org/fragment-cache/download/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" @@ -4754,11 +2014,6 @@ fragment-cache@^0.2.1: dependencies: map-cache "^0.2.2" -fresh@0.5.2: - version "0.5.2" - resolved "https://registry.npm.taobao.org/fresh/download/fresh-0.5.2.tgz?cache=0&sync_timestamp=1589682752100&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffresh%2Fdownload%2Ffresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= - from2@^2.1.0: version "2.3.0" resolved "https://registry.npm.taobao.org/from2/download/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" @@ -4767,22 +2022,15 @@ from2@^2.1.0: inherits "^2.0.1" readable-stream "^2.0.0" -fs-extra@^7.0.1: - version "7.0.1" - resolved "https://registry.npm.taobao.org/fs-extra/download/fs-extra-7.0.1.tgz?cache=0&sync_timestamp=1591229972229&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffs-extra%2Fdownload%2Ffs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" - integrity sha1-TxicRKoSO4lfcigE9V6iPq3DSOk= +fs-extra@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== dependencies: - graceful-fs "^4.1.2" + graceful-fs "^4.2.0" jsonfile "^4.0.0" universalify "^0.1.0" -fs-minipass@^2.0.0: - version "2.1.0" - resolved "https://registry.npm.taobao.org/fs-minipass/download/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" - integrity sha1-f1A2/b8SxjwWkZDL5BmchSJx+fs= - dependencies: - minipass "^3.0.0" - fs-write-stream-atomic@^1.0.8: version "1.0.10" resolved "https://registry.npm.taobao.org/fs-write-stream-atomic/download/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" @@ -4821,16 +2069,6 @@ functional-red-black-tree@^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= -gensync@^1.0.0-beta.1: - version "1.0.0-beta.1" - resolved "https://registry.npm.taobao.org/gensync/download/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269" - integrity sha1-WPQ2H/mH5f9uHnohCCeqNx6qwmk= - -get-caller-file@^2.0.1: - version "2.0.5" - resolved "https://registry.npm.taobao.org/get-caller-file/download/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha1-T5RBKoLbMvNuOwuXQfipf+sDH34= - get-stream@^3.0.0: version "3.0.0" resolved "https://registry.npm.taobao.org/get-stream/download/get-stream-3.0.0.tgz?cache=0&sync_timestamp=1597056502934&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-stream%2Fdownload%2Fget-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" @@ -4843,13 +2081,6 @@ get-stream@^4.0.0: dependencies: pump "^3.0.0" -get-stream@^5.0.0: - version "5.2.0" - resolved "https://registry.npm.taobao.org/get-stream/download/get-stream-5.2.0.tgz?cache=0&sync_timestamp=1597056502934&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-stream%2Fdownload%2Fget-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" - integrity sha1-SWaheV7lrOZecGxLe+txJX1uItM= - dependencies: - pump "^3.0.0" - get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" resolved "https://registry.npm.taobao.org/get-value/download/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" @@ -4882,7 +2113,7 @@ glob-to-regexp@^0.3.0: resolved "https://registry.npm.taobao.org/glob-to-regexp/download/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs= -glob@^7.0.3, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: +glob@^7.1.3, glob@^7.1.4: version "7.1.6" resolved "https://registry.npm.taobao.org/glob/download/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" integrity sha1-FB8zuBp8JJLhJVlDB0gMRmeSeKY= @@ -4906,34 +2137,6 @@ globals@^12.1.0: dependencies: type-fest "^0.8.1" -globals@^9.18.0: - version "9.18.0" - resolved "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" - integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== - -globby@^6.1.0: - version "6.1.0" - resolved "https://registry.npm.taobao.org/globby/download/globby-6.1.0.tgz?cache=0&sync_timestamp=1591083812416&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobby%2Fdownload%2Fglobby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" - integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw= - dependencies: - array-union "^1.0.1" - glob "^7.0.3" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - -globby@^7.1.1: - version "7.1.1" - resolved "https://registry.npm.taobao.org/globby/download/globby-7.1.1.tgz?cache=0&sync_timestamp=1591083812416&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobby%2Fdownload%2Fglobby-7.1.1.tgz#fb2ccff9401f8600945dfada97440cca972b8680" - integrity sha1-+yzP+UAfhgCUXfral0QMypcrhoA= - dependencies: - array-union "^1.0.1" - dir-glob "^2.0.0" - glob "^7.1.2" - ignore "^3.3.5" - pify "^3.0.0" - slash "^1.0.0" - globby@^9.2.0: version "9.2.0" resolved "https://registry.npm.taobao.org/globby/download/globby-9.2.0.tgz?cache=0&sync_timestamp=1591083812416&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobby%2Fdownload%2Fglobby-9.2.0.tgz#fd029a706c703d29bdd170f4b6db3a3f7a7cb63d" @@ -4948,24 +2151,11 @@ globby@^9.2.0: pify "^4.0.1" slash "^2.0.0" -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.2: +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0: version "4.2.4" resolved "https://registry.npm.taobao.org/graceful-fs/download/graceful-fs-4.2.4.tgz?cache=0&sync_timestamp=1589682809142&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fgraceful-fs%2Fdownload%2Fgraceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" integrity sha1-Ila94U02MpWMRl68ltxGfKB6Kfs= -gzip-size@^5.0.0: - version "5.1.1" - resolved "https://registry.npm.taobao.org/gzip-size/download/gzip-size-5.1.1.tgz#cb9bee692f87c0612b232840a873904e4c135274" - integrity sha1-y5vuaS+HwGErIyhAqHOQTkwTUnQ= - dependencies: - duplexer "^0.1.1" - pify "^4.0.1" - -handle-thing@^2.0.0: - version "2.0.1" - resolved "https://registry.npm.taobao.org/handle-thing/download/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" - integrity sha1-hX95zjWVgMNA1DCBzGSJcNC7I04= - har-schema@^2.0.0: version "2.0.0" resolved "https://registry.npm.taobao.org/har-schema/download/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" @@ -4979,13 +2169,6 @@ har-validator@~5.1.3: ajv "^6.12.3" har-schema "^2.0.0" -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= - dependencies: - ansi-regex "^2.0.0" - has-flag@^3.0.0: version "3.0.0" resolved "https://registry.npm.taobao.org/has-flag/download/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" @@ -5032,7 +2215,7 @@ has-values@^1.0.0: is-number "^3.0.0" kind-of "^4.0.0" -has@^1.0.0, has@^1.0.3: +has@^1.0.3: version "1.0.3" resolved "https://registry.npm.taobao.org/has/download/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" integrity sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y= @@ -5048,16 +2231,6 @@ hash-base@^3.0.0: readable-stream "^3.6.0" safe-buffer "^5.2.0" -hash-sum@^1.0.2: - version "1.0.2" - resolved "https://registry.npm.taobao.org/hash-sum/download/hash-sum-1.0.2.tgz#33b40777754c6432573c120cc3808bbd10d47f04" - integrity sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ= - -hash-sum@^2.0.0: - version "2.0.0" - resolved "https://registry.npm.taobao.org/hash-sum/download/hash-sum-2.0.0.tgz#81d01bb5de8ea4a214ad5d6ead1b523460b0b45a" - integrity sha1-gdAbtd6OpKIUrV1urRtSNGCwtFo= - hash.js@^1.0.0, hash.js@^1.0.3: version "1.1.7" resolved "https://registry.npm.taobao.org/hash.js/download/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" @@ -5066,21 +2239,6 @@ hash.js@^1.0.0, hash.js@^1.0.3: inherits "^2.0.3" minimalistic-assert "^1.0.1" -he@1.2.x, he@^1.1.0: - version "1.2.0" - resolved "https://registry.npm.taobao.org/he/download/he-1.2.0.tgz?cache=0&sync_timestamp=1589682765156&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhe%2Fdownload%2Fhe-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" - integrity sha1-hK5l+n6vsWX922FWauFLrwVmTw8= - -hex-color-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.npm.taobao.org/hex-color-regex/download/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" - integrity sha1-TAb8y0YC/iYCs8k9+C1+fb8aio4= - -highlight.js@^9.6.0: - version "9.18.3" - resolved "https://registry.npm.taobao.org/highlight.js/download/highlight.js-9.18.3.tgz#a1a0a2028d5e3149e2380f8a865ee8516703d634" - integrity sha1-oaCiAo1eMUniOA+Khl7oUWcD1jQ= - hmac-drbg@^1.0.0: version "1.0.1" resolved "https://registry.npm.taobao.org/hmac-drbg/download/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" @@ -5095,163 +2253,11 @@ hoek@6.x.x: resolved "https://registry.npm.taobao.org/hoek/download/hoek-6.1.3.tgz#73b7d33952e01fe27a38b0457294b79dd8da242c" integrity sha1-c7fTOVLgH+J6OLBFcpS3ndjaJCw= -home-or-tmp@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" - integrity sha1-42w/LSyufXRqhX440Y1fMqeILbg= - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.1" - -hoopy@^0.1.4: - version "0.1.4" - resolved "https://registry.npm.taobao.org/hoopy/download/hoopy-0.1.4.tgz#609207d661100033a9a9402ad3dea677381c1b1d" - integrity sha1-YJIH1mEQADOpqUAq096mdzgcGx0= - hosted-git-info@^2.1.4: version "2.8.8" resolved "https://registry.npm.taobao.org/hosted-git-info/download/hosted-git-info-2.8.8.tgz?cache=0&sync_timestamp=1602544226333&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhosted-git-info%2Fdownload%2Fhosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" integrity sha1-dTm9S8Hg4KiVgVouAmJCCxKFhIg= -hpack.js@^2.1.6: - version "2.1.6" - resolved "https://registry.npm.taobao.org/hpack.js/download/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" - integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI= - dependencies: - inherits "^2.0.1" - obuf "^1.0.0" - readable-stream "^2.0.1" - wbuf "^1.1.0" - -hsl-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.npm.taobao.org/hsl-regex/download/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" - integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4= - -hsla-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.npm.taobao.org/hsla-regex/download/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" - integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg= - -html-comment-regex@^1.1.0: - version "1.1.2" - resolved "https://registry.npm.taobao.org/html-comment-regex/download/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" - integrity sha1-l9RoiutcgYhqNk+qDK0d2hTUM6c= - -html-entities@^1.3.1: - version "1.3.1" - resolved "https://registry.npm.taobao.org/html-entities/download/html-entities-1.3.1.tgz#fb9a1a4b5b14c5daba82d3e34c6ae4fe701a0e44" - integrity sha1-+5oaS1sUxdq6gtPjTGrk/nAaDkQ= - -html-minifier@^3.2.3: - version "3.5.21" - resolved "https://registry.npm.taobao.org/html-minifier/download/html-minifier-3.5.21.tgz#d0040e054730e354db008463593194015212d20c" - integrity sha1-0AQOBUcw41TbAIRjWTGUAVIS0gw= - dependencies: - camel-case "3.0.x" - clean-css "4.2.x" - commander "2.17.x" - he "1.2.x" - param-case "2.1.x" - relateurl "0.2.x" - uglify-js "3.4.x" - -html-tags@^2.0.0: - version "2.0.0" - resolved "https://registry.npm.taobao.org/html-tags/download/html-tags-2.0.0.tgz#10b30a386085f43cede353cc8fa7cb0deeea668b" - integrity sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos= - -html-tags@^3.1.0: - version "3.1.0" - resolved "https://registry.npm.taobao.org/html-tags/download/html-tags-3.1.0.tgz#7b5e6f7e665e9fb41f30007ed9e0d41e97fb2140" - integrity sha1-e15vfmZen7QfMAB+2eDUHpf7IUA= - -html-webpack-plugin@^3.2.0: - version "3.2.0" - resolved "https://registry.npm.taobao.org/html-webpack-plugin/download/html-webpack-plugin-3.2.0.tgz?cache=0&sync_timestamp=1602745648141&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtml-webpack-plugin%2Fdownload%2Fhtml-webpack-plugin-3.2.0.tgz#b01abbd723acaaa7b37b6af4492ebda03d9dd37b" - integrity sha1-sBq71yOsqqeze2r0SS69oD2d03s= - dependencies: - html-minifier "^3.2.3" - loader-utils "^0.2.16" - lodash "^4.17.3" - pretty-error "^2.0.2" - tapable "^1.0.0" - toposort "^1.0.0" - util.promisify "1.0.0" - -htmlparser2@^3.3.0: - version "3.10.1" - resolved "https://registry.npm.taobao.org/htmlparser2/download/htmlparser2-3.10.1.tgz?cache=0&sync_timestamp=1601761730691&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtmlparser2%2Fdownload%2Fhtmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" - integrity sha1-vWedw/WYl7ajS7EHSchVu1OpOS8= - dependencies: - domelementtype "^1.3.1" - domhandler "^2.3.0" - domutils "^1.5.1" - entities "^1.1.1" - inherits "^2.0.1" - readable-stream "^3.1.1" - -http-deceiver@^1.2.7: - version "1.2.7" - resolved "https://registry.npm.taobao.org/http-deceiver/download/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" - integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= - -http-errors@1.7.2: - version "1.7.2" - resolved "https://registry.npm.taobao.org/http-errors/download/http-errors-1.7.2.tgz?cache=0&sync_timestamp=1593407858306&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" - integrity sha1-T1ApzxMjnzEDblsuVSkrz7zIXI8= - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.1" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - -http-errors@~1.6.2: - version "1.6.3" - resolved "https://registry.npm.taobao.org/http-errors/download/http-errors-1.6.3.tgz?cache=0&sync_timestamp=1593407858306&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" - integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.0" - statuses ">= 1.4.0 < 2" - -http-errors@~1.7.2: - version "1.7.3" - resolved "https://registry.npm.taobao.org/http-errors/download/http-errors-1.7.3.tgz?cache=0&sync_timestamp=1593407858306&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" - integrity sha1-bGGeT5xgMIw4UZSYwU+7EKrOuwY= - dependencies: - depd "~1.1.2" - inherits "2.0.4" - setprototypeof "1.1.1" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - -http-parser-js@>=0.5.1: - version "0.5.2" - resolved "https://registry.npm.taobao.org/http-parser-js/download/http-parser-js-0.5.2.tgz#da2e31d237b393aae72ace43882dd7e270a8ff77" - integrity sha1-2i4x0jezk6rnKs5DiC3X4nCo/3c= - -http-proxy-middleware@0.19.1: - version "0.19.1" - resolved "https://registry.npm.taobao.org/http-proxy-middleware/download/http-proxy-middleware-0.19.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-proxy-middleware%2Fdownload%2Fhttp-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" - integrity sha1-GDx9xKoUeRUDBkmMIQza+WCApDo= - dependencies: - http-proxy "^1.17.0" - is-glob "^4.0.0" - lodash "^4.17.11" - micromatch "^3.1.10" - -http-proxy@^1.17.0: - version "1.18.1" - resolved "https://registry.npm.taobao.org/http-proxy/download/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" - integrity sha1-QBVB8FNIhLv5UmAzTnL4juOXZUk= - dependencies: - eventemitter3 "^4.0.0" - follow-redirects "^1.0.0" - requires-port "^1.0.0" - http-signature@~1.2.0: version "1.2.0" resolved "https://registry.npm.taobao.org/http-signature/download/http-signature-1.2.0.tgz?cache=0&sync_timestamp=1600868452638&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-signature%2Fdownload%2Fhttp-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" @@ -5266,25 +2272,13 @@ https-browserify@^1.0.0: resolved "https://registry.npm.taobao.org/https-browserify/download/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= -human-signals@^1.1.1: - version "1.1.1" - resolved "https://registry.npm.taobao.org/human-signals/download/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" - integrity sha1-xbHNFPUK6uCatsWf5jujOV/k36M= - -iconv-lite@0.4.24, iconv-lite@^0.4.13, iconv-lite@^0.4.24: +iconv-lite@^0.4.13, iconv-lite@^0.4.24: version "0.4.24" resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== dependencies: safer-buffer ">= 2.1.2 < 3" -icss-utils@^4.0.0, icss-utils@^4.1.1: - version "4.1.1" - resolved "https://registry.npm.taobao.org/icss-utils/download/icss-utils-4.1.1.tgz?cache=0&sync_timestamp=1602526927264&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ficss-utils%2Fdownload%2Ficss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467" - integrity sha1-IRcLU3ie4nRHwvR91oMIFAP5pGc= - dependencies: - postcss "^7.0.14" - ieee754@^1.1.4: version "1.1.13" resolved "https://registry.npm.taobao.org/ieee754/download/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" @@ -5295,11 +2289,6 @@ iferr@^0.1.5: resolved "https://registry.npm.taobao.org/iferr/download/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= -ignore@^3.3.5: - version "3.3.10" - resolved "https://registry.npm.taobao.org/ignore/download/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" - integrity sha1-Cpf7h2mG6AgcYxFg+PnziRV/AEM= - ignore@^4.0.3, ignore@^4.0.6: version "4.0.6" resolved "https://registry.npm.taobao.org/ignore/download/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" @@ -5310,21 +2299,6 @@ ignore@^5.1.1: resolved "https://registry.npm.taobao.org/ignore/download/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" integrity sha1-8VCotQo0KJsz4i9YiavU2AFvDlc= -import-cwd@^2.0.0: - version "2.1.0" - resolved "https://registry.npm.taobao.org/import-cwd/download/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" - integrity sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk= - dependencies: - import-from "^2.1.0" - -import-fresh@^2.0.0: - version "2.0.0" - resolved "https://registry.npm.taobao.org/import-fresh/download/import-fresh-2.0.0.tgz?cache=0&sync_timestamp=1589682760620&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-fresh%2Fdownload%2Fimport-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" - integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= - dependencies: - caller-path "^2.0.0" - resolve-from "^3.0.0" - import-fresh@^3.0.0: version "3.2.1" resolved "https://registry.npm.taobao.org/import-fresh/download/import-fresh-3.2.1.tgz?cache=0&sync_timestamp=1589682760620&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-fresh%2Fdownload%2Fimport-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" @@ -5333,37 +2307,12 @@ import-fresh@^3.0.0: parent-module "^1.0.0" resolve-from "^4.0.0" -import-from@^2.1.0: - version "2.1.0" - resolved "https://registry.npm.taobao.org/import-from/download/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" - integrity sha1-M1238qev/VOqpHHUuAId7ja387E= - dependencies: - resolve-from "^3.0.0" - -import-local@^2.0.0: - version "2.0.0" - resolved "https://registry.npm.taobao.org/import-local/download/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" - integrity sha1-VQcL44pZk88Y72236WH1vuXFoJ0= - dependencies: - pkg-dir "^3.0.0" - resolve-cwd "^2.0.0" - imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.npm.taobao.org/imurmurhash/download/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= -indent-string@^4.0.0: - version "4.0.0" - resolved "https://registry.npm.taobao.org/indent-string/download/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" - integrity sha1-Yk+PRJfWGbLZdoUx1Y9BIoVNclE= - -indexes-of@^1.0.1: - version "1.0.1" - resolved "https://registry.npm.taobao.org/indexes-of/download/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" - integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= - -infer-owner@^1.0.3, infer-owner@^1.0.4: +infer-owner@^1.0.3: version "1.0.4" resolved "https://registry.npm.taobao.org/infer-owner/download/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" integrity sha1-xM78qo5RBRwqQLos6KPScpWvlGc= @@ -5376,7 +2325,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: +inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: version "2.0.4" resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -5410,51 +2359,16 @@ inquirer@^7.0.0, inquirer@^7.1.0: strip-ansi "^6.0.0" through "^2.3.6" -internal-ip@^4.3.0: - version "4.3.0" - resolved "https://registry.npm.taobao.org/internal-ip/download/internal-ip-4.3.0.tgz?cache=0&sync_timestamp=1596563037835&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finternal-ip%2Fdownload%2Finternal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907" - integrity sha1-hFRSuq2dLKO2nGNaE3rLmg2tCQc= - dependencies: - default-gateway "^4.2.0" - ipaddr.js "^1.9.0" - interpret@^1.2.0: version "1.4.0" resolved "https://registry.npm.taobao.org/interpret/download/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" integrity sha1-Zlq4vE2iendKQFhOgS4+D6RbGh4= -invariant@^2.2.2: - version "2.2.4" - resolved "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" - integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== - dependencies: - loose-envify "^1.0.0" - -ip-regex@^2.1.0: - version "2.1.0" - resolved "https://registry.npm.taobao.org/ip-regex/download/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" - integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= - -ip@^1.1.0, ip@^1.1.5: +ip@^1.1.5: version "1.1.5" resolved "https://registry.npm.taobao.org/ip/download/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= -ipaddr.js@1.9.1, ipaddr.js@^1.9.0: - version "1.9.1" - resolved "https://registry.npm.taobao.org/ipaddr.js/download/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" - integrity sha1-v/OFQ+64mEglB5/zoqjmy9RngbM= - -is-absolute-url@^2.0.0: - version "2.1.0" - resolved "https://registry.npm.taobao.org/is-absolute-url/download/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" - integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= - -is-absolute-url@^3.0.3: - version "3.0.3" - resolved "https://registry.npm.taobao.org/is-absolute-url/download/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" - integrity sha1-lsaiK2ojkpsR6gr7GDbDatSl1pg= - is-accessor-descriptor@^0.1.6: version "0.1.6" resolved "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" @@ -5479,11 +2393,6 @@ is-arrayish@^0.2.1: resolved "https://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= -is-arrayish@^0.3.1: - version "0.3.2" - resolved "https://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" - integrity sha1-RXSirlb3qyBolvtDHq7tBm/fjwM= - is-binary-path@^1.0.0: version "1.0.1" resolved "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" @@ -5520,18 +2429,6 @@ is-ci@^1.0.10: dependencies: ci-info "^1.5.0" -is-color-stop@^1.0.0: - version "1.1.0" - resolved "https://registry.npm.taobao.org/is-color-stop/download/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" - integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U= - dependencies: - css-color-names "^0.0.4" - hex-color-regex "^1.1.0" - hsl-regex "^1.0.0" - hsla-regex "^1.0.0" - rgb-regex "^1.0.1" - rgba-regex "^1.0.0" - is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" @@ -5569,16 +2466,6 @@ is-descriptor@^1.0.0, is-descriptor@^1.0.2: is-data-descriptor "^1.0.0" kind-of "^6.0.2" -is-directory@^0.3.1: - version "0.3.1" - resolved "https://registry.npm.taobao.org/is-directory/download/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" - integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= - -is-docker@^2.0.0: - version "2.1.1" - resolved "https://registry.npm.taobao.org/is-docker/download/is-docker-2.1.1.tgz#4125a88e44e450d384e09047ede71adc2d144156" - integrity sha1-QSWojkTkUNOE4JBH7eca3C0UQVY= - is-extendable@^0.1.0, is-extendable@^0.1.1: version "0.1.1" resolved "https://registry.npm.taobao.org/is-extendable/download/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" @@ -5596,11 +2483,6 @@ is-extglob@^2.1.0, is-extglob@^2.1.1: resolved "https://registry.npm.taobao.org/is-extglob/download/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= -is-finite@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3" - integrity sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w== - is-fullwidth-code-point@^2.0.0: version "2.0.0" resolved "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" @@ -5647,35 +2529,6 @@ is-number@^7.0.0: resolved "https://registry.npm.taobao.org/is-number/download/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss= -is-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.npm.taobao.org/is-obj/download/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" - integrity sha1-Rz+wXZc3BeP9liBUUBjKjiLvSYI= - -is-path-cwd@^2.0.0: - version "2.2.0" - resolved "https://registry.npm.taobao.org/is-path-cwd/download/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" - integrity sha1-Z9Q7gmZKe1GR/ZEZEn6zAASKn9s= - -is-path-in-cwd@^2.0.0: - version "2.1.0" - resolved "https://registry.npm.taobao.org/is-path-in-cwd/download/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb" - integrity sha1-v+Lcomxp85cmWkAJljYCk1oFOss= - dependencies: - is-path-inside "^2.1.0" - -is-path-inside@^2.1.0: - version "2.1.0" - resolved "https://registry.npm.taobao.org/is-path-inside/download/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2" - integrity sha1-fJgQWH1lmkDSe8201WFuqwWUlLI= - dependencies: - path-is-inside "^1.0.2" - -is-plain-obj@^1.0.0: - version "1.1.0" - resolved "https://registry.npm.taobao.org/is-plain-obj/download/is-plain-obj-1.1.0.tgz?cache=0&sync_timestamp=1602541451286&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-plain-obj%2Fdownload%2Fis-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= - is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.npm.taobao.org/is-plain-object/download/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" @@ -5683,40 +2536,23 @@ is-plain-object@^2.0.3, is-plain-object@^2.0.4: dependencies: isobject "^3.0.1" -is-regex@^1.0.4, is-regex@^1.1.0, is-regex@^1.1.1: +is-regex@^1.1.0, is-regex@^1.1.1: version "1.1.1" resolved "https://registry.npm.taobao.org/is-regex/download/is-regex-1.1.1.tgz?cache=0&sync_timestamp=1596555640677&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-regex%2Fdownload%2Fis-regex-1.1.1.tgz#c6f98aacc546f6cec5468a07b7b153ab564a57b9" integrity sha1-xvmKrMVG9s7FRooHt7FTq1ZKV7k= dependencies: has-symbols "^1.0.1" -is-resolvable@^1.0.0: - version "1.1.0" - resolved "https://registry.npm.taobao.org/is-resolvable/download/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" - integrity sha1-+xj4fOH+uSUWnJpAfBkxijIG7Yg= - is-stream@^1.1.0: version "1.1.0" resolved "https://registry.npm.taobao.org/is-stream/download/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= -is-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.npm.taobao.org/is-stream/download/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" - integrity sha1-venDJoDW+uBBKdasnZIc54FfeOM= - is-string@^1.0.5: version "1.0.5" resolved "https://registry.npm.taobao.org/is-string/download/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6" integrity sha1-QEk+0ZjvP/R3uMf5L2ROyCpc06Y= -is-svg@^3.0.0: - version "3.0.0" - resolved "https://registry.npm.taobao.org/is-svg/download/is-svg-3.0.0.tgz#9321dbd29c212e5ca99c4fa9794c714bcafa2f75" - integrity sha1-kyHb0pwhLlypnE+peUxxS8r6L3U= - dependencies: - html-comment-regex "^1.1.0" - is-symbol@^1.0.2: version "1.0.3" resolved "https://registry.npm.taobao.org/is-symbol/download/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" @@ -5749,13 +2585,6 @@ is-wsl@^1.1.0: resolved "https://registry.npm.taobao.org/is-wsl/download/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= -is-wsl@^2.1.1: - version "2.2.0" - resolved "https://registry.npm.taobao.org/is-wsl/download/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" - integrity sha1-dKTHbnfKn9P5MvKQwX6jJs0VcnE= - dependencies: - is-docker "^2.0.0" - isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" @@ -5783,19 +2612,6 @@ isstream@~0.1.2: resolved "https://registry.npm.taobao.org/isstream/download/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= -javascript-stringify@^2.0.1: - version "2.0.1" - resolved "https://registry.npm.taobao.org/javascript-stringify/download/javascript-stringify-2.0.1.tgz#6ef358035310e35d667c675ed63d3eb7c1aa19e5" - integrity sha1-bvNYA1MQ411mfGde1j0+t8GqGeU= - -jest-worker@^25.4.0: - version "25.5.0" - resolved "https://registry.npm.taobao.org/jest-worker/download/jest-worker-25.5.0.tgz?cache=0&sync_timestamp=1601890130827&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-worker%2Fdownload%2Fjest-worker-25.5.0.tgz#2611d071b79cea0f43ee57a3d118593ac1547db1" - integrity sha1-JhHQcbec6g9D7lej0RhZOsFUfbE= - dependencies: - merge-stream "^2.0.0" - supports-color "^7.0.0" - js-message@1.0.5: version "1.0.5" resolved "https://registry.npm.taobao.org/js-message/download/js-message-1.0.5.tgz#2300d24b1af08e89dd095bc1a4c9c9cfcb892d15" @@ -5808,16 +2624,11 @@ js-queue@2.0.0: dependencies: easy-stack "^1.0.0" -"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: +js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-tokens@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" - integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= - js-yaml@^3.13.1: version "3.14.0" resolved "https://registry.npm.taobao.org/js-yaml/download/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" @@ -5836,22 +2647,12 @@ jschardet@^1.4.1: resolved "https://registry.npmjs.org/jschardet/-/jschardet-1.6.0.tgz#c7d1a71edcff2839db2f9ec30fc5d5ebd3c1a678" integrity sha512-xYuhvQ7I9PDJIGBWev9xm0+SMSed3ZDBAmvVjbFR1ZRLAF+vlXcQu6cRI9uAlj81rzikElRVteehwV7DuX2ZmQ== -jsesc@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" - integrity sha1-RsP+yMGJKxKwgz25vHYiF226s0s= - jsesc@^2.5.1: version "2.5.2" resolved "https://registry.npm.taobao.org/jsesc/download/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" integrity sha1-gFZNLkg9rPbo7yCWUKZ98/DCg6Q= -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= - -json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: +json-parse-better-errors@^1.0.2: version "1.0.2" resolved "https://registry.npm.taobao.org/json-parse-better-errors/download/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" integrity sha1-u4Z8+zRQ5pEHwTHRxRS6s9yLyqk= @@ -5881,16 +2682,6 @@ json-stringify-safe@~5.0.1: resolved "https://registry.npm.taobao.org/json-stringify-safe/download/json-stringify-safe-5.0.1.tgz?cache=0&sync_timestamp=1589682771374&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-stringify-safe%2Fdownload%2Fjson-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= -json3@^3.3.2: - version "3.3.3" - resolved "https://registry.npm.taobao.org/json3/download/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" - integrity sha1-f8EON1/FrkLEcFpcwKpvYr4wW4E= - -json5@^0.5.0, json5@^0.5.1: - version "0.5.1" - resolved "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" - integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= - json5@^1.0.1: version "1.0.1" resolved "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" @@ -5898,7 +2689,7 @@ json5@^1.0.1: dependencies: minimist "^1.2.0" -json5@^2.1.2, json5@^2.1.3: +json5@^2.1.3: version "2.1.3" resolved "https://registry.npm.taobao.org/json5/download/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43" integrity sha1-ybD3+pIzv+WAf+ZvzzpWF+1ZfUM= @@ -5922,11 +2713,6 @@ jsprim@^1.2.2: json-schema "0.2.3" verror "1.10.0" -killable@^1.0.1: - version "1.0.1" - resolved "https://registry.npm.taobao.org/killable/download/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" - integrity sha1-TIzkQRh6Bhx0dPuHygjipjgZSJI= - kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" resolved "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" @@ -5951,13 +2737,6 @@ kind-of@^6.0.0, kind-of@^6.0.2: resolved "https://registry.npm.taobao.org/kind-of/download/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0= -launch-editor-middleware@^2.2.1: - version "2.2.1" - resolved "https://registry.npm.taobao.org/launch-editor-middleware/download/launch-editor-middleware-2.2.1.tgz#e14b07e6c7154b0a4b86a0fd345784e45804c157" - integrity sha1-4UsH5scVSwpLhqD9NFeE5FgEwVc= - dependencies: - launch-editor "^2.2.1" - launch-editor@^2.2.1: version "2.2.1" resolved "https://registry.npm.taobao.org/launch-editor/download/launch-editor-2.2.1.tgz#871b5a3ee39d6680fcc26d37930b6eeda89db0ca" @@ -5997,22 +2776,12 @@ loader-fs-cache@^1.0.0: find-cache-dir "^0.1.1" mkdirp "^0.5.1" -loader-runner@^2.3.1, loader-runner@^2.4.0: +loader-runner@^2.4.0: version "2.4.0" resolved "https://registry.npm.taobao.org/loader-runner/download/loader-runner-2.4.0.tgz?cache=0&sync_timestamp=1601450715716&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-runner%2Fdownload%2Floader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" integrity sha1-7UcGa/5TTX6ExMe5mYwqdWB9k1c= -loader-utils@^0.2.16: - version "0.2.17" - resolved "https://registry.npm.taobao.org/loader-utils/download/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348" - integrity sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g= - dependencies: - big.js "^3.1.3" - emojis-list "^2.0.0" - json5 "^0.5.0" - object-assign "^4.0.1" - -loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0: +loader-utils@^1.0.2, loader-utils@^1.2.3: version "1.4.0" resolved "https://registry.npm.taobao.org/loader-utils/download/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" integrity sha1-xXm140yzSxp07cbB+za/o3HVphM= @@ -6021,15 +2790,6 @@ loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4 emojis-list "^3.0.0" json5 "^1.0.1" -loader-utils@^2.0.0: - version "2.0.0" - resolved "https://registry.npm.taobao.org/loader-utils/download/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0" - integrity sha1-5MrOW4FtQloWa18JfhDNErNgZLA= - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^2.1.2" - 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" @@ -6046,44 +2806,7 @@ locate-path@^3.0.0: p-locate "^3.0.0" path-exists "^3.0.0" -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.npm.taobao.org/locate-path/download/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" - integrity sha1-Gvujlq/WdqbUJQTQpno6frn2KqA= - dependencies: - p-locate "^4.1.0" - -lodash.defaultsdeep@^4.6.1: - version "4.6.1" - resolved "https://registry.npm.taobao.org/lodash.defaultsdeep/download/lodash.defaultsdeep-4.6.1.tgz#512e9bd721d272d94e3d3a63653fa17516741ca6" - integrity sha1-US6b1yHSctlOPTpjZT+hdRZ0HKY= - -lodash.kebabcase@^4.1.1: - version "4.1.1" - resolved "https://registry.npm.taobao.org/lodash.kebabcase/download/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36" - integrity sha1-hImxyw0p/4gZXM7KRI/21swpXDY= - -lodash.mapvalues@^4.6.0: - version "4.6.0" - resolved "https://registry.npm.taobao.org/lodash.mapvalues/download/lodash.mapvalues-4.6.0.tgz#1bafa5005de9dd6f4f26668c30ca37230cc9689c" - integrity sha1-G6+lAF3p3W9PJmaMMMo3IwzJaJw= - -lodash.memoize@^4.1.2: - version "4.1.2" - resolved "https://registry.npm.taobao.org/lodash.memoize/download/lodash.memoize-4.1.2.tgz?cache=0&sync_timestamp=1589682725270&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash.memoize%2Fdownload%2Flodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" - integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= - -lodash.transform@^4.6.0: - version "4.6.0" - resolved "https://registry.npm.taobao.org/lodash.transform/download/lodash.transform-4.6.0.tgz#12306422f63324aed8483d3f38332b5f670547a0" - integrity sha1-EjBkIvYzJK7YSD0/ODMrX2cFR6A= - -lodash.uniq@^4.5.0: - version "4.5.0" - resolved "https://registry.npm.taobao.org/lodash.uniq/download/lodash.uniq-4.5.0.tgz?cache=0&sync_timestamp=1589682817275&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash.uniq%2Fdownload%2Flodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" - integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= - -lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.7.0: +lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.7.0: version "4.17.20" resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== @@ -6095,22 +2818,16 @@ log-symbols@^2.2.0: dependencies: chalk "^2.0.1" -loglevel@^1.6.8: - version "1.7.0" - resolved "https://registry.npm.taobao.org/loglevel/download/loglevel-1.7.0.tgz#728166855a740d59d38db01cf46f042caa041bb0" - integrity sha1-coFmhVp0DVnTjbAc9G8ELKoEG7A= - -loose-envify@^1.0.0: - version "1.4.0" - resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" - integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== +log4js@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/log4js/-/log4js-6.3.0.tgz#10dfafbb434351a3e30277a00b9879446f715bcb" + integrity sha512-Mc8jNuSFImQUIateBFwdOQcmC6Q5maU0VVvdC2R6XMb66/VnT+7WS4D/0EeNMZu1YODmJe5NIn2XftCzEocUgw== dependencies: - js-tokens "^3.0.0 || ^4.0.0" - -lower-case@^1.1.1: - version "1.1.4" - resolved "https://registry.npm.taobao.org/lower-case/download/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" - integrity sha1-miyr0bno4K6ZOkv31YdcOcQujqw= + date-format "^3.0.0" + debug "^4.1.1" + flatted "^2.0.1" + rfdc "^1.1.4" + streamroller "^2.2.4" lru-cache@^4.0.1, lru-cache@^4.1.2: version "4.1.5" @@ -6142,13 +2859,6 @@ make-dir@^2.0.0: pify "^4.0.1" semver "^5.6.0" -make-dir@^3.0.2: - version "3.1.0" - resolved "https://registry.npm.taobao.org/make-dir/download/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" - integrity sha1-QV6WcEazp/HRhSd9hKpYIDcmoT8= - dependencies: - semver "^6.0.0" - map-cache@^0.2.2: version "0.2.2" resolved "https://registry.npm.taobao.org/map-cache/download/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" @@ -6170,21 +2880,6 @@ md5.js@^1.3.4: inherits "^2.0.1" safe-buffer "^5.1.2" -mdn-data@2.0.4: - version "2.0.4" - resolved "https://registry.npm.taobao.org/mdn-data/download/mdn-data-2.0.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmdn-data%2Fdownload%2Fmdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" - integrity sha1-aZs8OKxvHXKAkaZGULZdOIUC/Vs= - -mdn-data@2.0.6: - version "2.0.6" - resolved "https://registry.npm.taobao.org/mdn-data/download/mdn-data-2.0.6.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmdn-data%2Fdownload%2Fmdn-data-2.0.6.tgz#852dc60fcaa5daa2e8cf6c9189c440ed3e042978" - integrity sha1-hS3GD8ql2qLoz2yRicRA7T4EKXg= - -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.npm.taobao.org/media-typer/download/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= - memory-fs@^0.2.0: version "0.2.0" resolved "https://registry.npm.taobao.org/memory-fs/download/memory-fs-0.2.0.tgz#f2bb25368bc121e391c2520de92969caee0a0290" @@ -6206,33 +2901,11 @@ memory-fs@^0.5.0: errno "^0.1.3" readable-stream "^2.0.1" -merge-descriptors@1.0.1: - version "1.0.1" - resolved "https://registry.npm.taobao.org/merge-descriptors/download/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= - -merge-source-map@^1.1.0: - version "1.1.0" - resolved "https://registry.npm.taobao.org/merge-source-map/download/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646" - integrity sha1-L93n5gIJOfcJBqaPLXrmheTIxkY= - dependencies: - source-map "^0.6.1" - -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.npm.taobao.org/merge-stream/download/merge-stream-2.0.0.tgz?cache=0&sync_timestamp=1589682763068&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmerge-stream%2Fdownload%2Fmerge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" - integrity sha1-UoI2KaFN0AyXcPtq1H3GMQ8sH2A= - merge2@^1.2.3: version "1.4.1" resolved "https://registry.npm.taobao.org/merge2/download/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha1-Q2iJL4hekHRVpv19xVwMnUBJkK4= -methods@~1.1.2: - version "1.1.2" - resolved "https://registry.npm.taobao.org/methods/download/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= - micromatch@^3.1.10, micromatch@^3.1.4: version "3.1.10" resolved "https://registry.npm.taobao.org/micromatch/download/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" @@ -6265,28 +2938,13 @@ mime-db@1.44.0: resolved "https://registry.npm.taobao.org/mime-db/download/mime-db-1.44.0.tgz?cache=0&sync_timestamp=1600831210195&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-db%2Fdownload%2Fmime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" integrity sha1-+hHF6wrKEzS0Izy01S8QxaYnL5I= -"mime-db@>= 1.43.0 < 2": - version "1.45.0" - resolved "https://registry.npm.taobao.org/mime-db/download/mime-db-1.45.0.tgz?cache=0&sync_timestamp=1600831210195&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-db%2Fdownload%2Fmime-db-1.45.0.tgz#cceeda21ccd7c3a745eba2decd55d4b73e7879ea" - integrity sha1-zO7aIczXw6dF66LezVXUtz54eeo= - -mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: +mime-types@^2.1.12, mime-types@~2.1.19: version "2.1.27" resolved "https://registry.npm.taobao.org/mime-types/download/mime-types-2.1.27.tgz?cache=0&sync_timestamp=1589682770020&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-types%2Fdownload%2Fmime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" integrity sha1-R5SfmOJ56lMRn1ci4PNOUpvsAJ8= dependencies: mime-db "1.44.0" -mime@1.6.0: - version "1.6.0" - resolved "https://registry.npm.taobao.org/mime/download/mime-1.6.0.tgz?cache=0&sync_timestamp=1590635592890&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime%2Fdownload%2Fmime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" - integrity sha1-Ms2eXGRVO9WNGaVor0Uqz/BJgbE= - -mime@^2.4.4: - version "2.4.6" - resolved "https://registry.npm.taobao.org/mime/download/mime-2.4.6.tgz?cache=0&sync_timestamp=1590635592890&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime%2Fdownload%2Fmime-2.4.6.tgz#e5b407c90db442f2beb5b162373d07b69affa4d1" - integrity sha1-5bQHyQ20QvK+tbFiNz0Htpr/pNE= - mimic-fn@^1.0.0: version "1.2.0" resolved "https://registry.npm.taobao.org/mimic-fn/download/mimic-fn-1.2.0.tgz?cache=0&sync_timestamp=1596095644798&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmimic-fn%2Fdownload%2Fmimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" @@ -6297,16 +2955,6 @@ mimic-fn@^2.1.0: resolved "https://registry.npm.taobao.org/mimic-fn/download/mimic-fn-2.1.0.tgz?cache=0&sync_timestamp=1596095644798&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmimic-fn%2Fdownload%2Fmimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs= -mini-css-extract-plugin@^0.9.0: - version "0.9.0" - resolved "https://registry.npm.taobao.org/mini-css-extract-plugin/download/mini-css-extract-plugin-0.9.0.tgz?cache=0&sync_timestamp=1602247847229&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmini-css-extract-plugin%2Fdownload%2Fmini-css-extract-plugin-0.9.0.tgz#47f2cf07aa165ab35733b1fc97d4c46c0564339e" - integrity sha1-R/LPB6oWWrNXM7H8l9TEbAVkM54= - dependencies: - loader-utils "^1.1.0" - normalize-url "1.9.1" - schema-utils "^1.0.0" - webpack-sources "^1.1.0" - minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" resolved "https://registry.npm.taobao.org/minimalistic-assert/download/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" @@ -6329,34 +2977,6 @@ minimist@^1.2.0, minimist@^1.2.5: resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== -minipass-collect@^1.0.2: - version "1.0.2" - resolved "https://registry.npm.taobao.org/minipass-collect/download/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" - integrity sha1-IrgTv3Rdxu26JXa5QAIq1u3Ixhc= - dependencies: - minipass "^3.0.0" - -minipass-flush@^1.0.5: - version "1.0.5" - resolved "https://registry.npm.taobao.org/minipass-flush/download/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" - integrity sha1-gucTXX6JpQ/+ZGEKeHlTxMTLs3M= - dependencies: - minipass "^3.0.0" - -minipass-pipeline@^1.2.2: - version "1.2.4" - resolved "https://registry.npm.taobao.org/minipass-pipeline/download/minipass-pipeline-1.2.4.tgz?cache=0&sync_timestamp=1595998621838&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fminipass-pipeline%2Fdownload%2Fminipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" - integrity sha1-aEcveXEcCEZXwGfFxq2Tzd6oIUw= - dependencies: - minipass "^3.0.0" - -minipass@^3.0.0, minipass@^3.1.1: - version "3.1.3" - resolved "https://registry.npm.taobao.org/minipass/download/minipass-3.1.3.tgz?cache=0&sync_timestamp=1589683712023&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fminipass%2Fdownload%2Fminipass-3.1.3.tgz#7d42ff1f39635482e15f9cdb53184deebd5815fd" - integrity sha1-fUL/HzljVILhX5zbUxhN7r1YFf0= - dependencies: - yallist "^4.0.0" - mississippi@^3.0.0: version "3.0.0" resolved "https://registry.npm.taobao.org/mississippi/download/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" @@ -6381,7 +3001,7 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" -mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.5, mkdirp@~0.5.1: +mkdirp@^0.5.1, mkdirp@^0.5.3: version "0.5.5" resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== @@ -6405,43 +3025,16 @@ ms@2.0.0: resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= -ms@2.1.1: - version "2.1.1" - resolved "https://registry.npm.taobao.org/ms/download/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" - integrity sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo= - ms@2.1.2, ms@^2.1.1: version "2.1.2" resolved "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk= -multicast-dns-service-types@^1.1.0: - version "1.1.0" - resolved "https://registry.npm.taobao.org/multicast-dns-service-types/download/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" - integrity sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE= - -multicast-dns@^6.0.1: - version "6.2.3" - resolved "https://registry.npm.taobao.org/multicast-dns/download/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" - integrity sha1-oOx72QVcQoL3kMPIL04o2zsxsik= - dependencies: - dns-packet "^1.3.1" - thunky "^1.0.2" - 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= -mz@^2.4.0: - version "2.7.0" - resolved "https://registry.npm.taobao.org/mz/download/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" - integrity sha1-lQCAV6Vsr63CvGPd5/n/aVWUjjI= - dependencies: - any-promise "^1.0.0" - object-assign "^4.0.1" - thenify-all "^1.0.0" - nan@^2.12.1: version "2.14.2" resolved "https://registry.npm.taobao.org/nan/download/nan-2.14.2.tgz?cache=0&sync_timestamp=1602591684976&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnan%2Fdownload%2Fnan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" @@ -6474,12 +3067,7 @@ natural-compare@^1.4.0: resolved "https://registry.npm.taobao.org/natural-compare/download/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= -negotiator@0.6.2: - version "0.6.2" - resolved "https://registry.npm.taobao.org/negotiator/download/negotiator-0.6.2.tgz?cache=0&sync_timestamp=1589682752355&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnegotiator%2Fdownload%2Fnegotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" - integrity sha1-/qz3zPUlp3rpY0Q2pkiD/+yjRvs= - -neo-async@^2.5.0, neo-async@^2.6.0, neo-async@^2.6.1: +neo-async@^2.5.0, neo-async@^2.6.1: version "2.6.2" resolved "https://registry.npm.taobao.org/neo-async/download/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha1-tKr7k+OustgXTKU88WOrfXMIMF8= @@ -6489,13 +3077,6 @@ nice-try@^1.0.4: resolved "https://registry.npm.taobao.org/nice-try/download/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" integrity sha1-ozeKdpbOfSI+iPybdkvX7xCJ42Y= -no-case@^2.2.0: - version "2.3.2" - resolved "https://registry.npm.taobao.org/no-case/download/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac" - integrity sha1-YLgTOWvjmz8SiKTB7V0efSi0ZKw= - dependencies: - lower-case "^1.1.1" - node-cmd@^3.0.0: version "3.0.0" resolved "https://registry.npm.taobao.org/node-cmd/download/node-cmd-3.0.0.tgz#38fff70a4aaa4f659d203eb57862737018e24f6f" @@ -6508,16 +3089,6 @@ node-dir@^0.1.17: dependencies: minimatch "^3.0.2" -node-forge@^0.10.0: - version "0.10.0" - resolved "https://registry.npm.taobao.org/node-forge/download/node-forge-0.10.0.tgz?cache=0&sync_timestamp=1599010773454&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-forge%2Fdownload%2Fnode-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" - integrity sha1-Mt6ir7Ppkm8C7lzoeUkCaRpna/M= - -node-forge@^0.6.39: - version "0.6.49" - resolved "https://registry.npmjs.org/node-forge/-/node-forge-0.6.49.tgz#f1ee95d5d74623938fe19d698aa5a26d54d2f60f" - integrity sha1-8e6V1ddGI5OP4Z1piqWibVTS9g8= - node-forge@^0.8.2: version "0.8.5" resolved "https://registry.npmjs.org/node-forge/-/node-forge-0.8.5.tgz#57906f07614dc72762c84cef442f427c0e1b86ee" @@ -6561,28 +3132,6 @@ node-ipc@^9.1.1: util "^0.11.0" vm-browserify "^1.0.1" -node-mitmproxy@^3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/node-mitmproxy/-/node-mitmproxy-3.1.1.tgz#6338a602e542e6fe04851720533e5f3922f58a8e" - integrity sha512-oddTzpXUpSD0J1nRnfjqkF1cxe1gXR94v2uViyZaapnPK/R0yn5iuDPLqyqfTG82uXrCrrCjo7in0Y+ZregYBg== - dependencies: - agentkeepalive "^2.1.1" - babel-core "^6.8.0" - babel-plugin-transform-async-to-generator "^6.7.4" - babel-polyfill "^6.8.0" - babel-preset-es2015 "^6.6.0" - babel-register "^6.8.0" - charset "^1.0.0" - colors "^1.1.2" - commander "^2.9.0" - iconv-lite "^0.4.13" - jschardet "^1.4.1" - lodash "^4.7.0" - mkdirp "^0.5.1" - node-forge "^0.6.39" - through2 "^2.0.1" - tunnel-agent "^0.4.3" - node-powershell@^4.0.0: version "4.0.0" resolved "https://registry.npm.taobao.org/node-powershell/download/node-powershell-4.0.0.tgz#f3a0b1ec4f5619b501b66005f8a663c8373e8da8" @@ -6591,11 +3140,6 @@ node-powershell@^4.0.0: chalk "^2.4.1" shortid "^2.2.14" -node-releases@^1.1.61: - version "1.1.63" - resolved "https://registry.npm.taobao.org/node-releases/download/node-releases-1.1.63.tgz?cache=0&sync_timestamp=1602722488772&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-releases%2Fdownload%2Fnode-releases-1.1.63.tgz#db6dbb388544c31e888216304e8fd170efee3ff5" - integrity sha1-2227OIVEwx6IghYwTo/RcO/uP/U= - normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: version "2.5.0" resolved "https://registry.npm.taobao.org/normalize-package-data/download/normalize-package-data-2.5.0.tgz?cache=0&sync_timestamp=1602547447569&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-package-data%2Fdownload%2Fnormalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" @@ -6623,26 +3167,6 @@ normalize-path@^3.0.0, normalize-path@~3.0.0: resolved "https://registry.npm.taobao.org/normalize-path/download/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU= -normalize-range@^0.1.2: - version "0.1.2" - resolved "https://registry.npm.taobao.org/normalize-range/download/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" - integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= - -normalize-url@1.9.1: - version "1.9.1" - resolved "https://registry.npm.taobao.org/normalize-url/download/normalize-url-1.9.1.tgz?cache=0&sync_timestamp=1602432435724&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-url%2Fdownload%2Fnormalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" - integrity sha1-LMDWazHqIwNkWENuNiDYWVTGbDw= - dependencies: - object-assign "^4.0.1" - prepend-http "^1.0.0" - query-string "^4.1.0" - sort-keys "^1.0.0" - -normalize-url@^3.0.0: - version "3.3.0" - resolved "https://registry.npm.taobao.org/normalize-url/download/normalize-url-3.3.0.tgz?cache=0&sync_timestamp=1602432435724&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-url%2Fdownload%2Fnormalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" - integrity sha1-suHE3E98bVd0PfczpPWXjRhlBVk= - npm-run-path@^2.0.0: version "2.0.2" resolved "https://registry.npm.taobao.org/npm-run-path/download/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" @@ -6650,31 +3174,12 @@ npm-run-path@^2.0.0: dependencies: path-key "^2.0.0" -npm-run-path@^4.0.0: - version "4.0.1" - resolved "https://registry.npm.taobao.org/npm-run-path/download/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" - integrity sha1-t+zR5e1T2o43pV4cImnguX7XSOo= - dependencies: - path-key "^3.0.0" - -nth-check@^1.0.2, nth-check@~1.0.1: - version "1.0.2" - resolved "https://registry.npm.taobao.org/nth-check/download/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" - integrity sha1-sr0pXDfj3VijvwcAN2Zjuk2c8Fw= - dependencies: - boolbase "~1.0.0" - -num2fraction@^1.2.2: - version "1.2.2" - resolved "https://registry.npm.taobao.org/num2fraction/download/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" - integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= - oauth-sign@~0.9.0: version "0.9.0" resolved "https://registry.npm.taobao.org/oauth-sign/download/oauth-sign-0.9.0.tgz?cache=0&sync_timestamp=1589682811909&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Foauth-sign%2Fdownload%2Foauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" integrity sha1-R6ewFrqmi1+g7PPe4IqFxnmsZFU= -object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: +object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.npm.taobao.org/object-assign/download/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= @@ -6698,14 +3203,6 @@ object-inspect@^1.7.0, object-inspect@^1.8.0: resolved "https://registry.npm.taobao.org/object-inspect/download/object-inspect-1.8.0.tgz?cache=0&sync_timestamp=1592545231350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-inspect%2Fdownload%2Fobject-inspect-1.8.0.tgz#df807e5ecf53a609cc6bfe93eac3cc7be5b3a9d0" integrity sha1-34B+Xs9TpgnMa/6T6sPMe+WzqdA= -object-is@^1.0.1: - version "1.1.3" - resolved "https://registry.npm.taobao.org/object-is/download/object-is-1.1.3.tgz?cache=0&sync_timestamp=1601502788762&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-is%2Fdownload%2Fobject-is-1.1.3.tgz#2e3b9e65560137455ee3bd62aec4d90a2ea1cc81" - integrity sha1-LjueZVYBN0Ve471irsTZCi6hzIE= - dependencies: - define-properties "^1.1.3" - es-abstract "^1.18.0-next.1" - object-keys@^1.0.12, object-keys@^1.1.1: version "1.1.1" resolved "https://registry.npm.taobao.org/object-keys/download/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" @@ -6728,14 +3225,6 @@ object.assign@^4.1.0, object.assign@^4.1.1: has-symbols "^1.0.1" object-keys "^1.1.1" -object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0: - version "2.1.0" - resolved "https://registry.npm.taobao.org/object.getownpropertydescriptors/download/object.getownpropertydescriptors-2.1.0.tgz#369bf1f9592d8ab89d712dced5cb81c7c5352649" - integrity sha1-Npvx+VktiridcS3O1cuBx8U1Jkk= - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - object.pick@^1.3.0: version "1.3.0" resolved "https://registry.npm.taobao.org/object.pick/download/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" @@ -6743,7 +3232,7 @@ object.pick@^1.3.0: dependencies: isobject "^3.0.1" -object.values@^1.1.0, object.values@^1.1.1: +object.values@^1.1.1: version "1.1.1" resolved "https://registry.npm.taobao.org/object.values/download/object.values-1.1.1.tgz#68a99ecde356b7e9295a3c5e0ce31dc8c953de5e" integrity sha1-aKmezeNWt+kpWjxeDOMdyMlT3l4= @@ -6753,23 +3242,6 @@ object.values@^1.1.0, object.values@^1.1.1: function-bind "^1.1.1" has "^1.0.3" -obuf@^1.0.0, obuf@^1.1.2: - version "1.1.2" - resolved "https://registry.npm.taobao.org/obuf/download/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" - integrity sha1-Cb6jND1BhZ69RGKS0RydTbYZCE4= - -on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.npm.taobao.org/on-finished/download/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" - integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= - dependencies: - ee-first "1.1.1" - -on-headers@~1.0.2: - version "1.0.2" - resolved "https://registry.npm.taobao.org/on-headers/download/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" - integrity sha1-dysK5qqlJcOZ5Imt+tkMQD6zwo8= - once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.npm.taobao.org/once/download/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" @@ -6798,18 +3270,6 @@ open@^6.3.0: dependencies: is-wsl "^1.1.0" -opener@^1.5.1: - version "1.5.2" - resolved "https://registry.npm.taobao.org/opener/download/opener-1.5.2.tgz?cache=0&sync_timestamp=1598733244715&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fopener%2Fdownload%2Fopener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" - integrity sha1-XTfh81B3udysQwE3InGv3rKhNZg= - -opn@^5.5.0: - version "5.5.0" - resolved "https://registry.npm.taobao.org/opn/download/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" - integrity sha1-/HFk+rVtI1kExRw7J9pnWMo7m/w= - dependencies: - is-wsl "^1.1.0" - optionator@^0.8.3: version "0.8.3" resolved "https://registry.npm.taobao.org/optionator/download/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" @@ -6834,24 +3294,12 @@ ora@^3.4.0: strip-ansi "^5.2.0" wcwidth "^1.0.1" -original@^1.0.0: - version "1.0.2" - resolved "https://registry.npm.taobao.org/original/download/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" - integrity sha1-5EKmHP/hxf0gpl8yYcJmY7MD8l8= - dependencies: - url-parse "^1.4.3" - os-browserify@^0.3.0: version "0.3.0" resolved "https://registry.npm.taobao.org/os-browserify/download/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= -os-homedir@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" - integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= - -os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: +os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= @@ -6861,11 +3309,6 @@ p-finally@^1.0.0: resolved "https://registry.npm.taobao.org/p-finally/download/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= -p-finally@^2.0.0: - version "2.0.1" - resolved "https://registry.npm.taobao.org/p-finally/download/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561" - integrity sha1-vW/KqcVZoJa2gIBvTWV7Pw8kBWE= - 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" @@ -6873,7 +3316,7 @@ p-limit@^1.1.0: dependencies: p-try "^1.0.0" -p-limit@^2.0.0, p-limit@^2.2.0, p-limit@^2.2.1, p-limit@^2.3.0: +p-limit@^2.0.0: version "2.3.0" resolved "https://registry.npm.taobao.org/p-limit/download/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" integrity sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE= @@ -6894,32 +3337,6 @@ p-locate@^3.0.0: dependencies: p-limit "^2.0.0" -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.npm.taobao.org/p-locate/download/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" - integrity sha1-o0KLtwiLOmApL2aRkni3wpetTwc= - dependencies: - p-limit "^2.2.0" - -p-map@^2.0.0: - version "2.1.0" - resolved "https://registry.npm.taobao.org/p-map/download/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" - integrity sha1-MQko/u+cnsxltosXaTAYpmXOoXU= - -p-map@^3.0.0: - version "3.0.0" - resolved "https://registry.npm.taobao.org/p-map/download/p-map-3.0.0.tgz#d704d9af8a2ba684e2600d9a215983d4141a979d" - integrity sha1-1wTZr4orpoTiYA2aIVmD1BQal50= - dependencies: - aggregate-error "^3.0.0" - -p-retry@^3.0.1: - version "3.0.1" - resolved "https://registry.npm.taobao.org/p-retry/download/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328" - integrity sha1-MWtMiJPiyNwc+okfQGxLQivr8yg= - dependencies: - retry "^0.12.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" @@ -6944,13 +3361,6 @@ parallel-transform@^1.1.0: inherits "^2.0.3" readable-stream "^2.1.5" -param-case@2.1.x: - version "2.1.1" - resolved "https://registry.npm.taobao.org/param-case/download/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247" - integrity sha1-35T9jPZTHs915r75oIWPvHK+Ikc= - dependencies: - no-case "^2.2.0" - 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" @@ -6976,14 +3386,6 @@ parse-json@^2.2.0: dependencies: error-ex "^1.2.0" -parse-json@^4.0.0: - version "4.0.0" - resolved "https://registry.npm.taobao.org/parse-json/download/parse-json-4.0.0.tgz?cache=0&sync_timestamp=1598129182781&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse-json%2Fdownload%2Fparse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" - integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= - dependencies: - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" - parse-json@^5.0.0: version "5.1.0" resolved "https://registry.npm.taobao.org/parse-json/download/parse-json-5.1.0.tgz?cache=0&sync_timestamp=1598129182781&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse-json%2Fdownload%2Fparse-json-5.1.0.tgz#f96088cdf24a8faa9aea9a009f2d9d942c999646" @@ -6994,23 +3396,6 @@ parse-json@^5.0.0: json-parse-even-better-errors "^2.3.0" lines-and-columns "^1.1.6" -parse5-htmlparser2-tree-adapter@^5.1.1: - version "5.1.1" - resolved "https://registry.npm.taobao.org/parse5-htmlparser2-tree-adapter/download/parse5-htmlparser2-tree-adapter-5.1.1.tgz?cache=0&sync_timestamp=1596089818598&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse5-htmlparser2-tree-adapter%2Fdownload%2Fparse5-htmlparser2-tree-adapter-5.1.1.tgz#e8c743d4e92194d5293ecde2b08be31e67461cbc" - integrity sha1-6MdD1OkhlNUpPs3isIvjHmdGHLw= - dependencies: - parse5 "^5.1.1" - -parse5@^5.1.1: - version "5.1.1" - resolved "https://registry.npm.taobao.org/parse5/download/parse5-5.1.1.tgz?cache=0&sync_timestamp=1595849263958&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse5%2Fdownload%2Fparse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178" - integrity sha1-9o5OW6GFKsLK3AD0VV//bCq7YXg= - -parseurl@~1.3.2, parseurl@~1.3.3: - version "1.3.3" - resolved "https://registry.npm.taobao.org/parseurl/download/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" - integrity sha1-naGee+6NEt/wUT7Vt2lXeTvC6NQ= - pascalcase@^0.1.1: version "0.1.1" resolved "https://registry.npm.taobao.org/pascalcase/download/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" @@ -7038,41 +3423,21 @@ path-exists@^3.0.0: resolved "https://registry.npm.taobao.org/path-exists/download/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.npm.taobao.org/path-exists/download/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha1-UTvb4tO5XXdi6METfvoZXGxhtbM= - -path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: +path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= -path-is-inside@^1.0.2: - version "1.0.2" - resolved "https://registry.npm.taobao.org/path-is-inside/download/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" - integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= - path-key@^2.0.0, path-key@^2.0.1: version "2.0.1" resolved "https://registry.npm.taobao.org/path-key/download/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= -path-key@^3.0.0, path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.npm.taobao.org/path-key/download/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U= - path-parse@^1.0.6: version "1.0.6" resolved "https://registry.npm.taobao.org/path-parse/download/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" integrity sha1-1i27VnlAXXLEc37FhgDp3c8G0kw= -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.npm.taobao.org/path-to-regexp/download/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= - path-type@^2.0.0: version "2.0.0" resolved "https://registry.npm.taobao.org/path-type/download/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" @@ -7156,398 +3521,16 @@ pkg-dir@^3.0.0: dependencies: find-up "^3.0.0" -pkg-dir@^4.1.0: - version "4.2.0" - resolved "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" - integrity sha1-8JkTPfft5CLoHR2ESCcO6z5CYfM= - dependencies: - find-up "^4.0.0" - -pnp-webpack-plugin@^1.6.4: - version "1.6.4" - resolved "https://registry.npm.taobao.org/pnp-webpack-plugin/download/pnp-webpack-plugin-1.6.4.tgz?cache=0&sync_timestamp=1589684269502&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpnp-webpack-plugin%2Fdownload%2Fpnp-webpack-plugin-1.6.4.tgz#c9711ac4dc48a685dabafc86f8b6dd9f8df84149" - integrity sha1-yXEaxNxIpoXauvyG+Lbdn434QUk= - dependencies: - ts-pnp "^1.1.6" - -portfinder@^1.0.26: - version "1.0.28" - resolved "https://registry.npm.taobao.org/portfinder/download/portfinder-1.0.28.tgz?cache=0&sync_timestamp=1596018176291&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fportfinder%2Fdownload%2Fportfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778" - integrity sha1-Z8RiKFK9U3TdHdkA93n1NGL6x3g= - dependencies: - async "^2.6.2" - debug "^3.1.1" - mkdirp "^0.5.5" - posix-character-classes@^0.1.0: version "0.1.1" resolved "https://registry.npm.taobao.org/posix-character-classes/download/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= -postcss-calc@^7.0.1: - version "7.0.5" - resolved "https://registry.npm.taobao.org/postcss-calc/download/postcss-calc-7.0.5.tgz?cache=0&sync_timestamp=1601732630249&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-calc%2Fdownload%2Fpostcss-calc-7.0.5.tgz#f8a6e99f12e619c2ebc23cf6c486fdc15860933e" - integrity sha1-+KbpnxLmGcLrwjz2xIb9wVhgkz4= - dependencies: - postcss "^7.0.27" - postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.0.2" - -postcss-colormin@^4.0.3: - version "4.0.3" - resolved "https://registry.npm.taobao.org/postcss-colormin/download/postcss-colormin-4.0.3.tgz?cache=0&sync_timestamp=1599672034427&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-colormin%2Fdownload%2Fpostcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381" - integrity sha1-rgYLzpPteUrHEmTwgTLVUJVr04E= - dependencies: - browserslist "^4.0.0" - color "^3.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-convert-values@^4.0.1: - version "4.0.1" - resolved "https://registry.npm.taobao.org/postcss-convert-values/download/postcss-convert-values-4.0.1.tgz?cache=0&sync_timestamp=1599672034819&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-convert-values%2Fdownload%2Fpostcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f" - integrity sha1-yjgT7U2g+BL51DcDWE5Enr4Ymn8= - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-discard-comments@^4.0.2: - version "4.0.2" - resolved "https://registry.npm.taobao.org/postcss-discard-comments/download/postcss-discard-comments-4.0.2.tgz?cache=0&sync_timestamp=1599672035158&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-discard-comments%2Fdownload%2Fpostcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033" - integrity sha1-H7q9LCRr/2qq15l7KwkY9NevQDM= - dependencies: - postcss "^7.0.0" - -postcss-discard-duplicates@^4.0.2: - version "4.0.2" - resolved "https://registry.npm.taobao.org/postcss-discard-duplicates/download/postcss-discard-duplicates-4.0.2.tgz?cache=0&sync_timestamp=1599672035521&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-discard-duplicates%2Fdownload%2Fpostcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb" - integrity sha1-P+EzzTyCKC5VD8myORdqkge3hOs= - dependencies: - postcss "^7.0.0" - -postcss-discard-empty@^4.0.1: - version "4.0.1" - resolved "https://registry.npm.taobao.org/postcss-discard-empty/download/postcss-discard-empty-4.0.1.tgz?cache=0&sync_timestamp=1599672035856&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-discard-empty%2Fdownload%2Fpostcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765" - integrity sha1-yMlR6fc+2UKAGUWERKAq2Qu592U= - dependencies: - postcss "^7.0.0" - -postcss-discard-overridden@^4.0.1: - version "4.0.1" - resolved "https://registry.npm.taobao.org/postcss-discard-overridden/download/postcss-discard-overridden-4.0.1.tgz?cache=0&sync_timestamp=1599672036180&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-discard-overridden%2Fdownload%2Fpostcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57" - integrity sha1-ZSrvipZybwKfXj4AFG7npOdV/1c= - dependencies: - postcss "^7.0.0" - -postcss-load-config@^2.0.0: - version "2.1.2" - resolved "https://registry.npm.taobao.org/postcss-load-config/download/postcss-load-config-2.1.2.tgz?cache=0&sync_timestamp=1601607876353&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-load-config%2Fdownload%2Fpostcss-load-config-2.1.2.tgz#c5ea504f2c4aef33c7359a34de3573772ad7502a" - integrity sha1-xepQTyxK7zPHNZo03jVzdyrXUCo= - dependencies: - cosmiconfig "^5.0.0" - import-cwd "^2.0.0" - -postcss-loader@^3.0.0: - version "3.0.0" - resolved "https://registry.npm.taobao.org/postcss-loader/download/postcss-loader-3.0.0.tgz#6b97943e47c72d845fa9e03f273773d4e8dd6c2d" - integrity sha1-a5eUPkfHLYRfqeA/Jzdz1OjdbC0= - dependencies: - loader-utils "^1.1.0" - postcss "^7.0.0" - postcss-load-config "^2.0.0" - schema-utils "^1.0.0" - -postcss-merge-longhand@^4.0.11: - version "4.0.11" - resolved "https://registry.npm.taobao.org/postcss-merge-longhand/download/postcss-merge-longhand-4.0.11.tgz?cache=0&sync_timestamp=1599670256906&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-merge-longhand%2Fdownload%2Fpostcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24" - integrity sha1-YvSaE+Sg7gTnuY9CuxYGLKJUniQ= - dependencies: - css-color-names "0.0.4" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - stylehacks "^4.0.0" - -postcss-merge-rules@^4.0.3: - version "4.0.3" - resolved "https://registry.npm.taobao.org/postcss-merge-rules/download/postcss-merge-rules-4.0.3.tgz?cache=0&sync_timestamp=1599670257021&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-merge-rules%2Fdownload%2Fpostcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650" - integrity sha1-NivqT/Wh+Y5AdacTxsslrv75plA= - dependencies: - browserslist "^4.0.0" - caniuse-api "^3.0.0" - cssnano-util-same-parent "^4.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - vendors "^1.0.0" - -postcss-minify-font-values@^4.0.2: - version "4.0.2" - resolved "https://registry.npm.taobao.org/postcss-minify-font-values/download/postcss-minify-font-values-4.0.2.tgz?cache=0&sync_timestamp=1599670257113&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-minify-font-values%2Fdownload%2Fpostcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6" - integrity sha1-zUw0TM5HQ0P6xdgiBqssvLiv1aY= - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-minify-gradients@^4.0.2: - version "4.0.2" - resolved "https://registry.npm.taobao.org/postcss-minify-gradients/download/postcss-minify-gradients-4.0.2.tgz?cache=0&sync_timestamp=1599670257199&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-minify-gradients%2Fdownload%2Fpostcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471" - integrity sha1-k7KcL/UJnFNe7NpWxKpuZlpmNHE= - dependencies: - cssnano-util-get-arguments "^4.0.0" - is-color-stop "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-minify-params@^4.0.2: - version "4.0.2" - resolved "https://registry.npm.taobao.org/postcss-minify-params/download/postcss-minify-params-4.0.2.tgz?cache=0&sync_timestamp=1599670257293&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-minify-params%2Fdownload%2Fpostcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874" - integrity sha1-a5zvAwwR41Jh+V9hjJADbWgNuHQ= - dependencies: - alphanum-sort "^1.0.0" - browserslist "^4.0.0" - cssnano-util-get-arguments "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - uniqs "^2.0.0" - -postcss-minify-selectors@^4.0.2: - version "4.0.2" - resolved "https://registry.npm.taobao.org/postcss-minify-selectors/download/postcss-minify-selectors-4.0.2.tgz?cache=0&sync_timestamp=1599670257506&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-minify-selectors%2Fdownload%2Fpostcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8" - integrity sha1-4uXrQL/uUA0M2SQ1APX46kJi+9g= - dependencies: - alphanum-sort "^1.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - -postcss-modules-extract-imports@^2.0.0: - version "2.0.0" - resolved "https://registry.npm.taobao.org/postcss-modules-extract-imports/download/postcss-modules-extract-imports-2.0.0.tgz?cache=0&sync_timestamp=1602588245463&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-extract-imports%2Fdownload%2Fpostcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e" - integrity sha1-gYcZoa4doyX5gyRGsBE27rSTzX4= - dependencies: - postcss "^7.0.5" - -postcss-modules-local-by-default@^3.0.2: - version "3.0.3" - resolved "https://registry.npm.taobao.org/postcss-modules-local-by-default/download/postcss-modules-local-by-default-3.0.3.tgz?cache=0&sync_timestamp=1602587568476&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-local-by-default%2Fdownload%2Fpostcss-modules-local-by-default-3.0.3.tgz#bb14e0cc78279d504dbdcbfd7e0ca28993ffbbb0" - integrity sha1-uxTgzHgnnVBNvcv9fgyiiZP/u7A= - dependencies: - icss-utils "^4.1.1" - postcss "^7.0.32" - postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.1.0" - -postcss-modules-scope@^2.2.0: - version "2.2.0" - resolved "https://registry.npm.taobao.org/postcss-modules-scope/download/postcss-modules-scope-2.2.0.tgz?cache=0&sync_timestamp=1602593260387&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-scope%2Fdownload%2Fpostcss-modules-scope-2.2.0.tgz#385cae013cc7743f5a7d7602d1073a89eaae62ee" - integrity sha1-OFyuATzHdD9afXYC0Qc6iequYu4= - dependencies: - postcss "^7.0.6" - postcss-selector-parser "^6.0.0" - -postcss-modules-values@^3.0.0: - version "3.0.0" - resolved "https://registry.npm.taobao.org/postcss-modules-values/download/postcss-modules-values-3.0.0.tgz?cache=0&sync_timestamp=1602586230505&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-values%2Fdownload%2Fpostcss-modules-values-3.0.0.tgz#5b5000d6ebae29b4255301b4a3a54574423e7f10" - integrity sha1-W1AA1uuuKbQlUwG0o6VFdEI+fxA= - dependencies: - icss-utils "^4.0.0" - postcss "^7.0.6" - -postcss-normalize-charset@^4.0.1: - version "4.0.1" - resolved "https://registry.npm.taobao.org/postcss-normalize-charset/download/postcss-normalize-charset-4.0.1.tgz?cache=0&sync_timestamp=1599670257383&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-normalize-charset%2Fdownload%2Fpostcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4" - integrity sha1-izWt067oOhNrBHHg1ZvlilAoXdQ= - dependencies: - postcss "^7.0.0" - -postcss-normalize-display-values@^4.0.2: - version "4.0.2" - resolved "https://registry.npm.taobao.org/postcss-normalize-display-values/download/postcss-normalize-display-values-4.0.2.tgz?cache=0&sync_timestamp=1599670257599&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-normalize-display-values%2Fdownload%2Fpostcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a" - integrity sha1-Db4EpM6QY9RmftK+R2u4MMglk1o= - dependencies: - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-positions@^4.0.2: - version "4.0.2" - resolved "https://registry.npm.taobao.org/postcss-normalize-positions/download/postcss-normalize-positions-4.0.2.tgz?cache=0&sync_timestamp=1599670257682&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-normalize-positions%2Fdownload%2Fpostcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f" - integrity sha1-BfdX+E8mBDc3g2ipH4ky1LECkX8= - dependencies: - cssnano-util-get-arguments "^4.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-repeat-style@^4.0.2: - version "4.0.2" - resolved "https://registry.npm.taobao.org/postcss-normalize-repeat-style/download/postcss-normalize-repeat-style-4.0.2.tgz?cache=0&sync_timestamp=1599670257873&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-normalize-repeat-style%2Fdownload%2Fpostcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c" - integrity sha1-xOu8KJ85kaAo1EdRy90RkYsXkQw= - dependencies: - cssnano-util-get-arguments "^4.0.0" - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-string@^4.0.2: - version "4.0.2" - resolved "https://registry.npm.taobao.org/postcss-normalize-string/download/postcss-normalize-string-4.0.2.tgz?cache=0&sync_timestamp=1599670257788&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-normalize-string%2Fdownload%2Fpostcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c" - integrity sha1-zUTECrB6DHo23F6Zqs4eyk7CaQw= - dependencies: - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-timing-functions@^4.0.2: - version "4.0.2" - resolved "https://registry.npm.taobao.org/postcss-normalize-timing-functions/download/postcss-normalize-timing-functions-4.0.2.tgz?cache=0&sync_timestamp=1599670257997&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-normalize-timing-functions%2Fdownload%2Fpostcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9" - integrity sha1-jgCcoqOUnNr4rSPmtquZy159KNk= - dependencies: - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-unicode@^4.0.1: - version "4.0.1" - resolved "https://registry.npm.taobao.org/postcss-normalize-unicode/download/postcss-normalize-unicode-4.0.1.tgz?cache=0&sync_timestamp=1599670258081&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-normalize-unicode%2Fdownload%2Fpostcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb" - integrity sha1-hBvUj9zzAZrUuqdJOj02O1KuHPs= - dependencies: - browserslist "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-url@^4.0.1: - version "4.0.1" - resolved "https://registry.npm.taobao.org/postcss-normalize-url/download/postcss-normalize-url-4.0.1.tgz?cache=0&sync_timestamp=1599670258196&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-normalize-url%2Fdownload%2Fpostcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1" - integrity sha1-EOQ3+GvHx+WPe5ZS7YeNqqlfquE= - dependencies: - is-absolute-url "^2.0.0" - normalize-url "^3.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-whitespace@^4.0.2: - version "4.0.2" - resolved "https://registry.npm.taobao.org/postcss-normalize-whitespace/download/postcss-normalize-whitespace-4.0.2.tgz?cache=0&sync_timestamp=1599670258290&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-normalize-whitespace%2Fdownload%2Fpostcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82" - integrity sha1-vx1AcP5Pzqh9E0joJdjMDF+qfYI= - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-ordered-values@^4.1.2: - version "4.1.2" - resolved "https://registry.npm.taobao.org/postcss-ordered-values/download/postcss-ordered-values-4.1.2.tgz?cache=0&sync_timestamp=1599670258382&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-ordered-values%2Fdownload%2Fpostcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee" - integrity sha1-DPdcgg7H1cTSgBiVWeC1ceusDu4= - dependencies: - cssnano-util-get-arguments "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-reduce-initial@^4.0.3: - version "4.0.3" - resolved "https://registry.npm.taobao.org/postcss-reduce-initial/download/postcss-reduce-initial-4.0.3.tgz?cache=0&sync_timestamp=1599670258477&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-reduce-initial%2Fdownload%2Fpostcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df" - integrity sha1-f9QuvqXpyBRgljniwuhK4nC6SN8= - dependencies: - browserslist "^4.0.0" - caniuse-api "^3.0.0" - has "^1.0.0" - postcss "^7.0.0" - -postcss-reduce-transforms@^4.0.2: - version "4.0.2" - resolved "https://registry.npm.taobao.org/postcss-reduce-transforms/download/postcss-reduce-transforms-4.0.2.tgz?cache=0&sync_timestamp=1599670258690&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-reduce-transforms%2Fdownload%2Fpostcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29" - integrity sha1-F++kBerMbge+NBSlyi0QdGgdTik= - dependencies: - cssnano-util-get-match "^4.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-selector-parser@^3.0.0: - version "3.1.2" - resolved "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-3.1.2.tgz?cache=0&sync_timestamp=1601045316432&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-3.1.2.tgz#b310f5c4c0fdaf76f94902bbaa30db6aa84f5270" - integrity sha1-sxD1xMD9r3b5SQK7qjDbaqhPUnA= - dependencies: - dot-prop "^5.2.0" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2: - version "6.0.4" - resolved "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-6.0.4.tgz?cache=0&sync_timestamp=1601045316432&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-6.0.4.tgz#56075a1380a04604c38b063ea7767a129af5c2b3" - integrity sha1-VgdaE4CgRgTDiwY+p3Z6Epr1wrM= - dependencies: - cssesc "^3.0.0" - indexes-of "^1.0.1" - uniq "^1.0.1" - util-deprecate "^1.0.2" - -postcss-svgo@^4.0.2: - version "4.0.2" - resolved "https://registry.npm.taobao.org/postcss-svgo/download/postcss-svgo-4.0.2.tgz?cache=0&sync_timestamp=1599670258791&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-svgo%2Fdownload%2Fpostcss-svgo-4.0.2.tgz#17b997bc711b333bab143aaed3b8d3d6e3d38258" - integrity sha1-F7mXvHEbMzurFDqu07jT1uPTglg= - dependencies: - is-svg "^3.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - svgo "^1.0.0" - -postcss-unique-selectors@^4.0.1: - version "4.0.1" - resolved "https://registry.npm.taobao.org/postcss-unique-selectors/download/postcss-unique-selectors-4.0.1.tgz?cache=0&sync_timestamp=1599670258883&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-unique-selectors%2Fdownload%2Fpostcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac" - integrity sha1-lEaRHzKJv9ZMbWgPBzwDsfnuS6w= - dependencies: - alphanum-sort "^1.0.0" - postcss "^7.0.0" - uniqs "^2.0.0" - -postcss-value-parser@^3.0.0: - version "3.3.1" - resolved "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" - integrity sha1-n/giVH4okyE88cMO+lGsX9G6goE= - -postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: - version "4.1.0" - resolved "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" - integrity sha1-RD9qIM7WSBor2k+oUypuVdeJoss= - -postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.27, postcss@^7.0.32, postcss@^7.0.5, postcss@^7.0.6: - version "7.0.35" - resolved "https://registry.npm.taobao.org/postcss/download/postcss-7.0.35.tgz?cache=0&sync_timestamp=1601330112363&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.35.tgz#d2be00b998f7f211d8a276974079f2e92b970e24" - integrity sha1-0r4AuZj38hHYonaXQHny6SuXDiQ= - dependencies: - chalk "^2.4.2" - source-map "^0.6.1" - supports-color "^6.1.0" - prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.npm.taobao.org/prelude-ls/download/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= -prepend-http@^1.0.0: - version "1.0.4" - resolved "https://registry.npm.taobao.org/prepend-http/download/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" - integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= - -prettier@^1.18.2: - version "1.19.1" - resolved "https://registry.npm.taobao.org/prettier/download/prettier-1.19.1.tgz?cache=0&sync_timestamp=1600215482255&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fprettier%2Fdownload%2Fprettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" - integrity sha1-99f1/4qc2HKnvkyhQglZVqYHl8s= - -pretty-error@^2.0.2: - version "2.1.1" - resolved "https://registry.npm.taobao.org/pretty-error/download/pretty-error-2.1.1.tgz#5f4f87c8f91e5ae3f3ba87ab4cf5e03b1a17f1a3" - integrity sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM= - dependencies: - renderkid "^2.0.1" - utila "~0.4" - -private@^0.1.6, private@^0.1.8: - version "0.1.8" - resolved "https://registry.npmjs.org/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" - integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== - process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" @@ -7568,14 +3551,6 @@ promise-inflight@^1.0.1: resolved "https://registry.npm.taobao.org/promise-inflight/download/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= -proxy-addr@~2.0.5: - version "2.0.6" - resolved "https://registry.npm.taobao.org/proxy-addr/download/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf" - integrity sha1-/cIzZQVEfT8vLGOO0nLK9hS7sr8= - dependencies: - forwarded "~0.1.2" - ipaddr.js "1.9.1" - prr@~1.0.1: version "1.0.1" resolved "https://registry.npm.taobao.org/prr/download/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" @@ -7643,16 +3618,6 @@ punycode@^2.1.0, punycode@^2.1.1: resolved "https://registry.npm.taobao.org/punycode/download/punycode-2.1.1.tgz?cache=0&sync_timestamp=1589682803838&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpunycode%2Fdownload%2Fpunycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha1-tYsBCsQMIsVldhbI0sLALHv0eew= -q@^1.1.2: - version "1.5.1" - resolved "https://registry.npm.taobao.org/q/download/q-1.5.1.tgz?cache=0&sync_timestamp=1589682817412&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fq%2Fdownload%2Fq-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" - integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= - -qs@6.7.0: - version "6.7.0" - resolved "https://registry.npm.taobao.org/qs/download/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" - integrity sha1-QdwaAV49WB8WIXdr4xr7KHapsbw= - qs@^6.6.0: version "6.9.4" resolved "https://registry.npm.taobao.org/qs/download/qs-6.9.4.tgz#9090b290d1f91728d3c22e54843ca44aea5ab687" @@ -7663,14 +3628,6 @@ qs@~6.5.2: resolved "https://registry.npm.taobao.org/qs/download/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" integrity sha1-yzroBuh0BERYTvFUzo7pjUA/PjY= -query-string@^4.1.0: - version "4.3.4" - resolved "https://registry.npm.taobao.org/query-string/download/query-string-4.3.4.tgz?cache=0&sync_timestamp=1601654316965&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fquery-string%2Fdownload%2Fquery-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" - integrity sha1-u7aTucqRXCMlFbIosaArYJBD2+s= - dependencies: - object-assign "^4.1.0" - strict-uri-encode "^1.0.0" - querystring-es3@^0.2.0: version "0.2.1" resolved "https://registry.npm.taobao.org/querystring-es3/download/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" @@ -7681,11 +3638,6 @@ querystring@0.2.0: resolved "https://registry.npm.taobao.org/querystring/download/querystring-0.2.0.tgz?cache=0&sync_timestamp=1589682791876&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fquerystring%2Fdownload%2Fquerystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= -querystringify@^2.1.1: - version "2.2.0" - resolved "https://registry.npm.taobao.org/querystringify/download/querystringify-2.2.0.tgz?cache=0&sync_timestamp=1597686771604&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fquerystringify%2Fdownload%2Fquerystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" - integrity sha1-M0WUG0FTy50ILY7uTNogFqmu9/Y= - random-int@^1.0.0: version "1.0.0" resolved "https://registry.npm.taobao.org/random-int/download/random-int-1.0.0.tgz#e6a2ed3448ac9c6646a0657443b1c1521592ed08" @@ -7706,21 +3658,6 @@ randomfill@^1.0.3: randombytes "^2.0.5" safe-buffer "^5.1.0" -range-parser@^1.2.1, range-parser@~1.2.1: - version "1.2.1" - resolved "https://registry.npm.taobao.org/range-parser/download/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" - integrity sha1-PPNwI9GZ4cJNGlW4SADC8+ZGgDE= - -raw-body@2.4.0: - version "2.4.0" - resolved "https://registry.npm.taobao.org/raw-body/download/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" - integrity sha1-oc5vucm8NWylLoklarWQWeE9AzI= - dependencies: - bytes "3.1.0" - http-errors "1.7.2" - iconv-lite "0.4.24" - unpipe "1.0.0" - read-pkg-up@^2.0.0: version "2.0.0" resolved "https://registry.npm.taobao.org/read-pkg-up/download/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" @@ -7761,7 +3698,7 @@ read-pkg@^5.1.1: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.6.0: +readable-stream@^3.6.0: version "3.6.0" resolved "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz?cache=0&sync_timestamp=1589682741447&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" integrity sha1-M3u9o63AcGvT4CRCaihtS0sskZg= @@ -7786,49 +3723,6 @@ readdirp@~3.5.0: dependencies: picomatch "^2.2.1" -regenerate-unicode-properties@^8.2.0: - version "8.2.0" - resolved "https://registry.npm.taobao.org/regenerate-unicode-properties/download/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" - integrity sha1-5d5xEdZV57pgwFfb6f83yH5lzew= - dependencies: - regenerate "^1.4.0" - -regenerate@^1.2.1, regenerate@^1.4.0: - version "1.4.1" - resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.4.1.tgz#cad92ad8e6b591773485fbe05a485caf4f457e6f" - integrity sha512-j2+C8+NtXQgEKWk49MMP5P/u2GhnahTtVkRIHr5R5lVRlbKvmQ+oS+A5aLKWp2ma5VkT8sh6v+v4hbH0YHR66A== - -regenerator-runtime@^0.10.5: - version "0.10.5" - resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" - integrity sha1-M2w+/BIgrc7dosn6tntaeVWjNlg= - -regenerator-runtime@^0.11.0: - version "0.11.1" - resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" - integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== - -regenerator-runtime@^0.13.4: - version "0.13.7" - resolved "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.13.7.tgz?cache=0&sync_timestamp=1595456311465&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" - integrity sha1-ysLazIoepnX+qrrriugziYrkb1U= - -regenerator-transform@^0.10.0: - version "0.10.1" - resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" - integrity sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q== - dependencies: - babel-runtime "^6.18.0" - babel-types "^6.19.0" - private "^0.1.6" - -regenerator-transform@^0.14.2: - version "0.14.5" - resolved "https://registry.npm.taobao.org/regenerator-transform/download/regenerator-transform-0.14.5.tgz#c98da154683671c9c4dcb16ece736517e1b7feb4" - integrity sha1-yY2hVGg2ccnE3LFuznNlF+G3/rQ= - dependencies: - "@babel/runtime" "^7.8.4" - regex-not@^1.0.0, regex-not@^1.0.2: version "1.0.2" resolved "https://registry.npm.taobao.org/regex-not/download/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" @@ -7837,14 +3731,6 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" -regexp.prototype.flags@^1.2.0: - version "1.3.0" - resolved "https://registry.npm.taobao.org/regexp.prototype.flags/download/regexp.prototype.flags-1.3.0.tgz#7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75" - integrity sha1-erqJs8E6ZFCdq888qNn7ub31y3U= - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - regexpp@^2.0.1: version "2.0.1" resolved "https://registry.npm.taobao.org/regexpp/download/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" @@ -7855,72 +3741,11 @@ regexpp@^3.0.0: resolved "https://registry.npm.taobao.org/regexpp/download/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" integrity sha1-IG0K0KVkjP+9uK5GQ489xRyfeOI= -regexpu-core@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" - integrity sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA= - dependencies: - regenerate "^1.2.1" - regjsgen "^0.2.0" - regjsparser "^0.1.4" - -regexpu-core@^4.7.1: - version "4.7.1" - resolved "https://registry.npm.taobao.org/regexpu-core/download/regexpu-core-4.7.1.tgz?cache=0&sync_timestamp=1600413461940&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexpu-core%2Fdownload%2Fregexpu-core-4.7.1.tgz#2dea5a9a07233298fbf0db91fa9abc4c6e0f8ad6" - integrity sha1-LepamgcjMpj78NuR+pq8TG4PitY= - dependencies: - regenerate "^1.4.0" - regenerate-unicode-properties "^8.2.0" - regjsgen "^0.5.1" - regjsparser "^0.6.4" - unicode-match-property-ecmascript "^1.0.4" - unicode-match-property-value-ecmascript "^1.2.0" - -regjsgen@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" - integrity sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc= - -regjsgen@^0.5.1: - version "0.5.2" - resolved "https://registry.npm.taobao.org/regjsgen/download/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733" - integrity sha1-kv8pX7He7L9uzaslQ9IH6RqjNzM= - -regjsparser@^0.1.4: - version "0.1.5" - resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" - integrity sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw= - dependencies: - jsesc "~0.5.0" - -regjsparser@^0.6.4: - version "0.6.4" - resolved "https://registry.npm.taobao.org/regjsparser/download/regjsparser-0.6.4.tgz#a769f8684308401a66e9b529d2436ff4d0666272" - integrity sha1-p2n4aEMIQBpm6bUp0kNv9NBmYnI= - dependencies: - jsesc "~0.5.0" - -relateurl@0.2.x: - version "0.2.7" - resolved "https://registry.npm.taobao.org/relateurl/download/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" - integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= - remove-trailing-separator@^1.0.1: version "1.1.0" resolved "https://registry.npm.taobao.org/remove-trailing-separator/download/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= -renderkid@^2.0.1: - version "2.0.3" - resolved "https://registry.npm.taobao.org/renderkid/download/renderkid-2.0.3.tgz#380179c2ff5ae1365c522bf2fcfcff01c5b74149" - integrity sha1-OAF5wv9a4TZcUivy/Pz/AcW3QUk= - dependencies: - css-select "^1.1.0" - dom-converter "^0.2" - htmlparser2 "^3.3.0" - strip-ansi "^3.0.0" - utila "^0.4.0" - repeat-element@^1.1.2: version "1.1.3" resolved "https://registry.npm.taobao.org/repeat-element/download/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" @@ -7931,13 +3756,6 @@ repeat-string@^1.6.1: resolved "https://registry.npm.taobao.org/repeat-string/download/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= -repeating@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" - integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo= - dependencies: - is-finite "^1.0.0" - request@^2.88.2: version "2.88.2" resolved "https://registry.npm.taobao.org/request/download/request-2.88.2.tgz?cache=0&sync_timestamp=1589682741998&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frequest%2Fdownload%2Frequest-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" @@ -7971,33 +3789,6 @@ require-context@^1.1.0: dependencies: node-dir "^0.1.17" -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.npm.taobao.org/require-directory/download/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= - -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.npm.taobao.org/require-main-filename/download/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" - integrity sha1-0LMp7MfMD2Fkn2IhW+aa9UqomJs= - -requires-port@^1.0.0: - version "1.0.0" - resolved "https://registry.npm.taobao.org/requires-port/download/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= - -resolve-cwd@^2.0.0: - version "2.0.0" - resolved "https://registry.npm.taobao.org/resolve-cwd/download/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" - integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= - dependencies: - resolve-from "^3.0.0" - -resolve-from@^3.0.0: - version "3.0.0" - resolved "https://registry.npm.taobao.org/resolve-from/download/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" @@ -8008,7 +3799,7 @@ resolve-url@^0.2.1: resolved "https://registry.npm.taobao.org/resolve-url/download/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= -resolve@^1.10.0, resolve@^1.10.1, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.17.0, resolve@^1.3.2, resolve@^1.8.1: +resolve@^1.10.0, resolve@^1.10.1, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.17.0: version "1.17.0" resolved "https://registry.npm.taobao.org/resolve/download/resolve-1.17.0.tgz?cache=0&sync_timestamp=1589682751623&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve%2Fdownload%2Fresolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" integrity sha1-sllBtUloIxzC0bt2p5y38sC/hEQ= @@ -8036,20 +3827,10 @@ ret@~0.1.10: resolved "https://registry.npm.taobao.org/ret/download/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" integrity sha1-uKSCXVvbH8P29Twrwz+BOIaBx7w= -retry@^0.12.0: - version "0.12.0" - resolved "https://registry.npm.taobao.org/retry/download/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" - integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= - -rgb-regex@^1.0.1: - version "1.0.1" - resolved "https://registry.npm.taobao.org/rgb-regex/download/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" - integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE= - -rgba-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.npm.taobao.org/rgba-regex/download/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" - integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= +rfdc@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.1.4.tgz#ba72cc1367a0ccd9cf81a870b3b58bd3ad07f8c2" + integrity sha512-5C9HXdzK8EAqN7JDif30jqsBzavB7wLpaubisuQIGHWf2gUXSpzy6ArX/+Da8RjFpagWsCn+pIgxTMAmKw9Zug== rimraf@2.6.3: version "2.6.3" @@ -8058,7 +3839,7 @@ rimraf@2.6.3: dependencies: glob "^7.1.3" -rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.3, rimraf@^2.7.1: +rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.3: version "2.7.1" resolved "https://registry.npm.taobao.org/rimraf/download/rimraf-2.7.1.tgz?cache=0&sync_timestamp=1589682814592&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" integrity sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w= @@ -8092,16 +3873,16 @@ rxjs@^6.6.0: dependencies: tslib "^1.9.0" -safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.2.1.tgz?cache=0&sync_timestamp=1589682795646&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-buffer%2Fdownload%2Fsafe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY= +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + safe-regex@^1.1.0: version "1.1.0" resolved "https://registry.npm.taobao.org/safe-regex/download/safe-regex-1.1.0.tgz?cache=0&sync_timestamp=1589682757445&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-regex%2Fdownload%2Fsafe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" @@ -8114,11 +3895,6 @@ safe-regex@^1.1.0: resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sax@~1.2.4: - version "1.2.4" - resolved "https://registry.npm.taobao.org/sax/download/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" - integrity sha1-KBYjTiN4vdxOU1T6tcqold9xANk= - schema-utils@^1.0.0: version "1.0.0" resolved "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" @@ -8128,61 +3904,16 @@ schema-utils@^1.0.0: ajv-errors "^1.0.0" ajv-keywords "^3.1.0" -schema-utils@^2.0.0, schema-utils@^2.5.0, schema-utils@^2.6.5, schema-utils@^2.6.6, schema-utils@^2.7.0: - version "2.7.1" - resolved "https://registry.npm.taobao.org/schema-utils/download/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" - integrity sha1-HKTzLRskxZDCA7jnpQvw6kzTlNc= - dependencies: - "@types/json-schema" "^7.0.5" - ajv "^6.12.4" - ajv-keywords "^3.5.2" - -select-hose@^2.0.0: - version "2.0.0" - resolved "https://registry.npm.taobao.org/select-hose/download/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" - integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= - -selfsigned@^1.10.7: - version "1.10.8" - resolved "https://registry.npm.taobao.org/selfsigned/download/selfsigned-1.10.8.tgz?cache=0&sync_timestamp=1600186189732&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fselfsigned%2Fdownload%2Fselfsigned-1.10.8.tgz#0d17208b7d12c33f8eac85c41835f27fc3d81a30" - integrity sha1-DRcgi30Swz+OrIXEGDXyf8PYGjA= - dependencies: - node-forge "^0.10.0" - -"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.1: +"semver@2 || 3 || 4 || 5", semver@^5.5.0, semver@^5.6.0, semver@^5.7.1: version "5.7.1" resolved "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1589682805026&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha1-qVT5Ma66UI0we78Gnv8MAclhFvc= -semver@7.0.0: - version "7.0.0" - resolved "https://registry.npm.taobao.org/semver/download/semver-7.0.0.tgz?cache=0&sync_timestamp=1589682805026&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" - integrity sha1-XzyjV2HkfgWyBsba/yz4FPAxa44= - -semver@^6.0.0, semver@^6.1.0, semver@^6.1.2, semver@^6.3.0: +semver@^6.1.0, semver@^6.1.2: version "6.3.0" resolved "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1589682805026&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0= -send@0.17.1: - version "0.17.1" - resolved "https://registry.npm.taobao.org/send/download/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" - integrity sha1-wdiwWfeQD3Rm3Uk4vcROEd2zdsg= - dependencies: - debug "2.6.9" - depd "~1.1.2" - destroy "~1.0.4" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "~1.7.2" - mime "1.6.0" - ms "2.1.1" - on-finished "~2.3.0" - range-parser "~1.2.1" - statuses "~1.5.0" - serialize-javascript@^4.0.0: version "4.0.0" resolved "https://registry.npm.taobao.org/serialize-javascript/download/serialize-javascript-4.0.0.tgz?cache=0&sync_timestamp=1599740650381&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fserialize-javascript%2Fdownload%2Fserialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" @@ -8190,34 +3921,6 @@ serialize-javascript@^4.0.0: dependencies: randombytes "^2.1.0" -serve-index@^1.9.1: - version "1.9.1" - resolved "https://registry.npm.taobao.org/serve-index/download/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" - integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk= - dependencies: - accepts "~1.3.4" - batch "0.6.1" - debug "2.6.9" - escape-html "~1.0.3" - http-errors "~1.6.2" - mime-types "~2.1.17" - parseurl "~1.3.2" - -serve-static@1.14.1: - version "1.14.1" - resolved "https://registry.npm.taobao.org/serve-static/download/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" - integrity sha1-Zm5jbcTwEPfvKZcKiKZ0MgiYsvk= - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "0.17.1" - -set-blocking@^2.0.0: - version "2.0.0" - resolved "https://registry.npm.taobao.org/set-blocking/download/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= - set-value@^2.0.0, set-value@^2.0.1: version "2.0.1" resolved "https://registry.npm.taobao.org/set-value/download/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" @@ -8233,16 +3936,6 @@ setimmediate@^1.0.4: resolved "https://registry.npm.taobao.org/setimmediate/download/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= -setprototypeof@1.1.0: - version "1.1.0" - resolved "https://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" - integrity sha1-0L2FU2iHtv58DYGMuWLZ2RxU5lY= - -setprototypeof@1.1.1: - version "1.1.1" - resolved "https://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" - integrity sha1-fpWsskqpL1iF4KvvW6ExMw1K5oM= - sha.js@^2.4.0, sha.js@^2.4.8: version "2.4.11" resolved "https://registry.npm.taobao.org/sha.js/download/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" @@ -8258,23 +3951,11 @@ shebang-command@^1.2.0: dependencies: shebang-regex "^1.0.0" -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.npm.taobao.org/shebang-command/download/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo= - dependencies: - shebang-regex "^3.0.0" - shebang-regex@^1.0.0: version "1.0.0" resolved "https://registry.npm.taobao.org/shebang-regex/download/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.npm.taobao.org/shebang-regex/download/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI= - shell-quote@^1.6.1: version "1.7.2" resolved "https://registry.npm.taobao.org/shell-quote/download/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2" @@ -8292,18 +3973,6 @@ signal-exit@^3.0.0, signal-exit@^3.0.2: resolved "https://registry.npm.taobao.org/signal-exit/download/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" integrity sha1-oUEMLt2PB3sItOJTyOrPyvBXRhw= -simple-swizzle@^0.2.2: - version "0.2.2" - resolved "https://registry.npm.taobao.org/simple-swizzle/download/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" - integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= - dependencies: - is-arrayish "^0.3.1" - -slash@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" - integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= - slash@^2.0.0: version "2.0.0" resolved "https://registry.npm.taobao.org/slash/download/slash-2.0.0.tgz?cache=0&sync_timestamp=1589682715547&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fslash%2Fdownload%2Fslash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" @@ -8348,34 +4017,6 @@ snapdragon@^0.8.1: source-map-resolve "^0.5.0" use "^3.1.0" -sockjs-client@1.4.0: - version "1.4.0" - resolved "https://registry.npm.taobao.org/sockjs-client/download/sockjs-client-1.4.0.tgz?cache=0&sync_timestamp=1596410219305&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsockjs-client%2Fdownload%2Fsockjs-client-1.4.0.tgz#c9f2568e19c8fd8173b4997ea3420e0bb306c7d5" - integrity sha1-yfJWjhnI/YFztJl+o0IOC7MGx9U= - dependencies: - debug "^3.2.5" - eventsource "^1.0.7" - faye-websocket "~0.11.1" - inherits "^2.0.3" - json3 "^3.3.2" - url-parse "^1.4.3" - -sockjs@0.3.20: - version "0.3.20" - resolved "https://registry.npm.taobao.org/sockjs/download/sockjs-0.3.20.tgz#b26a283ec562ef8b2687b44033a4eeceac75d855" - integrity sha1-smooPsVi74smh7RAM6Tuzqx12FU= - dependencies: - faye-websocket "^0.10.0" - uuid "^3.4.0" - websocket-driver "0.6.5" - -sort-keys@^1.0.0: - version "1.1.2" - resolved "https://registry.npm.taobao.org/sort-keys/download/sort-keys-1.1.2.tgz?cache=0&sync_timestamp=1602621889278&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsort-keys%2Fdownload%2Fsort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" - integrity sha1-RBttTTRnmPG05J6JIK37oOVD+a0= - dependencies: - is-plain-obj "^1.0.0" - source-list-map@^2.0.0: version "2.0.1" resolved "https://registry.npm.taobao.org/source-list-map/download/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" @@ -8392,13 +4033,6 @@ source-map-resolve@^0.5.0: source-map-url "^0.4.0" urix "^0.1.0" -source-map-support@^0.4.15: - version "0.4.18" - resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" - integrity sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA== - dependencies: - source-map "^0.5.6" - source-map-support@~0.5.12: version "0.5.19" resolved "https://registry.npm.taobao.org/source-map-support/download/source-map-support-0.5.19.tgz?cache=0&sync_timestamp=1589682814927&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-support%2Fdownload%2Fsource-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" @@ -8412,21 +4046,16 @@ source-map-url@^0.4.0: resolved "https://registry.npm.taobao.org/source-map-url/download/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= -source-map@^0.5.0, source-map@^0.5.6, source-map@^0.5.7: +source-map@^0.5.0, source-map@^0.5.6: version "0.5.7" resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: version "0.6.1" resolved "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1589682764497&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha1-dHIq8y6WFOnCh6jQu95IteLxomM= -source-map@^0.7.3: - version "0.7.3" - resolved "https://registry.npm.taobao.org/source-map/download/source-map-0.7.3.tgz?cache=0&sync_timestamp=1589682764497&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" - integrity sha1-UwL4FpAxc1ImVECS5kmB91F1A4M= - spdx-correct@^3.0.0: version "3.1.1" resolved "https://registry.npm.taobao.org/spdx-correct/download/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" @@ -8453,29 +4082,6 @@ spdx-license-ids@^3.0.0: resolved "https://registry.npm.taobao.org/spdx-license-ids/download/spdx-license-ids-3.0.6.tgz?cache=0&sync_timestamp=1600284873714&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdx-license-ids%2Fdownload%2Fspdx-license-ids-3.0.6.tgz#c80757383c28abf7296744998cbc106ae8b854ce" integrity sha1-yAdXODwoq/cpZ0SZjLwQaui4VM4= -spdy-transport@^3.0.0: - version "3.0.0" - resolved "https://registry.npm.taobao.org/spdy-transport/download/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" - integrity sha1-ANSGOmQArXXfkzYaFghgXl3NzzE= - dependencies: - debug "^4.1.0" - detect-node "^2.0.4" - hpack.js "^2.1.6" - obuf "^1.1.2" - readable-stream "^3.0.6" - wbuf "^1.7.3" - -spdy@^4.0.2: - version "4.0.2" - resolved "https://registry.npm.taobao.org/spdy/download/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" - integrity sha1-t09GYgOj7aRSwCSSuR+56EonZ3s= - dependencies: - debug "^4.1.0" - handle-thing "^2.0.0" - http-deceiver "^1.2.7" - select-hose "^2.0.0" - spdy-transport "^3.0.0" - split-string@^3.0.1, split-string@^3.0.2: version "3.1.0" resolved "https://registry.npm.taobao.org/split-string/download/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" @@ -8503,13 +4109,6 @@ sshpk@^1.7.0: safer-buffer "^2.0.2" tweetnacl "~0.14.0" -ssl-root-cas@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/ssl-root-cas/-/ssl-root-cas-1.3.1.tgz#6b0566f7de4f0e6be99fbd93dbfbe5c7ab33b949" - integrity sha512-KR8J210Wfvjh+iNE9jcQEgbG0VG2713PHreItx6aNCPnkFO8XChz1cJ4iuCGeBj0+8wukLmgHgJqX+O5kRjPkQ== - dependencies: - "@coolaj86/urequest" "^1.3.6" - ssri@^6.0.1: version "6.0.1" resolved "https://registry.npm.taobao.org/ssri/download/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8" @@ -8517,24 +4116,6 @@ ssri@^6.0.1: dependencies: figgy-pudding "^3.5.1" -ssri@^7.0.0, ssri@^7.1.0: - version "7.1.0" - resolved "https://registry.npm.taobao.org/ssri/download/ssri-7.1.0.tgz#92c241bf6de82365b5c7fb4bd76e975522e1294d" - integrity sha1-ksJBv23oI2W1x/tL126XVSLhKU0= - dependencies: - figgy-pudding "^3.5.1" - minipass "^3.1.1" - -stable@^0.1.8: - version "0.1.8" - resolved "https://registry.npm.taobao.org/stable/download/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" - integrity sha1-g26zyDgv4pNv6vVEYxAXzn1Ho88= - -stackframe@^1.1.1: - version "1.2.0" - resolved "https://registry.npm.taobao.org/stackframe/download/stackframe-1.2.0.tgz#52429492d63c62eb989804c11552e3d22e779303" - integrity sha1-UkKUktY8YuuYmATBFVLj0i53kwM= - static-extend@^0.1.1: version "0.1.2" resolved "https://registry.npm.taobao.org/static-extend/download/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" @@ -8543,11 +4124,6 @@ static-extend@^0.1.1: define-property "^0.2.5" object-copy "^0.1.0" -"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0: - version "1.5.0" - resolved "https://registry.npm.taobao.org/statuses/download/statuses-1.5.0.tgz?cache=0&sync_timestamp=1589682739548&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstatuses%2Fdownload%2Fstatuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= - stream-browserify@^2.0.1: version "2.0.2" resolved "https://registry.npm.taobao.org/stream-browserify/download/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" @@ -8580,20 +4156,16 @@ stream-shift@^1.0.0: resolved "https://registry.npm.taobao.org/stream-shift/download/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" integrity sha1-1wiCgVWasneEJCebCHfaPDktWj0= -strict-uri-encode@^1.0.0: - version "1.1.0" - resolved "https://registry.npm.taobao.org/strict-uri-encode/download/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" - integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= - -string-width@^2.0.0: - version "2.1.1" - resolved "https://registry.npm.taobao.org/string-width/download/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - integrity sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4= +streamroller@^2.2.4: + version "2.2.4" + resolved "https://registry.yarnpkg.com/streamroller/-/streamroller-2.2.4.tgz#c198ced42db94086a6193608187ce80a5f2b0e53" + integrity sha512-OG79qm3AujAM9ImoqgWEY1xG4HX+Lw+yY6qZj9R1K2mhF5bEmQ849wvrb+4vt4jLMLzwXttJlQbOdPOQVRv7DQ== dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" + date-format "^2.1.0" + debug "^4.1.1" + fs-extra "^8.1.0" -string-width@^3.0.0, string-width@^3.1.0: +string-width@^3.0.0: version "3.1.0" resolved "https://registry.npm.taobao.org/string-width/download/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" integrity sha1-InZ74htirxCBV0MG9prFG2IgOWE= @@ -8602,7 +4174,7 @@ 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, string-width@^4.2.0: +string-width@^4.1.0: version "4.2.0" resolved "https://registry.npm.taobao.org/string-width/download/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" integrity sha1-lSGCxGzHssMT0VluYjmSvRY7crU= @@ -8641,21 +4213,7 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -strip-ansi@^3.0.0, strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz?cache=0&sync_timestamp=1589682795383&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= - dependencies: - ansi-regex "^3.0.0" - -strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: +strip-ansi@^5.1.0, strip-ansi@^5.2.0: version "5.2.0" resolved "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1589682795383&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" integrity sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4= @@ -8679,11 +4237,6 @@ strip-eof@^1.0.0: resolved "https://registry.npm.taobao.org/strip-eof/download/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= -strip-final-newline@^2.0.0: - version "2.0.0" - resolved "https://registry.npm.taobao.org/strip-final-newline/download/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" - integrity sha1-ibhS+y/L6Tb29LMYevsKEsGrWK0= - strip-indent@^2.0.0: version "2.0.0" resolved "https://registry.npm.taobao.org/strip-indent/download/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" @@ -8694,20 +4247,6 @@ strip-json-comments@^3.0.1: resolved "https://registry.npm.taobao.org/strip-json-comments/download/strip-json-comments-3.1.1.tgz?cache=0&sync_timestamp=1594567532500&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-json-comments%2Fdownload%2Fstrip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha1-MfEoGzgyYwQ0gxwxDAHMzajL4AY= -stylehacks@^4.0.0: - version "4.0.3" - resolved "https://registry.npm.taobao.org/stylehacks/download/stylehacks-4.0.3.tgz?cache=0&sync_timestamp=1599672034713&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstylehacks%2Fdownload%2Fstylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" - integrity sha1-Zxj8r00eB9ihMYaQiB6NlnJqcdU= - dependencies: - browserslist "^4.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= - supports-color@^5.3.0: version "5.5.0" resolved "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1598611709087&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" @@ -8715,44 +4254,13 @@ supports-color@^5.3.0: dependencies: has-flag "^3.0.0" -supports-color@^6.1.0: - version "6.1.0" - resolved "https://registry.npm.taobao.org/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1598611709087&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" - integrity sha1-B2Srxpxj1ayELdSGfo0CXogN+PM= - dependencies: - has-flag "^3.0.0" - -supports-color@^7.0.0, supports-color@^7.1.0: +supports-color@^7.1.0: version "7.2.0" resolved "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1598611709087&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" integrity sha1-G33NyzK4E4gBs+R4umpRyqiWSNo= dependencies: has-flag "^4.0.0" -svg-tags@^1.0.0: - version "1.0.0" - resolved "https://registry.npm.taobao.org/svg-tags/download/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764" - integrity sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q= - -svgo@^1.0.0: - version "1.3.2" - resolved "https://registry.npm.taobao.org/svgo/download/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167" - integrity sha1-ttxRHAYzRsnkFbgeQ0ARRbltQWc= - dependencies: - chalk "^2.4.1" - coa "^2.0.2" - css-select "^2.0.0" - css-select-base-adapter "^0.1.1" - css-tree "1.0.0-alpha.37" - csso "^4.0.2" - js-yaml "^3.13.1" - mkdirp "~0.5.1" - object.values "^1.1.0" - sax "~1.2.4" - stable "^0.1.8" - 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" @@ -8788,22 +4296,7 @@ terser-webpack-plugin@^1.4.3: webpack-sources "^1.4.0" worker-farm "^1.7.0" -terser-webpack-plugin@^2.3.6: - version "2.3.8" - resolved "https://registry.npm.taobao.org/terser-webpack-plugin/download/terser-webpack-plugin-2.3.8.tgz?cache=0&sync_timestamp=1602701885709&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fterser-webpack-plugin%2Fdownload%2Fterser-webpack-plugin-2.3.8.tgz#894764a19b0743f2f704e7c2a848c5283a696724" - integrity sha1-iUdkoZsHQ/L3BOfCqEjFKDppZyQ= - dependencies: - cacache "^13.0.1" - find-cache-dir "^3.3.1" - jest-worker "^25.4.0" - p-limit "^2.3.0" - schema-utils "^2.6.6" - serialize-javascript "^4.0.0" - source-map "^0.6.1" - terser "^4.6.12" - webpack-sources "^1.4.3" - -terser@^4.1.2, terser@^4.6.12: +terser@^4.1.2: version "4.8.0" resolved "https://registry.npm.taobao.org/terser/download/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17" integrity sha1-YwVjQ9fHC7KfOvZlhlpG/gOg3xc= @@ -8817,29 +4310,6 @@ text-table@^0.2.0: resolved "https://registry.npm.taobao.org/text-table/download/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= -thenify-all@^1.0.0: - version "1.6.0" - resolved "https://registry.npm.taobao.org/thenify-all/download/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" - integrity sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY= - dependencies: - thenify ">= 3.1.0 < 4" - -"thenify@>= 3.1.0 < 4": - version "3.3.1" - resolved "https://registry.npm.taobao.org/thenify/download/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f" - integrity sha1-iTLmhqQGYDigFt2eLKRq3Zg4qV8= - dependencies: - any-promise "^1.0.0" - -thread-loader@^2.1.3: - version "2.1.3" - resolved "https://registry.npm.taobao.org/thread-loader/download/thread-loader-2.1.3.tgz?cache=0&sync_timestamp=1599928601406&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fthread-loader%2Fdownload%2Fthread-loader-2.1.3.tgz#cbd2c139fc2b2de6e9d28f62286ab770c1acbdda" - integrity sha1-y9LBOfwrLebp0o9iKGq3cMGsvdo= - dependencies: - loader-runner "^2.3.1" - loader-utils "^1.1.0" - neo-async "^2.6.0" - through2@^2.0.0, through2@^2.0.1: version "2.0.5" resolved "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" @@ -8853,11 +4323,6 @@ through@^2.3.6: resolved "https://registry.npm.taobao.org/through/download/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= -thunky@^1.0.2: - version "1.1.0" - resolved "https://registry.npm.taobao.org/thunky/download/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" - integrity sha1-Wrr3FKlAXbBQRzK7zNLO3Z75U30= - timers-browserify@^2.0.4: version "2.0.11" resolved "https://registry.npm.taobao.org/timers-browserify/download/timers-browserify-2.0.11.tgz#800b1f3eee272e5bc53ee465a04d0e804c31211f" @@ -8865,11 +4330,6 @@ timers-browserify@^2.0.4: dependencies: setimmediate "^1.0.4" -timsort@^0.3.0: - version "0.3.0" - resolved "https://registry.npm.taobao.org/timsort/download/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" - integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= - tmp@^0.0.33: version "0.0.33" resolved "https://registry.npm.taobao.org/tmp/download/tmp-0.0.33.tgz?cache=0&sync_timestamp=1589684134816&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftmp%2Fdownload%2Ftmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" @@ -8882,11 +4342,6 @@ to-arraybuffer@^1.0.0: resolved "https://registry.npm.taobao.org/to-arraybuffer/download/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= -to-fast-properties@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" - integrity sha1-uDVx+k2MJbguIxsG46MFXeTKGkc= - to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.npm.taobao.org/to-fast-properties/download/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" @@ -8924,16 +4379,6 @@ to-regex@^3.0.1, to-regex@^3.0.2: regex-not "^1.0.2" safe-regex "^1.1.0" -toidentifier@1.0.0: - version "1.0.0" - resolved "https://registry.npm.taobao.org/toidentifier/download/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" - integrity sha1-fhvjRw8ed5SLxD2Uo8j013UrpVM= - -toposort@^1.0.0: - version "1.0.7" - resolved "https://registry.npm.taobao.org/toposort/download/toposort-1.0.7.tgz#2e68442d9f64ec720b8cc89e6443ac6caa950029" - integrity sha1-LmhELZ9k7HILjMieZEOsbKqVACk= - tough-cookie@~2.5.0: version "2.5.0" resolved "https://registry.npm.taobao.org/tough-cookie/download/tough-cookie-2.5.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftough-cookie%2Fdownload%2Ftough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" @@ -8942,21 +4387,6 @@ tough-cookie@~2.5.0: psl "^1.1.28" punycode "^2.1.1" -trim-right@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" - integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= - -tryer@^1.0.1: - version "1.0.1" - resolved "https://registry.npm.taobao.org/tryer/download/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8" - integrity sha1-8shUBoALmw90yfdGW4HqrSQSUvg= - -ts-pnp@^1.1.6: - version "1.2.0" - resolved "https://registry.npm.taobao.org/ts-pnp/download/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92" - integrity sha1-pQCtCEsHmPHDBxrzkeZZEshrypI= - tsconfig-paths@^3.9.0: version "3.9.0" resolved "https://registry.npm.taobao.org/tsconfig-paths/download/tsconfig-paths-3.9.0.tgz#098547a6c4448807e8fcb8eae081064ee9a3c90b" @@ -9016,50 +4446,11 @@ type-fest@^0.8.1: resolved "https://registry.npm.taobao.org/type-fest/download/type-fest-0.8.1.tgz?cache=0&sync_timestamp=1602623859603&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype-fest%2Fdownload%2Ftype-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" integrity sha1-CeJJ696FHTseSNJ8EFREZn8XuD0= -type-is@~1.6.17, type-is@~1.6.18: - version "1.6.18" - resolved "https://registry.npm.taobao.org/type-is/download/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" - integrity sha1-TlUs0F3wlGfcvE73Od6J8s83wTE= - dependencies: - media-typer "0.3.0" - mime-types "~2.1.24" - typedarray@^0.0.6: version "0.0.6" resolved "https://registry.npm.taobao.org/typedarray/download/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -uglify-js@3.4.x: - version "3.4.10" - resolved "https://registry.npm.taobao.org/uglify-js/download/uglify-js-3.4.10.tgz?cache=0&sync_timestamp=1602426286299&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fuglify-js%2Fdownload%2Fuglify-js-3.4.10.tgz#9ad9563d8eb3acdfb8d38597d2af1d815f6a755f" - integrity sha1-mtlWPY6zrN+404WX0q8dgV9qdV8= - dependencies: - commander "~2.19.0" - source-map "~0.6.1" - -unicode-canonical-property-names-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.npm.taobao.org/unicode-canonical-property-names-ecmascript/download/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" - integrity sha1-JhmADEyCWADv3YNDr33Zkzy+KBg= - -unicode-match-property-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.npm.taobao.org/unicode-match-property-ecmascript/download/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" - integrity sha1-jtKjJWmWG86SJ9Cc0/+7j+1fAgw= - dependencies: - unicode-canonical-property-names-ecmascript "^1.0.4" - unicode-property-aliases-ecmascript "^1.0.4" - -unicode-match-property-value-ecmascript@^1.2.0: - version "1.2.0" - resolved "https://registry.npm.taobao.org/unicode-match-property-value-ecmascript/download/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531" - integrity sha1-DZH2AO7rMJaqlisdb8iIduZOpTE= - -unicode-property-aliases-ecmascript@^1.0.4: - version "1.1.0" - resolved "https://registry.npm.taobao.org/unicode-property-aliases-ecmascript/download/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" - integrity sha1-3Vepn2IHvt/0Yoq++5TFDblByPQ= - union-value@^1.0.0: version "1.0.1" resolved "https://registry.npm.taobao.org/union-value/download/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" @@ -9070,16 +4461,6 @@ union-value@^1.0.0: is-extendable "^0.1.1" set-value "^2.0.1" -uniq@^1.0.1: - version "1.0.1" - resolved "https://registry.npm.taobao.org/uniq/download/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" - integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= - -uniqs@^2.0.0: - version "2.0.0" - resolved "https://registry.npm.taobao.org/uniqs/download/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" - integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI= - unique-filename@^1.1.1: version "1.1.1" resolved "https://registry.npm.taobao.org/unique-filename/download/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" @@ -9099,16 +4480,6 @@ universalify@^0.1.0: resolved "https://registry.npm.taobao.org/universalify/download/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" integrity sha1-tkb2m+OULavOzJ1mOcgNwQXvqmY= -unpipe@1.0.0, unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.npm.taobao.org/unpipe/download/unpipe-1.0.0.tgz?cache=0&sync_timestamp=1589682745059&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funpipe%2Fdownload%2Funpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= - -unquote@~1.1.1: - version "1.1.1" - resolved "https://registry.npm.taobao.org/unquote/download/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" - integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= - unset-value@^1.0.0: version "1.0.0" resolved "https://registry.npm.taobao.org/unset-value/download/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" @@ -9122,11 +4493,6 @@ upath@^1.1.1: resolved "https://registry.npm.taobao.org/upath/download/upath-1.2.0.tgz?cache=0&sync_timestamp=1602008334498&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fupath%2Fdownload%2Fupath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" integrity sha1-j2bbzVWog6za5ECK+LA1pQRMGJQ= -upper-case@^1.1.1: - version "1.1.3" - resolved "https://registry.npm.taobao.org/upper-case/download/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" - integrity sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg= - uri-js@^4.2.2: version "4.4.0" resolved "https://registry.npm.taobao.org/uri-js/download/uri-js-4.4.0.tgz#aa714261de793e8a82347a7bcc9ce74e86f28602" @@ -9139,23 +4505,6 @@ urix@^0.1.0: resolved "https://registry.npm.taobao.org/urix/download/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= -url-loader@^2.2.0: - version "2.3.0" - resolved "https://registry.npm.taobao.org/url-loader/download/url-loader-2.3.0.tgz?cache=0&sync_timestamp=1602252626029&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Furl-loader%2Fdownload%2Furl-loader-2.3.0.tgz#e0e2ef658f003efb8ca41b0f3ffbf76bab88658b" - integrity sha1-4OLvZY8APvuMpBsPP/v3a6uIZYs= - dependencies: - loader-utils "^1.2.3" - mime "^2.4.4" - schema-utils "^2.5.0" - -url-parse@^1.4.3: - version "1.4.7" - resolved "https://registry.npm.taobao.org/url-parse/download/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278" - integrity sha1-qKg1NejACjFuQDpdtKwbm4U64ng= - dependencies: - querystringify "^2.1.1" - requires-port "^1.0.0" - url@^0.11.0: version "0.11.0" resolved "https://registry.npm.taobao.org/url/download/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" @@ -9169,29 +4518,11 @@ use@^3.1.0: resolved "https://registry.npm.taobao.org/use/download/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" integrity sha1-1QyMrHmhn7wg8pEfVuuXP04QBw8= -util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: +util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= -util.promisify@1.0.0: - version "1.0.0" - resolved "https://registry.npm.taobao.org/util.promisify/download/util.promisify-1.0.0.tgz?cache=0&sync_timestamp=1589682767473&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Futil.promisify%2Fdownload%2Futil.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" - integrity sha1-RA9xZaRZyaFtwUXrjnLzVocJcDA= - dependencies: - define-properties "^1.1.2" - object.getownpropertydescriptors "^2.0.3" - -util.promisify@~1.0.0: - version "1.0.1" - resolved "https://registry.npm.taobao.org/util.promisify/download/util.promisify-1.0.1.tgz?cache=0&sync_timestamp=1589682767473&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Futil.promisify%2Fdownload%2Futil.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" - integrity sha1-a693dLgO6w91INi4HQeYKlmruu4= - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.2" - has-symbols "^1.0.1" - object.getownpropertydescriptors "^2.1.0" - util@0.10.3: version "0.10.3" resolved "https://registry.npm.taobao.org/util/download/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" @@ -9218,17 +4549,7 @@ util@^0.12.3: safe-buffer "^5.1.2" which-typed-array "^1.1.2" -utila@^0.4.0, utila@~0.4: - version "0.4.0" - resolved "https://registry.npm.taobao.org/utila/download/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" - integrity sha1-ihagXURWV6Oupe7MWxKk+lN5dyw= - -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.npm.taobao.org/utils-merge/download/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= - -uuid@^3.3.2, uuid@^3.4.0: +uuid@^3.3.2: version "3.4.0" resolved "https://registry.npm.taobao.org/uuid/download/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha1-sj5DWK+oogL+ehAK8fX4g/AgB+4= @@ -9251,16 +4572,11 @@ validator@^13.1.17: resolved "https://registry.npm.taobao.org/validator/download/validator-13.1.17.tgz?cache=0&sync_timestamp=1600459985144&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvalidator%2Fdownload%2Fvalidator-13.1.17.tgz#ad677736950adddd3c37209484a6b2e0966579ad" integrity sha1-rWd3NpUK3d08NyCUhKay4JZlea0= -vary@^1, vary@~1.1.2: +vary@^1: version "1.1.2" resolved "https://registry.npm.taobao.org/vary/download/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= -vendors@^1.0.0: - version "1.0.4" - resolved "https://registry.npm.taobao.org/vendors/download/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" - integrity sha1-4rgApT56Kbk1BsPPQRANFsTErY4= - verror@1.10.0: version "1.10.0" resolved "https://registry.npm.taobao.org/verror/download/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" @@ -9287,57 +4603,6 @@ vue-eslint-parser@^7.0.0: esquery "^1.0.1" lodash "^4.17.15" -vue-hot-reload-api@^2.3.0: - version "2.3.4" - resolved "https://registry.npm.taobao.org/vue-hot-reload-api/download/vue-hot-reload-api-2.3.4.tgz?cache=0&sync_timestamp=1589682714858&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-hot-reload-api%2Fdownload%2Fvue-hot-reload-api-2.3.4.tgz#532955cc1eb208a3d990b3a9f9a70574657e08f2" - integrity sha1-UylVzB6yCKPZkLOp+acFdGV+CPI= - -"vue-loader-v16@npm:vue-loader@^16.0.0-beta.7": - version "16.0.0-beta.8" - resolved "https://registry.npm.taobao.org/vue-loader/download/vue-loader-16.0.0-beta.8.tgz?cache=0&sync_timestamp=1600850354305&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-loader%2Fdownload%2Fvue-loader-16.0.0-beta.8.tgz#1f523d9fea8e8c6e4f5bb99fd768165af5845879" - integrity sha1-H1I9n+qOjG5PW7mf12gWWvWEWHk= - dependencies: - chalk "^4.1.0" - hash-sum "^2.0.0" - loader-utils "^2.0.0" - -vue-loader@^15.9.2: - version "15.9.3" - resolved "https://registry.npm.taobao.org/vue-loader/download/vue-loader-15.9.3.tgz?cache=0&sync_timestamp=1600850354305&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-loader%2Fdownload%2Fvue-loader-15.9.3.tgz#0de35d9e555d3ed53969516cac5ce25531299dda" - integrity sha1-DeNdnlVdPtU5aVFsrFziVTEpndo= - dependencies: - "@vue/component-compiler-utils" "^3.1.0" - hash-sum "^1.0.2" - loader-utils "^1.1.0" - vue-hot-reload-api "^2.3.0" - vue-style-loader "^4.1.0" - -vue-style-loader@^4.1.0, vue-style-loader@^4.1.2: - version "4.1.2" - resolved "https://registry.npm.taobao.org/vue-style-loader/download/vue-style-loader-4.1.2.tgz#dedf349806f25ceb4e64f3ad7c0a44fba735fcf8" - integrity sha1-3t80mAbyXOtOZPOtfApE+6c1/Pg= - dependencies: - hash-sum "^1.0.2" - loader-utils "^1.0.2" - -vue-template-compiler@^2.6.11: - version "2.6.12" - resolved "https://registry.npm.taobao.org/vue-template-compiler/download/vue-template-compiler-2.6.12.tgz?cache=0&sync_timestamp=1597927407682&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-template-compiler%2Fdownload%2Fvue-template-compiler-2.6.12.tgz#947ed7196744c8a5285ebe1233fe960437fcc57e" - integrity sha1-lH7XGWdEyKUoXr4SM/6WBDf8xX4= - dependencies: - de-indent "^1.0.2" - he "^1.1.0" - -vue-template-es2015-compiler@^1.9.0: - version "1.9.1" - resolved "https://registry.npm.taobao.org/vue-template-es2015-compiler/download/vue-template-es2015-compiler-1.9.1.tgz#1ee3bc9a16ecbf5118be334bb15f9c46f82f5825" - integrity sha1-HuO8mhbsv1EYvjNLsV+cRvgvWCU= - -vue@^2.6.11: - version "2.6.12" - resolved "https://registry.npm.taobao.org/vue/download/vue-2.6.12.tgz?cache=0&sync_timestamp=1600441210971&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue%2Fdownload%2Fvue-2.6.12.tgz#f5ebd4fa6bd2869403e29a896aed4904456c9123" - integrity sha1-9evU+mvShpQD4pqJau1JBEVskSM= - watchpack-chokidar2@^2.0.0: version "2.0.0" resolved "https://registry.npm.taobao.org/watchpack-chokidar2/download/watchpack-chokidar2-2.0.0.tgz#9948a1866cbbd6cb824dea13a7ed691f6c8ddff0" @@ -9356,13 +4621,6 @@ watchpack@^1.7.4: chokidar "^3.4.1" watchpack-chokidar2 "^2.0.0" -wbuf@^1.1.0, wbuf@^1.7.3: - version "1.7.3" - resolved "https://registry.npm.taobao.org/wbuf/download/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" - integrity sha1-wdjRSTFtPqhShIiVy2oL/oh7h98= - dependencies: - minimalistic-assert "^1.0.0" - wcwidth@^1.0.1: version "1.0.1" resolved "https://registry.npm.taobao.org/wcwidth/download/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" @@ -9370,99 +4628,7 @@ wcwidth@^1.0.1: dependencies: defaults "^1.0.3" -webpack-bundle-analyzer@^3.8.0: - version "3.9.0" - resolved "https://registry.npm.taobao.org/webpack-bundle-analyzer/download/webpack-bundle-analyzer-3.9.0.tgz#f6f94db108fb574e415ad313de41a2707d33ef3c" - integrity sha1-9vlNsQj7V05BWtMT3kGicH0z7zw= - dependencies: - acorn "^7.1.1" - acorn-walk "^7.1.1" - bfj "^6.1.1" - chalk "^2.4.1" - commander "^2.18.0" - ejs "^2.6.1" - express "^4.16.3" - filesize "^3.6.1" - gzip-size "^5.0.0" - lodash "^4.17.19" - mkdirp "^0.5.1" - opener "^1.5.1" - ws "^6.0.0" - -webpack-chain@^6.4.0: - version "6.5.1" - resolved "https://registry.npm.taobao.org/webpack-chain/download/webpack-chain-6.5.1.tgz?cache=0&sync_timestamp=1595814928534&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-chain%2Fdownload%2Fwebpack-chain-6.5.1.tgz#4f27284cbbb637e3c8fbdef43eef588d4d861206" - integrity sha1-TycoTLu2N+PI+970Pu9YjU2GEgY= - dependencies: - deepmerge "^1.5.2" - javascript-stringify "^2.0.1" - -webpack-dev-middleware@^3.7.2: - version "3.7.2" - resolved "https://registry.npm.taobao.org/webpack-dev-middleware/download/webpack-dev-middleware-3.7.2.tgz?cache=0&sync_timestamp=1594744455919&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-dev-middleware%2Fdownload%2Fwebpack-dev-middleware-3.7.2.tgz#0019c3db716e3fa5cecbf64f2ab88a74bab331f3" - integrity sha1-ABnD23FuP6XOy/ZPKriKdLqzMfM= - dependencies: - memory-fs "^0.4.1" - mime "^2.4.4" - mkdirp "^0.5.1" - range-parser "^1.2.1" - webpack-log "^2.0.0" - -webpack-dev-server@^3.11.0: - version "3.11.0" - resolved "https://registry.npm.taobao.org/webpack-dev-server/download/webpack-dev-server-3.11.0.tgz#8f154a3bce1bcfd1cc618ef4e703278855e7ff8c" - integrity sha1-jxVKO84bz9HMYY705wMniFXn/4w= - dependencies: - ansi-html "0.0.7" - bonjour "^3.5.0" - chokidar "^2.1.8" - compression "^1.7.4" - connect-history-api-fallback "^1.6.0" - debug "^4.1.1" - del "^4.1.1" - express "^4.17.1" - html-entities "^1.3.1" - http-proxy-middleware "0.19.1" - import-local "^2.0.0" - internal-ip "^4.3.0" - ip "^1.1.5" - is-absolute-url "^3.0.3" - killable "^1.0.1" - loglevel "^1.6.8" - opn "^5.5.0" - p-retry "^3.0.1" - portfinder "^1.0.26" - schema-utils "^1.0.0" - selfsigned "^1.10.7" - semver "^6.3.0" - serve-index "^1.9.1" - sockjs "0.3.20" - sockjs-client "1.4.0" - spdy "^4.0.2" - strip-ansi "^3.0.1" - supports-color "^6.1.0" - url "^0.11.0" - webpack-dev-middleware "^3.7.2" - webpack-log "^2.0.0" - ws "^6.2.1" - yargs "^13.3.2" - -webpack-log@^2.0.0: - version "2.0.0" - resolved "https://registry.npm.taobao.org/webpack-log/download/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" - integrity sha1-W3ko4GN1k/EZ0y9iJ8HgrDHhtH8= - dependencies: - ansi-colors "^3.0.0" - uuid "^3.3.2" - -webpack-merge@^4.2.2: - version "4.2.2" - resolved "https://registry.npm.taobao.org/webpack-merge/download/webpack-merge-4.2.2.tgz?cache=0&sync_timestamp=1602063120051&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-merge%2Fdownload%2Fwebpack-merge-4.2.2.tgz#a27c52ea783d1398afd2087f547d7b9d2f43634d" - integrity sha1-onxS6ng9E5iv0gh/VH17nS9DY00= - dependencies: - lodash "^4.17.15" - -webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3: +webpack-sources@^1.4.0, webpack-sources@^1.4.1: version "1.4.3" resolved "https://registry.npm.taobao.org/webpack-sources/download/webpack-sources-1.4.3.tgz?cache=0&sync_timestamp=1601308261594&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-sources%2Fdownload%2Fwebpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" integrity sha1-7t2OwLko+/HL/plOItLYkPMwqTM= @@ -9499,32 +4665,6 @@ webpack@^4.0.0: watchpack "^1.7.4" webpack-sources "^1.4.1" -websocket-driver@0.6.5: - version "0.6.5" - resolved "https://registry.npm.taobao.org/websocket-driver/download/websocket-driver-0.6.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebsocket-driver%2Fdownload%2Fwebsocket-driver-0.6.5.tgz#5cb2556ceb85f4373c6d8238aa691c8454e13a36" - integrity sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY= - dependencies: - websocket-extensions ">=0.1.1" - -websocket-driver@>=0.5.1: - version "0.7.4" - resolved "https://registry.npm.taobao.org/websocket-driver/download/websocket-driver-0.7.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebsocket-driver%2Fdownload%2Fwebsocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" - integrity sha1-ia1Slbv2S0gKvLox5JU6ynBvV2A= - dependencies: - http-parser-js ">=0.5.1" - safe-buffer ">=5.1.0" - websocket-extensions ">=0.1.1" - -websocket-extensions@>=0.1.1: - version "0.1.4" - resolved "https://registry.npm.taobao.org/websocket-extensions/download/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" - integrity sha1-f4RzvIOd/YdgituV1+sHUhFXikI= - -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.npm.taobao.org/which-module/download/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= - which-typed-array@^1.1.2: version "1.1.2" resolved "https://registry.npm.taobao.org/which-typed-array/download/which-typed-array-1.1.2.tgz#e5f98e56bda93e3dac196b01d47c1156679c00b2" @@ -9544,13 +4684,6 @@ which@^1.2.9: dependencies: isexe "^2.0.0" -which@^2.0.1: - version "2.0.2" - resolved "https://registry.npm.taobao.org/which/download/which-2.0.2.tgz?cache=0&sync_timestamp=1589682812246&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE= - dependencies: - isexe "^2.0.0" - winreg@^1.2.4: version "1.2.4" resolved "https://registry.npm.taobao.org/winreg/download/winreg-1.2.4.tgz#ba065629b7a925130e15779108cf540990e98d1b" @@ -9568,24 +4701,6 @@ worker-farm@^1.7.0: dependencies: errno "~0.1.7" -wrap-ansi@^5.1.0: - version "5.1.0" - resolved "https://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" - integrity sha1-H9H2cjXVttD+54EFYAG/tpTAOwk= - dependencies: - ansi-styles "^3.2.0" - string-width "^3.0.0" - strip-ansi "^5.0.0" - -wrap-ansi@^6.2.0: - version "6.2.0" - resolved "https://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" - integrity sha1-6Tk7oHEC5skaOyIUePAlfNKFblM= - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - wrappy@1: version "1.0.2" resolved "https://registry.npm.taobao.org/wrappy/download/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" @@ -9598,13 +4713,6 @@ write@1.0.3: dependencies: mkdirp "^0.5.1" -ws@^6.0.0, ws@^6.2.1: - version "6.2.1" - resolved "https://registry.npm.taobao.org/ws/download/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" - integrity sha1-RC/fCkftZPWbal2P8TD0dI7VJPs= - dependencies: - async-limiter "~1.0.0" - xtend@^4.0.0, xtend@~4.0.1: version "4.0.2" resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" @@ -9630,55 +4738,6 @@ yallist@^4.0.0: resolved "https://registry.npm.taobao.org/yallist/download/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI= -yargs-parser@^13.1.2: - version "13.1.2" - resolved "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-13.1.2.tgz?cache=0&sync_timestamp=1602700236661&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs-parser%2Fdownload%2Fyargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" - integrity sha1-Ew8JcC667vJlDVTObj5XBvek+zg= - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs-parser@^18.1.2: - version "18.1.3" - resolved "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-18.1.3.tgz?cache=0&sync_timestamp=1602700236661&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs-parser%2Fdownload%2Fyargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" - integrity sha1-vmjEl1xrKr9GkjawyHA2L6sJp7A= - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs@^13.3.2: - version "13.3.2" - resolved "https://registry.npm.taobao.org/yargs/download/yargs-13.3.2.tgz?cache=0&sync_timestamp=1600660037884&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" - integrity sha1-rX/+/sGqWVZayRX4Lcyzipwxot0= - dependencies: - cliui "^5.0.0" - find-up "^3.0.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^3.0.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^13.1.2" - -yargs@^15.0.0: - version "15.4.1" - resolved "https://registry.npm.taobao.org/yargs/download/yargs-15.4.1.tgz?cache=0&sync_timestamp=1600660037884&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" - integrity sha1-DYehbeAa7p2L7Cv7909nhRcw9Pg= - dependencies: - cliui "^6.0.0" - decamelize "^1.2.0" - find-up "^4.1.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^4.2.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^18.1.2" - yorkie@^2.0.0: version "2.0.0" resolved "https://registry.npm.taobao.org/yorkie/download/yorkie-2.0.0.tgz#92411912d435214e12c51c2ae1093e54b6bb83d9" diff --git a/packages/gui/package.json b/packages/gui/package.json index 57e6e857..10f75a09 100644 --- a/packages/gui/package.json +++ b/packages/gui/package.json @@ -31,10 +31,6 @@ "vue-json-editor": "^1.4.2", "vue-router": "^3.4.8" }, - "resolutions": { - "hexoid": "^1.0.0", - "formidable": "2.0.0-canary.20200504.1" - }, "devDependencies": { "@vue/cli-plugin-babel": "~4.5.0", "@vue/cli-plugin-eslint": "~4.5.0", diff --git a/packages/gui/yarn.lock b/packages/gui/yarn.lock index 28fbc1c2..fb77b85a 100644 --- a/packages/gui/yarn.lock +++ b/packages/gui/yarn.lock @@ -901,62 +901,6 @@ ajv "^6.12.0" ajv-keywords "^3.4.1" -"@docmirror/dev-sidecar@1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@docmirror/dev-sidecar/-/dev-sidecar-1.0.2.tgz#9cb617a5a604a375d6059cf4669d5b2f4bd731df" - integrity sha512-VOo2VYau6eAMbFT+Ymne7tMzrKh4hveNbXmCUmH8Zt5ynbGZXujXozzoVEYOVDXH5T0n+K7qsPh+Cw959LQi9w== - dependencies: - "@docmirror/mitmproxy" "1.0.2" - agentkeepalive "^2.1.1" - charset "^1.0.0" - child_process "^1.0.2" - colors "^1.1.2" - commander "^2.9.0" - debug "^4.1.1" - dns-over-http "^0.2.0" - dns-over-tls "^0.0.8" - iconv-lite "^0.4.13" - is-browser "^2.1.0" - jschardet "^1.4.1" - json5 "^2.1.3" - lodash "^4.7.0" - lru-cache "^6.0.0" - mkdirp "^0.5.1" - node-cmd "^3.0.0" - node-forge "^0.8.2" - node-powershell "^4.0.0" - require-context "^1.1.0" - through2 "^2.0.1" - tunnel-agent "^0.4.3" - util "^0.12.3" - validator "^13.1.17" - winreg "^1.2.4" - -"@docmirror/mitmproxy@1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@docmirror/mitmproxy/-/mitmproxy-1.0.2.tgz#ee25d4205dca58372aa7c9a34d2789d39dda3dc4" - integrity sha512-bDAIIp5aDQhgBnQfvtkYMzRVHIMAWFO9WtgWEBPLwLenXycU4vSMqt2c9Y/ArWlU4Ku+PQpjk2WZHYjmKzlmLA== - dependencies: - agentkeepalive "^2.1.1" - child_process "^1.0.2" - colors "^1.1.2" - commander "^2.9.0" - debug "^4.1.1" - dns-over-http "^0.2.0" - dns-over-tls "^0.0.8" - json5 "^2.1.3" - lodash "^4.7.0" - log4js "^6.3.0" - lru-cache "^6.0.0" - mkdirp "^0.5.1" - node-cmd "^3.0.0" - node-forge "^0.8.2" - require-context "^1.1.0" - through2 "^2.0.1" - tunnel-agent "^0.4.3" - util "^0.12.3" - validator "^13.1.17" - "@electron/get@^1.0.1": version "1.12.2" resolved "https://registry.npm.taobao.org/@electron/get/download/@electron/get-1.12.2.tgz#6442066afb99be08cefb9a281e4b4692b33764f3" @@ -2017,14 +1961,6 @@ resolved "https://registry.npm.taobao.org/@xtuc/long/download/@xtuc/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" integrity sha1-0pHGpOl5ibXGHZrPOWrk/hM6cY0= -accept@^3.1.3: - version "3.1.3" - resolved "https://registry.npm.taobao.org/accept/download/accept-3.1.3.tgz#29c3e2b3a8f4eedbc2b690e472b9ebbdc7385e87" - integrity sha1-KcPis6j07tvCtpDkcrnrvcc4Xoc= - dependencies: - boom "7.x.x" - hoek "6.x.x" - accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: version "1.3.7" resolved "https://registry.npm.taobao.org/accepts/download/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" @@ -2065,11 +2001,6 @@ address@^1.1.2: resolved "https://registry.npm.taobao.org/address/download/address-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6" integrity sha1-vxEWycdYxRt6kz0pa3LCIe2UKLY= -agentkeepalive@^2.1.1: - version "2.2.0" - resolved "https://registry.npm.taobao.org/agentkeepalive/download/agentkeepalive-2.2.0.tgz#c5d1bd4b129008f1163f236f86e5faea2026e2ef" - integrity sha1-xdG9SxKQCPEWPyNvhuX66iAm4u8= - aggregate-error@^3.0.0: version "3.1.0" resolved "https://registry.npm.taobao.org/aggregate-error/download/aggregate-error-3.1.0.tgz?cache=0&sync_timestamp=1598049717562&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Faggregate-error%2Fdownload%2Faggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" @@ -2303,11 +2234,6 @@ arr-union@^3.1.0: resolved "https://registry.npm.taobao.org/arr-union/download/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= -array-filter@^1.0.0: - version "1.0.0" - resolved "https://registry.npm.taobao.org/array-filter/download/array-filter-1.0.0.tgz#baf79e62e6ef4c2a4c0b831232daffec251f9d83" - integrity sha1-uveeYubvTCpMC4MSMtr/7CUfnYM= - array-find@^1.0.0: version "1.0.0" resolved "https://registry.npm.taobao.org/array-find/download/array-find-1.0.0.tgz#6c8e286d11ed768327f8e62ecee87353ca3e78b8" @@ -2362,11 +2288,6 @@ array.prototype.flat@^1.2.3: define-properties "^1.1.3" es-abstract "^1.17.0-next.1" -asap@^2.0.0: - version "2.0.6" - resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" - integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= - asn1.js@^5.2.0: version "5.4.1" resolved "https://registry.npm.taobao.org/asn1.js/download/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" @@ -2472,13 +2393,6 @@ autoprefixer@^9.8.6: postcss "^7.0.32" postcss-value-parser "^4.1.0" -available-typed-arrays@^1.0.0, available-typed-arrays@^1.0.2: - version "1.0.2" - resolved "https://registry.npm.taobao.org/available-typed-arrays/download/available-typed-arrays-1.0.2.tgz#6b098ca9d8039079ee3f77f7b783c4480ba513f5" - integrity sha1-awmMqdgDkHnuP3f3t4PESAulE/U= - dependencies: - array-filter "^1.0.0" - aws-sign2@~0.7.0: version "0.7.0" resolved "https://registry.npm.taobao.org/aws-sign2/download/aws-sign2-0.7.0.tgz?cache=0&sync_timestamp=1589682812085&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Faws-sign2%2Fdownload%2Faws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" @@ -2669,13 +2583,6 @@ boolean@^3.0.1: resolved "https://registry.npm.taobao.org/boolean/download/boolean-3.0.1.tgz#35ecf2b4a2ee191b0b44986f14eb5f052a5cbb4f" integrity sha1-NezytKLuGRsLRJhvFOtfBSpcu08= -boom@7.x.x: - version "7.3.0" - resolved "https://registry.npm.taobao.org/boom/download/boom-7.3.0.tgz#733a6d956d33b0b1999da3fe6c12996950d017b9" - integrity sha1-czptlW0zsLGZnaP+bBKZaVDQF7k= - dependencies: - hoek "6.x.x" - boxen@^4.2.0: version "4.2.0" resolved "https://registry.npm.taobao.org/boxen/download/boxen-4.2.0.tgz#e411b62357d6d6d36587c8ac3d5d974daa070e64" @@ -3118,21 +3025,11 @@ chardet@^0.7.0: resolved "https://registry.npm.taobao.org/chardet/download/chardet-0.7.0.tgz?cache=0&sync_timestamp=1601032467034&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchardet%2Fdownload%2Fchardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" integrity sha1-kAlISfCTfy7twkJdDSip5fDLrZ4= -charset@^1.0.0: - version "1.0.1" - resolved "https://registry.npm.taobao.org/charset/download/charset-1.0.1.tgz#8d59546c355be61049a8fa9164747793319852bd" - integrity sha1-jVlUbDVb5hBJqPqRZHR3kzGYUr0= - check-types@^8.0.3: version "8.0.3" resolved "https://registry.npm.taobao.org/check-types/download/check-types-8.0.3.tgz#3356cca19c889544f2d7a95ed49ce508a0ecf552" integrity sha1-M1bMoZyIlUTy16le1JzlCKDs9VI= -child_process@^1.0.2: - version "1.0.2" - resolved "https://registry.npm.taobao.org/child_process/download/child_process-1.0.2.tgz#b1f7e7fc73d25e7fd1d455adc94e143830182b5a" - integrity sha1-sffn/HPSXn/R1FWtyU4UODAYK1o= - "chokidar@>=2.0.0 <4.0.0", chokidar@^3.0.2, chokidar@^3.4.1: version "3.4.3" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.3.tgz#c1df38231448e45ca4ac588e6c79573ba6a57d5b" @@ -3399,11 +3296,6 @@ colorette@^1.2.1: resolved "https://registry.npm.taobao.org/colorette/download/colorette-1.2.1.tgz?cache=0&sync_timestamp=1593955763917&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolorette%2Fdownload%2Fcolorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b" integrity sha1-TQuSEyXBT6+SYzCGpTbbbolWSxs= -colors@^1.1.2: - version "1.4.0" - resolved "https://registry.npm.taobao.org/colors/download/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" - integrity sha1-xQSRR51MG9rtLJztMs98fcI2D3g= - combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: version "1.0.8" resolved "https://registry.npm.taobao.org/combined-stream/download/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" @@ -3416,7 +3308,7 @@ commander@2.17.x: resolved "https://registry.npm.taobao.org/commander/download/commander-2.17.1.tgz?cache=0&sync_timestamp=1598576116597&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" integrity sha1-vXerfebelCBc6sxy8XFtKfIKd78= -commander@^2.18.0, commander@^2.20.0, commander@^2.9.0: +commander@^2.18.0, commander@^2.20.0: version "2.20.3" resolved "https://registry.npm.taobao.org/commander/download/commander-2.20.3.tgz?cache=0&sync_timestamp=1598576116597&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha1-/UhehMA+tIgcIHIrpIA16FMa6zM= @@ -3638,14 +3530,6 @@ core-util-is@1.0.2, core-util-is@~1.0.0: resolved "https://registry.npm.taobao.org/core-util-is/download/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= -cors@^2.8.5: - version "2.8.5" - resolved "https://registry.npm.taobao.org/cors/download/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" - integrity sha1-6sEdpRWS3Ya58G9uesKTs9+HXSk= - dependencies: - object-assign "^4" - vary "^1" - cosmiconfig@^5.0.0: version "5.2.1" resolved "https://registry.npm.taobao.org/cosmiconfig/download/cosmiconfig-5.2.1.tgz?cache=0&sync_timestamp=1596310819353&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcosmiconfig%2Fdownload%2Fcosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" @@ -3942,7 +3826,7 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: dependencies: ms "2.0.0" -debug@^3.1.0, debug@^3.1.1, debug@^3.2.5: +debug@^3.1.1, debug@^3.2.5: version "3.2.6" resolved "https://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz?cache=0&sync_timestamp=1600502894812&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" integrity sha1-6D0X3hbYp++3cX7b5fsQE17uYps= @@ -4116,14 +4000,6 @@ detect-node@^2.0.4: resolved "https://registry.npm.taobao.org/detect-node/download/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" integrity sha1-AU7o+PZpxcWAI9pkuBecCDooxGw= -dezalgo@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/dezalgo/-/dezalgo-1.0.3.tgz#7f742de066fc748bc8db820569dddce49bf0d456" - integrity sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY= - dependencies: - asap "^2.0.0" - wrappy "1" - diffie-hellman@^5.0.0: version "5.0.3" resolved "https://registry.npm.taobao.org/diffie-hellman/download/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" @@ -4157,28 +4033,6 @@ dns-equal@^1.0.0: resolved "https://registry.npm.taobao.org/dns-equal/download/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= -dns-over-http@^0.2.0: - version "0.2.0" - resolved "https://registry.npm.taobao.org/dns-over-http/download/dns-over-http-0.2.0.tgz#1f2ead0752621668b67b8fbbfa85b10abd9f4768" - integrity sha1-Hy6tB1JiFmi2e4+7+oWxCr2fR2g= - dependencies: - accept "^3.1.3" - cors "^2.8.5" - debug "^3.1.0" - dns-packet "^4.2.0" - dns-socket "^3.0.0" - extend "^3.0.1" - lru-cache "^4.1.2" - qs "^6.6.0" - random-int "^1.0.0" - -dns-over-tls@^0.0.8: - version "0.0.8" - resolved "https://registry.npm.taobao.org/dns-over-tls/download/dns-over-tls-0.0.8.tgz#0ea3af54c0073e153a989a616c500e79f9f3ac0e" - integrity sha1-DqOvVMAHPhU6mJphbFAOefnzrA4= - dependencies: - dns-packet "^5.2.1" - dns-packet@^1.3.1: version "1.3.1" resolved "https://registry.npm.taobao.org/dns-packet/download/dns-packet-1.3.1.tgz#12aa426981075be500b910eedcd0b47dd7deda5a" @@ -4187,28 +4041,6 @@ dns-packet@^1.3.1: ip "^1.1.0" safe-buffer "^5.0.1" -dns-packet@^4.1.0, dns-packet@^4.2.0: - version "4.2.0" - resolved "https://registry.npm.taobao.org/dns-packet/download/dns-packet-4.2.0.tgz#3fd6f5ff5a4ec3194ed0b15312693ffe8776b343" - integrity sha1-P9b1/1pOwxlO0LFTEmk//od2s0M= - dependencies: - ip "^1.1.5" - safe-buffer "^5.1.1" - -dns-packet@^5.2.1: - version "5.2.1" - resolved "https://registry.npm.taobao.org/dns-packet/download/dns-packet-5.2.1.tgz#26cec0be92252a1b97ed106482921192a7e08f72" - integrity sha1-Js7AvpIlKhuX7RBkgpIRkqfgj3I= - dependencies: - ip "^1.1.5" - -dns-socket@^3.0.0: - version "3.0.0" - resolved "https://registry.npm.taobao.org/dns-socket/download/dns-socket-3.0.0.tgz#3418a3c6309656ebdb3eb0a941811a4fb0b828c5" - integrity sha1-NBijxjCWVuvbPrCpQYEaT7C4KMU= - dependencies: - dns-packet "^4.1.0" - dns-txt@^2.0.2: version "2.0.2" resolved "https://registry.npm.taobao.org/dns-txt/download/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" @@ -4586,7 +4418,7 @@ error-stack-parser@^2.0.0: dependencies: stackframe "^1.1.1" -es-abstract@^1.17.0, es-abstract@^1.17.0-next.1, es-abstract@^1.17.2, es-abstract@^1.17.4, es-abstract@^1.17.5, es-abstract@^1.17.7: +es-abstract@^1.17.0, es-abstract@^1.17.0-next.1, es-abstract@^1.17.2, es-abstract@^1.17.5, es-abstract@^1.17.7: version "1.17.7" resolved "https://registry.npm.taobao.org/es-abstract/download/es-abstract-1.17.7.tgz?cache=0&sync_timestamp=1601502719982&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-abstract%2Fdownload%2Fes-abstract-1.17.7.tgz#a4de61b2f66989fc7421676c1cb9787573ace54c" integrity sha1-pN5hsvZpifx0IWdsHLl4dXOs5Uw= @@ -5053,7 +4885,7 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2: assign-symbols "^1.0.0" is-extendable "^1.0.1" -extend@^3.0.1, extend@~3.0.2: +extend@~3.0.2: version "3.0.2" resolved "https://registry.npm.taobao.org/extend/download/extend-3.0.2.tgz?cache=0&sync_timestamp=1589682707348&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fextend%2Fdownload%2Fextend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo= @@ -5332,11 +5164,6 @@ for-in@^1.0.2: resolved "https://registry.npm.taobao.org/for-in/download/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= -foreach@^2.0.5: - version "2.0.5" - resolved "https://registry.npm.taobao.org/foreach/download/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" - integrity sha1-C+4AUBiusmDQo6865ljdATbsG5k= - forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.npm.taobao.org/forever-agent/download/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" @@ -5360,15 +5187,10 @@ form-data@~2.3.2: combined-stream "^1.0.6" mime-types "^2.1.12" -formidable@2.0.0-canary.20200504.1, formidable@^1.2.2: - version "2.0.0-canary.20200504.1" - resolved "https://registry.yarnpkg.com/formidable/-/formidable-2.0.0-canary.20200504.1.tgz#8b060a43f77da82aa7ddc395e1bb4d845b65dc0b" - integrity sha512-//FlGY4V1wl5+Q54Gfx8FHErl0tDrRatftGFOgis2IeH8JFs4Ve/r+hubMRfk3gjSyI8VYLg8dWfa1DqfhMdCg== - dependencies: - dezalgo "1.0.3" - hexoid "1.0.0" - once "1.4.0" - qs "^6.9.3" +formidable@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/formidable/-/formidable-1.2.2.tgz#bf69aea2972982675f00865342b982986f6b8dd9" + integrity sha512-V8gLm+41I/8kguQ4/o1D3RIHRmhYFG4pnNyonvua+40rqcEmT4+V71yaZ3B457xbbgCsCfjSPi65u/W6vK1U5Q== forwarded@~0.1.2: version "0.1.2" @@ -5816,11 +5638,6 @@ hex-color-regex@^1.1.0: resolved "https://registry.npm.taobao.org/hex-color-regex/download/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" integrity sha1-TAb8y0YC/iYCs8k9+C1+fb8aio4= -hexoid@1.0.0, hexoid@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/hexoid/-/hexoid-1.0.0.tgz#ad10c6573fb907de23d9ec63a711267d9dc9bc18" - integrity sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g== - highlight.js@^9.6.0: version "9.18.3" resolved "https://registry.npm.taobao.org/highlight.js/download/highlight.js-9.18.3.tgz#a1a0a2028d5e3149e2380f8a865ee8516703d634" @@ -5835,11 +5652,6 @@ hmac-drbg@^1.0.0: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" -hoek@6.x.x: - version "6.1.3" - resolved "https://registry.npm.taobao.org/hoek/download/hoek-6.1.3.tgz#73b7d33952e01fe27a38b0457294b79dd8da242c" - integrity sha1-c7fTOVLgH+J6OLBFcpS3ndjaJCw= - hoopy@^0.1.4: version "0.1.4" resolved "https://registry.npm.taobao.org/hoopy/download/hoopy-0.1.4.tgz#609207d661100033a9a9402ad3dea677381c1b1d" @@ -6031,7 +5843,7 @@ icon-gen@^2.0.0: svg2png "4.1.1" uuid "^3.3.2" -iconv-lite@0.4.24, iconv-lite@^0.4.13, iconv-lite@^0.4.24: +iconv-lite@0.4.24, iconv-lite@^0.4.24: version "0.4.24" resolved "https://registry.npm.taobao.org/iconv-lite/download/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha1-ICK0sl+93CHS9SSXSkdKr+czkIs= @@ -6290,11 +6102,6 @@ is-binary-path@~2.1.0: dependencies: binary-extensions "^2.0.0" -is-browser@^2.1.0: - version "2.1.0" - resolved "https://registry.npm.taobao.org/is-browser/download/is-browser-2.1.0.tgz#fc084d59a5fced307d6708c59356bad7007371a9" - integrity sha1-/AhNWaX87TB9ZwjFk1a61wBzcak= - is-buffer@^1.1.5: version "1.1.6" resolved "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" @@ -6417,11 +6224,6 @@ is-function@^1.0.1: resolved "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz#4f097f30abf6efadac9833b17ca5dc03f8144e08" integrity sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ== -is-generator-function@^1.0.7: - version "1.0.7" - resolved "https://registry.npm.taobao.org/is-generator-function/download/is-generator-function-1.0.7.tgz#d2132e529bb0000a7f80794d4bdf5cd5e5813522" - integrity sha1-0hMuUpuwAAp/gHlNS99c1eWBNSI= - is-glob@^3.1.0: version "3.1.0" resolved "https://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" @@ -6572,16 +6374,6 @@ is-symbol@^1.0.2: dependencies: has-symbols "^1.0.1" -is-typed-array@^1.1.3: - version "1.1.3" - resolved "https://registry.npm.taobao.org/is-typed-array/download/is-typed-array-1.1.3.tgz#a4ff5a5e672e1a55f99c7f54e59597af5c1df04d" - integrity sha1-pP9aXmcuGlX5nH9U5ZWXr1wd8E0= - dependencies: - available-typed-arrays "^1.0.0" - es-abstract "^1.17.4" - foreach "^2.0.5" - has-symbols "^1.0.1" - is-typedarray@^1.0.0, is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.npm.taobao.org/is-typedarray/download/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" @@ -6730,11 +6522,6 @@ jsbn@~0.1.0: resolved "https://registry.npm.taobao.org/jsbn/download/jsbn-0.1.1.tgz?cache=0&sync_timestamp=1589682745609&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsbn%2Fdownload%2Fjsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= -jschardet@^1.4.1: - version "1.6.0" - resolved "https://registry.npm.taobao.org/jschardet/download/jschardet-1.6.0.tgz#c7d1a71edcff2839db2f9ec30fc5d5ebd3c1a678" - integrity sha1-x9GnHtz/KDnbL57DD8XV69PBpng= - jsesc@^2.5.1: version "2.5.2" resolved "https://registry.npm.taobao.org/jsesc/download/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" @@ -7136,7 +6923,7 @@ lodash.uniq@^4.5.0: resolved "https://registry.npm.taobao.org/lodash.uniq/download/lodash.uniq-4.5.0.tgz?cache=0&sync_timestamp=1589682817275&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash.uniq%2Fdownload%2Flodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= -lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.3, lodash@^4.17.5, lodash@^4.7.0: +lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.3, lodash@^4.17.5: version "4.17.20" resolved "https://registry.npm.taobao.org/lodash/download/lodash-4.17.20.tgz?cache=0&sync_timestamp=1597335994883&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" integrity sha1-tEqbYpe8tpjxxRo1RaKzs2jVnFI= @@ -7415,7 +7202,7 @@ minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: resolved "https://registry.npm.taobao.org/minimalistic-crypto-utils/download/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= -minimatch@^3.0.2, minimatch@^3.0.4: +minimatch@^3.0.4: version "3.0.4" resolved "https://registry.npm.taobao.org/minimatch/download/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" integrity sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM= @@ -7573,11 +7360,6 @@ nan@^2.12.1: resolved "https://registry.npm.taobao.org/nan/download/nan-2.14.2.tgz?cache=0&sync_timestamp=1602591684976&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnan%2Fdownload%2Fnan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" integrity sha1-9TdkAGlRaPTMaUrJOT0MlYXu6hk= -nanoid@^2.1.0: - version "2.1.11" - resolved "https://registry.npm.taobao.org/nanoid/download/nanoid-2.1.11.tgz?cache=0&sync_timestamp=1603419433040&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnanoid%2Fdownload%2Fnanoid-2.1.11.tgz#ec24b8a758d591561531b4176a01e3ab4f0f0280" - integrity sha1-7CS4p1jVkVYVMbQXagHjq08PAoA= - nanomatch@^1.2.9: version "1.2.13" resolved "https://registry.npm.taobao.org/nanomatch/download/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" @@ -7627,18 +7409,6 @@ no-case@^2.2.0: dependencies: lower-case "^1.1.1" -node-cmd@^3.0.0: - version "3.0.0" - resolved "https://registry.npm.taobao.org/node-cmd/download/node-cmd-3.0.0.tgz#38fff70a4aaa4f659d203eb57862737018e24f6f" - integrity sha1-OP/3CkqqT2WdID61eGJzcBjiT28= - -node-dir@^0.1.17: - version "0.1.17" - resolved "https://registry.npm.taobao.org/node-dir/download/node-dir-0.1.17.tgz#5f5665d93351335caabef8f1c554516cf5f1e4e5" - integrity sha1-X1Zl2TNRM1yqvvjxxVRRbPXx5OU= - dependencies: - minimatch "^3.0.2" - node-emoji@^1.10.0: version "1.10.0" resolved "https://registry.npm.taobao.org/node-emoji/download/node-emoji-1.10.0.tgz#8886abd25d9c7bb61802a658523d1f8d2a89b2da" @@ -7651,11 +7421,6 @@ node-forge@^0.10.0: resolved "https://registry.npm.taobao.org/node-forge/download/node-forge-0.10.0.tgz?cache=0&sync_timestamp=1599010773454&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-forge%2Fdownload%2Fnode-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" integrity sha1-Mt6ir7Ppkm8C7lzoeUkCaRpna/M= -node-forge@^0.8.2: - version "0.8.5" - resolved "https://registry.npm.taobao.org/node-forge/download/node-forge-0.8.5.tgz?cache=0&sync_timestamp=1599010773454&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-forge%2Fdownload%2Fnode-forge-0.8.5.tgz#57906f07614dc72762c84cef442f427c0e1b86ee" - integrity sha1-V5BvB2FNxydiyEzvRC9CfA4bhu4= - node-ipc@^9.1.1: version "9.1.1" resolved "https://registry.npm.taobao.org/node-ipc/download/node-ipc-9.1.1.tgz#4e245ed6938e65100e595ebc5dc34b16e8dd5d69" @@ -7694,14 +7459,6 @@ node-ipc@^9.1.1: util "^0.11.0" vm-browserify "^1.0.1" -node-powershell@^4.0.0: - version "4.0.0" - resolved "https://registry.npm.taobao.org/node-powershell/download/node-powershell-4.0.0.tgz#f3a0b1ec4f5619b501b66005f8a663c8373e8da8" - integrity sha1-86Cx7E9WGbUBtmAF+KZjyDc+jag= - dependencies: - chalk "^2.4.1" - shortid "^2.2.14" - node-releases@^1.1.61: version "1.1.61" resolved "https://registry.npm.taobao.org/node-releases/download/node-releases-1.1.61.tgz?cache=0&sync_timestamp=1599612925853&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-releases%2Fdownload%2Fnode-releases-1.1.61.tgz#707b0fca9ce4e11783612ba4a2fcba09047af16e" @@ -7803,7 +7560,7 @@ oauth-sign@~0.9.0: resolved "https://registry.npm.taobao.org/oauth-sign/download/oauth-sign-0.9.0.tgz?cache=0&sync_timestamp=1589682811909&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Foauth-sign%2Fdownload%2Foauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" integrity sha1-R6ewFrqmi1+g7PPe4IqFxnmsZFU= -object-assign@4.x, object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: +object-assign@4.x, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.npm.taobao.org/object-assign/download/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= @@ -7911,7 +7668,7 @@ on-headers@~1.0.2: resolved "https://registry.npm.taobao.org/on-headers/download/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" integrity sha1-dysK5qqlJcOZ5Imt+tkMQD6zwo8= -once@1.4.0, once@^1.3.0, once@^1.3.1, once@^1.4.0: +once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= @@ -8947,7 +8704,7 @@ qs@6.7.0: resolved "https://registry.npm.taobao.org/qs/download/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" integrity sha1-QdwaAV49WB8WIXdr4xr7KHapsbw= -qs@^6.6.0, qs@^6.9.3, qs@^6.9.4: +qs@^6.9.4: version "6.9.4" resolved "https://registry.npm.taobao.org/qs/download/qs-6.9.4.tgz#9090b290d1f91728d3c22e54843ca44aea5ab687" integrity sha1-kJCykNH5FyjTwi5UhDykSupatoc= @@ -8987,11 +8744,6 @@ raf@^3.4.0: dependencies: performance-now "^2.1.0" -random-int@^1.0.0: - version "1.0.0" - resolved "https://registry.npm.taobao.org/random-int/download/random-int-1.0.0.tgz#e6a2ed3448ac9c6646a0657443b1c1521592ed08" - integrity sha1-5qLtNEisnGZGoGV0Q7HBUhWS7Qg= - randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: version "2.1.0" resolved "https://registry.npm.taobao.org/randombytes/download/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" @@ -9282,13 +9034,6 @@ request@^2.81.0, request@^2.88.2: tunnel-agent "^0.6.0" uuid "^3.3.2" -require-context@^1.1.0: - version "1.1.0" - resolved "https://registry.npm.taobao.org/require-context/download/require-context-1.1.0.tgz#f77e60dddb0a296946e6915bf580c73dbe75ab4d" - integrity sha1-935g3dsKKWlG5pFb9YDHPb51q00= - dependencies: - node-dir "^0.1.17" - require-directory@^2.1.1: version "2.1.1" resolved "https://registry.npm.taobao.org/require-directory/download/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" @@ -9717,13 +9462,6 @@ shell-quote@^1.6.1: resolved "https://registry.npm.taobao.org/shell-quote/download/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2" integrity sha1-Z6fQLHbJ2iT5nSCAj8re0ODgS+I= -shortid@^2.2.14: - version "2.2.16" - resolved "https://registry.npm.taobao.org/shortid/download/shortid-2.2.16.tgz#b742b8f0cb96406fd391c76bfc18a67a57fe5608" - integrity sha1-t0K48MuWQG/Tkcdr/Bimelf+Vgg= - dependencies: - nanoid "^2.1.0" - signal-exit@^3.0.0, signal-exit@^3.0.2: version "3.0.3" resolved "https://registry.npm.taobao.org/signal-exit/download/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" @@ -10417,7 +10155,7 @@ through2-map@^3.0.0: through2 "~2.0.0" xtend "^4.0.0" -through2@^2.0.0, through2@^2.0.1, through2@~2.0.0: +through2@^2.0.0, through2@~2.0.0: version "2.0.5" resolved "https://registry.npm.taobao.org/through2/download/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" integrity sha1-AcHjnrMdB8t9A6lqcIIyYLIxMs0= @@ -10566,11 +10304,6 @@ tty-browserify@0.0.0: resolved "https://registry.npm.taobao.org/tty-browserify/download/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= -tunnel-agent@^0.4.3: - version "0.4.3" - resolved "https://registry.npm.taobao.org/tunnel-agent/download/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb" - integrity sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us= - tunnel-agent@^0.6.0: version "0.6.0" resolved "https://registry.npm.taobao.org/tunnel-agent/download/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" @@ -10885,18 +10618,6 @@ util@^0.11.0: dependencies: inherits "2.0.3" -util@^0.12.3: - version "0.12.3" - resolved "https://registry.npm.taobao.org/util/download/util-0.12.3.tgz#971bb0292d2cc0c892dab7c6a5d37c2bec707888" - integrity sha1-lxuwKS0swMiS2rfGpdN8K+xweIg= - dependencies: - inherits "^2.0.3" - is-arguments "^1.0.4" - is-generator-function "^1.0.7" - is-typed-array "^1.1.3" - safe-buffer "^5.1.2" - which-typed-array "^1.1.2" - utila@^0.4.0, utila@~0.4: version "0.4.0" resolved "https://registry.npm.taobao.org/utila/download/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" @@ -10925,12 +10646,7 @@ validate-npm-package-license@^3.0.1: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" -validator@^13.1.17: - version "13.1.17" - resolved "https://registry.npm.taobao.org/validator/download/validator-13.1.17.tgz?cache=0&sync_timestamp=1600459985144&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvalidator%2Fdownload%2Fvalidator-13.1.17.tgz#ad677736950adddd3c37209484a6b2e0966579ad" - integrity sha1-rWd3NpUK3d08NyCUhKay4JZlea0= - -vary@^1, vary@~1.1.2: +vary@~1.1.2: version "1.1.2" resolved "https://registry.npm.taobao.org/vary/download/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= @@ -11258,18 +10974,6 @@ which-module@^2.0.0: resolved "https://registry.npm.taobao.org/which-module/download/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= -which-typed-array@^1.1.2: - version "1.1.2" - resolved "https://registry.npm.taobao.org/which-typed-array/download/which-typed-array-1.1.2.tgz#e5f98e56bda93e3dac196b01d47c1156679c00b2" - integrity sha1-5fmOVr2pPj2sGWsB1HwRVmecALI= - dependencies: - available-typed-arrays "^1.0.2" - es-abstract "^1.17.5" - foreach "^2.0.5" - function-bind "^1.1.1" - has-symbols "^1.0.1" - is-typed-array "^1.1.3" - which@^1.2.10, which@^1.2.9: version "1.3.1" resolved "https://registry.npm.taobao.org/which/download/which-1.3.1.tgz?cache=0&sync_timestamp=1589682812246&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" @@ -11291,11 +10995,6 @@ widest-line@^3.1.0: dependencies: string-width "^4.0.0" -winreg@^1.2.4: - version "1.2.4" - resolved "https://registry.npm.taobao.org/winreg/download/winreg-1.2.4.tgz#ba065629b7a925130e15779108cf540990e98d1b" - integrity sha1-ugZWKbepJRMOFXeRCM9UCZDpjRs= - word-wrap@~1.2.3: version "1.2.3" resolved "https://registry.npm.taobao.org/word-wrap/download/word-wrap-1.2.3.tgz?cache=0&sync_timestamp=1589683603678&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fword-wrap%2Fdownload%2Fword-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" From c0da37f2ecc25a011ae1465b825c619fda27e8de Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Fri, 13 Nov 2020 15:01:37 +0800 Subject: [PATCH 04/51] =?UTF-8?q?perf:=20=E9=BB=98=E8=AE=A4=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E4=B8=BA=E9=98=BF=E9=87=8C=E4=BA=91dns?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/core/src/config/index.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/core/src/config/index.js b/packages/core/src/config/index.js index 071615f0..3ddb6f9a 100644 --- a/packages/core/src/config/index.js +++ b/packages/core/src/config/index.js @@ -100,11 +100,12 @@ module.exports = { } }, mapping: { - '*.github.com': 'usa', - '*.githubusercontent.com': 'usa', - '*.githubassets.com': 'usa', + 'img.shields.io': 'aliyun', + '*.github.com': 'aliyun', + '*.githubusercontent.com': 'aliyun', + '*.githubassets.com': 'aliyun', // "解决push的时候需要输入密码的问题", - 'github.com': 'usa' + 'github.com': 'aliyun' } } }, From d6c30676c1a7017d4745a19faa6e05690dd68520 Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Fri, 13 Nov 2020 15:05:34 +0800 Subject: [PATCH 05/51] =?UTF-8?q?perf:=20=E6=98=BE=E7=A4=BA=E5=BD=93?= =?UTF-8?q?=E5=89=8D=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/gui/src/view/pages/index.vue | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/gui/src/view/pages/index.vue b/packages/gui/src/view/pages/index.vue index 95b78d44..ad4369a3 100644 --- a/packages/gui/src/view/pages/index.vue +++ b/packages/gui/src/view/pages/index.vue @@ -8,7 +8,7 @@ 安装根证书 - + 检查更新 @@ -88,6 +88,7 @@ export default { } } }, + info: {}, setting: undefined, server: { key: '代理服务', @@ -124,6 +125,10 @@ export default { this.doCheckUpdate(false) } this.update = this.$global.update + + this.$api.info.get().then(ret => { + this.info = ret + }) }, mounted () { console.log('index mounted') From d08a39d557c7fb57d0f432c57cafd75cfb6ae703 Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Fri, 13 Nov 2020 17:45:42 +0800 Subject: [PATCH 06/51] =?UTF-8?q?perf:=20=E6=98=BE=E7=A4=BA=E5=BD=93?= =?UTF-8?q?=E5=89=8D=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/gui/src/bridge/index.js | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/gui/src/bridge/index.js b/packages/gui/src/bridge/index.js index 52bd640d..a359b974 100644 --- a/packages/gui/src/bridge/index.js +++ b/packages/gui/src/bridge/index.js @@ -27,7 +27,6 @@ const localApi = { }, info: { get () { - log.info(pk) return { version: pk.version } From d2ce26a75f0f248c9fb62317ad521e37e9e5ad86 Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Fri, 13 Nov 2020 17:50:26 +0800 Subject: [PATCH 07/51] =?UTF-8?q?refactor:=201.1.0=E5=8F=91=E5=B8=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 18b08af1..e3ad8af5 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,7 @@ recaptcha 图片验证码加速 暂时只支持windows #### 1.1 下载安装包 -[点此去下载](https://dev-sidecar.docmirror.cn/update/DevSidecar-1.0.2.exe) +[点此去下载](https://dev-sidecar.docmirror.cn/update/DevSidecar-1.1.0.exe) 安装后打开: ![](./doc/index.png) #### 1.2 安装根证书 From 172facec66e721510b0109eb590a22bb9e8dcc8f Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Fri, 13 Nov 2020 18:10:44 +0800 Subject: [PATCH 08/51] =?UTF-8?q?docs:=20=E5=B0=8F=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index e3ad8af5..42a67ac6 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,9 @@ 通过本地代理的方式将http请求代理到一些国内的加速通道上 不用`ss小飞机`也能解决一些网站和库无法访问或访问速度慢的问题 - +star +GitHub stars + ## 特性 @@ -37,19 +39,25 @@ recaptcha 图片验证码加速 ### 1、 DevSidecar桌面应用发布啦 暂时只支持windows + + #### 1.1 下载安装包 + [点此去下载](https://dev-sidecar.docmirror.cn/update/DevSidecar-1.1.0.exe) -安装后打开: + +安装后打开 + ![](./doc/index.png) + #### 1.2 安装根证书 第一次打开会提示安装根证书 + #### 1.3 开始加速吧 去试试打开github `Download ZIP`、`Release` 下载试试,体验秒下的感觉 比如去下载它: https://github.com/greper/d2-crud-plus/archive/master.zip - #### 开启前vs 开启后 ![](./doc/avatar2.png) ![](./doc/avatar1.png) From 72806825c09fa3593c31ffa712937b93b8556f13 Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Sat, 14 Nov 2020 00:46:59 +0800 Subject: [PATCH 09/51] =?UTF-8?q?fix:=20=E5=A2=9E=E5=8A=A0replace=E6=96=B9?= =?UTF-8?q?=E5=BC=8F=EF=BC=8C=E4=BF=AE=E5=A4=8Dgithub=20readme=E5=BC=95?= =?UTF-8?q?=E7=94=A8=E5=9B=BE=E7=89=87=E6=89=93=E4=B8=8D=E5=BC=80=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/core/src/config/index.js | 3 +- packages/core/yarn.lock | 26 ++ packages/gui/yarn.lock | 337 ++++++++++++++++-- .../src/lib/interceptor/impl/proxy.js | 8 +- packages/mitmproxy/test/matchTest.mjs | 4 + 5 files changed, 347 insertions(+), 31 deletions(-) create mode 100644 packages/mitmproxy/test/matchTest.mjs diff --git a/packages/core/src/config/index.js b/packages/core/src/config/index.js index 3ddb6f9a..2475110c 100644 --- a/packages/core/src/config/index.js +++ b/packages/core/src/config/index.js @@ -14,7 +14,8 @@ module.exports = { redirect: 'download.fastgit.org' }, '/.*/.*/raw/': { - redirect: 'hub.fastgit.org' + replace: '(.+)\\/raw\\/(.+)', + proxy: 'raw.fastgit.org$1/$2' }, '/.*/.*/blame/': { redirect: 'hub.fastgit.org' diff --git a/packages/core/yarn.lock b/packages/core/yarn.lock index c4a86049..7ff4101b 100644 --- a/packages/core/yarn.lock +++ b/packages/core/yarn.lock @@ -93,6 +93,32 @@ lodash "^4.17.19" to-fast-properties "^2.0.0" +"@docmirror/mitmproxy@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@docmirror/mitmproxy/-/mitmproxy-1.1.0.tgz#d2dfa4c8047306c40105e0673365fdb4182be39b" + integrity sha512-KgNQ24o18G3Gnw9F9EkKKIKuEf3EnHh2uASMs72HvmuLobZo+D+0L+lL2xYPp+w5t8aXt0bgQeK8lRcz2C6wWw== + dependencies: + agentkeepalive "^2.1.1" + child_process "^1.0.2" + colors "^1.1.2" + commander "^2.9.0" + debug "^4.1.1" + dns-over-http "^0.2.0" + dns-over-tls "^0.0.8" + is-browser "^2.1.0" + json5 "^2.1.3" + lodash "^4.7.0" + log4js "^6.3.0" + lru-cache "^6.0.0" + mkdirp "^0.5.1" + node-cmd "^3.0.0" + node-forge "^0.8.2" + require-context "^1.1.0" + through2 "^2.0.1" + tunnel-agent "^0.4.3" + util "^0.12.3" + validator "^13.1.17" + "@hapi/address@2.x.x": version "2.1.4" resolved "https://registry.npm.taobao.org/@hapi/address/download/@hapi/address-2.1.4.tgz?cache=0&sync_timestamp=1593993895205&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Faddress%2Fdownload%2F%40hapi%2Faddress-2.1.4.tgz#5d67ed43f3fd41a69d4b9ff7b56e7c0d1d0a81e5" diff --git a/packages/gui/yarn.lock b/packages/gui/yarn.lock index fb77b85a..9b3ba948 100644 --- a/packages/gui/yarn.lock +++ b/packages/gui/yarn.lock @@ -901,6 +901,63 @@ ajv "^6.12.0" ajv-keywords "^3.4.1" +"@docmirror/dev-sidecar@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@docmirror/dev-sidecar/-/dev-sidecar-1.1.0.tgz#a77fbbacceedd62202aea581712b13595629756f" + integrity sha512-Amh8m7nArLUvDL7QAfNV4rTaZIOOyS4/DY4+9h/1B9RXRFJ4oGePcBkH6QXO3p0msoutu87BtYXFTl0qvY4vQQ== + dependencies: + "@docmirror/mitmproxy" "^1.1.0" + agentkeepalive "^2.1.1" + charset "^1.0.0" + child_process "^1.0.2" + colors "^1.1.2" + commander "^2.9.0" + debug "^4.1.1" + dns-over-http "^0.2.0" + dns-over-tls "^0.0.8" + iconv-lite "^0.4.13" + is-browser "^2.1.0" + jschardet "^1.4.1" + json5 "^2.1.3" + lodash "^4.7.0" + lru-cache "^6.0.0" + mkdirp "^0.5.1" + node-cmd "^3.0.0" + node-forge "^0.8.2" + node-powershell "^4.0.0" + require-context "^1.1.0" + through2 "^2.0.1" + tunnel-agent "^0.4.3" + util "^0.12.3" + validator "^13.1.17" + winreg "^1.2.4" + +"@docmirror/mitmproxy@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@docmirror/mitmproxy/-/mitmproxy-1.1.0.tgz#d2dfa4c8047306c40105e0673365fdb4182be39b" + integrity sha512-KgNQ24o18G3Gnw9F9EkKKIKuEf3EnHh2uASMs72HvmuLobZo+D+0L+lL2xYPp+w5t8aXt0bgQeK8lRcz2C6wWw== + dependencies: + agentkeepalive "^2.1.1" + child_process "^1.0.2" + colors "^1.1.2" + commander "^2.9.0" + debug "^4.1.1" + dns-over-http "^0.2.0" + dns-over-tls "^0.0.8" + is-browser "^2.1.0" + json5 "^2.1.3" + lodash "^4.7.0" + log4js "^6.3.0" + lru-cache "^6.0.0" + mkdirp "^0.5.1" + node-cmd "^3.0.0" + node-forge "^0.8.2" + require-context "^1.1.0" + through2 "^2.0.1" + tunnel-agent "^0.4.3" + util "^0.12.3" + validator "^13.1.17" + "@electron/get@^1.0.1": version "1.12.2" resolved "https://registry.npm.taobao.org/@electron/get/download/@electron/get-1.12.2.tgz#6442066afb99be08cefb9a281e4b4692b33764f3" @@ -1961,6 +2018,14 @@ resolved "https://registry.npm.taobao.org/@xtuc/long/download/@xtuc/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" integrity sha1-0pHGpOl5ibXGHZrPOWrk/hM6cY0= +accept@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/accept/-/accept-3.1.3.tgz#29c3e2b3a8f4eedbc2b690e472b9ebbdc7385e87" + integrity sha512-OgOEAidVEOKPup+Gv2+2wdH2AgVKI9LxsJ4hicdJ6cY0faUuZdZoi56kkXWlHp9qicN1nWQLmW5ZRGk+SBS5xg== + dependencies: + boom "7.x.x" + hoek "6.x.x" + accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: version "1.3.7" resolved "https://registry.npm.taobao.org/accepts/download/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" @@ -2001,6 +2066,11 @@ address@^1.1.2: resolved "https://registry.npm.taobao.org/address/download/address-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6" integrity sha1-vxEWycdYxRt6kz0pa3LCIe2UKLY= +agentkeepalive@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-2.2.0.tgz#c5d1bd4b129008f1163f236f86e5faea2026e2ef" + integrity sha1-xdG9SxKQCPEWPyNvhuX66iAm4u8= + aggregate-error@^3.0.0: version "3.1.0" resolved "https://registry.npm.taobao.org/aggregate-error/download/aggregate-error-3.1.0.tgz?cache=0&sync_timestamp=1598049717562&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Faggregate-error%2Fdownload%2Faggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" @@ -2234,6 +2304,11 @@ arr-union@^3.1.0: resolved "https://registry.npm.taobao.org/arr-union/download/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= +array-filter@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-1.0.0.tgz#baf79e62e6ef4c2a4c0b831232daffec251f9d83" + integrity sha1-uveeYubvTCpMC4MSMtr/7CUfnYM= + array-find@^1.0.0: version "1.0.0" resolved "https://registry.npm.taobao.org/array-find/download/array-find-1.0.0.tgz#6c8e286d11ed768327f8e62ecee87353ca3e78b8" @@ -2393,6 +2468,13 @@ autoprefixer@^9.8.6: postcss "^7.0.32" postcss-value-parser "^4.1.0" +available-typed-arrays@^1.0.0, available-typed-arrays@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.2.tgz#6b098ca9d8039079ee3f77f7b783c4480ba513f5" + integrity sha512-XWX3OX8Onv97LMk/ftVyBibpGwY5a8SmuxZPzeOxqmuEqUCOM9ZE+uIaD1VNJ5QnvU2UQusvmKbuM1FR8QWGfQ== + dependencies: + array-filter "^1.0.0" + aws-sign2@~0.7.0: version "0.7.0" resolved "https://registry.npm.taobao.org/aws-sign2/download/aws-sign2-0.7.0.tgz?cache=0&sync_timestamp=1589682812085&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Faws-sign2%2Fdownload%2Faws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" @@ -2583,6 +2665,13 @@ boolean@^3.0.1: resolved "https://registry.npm.taobao.org/boolean/download/boolean-3.0.1.tgz#35ecf2b4a2ee191b0b44986f14eb5f052a5cbb4f" integrity sha1-NezytKLuGRsLRJhvFOtfBSpcu08= +boom@7.x.x: + version "7.3.0" + resolved "https://registry.yarnpkg.com/boom/-/boom-7.3.0.tgz#733a6d956d33b0b1999da3fe6c12996950d017b9" + integrity sha512-Swpoyi2t5+GhOEGw8rEsKvTxFLIDiiKoUc2gsoV6Lyr43LHBIzch3k2MvYUs8RTROrIkVJ3Al0TkaOGjnb+B6A== + dependencies: + hoek "6.x.x" + boxen@^4.2.0: version "4.2.0" resolved "https://registry.npm.taobao.org/boxen/download/boxen-4.2.0.tgz#e411b62357d6d6d36587c8ac3d5d974daa070e64" @@ -3025,11 +3114,21 @@ chardet@^0.7.0: resolved "https://registry.npm.taobao.org/chardet/download/chardet-0.7.0.tgz?cache=0&sync_timestamp=1601032467034&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchardet%2Fdownload%2Fchardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" integrity sha1-kAlISfCTfy7twkJdDSip5fDLrZ4= +charset@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/charset/-/charset-1.0.1.tgz#8d59546c355be61049a8fa9164747793319852bd" + integrity sha512-6dVyOOYjpfFcL1Y4qChrAoQLRHvj2ziyhcm0QJlhOcAhykL/k1kTUPbeo+87MNRTRdk2OIIsIXbuF3x2wi5EXg== + check-types@^8.0.3: version "8.0.3" resolved "https://registry.npm.taobao.org/check-types/download/check-types-8.0.3.tgz#3356cca19c889544f2d7a95ed49ce508a0ecf552" integrity sha1-M1bMoZyIlUTy16le1JzlCKDs9VI= +child_process@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/child_process/-/child_process-1.0.2.tgz#b1f7e7fc73d25e7fd1d455adc94e143830182b5a" + integrity sha1-sffn/HPSXn/R1FWtyU4UODAYK1o= + "chokidar@>=2.0.0 <4.0.0", chokidar@^3.0.2, chokidar@^3.4.1: version "3.4.3" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.3.tgz#c1df38231448e45ca4ac588e6c79573ba6a57d5b" @@ -3296,6 +3395,11 @@ colorette@^1.2.1: resolved "https://registry.npm.taobao.org/colorette/download/colorette-1.2.1.tgz?cache=0&sync_timestamp=1593955763917&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolorette%2Fdownload%2Fcolorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b" integrity sha1-TQuSEyXBT6+SYzCGpTbbbolWSxs= +colors@^1.1.2: + version "1.4.0" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" + integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== + combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: version "1.0.8" resolved "https://registry.npm.taobao.org/combined-stream/download/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" @@ -3308,10 +3412,10 @@ commander@2.17.x: resolved "https://registry.npm.taobao.org/commander/download/commander-2.17.1.tgz?cache=0&sync_timestamp=1598576116597&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" integrity sha1-vXerfebelCBc6sxy8XFtKfIKd78= -commander@^2.18.0, commander@^2.20.0: +commander@^2.18.0, commander@^2.20.0, commander@^2.9.0: version "2.20.3" - resolved "https://registry.npm.taobao.org/commander/download/commander-2.20.3.tgz?cache=0&sync_timestamp=1598576116597&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha1-/UhehMA+tIgcIHIrpIA16FMa6zM= + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== commander@~2.19.0: version "2.19.0" @@ -3530,6 +3634,14 @@ core-util-is@1.0.2, core-util-is@~1.0.0: resolved "https://registry.npm.taobao.org/core-util-is/download/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= +cors@^2.8.5: + version "2.8.5" + resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" + integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== + dependencies: + object-assign "^4" + vary "^1" + cosmiconfig@^5.0.0: version "5.2.1" resolved "https://registry.npm.taobao.org/cosmiconfig/download/cosmiconfig-5.2.1.tgz?cache=0&sync_timestamp=1596310819353&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcosmiconfig%2Fdownload%2Fcosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" @@ -3826,10 +3938,10 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: dependencies: ms "2.0.0" -debug@^3.1.1, debug@^3.2.5: +debug@^3.1.0, debug@^3.1.1, debug@^3.2.5: version "3.2.6" - resolved "https://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz?cache=0&sync_timestamp=1600502894812&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" - integrity sha1-6D0X3hbYp++3cX7b5fsQE17uYps= + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" + integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== dependencies: ms "^2.1.1" @@ -4033,6 +4145,28 @@ dns-equal@^1.0.0: resolved "https://registry.npm.taobao.org/dns-equal/download/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= +dns-over-http@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/dns-over-http/-/dns-over-http-0.2.0.tgz#1f2ead0752621668b67b8fbbfa85b10abd9f4768" + integrity sha512-K+SyN2L3ljxJ2MFtOv/vRS+3/YEMLvOuH7MrmO5ejaubi4w02/DLqzoK1kBGKlQrT9ND57pbapeDf+ue8AElEA== + dependencies: + accept "^3.1.3" + cors "^2.8.5" + debug "^3.1.0" + dns-packet "^4.2.0" + dns-socket "^3.0.0" + extend "^3.0.1" + lru-cache "^4.1.2" + qs "^6.6.0" + random-int "^1.0.0" + +dns-over-tls@^0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/dns-over-tls/-/dns-over-tls-0.0.8.tgz#0ea3af54c0073e153a989a616c500e79f9f3ac0e" + integrity sha512-2r1IBUEffIbhjuyOyKCsiMimXFCCEADY9Xfu9+p2NuUpSB6Si03+rPdLL9wxzkD6dI1d7gaJt+ekVIg3tW+ReQ== + dependencies: + dns-packet "^5.2.1" + dns-packet@^1.3.1: version "1.3.1" resolved "https://registry.npm.taobao.org/dns-packet/download/dns-packet-1.3.1.tgz#12aa426981075be500b910eedcd0b47dd7deda5a" @@ -4041,6 +4175,28 @@ dns-packet@^1.3.1: ip "^1.1.0" safe-buffer "^5.0.1" +dns-packet@^4.1.0, dns-packet@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-4.2.0.tgz#3fd6f5ff5a4ec3194ed0b15312693ffe8776b343" + integrity sha512-bn1AKpfkFbm0MIioOMHZ5qJzl2uypdBwI4nYNsqvhjsegBhcKJUlCrMPWLx6JEezRjxZmxhtIz/FkBEur2l8Cw== + dependencies: + ip "^1.1.5" + safe-buffer "^5.1.1" + +dns-packet@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.2.1.tgz#26cec0be92252a1b97ed106482921192a7e08f72" + integrity sha512-JHj2yJeKOqlxzeuYpN1d56GfhzivAxavNwHj9co3qptECel27B1rLY5PifJAvubsInX5pGLDjAHuCfCUc2Zv/w== + dependencies: + ip "^1.1.5" + +dns-socket@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/dns-socket/-/dns-socket-3.0.0.tgz#3418a3c6309656ebdb3eb0a941811a4fb0b828c5" + integrity sha512-M0WkByoJ/mTm+HtwBQLsRJPe5uGIC/lYVOp+s6ZzhbZ5iq4GxjFyxYPQhB85dgCLvVb43aJQXHDC9aUgyKGc/Q== + dependencies: + dns-packet "^4.1.0" + dns-txt@^2.0.2: version "2.0.2" resolved "https://registry.npm.taobao.org/dns-txt/download/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" @@ -4418,7 +4574,7 @@ error-stack-parser@^2.0.0: dependencies: stackframe "^1.1.1" -es-abstract@^1.17.0, es-abstract@^1.17.0-next.1, es-abstract@^1.17.2, es-abstract@^1.17.5, es-abstract@^1.17.7: +es-abstract@^1.17.0, es-abstract@^1.17.0-next.1, es-abstract@^1.17.2, es-abstract@^1.17.4, es-abstract@^1.17.5, es-abstract@^1.17.7: version "1.17.7" resolved "https://registry.npm.taobao.org/es-abstract/download/es-abstract-1.17.7.tgz?cache=0&sync_timestamp=1601502719982&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-abstract%2Fdownload%2Fes-abstract-1.17.7.tgz#a4de61b2f66989fc7421676c1cb9787573ace54c" integrity sha1-pN5hsvZpifx0IWdsHLl4dXOs5Uw= @@ -4885,10 +5041,10 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2: assign-symbols "^1.0.0" is-extendable "^1.0.1" -extend@~3.0.2: +extend@^3.0.1, extend@~3.0.2: version "3.0.2" - resolved "https://registry.npm.taobao.org/extend/download/extend-3.0.2.tgz?cache=0&sync_timestamp=1589682707348&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fextend%2Fdownload%2Fextend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo= + 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" @@ -5164,6 +5320,11 @@ for-in@^1.0.2: resolved "https://registry.npm.taobao.org/for-in/download/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= +foreach@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" + integrity sha1-C+4AUBiusmDQo6865ljdATbsG5k= + forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.npm.taobao.org/forever-agent/download/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" @@ -5652,6 +5813,11 @@ hmac-drbg@^1.0.0: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" +hoek@6.x.x: + version "6.1.3" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-6.1.3.tgz#73b7d33952e01fe27a38b0457294b79dd8da242c" + integrity sha512-YXXAAhmF9zpQbC7LEcREFtXfGq5K1fmd+4PHkBq8NUqmzW3G+Dq10bI/i0KucLRwss3YYFQ0fSfoxBZYiGUqtQ== + hoopy@^0.1.4: version "0.1.4" resolved "https://registry.npm.taobao.org/hoopy/download/hoopy-0.1.4.tgz#609207d661100033a9a9402ad3dea677381c1b1d" @@ -5843,10 +6009,10 @@ icon-gen@^2.0.0: svg2png "4.1.1" uuid "^3.3.2" -iconv-lite@0.4.24, iconv-lite@^0.4.24: +iconv-lite@0.4.24, iconv-lite@^0.4.13, iconv-lite@^0.4.24: version "0.4.24" - resolved "https://registry.npm.taobao.org/iconv-lite/download/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha1-ICK0sl+93CHS9SSXSkdKr+czkIs= + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== dependencies: safer-buffer ">= 2.1.2 < 3" @@ -6102,6 +6268,11 @@ is-binary-path@~2.1.0: dependencies: binary-extensions "^2.0.0" +is-browser@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-browser/-/is-browser-2.1.0.tgz#fc084d59a5fced307d6708c59356bad7007371a9" + integrity sha512-F5rTJxDQ2sW81fcfOR1GnCXT6sVJC104fCyfj+mjpwNEwaPYSn5fte5jiHmBg3DHsIoL/l8Kvw5VN5SsTRcRFQ== + is-buffer@^1.1.5: version "1.1.6" resolved "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" @@ -6224,6 +6395,11 @@ is-function@^1.0.1: resolved "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz#4f097f30abf6efadac9833b17ca5dc03f8144e08" integrity sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ== +is-generator-function@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.7.tgz#d2132e529bb0000a7f80794d4bdf5cd5e5813522" + integrity sha512-YZc5EwyO4f2kWCax7oegfuSr9mFz1ZvieNYBEjmukLxgXfBUbxAWGVF7GZf0zidYtoBl3WvC07YK0wT76a+Rtw== + is-glob@^3.1.0: version "3.1.0" resolved "https://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" @@ -6374,6 +6550,16 @@ is-symbol@^1.0.2: dependencies: has-symbols "^1.0.1" +is-typed-array@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.3.tgz#a4ff5a5e672e1a55f99c7f54e59597af5c1df04d" + integrity sha512-BSYUBOK/HJibQ30wWkWold5txYwMUXQct9YHAQJr8fSwvZoiglcqB0pd7vEN23+Tsi9IUEjztdOSzl4qLVYGTQ== + dependencies: + available-typed-arrays "^1.0.0" + es-abstract "^1.17.4" + foreach "^2.0.5" + has-symbols "^1.0.1" + is-typedarray@^1.0.0, is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.npm.taobao.org/is-typedarray/download/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" @@ -6522,6 +6708,11 @@ jsbn@~0.1.0: resolved "https://registry.npm.taobao.org/jsbn/download/jsbn-0.1.1.tgz?cache=0&sync_timestamp=1589682745609&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsbn%2Fdownload%2Fjsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= +jschardet@^1.4.1: + version "1.6.0" + resolved "https://registry.yarnpkg.com/jschardet/-/jschardet-1.6.0.tgz#c7d1a71edcff2839db2f9ec30fc5d5ebd3c1a678" + integrity sha512-xYuhvQ7I9PDJIGBWev9xm0+SMSed3ZDBAmvVjbFR1ZRLAF+vlXcQu6cRI9uAlj81rzikElRVteehwV7DuX2ZmQ== + jsesc@^2.5.1: version "2.5.2" resolved "https://registry.npm.taobao.org/jsesc/download/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" @@ -6923,10 +7114,10 @@ lodash.uniq@^4.5.0: resolved "https://registry.npm.taobao.org/lodash.uniq/download/lodash.uniq-4.5.0.tgz?cache=0&sync_timestamp=1589682817275&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash.uniq%2Fdownload%2Flodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= -lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.3, lodash@^4.17.5: +lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.3, lodash@^4.17.5, lodash@^4.7.0: version "4.17.20" - resolved "https://registry.npm.taobao.org/lodash/download/lodash-4.17.20.tgz?cache=0&sync_timestamp=1597335994883&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" - integrity sha1-tEqbYpe8tpjxxRo1RaKzs2jVnFI= + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" + integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== log-symbols@^2.2.0: version "2.2.0" @@ -7202,10 +7393,10 @@ minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: resolved "https://registry.npm.taobao.org/minimalistic-crypto-utils/download/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= -minimatch@^3.0.4: +minimatch@^3.0.2, minimatch@^3.0.4: version "3.0.4" - resolved "https://registry.npm.taobao.org/minimatch/download/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM= + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== dependencies: brace-expansion "^1.1.7" @@ -7360,6 +7551,11 @@ nan@^2.12.1: resolved "https://registry.npm.taobao.org/nan/download/nan-2.14.2.tgz?cache=0&sync_timestamp=1602591684976&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnan%2Fdownload%2Fnan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" integrity sha1-9TdkAGlRaPTMaUrJOT0MlYXu6hk= +nanoid@^2.1.0: + version "2.1.11" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-2.1.11.tgz#ec24b8a758d591561531b4176a01e3ab4f0f0280" + integrity sha512-s/snB+WGm6uwi0WjsZdaVcuf3KJXlfGl2LcxgwkEwJF0D/BWzVWAZW/XY4bFaiR7s0Jk3FPvlnepg1H1b1UwlA== + nanomatch@^1.2.9: version "1.2.13" resolved "https://registry.npm.taobao.org/nanomatch/download/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" @@ -7409,6 +7605,18 @@ no-case@^2.2.0: dependencies: lower-case "^1.1.1" +node-cmd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/node-cmd/-/node-cmd-3.0.0.tgz#38fff70a4aaa4f659d203eb57862737018e24f6f" + integrity sha1-OP/3CkqqT2WdID61eGJzcBjiT28= + +node-dir@^0.1.17: + version "0.1.17" + resolved "https://registry.yarnpkg.com/node-dir/-/node-dir-0.1.17.tgz#5f5665d93351335caabef8f1c554516cf5f1e4e5" + integrity sha1-X1Zl2TNRM1yqvvjxxVRRbPXx5OU= + dependencies: + minimatch "^3.0.2" + node-emoji@^1.10.0: version "1.10.0" resolved "https://registry.npm.taobao.org/node-emoji/download/node-emoji-1.10.0.tgz#8886abd25d9c7bb61802a658523d1f8d2a89b2da" @@ -7421,6 +7629,11 @@ node-forge@^0.10.0: resolved "https://registry.npm.taobao.org/node-forge/download/node-forge-0.10.0.tgz?cache=0&sync_timestamp=1599010773454&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-forge%2Fdownload%2Fnode-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" integrity sha1-Mt6ir7Ppkm8C7lzoeUkCaRpna/M= +node-forge@^0.8.2: + version "0.8.5" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.8.5.tgz#57906f07614dc72762c84cef442f427c0e1b86ee" + integrity sha512-vFMQIWt+J/7FLNyKouZ9TazT74PRV3wgv9UT4cRjC8BffxFbKXkgIWR42URCPSnHm/QDz6BOlb2Q0U4+VQT67Q== + node-ipc@^9.1.1: version "9.1.1" resolved "https://registry.npm.taobao.org/node-ipc/download/node-ipc-9.1.1.tgz#4e245ed6938e65100e595ebc5dc34b16e8dd5d69" @@ -7459,6 +7672,14 @@ node-ipc@^9.1.1: util "^0.11.0" vm-browserify "^1.0.1" +node-powershell@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/node-powershell/-/node-powershell-4.0.0.tgz#f3a0b1ec4f5619b501b66005f8a663c8373e8da8" + integrity sha512-WCZMLgwkjW9G/DZsZwyCEAXhMMzShLRUlnYS+EETRqRLSdUMbuO4xiQxIOeAutwQgvj75NvC58CorHFlx0olIA== + dependencies: + chalk "^2.4.1" + shortid "^2.2.14" + node-releases@^1.1.61: version "1.1.61" resolved "https://registry.npm.taobao.org/node-releases/download/node-releases-1.1.61.tgz?cache=0&sync_timestamp=1599612925853&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-releases%2Fdownload%2Fnode-releases-1.1.61.tgz#707b0fca9ce4e11783612ba4a2fcba09047af16e" @@ -7560,9 +7781,9 @@ oauth-sign@~0.9.0: resolved "https://registry.npm.taobao.org/oauth-sign/download/oauth-sign-0.9.0.tgz?cache=0&sync_timestamp=1589682811909&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Foauth-sign%2Fdownload%2Foauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" integrity sha1-R6ewFrqmi1+g7PPe4IqFxnmsZFU= -object-assign@4.x, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: +object-assign@4.x, object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" - resolved "https://registry.npm.taobao.org/object-assign/download/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= object-copy@^0.1.0: @@ -8704,10 +8925,10 @@ qs@6.7.0: resolved "https://registry.npm.taobao.org/qs/download/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" integrity sha1-QdwaAV49WB8WIXdr4xr7KHapsbw= -qs@^6.9.4: +qs@^6.6.0, qs@^6.9.4: version "6.9.4" - resolved "https://registry.npm.taobao.org/qs/download/qs-6.9.4.tgz#9090b290d1f91728d3c22e54843ca44aea5ab687" - integrity sha1-kJCykNH5FyjTwi5UhDykSupatoc= + resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.4.tgz#9090b290d1f91728d3c22e54843ca44aea5ab687" + integrity sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ== qs@~6.5.2: version "6.5.2" @@ -8744,6 +8965,11 @@ raf@^3.4.0: dependencies: performance-now "^2.1.0" +random-int@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/random-int/-/random-int-1.0.0.tgz#e6a2ed3448ac9c6646a0657443b1c1521592ed08" + integrity sha1-5qLtNEisnGZGoGV0Q7HBUhWS7Qg= + randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: version "2.1.0" resolved "https://registry.npm.taobao.org/randombytes/download/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" @@ -9034,6 +9260,13 @@ request@^2.81.0, request@^2.88.2: tunnel-agent "^0.6.0" uuid "^3.3.2" +require-context@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/require-context/-/require-context-1.1.0.tgz#f77e60dddb0a296946e6915bf580c73dbe75ab4d" + integrity sha512-nfYSy3Q9W3W1fCo0nief19bDq216IGY9+wOUsmCWAJ5jssyak0r110rvqIj4KJYoUYDxLDaeA66ONOYy4PJEUw== + dependencies: + node-dir "^0.1.17" + require-directory@^2.1.1: version "2.1.1" resolved "https://registry.npm.taobao.org/require-directory/download/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" @@ -9462,6 +9695,13 @@ shell-quote@^1.6.1: resolved "https://registry.npm.taobao.org/shell-quote/download/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2" integrity sha1-Z6fQLHbJ2iT5nSCAj8re0ODgS+I= +shortid@^2.2.14: + version "2.2.16" + resolved "https://registry.yarnpkg.com/shortid/-/shortid-2.2.16.tgz#b742b8f0cb96406fd391c76bfc18a67a57fe5608" + integrity sha512-Ugt+GIZqvGXCIItnsL+lvFJOiN7RYqlGy7QE41O3YC1xbNSeDGIRO7xg2JJXIAj1cAGnOeC1r7/T9pgrtQbv4g== + dependencies: + nanoid "^2.1.0" + signal-exit@^3.0.0, signal-exit@^3.0.2: version "3.0.3" resolved "https://registry.npm.taobao.org/signal-exit/download/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" @@ -10155,10 +10395,10 @@ through2-map@^3.0.0: through2 "~2.0.0" xtend "^4.0.0" -through2@^2.0.0, through2@~2.0.0: +through2@^2.0.0, through2@^2.0.1, through2@~2.0.0: version "2.0.5" - resolved "https://registry.npm.taobao.org/through2/download/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" - integrity sha1-AcHjnrMdB8t9A6lqcIIyYLIxMs0= + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== dependencies: readable-stream "~2.3.6" xtend "~4.0.1" @@ -10304,6 +10544,11 @@ tty-browserify@0.0.0: resolved "https://registry.npm.taobao.org/tty-browserify/download/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= +tunnel-agent@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb" + integrity sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us= + tunnel-agent@^0.6.0: version "0.6.0" resolved "https://registry.npm.taobao.org/tunnel-agent/download/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" @@ -10618,6 +10863,18 @@ util@^0.11.0: dependencies: inherits "2.0.3" +util@^0.12.3: + version "0.12.3" + resolved "https://registry.yarnpkg.com/util/-/util-0.12.3.tgz#971bb0292d2cc0c892dab7c6a5d37c2bec707888" + integrity sha512-I8XkoQwE+fPQEhy9v012V+TSdH2kp9ts29i20TaaDUXsg7x/onePbhFJUExBfv/2ay1ZOp/Vsm3nDlmnFGSAog== + dependencies: + inherits "^2.0.3" + is-arguments "^1.0.4" + is-generator-function "^1.0.7" + is-typed-array "^1.1.3" + safe-buffer "^5.1.2" + which-typed-array "^1.1.2" + utila@^0.4.0, utila@~0.4: version "0.4.0" resolved "https://registry.npm.taobao.org/utila/download/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" @@ -10646,9 +10903,14 @@ validate-npm-package-license@^3.0.1: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" -vary@~1.1.2: +validator@^13.1.17: + version "13.1.17" + resolved "https://registry.yarnpkg.com/validator/-/validator-13.1.17.tgz#ad677736950adddd3c37209484a6b2e0966579ad" + integrity sha512-zL5QBoemJ3jYFb2/j38y7ljhwYGXVLUp8H6W1nVxadnAOvUOytec+L7BHh1oBQ82/TzWXHd+GSaxUWp4lROkLg== + +vary@^1, vary@~1.1.2: version "1.1.2" - resolved "https://registry.npm.taobao.org/vary/download/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= vendors@^1.0.0: @@ -10974,6 +11236,18 @@ which-module@^2.0.0: resolved "https://registry.npm.taobao.org/which-module/download/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= +which-typed-array@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.2.tgz#e5f98e56bda93e3dac196b01d47c1156679c00b2" + integrity sha512-KT6okrd1tE6JdZAy3o2VhMoYPh3+J6EMZLyrxBQsZflI1QCZIxMrIYLkosd8Twf+YfknVIHmYQPgJt238p8dnQ== + dependencies: + available-typed-arrays "^1.0.2" + es-abstract "^1.17.5" + foreach "^2.0.5" + function-bind "^1.1.1" + has-symbols "^1.0.1" + is-typed-array "^1.1.3" + which@^1.2.10, which@^1.2.9: version "1.3.1" resolved "https://registry.npm.taobao.org/which/download/which-1.3.1.tgz?cache=0&sync_timestamp=1589682812246&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" @@ -10995,6 +11269,11 @@ widest-line@^3.1.0: dependencies: string-width "^4.0.0" +winreg@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/winreg/-/winreg-1.2.4.tgz#ba065629b7a925130e15779108cf540990e98d1b" + integrity sha1-ugZWKbepJRMOFXeRCM9UCZDpjRs= + word-wrap@~1.2.3: version "1.2.3" resolved "https://registry.npm.taobao.org/word-wrap/download/word-wrap-1.2.3.tgz?cache=0&sync_timestamp=1589683603678&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fword-wrap%2Fdownload%2Fword-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" diff --git a/packages/mitmproxy/src/lib/interceptor/impl/proxy.js b/packages/mitmproxy/src/lib/interceptor/impl/proxy.js index 6fac9371..44e270fe 100644 --- a/packages/mitmproxy/src/lib/interceptor/impl/proxy.js +++ b/packages/mitmproxy/src/lib/interceptor/impl/proxy.js @@ -3,7 +3,12 @@ module.exports = function createInterceptor (context) { const { log } = context return { requestInterceptor (interceptOpt, rOptions, req, res, ssl, next) { - const proxyTarget = interceptOpt.proxy + let proxyTarget = interceptOpt.proxy + req.url + if (interceptOpt.replace) { + const regexp = new RegExp(interceptOpt.replace) + proxyTarget = req.url.replace(regexp, interceptOpt.proxy) + } + console.log('proxy', rOptions.path, rOptions.url) // const backup = interceptOpt.backup const proxy = proxyTarget.indexOf('http') === 0 ? proxyTarget : rOptions.protocol + '//' + proxyTarget // eslint-disable-next-line node/no-deprecated-api @@ -12,6 +17,7 @@ module.exports = function createInterceptor (context) { rOptions.hostname = URL.host rOptions.host = URL.host rOptions.headers.host = URL.host + rOptions.path = URL.path if (URL.port == null) { rOptions.port = rOptions.protocol === 'https:' ? 443 : 80 } diff --git a/packages/mitmproxy/test/matchTest.mjs b/packages/mitmproxy/test/matchTest.mjs new file mode 100644 index 00000000..56898a83 --- /dev/null +++ b/packages/mitmproxy/test/matchTest.mjs @@ -0,0 +1,4 @@ +const name = '/docmirror/dev-sidecar/raw/master/doc/index.png' +// https://raw.fastgit.org/docmirror/dev-sidecar/master/doc/index.png +const ret = name.replace(/^(.+)\/raw\/(.+)$/, 'raw.fastgit.org$1/$2') +console.log(ret) From 278ae695cacfd69ff10cbd132dce0d16c5deb167 Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Sat, 14 Nov 2020 01:22:47 +0800 Subject: [PATCH 10/51] =?UTF-8?q?fix:=20=E5=A2=9E=E5=8A=A0replace=E6=96=B9?= =?UTF-8?q?=E5=BC=8F=EF=BC=8C=E4=BF=AE=E5=A4=8Dgithub=20readme=E5=BC=95?= =?UTF-8?q?=E7=94=A8=E5=9B=BE=E7=89=87=E6=89=93=E4=B8=8D=E5=BC=80=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/mitmproxy/src/index.js | 4 ++-- .../src/lib/proxy/mitmproxy/createRequestHandler.js | 10 +++++----- packages/mitmproxy/src/lib/proxy/mitmproxy/index.js | 6 +++++- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/packages/mitmproxy/src/index.js b/packages/mitmproxy/src/index.js index f19df554..f45fcf90 100644 --- a/packages/mitmproxy/src/index.js +++ b/packages/mitmproxy/src/index.js @@ -33,8 +33,8 @@ function registerProcessListener () { log.error('uncaughtException:', err) }) - process.on('unhandledRejection', (reason, p) => { - log.info('Unhandled Rejection at: Promise', p, 'reason:', reason) + process.on('unhandledRejection', (err, p) => { + log.info('Unhandled Rejection at: Promise', p, 'err:', err) // application specific logging, throwing an error, or other logic here }) } diff --git a/packages/mitmproxy/src/lib/proxy/mitmproxy/createRequestHandler.js b/packages/mitmproxy/src/lib/proxy/mitmproxy/createRequestHandler.js index cd16eb03..b1a25262 100644 --- a/packages/mitmproxy/src/lib/proxy/mitmproxy/createRequestHandler.js +++ b/packages/mitmproxy/src/lib/proxy/mitmproxy/createRequestHandler.js @@ -96,12 +96,11 @@ module.exports = function createRequestHandler (requestInterceptor, responseInte log.error('记录ip失败次数,用于优选ip:', hostname, ip) } log.error('代理请求超时', rOptions.protocol, rOptions.hostname, rOptions.path, (end - start) + 'ms') - // reject(new Error(`${rOptions.host}:${rOptions.port}, 代理请求超时`)) proxyReq.end() proxyReq.destroy() - res.writeHead(408) - res.write('DevSidecar Warning:\n\n 请求超时') - res.end() + const error = new Error(`${rOptions.host}:${rOptions.port}, 代理请求超时`) + error.status = 408 + reject(error) }) proxyReq.on('error', (e) => { @@ -198,7 +197,8 @@ module.exports = function createRequestHandler (requestInterceptor, responseInte }, (e) => { if (!res.finished) { - res.writeHead(500) + const status = e.status || 500 + res.writeHead(status) res.write(`DevSidecar Warning:\n\n ${e.toString()}`) res.end() log.error('request error', e.message) diff --git a/packages/mitmproxy/src/lib/proxy/mitmproxy/index.js b/packages/mitmproxy/src/lib/proxy/mitmproxy/index.js index e7fd38ee..72125efe 100644 --- a/packages/mitmproxy/src/lib/proxy/mitmproxy/index.js +++ b/packages/mitmproxy/src/lib/proxy/mitmproxy/index.js @@ -65,7 +65,7 @@ module.exports = { }) server.on('request', (req, res) => { const ssl = false - // log.info('request,', req.url, req.port, req.host) + // log.info('request,', req.hostname) requestHandler(req, res, ssl) }) // tunneling for https @@ -78,6 +78,10 @@ module.exports = { const ssl = false upgradeHandler(req, socket, head, ssl) }) + server.on('clientError', (err, socket) => { + log.error('client error', err) + socket.end('HTTP/1.1 400 Bad Request\r\n\r\n') + }) if (callback) { callback(server) From 922c8d667be084baac8a7a5a89dd372d61514a07 Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Mon, 16 Nov 2020 00:19:56 +0800 Subject: [PATCH 11/51] =?UTF-8?q?feat:=20response=E6=8B=A6=E6=88=AA?= =?UTF-8?q?=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 3 +- packages/core/src/config/index.js | 13 +- .../src/lib/interceptor/impl/abort.js | 3 +- .../src/lib/interceptor/impl/proxy.js | 4 +- .../src/lib/interceptor/impl/redirect.js | 4 +- .../src/lib/interceptor/impl/script.js | 23 ++ .../mitmproxy/src/lib/interceptor/index.js | 3 +- packages/mitmproxy/src/lib/monkey/grants.js | 8 + packages/mitmproxy/src/lib/monkey/index.js | 67 ++++ .../src/lib/monkey/scripts/github.script | 287 ++++++++++++++++++ .../lib/proxy/middleware/FilterMiddleware.js | 0 .../lib/proxy/middleware/HtmlMiddleware.js | 66 ++-- .../proxy/middleware/MapLocalMiddleware.js | 0 .../proxy/middleware/MapRemoteMiddleware.js | 0 .../proxy/mitmproxy/createRequestHandler.js | 69 +++-- .../src/lib/proxy/mitmproxy/index.js | 6 +- packages/mitmproxy/src/options.js | 36 +-- .../mitmproxy/test/lib/monkey/indexTest.js | 3 + 18 files changed, 498 insertions(+), 97 deletions(-) create mode 100644 packages/mitmproxy/src/lib/interceptor/impl/script.js create mode 100644 packages/mitmproxy/src/lib/monkey/grants.js create mode 100644 packages/mitmproxy/src/lib/monkey/index.js create mode 100644 packages/mitmproxy/src/lib/monkey/scripts/github.script delete mode 100644 packages/mitmproxy/src/lib/proxy/middleware/FilterMiddleware.js delete mode 100644 packages/mitmproxy/src/lib/proxy/middleware/MapLocalMiddleware.js delete mode 100644 packages/mitmproxy/src/lib/proxy/middleware/MapRemoteMiddleware.js create mode 100644 packages/mitmproxy/test/lib/monkey/indexTest.js diff --git a/README.md b/README.md index 42a67ac6..d239c839 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,8 @@ ### 2、 dns优选 根据网络状况智能解析域名ip地址,获取最佳网络速度 比如: -1. 解决git push 偶尔失败需要输入账号密码的问题(fatal: TaskCanceledException encountered) +1. 解决git push 偶尔失败需要输入账号密码的问题( +fatal: TaskCanceledException encountered / fatal: HttpRequestException encountered) 2. 解决github头像加载不出来的问题 3. 解决gist.github.com访问不到的问题 diff --git a/packages/core/src/config/index.js b/packages/core/src/config/index.js index 2475110c..caa224e5 100644 --- a/packages/core/src/config/index.js +++ b/packages/core/src/config/index.js @@ -19,6 +19,9 @@ module.exports = { }, '/.*/.*/blame/': { redirect: 'hub.fastgit.org' + }, + '/.*/[^\\/]*$': { + script: 'console.log("123123132")' } }, 'raw.githubusercontent.com': { @@ -101,12 +104,12 @@ module.exports = { } }, mapping: { - 'img.shields.io': 'aliyun', - '*.github.com': 'aliyun', - '*.githubusercontent.com': 'aliyun', - '*.githubassets.com': 'aliyun', + 'img.shields.io': 'usa', + '*.github.com': 'usa', + '*.githubusercontent.com': 'usa', + '*.githubassets.com': 'usa', // "解决push的时候需要输入密码的问题", - 'github.com': 'aliyun' + 'github.com': 'usa' } } }, diff --git a/packages/mitmproxy/src/lib/interceptor/impl/abort.js b/packages/mitmproxy/src/lib/interceptor/impl/abort.js index 2b0ade3e..65c45856 100644 --- a/packages/mitmproxy/src/lib/interceptor/impl/abort.js +++ b/packages/mitmproxy/src/lib/interceptor/impl/abort.js @@ -2,11 +2,12 @@ module.exports = function createIntercept (context) { const { log } = context return { - requestInterceptor (interceptOpt, rOptions, req, res, ssl) { + requestIntercept (interceptOpt, rOptions, req, res, ssl) { log.info('abort:', rOptions.hostname, req.url) res.writeHead(403) res.write('DevSidecar 403: \n\n request abort, this request is matched by abort intercept.\n\n 因配置abort拦截器,本请求将取消') res.end() + return true// 是否结束 }, is (interceptOpt) { return !!interceptOpt.abort diff --git a/packages/mitmproxy/src/lib/interceptor/impl/proxy.js b/packages/mitmproxy/src/lib/interceptor/impl/proxy.js index 44e270fe..02f0931d 100644 --- a/packages/mitmproxy/src/lib/interceptor/impl/proxy.js +++ b/packages/mitmproxy/src/lib/interceptor/impl/proxy.js @@ -2,13 +2,13 @@ const url = require('url') module.exports = function createInterceptor (context) { const { log } = context return { - requestInterceptor (interceptOpt, rOptions, req, res, ssl, next) { + requestIntercept (interceptOpt, rOptions, req, res, ssl, next) { let proxyTarget = interceptOpt.proxy + req.url if (interceptOpt.replace) { const regexp = new RegExp(interceptOpt.replace) proxyTarget = req.url.replace(regexp, interceptOpt.proxy) } - console.log('proxy', rOptions.path, rOptions.url) + log.info('proxy', rOptions.path, rOptions.url) // const backup = interceptOpt.backup const proxy = proxyTarget.indexOf('http') === 0 ? proxyTarget : rOptions.protocol + '//' + proxyTarget // eslint-disable-next-line node/no-deprecated-api diff --git a/packages/mitmproxy/src/lib/interceptor/impl/redirect.js b/packages/mitmproxy/src/lib/interceptor/impl/redirect.js index 07d7af84..b38aa675 100644 --- a/packages/mitmproxy/src/lib/interceptor/impl/redirect.js +++ b/packages/mitmproxy/src/lib/interceptor/impl/redirect.js @@ -1,7 +1,7 @@ module.exports = function createInterceptor (context) { const { log } = context return { - requestInterceptor (interceptOpt, rOptions, req, res, ssl) { + requestIntercept (interceptOpt, rOptions, req, res, ssl) { const url = req.url let redirect if (typeof interceptOpt.redirect === 'string') { @@ -12,7 +12,7 @@ module.exports = function createInterceptor (context) { log.info('请求重定向:', rOptions.hostname, url, redirect) res.writeHead(302, { Location: redirect }) res.end() - return true + return true// 是否结束 }, is (interceptOpt) { return interceptOpt.redirect // 如果配置中有redirect,那么这个配置是需要redirect拦截的 diff --git a/packages/mitmproxy/src/lib/interceptor/impl/script.js b/packages/mitmproxy/src/lib/interceptor/impl/script.js new file mode 100644 index 00000000..83f094c1 --- /dev/null +++ b/packages/mitmproxy/src/lib/interceptor/impl/script.js @@ -0,0 +1,23 @@ +module.exports = function createInterceptor (context) { + const { log } = context + return { + responseIntercept (interceptOpt, rOptions, req, res, proxyReq, proxyRes, ssl) { + const script = ` + + ` + log.info('responseIntercept: body script', rOptions.hostname, rOptions.path) + return { + body: script + } + }, + is (interceptOpt) { + return interceptOpt.script + } + } +} diff --git a/packages/mitmproxy/src/lib/interceptor/index.js b/packages/mitmproxy/src/lib/interceptor/index.js index f072b075..72625ad9 100644 --- a/packages/mitmproxy/src/lib/interceptor/index.js +++ b/packages/mitmproxy/src/lib/interceptor/index.js @@ -1,8 +1,9 @@ const proxy = require('./impl/proxy') const redirect = require('./impl/redirect') const abort = require('./impl/abort') +const script = require('./impl/script') const log = require('../../utils/util.log') const context = { log } -const modules = [proxy(context), redirect(context), abort(context)] +const modules = [proxy(context), redirect(context), abort(context), script(context)] module.exports = modules diff --git a/packages/mitmproxy/src/lib/monkey/grants.js b/packages/mitmproxy/src/lib/monkey/grants.js new file mode 100644 index 00000000..2678a759 --- /dev/null +++ b/packages/mitmproxy/src/lib/monkey/grants.js @@ -0,0 +1,8 @@ +const Monkey_Grants = { + GM_registerMenuCommand: () => {}, + GM_unregisterMenuCommand: () => {}, + GM_openInTab: () => {}, + GM_getValue: () => {}, + GM_setValue: () => {}, + GM_notification: () => {} +} diff --git a/packages/mitmproxy/src/lib/monkey/index.js b/packages/mitmproxy/src/lib/monkey/index.js new file mode 100644 index 00000000..50a062e3 --- /dev/null +++ b/packages/mitmproxy/src/lib/monkey/index.js @@ -0,0 +1,67 @@ +const fs = require('fs') +const path = require('path') +let scripts = [] + +function buildScript (sc, content) { + const grant = sc.grant + const pre = '(function () { \r\n' + let grantSc = '' + for (const item of grant) { + grantSc += 'const ' + item + ' = Monkey_Grants[\'' + item + '\']\r\n' + } + const tail = content + '\r\n' + + '})()' + return pre + grantSc + tail +} + +function loadScript (content) { + // @grant GM_registerMenuCommand + // @grant GM_unregisterMenuCommand + // @grant GM_openInTab + // @grant GM_getValue + // @grant GM_setValue + // @grant GM_notification + const annoFlag = '// ==/UserScript==' + const arr = content.split(annoFlag) + const start = 0 + + console.log('arr', arr.length) + const confStr = arr[start] + const confItemArr = confStr.split('\n') + const sc = { + grant: [], + match: [], + content: '' + } + for (const string of confItemArr) { + const reg = new RegExp('.*@([^\\s]+)\\s(.+)') + const ret = string.match(reg) + if (ret) { + const key = ret[1].trim() + const value = ret[2].trim() + if (key === 'grant') { + sc.grant.push(value) + } else if (key === 'match') { + sc.match.push(value) + } else { + sc[key] = value + } + } + } + const script = arr[start + 1].trim() + + sc.script = buildScript(sc, script) + return sc +} + +module.exports = { + get () { + return scripts + }, + load () { + const github = loadScript(fs.readFileSync(path.join(__dirname, './scripts/github.script')).toString()) + scripts = [] + scripts.push(github) + return scripts + } +} diff --git a/packages/mitmproxy/src/lib/monkey/scripts/github.script b/packages/mitmproxy/src/lib/monkey/scripts/github.script new file mode 100644 index 00000000..cd80e23f --- /dev/null +++ b/packages/mitmproxy/src/lib/monkey/scripts/github.script @@ -0,0 +1,287 @@ +// ==UserScript== +// @name Github 增强 - 高速下载 +// @version 1.2.4 +// @author X.I.U +// @description 高速下载 Clone、Release、Raw、Code(ZIP) 等文件、项目列表单文件快捷下载 (☁) +// @match https://github.com/*/* +// @match https://github.com/*/*/releases +// @match https://github.com/*/*/releases/* +// @icon https://github.githubassets.com/favicon.ico +// @require https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js +// @grant GM_registerMenuCommand +// @grant GM_unregisterMenuCommand +// @grant GM_openInTab +// @grant GM_getValue +// @grant GM_setValue +// @grant GM_notification +// @license GPL-3.0 License +// @run-at document-end +// @namespace https://greasyfork.org/scripts/412245 +// ==/UserScript== + +(function () { + var download_url = [ + 'https://gh.con.sh', + 'https://gh.api.99988866.xyz', + 'https://download.fastgit.org', + 'https://pd.zwc365.com/seturl', + 'https://g.ioiox.com', + 'https://git.yumenaka.net' + ] + var download_url_name = ['美国', '美国', '日本东京', '中国香港', '中国香港', '美国洛杉矶'] + var clone_url = [ + 'https://hub.fastgit.org', + 'https://gitclone.com', + 'https://github.com.cnpmjs.org' + ] + var raw_url = [ + 'https://raw.githubusercontent.com', + 'https://cdn.jsdelivr.net', + 'https://raw.fastgit.org' + ] + var raw_url_name = ['Github 原生', '中国国内', '中国香港', '美国洛杉矶'] + var raw_url_tip = [ + '', + '注意:该加速源存在缓存机制(24小时),所以文件可能不是最新。 注意:当前分支所有文件总文件大小超过 50MB 时,该加速源不可用。 注意:当前分支名为版本号格式时(如 v1.2.3),该高速下载链接因格式限制不可用。 ', + '注意:单个文件太大时可能会提示超时(实时获取中),请重试。 ', + '注意:经过测试,该加速源存在文件格式限制,如果无法下载说明不支持该文件格式。 ' + ] + var svg = [ + '', + '', + '' + ] + var style = ['padding:0 6px;margin-right: -1px;border-radius: 2px;background-color: #ffffff;border-color: rgba(27, 31, 35, 0.1);font-size: 11px;color: #888888;'] + + var menu_raw_fast = GM_getValue('xiu2_menu_raw_fast') + var menu_menu_raw_fast_ID; var menu_feedBack_ID + if (menu_raw_fast == null || menu_raw_fast == '中国国内') { menu_raw_fast = 1; GM_setValue('xiu2_menu_raw_fast', 1) }; // 调整上个版本的设置存储变量内容 + + registerMenuCommand() + // 注册脚本菜单 + function registerMenuCommand () { + if (menu_feedBack_ID) { // 如果反馈菜单ID不是 null,则删除所有脚本菜单 + GM_unregisterMenuCommand(menu_menu_raw_fast_ID) + GM_unregisterMenuCommand(menu_feedBack_ID) + menu_raw_fast = GM_getValue('xiu2_menu_raw_fast') + } + menu_menu_raw_fast_ID = GM_registerMenuCommand(`🔄 [ ${raw_url_name[menu_raw_fast]} ] 加速源 (☁) - 点击切换`, menu_toggle_raw_fast) + menu_feedBack_ID = GM_registerMenuCommand('💬 反馈 & 建议 [Github]', function () { window.GM_openInTab('https://github.com/XIU2/UserScript', { active: true, insert: true, setParent: true }) }) + } + + // 切换加速源 + function menu_toggle_raw_fast () { + if (menu_raw_fast >= raw_url_name.length - 1) { // 如果当前加速源位置大于等于加速源总数,则改为第一个加速源,反之递增下一个加速源 + menu_raw_fast = 0 + } else { + menu_raw_fast += 1 + } + GM_setValue('xiu2_menu_raw_fast', menu_raw_fast) + console.log(11111) + delDownLink() // 删除旧加速源 + console.log(22222) + addDownLink() // 添加新加速源 + console.log(33333) + GM_notification(`已切换加速源为:${raw_url_name[menu_raw_fast]}`) // 提示消息 + registerMenuCommand() // 重新注册脚本菜单 + }; + + addRelease() // Release 加速 + addDownloadZIP() // Source Code 加速 + addGitClone() // Download ZIP/Code(ZIP) 加速 + addRawFile() // Raw 加速 + setTimeout(addDownLink, 2000) // 添加 Raw 下载链接(☁),延迟 2 秒执行,避免被 pjax 刷掉 + + document.addEventListener('pjax:success', function () { // pjax 事件发生后 + addRelease() // Release 加速 + addDownloadZIP() // Source Code 加速 + addGitClone() // Download ZIP/Code(ZIP) 加速 + addRawFile() // 添加 Raw 加速按钮 + setTimeout(addDownLink, 2000) // 添加 Raw 下载链接(☁),延迟 2 秒执行,避免被 pjax 刷掉 + }) + + // Release + function addRelease () { + $('.Box.Box--condensed').each(function () { + $(this).find('.d-flex.Box-body>a').each(function () { + var href = $(this).attr('href') + var url = [ + download_url[0] + '/https://github.com' + href, + download_url[1] + '/https://github.com' + href, + download_url[2] + href, + download_url[3] + '/https://github.com' + href, + download_url[4] + '/https://github.com' + href, + download_url[5] + '/https://github.com' + href + ] + var html = `` + $(this).next().after(html) + }) + // 修改[文件大小]元素样式 + document.querySelectorAll('small.pl-2.text-gray.flex-shrink-0').forEach(el => el.style.cssText = 'display: flex; justify-content: flex-end; flex-grow: 1; margin-right: 8px;') + + // Source Code + $(this).find('.d-block.Box-body>a').each(function () { + var href = $(this).attr('href') + var url = [ + download_url[0] + '/https://github.com' + href, + download_url[1] + '/https://github.com' + href, + download_url[2] + href, + download_url[3] + '/https://github.com' + href, + download_url[4] + '/https://github.com' + href, + download_url[5] + '/https://github.com' + href + ] + var html = `` + $(this).after(html) + }) + }) + // 修改 Source code 样式,使其和加速按钮并列一排 + document.querySelectorAll('div.d-block.py-1.py-md-2.Box-body.px-2').forEach(el => el.className = 'd-flex py-1 py-md-2 Box-body px-2') + } + + // Download ZIP + function addDownloadZIP () { + $('.dropdown-menu.dropdown-menu-sw.p-0 ul li:last-child').each(function () { + var href = $(this).children('a').attr('href') + var url = [ + download_url[0] + '/https://github.com' + href, + download_url[1] + '/https://github.com' + href, + download_url[2] + href, + download_url[3] + '/https://github.com' + href, + download_url[4] + '/https://github.com' + href, + download_url[5] + '/https://github.com' + href + ] + var html = ` +
  • ${svg[0]}Download ZIP ${download_url_name[0]}
  • +
  • ${svg[0]}Download ZIP ${download_url_name[1]}
  • +
  • ${svg[0]}Download ZIP ${download_url_name[2]}
  • +
  • ${svg[0]}Download ZIP ${download_url_name[3]}
  • +
  • ${svg[0]}Download ZIP ${download_url_name[4]}
  • +
  • ${svg[0]}Download ZIP ${download_url_name[5]}
  • +` + $(this).after(html) + }) + } + + // Git Clone + function addGitClone () { + $("[role='tabpanel'] div.input-group").first().each(function () { + var href_split = location.href.split('/') + var url = [ + clone_url[0] + '/' + href_split[3] + '/' + href_split[4] + '.git', + clone_url[1] + '/github.com/' + href_split[3] + '/' + href_split[4] + '.git', + clone_url[2] + '/' + href_split[3] + '/' + href_split[4] + '.git' + ] + var html = ` +
    ${svg[1]}
    +
    ${svg[1]}
    +
    ${svg[1]}
    +` + $(this).after(html) + }) + } + + // Raw + function addRawFile () { + $('#raw-url').each(function () { + var href = location.href.replace('https://github.com', '') + var href2 = href.replace('/blob/', '/') + var url = [ + raw_url[1] + '/gh' + href.replace('/blob/', '@'), + raw_url[2] + href2, + download_url[5] + '/' + raw_url[0] + href2 + ] + var html = ` +${raw_url_name[1]} +${raw_url_name[2]} +${raw_url_name[3]} +` + $(this).after(html) + }) + } + + // 添加 Raw 下载链接(☁) + function addDownLink () { + // 如果不是项目文件页面,就返回 + var files = $('div.Box-row svg.octicon.octicon-file') + if (files.length === 0) return + var files1 = $('a.fileDownLink') + if (files1.length > 0) return + + // 鼠标指向则显示 + var mouseOverHandler = function (evt) { + var elem = evt.currentTarget + var aElm_new = elem.querySelectorAll('.fileDownLink') + var aElm_now = elem.querySelectorAll('svg.octicon.octicon-file.text-gray-light') + aElm_new.forEach(el => el.style.cssText = 'display: inline') + aElm_now.forEach(el => el.style.cssText = 'display: none') + } + + // 鼠标离开则隐藏 + var mouseOutHandler = function (evt) { + var elem = evt.currentTarget + var aElm_new = elem.querySelectorAll('.fileDownLink') + var aElm_now = elem.querySelectorAll('svg.octicon.octicon-file.text-gray-light') + aElm_new.forEach(el => el.style.cssText = 'display: none') + aElm_now.forEach(el => el.style.cssText = 'display: inline') + } + + // 循环添加 + files.each(function (i, fileElm) { + var trElm = fileElm.parentNode.parentNode + var cntElm_a = trElm.querySelector('.css-truncate.css-truncate-target.d-block.width-fit a') + var cntElm_svg = trElm.querySelector('.mr-3.flex-shrink-0 svg.octicon.octicon-file.text-gray-light') + var Name = cntElm_a.innerText + var href = cntElm_a.attributes.href.nodeValue.replace('https://github.com', '') + var href2 = href.replace('/blob/', '/'); var url; var url_name; var url_tip = '' + switch (menu_raw_fast) { + case 0: + url = raw_url[0] + href2 + url_name = raw_url_name[0] + url_tip = raw_url_tip[0] + break + case 1: + url = raw_url[1] + '/gh' + href.replace('/blob/', '@') + url_name = raw_url_name[1] + url_tip = raw_url_tip[1] + break + case 2: + url = raw_url[2] + href2 + url_name = raw_url_name[2] + url_tip = raw_url_tip[2] + break + case 3: + url = download_url[5] + '/' + raw_url[0] + href2 + url_name = download_url_name[5] + url_tip = raw_url_tip[3] + break + } + var html = ` ` + $(cntElm_svg).after(html) + // 绑定鼠标事件 + trElm.onmouseover = mouseOverHandler + trElm.onmouseout = mouseOutHandler + }) + } + + // 删除 Raw 快捷下载(☁) + function delDownLink () { + var aElm = document.querySelectorAll('.fileDownLink') + for (var num = 0; num < aElm.length; num++) { + aElm[num].remove() + }; + } +})() diff --git a/packages/mitmproxy/src/lib/proxy/middleware/FilterMiddleware.js b/packages/mitmproxy/src/lib/proxy/middleware/FilterMiddleware.js deleted file mode 100644 index e69de29b..00000000 diff --git a/packages/mitmproxy/src/lib/proxy/middleware/HtmlMiddleware.js b/packages/mitmproxy/src/lib/proxy/middleware/HtmlMiddleware.js index 9ef8ae9e..785f4ac0 100644 --- a/packages/mitmproxy/src/lib/proxy/middleware/HtmlMiddleware.js +++ b/packages/mitmproxy/src/lib/proxy/middleware/HtmlMiddleware.js @@ -3,56 +3,46 @@ const zlib = require('zlib') // eslint-disable-next-line no-unused-vars const url = require('url') -const httpUtil = {} +var httpUtil = {} httpUtil.isGzip = function (res) { - const contentEncoding = res.headers['content-encoding'] + var contentEncoding = res.headers['content-encoding'] return !!(contentEncoding && contentEncoding.toLowerCase() === 'gzip') } httpUtil.isHtml = function (res) { - const contentType = res.headers['content-type'] + var contentType = res.headers['content-type'] return (typeof contentType !== 'undefined') && /text\/html|application\/xhtml\+xml/.test(contentType) } -// eslint-disable-next-line no-unused-vars -function injectContentIntoHtmlHead (html, content) { +function injectScriptIntoHeadHtml (html, script) { html = html.replace(/(<\/head>)/i, function (match) { - return content + match - }) - return html -} -function injectScriptIntoHtmlHead (html, content) { - return html -} -function injectContentIntoHtmlBody (html, content) { - html = html.replace(/(<\/body>)/i, function (match) { - return content + match + return script + match }) return html } -function chunkReplace (_this, chunk, enc, callback, headContent, bodyContent) { +function injectScriptIntoBodyHtml (html, script) { + html = html.replace(/(<\/body>)/i, function (match) { + return script + match + }) + return html +} + +function chunkReplace (_this, chunk, enc, callback, append) { let chunkString = chunk.toString() - if (headContent) { - chunkString = injectScriptIntoHtmlHead(chunkString, headContent) + if (append && append.head) { + chunkString = injectScriptIntoHeadHtml(chunkString, append.head) } - if (bodyContent) { - chunkString = injectContentIntoHtmlBody(chunkString, bodyContent) + if (append && append.body) { + chunkString = injectScriptIntoBodyHtml(chunkString, append.body) } - _this.push(Buffer.alloc(chunkString)) + // eslint-disable-next-line node/no-deprecated-api + _this.push(new Buffer(chunkString)) callback() } -module.exports = class InjectHtmlPlugin { - constructor ({ - head, - body - }) { - this.head = head - this.body = body - } - - responseInterceptor (req, res, proxyReq, proxyRes, ssl, next) { - if (!this.head && !this.body) { +module.exports = { + responseInterceptor (req, res, proxyReq, proxyRes, ssl, next, append) { + if (!append.head && !append.body) { next() return } @@ -66,10 +56,10 @@ module.exports = class InjectHtmlPlugin { } else { Object.keys(proxyRes.headers).forEach(function (key) { if (proxyRes.headers[key] !== undefined) { - let newkey = key.replace(/^[a-z]|-[a-z]/g, (match) => { - return match.toUpperCase() - }) - newkey = key + // let newkey = key.replace(/^[a-z]|-[a-z]/g, (match) => { + // return match.toUpperCase() + // }) + const newkey = key if (isHtml && key === 'content-length') { // do nothing } else { @@ -85,11 +75,11 @@ module.exports = class InjectHtmlPlugin { if (isGzip) { proxyRes.pipe(new zlib.Gunzip()) .pipe(through(function (chunk, enc, callback) { - chunkReplace(this, chunk, enc, callback, this.head, this.body) + chunkReplace(this, chunk, enc, callback, append) })).pipe(new zlib.Gzip()).pipe(res) } else { proxyRes.pipe(through(function (chunk, enc, callback) { - chunkReplace(this, chunk, enc, callback, this.head, this.body) + chunkReplace(this, chunk, enc, callback, append) })).pipe(res) } } diff --git a/packages/mitmproxy/src/lib/proxy/middleware/MapLocalMiddleware.js b/packages/mitmproxy/src/lib/proxy/middleware/MapLocalMiddleware.js deleted file mode 100644 index e69de29b..00000000 diff --git a/packages/mitmproxy/src/lib/proxy/middleware/MapRemoteMiddleware.js b/packages/mitmproxy/src/lib/proxy/middleware/MapRemoteMiddleware.js deleted file mode 100644 index e69de29b..00000000 diff --git a/packages/mitmproxy/src/lib/proxy/mitmproxy/createRequestHandler.js b/packages/mitmproxy/src/lib/proxy/mitmproxy/createRequestHandler.js index b1a25262..11f10601 100644 --- a/packages/mitmproxy/src/lib/proxy/mitmproxy/createRequestHandler.js +++ b/packages/mitmproxy/src/lib/proxy/mitmproxy/createRequestHandler.js @@ -4,8 +4,9 @@ const commonUtil = require('../common/util') // const upgradeHeader = /(^|,)\s*upgrade\s*($|,)/i const DnsUtil = require('../../dns/index') const log = require('../../../utils/util.log') +const HtmlMiddleware = require('../middleware/HtmlMiddleware') // create requestHandler function -module.exports = function createRequestHandler (requestInterceptor, responseInterceptor, middlewares, externalProxy, dnsConfig) { +module.exports = function createRequestHandler (createIntercepts, externalProxy, dnsConfig) { // return return function requestHandler (req, res, ssl) { let proxyReq @@ -18,7 +19,12 @@ module.exports = function createRequestHandler (requestInterceptor, responseInte } else { req.socket.setKeepAlive(true, 30000) } - const context = {} + let interceptors = createIntercepts(rOptions) + if (interceptors == null) { + interceptors = [] + } + const reqIncpts = interceptors.filter(item => { return item.requestIntercept != null }) + const resIncpts = interceptors.filter(item => { return item.responseIntercept != null }) const requestInterceptorPromise = () => { return new Promise((resolve, reject) => { @@ -26,10 +32,17 @@ module.exports = function createRequestHandler (requestInterceptor, responseInte resolve() } try { - if (typeof requestInterceptor === 'function') { - requestInterceptor(rOptions, req, res, ssl, next, context) + if (reqIncpts && reqIncpts.length > 0) { + for (const reqIncpt of reqIncpts) { + const writableEnded = reqIncpt.requestIntercept(req, res, ssl) + if (writableEnded) { + next() + return + } + } + next() } else { - resolve() + next() } } catch (e) { reject(e) @@ -39,15 +52,6 @@ module.exports = function createRequestHandler (requestInterceptor, responseInte const proxyRequestPromise = async () => { rOptions.host = rOptions.hostname || rOptions.host || 'localhost' - // if (dnsConfig) { - // const dns = DnsUtil.hasDnsLookup(dnsConfig, rOptions.host) - // if (dns) { - // const ip = await dns.lookup(rOptions.host) - // log.info('使用自定义dns:', rOptions.host, ip, dns.dnsServer) - // rOptions.host = ip - // } - // } - return new Promise((resolve, reject) => { // use the binded socket for NTLM if (rOptions.agent && rOptions.customSocketId != null && rOptions.agent.getName) { @@ -116,7 +120,7 @@ module.exports = function createRequestHandler (requestInterceptor, responseInte proxyReq.on('aborted', () => { log.error('代理请求被取消', rOptions.hostname, rOptions.path) - if (res.finished) { + if (res.writableEnded) { return } reject(new Error('代理请求被取消')) @@ -125,7 +129,7 @@ module.exports = function createRequestHandler (requestInterceptor, responseInte req.on('aborted', function () { log.error('请求被取消', rOptions.hostname, rOptions.path) proxyReq.abort() - if (res.finished) { + if (res.writableEnded) { return } reject(new Error('请求被取消')) @@ -147,21 +151,39 @@ module.exports = function createRequestHandler (requestInterceptor, responseInte (async () => { await requestInterceptorPromise() - if (res.finished) { + if (res.writableEnded) { return false } const proxyRes = await proxyRequestPromise() + // proxyRes.on('data', (chunk) => { + // // console.log('BODY: ') + // }) + proxyRes.on('error', (error) => { + log.error('proxy res error', error) + }) + const responseInterceptorPromise = new Promise((resolve, reject) => { const next = () => { resolve() } try { - if (typeof responseInterceptor === 'function') { - responseInterceptor(req, res, proxyReq, proxyRes, ssl, next, context) + if (resIncpts && resIncpts.length > 0) { + let head = '' + let body = '' + for (const resIncpt of resIncpts) { + const append = resIncpt.responseIntercept(req, res, proxyReq, proxyRes, ssl) + if (append && append.head) { + head += append.head + } + if (append && append.body) { + body += append.body + } + } + HtmlMiddleware.responseInterceptor(req, res, proxyReq, proxyRes, ssl, next, { head, body }) } else { - resolve() + next() } } catch (e) { reject(e) @@ -170,10 +192,6 @@ module.exports = function createRequestHandler (requestInterceptor, responseInte await responseInterceptorPromise - if (res.finished) { - return false - } - if (!res.headersSent) { // prevent duplicate set headers Object.keys(proxyRes.headers).forEach(function (key) { if (proxyRes.headers[key] !== undefined) { @@ -194,9 +212,10 @@ module.exports = function createRequestHandler (requestInterceptor, responseInte })().then( (flag) => { // do nothing + // console.log('res', flag) }, (e) => { - if (!res.finished) { + if (!res.writableEnded) { const status = e.status || 500 res.writeHead(status) res.write(`DevSidecar Warning:\n\n ${e.toString()}`) diff --git a/packages/mitmproxy/src/lib/proxy/mitmproxy/index.js b/packages/mitmproxy/src/lib/proxy/mitmproxy/index.js index 72125efe..5a9061d2 100644 --- a/packages/mitmproxy/src/lib/proxy/mitmproxy/index.js +++ b/packages/mitmproxy/src/lib/proxy/mitmproxy/index.js @@ -12,8 +12,7 @@ module.exports = { caCertPath, caKeyPath, sslConnectInterceptor, - requestInterceptor, - responseInterceptor, + createIntercepts, getCertSocketTimeout = 1 * 1000, middlewares = [], externalProxy, @@ -34,8 +33,7 @@ module.exports = { port = ~~port const requestHandler = createRequestHandler( - requestInterceptor, - responseInterceptor, + createIntercepts, middlewares, externalProxy, dnsConfig diff --git a/packages/mitmproxy/src/options.js b/packages/mitmproxy/src/options.js index b044879b..53850416 100644 --- a/packages/mitmproxy/src/options.js +++ b/packages/mitmproxy/src/options.js @@ -63,41 +63,41 @@ module.exports = (config) => { } return !!matchHostname(intercepts, hostname) // 配置了拦截的域名,将会被代理 }, - requestInterceptor: (rOptions, req, res, ssl, next, context) => { + createIntercepts: (rOptions) => { const hostname = rOptions.hostname const interceptOpts = matchHostname(intercepts, hostname) if (!interceptOpts) { // 该域名没有配置拦截器,直接过 - next() return } + const matchIntercepts = [] for (const regexp in interceptOpts) { // 遍历拦截配置 const interceptOpt = interceptOpts[regexp] if (regexp !== true) { - if (!isMatched(req.url, regexp)) { + if (!isMatched(rOptions.path, regexp)) { continue } } - for (const interceptImpl of interceptors) { + for (const impl of interceptors) { // 根据拦截配置挑选合适的拦截器来处理 - if (!interceptImpl.is(interceptOpt) && interceptImpl.requestInterceptor) { - continue - } - try { - const result = interceptImpl.requestInterceptor(interceptOpt, rOptions, req, res, ssl, context) - if (result) { // 拦截成功,其他拦截器就不处理了 - return + if (impl.is(interceptOpt)) { + const interceptor = {} + if (impl.requestIntercept) { + // req拦截器 + interceptor.requestIntercept = (req, res, ssl) => { + impl.requestIntercept(interceptOpt, rOptions, req, res, ssl) + } + } else if (impl.responseIntercept) { + // res拦截器 + interceptor.responseIntercept = (req, res, proxyReq, proxyRes, ssl) => { + impl.responseIntercept(interceptOpt, rOptions, req, res, proxyReq, proxyRes, ssl) + } } - } catch (err) { - // 拦截失败 - log.error('拦截器执行错误', err) + matchIntercepts.push(interceptor) } } } - next() - }, - responseInterceptor: (req, res, proxyReq, proxyRes, ssl, next, context) => { - next() + return matchIntercepts } } } diff --git a/packages/mitmproxy/test/lib/monkey/indexTest.js b/packages/mitmproxy/test/lib/monkey/indexTest.js new file mode 100644 index 00000000..a6c1cdc3 --- /dev/null +++ b/packages/mitmproxy/test/lib/monkey/indexTest.js @@ -0,0 +1,3 @@ +const monkey = require('../../../src/lib/monkey/index') +const scripts = monkey.load() +console.log(scripts[0]) From 1dac12e2e249ad2ef3afc0c9a65882e6915b216d Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Mon, 16 Nov 2020 14:28:43 +0800 Subject: [PATCH 12/51] =?UTF-8?q?docs:=20github=E5=8A=A0=E9=80=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/core/src/config/index.js | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/packages/core/src/config/index.js b/packages/core/src/config/index.js index 3ddb6f9a..9ba724b9 100644 --- a/packages/core/src/config/index.js +++ b/packages/core/src/config/index.js @@ -18,12 +18,18 @@ module.exports = { }, '/.*/.*/blame/': { redirect: 'hub.fastgit.org' + }, + '/.*': { + proxy: 'github.com', + backup: [ + 'github.docmirror.cn' + ] } }, 'raw.githubusercontent.com': { '.*': { proxy: 'raw.fastgit.org' } }, - 'github11.githubassets.com': { + 'github.githubassets.com': { '.*': { proxy: 'assets.fastgit.org', test: 'https://github.githubassets.com/favicons/favicon.svg' } }, 'customer-stories-feed.github.com': { @@ -78,7 +84,13 @@ module.exports = { 'archive.cloudera.com': { '.*': { regexp: '/cdh5/.*', proxy: 'cloudera.proxy.ustclug.org' } }, 'downloads.lede-project.org': { '.*': { proxy: 'lede.proxy.ustclug.org' } }, 'downloads.openwrt.org': { '.*': { proxy: 'openwrt.proxy.ustclug.org' } }, - 'secure.gravatar.com': { '.*': { proxy: 'gravatar.proxy.ustclug.org' } } + 'secure.gravatar.com': { '.*': { proxy: 'gravatar.proxy.ustclug.org' } }, + '*.carbonads.com': { + '/carbon.*': { + abort: true, + desc: '广告拦截' + } + } }, whiteList: { 'alipay.com': true, @@ -100,12 +112,13 @@ module.exports = { } }, mapping: { - 'img.shields.io': 'aliyun', - '*.github.com': 'aliyun', - '*.githubusercontent.com': 'aliyun', - '*.githubassets.com': 'aliyun', + 'img.shields.io': 'usa', + '*.github.com': 'usa', + '*.githubusercontent.com': 'usa', + '*.githubassets.com': 'usa', // "解决push的时候需要输入密码的问题", - 'github.com': 'aliyun' + 'github.com': 'usa', + '*.vuepress.vuejs.org': 'usa' } } }, From e8c8bf4ca26df9ff3f8ad527b032c50f9acb16da Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Mon, 16 Nov 2020 18:47:34 +0800 Subject: [PATCH 13/51] =?UTF-8?q?docs:=20=E4=BC=98=E9=80=89=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mitmproxy/src/lib/choice/DnsCounter.js | 3 + .../src/lib/choice/RequestCounter.js | 3 + packages/mitmproxy/src/lib/choice/index.js | 107 ++++++++++++++++++ packages/mitmproxy/src/lib/dns/base.js | 67 ++--------- .../src/lib/interceptor/impl/abort.js | 25 ++-- .../src/lib/interceptor/impl/proxy.js | 75 +++++++----- .../src/lib/interceptor/impl/redirect.js | 34 +++--- .../src/lib/interceptor/impl/script.js | 22 ++-- .../mitmproxy/src/lib/interceptor/index.js | 4 +- .../proxy/mitmproxy/createRequestHandler.js | 69 +++++++---- packages/mitmproxy/src/options.js | 12 +- 11 files changed, 269 insertions(+), 152 deletions(-) create mode 100644 packages/mitmproxy/src/lib/choice/DnsCounter.js create mode 100644 packages/mitmproxy/src/lib/choice/RequestCounter.js create mode 100644 packages/mitmproxy/src/lib/choice/index.js diff --git a/packages/mitmproxy/src/lib/choice/DnsCounter.js b/packages/mitmproxy/src/lib/choice/DnsCounter.js new file mode 100644 index 00000000..d258ebc4 --- /dev/null +++ b/packages/mitmproxy/src/lib/choice/DnsCounter.js @@ -0,0 +1,3 @@ +const { ChoiceCache } = require('./index') + +module.exports = new ChoiceCache() diff --git a/packages/mitmproxy/src/lib/choice/RequestCounter.js b/packages/mitmproxy/src/lib/choice/RequestCounter.js new file mode 100644 index 00000000..d258ebc4 --- /dev/null +++ b/packages/mitmproxy/src/lib/choice/RequestCounter.js @@ -0,0 +1,3 @@ +const { ChoiceCache } = require('./index') + +module.exports = new ChoiceCache() diff --git a/packages/mitmproxy/src/lib/choice/index.js b/packages/mitmproxy/src/lib/choice/index.js new file mode 100644 index 00000000..32709405 --- /dev/null +++ b/packages/mitmproxy/src/lib/choice/index.js @@ -0,0 +1,107 @@ +const LRU = require('lru-cache') +const cacheSize = 1024 +class ChoiceCache { + constructor () { + this.cache = new LRU(cacheSize) + } + + get (key) { + return this.cache.get(key) + } + + getOrCreate (key, backups) { + let item = this.cache.get(key) + if (item == null) { + item = new DynamicChoice(key) + item.setBackupList(backups) + this.cache.set(key, item) + } + return item + } +} + +class DynamicChoice { + constructor (key) { + this.key = key + this.count = {} + this.createTime = new Date() + } + + /** + * 设置新的backup列表 + * @param backupList + */ + setBackupList (backupList) { + this.value = backupList.shift() + this.backup = backupList + for (const item of backupList) { + if (this.count[item]) { + continue + } + this.count[item] = { value: item, total: 0, error: 0, keepErrorCount: 0, successRate: 1 } + } + this.doCount(this.value, false) + } + + doRank () { + // 将count里面根据权重排序 + const list = [] + for (const key in this.count) { + list.put(this.count[key]) + } + list.sort(function (a, b) { return a.successRate - b.successRate }) + const backup = list.map(item => item.value) + this.setBackupList(backup) + } + + countStart (value) { + this.doCount(value, false) + } + + /** + * 换下一个 + * @param count + */ + changeNext (count) { + count.keepErrorCount = 0 // 清空连续失败 + if (this.backup > 0) { + this.value = this.backup.shift() + } else { + this.value = null + } + } + + /** + * 记录使用次数或错误次数 + * @param value + * @param isError + */ + doCount (value, isError) { + let count = this.count[value] + if (count == null) { + count = this.count[value] = { value: value, total: 0, error: 0, keepErrorCount: 0, successRate: 1 } + } + if (isError) { + count.error++ + count.keepErrorCount++ + } else { + count.total++ + } + count.successRate = 1 - (count.error / count.total) + if (isError && this.value === value) { + // 连续错误4次,切换下一个 + if (count.keepErrorCount >= 4) { + this.changeNext(count) + } + // 成功率小于50%,切换下一个 + if (count.successRate < 0.51) { + this.changeNext(count) + } + } + } +} + +module.exports = { + DynamicChoice, + ChoiceCache +} diff --git a/packages/mitmproxy/src/lib/dns/base.js b/packages/mitmproxy/src/lib/dns/base.js index 5b27ce64..1a3dc667 100644 --- a/packages/mitmproxy/src/lib/dns/base.js +++ b/packages/mitmproxy/src/lib/dns/base.js @@ -1,69 +1,26 @@ const LRU = require('lru-cache') // const { isIP } = require('validator') const log = require('../../utils/util.log') +const { DynamicChoice } = require('../choice/index') const cacheSize = 1024 // eslint-disable-next-line no-unused-vars // function _isIP (v) { // return v && isIP(v) // } -class IpCache { +class IpCache extends DynamicChoice { constructor (hostname) { - this.hostname = hostname - this.count = {} + super(hostname) this.lookupCount = 0 - this.createTime = new Date() } /** * 获取到新的ipList * @param ipList */ - setIpList (ipList) { - this.ip = ipList.shift() - this.ipList = ipList + setBackupList (ipList) { + super.setBackupList(ipList) this.lookupCount++ - this.doCount(this.ip, false) - } - - /** - * 换下一个ip - * @param count - */ - changeNext (count) { - count.keepErrorCount = 0 // 清空连续失败 - if (this.ipList > 0) { - this.ip = this.ipList.shift() - } else { - this.ip = null - } - } - - /** - * 记录使用次数或错误次数 - * @param ip - * @param isError - */ - doCount (ip, isError) { - let count = this.count[ip] - if (count == null) { - count = this.count[ip] = { total: 0, error: 0, keepErrorCount: 0, successRate: 0 } - } - if (isError) { - count.error++ - count.keepErrorCount++ - } else { - count.total++ - } - count.successRate = 1 - (count.error / count.total) - if (isError && this.ip === ip) { - if (count.keepErrorCount >= 5) { - this.changeNext(count) - } - if (count.successRate < 0.51) { - this.changeNext(count) - } - } } } @@ -83,9 +40,9 @@ module.exports = class BaseDNS { try { let ipCache = this.cache.get(hostname) if (ipCache) { - if (ipCache.ip != null) { - ipCache.doCount(ipCache.ip, false) - return ipCache.ip + if (ipCache.value != null) { + ipCache.doCount(ipCache.value, false) + return ipCache.value } } else { ipCache = new IpCache(hostname) @@ -100,13 +57,13 @@ module.exports = class BaseDNS { } ipList.push(hostname) // 把原域名加入到统计里去 - ipCache.setIpList(ipList) + ipCache.setBackupList(ipList) - log.info(`[DNS] ${hostname} -> ${ipCache.ip} (${new Date() - t} ms)`) + log.info(`[DNS] ${hostname} -> ${ipCache.value} (${new Date() - t} ms)`) - return ipCache.ip + return ipCache.value } catch (error) { - log.error(`[DNS] cannot resolve hostname ${hostname} (${error})`) + log.error(`[DNS] cannot resolve hostname ${hostname} (${error})`, error) return hostname } } diff --git a/packages/mitmproxy/src/lib/interceptor/impl/abort.js b/packages/mitmproxy/src/lib/interceptor/impl/abort.js index 65c45856..e15bac34 100644 --- a/packages/mitmproxy/src/lib/interceptor/impl/abort.js +++ b/packages/mitmproxy/src/lib/interceptor/impl/abort.js @@ -1,16 +1,13 @@ - -module.exports = function createIntercept (context) { - const { log } = context - return { - requestIntercept (interceptOpt, rOptions, req, res, ssl) { - log.info('abort:', rOptions.hostname, req.url) - res.writeHead(403) - res.write('DevSidecar 403: \n\n request abort, this request is matched by abort intercept.\n\n 因配置abort拦截器,本请求将取消') - res.end() - return true// 是否结束 - }, - is (interceptOpt) { - return !!interceptOpt.abort - } +module.exports = { + requestIntercept (context, interceptOpts, req, res, ssl, next) { + const { rOptions, log } = context + log.info('abort:', rOptions.hostname, req.url) + res.writeHead(403) + res.write('DevSidecar 403: \n\n request abort, this request is matched by abort intercept.\n\n 因配置abort拦截器,本请求将取消') + res.end() + return true// 是否结束 + }, + is (interceptOpt) { + return !!interceptOpt.abort } } diff --git a/packages/mitmproxy/src/lib/interceptor/impl/proxy.js b/packages/mitmproxy/src/lib/interceptor/impl/proxy.js index 02f0931d..3111fe63 100644 --- a/packages/mitmproxy/src/lib/interceptor/impl/proxy.js +++ b/packages/mitmproxy/src/lib/interceptor/impl/proxy.js @@ -1,31 +1,54 @@ const url = require('url') -module.exports = function createInterceptor (context) { - const { log } = context - return { - requestIntercept (interceptOpt, rOptions, req, res, ssl, next) { - let proxyTarget = interceptOpt.proxy + req.url - if (interceptOpt.replace) { - const regexp = new RegExp(interceptOpt.replace) - proxyTarget = req.url.replace(regexp, interceptOpt.proxy) - } - log.info('proxy', rOptions.path, rOptions.url) - // const backup = interceptOpt.backup - const proxy = proxyTarget.indexOf('http') === 0 ? proxyTarget : rOptions.protocol + '//' + proxyTarget - // eslint-disable-next-line node/no-deprecated-api - const URL = url.parse(proxy) - rOptions.protocol = URL.protocol - rOptions.hostname = URL.host - rOptions.host = URL.host - rOptions.headers.host = URL.host - rOptions.path = URL.path - if (URL.port == null) { - rOptions.port = rOptions.protocol === 'https:' ? 443 : 80 - } +module.exports = { + requestIntercept (context, interceptOpt, req, res, ssl, next) { + const { rOptions, log, RequestConter } = context - log.info('proxy:', rOptions.hostname, req.url, proxyTarget) - }, - is (interceptOpt) { - return !!interceptOpt.proxy + let proxyConf = interceptOpt.proxy + if (RequestConter && interceptOpt.backup && interceptOpt.backup.length > 0) { + // 优选逻辑 + const backup = [proxyConf] + for (const bk of interceptOpt.backup) { + backup.push(bk) + } + const key = interceptOpt.key + const count = RequestConter.getOrCreate(key, backup) + if (count.value == null) { + count.doRank() + } + if (count.value == null) { + log.error('count value is null', count) + } else { + proxyConf = count.value + context.requestCount = { + key, + value: count.value, + count + } + } } + + let proxyTarget = proxyConf + req.url + if (interceptOpt.replace) { + const regexp = new RegExp(interceptOpt.replace) + proxyTarget = req.url.replace(regexp, proxyConf) + } + log.info('proxy', rOptions.path, rOptions.url) + // const backup = interceptOpt.backup + const proxy = proxyTarget.indexOf('http') === 0 ? proxyTarget : rOptions.protocol + '//' + proxyTarget + // eslint-disable-next-line node/no-deprecated-api + const URL = url.parse(proxy) + rOptions.protocol = URL.protocol + rOptions.hostname = URL.host + rOptions.host = URL.host + rOptions.headers.host = URL.host + rOptions.path = URL.path + if (URL.port == null) { + rOptions.port = rOptions.protocol === 'https:' ? 443 : 80 + } + log.info('proxy:', rOptions.hostname, req.url, proxyTarget) + return true + }, + is (interceptOpt) { + return !!interceptOpt.proxy } } diff --git a/packages/mitmproxy/src/lib/interceptor/impl/redirect.js b/packages/mitmproxy/src/lib/interceptor/impl/redirect.js index b38aa675..5ef34e2e 100644 --- a/packages/mitmproxy/src/lib/interceptor/impl/redirect.js +++ b/packages/mitmproxy/src/lib/interceptor/impl/redirect.js @@ -1,21 +1,19 @@ -module.exports = function createInterceptor (context) { - const { log } = context - return { - requestIntercept (interceptOpt, rOptions, req, res, ssl) { - const url = req.url - let redirect - if (typeof interceptOpt.redirect === 'string') { - redirect = rOptions.protocol + '//' + interceptOpt.redirect + url - } else { - redirect = interceptOpt.redirect(url) - } - log.info('请求重定向:', rOptions.hostname, url, redirect) - res.writeHead(302, { Location: redirect }) - res.end() - return true// 是否结束 - }, - is (interceptOpt) { - return interceptOpt.redirect // 如果配置中有redirect,那么这个配置是需要redirect拦截的 +module.exports = { + requestIntercept (context, interceptOpt, req, res, ssl, next) { + const { rOptions, log } = context + const url = req.url + let redirect + if (typeof interceptOpt.redirect === 'string') { + redirect = rOptions.protocol + '//' + interceptOpt.redirect + url + } else { + redirect = interceptOpt.redirect(url) } + log.info('请求重定向:', rOptions.hostname, url, redirect) + res.writeHead(302, { Location: redirect }) + res.end() + return true// 是否结束 + }, + is (interceptOpt) { + return interceptOpt.redirect // 如果配置中有redirect,那么这个配置是需要redirect拦截的 } } diff --git a/packages/mitmproxy/src/lib/interceptor/impl/script.js b/packages/mitmproxy/src/lib/interceptor/impl/script.js index 83f094c1..ec69092b 100644 --- a/packages/mitmproxy/src/lib/interceptor/impl/script.js +++ b/packages/mitmproxy/src/lib/interceptor/impl/script.js @@ -1,8 +1,7 @@ -module.exports = function createInterceptor (context) { - const { log } = context - return { - responseIntercept (interceptOpt, rOptions, req, res, proxyReq, proxyRes, ssl) { - const script = ` +module.exports = { + responseIntercept (context, interceptOpt, req, res, proxyReq, proxyRes, ssl, next) { + const { rOptions, log } = context + const script = ` ` - log.info('responseIntercept: body script', rOptions.hostname, rOptions.path) - return { - body: script - } - }, - is (interceptOpt) { - return interceptOpt.script + log.info('responseIntercept: append script', rOptions.hostname, rOptions.path) + return { + head: script } + }, + is (interceptOpt) { + return interceptOpt.script } } diff --git a/packages/mitmproxy/src/lib/interceptor/index.js b/packages/mitmproxy/src/lib/interceptor/index.js index 72625ad9..127d68cf 100644 --- a/packages/mitmproxy/src/lib/interceptor/index.js +++ b/packages/mitmproxy/src/lib/interceptor/index.js @@ -2,8 +2,6 @@ const proxy = require('./impl/proxy') const redirect = require('./impl/redirect') const abort = require('./impl/abort') const script = require('./impl/script') -const log = require('../../utils/util.log') -const context = { log } -const modules = [proxy(context), redirect(context), abort(context), script(context)] +const modules = [proxy, redirect, abort, script] module.exports = modules diff --git a/packages/mitmproxy/src/lib/proxy/mitmproxy/createRequestHandler.js b/packages/mitmproxy/src/lib/proxy/mitmproxy/createRequestHandler.js index 11f10601..438cf439 100644 --- a/packages/mitmproxy/src/lib/proxy/mitmproxy/createRequestHandler.js +++ b/packages/mitmproxy/src/lib/proxy/mitmproxy/createRequestHandler.js @@ -5,6 +5,7 @@ const commonUtil = require('../common/util') const DnsUtil = require('../../dns/index') const log = require('../../../utils/util.log') const HtmlMiddleware = require('../middleware/HtmlMiddleware') +const RequestCounter = require('../../choice/RequestCounter') // create requestHandler function module.exports = function createRequestHandler (createIntercepts, externalProxy, dnsConfig) { // return @@ -19,7 +20,12 @@ module.exports = function createRequestHandler (createIntercepts, externalProxy, } else { req.socket.setKeepAlive(true, 30000) } - let interceptors = createIntercepts(rOptions) + const context = { + rOptions, + log, + RequestCounter + } + let interceptors = createIntercepts(context) if (interceptors == null) { interceptors = [] } @@ -34,8 +40,8 @@ module.exports = function createRequestHandler (createIntercepts, externalProxy, try { if (reqIncpts && reqIncpts.length > 0) { for (const reqIncpt of reqIncpts) { - const writableEnded = reqIncpt.requestIntercept(req, res, ssl) - if (writableEnded) { + const goNext = reqIncpt.requestIntercept(context, req, res, ssl, next) + if (goNext) { next() return } @@ -99,6 +105,11 @@ module.exports = function createRequestHandler (createIntercepts, externalProxy, dns.count(hostname, ip, true) log.error('记录ip失败次数,用于优选ip:', hostname, ip) } + const counter = context.requestCount + if (counter != null) { + counter.count.doCount(counter.value, true) + log.error('记录prxoy失败次数:', counter.value) + } log.error('代理请求超时', rOptions.protocol, rOptions.hostname, rOptions.path, (end - start) + 'ms') proxyReq.end() proxyReq.destroy() @@ -114,12 +125,33 @@ module.exports = function createRequestHandler (createIntercepts, externalProxy, dns.count(hostname, ip, true) log.error('记录ip失败次数,用于优选ip:', hostname, ip) } + const counter = context.requestCount + if (counter != null) { + counter.count.doCount(counter.value, true) + log.error('记录prxoy失败次数:', counter.value) + } log.error('代理请求错误', e.code, e.message, rOptions.hostname, rOptions.path, (end - start) + 'ms') reject(e) }) proxyReq.on('aborted', () => { - log.error('代理请求被取消', rOptions.hostname, rOptions.path) + const end = new Date().getTime() + const cost = end - start + log.error('代理请求被取消', rOptions.hostname, rOptions.path, cost + 'ms') + + if (cost > 8000) { + if (isDnsIntercept) { + const { dns, ip, hostname } = isDnsIntercept + dns.count(hostname, ip, true) + log.error('记录ip失败次数,用于优选ip:', hostname, ip) + } + const counter = context.requestCount + if (counter != null) { + counter.count.doCount(counter.value, true) + log.error('记录prxoy失败次数:', counter.value) + } + } + if (res.writableEnded) { return } @@ -161,6 +193,11 @@ module.exports = function createRequestHandler (createIntercepts, externalProxy, // // console.log('BODY: ') // }) proxyRes.on('error', (error) => { + const counter = context.requestCount + if (counter != null) { + counter.count.doCount(counter.value, true) + log.error('记录prxoy失败次数:', counter.value) + } log.error('proxy res error', error) }) @@ -173,7 +210,7 @@ module.exports = function createRequestHandler (createIntercepts, externalProxy, let head = '' let body = '' for (const resIncpt of resIncpts) { - const append = resIncpt.responseIntercept(req, res, proxyReq, proxyRes, ssl) + const append = resIncpt.responseIntercept(context, req, res, proxyReq, proxyRes, ssl) if (append && append.head) { head += append.head } @@ -209,20 +246,14 @@ module.exports = function createRequestHandler (createIntercepts, externalProxy, res.writeHead(proxyRes.statusCode) proxyRes.pipe(res) } - })().then( - (flag) => { - // do nothing - // console.log('res', flag) - }, - (e) => { - if (!res.writableEnded) { - const status = e.status || 500 - res.writeHead(status) - res.write(`DevSidecar Warning:\n\n ${e.toString()}`) - res.end() - log.error('request error', e.message) - } + })().catch(e => { + if (!res.writableEnded) { + const status = e.status || 500 + res.writeHead(status) + res.write(`DevSidecar Warning:\n\n ${e.toString()}`) + res.end() + log.error('request error', e.message) } - ) + }) } } diff --git a/packages/mitmproxy/src/options.js b/packages/mitmproxy/src/options.js index 53850416..32d432eb 100644 --- a/packages/mitmproxy/src/options.js +++ b/packages/mitmproxy/src/options.js @@ -63,7 +63,8 @@ module.exports = (config) => { } return !!matchHostname(intercepts, hostname) // 配置了拦截的域名,将会被代理 }, - createIntercepts: (rOptions) => { + createIntercepts: (context) => { + const rOptions = context.rOptions const hostname = rOptions.hostname const interceptOpts = matchHostname(intercepts, hostname) if (!interceptOpts) { // 该域名没有配置拦截器,直接过 @@ -73,6 +74,7 @@ module.exports = (config) => { const matchIntercepts = [] for (const regexp in interceptOpts) { // 遍历拦截配置 const interceptOpt = interceptOpts[regexp] + interceptOpt.key = regexp if (regexp !== true) { if (!isMatched(rOptions.path, regexp)) { continue @@ -84,13 +86,13 @@ module.exports = (config) => { const interceptor = {} if (impl.requestIntercept) { // req拦截器 - interceptor.requestIntercept = (req, res, ssl) => { - impl.requestIntercept(interceptOpt, rOptions, req, res, ssl) + interceptor.requestIntercept = (context, req, res, ssl, next) => { + return impl.requestIntercept(context, interceptOpt, req, res, ssl, next) } } else if (impl.responseIntercept) { // res拦截器 - interceptor.responseIntercept = (req, res, proxyReq, proxyRes, ssl) => { - impl.responseIntercept(interceptOpt, rOptions, req, res, proxyReq, proxyRes, ssl) + interceptor.responseIntercept = (context, req, res, proxyReq, proxyRes, ssl, next) => { + return impl.responseIntercept(context, interceptOpt, req, res, proxyReq, proxyRes, ssl, next) } } matchIntercepts.push(interceptor) From 193c381a10af06175ad2f7af2a172fae19419b91 Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Mon, 16 Nov 2020 19:02:00 +0800 Subject: [PATCH 14/51] =?UTF-8?q?docs:=20=E4=BC=98=E9=80=89=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/mitmproxy/src/lib/interceptor/impl/proxy.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/mitmproxy/src/lib/interceptor/impl/proxy.js b/packages/mitmproxy/src/lib/interceptor/impl/proxy.js index 3111fe63..b1349904 100644 --- a/packages/mitmproxy/src/lib/interceptor/impl/proxy.js +++ b/packages/mitmproxy/src/lib/interceptor/impl/proxy.js @@ -32,7 +32,6 @@ module.exports = { const regexp = new RegExp(interceptOpt.replace) proxyTarget = req.url.replace(regexp, proxyConf) } - log.info('proxy', rOptions.path, rOptions.url) // const backup = interceptOpt.backup const proxy = proxyTarget.indexOf('http') === 0 ? proxyTarget : rOptions.protocol + '//' + proxyTarget // eslint-disable-next-line node/no-deprecated-api @@ -45,7 +44,7 @@ module.exports = { if (URL.port == null) { rOptions.port = rOptions.protocol === 'https:' ? 443 : 80 } - log.info('proxy:', rOptions.hostname, req.url, proxyTarget) + log.info('proxy:', rOptions.hostname, rOptions.path, proxyTarget) return true }, is (interceptOpt) { From 02fead91f75ed2b9d54ed654479d50965c958e24 Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Tue, 17 Nov 2020 18:08:26 +0800 Subject: [PATCH 15/51] =?UTF-8?q?feat:=20=E8=84=9A=E6=9C=AC=E6=94=AF?= =?UTF-8?q?=E6=8C=81=EF=BC=8Cgitclone=E5=8A=A0=E9=80=9F=E9=93=BE=E6=8E=A5?= =?UTF-8?q?=E5=A4=8D=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 16 +++-- doc/clone.png | Bin 0 -> 52007 bytes packages/core/src/config/index.js | 15 ++-- packages/core/src/utils/util.log.js | 2 +- packages/gui/src/utils/util.log.js | 2 +- packages/mitmproxy/package.json | 1 + packages/mitmproxy/src/lib/choice/index.js | 12 ++-- .../src/lib/interceptor/impl/proxy.js | 7 +- .../src/lib/interceptor/impl/script.js | 36 +++++++--- packages/mitmproxy/src/lib/monkey/index.js | 30 +++++--- .../src/lib/monkey/scripts/github.script | 1 + .../src/lib/monkey/scripts/global.script | 9 +++ .../src/lib/monkey/scripts/jquery.min.js | 2 + .../lib/proxy/middleware/HtmlMiddleware.js | 21 ++++-- .../lib/proxy/middleware/ScriptMiddleware.js | 23 ++++++ .../proxy/mitmproxy/createConnectHandler.js | 3 + .../proxy/mitmproxy/createRequestHandler.js | 68 ++++++++---------- packages/mitmproxy/src/lib/utils/logger.js | 11 --- packages/mitmproxy/src/utils/util.log.js | 2 +- packages/mitmproxy/test/dnsTest.mjs | 9 ++- packages/mitmproxy/test/sha256Test.js | 4 ++ packages/mitmproxy/yarn.lock | 5 ++ 22 files changed, 186 insertions(+), 93 deletions(-) create mode 100644 doc/clone.png create mode 100644 packages/mitmproxy/src/lib/monkey/scripts/global.script create mode 100644 packages/mitmproxy/src/lib/monkey/scripts/jquery.min.js create mode 100644 packages/mitmproxy/src/lib/proxy/middleware/ScriptMiddleware.js delete mode 100644 packages/mitmproxy/src/lib/utils/logger.js create mode 100644 packages/mitmproxy/test/sha256Test.js diff --git a/README.md b/README.md index d239c839..1289c9e6 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,8 @@ 可解决npm install 时某些安装包下载不下来的问题 ### 2、 dns优选 -根据网络状况智能解析域名ip地址,获取最佳网络速度 +根据网络状况智能解析最佳域名ip地址,获取最佳网络速度 +第一次访问会比较慢,等多次访问之后,慢慢的选到比较快的ip,之后就很快了 比如: 1. 解决git push 偶尔失败需要输入账号密码的问题( fatal: TaskCanceledException encountered / fatal: HttpRequestException encountered) @@ -76,10 +77,14 @@ recaptcha 图片验证码加速 4. 某些库用cnpm也下载不下来的话,可以试试打开dev-sidecar的npm加速 ### 其他加速 1. git clone 加速 + 新增快捷方式: + ![](./doc/clone.png) + 方式2: > 使用方式用实际的名称替换{}的内容,即可加速clone > https://hub.fastgit.org/{username}/{reponame}.git > clone 出来的 remote "origin" 为fastgit的地址,需要手动改回来 > 你也可以直接使用他们的clone加速工具 [fgit-go](https://github.com/FastGitORG/fgit-go) + 2. github.com的镜像网站(注意:不能登录) >1. [hub.fastgit.org](https://hub.fastgit.org/) >2. [github.com.cnpmjs.org](https://github.com.cnpmjs.org/) 这个很容易超限 @@ -117,11 +122,9 @@ const intercepts = { } ``` -### DNS优选 -某些域名(比如api.github.com)会被解析到新加坡的ip上,新加坡的服务器在上午挺好,到了晚上就卡死,基本不可用。 -所以将这些域名解析到美国服务器上就可以正常访问 - -另外,配置了dns mapping的域名,将会从dns获取到的ip列表中选择相对快一点的服务器进行访问 +### DNS优选配置 +某些域名解析出来的ip会无法访问,(比如api.github.com会被解析到新加坡的ip上,新加坡的服务器在上午挺好,到了晚上就卡死,基本不可用) +通过从dns上获取ip列表,切换不同的ip进行尝试,最终会挑选到一个最快的ip ```js dns: { @@ -143,6 +146,7 @@ const intercepts = { 本项目参考如下开源项目 * [node-mitmproxy](https://github.com/wuchangming/node-mitmproxy) * [ReplaceGoogleCDN](https://github.com/justjavac/ReplaceGoogleCDN) +* [github增强油猴脚本](https://greasyfork.org/zh-CN/scripts/412245-github-%E5%A2%9E%E5%BC%BA-%E9%AB%98%E9%80%9F%E4%B8%8B%E8%BD%BD) 本项目加速资源由如下组织提供 * [fastgit](https://fastgit.org/) diff --git a/doc/clone.png b/doc/clone.png new file mode 100644 index 0000000000000000000000000000000000000000..df919640e235a4762f416dd99b0d10ab3565e8aa GIT binary patch literal 52007 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 literal 0 HcmV?d00001 diff --git a/packages/core/src/config/index.js b/packages/core/src/config/index.js index b9ddc0c1..5a73dcf9 100644 --- a/packages/core/src/config/index.js +++ b/packages/core/src/config/index.js @@ -20,14 +20,17 @@ module.exports = { '/.*/.*/blame/': { redirect: 'hub.fastgit.org' }, + '/.+/[^\\/]+$': { + script: [ + 'jquery', + 'github' + ] + }, '/.*': { proxy: 'github.com', backup: [ - 'github.docmirror.cn' + 'github.docmirror.cn/_proxy' ] - }, - '/.*/[^\\/]*$': { - script: 'console.log("123123132")' } }, 'raw.githubusercontent.com': { @@ -122,7 +125,9 @@ module.exports = { '*.githubassets.com': 'usa', // "解决push的时候需要输入密码的问题", 'github.com': 'usa', - '*.vuepress.vuejs.org': 'usa' + '*.vuepress.vuejs.org': 'usa', + 'github.docmirror.cn': 'usa', + 'gh.docmirror.top': 'usa' } } }, diff --git a/packages/core/src/utils/util.log.js b/packages/core/src/utils/util.log.js index d46684f0..e1ea2ae6 100644 --- a/packages/core/src/utils/util.log.js +++ b/packages/core/src/utils/util.log.js @@ -5,7 +5,7 @@ const getDefaultConfigBasePath = function () { return path.resolve(userHome, './.dev-sidecar') } log4js.configure({ - appenders: { std: { type: 'stdout' }, file: { type: 'file', pattern: '.yyyy-MM-dd', daysToKeep: 3, filename: getDefaultConfigBasePath() + '/logs/server.log' } }, + appenders: { std: { type: 'stdout' }, file: { type: 'file', pattern: 'yyyy-MM-dd', daysToKeep: 3, filename: getDefaultConfigBasePath() + '/logs/server.log' } }, categories: { default: { appenders: ['file', 'std'], level: 'info' } } }) const logger = log4js.getLogger('server') diff --git a/packages/gui/src/utils/util.log.js b/packages/gui/src/utils/util.log.js index d46684f0..e1ea2ae6 100644 --- a/packages/gui/src/utils/util.log.js +++ b/packages/gui/src/utils/util.log.js @@ -5,7 +5,7 @@ const getDefaultConfigBasePath = function () { return path.resolve(userHome, './.dev-sidecar') } log4js.configure({ - appenders: { std: { type: 'stdout' }, file: { type: 'file', pattern: '.yyyy-MM-dd', daysToKeep: 3, filename: getDefaultConfigBasePath() + '/logs/server.log' } }, + appenders: { std: { type: 'stdout' }, file: { type: 'file', pattern: 'yyyy-MM-dd', daysToKeep: 3, filename: getDefaultConfigBasePath() + '/logs/server.log' } }, categories: { default: { appenders: ['file', 'std'], level: 'info' } } }) const logger = log4js.getLogger('server') diff --git a/packages/mitmproxy/package.json b/packages/mitmproxy/package.json index 0d792a5e..c94eb45f 100644 --- a/packages/mitmproxy/package.json +++ b/packages/mitmproxy/package.json @@ -15,6 +15,7 @@ "child_process": "^1.0.2", "colors": "^1.1.2", "commander": "^2.9.0", + "crypto-js": "^4.0.0", "debug": "^4.1.1", "dns-over-http": "^0.2.0", "dns-over-tls": "^0.0.8", diff --git a/packages/mitmproxy/src/lib/choice/index.js b/packages/mitmproxy/src/lib/choice/index.js index 32709405..f213dbe7 100644 --- a/packages/mitmproxy/src/lib/choice/index.js +++ b/packages/mitmproxy/src/lib/choice/index.js @@ -38,7 +38,7 @@ class DynamicChoice { if (this.count[item]) { continue } - this.count[item] = { value: item, total: 0, error: 0, keepErrorCount: 0, successRate: 1 } + this.count[item] = { value: item, total: 0, error: 0, keepErrorCount: 0, successRate: 1.0 } } this.doCount(this.value, false) } @@ -47,10 +47,14 @@ class DynamicChoice { // 将count里面根据权重排序 const list = [] for (const key in this.count) { - list.put(this.count[key]) + list.push(this.count[key]) } - list.sort(function (a, b) { return a.successRate - b.successRate }) + list.sort((a, b) => { + return b.successRate - a.successRate + }) + console.log('do rank', list) const backup = list.map(item => item.value) + this.setBackupList(backup) } @@ -87,7 +91,7 @@ class DynamicChoice { } else { count.total++ } - count.successRate = 1 - (count.error / count.total) + count.successRate = 1.0 - (count.error / count.total) if (isError && this.value === value) { // 连续错误4次,切换下一个 if (count.keepErrorCount >= 4) { diff --git a/packages/mitmproxy/src/lib/interceptor/impl/proxy.js b/packages/mitmproxy/src/lib/interceptor/impl/proxy.js index b1349904..526710ac 100644 --- a/packages/mitmproxy/src/lib/interceptor/impl/proxy.js +++ b/packages/mitmproxy/src/lib/interceptor/impl/proxy.js @@ -1,23 +1,24 @@ const url = require('url') module.exports = { requestIntercept (context, interceptOpt, req, res, ssl, next) { - const { rOptions, log, RequestConter } = context + const { rOptions, log, RequestCounter } = context let proxyConf = interceptOpt.proxy - if (RequestConter && interceptOpt.backup && interceptOpt.backup.length > 0) { + if (RequestCounter && interceptOpt.backup && interceptOpt.backup.length > 0) { // 优选逻辑 const backup = [proxyConf] for (const bk of interceptOpt.backup) { backup.push(bk) } const key = interceptOpt.key - const count = RequestConter.getOrCreate(key, backup) + const count = RequestCounter.getOrCreate(key, backup) if (count.value == null) { count.doRank() } if (count.value == null) { log.error('count value is null', count) } else { + count.doCount(count.value) proxyConf = count.value context.requestCount = { key, diff --git a/packages/mitmproxy/src/lib/interceptor/impl/script.js b/packages/mitmproxy/src/lib/interceptor/impl/script.js index ec69092b..354e16e7 100644 --- a/packages/mitmproxy/src/lib/interceptor/impl/script.js +++ b/packages/mitmproxy/src/lib/interceptor/impl/script.js @@ -1,18 +1,36 @@ +const contextPath = '/____ds_script____/' +const monkey = require('../../monkey') +const CryptoJs = require('crypto-js') +function getScript (key, script) { + const scriptUrl = contextPath + key + + const hash = CryptoJs.SHA256(script).toString(CryptoJs.enc.Base64) + return ` + + ` +} + module.exports = { responseIntercept (context, interceptOpt, req, res, proxyReq, proxyRes, ssl, next) { const { rOptions, log } = context - const script = ` - - ` + const scriptTag = getScript(key, script.script) + tags += '\r\n' + scriptTag + } log.info('responseIntercept: append script', rOptions.hostname, rOptions.path) return { - head: script + head: tags } }, is (interceptOpt) { diff --git a/packages/mitmproxy/src/lib/monkey/index.js b/packages/mitmproxy/src/lib/monkey/index.js index 50a062e3..8fd3b836 100644 --- a/packages/mitmproxy/src/lib/monkey/index.js +++ b/packages/mitmproxy/src/lib/monkey/index.js @@ -1,16 +1,17 @@ const fs = require('fs') const path = require('path') -let scripts = [] +let scripts function buildScript (sc, content) { const grant = sc.grant - const pre = '(function () { \r\n' + const pre = 'window.addEventListener("load",' + + ' ()=> { \r\n' let grantSc = '' for (const item of grant) { - grantSc += 'const ' + item + ' = Monkey_Grants[\'' + item + '\']\r\n' + grantSc += 'const ' + item + ' = window.__ds_global__[\'' + item + '\']\r\n' } - const tail = content + '\r\n' + - '})()' + const tail = ';' + content + '\r\n' + + '})' return pre + grantSc + tail } @@ -25,7 +26,6 @@ function loadScript (content) { const arr = content.split(annoFlag) const start = 0 - console.log('arr', arr.length) const confStr = arr[start] const confItemArr = confStr.split('\n') const sc = { @@ -54,14 +54,24 @@ function loadScript (content) { return sc } -module.exports = { +function readFile (script) { + return fs.readFileSync(path.join(__dirname, './scripts/' + script)).toString() +} + +const api = { get () { + if (scripts == null) { + api.load() + } return scripts }, load () { - const github = loadScript(fs.readFileSync(path.join(__dirname, './scripts/github.script')).toString()) - scripts = [] - scripts.push(github) + scripts = {} + scripts.github = loadScript(readFile('github.script')) + scripts.jquery = { script: readFile('jquery.min.js') } + scripts.global = { script: readFile('global.script') } return scripts } } + +module.exports = api diff --git a/packages/mitmproxy/src/lib/monkey/scripts/github.script b/packages/mitmproxy/src/lib/monkey/scripts/github.script index cd80e23f..c82ca239 100644 --- a/packages/mitmproxy/src/lib/monkey/scripts/github.script +++ b/packages/mitmproxy/src/lib/monkey/scripts/github.script @@ -20,6 +20,7 @@ // ==/UserScript== (function () { + console.log('github script loaded') var download_url = [ 'https://gh.con.sh', 'https://gh.api.99988866.xyz', diff --git a/packages/mitmproxy/src/lib/monkey/scripts/global.script b/packages/mitmproxy/src/lib/monkey/scripts/global.script new file mode 100644 index 00000000..6edb2e71 --- /dev/null +++ b/packages/mitmproxy/src/lib/monkey/scripts/global.script @@ -0,0 +1,9 @@ +window.__ds_global__={ + GM_registerMenuCommand: () => {}, + GM_unregisterMenuCommand: () => {}, + GM_openInTab: () => {}, + GM_getValue: () => {}, + GM_setValue: () => {}, + GM_notification: () => {} +} +console.log('ds_global loaded') \ No newline at end of file diff --git a/packages/mitmproxy/src/lib/monkey/scripts/jquery.min.js b/packages/mitmproxy/src/lib/monkey/scripts/jquery.min.js new file mode 100644 index 00000000..a1c07fd8 --- /dev/null +++ b/packages/mitmproxy/src/lib/monkey/scripts/jquery.min.js @@ -0,0 +1,2 @@ +/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""],thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;nx",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="
    ",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0 { + log.error('cltSocket error', e.message) + }) proxySocket.on('timeout', () => { const end = new Date().getTime() log.info('代理socket timeout:', hostname, port, (end - start) + 'ms') diff --git a/packages/mitmproxy/src/lib/proxy/mitmproxy/createRequestHandler.js b/packages/mitmproxy/src/lib/proxy/mitmproxy/createRequestHandler.js index 438cf439..e702d08d 100644 --- a/packages/mitmproxy/src/lib/proxy/mitmproxy/createRequestHandler.js +++ b/packages/mitmproxy/src/lib/proxy/mitmproxy/createRequestHandler.js @@ -6,6 +6,7 @@ const DnsUtil = require('../../dns/index') const log = require('../../../utils/util.log') const HtmlMiddleware = require('../middleware/HtmlMiddleware') const RequestCounter = require('../../choice/RequestCounter') +const ScriptMiddleware = require('../middleware/ScriptMiddleware') // create requestHandler function module.exports = function createRequestHandler (createIntercepts, externalProxy, dnsConfig) { // return @@ -29,7 +30,7 @@ module.exports = function createRequestHandler (createIntercepts, externalProxy, if (interceptors == null) { interceptors = [] } - const reqIncpts = interceptors.filter(item => { return item.requestIntercept != null }) + let reqIncpts = interceptors.filter(item => { return item.requestIntercept != null }) const resIncpts = interceptors.filter(item => { return item.responseIntercept != null }) const requestInterceptorPromise = () => { @@ -38,6 +39,13 @@ module.exports = function createRequestHandler (createIntercepts, externalProxy, resolve() } try { + if (ScriptMiddleware.is(rOptions)) { + if (reqIncpts == null) { + reqIncpts = [] + } + reqIncpts.unshift(ScriptMiddleware) + } + if (reqIncpts && reqIncpts.length > 0) { for (const reqIncpt of reqIncpts) { const goNext = reqIncpt.requestIntercept(context, req, res, ssl, next) @@ -56,6 +64,19 @@ module.exports = function createRequestHandler (createIntercepts, externalProxy, }) } + function countSlow (isDnsIntercept) { + if (isDnsIntercept) { + const { dns, ip, hostname } = isDnsIntercept + dns.count(hostname, ip, true) + log.error('记录ip失败次数,用于优选ip:', hostname, ip) + } + const counter = context.requestCount + if (counter != null) { + counter.count.doCount(counter.value, true) + log.error('记录prxoy失败次数:', counter.value) + } + } + const proxyRequestPromise = async () => { rOptions.host = rOptions.hostname || rOptions.host || 'localhost' return new Promise((resolve, reject) => { @@ -92,24 +113,19 @@ module.exports = function createRequestHandler (createIntercepts, externalProxy, } proxyReq = (rOptions.protocol === 'https:' ? https : http).request(rOptions, (proxyRes) => { const end = new Date().getTime() + const cost = end - start if (rOptions.protocol === 'https:') { - log.info('代理请求返回:', url, (end - start) + 'ms') + log.info('代理请求返回:', url, cost + 'ms') + } + if (cost > 8000) { + countSlow(isDnsIntercept) } resolve(proxyRes) }) proxyReq.on('timeout', () => { const end = new Date().getTime() - if (isDnsIntercept) { - const { dns, ip, hostname } = isDnsIntercept - dns.count(hostname, ip, true) - log.error('记录ip失败次数,用于优选ip:', hostname, ip) - } - const counter = context.requestCount - if (counter != null) { - counter.count.doCount(counter.value, true) - log.error('记录prxoy失败次数:', counter.value) - } + countSlow(isDnsIntercept) log.error('代理请求超时', rOptions.protocol, rOptions.hostname, rOptions.path, (end - start) + 'ms') proxyReq.end() proxyReq.destroy() @@ -120,16 +136,7 @@ module.exports = function createRequestHandler (createIntercepts, externalProxy, proxyReq.on('error', (e) => { const end = new Date().getTime() - if (isDnsIntercept) { - const { dns, ip, hostname } = isDnsIntercept - dns.count(hostname, ip, true) - log.error('记录ip失败次数,用于优选ip:', hostname, ip) - } - const counter = context.requestCount - if (counter != null) { - counter.count.doCount(counter.value, true) - log.error('记录prxoy失败次数:', counter.value) - } + countSlow(isDnsIntercept) log.error('代理请求错误', e.code, e.message, rOptions.hostname, rOptions.path, (end - start) + 'ms') reject(e) }) @@ -140,16 +147,7 @@ module.exports = function createRequestHandler (createIntercepts, externalProxy, log.error('代理请求被取消', rOptions.hostname, rOptions.path, cost + 'ms') if (cost > 8000) { - if (isDnsIntercept) { - const { dns, ip, hostname } = isDnsIntercept - dns.count(hostname, ip, true) - log.error('记录ip失败次数,用于优选ip:', hostname, ip) - } - const counter = context.requestCount - if (counter != null) { - counter.count.doCount(counter.value, true) - log.error('记录prxoy失败次数:', counter.value) - } + countSlow(isDnsIntercept) } if (res.writableEnded) { @@ -193,11 +191,7 @@ module.exports = function createRequestHandler (createIntercepts, externalProxy, // // console.log('BODY: ') // }) proxyRes.on('error', (error) => { - const counter = context.requestCount - if (counter != null) { - counter.count.doCount(counter.value, true) - log.error('记录prxoy失败次数:', counter.value) - } + countSlow() log.error('proxy res error', error) }) diff --git a/packages/mitmproxy/src/lib/utils/logger.js b/packages/mitmproxy/src/lib/utils/logger.js deleted file mode 100644 index 3584efa8..00000000 --- a/packages/mitmproxy/src/lib/utils/logger.js +++ /dev/null @@ -1,11 +0,0 @@ -const debug = require('debug') - -module.exports = function getLogger (name) { - return { - debug: debug(`dev-sidecar:${name}:debug`), - info: debug(`dev-sidecar:${name}:info`), - error: debug(`dev-sidecar:${name}:error`) - } -} - -debug.enable('dev-sidecar:*') diff --git a/packages/mitmproxy/src/utils/util.log.js b/packages/mitmproxy/src/utils/util.log.js index 273251c2..cba5331c 100644 --- a/packages/mitmproxy/src/utils/util.log.js +++ b/packages/mitmproxy/src/utils/util.log.js @@ -1,7 +1,7 @@ const log4js = require('log4js') const proxyConfig = require('../lib/proxy/common/config') log4js.configure({ - appenders: { std: { type: 'stdout' }, file: { type: 'file', pattern: '.yyyy-MM-dd', daysToKeep: 3, filename: proxyConfig.getDefaultCABasePath() + '/logs/server.log' } }, + appenders: { std: { type: 'stdout' }, file: { type: 'file', pattern: 'yyyy-MM-dd', daysToKeep: 3, filename: proxyConfig.getDefaultCABasePath() + '/logs/server.log' } }, categories: { default: { appenders: ['file', 'std'], level: 'info' } } }) const logger = log4js.getLogger('server') diff --git a/packages/mitmproxy/test/dnsTest.mjs b/packages/mitmproxy/test/dnsTest.mjs index 28b67d60..5e577605 100644 --- a/packages/mitmproxy/test/dnsTest.mjs +++ b/packages/mitmproxy/test/dnsTest.mjs @@ -20,4 +20,11 @@ const dnsProviders = dns.initDNS({ // dnsProviders.usa.lookup(hostname) const hostname1 = 'api.github.com' -dnsProviders.aliyun.lookup(hostname1) +dnsProviders.usa.lookup(hostname1) + +const hostname2 = 'hk.docmirror.cn' +dnsProviders.usa.lookup(hostname2) +const hostname3 = 'github.docmirror.cn' +dnsProviders.usa.lookup(hostname3) +const hostname4 = 'gh.docmirror.top' +dnsProviders.usa.lookup(hostname4) diff --git a/packages/mitmproxy/test/sha256Test.js b/packages/mitmproxy/test/sha256Test.js new file mode 100644 index 00000000..9dd9293e --- /dev/null +++ b/packages/mitmproxy/test/sha256Test.js @@ -0,0 +1,4 @@ +const CryptoJs = require('crypto-js') +const ret = CryptoJs.SHA256('111111111111') +console.log(ret.toString(CryptoJs.enc.Base64)) +console.log(1 / 2) diff --git a/packages/mitmproxy/yarn.lock b/packages/mitmproxy/yarn.lock index 1c8244df..53acea40 100644 --- a/packages/mitmproxy/yarn.lock +++ b/packages/mitmproxy/yarn.lock @@ -2159,6 +2159,11 @@ crypto-browserify@^3.11.0: randombytes "^2.0.0" randomfill "^1.0.3" +crypto-js@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-4.0.0.tgz#2904ab2677a9d042856a2ea2ef80de92e4a36dcc" + integrity sha512-bzHZN8Pn+gS7DQA6n+iUmBfl0hO5DJq++QP3U6uTucDtk/0iGpXd/Gg7CGR0p8tJhofJyaKoWBuJI4eAO00BBg== + cyclist@^1.0.1: version "1.0.1" resolved "https://registry.npm.taobao.org/cyclist/download/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" From d6c8e85f2f7160d7904e208f0829318754156524 Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Tue, 17 Nov 2020 18:15:18 +0800 Subject: [PATCH 16/51] =?UTF-8?q?docs:=20=E5=B0=8F=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 1289c9e6..d4582374 100644 --- a/README.md +++ b/README.md @@ -76,9 +76,12 @@ recaptcha 图片验证码加速 3. 项目install使用yarn,发布包publish用npm,互不影响 4. 某些库用cnpm也下载不下来的话,可以试试打开dev-sidecar的npm加速 ### 其他加速 - 1. git clone 加速 - 新增快捷方式: - ![](./doc/clone.png) + 1. git clone 加速 + + 方式1:快捷复制: + + ![](./doc/clone.png) + 方式2: > 使用方式用实际的名称替换{}的内容,即可加速clone > https://hub.fastgit.org/{username}/{reponame}.git From 41cb44967d018cb9314670101ebf41d9a0c88bb6 Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Tue, 17 Nov 2020 18:43:08 +0800 Subject: [PATCH 17/51] =?UTF-8?q?docs:=20=E5=B0=8F=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/core/src/config/index.js | 2 +- packages/mitmproxy/src/lib/choice/index.js | 3 ++- packages/mitmproxy/src/lib/interceptor/impl/proxy.js | 10 +++++++--- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/packages/core/src/config/index.js b/packages/core/src/config/index.js index 5a73dcf9..680f277a 100644 --- a/packages/core/src/config/index.js +++ b/packages/core/src/config/index.js @@ -20,7 +20,7 @@ module.exports = { '/.*/.*/blame/': { redirect: 'hub.fastgit.org' }, - '/.+/[^\\/]+$': { + '^/[^/]+/[^/]+$': { script: [ 'jquery', 'github' diff --git a/packages/mitmproxy/src/lib/choice/index.js b/packages/mitmproxy/src/lib/choice/index.js index f213dbe7..24d9fa6d 100644 --- a/packages/mitmproxy/src/lib/choice/index.js +++ b/packages/mitmproxy/src/lib/choice/index.js @@ -1,5 +1,6 @@ const LRU = require('lru-cache') const cacheSize = 1024 +const log = require('../../utils/util.log') class ChoiceCache { constructor () { this.cache = new LRU(cacheSize) @@ -52,7 +53,7 @@ class DynamicChoice { list.sort((a, b) => { return b.successRate - a.successRate }) - console.log('do rank', list) + log.info('do rank', JSON.stringify(list)) const backup = list.map(item => item.value) this.setBackupList(backup) diff --git a/packages/mitmproxy/src/lib/interceptor/impl/proxy.js b/packages/mitmproxy/src/lib/interceptor/impl/proxy.js index 526710ac..538e09d9 100644 --- a/packages/mitmproxy/src/lib/interceptor/impl/proxy.js +++ b/packages/mitmproxy/src/lib/interceptor/impl/proxy.js @@ -4,12 +4,16 @@ module.exports = { const { rOptions, log, RequestCounter } = context let proxyConf = interceptOpt.proxy - if (RequestCounter && interceptOpt.backup && interceptOpt.backup.length > 0) { + if (RequestCounter) { // 优选逻辑 const backup = [proxyConf] - for (const bk of interceptOpt.backup) { - backup.push(bk) + if (interceptOpt.backup) { + for (const bk of interceptOpt.backup) { + backup.push(bk) + } } + backup.push(rOptions.hostname) + const key = interceptOpt.key const count = RequestCounter.getOrCreate(key, backup) if (count.value == null) { From 7713bffdc018a4bf9da5620457f8227ca472464d Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Tue, 17 Nov 2020 18:49:46 +0800 Subject: [PATCH 18/51] =?UTF-8?q?docs:=20=E5=B0=8F=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/mitmproxy/test/{matchTest.mjs => matchTest.js} | 3 +++ 1 file changed, 3 insertions(+) rename packages/mitmproxy/test/{matchTest.mjs => matchTest.js} (65%) diff --git a/packages/mitmproxy/test/matchTest.mjs b/packages/mitmproxy/test/matchTest.js similarity index 65% rename from packages/mitmproxy/test/matchTest.mjs rename to packages/mitmproxy/test/matchTest.js index 56898a83..44cd1eca 100644 --- a/packages/mitmproxy/test/matchTest.mjs +++ b/packages/mitmproxy/test/matchTest.js @@ -2,3 +2,6 @@ const name = '/docmirror/dev-sidecar/raw/master/doc/index.png' // https://raw.fastgit.org/docmirror/dev-sidecar/master/doc/index.png const ret = name.replace(/^(.+)\/raw\/(.+)$/, 'raw.fastgit.org$1/$2') console.log(ret) + +const reg = new RegExp('^/[^/]+/[^/]+$') +console.log('/greper/d2-crud-plus/blob/master/.eslintignore'.match(reg)) From 041a4b16a183694f88bbd8e13a3eef85035cc8b8 Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Wed, 18 Nov 2020 14:46:42 +0800 Subject: [PATCH 19/51] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=8F=92?= =?UTF-8?q?=E5=85=A5=E8=84=9A=E6=9C=AC=E6=97=B6=E9=83=A8=E5=88=86=E5=AD=97?= =?UTF-8?q?=E7=AC=A6=E4=B9=B1=E7=A0=81=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/core/src/config/index.js | 2 +- .../src/lib/interceptor/impl/script.js | 2 +- ...iddleware.js => InsertScriptMiddleware.js} | 81 ++++++++++++++----- .../lib/proxy/middleware/ScriptMiddleware.js | 23 ------ .../proxy/mitmproxy/createRequestHandler.js | 24 +++--- .../lib/proxy/mitmproxy/middlewareHandler.js | 20 ----- packages/mitmproxy/test/matchTest.js | 10 +++ 7 files changed, 82 insertions(+), 80 deletions(-) rename packages/mitmproxy/src/lib/proxy/middleware/{HtmlMiddleware.js => InsertScriptMiddleware.js} (56%) delete mode 100644 packages/mitmproxy/src/lib/proxy/middleware/ScriptMiddleware.js delete mode 100644 packages/mitmproxy/src/lib/proxy/mitmproxy/middlewareHandler.js diff --git a/packages/core/src/config/index.js b/packages/core/src/config/index.js index 680f277a..d305c2a8 100644 --- a/packages/core/src/config/index.js +++ b/packages/core/src/config/index.js @@ -29,7 +29,7 @@ module.exports = { '/.*': { proxy: 'github.com', backup: [ - 'github.docmirror.cn/_proxy' + 'gh.docmirror.top/_proxy' ] } }, diff --git a/packages/mitmproxy/src/lib/interceptor/impl/script.js b/packages/mitmproxy/src/lib/interceptor/impl/script.js index 354e16e7..19de3ce0 100644 --- a/packages/mitmproxy/src/lib/interceptor/impl/script.js +++ b/packages/mitmproxy/src/lib/interceptor/impl/script.js @@ -28,7 +28,7 @@ module.exports = { const scriptTag = getScript(key, script.script) tags += '\r\n' + scriptTag } - log.info('responseIntercept: append script', rOptions.hostname, rOptions.path) + log.info('responseIntercept: insert script', rOptions.hostname, rOptions.path) return { head: tags } diff --git a/packages/mitmproxy/src/lib/proxy/middleware/HtmlMiddleware.js b/packages/mitmproxy/src/lib/proxy/middleware/InsertScriptMiddleware.js similarity index 56% rename from packages/mitmproxy/src/lib/proxy/middleware/HtmlMiddleware.js rename to packages/mitmproxy/src/lib/proxy/middleware/InsertScriptMiddleware.js index f345bcd4..a85925f6 100644 --- a/packages/mitmproxy/src/lib/proxy/middleware/HtmlMiddleware.js +++ b/packages/mitmproxy/src/lib/proxy/middleware/InsertScriptMiddleware.js @@ -4,6 +4,15 @@ const zlib = require('zlib') const url = require('url') var httpUtil = {} +httpUtil.getCharset = function (res) { + const contentType = res.getHeader('content-type') + const reg = /charset=(.*)/ + const matched = contentType.match(reg) + if (matched) { + return matched[1] + } + return 'utf-8' +} httpUtil.isGzip = function (res) { var contentEncoding = res.headers['content-encoding'] return !!(contentEncoding && contentEncoding.toLowerCase() === 'gzip') @@ -12,34 +21,63 @@ httpUtil.isHtml = function (res) { var contentType = res.headers['content-type'] return (typeof contentType !== 'undefined') && /text\/html|application\/xhtml\+xml/.test(contentType) } +const HEAD = Buffer.from('') +const HEAD_UP = Buffer.from('') +const BODY = Buffer.from('') +const BODY_UP = Buffer.from('') -function injectScriptIntoHeadHtml (html, script) { - html = html.replace(/(<\/head>)/i, function (match) { - return script + match - }) - return html -} - -function injectScriptIntoBodyHtml (html, script) { - html = html.replace(/(<\/body>)/i, function (match) { - return script + match - }) - return html -} - -function chunkReplace (_this, chunk, enc, callback, append) { - let chunkString = chunk.toString() +function chunkByteReplace (_this, chunk, enc, callback, append) { if (append && append.head) { - chunkString = injectScriptIntoHeadHtml(chunkString, append.head) + const ret = injectScriptIntoHtml([HEAD, HEAD_UP], chunk, append.head) + if (ret != null) { + chunk = ret + } } if (append && append.body) { - chunkString = injectScriptIntoBodyHtml(chunkString, append.body) + const ret = injectScriptIntoHtml([BODY, BODY_UP], chunk, append.body) + if (ret != null) { + chunk = ret + } } - _this.push(Buffer.from(chunkString)) + _this.push(chunk) callback() } +function injectScriptIntoHtml (tags, chunk, script) { + for (const tag of tags) { + const index = chunk.indexOf(tag) + if (index < 0) { + continue + } + const scriptBuf = Buffer.from(script) + const chunkNew = Buffer.alloc(chunk.length + scriptBuf.length) + chunk.copy(chunkNew, 0, 0, index) + scriptBuf.copy(chunkNew, index, 0) + chunk.copy(chunkNew, index + scriptBuf.length, index) + return chunkNew + } + return null +} +const contextPath = '/____ds_script____/' +const monkey = require('../../monkey') module.exports = { + + requestIntercept (context, req, res, ssl, next) { + const { rOptions, log } = context + if (rOptions.path.indexOf(contextPath) !== 0) { + return + } + const urlPath = rOptions.path + const filename = urlPath.replace(contextPath, '') + + const script = monkey.get()[filename] + + log.info('ds_script', filename, script != null) + res.writeHead(200) + res.write(script.script) + res.end() + return true + }, responseInterceptor (req, res, proxyReq, proxyRes, ssl, next, append) { if (!append.head && !append.body) { next() @@ -52,6 +90,7 @@ module.exports = { })() if (!isHtml || contentLengthIsZero) { next() + return } else { Object.keys(proxyRes.headers).forEach(function (key) { if (proxyRes.headers[key] !== undefined) { @@ -88,11 +127,11 @@ module.exports = { if (isGzip) { proxyRes.pipe(new zlib.Gunzip()) .pipe(through(function (chunk, enc, callback) { - chunkReplace(this, chunk, enc, callback, append) + chunkByteReplace(this, chunk, enc, callback, append) })).pipe(new zlib.Gzip()).pipe(res) } else { proxyRes.pipe(through(function (chunk, enc, callback) { - chunkReplace(this, chunk, enc, callback, append) + chunkByteReplace(this, chunk, enc, callback, append) })).pipe(res) } } diff --git a/packages/mitmproxy/src/lib/proxy/middleware/ScriptMiddleware.js b/packages/mitmproxy/src/lib/proxy/middleware/ScriptMiddleware.js deleted file mode 100644 index 47c85132..00000000 --- a/packages/mitmproxy/src/lib/proxy/middleware/ScriptMiddleware.js +++ /dev/null @@ -1,23 +0,0 @@ -const contextPath = '/____ds_script____/' -const monkey = require('../../monkey') -module.exports = { - requestIntercept (context, req, res, ssl, next) { - const { rOptions, log } = context - const urlPath = rOptions.path - const filename = urlPath.replace(contextPath, '') - - const script = monkey.get()[filename] - - log.info('ds_script', filename, script != null) - res.writeHead(200) - res.write(script.script) - res.end() - return true - }, - is (rOptions) { - if (rOptions.path.indexOf(contextPath) !== 0) { - return false - } - return true - } -} diff --git a/packages/mitmproxy/src/lib/proxy/mitmproxy/createRequestHandler.js b/packages/mitmproxy/src/lib/proxy/mitmproxy/createRequestHandler.js index e702d08d..2c3a5774 100644 --- a/packages/mitmproxy/src/lib/proxy/mitmproxy/createRequestHandler.js +++ b/packages/mitmproxy/src/lib/proxy/mitmproxy/createRequestHandler.js @@ -4,9 +4,10 @@ const commonUtil = require('../common/util') // const upgradeHeader = /(^|,)\s*upgrade\s*($|,)/i const DnsUtil = require('../../dns/index') const log = require('../../../utils/util.log') -const HtmlMiddleware = require('../middleware/HtmlMiddleware') const RequestCounter = require('../../choice/RequestCounter') -const ScriptMiddleware = require('../middleware/ScriptMiddleware') +const InsertScriptMiddleware = require('../middleware/InsertScriptMiddleware') +const defaultDns = require('dns') +const MAX_SLOW_TIME = 8000 // 超过此时间 则认为太慢了 // create requestHandler function module.exports = function createRequestHandler (createIntercepts, externalProxy, dnsConfig) { // return @@ -30,7 +31,7 @@ module.exports = function createRequestHandler (createIntercepts, externalProxy, if (interceptors == null) { interceptors = [] } - let reqIncpts = interceptors.filter(item => { return item.requestIntercept != null }) + const reqIncpts = interceptors.filter(item => { return item.requestIntercept != null }) const resIncpts = interceptors.filter(item => { return item.responseIntercept != null }) const requestInterceptorPromise = () => { @@ -39,13 +40,7 @@ module.exports = function createRequestHandler (createIntercepts, externalProxy, resolve() } try { - if (ScriptMiddleware.is(rOptions)) { - if (reqIncpts == null) { - reqIncpts = [] - } - reqIncpts.unshift(ScriptMiddleware) - } - + reqIncpts.unshift(InsertScriptMiddleware) if (reqIncpts && reqIncpts.length > 0) { for (const reqIncpt of reqIncpts) { const goNext = reqIncpt.requestIntercept(context, req, res, ssl, next) @@ -105,19 +100,20 @@ module.exports = function createRequestHandler (createIntercepts, externalProxy, if (ip !== hostname) { callback(null, ip, 4) } else { - rOptions.lookup(hostname, options, callback) + defaultDns.lookup(hostname, options, callback) } }) } } } + proxyReq = (rOptions.protocol === 'https:' ? https : http).request(rOptions, (proxyRes) => { const end = new Date().getTime() const cost = end - start if (rOptions.protocol === 'https:') { log.info('代理请求返回:', url, cost + 'ms') } - if (cost > 8000) { + if (cost > MAX_SLOW_TIME) { countSlow(isDnsIntercept) } resolve(proxyRes) @@ -146,7 +142,7 @@ module.exports = function createRequestHandler (createIntercepts, externalProxy, const cost = end - start log.error('代理请求被取消', rOptions.hostname, rOptions.path, cost + 'ms') - if (cost > 8000) { + if (cost > MAX_SLOW_TIME) { countSlow(isDnsIntercept) } @@ -212,7 +208,7 @@ module.exports = function createRequestHandler (createIntercepts, externalProxy, body += append.body } } - HtmlMiddleware.responseInterceptor(req, res, proxyReq, proxyRes, ssl, next, { head, body }) + InsertScriptMiddleware.responseInterceptor(req, res, proxyReq, proxyRes, ssl, next, { head, body }) } else { next() } diff --git a/packages/mitmproxy/src/lib/proxy/mitmproxy/middlewareHandler.js b/packages/mitmproxy/src/lib/proxy/mitmproxy/middlewareHandler.js deleted file mode 100644 index 2820f765..00000000 --- a/packages/mitmproxy/src/lib/proxy/mitmproxy/middlewareHandler.js +++ /dev/null @@ -1,20 +0,0 @@ -const _ = require('lodash') -module.exports = (middlewares) => { - if (middlewares) { - if (Object.prototype.toString.call(middlewares) !== '[object Array]') { - throw new TypeError('middlewares must be a array') - } - } - // - // const sslConnectInterceptors = [] - // const requestInterceptors = [] - // const responseInterceptors = [] - - _.each(middlewares, (m) => { - if (m.buildIn === false || m.buildIn === 'false') { - - } else { - // m.name - } - }) -} diff --git a/packages/mitmproxy/test/matchTest.js b/packages/mitmproxy/test/matchTest.js index 44cd1eca..67348d5a 100644 --- a/packages/mitmproxy/test/matchTest.js +++ b/packages/mitmproxy/test/matchTest.js @@ -5,3 +5,13 @@ console.log(ret) const reg = new RegExp('^/[^/]+/[^/]+$') console.log('/greper/d2-crud-plus/blob/master/.eslintignore'.match(reg)) + +const chunk = Buffer.from('') +const script = '' +const index = chunk.indexOf('') +const scriptBuf = Buffer.from(script) +const chunkNew = Buffer.alloc(chunk.length + scriptBuf.length) +chunk.copy(chunkNew, 0, 0, index) +scriptBuf.copy(chunkNew, index, 0) +chunk.copy(chunkNew, index + scriptBuf.length, index) +console.log(chunkNew.toString()) From 987f8eb112d888423cb273f024d9dffaf32c526d Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Wed, 18 Nov 2020 17:28:18 +0800 Subject: [PATCH 20/51] =?UTF-8?q?refactor:=20=E6=89=93=E5=8C=85=E6=94=AF?= =?UTF-8?q?=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/core/src/config/index.js | 3 +- packages/core/start/mitmproxy.js | 3 ++ .../extra}/scripts/github.script | 0 .../extra}/scripts/global.script | 0 .../extra}/scripts/jquery.min.js | 0 packages/gui/src/bridge/mitmproxy.js | 8 ++++++ packages/gui/src/view/modules/update/index.js | 1 + .../src/lib/interceptor/impl/script.js | 28 +++++++++++-------- packages/mitmproxy/src/lib/monkey/grants.js | 8 ------ packages/mitmproxy/src/lib/monkey/index.js | 19 +++++++------ .../middleware/InsertScriptMiddleware.js | 4 +-- .../proxy/mitmproxy/createRequestHandler.js | 5 ++-- .../src/lib/proxy/mitmproxy/index.js | 7 +++-- packages/mitmproxy/src/options.js | 3 +- 14 files changed, 52 insertions(+), 37 deletions(-) rename packages/{mitmproxy/src/lib/monkey => gui/extra}/scripts/github.script (100%) rename packages/{mitmproxy/src/lib/monkey => gui/extra}/scripts/global.script (100%) rename packages/{mitmproxy/src/lib/monkey => gui/extra}/scripts/jquery.min.js (100%) delete mode 100644 packages/mitmproxy/src/lib/monkey/grants.js diff --git a/packages/core/src/config/index.js b/packages/core/src/config/index.js index d305c2a8..756e4b76 100644 --- a/packages/core/src/config/index.js +++ b/packages/core/src/config/index.js @@ -3,7 +3,8 @@ module.exports = { enabled: true, port: 1181, setting: { - NODE_TLS_REJECT_UNAUTHORIZED: true + NODE_TLS_REJECT_UNAUTHORIZED: true, + scriptDir: '../../../scripts/' }, intercepts: { 'github.com': { diff --git a/packages/core/start/mitmproxy.js b/packages/core/start/mitmproxy.js index 195df533..428aa196 100644 --- a/packages/core/start/mitmproxy.js +++ b/packages/core/start/mitmproxy.js @@ -1,4 +1,7 @@ // eslint-disable-next-line no-unused-vars const server = require('@docmirror/mitmproxy') const config = JSON.parse(process.argv[2]) +const path = require('path') +const scriptDir = '../../gui/extra/scripts/' +config.setting.scriptDir = path.join(__dirname, scriptDir) server.start(config) diff --git a/packages/mitmproxy/src/lib/monkey/scripts/github.script b/packages/gui/extra/scripts/github.script similarity index 100% rename from packages/mitmproxy/src/lib/monkey/scripts/github.script rename to packages/gui/extra/scripts/github.script diff --git a/packages/mitmproxy/src/lib/monkey/scripts/global.script b/packages/gui/extra/scripts/global.script similarity index 100% rename from packages/mitmproxy/src/lib/monkey/scripts/global.script rename to packages/gui/extra/scripts/global.script diff --git a/packages/mitmproxy/src/lib/monkey/scripts/jquery.min.js b/packages/gui/extra/scripts/jquery.min.js similarity index 100% rename from packages/mitmproxy/src/lib/monkey/scripts/jquery.min.js rename to packages/gui/extra/scripts/jquery.min.js diff --git a/packages/gui/src/bridge/mitmproxy.js b/packages/gui/src/bridge/mitmproxy.js index 195df533..ea553e99 100644 --- a/packages/gui/src/bridge/mitmproxy.js +++ b/packages/gui/src/bridge/mitmproxy.js @@ -1,4 +1,12 @@ // eslint-disable-next-line no-unused-vars const server = require('@docmirror/mitmproxy') const config = JSON.parse(process.argv[2]) +const path = require('path') +const log = require('../utils/util.log') +let scriptDir = '../extra/scripts/' +if (process.env.NODE_ENV === 'development') { + scriptDir = '../extra/scripts/' +} +config.setting.scriptDir = path.join(__dirname, scriptDir) +log.debug('scriptDir', config.setting.scriptDir) server.start(config) diff --git a/packages/gui/src/view/modules/update/index.js b/packages/gui/src/view/modules/update/index.js index 376911ea..f7eb6c9f 100644 --- a/packages/gui/src/view/modules/update/index.js +++ b/packages/gui/src/view/modules/update/index.js @@ -49,6 +49,7 @@ function install (app, api) { updateParams.newVersion = true if (updateParams.autoDownload !== false) { + app.$message.info('发现新版本,正在下载中...') api.update.downloadUpdate() return } diff --git a/packages/mitmproxy/src/lib/interceptor/impl/script.js b/packages/mitmproxy/src/lib/interceptor/impl/script.js index 19de3ce0..a28468ed 100644 --- a/packages/mitmproxy/src/lib/interceptor/impl/script.js +++ b/packages/mitmproxy/src/lib/interceptor/impl/script.js @@ -14,23 +14,27 @@ function getScript (key, script) { module.exports = { responseIntercept (context, interceptOpt, req, res, proxyReq, proxyRes, ssl, next) { - const { rOptions, log } = context + const { rOptions, log, setting } = context let keys = interceptOpt.script if (typeof keys === 'string') { keys = [keys] } - let tags = getScript('global', monkey.get().global.script) - for (const key of keys) { - const script = monkey.get()[key] - if (script == null) { - continue + try { + let tags = getScript('global', monkey.get(setting.scriptDir).global.script) + for (const key of keys) { + const script = monkey.get(setting.scriptDir)[key] + if (script == null) { + continue + } + const scriptTag = getScript(key, script.script) + tags += '\r\n' + scriptTag } - const scriptTag = getScript(key, script.script) - tags += '\r\n' + scriptTag - } - log.info('responseIntercept: insert script', rOptions.hostname, rOptions.path) - return { - head: tags + log.info('responseIntercept: insert script', rOptions.hostname, rOptions.path) + return { + head: tags + } + } catch (err) { + log.error('load monkey script error', err) } }, is (interceptOpt) { diff --git a/packages/mitmproxy/src/lib/monkey/grants.js b/packages/mitmproxy/src/lib/monkey/grants.js deleted file mode 100644 index 2678a759..00000000 --- a/packages/mitmproxy/src/lib/monkey/grants.js +++ /dev/null @@ -1,8 +0,0 @@ -const Monkey_Grants = { - GM_registerMenuCommand: () => {}, - GM_unregisterMenuCommand: () => {}, - GM_openInTab: () => {}, - GM_getValue: () => {}, - GM_setValue: () => {}, - GM_notification: () => {} -} diff --git a/packages/mitmproxy/src/lib/monkey/index.js b/packages/mitmproxy/src/lib/monkey/index.js index 8fd3b836..4f3efdfe 100644 --- a/packages/mitmproxy/src/lib/monkey/index.js +++ b/packages/mitmproxy/src/lib/monkey/index.js @@ -1,5 +1,6 @@ const fs = require('fs') const path = require('path') +const log = require('../../utils/util.log') let scripts function buildScript (sc, content) { @@ -54,22 +55,24 @@ function loadScript (content) { return sc } -function readFile (script) { - return fs.readFileSync(path.join(__dirname, './scripts/' + script)).toString() +function readFile (rootDir, script) { + const location = path.join(rootDir, './' + script) + log.debug('script location:', location) + return fs.readFileSync(location).toString() } const api = { - get () { + get (rootDir) { if (scripts == null) { - api.load() + api.load(rootDir) } return scripts }, - load () { + load (rootDir) { scripts = {} - scripts.github = loadScript(readFile('github.script')) - scripts.jquery = { script: readFile('jquery.min.js') } - scripts.global = { script: readFile('global.script') } + scripts.github = loadScript(readFile(rootDir, 'github.script')) + scripts.jquery = { script: readFile(rootDir, 'jquery.min.js') } + scripts.global = { script: readFile(rootDir, 'global.script') } return scripts } } diff --git a/packages/mitmproxy/src/lib/proxy/middleware/InsertScriptMiddleware.js b/packages/mitmproxy/src/lib/proxy/middleware/InsertScriptMiddleware.js index a85925f6..eb245772 100644 --- a/packages/mitmproxy/src/lib/proxy/middleware/InsertScriptMiddleware.js +++ b/packages/mitmproxy/src/lib/proxy/middleware/InsertScriptMiddleware.js @@ -63,14 +63,14 @@ const monkey = require('../../monkey') module.exports = { requestIntercept (context, req, res, ssl, next) { - const { rOptions, log } = context + const { rOptions, log, setting } = context if (rOptions.path.indexOf(contextPath) !== 0) { return } const urlPath = rOptions.path const filename = urlPath.replace(contextPath, '') - const script = monkey.get()[filename] + const script = monkey.get(setting.scriptDir)[filename] log.info('ds_script', filename, script != null) res.writeHead(200) diff --git a/packages/mitmproxy/src/lib/proxy/mitmproxy/createRequestHandler.js b/packages/mitmproxy/src/lib/proxy/mitmproxy/createRequestHandler.js index 2c3a5774..f0ce1767 100644 --- a/packages/mitmproxy/src/lib/proxy/mitmproxy/createRequestHandler.js +++ b/packages/mitmproxy/src/lib/proxy/mitmproxy/createRequestHandler.js @@ -9,7 +9,7 @@ const InsertScriptMiddleware = require('../middleware/InsertScriptMiddleware') const defaultDns = require('dns') const MAX_SLOW_TIME = 8000 // 超过此时间 则认为太慢了 // create requestHandler function -module.exports = function createRequestHandler (createIntercepts, externalProxy, dnsConfig) { +module.exports = function createRequestHandler (createIntercepts, externalProxy, dnsConfig, setting) { // return return function requestHandler (req, res, ssl) { let proxyReq @@ -25,7 +25,8 @@ module.exports = function createRequestHandler (createIntercepts, externalProxy, const context = { rOptions, log, - RequestCounter + RequestCounter, + setting } let interceptors = createIntercepts(context) if (interceptors == null) { diff --git a/packages/mitmproxy/src/lib/proxy/mitmproxy/index.js b/packages/mitmproxy/src/lib/proxy/mitmproxy/index.js index 5a9061d2..4ac2da05 100644 --- a/packages/mitmproxy/src/lib/proxy/mitmproxy/index.js +++ b/packages/mitmproxy/src/lib/proxy/mitmproxy/index.js @@ -16,7 +16,8 @@ module.exports = { getCertSocketTimeout = 1 * 1000, middlewares = [], externalProxy, - dnsConfig + dnsConfig, + setting }, callback) { // Don't reject unauthorized // process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0' @@ -34,9 +35,9 @@ module.exports = { port = ~~port const requestHandler = createRequestHandler( createIntercepts, - middlewares, externalProxy, - dnsConfig + dnsConfig, + setting ) const upgradeHandler = createUpgradeHandler() diff --git a/packages/mitmproxy/src/options.js b/packages/mitmproxy/src/options.js index 32d432eb..b85b8d74 100644 --- a/packages/mitmproxy/src/options.js +++ b/packages/mitmproxy/src/options.js @@ -2,6 +2,7 @@ const interceptors = require('./lib/interceptor') const dnsUtil = require('./lib/dns') const lodash = require('lodash') const log = require('./utils/util.log') +const path = require('path') function matchHostname (hostMap, hostname) { const value = hostMap[hostname] if (value) { @@ -47,13 +48,13 @@ module.exports = (config) => { const dnsMapping = config.dns.mapping const serverConfig = config - return { port: serverConfig.port, dnsConfig: { providers: dnsUtil.initDNS(serverConfig.dns.providers), mapping: dnsMapping }, + setting: serverConfig.setting, sslConnectInterceptor: (req, cltSocket, head) => { const hostname = req.url.split(':')[0] const inWhiteList = matchHostname(whiteList, hostname) != null From 31d0e147264385e9ff2d1ec029857c7c182159a3 Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Wed, 18 Nov 2020 17:43:03 +0800 Subject: [PATCH 21/51] =?UTF-8?q?perf:=20=E6=94=AF=E6=8C=81=E6=A8=A1?= =?UTF-8?q?=E6=8B=9F=E6=88=90=E5=8A=9F=E8=BF=94=E5=9B=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/core/src/config/index.js | 6 ++++++ .../mitmproxy/src/lib/interceptor/impl/success.js | 13 +++++++++++++ packages/mitmproxy/src/lib/interceptor/index.js | 3 ++- 3 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 packages/mitmproxy/src/lib/interceptor/impl/success.js diff --git a/packages/core/src/config/index.js b/packages/core/src/config/index.js index 756e4b76..5aff5caf 100644 --- a/packages/core/src/config/index.js +++ b/packages/core/src/config/index.js @@ -34,6 +34,12 @@ module.exports = { ] } }, + 'api.github.com': { + '^/_private/browser/stats$': { + success: true, + desc: 'github的访问速度分析上传,没有必要,直接返回成功' + } + }, 'raw.githubusercontent.com': { '.*': { proxy: 'raw.fastgit.org' } }, diff --git a/packages/mitmproxy/src/lib/interceptor/impl/success.js b/packages/mitmproxy/src/lib/interceptor/impl/success.js new file mode 100644 index 00000000..de78077f --- /dev/null +++ b/packages/mitmproxy/src/lib/interceptor/impl/success.js @@ -0,0 +1,13 @@ +module.exports = { + requestIntercept (context, interceptOpts, req, res, ssl, next) { + const { rOptions, log } = context + log.info('success:', rOptions.hostname, req.url) + res.writeHead(200) + res.write('DevSidecar 200: \n\n request success, this request is matched by success intercept.\n\n 因配置success拦截器,本请求将直接返回成功') + res.end() + return true// 是否结束 + }, + is (interceptOpt) { + return !!interceptOpt.success + } +} diff --git a/packages/mitmproxy/src/lib/interceptor/index.js b/packages/mitmproxy/src/lib/interceptor/index.js index 127d68cf..0a50ec3f 100644 --- a/packages/mitmproxy/src/lib/interceptor/index.js +++ b/packages/mitmproxy/src/lib/interceptor/index.js @@ -1,7 +1,8 @@ const proxy = require('./impl/proxy') const redirect = require('./impl/redirect') const abort = require('./impl/abort') +const success = require('./impl/success') const script = require('./impl/script') -const modules = [proxy, redirect, abort, script] +const modules = [proxy, redirect, abort, script, success] module.exports = modules From 98a2c845a31612813e3d51444d7db692478c565c Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Wed, 18 Nov 2020 17:52:04 +0800 Subject: [PATCH 22/51] =?UTF-8?q?perf:=20=E9=85=8D=E7=BD=AE=E6=8F=8F?= =?UTF-8?q?=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/core/src/config/index.js | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/packages/core/src/config/index.js b/packages/core/src/config/index.js index 5aff5caf..af5b29d1 100644 --- a/packages/core/src/config/index.js +++ b/packages/core/src/config/index.js @@ -9,7 +9,8 @@ module.exports = { intercepts: { 'github.com': { '/.*/.*/releases/download/': { - redirect: 'download.fastgit.org' + redirect: 'download.fastgit.org', + desc: 'release文件加速下载跳转地址' }, '/.*/.*/archive/': { redirect: 'download.fastgit.org' @@ -25,13 +26,15 @@ module.exports = { script: [ 'jquery', 'github' - ] + ], + desc: 'clone加速复制链接脚本' }, '/.*': { proxy: 'github.com', backup: [ 'gh.docmirror.top/_proxy' - ] + ], + desc: '备用主站加速地址' } }, 'api.github.com': { @@ -44,7 +47,8 @@ module.exports = { '.*': { proxy: 'raw.fastgit.org' } }, 'github.githubassets.com': { - '.*': { proxy: 'assets.fastgit.org', test: 'https://github.githubassets.com/favicons/favicon.svg' } + '.*': { proxy: 'assets.fastgit.org', test: 'https://github.githubassets.com/favicons/favicon.svg', desc: '静态资源加速' } + }, 'customer-stories-feed.github.com': { '.*': { proxy: 'customer-stories-feed.fastgit.org' } From 3ff608f6b47bcf8bb12f0bc4747e91a2643014be Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Wed, 18 Nov 2020 18:23:27 +0800 Subject: [PATCH 23/51] =?UTF-8?q?perf:=20=E6=94=AF=E6=8C=81=E5=85=B3?= =?UTF-8?q?=E9=97=AD=E8=84=9A=E6=9C=AC=E6=8F=92=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/core/src/config/index.js | 5 ++++- packages/core/start/mitmproxy.js | 2 +- packages/gui/src/bridge/mitmproxy.js | 4 ++-- packages/gui/src/view/mixins/plugin.js | 1 + packages/gui/src/view/pages/server.vue | 11 +++++++++-- packages/mitmproxy/src/lib/interceptor/impl/script.js | 4 ++-- .../lib/proxy/middleware/InsertScriptMiddleware.js | 2 +- .../src/lib/proxy/mitmproxy/createRequestHandler.js | 9 ++++++++- 8 files changed, 28 insertions(+), 10 deletions(-) diff --git a/packages/core/src/config/index.js b/packages/core/src/config/index.js index af5b29d1..6f374b5b 100644 --- a/packages/core/src/config/index.js +++ b/packages/core/src/config/index.js @@ -4,7 +4,10 @@ module.exports = { port: 1181, setting: { NODE_TLS_REJECT_UNAUTHORIZED: true, - scriptDir: '../../../scripts/' + script: { + enabled: true, + defaultDir: '../../../scripts/' + } }, intercepts: { 'github.com': { diff --git a/packages/core/start/mitmproxy.js b/packages/core/start/mitmproxy.js index 428aa196..b133da98 100644 --- a/packages/core/start/mitmproxy.js +++ b/packages/core/start/mitmproxy.js @@ -3,5 +3,5 @@ const server = require('@docmirror/mitmproxy') const config = JSON.parse(process.argv[2]) const path = require('path') const scriptDir = '../../gui/extra/scripts/' -config.setting.scriptDir = path.join(__dirname, scriptDir) +config.setting.script.defaultDir = path.join(__dirname, scriptDir) server.start(config) diff --git a/packages/gui/src/bridge/mitmproxy.js b/packages/gui/src/bridge/mitmproxy.js index ea553e99..2d555fcc 100644 --- a/packages/gui/src/bridge/mitmproxy.js +++ b/packages/gui/src/bridge/mitmproxy.js @@ -7,6 +7,6 @@ let scriptDir = '../extra/scripts/' if (process.env.NODE_ENV === 'development') { scriptDir = '../extra/scripts/' } -config.setting.scriptDir = path.join(__dirname, scriptDir) -log.debug('scriptDir', config.setting.scriptDir) +config.setting.script.defaultDir = path.join(__dirname, scriptDir) +log.debug('scriptDir', config.setting.script.defaultDir) server.start(config) diff --git a/packages/gui/src/view/mixins/plugin.js b/packages/gui/src/view/mixins/plugin.js index e74d4a4f..e977dee6 100644 --- a/packages/gui/src/view/mixins/plugin.js +++ b/packages/gui/src/view/mixins/plugin.js @@ -30,6 +30,7 @@ export default { this.status = this.$status return this.$api.config.reload().then(ret => { this.config = ret + console.log('config', this.config) if (this.ready) { return this.ready(this.config) } diff --git a/packages/gui/src/view/pages/server.vue b/packages/gui/src/view/pages/server.vue index 2bd41921..88c32290 100644 --- a/packages/gui/src/view/pages/server.vue +++ b/packages/gui/src/view/pages/server.vue @@ -16,7 +16,7 @@ > - + 随应用启动 @@ -32,11 +32,18 @@ - + NODE_TLS_REJECT_UNAUTHORIZED
    开启此项之后,被代理应用关闭SSL校验也问题不大了
    + + + + 允许插入并运行脚本 + + +
    diff --git a/packages/mitmproxy/src/lib/interceptor/impl/script.js b/packages/mitmproxy/src/lib/interceptor/impl/script.js index a28468ed..ca989f90 100644 --- a/packages/mitmproxy/src/lib/interceptor/impl/script.js +++ b/packages/mitmproxy/src/lib/interceptor/impl/script.js @@ -20,9 +20,9 @@ module.exports = { keys = [keys] } try { - let tags = getScript('global', monkey.get(setting.scriptDir).global.script) + let tags = getScript('global', monkey.get(setting.script.defaultDir).global.script) for (const key of keys) { - const script = monkey.get(setting.scriptDir)[key] + const script = monkey.get(setting.script.defaultDir)[key] if (script == null) { continue } diff --git a/packages/mitmproxy/src/lib/proxy/middleware/InsertScriptMiddleware.js b/packages/mitmproxy/src/lib/proxy/middleware/InsertScriptMiddleware.js index eb245772..36451a23 100644 --- a/packages/mitmproxy/src/lib/proxy/middleware/InsertScriptMiddleware.js +++ b/packages/mitmproxy/src/lib/proxy/middleware/InsertScriptMiddleware.js @@ -70,7 +70,7 @@ module.exports = { const urlPath = rOptions.path const filename = urlPath.replace(contextPath, '') - const script = monkey.get(setting.scriptDir)[filename] + const script = monkey.get(setting.script.defaultDir)[filename] log.info('ds_script', filename, script != null) res.writeHead(200) diff --git a/packages/mitmproxy/src/lib/proxy/mitmproxy/createRequestHandler.js b/packages/mitmproxy/src/lib/proxy/mitmproxy/createRequestHandler.js index f0ce1767..8831cbdd 100644 --- a/packages/mitmproxy/src/lib/proxy/mitmproxy/createRequestHandler.js +++ b/packages/mitmproxy/src/lib/proxy/mitmproxy/createRequestHandler.js @@ -41,7 +41,9 @@ module.exports = function createRequestHandler (createIntercepts, externalProxy, resolve() } try { - reqIncpts.unshift(InsertScriptMiddleware) + if (setting.script.enabled) { + reqIncpts.unshift(InsertScriptMiddleware) + } if (reqIncpts && reqIncpts.length > 0) { for (const reqIncpt of reqIncpts) { const goNext = reqIncpt.requestIntercept(context, req, res, ssl, next) @@ -196,6 +198,10 @@ module.exports = function createRequestHandler (createIntercepts, externalProxy, const next = () => { resolve() } + if (!setting.script.enabled) { + next() + return + } try { if (resIncpts && resIncpts.length > 0) { let head = '' @@ -209,6 +215,7 @@ module.exports = function createRequestHandler (createIntercepts, externalProxy, body += append.body } } + InsertScriptMiddleware.responseInterceptor(req, res, proxyReq, proxyRes, ssl, next, { head, body }) } else { next() From c4f7be63bc601ff4cd961bde19015d5fa76c6ec0 Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Thu, 19 Nov 2020 09:15:08 +0800 Subject: [PATCH 24/51] =?UTF-8?q?refactor:=20=E5=B0=8F=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/core/src/config/index.js | 3 ++- packages/mitmproxy/test/dnsTest.mjs | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/core/src/config/index.js b/packages/core/src/config/index.js index 6f374b5b..05a75223 100644 --- a/packages/core/src/config/index.js +++ b/packages/core/src/config/index.js @@ -35,7 +35,8 @@ module.exports = { '/.*': { proxy: 'github.com', backup: [ - 'gh.docmirror.top/_proxy' + 'gh.docmirror.top/_proxy', + 'gh2.docmirror.top/_proxy' ], desc: '备用主站加速地址' } diff --git a/packages/mitmproxy/test/dnsTest.mjs b/packages/mitmproxy/test/dnsTest.mjs index 5e577605..e3476771 100644 --- a/packages/mitmproxy/test/dnsTest.mjs +++ b/packages/mitmproxy/test/dnsTest.mjs @@ -28,3 +28,5 @@ const hostname3 = 'github.docmirror.cn' dnsProviders.usa.lookup(hostname3) const hostname4 = 'gh.docmirror.top' dnsProviders.usa.lookup(hostname4) +const hostname5 = 'gh2.docmirror.top' +dnsProviders.usa.lookup(hostname5) From a350c8f564d0babf1784385267de5386575228c9 Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Thu, 19 Nov 2020 09:23:19 +0800 Subject: [PATCH 25/51] =?UTF-8?q?refactor:=20=E5=B0=8F=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/core/src/config/index.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/packages/core/src/config/index.js b/packages/core/src/config/index.js index 05a75223..d874df30 100644 --- a/packages/core/src/config/index.js +++ b/packages/core/src/config/index.js @@ -35,10 +35,9 @@ module.exports = { '/.*': { proxy: 'github.com', backup: [ - 'gh.docmirror.top/_proxy', - 'gh2.docmirror.top/_proxy' + 'gh.docmirror.top/_proxy' ], - desc: '备用主站加速地址' + desc: '如果出现dev-sidecar报错,可能是备用加速地址dns被污染了,需要将本条配置删除' } }, 'api.github.com': { From 930049dd6ddf85e63b59b01af81e30e1f72bee01 Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Thu, 19 Nov 2020 09:28:58 +0800 Subject: [PATCH 26/51] v1.2.0 --- lerna.json | 2 +- packages/core/package-lock.json | 2 +- packages/core/package.json | 6 +++--- packages/gui/package.json | 8 ++++---- packages/mitmproxy/package-lock.json | 2 +- packages/mitmproxy/package.json | 2 +- 6 files changed, 11 insertions(+), 11 deletions(-) diff --git a/lerna.json b/lerna.json index 1c376c71..828569a2 100644 --- a/lerna.json +++ b/lerna.json @@ -14,5 +14,5 @@ "ignore": [] } }, - "version": "1.1.0" + "version": "1.2.0" } diff --git a/packages/core/package-lock.json b/packages/core/package-lock.json index d53abdc0..96544c4a 100644 --- a/packages/core/package-lock.json +++ b/packages/core/package-lock.json @@ -1,6 +1,6 @@ { "name": "@docmirror/dev-sidecar", - "version": "1.1.0", + "version": "1.2.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/packages/core/package.json b/packages/core/package.json index ad3da479..5af87047 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@docmirror/dev-sidecar", - "version": "1.1.0", + "version": "1.2.0", "description": "给开发者的加速代理工具", "main": "src/index.js", "keywords": [ @@ -16,8 +16,7 @@ "start": "node ./start" }, "dependencies": { - "log4js": "^6.3.0", - "@docmirror/mitmproxy": "^1.1.0", + "@docmirror/mitmproxy": "^1.2.0", "agentkeepalive": "^2.1.1", "charset": "^1.0.0", "child_process": "^1.0.2", @@ -31,6 +30,7 @@ "jschardet": "^1.4.1", "json5": "^2.1.3", "lodash": "^4.7.0", + "log4js": "^6.3.0", "lru-cache": "^6.0.0", "mkdirp": "^0.5.1", "node-cmd": "^3.0.0", diff --git a/packages/gui/package.json b/packages/gui/package.json index 10f75a09..e3fc8668 100644 --- a/packages/gui/package.json +++ b/packages/gui/package.json @@ -1,6 +1,6 @@ { "name": "@docmirror/dev-sidecar-gui", - "version": "1.1.0", + "version": "1.2.0", "private": false, "license": "MPL-2.0", "scripts": { @@ -14,9 +14,8 @@ }, "main": "background.js", "dependencies": { - "log4js": "^6.3.0", - "@docmirror/dev-sidecar": "^1.1.0", - "@docmirror/mitmproxy": "^1.1.0", + "@docmirror/dev-sidecar": "^1.2.0", + "@docmirror/mitmproxy": "^1.2.0", "ant-design-vue": "^1.6.5", "core-js": "^3.6.5", "electron-baidu-tongji": "^1.0.5", @@ -25,6 +24,7 @@ "es-abstract": "^1.17.7", "json5": "^2.1.3", "lodash": "^4.17.20", + "log4js": "^6.3.0", "sass": "^1.27.1", "sass-loader": "^10.0.4", "vue": "^2.6.11", diff --git a/packages/mitmproxy/package-lock.json b/packages/mitmproxy/package-lock.json index 14b66a25..d26b3dd6 100644 --- a/packages/mitmproxy/package-lock.json +++ b/packages/mitmproxy/package-lock.json @@ -1,6 +1,6 @@ { "name": "@docmirror/mitmproxy", - "version": "1.1.0", + "version": "1.2.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/packages/mitmproxy/package.json b/packages/mitmproxy/package.json index c94eb45f..ef9dbab4 100644 --- a/packages/mitmproxy/package.json +++ b/packages/mitmproxy/package.json @@ -1,6 +1,6 @@ { "name": "@docmirror/mitmproxy", - "version": "1.1.0", + "version": "1.2.0", "description": "", "main": "src/index.js", "keywords": [ From 346c0fe8b82a0bd555bcd55f7910146d1ce67e8e Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Thu, 19 Nov 2020 10:38:44 +0800 Subject: [PATCH 27/51] =?UTF-8?q?refactor:=20=E5=8D=87=E7=BA=A7=E4=BC=98?= =?UTF-8?q?=E5=8C=96=EF=BC=8C=E4=BF=AE=E5=A4=8D=E6=B2=A1=E6=9C=89=E5=85=B3?= =?UTF-8?q?=E6=8E=89=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/gui/src/background.js | 23 +++++++++++++++-------- packages/gui/src/bridge/update-handle.js | 11 +++++++++-- 2 files changed, 24 insertions(+), 10 deletions(-) diff --git a/packages/gui/src/background.js b/packages/gui/src/background.js index e1929233..e5f22e28 100644 --- a/packages/gui/src/background.js +++ b/packages/gui/src/background.js @@ -112,7 +112,14 @@ function createWindow () { }) } -function quit (app) { +async function beforeQuit () { + return bridge.devSidecar.api.shutdown() +} +async function quit (app, callback) { + if (tray) { + tray.displayBalloon({ title: '正在关闭', content: '关闭中,请稍候。。。' }) + } + await beforeQuit() app.quit() } @@ -129,12 +136,12 @@ if (!isFirstInstance) { } else { app.on('before-quit', async (event) => { log.info('before-quit') - event.preventDefault() - // if (tray) { - // tray.displayBalloon({ title: '正在关闭,请稍候...', content: '正在关闭中,请稍候。。。' }) - // } - await bridge.devSidecar.api.shutdown() - app.exit() + // event.preventDefault() + // // if (tray) { + // // tray.displayBalloon({ title: '正在关闭,请稍候...', content: '正在关闭中,请稍候。。。' }) + // // } + // await bridge.devSidecar.api.shutdown() + // app.exit() }) app.on('second-instance', (event, commandLine, workingDirectory) => { log.info('new app started', commandLine) @@ -187,7 +194,7 @@ if (!isFirstInstance) { updateUrl = 'http://localhost/dev-sidecar/' } // 自动更新 - updateHandle(win, updateUrl) + updateHandle(app, win, beforeQuit, updateUrl) // 百度分析 ebtMain(ipcMain, isDevelopment) diff --git a/packages/gui/src/bridge/update-handle.js b/packages/gui/src/bridge/update-handle.js index b84a6d18..1dc2d2fa 100644 --- a/packages/gui/src/bridge/update-handle.js +++ b/packages/gui/src/bridge/update-handle.js @@ -8,7 +8,7 @@ import path from 'path' // eslint-disable-next-line no-unused-vars const isMac = process.platform === 'darwin' // 检测更新,在你想要检查更新的时候执行,renderer事件触发后的操作自行编写 -function updateHandle (win, updateUrl) { +function updateHandle (app, win, beforeQuit, updateUrl) { // // 更新前,删除本地安装包 ↓ // const updaterCacheDirName = 'dev-sidecar-updater' // const updatePendingPath = path.join(autoUpdater.app.baseCachePath, updaterCacheDirName, 'pending') @@ -68,7 +68,14 @@ function updateHandle (win, updateUrl) { ipcMain.on('update', (e, arg) => { if (arg.key === 'doUpdateNow') { // some code here to handle event - autoUpdater.quitAndInstall() + beforeQuit().then(() => { + autoUpdater.quitAndInstall() + if (app) { + setTimeout(() => { + app.exit() + }, 1000) + } + }) } else if (arg.key === 'checkForUpdate') { // 执行自动更新检查 log.info('autoUpdater checkForUpdates') From 68b3e5eabed4466da72e260eda15761dcaa95983 Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Thu, 19 Nov 2020 10:47:05 +0800 Subject: [PATCH 28/51] =?UTF-8?q?refactor:=20=E5=B0=8F=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index d4582374..3768de83 100644 --- a/README.md +++ b/README.md @@ -52,7 +52,9 @@ recaptcha 图片验证码加速 ![](./doc/index.png) #### 1.2 安装根证书 -第一次打开会提示安装根证书 +第一次打开会在本机自动随机生成根证书,不用担心根证书的安全问题 +请根据提示安装根证书 + #### 1.3 开始加速吧 去试试打开github From 7d21e4fc3e45986aa45cb91dd9604cb8ff57f212 Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Thu, 19 Nov 2020 10:50:20 +0800 Subject: [PATCH 29/51] =?UTF-8?q?refactor:=20=E5=B0=8F=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 3768de83..847a8857 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,9 @@ recaptcha 图片验证码加速 #### 1.1 下载安装包 -[点此去下载](https://dev-sidecar.docmirror.cn/update/DevSidecar-1.1.0.exe) +[点此去下载](https://dev-sidecar.docmirror.cn/update/DevSidecar-1.2.0.exe) +[Gitee](https://gitee.com/docmirror/dev-sidecar/releases) +[Github](https://github.com/docmirror/dev-sidecar/releases) 安装后打开 From 8df484d2c01dba6ad06c4bf599edc49b0fe64fc1 Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Thu, 19 Nov 2020 11:19:47 +0800 Subject: [PATCH 30/51] =?UTF-8?q?refactor:=20=E5=B0=8F=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 67 ++++++++++++++++++++++++++++---------------------- doc/clone.png | Bin 52007 -> 23409 bytes 2 files changed, 37 insertions(+), 30 deletions(-) diff --git a/README.md b/README.md index 847a8857..980ef48f 100644 --- a/README.md +++ b/README.md @@ -9,45 +9,48 @@ ## 特性 -### 1、 github的release、source、zip下载加速 -可解决npm install 时某些安装包下载不下来的问题 - -### 2、 dns优选 +### 1、 dns优选 根据网络状况智能解析最佳域名ip地址,获取最佳网络速度 -第一次访问会比较慢,等多次访问之后,慢慢的选到比较快的ip,之后就很快了 -比如: -1. 解决git push 偶尔失败需要输入账号密码的问题( -fatal: TaskCanceledException encountered / fatal: HttpRequestException encountered) -2. 解决github头像加载不出来的问题 -3. 解决gist.github.com访问不到的问题 +第一次访问会比较慢,等多次访问之后,慢慢的选到比较快的ip,之后就很快了 +建议遇到打开比较慢的国外网站,可以优先尝试将该域名添加到dns设置中(注意:被GFW封杀的无效) -### 3、 github的源代码查看(raw/blame查看) -通过跳转到国内加速链接上 +### 2、 请求拦截 +拦截打不开的网站,代理到加速镜像站点上去。 +可配置多个镜像站作为备份 +具备测速机制,当访问失败或超时之后,自动切换到备用站点。 +使得目标服务高可用 + +### 3、 github加速 +* release、source、zip下载加速 +* clone 加速 +* 头像加速 +* 解决readme中图片引用无法加载的问题 +* gist.github.com 加速 +* 解决git push 偶尔失败需要输入账号密码的问题(fatal: TaskCanceledException encountered / fatal: HttpRequestException encountered) +* raw/blame加速 ### 4、 Stack Overflow 加速 +* 将ajax.google.com代理到加速CDN上 +* recaptcha 图片验证码加速 -将ajax.google.com代理到加速CDN上 -recaptcha 图片验证码加速 - - -### 5、 google cdn 加速 -通过代理到加速链接上 +### 5、 npm加速 +* 支持开启npm代理 +* 切换npm淘宝registry +* 某些npm install的时候,并且使用cnpm也无法安装时,可以尝试开启npm代理再试 ### 6、 更多加速配置 等你来提issue ## 快速开始 目前仅支持windows -### 1、 DevSidecar桌面应用发布啦 -暂时只支持windows - - +### 1、 DevSidecar桌面应用 #### 1.1 下载安装包 -[点此去下载](https://dev-sidecar.docmirror.cn/update/DevSidecar-1.2.0.exe) -[Gitee](https://gitee.com/docmirror/dev-sidecar/releases) -[Github](https://github.com/docmirror/dev-sidecar/releases) +下载安装包: +[阿里云](https://dev-sidecar.docmirror.cn/update/DevSidecar-1.2.0.exe) +[Gitee Release](https://gitee.com/docmirror/dev-sidecar/releases) +[Github Release](https://github.com/docmirror/dev-sidecar/releases) 安装后打开 @@ -68,6 +71,10 @@ recaptcha 图片验证码加速 ![](./doc/avatar2.png) ![](./doc/avatar1.png) +clone加速 +![](./doc/clone.png) + + ## 最佳实践 把dev-sidecar一直开着就行了 @@ -83,9 +90,7 @@ recaptcha 图片验证码加速 1. git clone 加速 方式1:快捷复制: - - ![](./doc/clone.png) - + 开启脚本支持,然后在复制clone链接下方,即可复制到加速链接 方式2: > 使用方式用实际的名称替换{}的内容,即可加速clone > https://hub.fastgit.org/{username}/{reponame}.git @@ -111,14 +116,16 @@ const intercepts = { // redirect:url, 临时重定向(url会变,一些下载资源可以通过此方式配置) // proxy:url, 代理(url不会变,没有跨域问题) // abort:true, 取消请求(适用于被GFW封锁的资源,找不到替代,直接取消请求,快速失败,节省时间) + // success:true, 直接返回成功请求(某些请求不想发出去,可以伪装成功返回) redirect: 'download.fastgit.org' }, }, 'ajax.googleapis.com': { '.*': { proxy: 'ajax.loli.net', //代理请求,url不会变 - backup: ['ajax.proxy.ustclug.org'], - test: 'ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js' + backup: ['ajax.proxy.ustclug.org'], //备份,当前代理请求失败后,将会切换到备用地址 + test: 'ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js', + replace:'/(.*)/xxx'//当加速地址的链接和原链接不是完全相同时,可以通过正则表达式replace,此时proxy通过$1$2来重组url, proxy:'ajax.loli.net/xxx/$1' } }, 'clients*.google.com': { diff --git a/doc/clone.png b/doc/clone.png index df919640e235a4762f416dd99b0d10ab3565e8aa..2d5866d2e612b44ff98f6a11133c924714b76f93 100644 GIT binary patch literal 23409 zcmbrmbx>SE+dUX8Sa1t&f#B{8?(Xgo+}+*X-Q9vaL4p$q?(VLG54w~0dw*NITeZ8j zwSP?2+^O65X}jI$oagjJD#}YBA>bi=`t%7&N>Wt$(eWFd!8j;L8A0jD*n+_{s=?fQT}{^kq*;)8pSw@%{ba zs{s#8Y$EX0aB=-L_=<@r^#6a+zDDuOV{r&x#daISq7N&Nyx9z3FTj6-zWZDw^GNz)J8{?hQWUnF4uoe zFB=C}H)bR-{no!SeEAnO%x}cbZe{XxF9AA$9SJ#kFiTS-6{A4DJsnN}q5vIRN>OnU z6$i&+C0o1fdU){xl!Ez7<_6`#^;@K`%eMn}p7c!dC4}0JIo)9dp+F&3W}d)Pjam_R z$_+E!IF_C^E9Z1iemVfd{#Yt)N>Y||p!Ckp=P&T^O7Dk2e2UV70>ORy!D7M66dH}H zZ#RoX;3)CM2TkOjbxwViT#A-QZ;Y|}?P@TxJNKFXg{zw@rzRr{+D$=-b6&Woie->iP$#_Hziik zf`f`G>4?=H)Q3w#vi(Op5Q z(AY#ciT(!&p&?;jYhQXlfnr`;VbUYr>(%)^E3@tGeVI&KlfCdwD5CcdW<(LjPX{J)*PvY921a(c%dVSL@TpNpXo zh?Mho@PpXn&jFoDN8=GO8Odyq_a=Adsj|Xu;T@01vS^X_l(VzLNYtbx`LhfJ zWqP>Mw6u*h3$bve(DwKm(ndQ#_Bd*KT``y1v!;+mWb2A5-7Mv51`4Ssz+0yuWA3p^ z65Gwmtkyxbf`pZ;NV6vT!*AK=lfa}BE$z{gy2YBJs>hlF(nRyhTl1~CNFqL}Ke^$5 zdqmSy>JA?_BskSX{WwcV^N9;cF9DP$(sz4o9f4##Fy@pW^fDz%a1+|6chp<%@^XW$egUFz&&gyY-7p4i#?Q$|YevbaiuzpO5z~14Bp3 zCCda*sIi88kxnS_r}*-;9$8#{U2%p0?;N&IR(v%cJ!o&-FIuOpkM*8IdDDqy7dcYK zRlWMGmXDK!cftcnWx&s_tyt!x>NI2Kd8Hj1#HADl7X>wSoTUQgkA=)SwhHch);TNB z0?$>_I96&pAf-q7Q*DaO#Y-ynyuURV6=%z?qVbceH%>4}bxqOO{y(L+SDCZQ_lIJ7 zuZlGIwG|8|u7uLnC$amBWCr@0y%*rDYF}4;1`#NFVO31U5^c3+;|*WVq{%b5J;!nxPbLd&Y;)N!qx-Fi7*uXN$Bq3p zqM6x#nxTi9UX`c99?b>KnMaJVmu$8vlx!|<4>Pm%=!;0Jc9qq||1H-lXPB0Qw^FK< z>|Xm)yoqIU0*=Gxv_;9Is+o9c^+eN+d6Cdj`Wd+egz1@5nX7|Fzf~S(U0*K1BUrcY zl(8tkQVRDQfVWXx*~fayoK|LfURvA4IdkcURGGS}hk#IejKCarA#9S;>&X6#3<ipW038KIvvN5Z)i4P##^LYLCM*@)Z&e&4=_x ztxm0$TOq4rAgsz3r9VUKZd&Vv*|2IUt!-I5snvNINpC)UQrF1+Ic~TEq(-N%OuTX3 z{+3%%7WN*TrDp-`N)sLVkWf%qvs27(U2FUHo=UI!K04ahC4 z{gr&^CiSgKF*$3iHbUsBc6S0D{exdR|G3NcnVB-QzT^G)T2uOUvaI zx>RX^Oo1VJGKXHCTnO&@;}|+kN=SjXj*V$l3<@*l#-_$+s7px4z*6d9p_=UHk((tB z0lO72(U)g33VGT2l~Y0p-oRdRFz%viP1qJJN}%e&dvU&C^rk@u$l@Aal`LT=9@E zy5-Sw?fm^hyyd{hMd^n05T{9{v`5NVjcspMN}Dl)oOVmPe2$9tud}jg+NNacN&{Fc zn?ipo%+wEHx65_O4fmxkUR=WTPpFotby?>lyE1_xB$vqdS2xlc0j(&rm>#znH@`Gl zBfU<=rL}CD*iWDnp>8j#qXsM1i@&lZhqn0W7g@r^I5eK1N2%5BYrU-MxKlPOscy1c zOW+fA^MfQyE_Y)brJUZ8u*hDe*jgH9s~_panpYBo@l0uQvuj||qaVkmb`%P9`L`l+ z$xL}#1#?CHWB+52+qk958Z#Rx&WNphg6_F<{OhS)wuOpz*lfrL3g3d|m)M_MiFv&y zJl(1kX;epFZIwgJPC8hn_i72)e|hrA*{$pS^zSKp#@gXMnGW?qi0;mP)~FWu=x~t* zt({bQwW-L#63qln3p)7dxd>+7djQ^y)d;58N4^w_i)c)z%kh`B9nqCCPvvPatSU-Z zRIBP1>zCxYA`Bt6ojz#ETJM_Am2iKQP9~>Bw;GF_@)&VCZ%A5{$i_4bl zCWELn^JU!BegP^pfFiYy|hG(G??YbxYe4d1hmmDwOOX=9f;&;49Y^ znw+G*EX_C*V;#sG+uq%bm_$%^Nth7nNWj;;%*-44p8QR&%ib?PgpSz?yU%)E_!)l% zh+Wjpl{Y#3QqU^x*{{>{QHWESI&7z4NPQ)jhK23BF6icm9J_oUCo`+vX#!okv6}z9 zU?V66FIRz}yV~zF)^$x=O8sE}eCUeMZ9>K8FM{FKtb{Sp8AEt?7=JZu&ec0GcamE% zbLSJAHD8!FyZp;1<2~Ic%S)r$iVDo2*!)I}5p3_dHqw`4#YyyaDm-K?*N!uSK~0A! zywD@Cl+cWS6uT?_`$f+(v=S$e}{&dnc*D@A4upm%0@It@?H;FfJA9G z`rUsQ4p>2xMjZJIAkOc(VLmTqXUL}}U#mnVSX!n#@8YxB7aiq;+>LFLC^F=@v2>fZK}r{-%-}PfFp9Wr$NPA-@%^Wc{SbrscMbJxAB$| z$bFUmy(p%vHX1z4!4~VK!Iwka#~`29qy8fnAoAiE?Dzp69%e;~OyG?>NjUv_^u=f* z1!PJi`hjY54c%grmmoioAl~wfO7NcgGN9STZ`i0y-)AqGYRKmc400Vy< zS`*Zs=X5YOGZc-pk;Gv#_P_kz(M-2kYf$rb+r(!9IgV0a z=@tJM?=q?OK`*Z5eD{@@SgUZ_cU5%&Rh9oWiCM-bPmw7dg;tVJs!|FA<;k9%?)qL} z5!V3(txgXx-%Q0E=z?=|IJXwc{Xi^v9P$|0LxU;h5fN|*t>oVZHIK#?s#CI)Mba7c zFe&m95)9Kvp#IBCSv`s0vaK`1-h>~-v~TCkr2jmJLy`qik$g*d@zISe*7B6ITsP>T z1msH3EU7#W=TdRZGTm;uMzzg#TCq0i$yO`9Jo|Mq0OH`|)|VUqw1$pd<|7B2koWik zXDP=1OqS6u)dDMMZ~~&azEMSxk&##W$bJb83tQc&{A0T7M?jw+(#LDYz?DcHfQ#?-i!S#B8Z(Sp}^QB2(E5JsfoHWbe~Af#dyFtrgs9_RCcrV z$wSqHE_8{`zIao8OSXv(YQ9oOX3kevO*`Q0ii)D*_RLiN+(Em5q^a@3QwyKq=+E`}qpa?C)Lsa}o$jCyG33@HIvk5QpewAWOshHqY$E z<8|M_y1R$A(@?G;@qtSu6J(-i(;VI;A=!Q~#I#9zaMSB@c*89{)h)TA;SAEJgJ?`r zP!%oL@7lRgl9>9C`lF$|&{UdZ6k=i`M(T2p{sk>N7F3HWTuN9H~BOh1&oLta0>rrR!TgCRJx0A z)kmJb4YEP{>LBQ|&H&K1AL%SNsV!NAmZ0Y_(^m^PJ<-nQSX~B7Hf5LzuG~5v^vW*Z z#DRTIv_Xm%QXx^$qq;t_XExqLBO?7K3_PvE)(>!Tt@#pvNq@NcsNEb6ulSRJl_P%H z!vg{g1qsB#az(WKW2y!3Vooh!5~>W7mqHIrF2eIFt3mw}YeQKyY`9y~&6e1!BvyBLL4 znsV=Scnf8Wf)p6UoCxu>Vk0gB!P~m(EIhp5<7;mQ0>ItKePB{_j!g(Zc(hwe*L1LJ zw7pFd1&31X6vbo-BiYnYQ4M|-TbB0Rb{y4RqWrNR?{&MKQdtXVP2e`)-2cQj-mS+yY~RSCp7Il@kqv)0U-(WXC%;dH4=$!bMRZCLCahv4 zn7Bt$PNSmm$?Acsta2&XHrReP`+ilaSQVD}-YrIk9hUK3k3fkQxdEm^Ud0Qbg(G7J zj{9W~+NvSZ_gdV%-^C5;evd89!H77%CDCTp+)eh8We`=3w6)0G9U(eQ`MS#r+jd`TsoET&GYtQ;LRGnm|eT z|Av*Z2pJwcW1d_wd+sWAtex0xSRCG8=Wq_p+!*#Fj760in)l!xGU6O^h->~A9Vs{j zIssg3!n*RON`EXf*EXZT>`;jmCvjalBPGWHm8y451-&T8_4p6qk4yqvn6(BX? z5)u`+VHjSLf~F%Xb7k9(=wV@Q0ub?mLj#{-;%6 z8Rkd~|Il;_IMBq)bgQ(G;PGafr$m~jQxy0mVpT`=yF!4#$^_g;M4`jSYCsaGCWmY* zmu$RlqlG>O&gmchiVF_b3w661dex6A)K*5o`mP{h-#PGneNF6r=NEbL;}MmJe-kQy z=ci9wXfMQDsMg80`&Ejj)>~MGA7^!Z1E;EhP=!ZV_96~xUDw}}apr>(wONgN7b1aI z>k&%i`BaEb zm=9iUzu9bd=BD{Iiog2K`CHKjnV@E>M16gGUL(fD#TDAaG?YSt>3l2=IIA-MHIHinqAxfl5hF zmvH@12`}qnPOMU`m3_}P|l0DhU&2+|6II7=WU@JL#=A#f5mveJN z_N~7rAK;L~o00kOU8ESn>c=q9zda2u3eXWGsca69x+f9byRPv6MLKUrTxP^ICkBz# zQhT=b=kH(iqTBxMBZ5_XN?$?mhfC*7!X)dZ+8Nke?Ah~<+e)$9vb)9XI+c!5$<-!% z0ljXog@X~3uVpTf3a~*e*O{C1ou-Hzwj`pA-AoB?=g*0Ue(kE~bA=b(3{8bk-MmA2 zaSwWchx;f@9!5axci5I-vd~1~V&od!XZL0mh7|gqwR@-ugZ2o@ID9!hV!sGTC?pfU zOFQ56r^(UwZMj?Utb&*>55C3&5VjoC={00=_}|B(=EOz)cJZx9){L`#Amoy?=HHUM zKV5W`%8xH3mMG5;|Kbm;eLOYu@F6M9RW*^-RXNySg@BD;*EXy-fRIL~C*Hx{>iiIVJ{VPMKo(x8 zIl{O*)Ulr%Q?nlAsJXP2$ZoY^KVSb?`93k*`(k*tX6}OKPSj9*XXrX-!^lT^NoEs&!Tx>|8RL>~L*8Zsb_S?q&GSc`jns0gQc7JtPD=po;l-_VL%}CnlbVD8N&Wg zmXddlleVRmJ_I7)xRJbw%s(R1cHfvA5a>TF5|w-unO}IeKDOdrPV0J)OK}VeDBIY| zp6~67nCrS}7JVPzP=+tG+pMHe+%6?KDJhhuB!120f0v(LNx|%NIYF<{f5E-?Ys6{! z)r+K7lO^fvB_Jg5;S=)ybQ{tpA8quNmSkRC1cO23>B}4E@l@v1;x9~GG^54GVBdEh z-!R>{;rj;i0@E<}&p4X+ItBWQA-pdhkWnKGo+;DQsGSU?fwOaS)B*wqAVMqWe3kO| zqOnvOrJ=JrPKM~XsIrWVug?;|uy2lzj>C6B!9g+ObCdby^YhMkmoZwq#bw*8ElGLk z;N|l((S$1y$mTYv*ra3!iKAv~{26zli5I&KZR4iu5(Cj!KpzZx!aMLfR2;TFEIPNPh@cGVzsq!Isp|;`E0qT=J-QtZa+<2RUc@#>1j{N$61hnjGx8o z9(X)uxp=3ZJrW%iRg~twE>x{vSBh`FSh8kkO$I2)MwLf^5!BEou;RU5`a0!P;)1GWYDn-12GmW5jg@(G0V5Zx=fX{xiq5((OenJy8pU z{`i`GH???y?@jN*-B4I8CN{RX9F|Z-WF*JhdzjUN#pZb?oA2<;{I9D|4d?GKmuTZv zYSmWGPp*oJsP|`U5+NW;*(}+QvQl`3O8fjx;cM`+!k5Ki`AxjR_j*TpBV72NOvEEW zwQg&~Q`U6w@2w*nySX`oVz0T7{~@Fbl&wO#iRU7u&q0UbSkCG_-i$viipwj+>+p!6|#M%a!=irylSsKwmY`_lw@=F;85v2q*kX1 zz(DPL;8Ae6Sd+7ptQp1c1Zy~qerxdF=2Uqs84nA`SYFYuF{N&p!=?IeJ+KF){g>;b zz7YJuL=F*hSXVS-he`s6*6*-HG5G7wg944nRde#Yuq|bUxbir)Fyh$ps|^@PP(YBG zT)T8}8c)ow+dS+7ITN&te#%3Sf!koeoJ5h2_Ma5D02NmMz$WTH$m!rpcs|#^7uX^E z53{1|HT4e^{ey%$?N#~@TK~y6j#2*q&z^&u1B3Pn@_%^&v~Ev$P8V*usKyKwK z4+D0~jPX#}Lf}mU37>zqouGB>V2`qg^nC6xczp@Cc|?U6V`~(H&q4NrCkG>qRL**v zz=5H)wdqGOpf(R_*3J|8%RoEMmIqo+{B)&>cjr~!uao|vXtwiIw7V@KsFSqeSSmKQ z5Xj&lx>^}NclmPx`v+O8`3eZz^;Zfxk2kq2K4+fNa`Wj7Acp1Ob$W&8T$#(wJawlF z^_^Dgkk7v@%aK1mcG39SCV1>md z!m1!Jg~2U>lT%gYj*6`@Y}}mX2`~jZI{w=}wI4xV(sFzf{`veOE!GP~y!O4hMa9J_ zzIeQ*I(BhFk_l)W%g-U!)#%?=YE{fA;p2t@ z8T`Hj!jV5@CoXMle|D|9`(-3em9^8o{X;^nb-jfF0iUXrx_Kxl7E0VVy^`bJ9(Xr4 z%An}qk4+k4S-ZgC46d?}Oyg07q>G{p^`L9IuCTU(70Vv(sNymnm)k2xWkg|0vi!J$ z3L&1!!|$|*-nREotd!K<&MWtPwK)opk73))OGd9lVkCV%uCNgbubZDlVq)Um$c#v{ z>416j_5g*MadiuLiP;*s3OPD_zPC6lW3-rh1b5s*RB3;*15CWY{g(yXX;IY(as%JY z+TM4bJ?3mf;fsbG%1XX!WvJ5gQ6;i1=jlZA$>3}@Al?` z^@DGWZ+U*w9tf-00yJh36Dv*TGATVov(eM)4?Uum^@&EWguNI8hl;DH8KvU_%)M`-fk4xTK%$VOnKoUQf1-cDg0~xSi(Pkw-q>9tHkBI~kfxUFuna z(G(?zaS3ren9ghkNVIfhIwc;YM0s^qu#JxlP7ml2mFUO2;rI&1eY&D!Arrof4j80K z6(g2D7)!0V^goU8BmQ#}&yQJ17Rb$lufTkmM{u79Ic~jnqei8u% zw-@Q7B2F`9GPKo))%)UY9=3Y%yX&;ykz3DE~Q{ zU>^R*;IykjgyN0+kGY5Q{eSm3p}!6fJF`_Khic`cFckGTN9t#;rQ0=f4h2V_WKLDj z>g>_XrUyT$B(M11J@P%W%js!K`bum_04G;2*+3u-Dpua?o15C{h3d)fFfcFvpyd2M zw?>%}@F!zHSY)VL)Y!zN+cr)u=wsbGVwR_+6uL<*++t&A^hV|f|dg&JXhMb(8u5g0GpyZ&4DkdJHVqp=HP6wuz zY|e+WloSiHH?6qh2nYx%;;ubA6p30|yQw#%q&-@_Fe<0wc>E5UdFH1F7_0+gh+MtT(aYNYod{R;@Gy%5y za>%4_i#eO4mfDqa4(At2h)P}%*b?_fSQr{~x?hrMbNIp0H?{N9*ox&u`IXwPi>}%G zX7QhgxBVb0J7AeN^C6xRNI8vcY7{h6k0av|QYEDv+rOU&540(ag^>*iAtgCk1Q!>V zAJ+{Lo3sV^a_lzL#C$iTTH-xIYaDXm<^@O!k@r2RNjc*)>A={hwzKGnfWsyXGa6&7 z$laqEoCV$8_D})nuf>AOCvyu~>p!s-eNS<{;Ovnac-$0M8OcT#Wb(gn zX?%mdn%Nu9DEF(lSX+AR0J_)=`0{|~I8?;>lQMBi*7i;onl&f?b(W)tE1sx1pLlsD zvLIF2=pL>CpxqGU{57TE2&k*jJ^bLhR|%f?Dg0#<88UyU%ZdZ`jA^HrHRxk08QvoL zV1x}P-B{ooY>7W8>18N79~Z@&eS1MofKY0K*=!6B4A;x*6DZ{ni*?D)@}$*0kQPWs zp&i_i*Lc1cl-al|_c>Zd0Ig`by0YtmipWo1zulA@kjyKe^*g$io3#m$S_Zo8k7Aa( z3;GMX=t<=JQ%~vxZJyFrp#AJaY;?*M>D^yI5d?A9_q>gU{IiqGnY!7HxbuFGobHzg zm8lW$XwpouFbPiMBwoev=leZyBM~!4IXOFb+eXPexx8UVRV!{j;TO&IOl<6u!@!A# zgwL7d_uK`AUQ#HA%qnxvrUg4C8ma0uJO(GMiKFpj1S2it6Va5;%dz z6@=}Q6pR=VNADF`_JK*_6`sV?di&(UZHlG(DsZ_eLN3u|+=|R;qP}Qq<>2i5Yu3tZ zt)|%tq^yyBJood(n9tQ>E3H2jyR1C2MzPQQW-S|J7%M^KC+RarHU$7tQIu!!??mwD zHO2q~)3TqZm_imssb-jpY?Wq4W_9i0bH!)FiM!07DgfW0kWPTy3MzUNvz@+Mg`QWv za?a*Gasz8Gm#hL-vy5A zt^sujt%3>b&F|XbcZ-rZE(hBHn)=PW%pehaZw3|L{ugU#j0OLi+uFfX; z>E7y1M9Wf%tU|Xg<2~{0hHiULnV0y1w zy%;-e8l6s8O0>}#wdd1p5y%xDN4Sb>8?MJ$QMMWY?w#2X$KB$VtE;*4Ax|SvfjKN( zVH4~=)TBl(%Hr>56deB_f9*ZsQME5_(!-Do|EQGV(o*Mqtgo<&aT^nkDybR5q7as4 zpDnQ>G;#3dH2s)d2MKRC5SYR-s;F*j6@%P2472g*N6+qb#U(9q@^e0eb-KC_5MBFrs1Dmn@omi``a+rK!O zGmn9+lb7(WO|z+ozELX+ZzSaPDpA5rh@-Q|4QotAS)6rdBd)Kx^V_lgeG9vcEezEM zv32pBcL`QV91U91OCAgzHc0qd+I}FdET7(NLz$g9*tmY%t?YTT&BNH!()8$pvm;Vf zNB5Am2;DJTKn&HChN9Q###gLkfv~6?lQ!8uZYVl9pUCL>IlZ^H3-Gg1fOEF|J>wJb zNZRcT651m9-SRZo7YtU@2|JUQxcIMY4_w228@`a0B3tqz0wh~(Pfbpg)WyeBu{AxU zM@#?8j!8~U>$!7K41FsxX??eeS~ggN9G-}*|ExWWF5?T3gi@_EzKlEx<^CZvlbJxo zb-!fbW>0%gI|dcPb@(^Ct~b^Rd6|Ku)(>Qk4QZ#Wa_w5WDp#_ zu@yBK6$sWlv%AUEVb+)h?DY}ZFve5FUmyW8QQ-b)Ayn>ai;5Ue<#iV&?nxGZh77UB zc+tUtvemL#eJyQ>hkZ=`5^3Gwg2bE`8d?rrARN9Hcb(Ci8a75?gmQ9O4FgpxkcRa2 z4uIruSs^L0))AFGpu8*|TdE|P1|Ze4l+0d$f-FHg6~Z`mfIDAla?iiqhUA;~yk5<4 zoG)G@r#!pA>BFl?nMNVGRYkyv3wBBvPjvsfVP4(egjtkA?-G(QtucM{=X=Z{qKBnuzi^vZ+shm5`6Qd zT)NpeS!u!0^TDqBzG2q*#u2`aO--@BfcCgN&u8jnYu&WaQtQzrabT(|WTW$KZr0xs zpIVN4r@1W%h@pYXKToz#5_Wo;ijpk2bg3tpn0W6!KHTAUl5{J{<^JFEi^s6;&C6~v z+bvP$6O1C00I_?5JSmUR7zRcsqzw(E$?|_ z;G3x~7a=mx3cl_0{AV*^x8_PW_s}o*&0aKy&Sr15c~J)}-EO8hs<$;k+x%3iPE&c2 zRt0!Kx}%t8h$qjq%qqI+dh8n9I-caz6|vi>e|c zF$rusvfRPv4X~aTph^l0NioaeCKs%iQiA@J5a5$bgCj{J!oa}ncKl44S0&|v2Ljc_ zMzWvE)aPC!tp@5(|DM~7jsFq`=bCR@xxpw<*vZ+)+7SISPDp5&vWqI_(D3l;W?%GE z?)CoRfy#5J%&u16XoLgv;J;j*(qzt`l9DW`O^yM$FqNYt+It;w9#b<@r32|ys&9jw zXPmw0d9Sn@A;-`#Fv_wn+{}=od;>IKcu#I&ZUv<5--Aairb(rZhLxNuD^tF=TIjM( zWAIxT2{w0Uny(j@ZGJMF0rQcc5cDzh214`pU|7D%A%O#aDqsi+2?Yr&4|#w|Rtv^Y zQ#VwzGv!3*O%YwBg5DG{);Iqc#JM(i-m%N&x}uE z=fotG4eIZe%W0HIbfD@Y<^&S5e)s%CQ!qirB9$h`-$3kXvsUoCp zE$5WjlJU^6=qoH`a}bG~nu7~p0?%q#)D>VUKNb5>zY0hwt8foUkjWZBc`;-F8{4n? zveUq}6NtImeo62qRHsrm72U?zRYP2(2*~kY?3H(}5QxR+icZ7o#_qG5v@KkE|0Q++ z{Kn%O1fCW>f17cgskskw{xr5PBd|Rzkm@&%zCjB-+>z{|w2aI>fVl7OY7YHBZihs( z#869MT&l)3wSk7EyN|&0e1-T64uMgDv+pz0u9akN*aZkJ3tkT2VlP!^d|)}f{+%P* zG@E)4Zr*#@xEn*9LYS#cRn-H{qn^d(bCvqMqx(-~^_Ix?Q1W^V?{atQPZC*szj5Vn zN?M8*e^zV!kc|3%2mCEQthiQp8#aw6v(`8=(4L_n@RH-V-W^UEM=Y|lv$M%Da`gLp z?dWr_AR`i?u$(=ur$3EJuELUi;i{N06baA8+B*IFX5)oU@wF(`(kYk)(0TW>iXH$f zEZ5e@^yxoON5LXko>fGqyuNB$X$;jrCCsI&}SU*g1x+TB7qPP=qEM%{Yqwu%74c~{%+8O0Ka`pS z1nCh?Eouc@RG+$Egahp7NP;Y8M4(%?#V5x)Ws&S!*}e>R|AYK;d2BP)sk}5a26aCZ6bM(_?xQ5a z!hVk($ng2;@^xjRY;I?MCobK`oD=7L_84Ocy!IfP^Z61CA0HwWw+(Qa9lz0rV)Fd42Sr+i+n;%4H7a_i%5dRd&y6zO|gc1#YU=8DY!_ ze}3v|TIg;znll5^FYO=&3`oQj{a^5Z_WuF@pKr8nwRg$A$O|)lL&aV$*wmlk+&VA7 zp2$A&Liggl`3Lah3R@vY0xq7?9!76lQczk2{RHoJ_jYB|s;97sU(iLTT#!gNNOHi##wIiI98bmU_{8qmf#%oHCWcf#LXY*)# z7M98%Iv?2a=IdztZB7-m5Nj;q!!o|+&8>(`&;jC22qWT2liwR!S9(J4e)vypLw46@ zI~&aH-!IKX^gIC(yLo?v>;iSm!IoTt*1u{$wQs2>@>!#e_lzy~D;jnWzdr0D-nry& zb{4i)s%#bnLOq{^Av&lK3it&fpMwIOQnHCo!0aHQO0`lpyUnH)>1+V*T9*d~oK2-=dBxf-c5GV6ePBNlw`qy_^t}6KsrRL&?Jd_DmZM0<7ssQ9Jp&x9 zAa=&joB}j%pU^%hQ^sKA!9MVMJq65&?-w_t<*hyPwq@^Azi+mh7TZ<8y!f|2k(+Gp zw6j-fa2}Ft->~?QCyuzY&2yMv`jB2zne6l46l%9r6&3v*8!PgEf72+Toq`8N0X91? ztR3Z9t~%Yl2lro*iFjl=m+H*B)D0OYr4EC&b?H_DoE7Wlg3b(UmHjZbGUx!)3uCUa z){0)iUa^tA3i;SzLidA6T4}k%I=!9Ifo?f`7^T*6RFL49mU!0Se z#zUNN#6>yw>4iYx{kvL~>deVC!=9I{c#G}A-Q({$%R@oqk34P()rEd(@bKI_11L*! z$}r3kspX(Q?EnE%t_c2xxB59Cqv<9nQHro=d@uvSROM-JxUN+Bg`KOQfO8@tmWq)# zD-n&Ip%$_zOe*lp@io4eb!s#0721@g;>#3Tue+U9hMmNEJ301Cj44c zgi$sMq1`t79NR>G(J!WGu)p8P{M#O9An;a z0wh?mt&EqDp`rMWv0!7iIpX{VRcxtM7&nTUnD!Gctzru7U10Pp`!?k6b9S8kKS}aXZKpd-U`aiCAOQ!6W87rl5TEZaOq6RE`%B(Kib0dIEFt^NG*#o}q`mA1r+8GpJVHb`@91biZ{a)3lq-Rg`1s`8MvQ zt%+Z(b@EY(n+K<(QZ-Na5{aOMUA1%InMZH?fSaD~VV4}5k6^wp_iSsJ-fA$04Hx}M zl?$$~A`vn~ogE;|j>^YA3Z*IxXFzry^hR)!p?=ha$M$L77gG`=k3xIr)3`>BmNfuH zrhp)ey<2WM3}sA%Y@lQ|IFUq-4X>WalgE71C!0gk9u0It?;y9mn&3%k8(FVJG`SBY z>~!2a5A_HI7~u1Mh;qp3{h~@mk2#?`osp;ib1PHLf0_V;@%R~bWLA_W3;A^sqS+WN z(F+@o`^)n)?C`WlBf$2_HCMlwA~&kLpda#eAxt0NdbvEIw)~fbT&cP~k-ROE>MNOG=87AV!TwTI<;$N3*{Fm;(K7e?zSb=t$_gI_n!HDW*+cKe(CTb*}iIhC_@ER*?7p-H$~KW!SQia~$?C5YAb z*?U*_>lRtT^q)UIUw&bscys94J@Xb=j1h>m#rYA(3wcC6&UnWig$?d%Avac;;eN#N zV3?*){14&6IA2}VYrpA0v!3E5S&Un5?R3>spUI;YB?#sS>t&n&{v6Q^MW$%?b(-1k zFO_z^L!#D4dN0Jx;u-9n>wk%s`BgMIrQ!=mO)N^RHY7^&E-3G@EXMhitG+?LMjLx+ zO(ni)GbTP3?cRgr)X5aLXW>@=Gc>lP&`hsW>bkg9!0UwuV-T&i1+V#n;Ihw7p`=2= zky6SaxidQ)u~Z#`WPFiRX%zPORK8&GAL3hxCX8b~wyF(EhSsidx*GyI0MRfp099e{ zjBprL@C%IjSE;&7lt@cwCdO>`{(*stV5GVVw*MUb-ZL889n6pWUAGISPSnAen3zxJ zFC(wg9znsuRNpzL*8aIt+jC!EeGuRuCJNFF;1x7A;SLTPz{kW@9{P?a!Nz&dwJ&<$ z5=G?XC#MV6(t%H#tU_R*SPNOC;&4$lH5s;}(T{Zpd!hme0A0w%t&;&7Q3i3y7cQ}J^QwnVag+0)qHAM{v*W(B*$si~+&&G`tW zu3dqXL!Y{tO~L#lrVcFL@7Q8U(}S7IfAUMj|2-7{u=y3Zigo*#cu~41{Ox?hiLm(;|Z{*fXaOGhqCg- zH~VZ(`L3BypYTck{V#wK^gt!Ej*!>?8{HbzIASsWI{fH(<7#FnYNpYHKEsFSg3TW;K;yBi%3pB+>AY6n-@_m1yX(?%yIioto) znBF#eZ1!f4Iz+@^f&m2L{M1X%`>nRr@XPb?j|4S0 z#ljEVe=z(UxGb~^Vlx>htWgQL;?>!Z!RN5W-f|+;uCQ=*yPQo`uho{5%i17a{FAov z8cICdc#t1qdV27wM!(}9f-dS$lf3FvMx4>6XupiUpD*;)LC{!tbJf1loCRxwe$^tF z^-vEnM4UoC%@382b9u=W%^aiH0<)t0rz@nl8;N_GylJHeTwws@F~l_sJ`SzQO=kt` zJr-9`sxn?74&Uz^_HrCd_j~>#@tNO;*{O*lSUn>x{XPThK5F$AObZ*yZolLA{E$HEPejU^|zN5FtGvPH#hi%xME;QiN<#4JOqYw>y};0 zY0`D3{BAgSUy(kmc-eWk@x__@f|r6x>aR`yIG=HoxNf7Rm?l#vzIAj=11~T7<6}nN z=XmO+O+eSn8P2lRbcIZH5UI-v{)m&AR~*j*UX z`PkuI{ub6u!3dTfv75=SZD%)xsY#C+Ty6(#!L6;O;OWu?7VrteTP3{YwjS>(=T8A3 z?XuVG2lV?VEPH~i+@Mph*02_{;tHCf*?#|f25z*b-`8q96I)rX?KkE6wW^((OUpK) zHAK>vgciadc#Q&GLkyuYG|MNeo+q`p)h{GI>X0TtCl7+^SN?b#3 zj>oO(6xzgpl2Z&1CECBW43)iHGkxO?oLOCJmF5t6gn3ep1(dB%B;;j>Wzm zV>%wM$!C=!lTGjBt{BA!2}+@%D`|-^CSnV+Pk=I4M`^t&9%Z_!*X@g7mU?3OGtKuV zGo7_FGZ}k_>RMSP@xH=z*$qZI6-EEwI$`ok$mn!4C%rzgXP6#LJIfPyxhzQxlUF&LU`mzTyt;pg98j2v z*;|?woF@)b0-stc^E;{F@yfsx&W(08w@@8kpO9?RpC zb4Qq^Vss<^R$aA08I7@ojm+#2h4=B+taT-L7?+=;BY$UV!xbGwJxatEtvCTPp>5)G zh&tj2Gn#7=%uBb$MdK^-Ufg~i{zv3B@4AwxeNfJgzfDDJj z50QetE0JWuOLy0PMvpT=Po;@K`p?K&MuSP;RX?AibkuBSdhMv@1$>_*>nC7eHQzKJ zne!T5T1@W%Lrv+6t~27Bq9RFAWy7n+>YjO_6-As!hMDwG?L2e6o0)V*4_qKM zFtc^Q+BlPununpbr|^U2x!A^2XH?1KKdNv=G!N$lwxm%iBxtOXM@G&iaep@f^`^)s7Ph(pw#m3EjW@R`k#OYt-e)2o&|*S#8()%7kkgdJjOi=TRIFedzZWp}iYKY}6t<8hTH`6mSvTy83jV|{J_!O-+ zQ;_iv2WI{~(31Rdk-IZph7lMm?TBhecrB1tNb}H^NL^LXsaTsp>2`CFCA1vuPz=$1T8=6z}3RMn}YKnG=JQ%s)`h{)aD2OH_0 z@+C$!P8-5oe`#StaTdcdW@;=c_&(yFi4GrX-v@vjZTG-HUNmBk!tNBk8ypg%{t|Lo z3S`L~QOv7Xno`?8*jW~QPgEeb)TBB0W;cgpatA;#Fcwjg@zMrlVR0;g691a$z&*MD z2co0UJHGWGn!r~S$e7)vxua%gX7&x%!v+u(i{Rbhg%`3-NK(L?C#Iy_c1%VnAP_8o za6c{1W8Xt=UYh=!-ln*=#6>;dzY30i{;lBXooVRQ{y~|#l{;*C`S}f85fJWV;t;~u zl5(0kN&g+z9ExlEE0lLzS4&#YaMWK^sTo)}Nh!-kl(;x)I;}#LWKsn*5@wowlv|zN zUd{;w*o-MEtN=Y6|HxW^yTB^8w*Nuk{Agkciv)Wr&^nawlB0Z+dLjA9=#nWV5KEDh z1uDva&^$7)0s{%TIU7=LUs)(}rGH4VcqS}T-)ck!QPaPzQ($Z$F69M#j4sqGT0vI5 z+AD%X#2bS$LT{O8b_#_9SZYc6SDGc$udlm%w??Gl1igEiRq?dR-+cvKgkI<_ZUG3Z zkdne-O`pB7be^=q18l+~>$kd1OFK zXB5!YBKk>%ww}55;4(VZ)SvbnWIOfw^@3xVYDxCSXv;JEz4p0v`cS;FRlg})4WB*G z7G(u!y^mh-Z$=b77UHq<=tKX#dlLLqiN5hB%9&g z+6*56TGTfnsvnUj!{oFLbhHr0?}2zlu=eLV`a`IV_FbBL&yLq3&HKmJfAsS@=j0}| zV8zQrdA7{N!*c|1kKfzh85e)STwnh>UOy*x@8`eBU(DdO6r?&Y7I!2BT|V(xZK|_c zSU%4MQk=CsCAqb;$~+1DZrHaGw_;=MhHLm3n~|aNOwFOj{p?`LyKu`G>olMESS`(G zn2e}AUK}LqPIjsqO-7ym*KuCgd z$z|Jlsp9ZUPttiz8u$A$2~5tWbmTEZ>}m+oIr7I0wl9|wvw!Q9c$)OOpLB5?%skc0 z8(D8Av2WzvuMB?r1FmJd_}+F9!K z`cKLC;f$6O;rwB9sbcO_bBbVQsy?R|s;T>=Nc~!j*YTPv==hvvtY?hDFcRheN1hk& zXH@IUH;kjKc-^O4!Ca%bNmqjKZfj{}5>W;=L%rz|XhS=jshQw}0bxfc=*7B+Q*>l1BC8lT5JY@J6-+hF@l8AO9Q z)sn1=vz`99S`XY@4s&C{zuQGfZbczuAn;v64jYGJllqw@F9KlwC=19&&`hhP3C65^ zF|`>XHGZ@YY-Aljgvff8Pr16?^{)oRg>sl0pzMCseJlSme3V`z?@ifrjq&We;mfa; zInNl2mp21~Km~dOkc9>uHh6Oj5Q7UT&O7BoP-yQ~3acj(=#a*Co@tPP$iTqhaG>?# z-Euj}>$eAqk33pz(v=!3Qe<1wP$Bs1>PeZg@`}tW(opW%MhQ0P>ltk~yYWmQg1X=V zB%kNG*JsK0Nk_?r&i_Vj1_!~$B+&4@vqM^cy&~POJHHQsN%&>tqXxP2NQ`a^^?TXH zKw8 zpeeX9&kMyU!94_TMsuizY+hdwSlA*6>l5Pi*v6?!zbv7YBl_chgC1&ebiIvMFh4qv z>hYu$u70tJ#VNuX=#yfr3mA%x?;iW%(bytH-l(r~8HGsJsrg`O$zGt*-0;u>=5nY% zWL}*|=t3t9(k27q+$L4+Ujbf=w`ripu2KvrF;2bW7%K&-j8oy_iD}cQ1A9r(5fH%W z6^FhWB>ePeiuM8VlTe1cm|vdJr1_eiGc;m;=W2jJ&wPtwF)I2JeArgd`lr&{$jnp& zl0KaB$g$-QtXBllI8nFY5te=-H7!ZtX!jNP@%i4N;tg(Ea-o0uwp{k9VGROyQ)o0tM)uq{u-6xv0aq93Ai%qs&E{*rWDj{|HNxmSh3vpAfXEmv4_>MnW_Yi zy_^W!?76|8>P#tKSVH{WN^T7_|M1Oi2|1$gEApK|0Kdtw;Rw`@w)tCFX%ALEQ?GyL z^nAHXo;gP(=-~9o_knlrakSN%+b_cPtCzF=9v26cADL~{+dImg=`~k;>BD}iF-a+AjvMh_g;i)&o+fEPHj>CGqntjSie-Tlw#J+|ekm038Y!bvaJKL`xt^@IkCXI=q zpBX!=Lqxt@!=y=$UkIhOnVHuo88oc;n0X(+DSi$H7Mnr|#2qF;YU@}%(}%}<`c+q$ zn|-h=>vjiMh}=hiCS|eQjj+G%PBfEH(~EYNxDukOy0RGgb8jYEf2i)6?pNN$ISuR2 zVt0;C#7>!XN)r*|H9LfSqm72&)?>r(2rXCM;;}vHlkJBZ1g}$7j(kg}5`ML7K7lP> zGo$I?vvjK~yf@gVrzjXgAJ(rCLh|5#e>}U9bzLhrq@Uym4 z?bq%9OgE_B0RioQI(-XX-WwXD$$J$KGa+EP=cT;3TCZjBcF- zIIa7-xde-Y*FtD7Ne0a%8;Ol{<(em?Bq4mP_MSXwq5(3&=){ayJGa~~&(A?FnD-gY z<_dN|0D6j`iT||Ner}%#13kK}&n_+=Aj0Y+YpH6~;^neb+Rpg^r zfRcIpJ|eqFuZ)|-rDr<#($G6Odv zZyI`frH4a%z^c;L^$m z*z7&w8IQjx<+?Z({qI8UGKbN8aJlyUpoQe$FV6p5PZ|H+f56nqPSJW!ih<>uCd@{`9G3*HelWM{yXWGZ51s@6wNKJ9unB7c9?Nh*#>B<( z>?>mEhH;g(-%|N{pGJ!ESIqjGLXem;atyD~^ZwW7bZfV@(Hc5y%Dq@? z&XJ2bskG<^vday)C3Q3g0UWvoPe1aevBSexp61on=~tBMYEpg>wH55_)OA|x;^~X8 zHus#bx6a>`y`vIO8=NWqJ2}FVmY$v!Gp<~ygz|&iRc`M|s=eFCfr3$}p-QxUYRw$O zhN~-y<>`mU=E;(-ec4HesfO8U&WA9>yz`B^35|dPp75|RC$EJe#ZN+u-s#j|dirw| zC^zU6-0ChM8YcSg=fIHk-7kDIC|`brvuiGrVU+Hyu>)sjOw@bt)ZtxiKf*!XZq?2e zM3x-ky@*s6`=}aoOtt7z?Ul&HZ|M)b(k zfRN_uG1BJO*#WoMJ=Cx33<|QKpLtfbv*tD1OSN-!(**UDTe3y)3T2L8&I4DneC^8r zTpVxF`Fm^*C+*m}p-#MOU9PL>6~mOk`l3Qu%By?Mf@Y(AoOtQ{7b6L#j7W86z0~WN zEP-fzTx$SOkU@S_&mw94<+u7$-e-TZ#-}tUy%HrmH}SRcw8CXebRA|~YSr)N<@2Qt zcO9%g8*qJ5^AcdGaN*cXO^Jm%NPSz>+U)w!d4@ubNO;V$HbJ%@XLM@9zYFcV^fyqN z*H>#bL;S}}(RaV-dEejIx1T9*Il-KAY9!<|t;oSw8JZ5~{+x_tf40cK(T5!mXJ5{0 zzV9Sa$Y^EXIw8kc>o6h_T4losig4`c$XZBFl^mQ^md|VvanhPM4`l?)g%r(LY#^P8 z7OmoMB^b6XQSvDjYCPADpvs^lg}=}>$cXh+D|lidA5op#^hhOmEBeprA;r9bukh-f zM`xBZMpIB^JKUd1k`>dZOlW)Vv!plc8l>NETK!aS!XgbZXYixR>?YljbIf%pGg7{c z6ioqTWHMEwQZLBkap$2|K>3L%Csb91kg$QaEL1q4^0<#!zh}R8^bi+G_&|+Yh)+MS zc}4YJ-k^|J3tb;;B^AR&z$RhlzT7}**Cu$Gyd8Z!X$034*WlDF&Yo?(aF$u(FQw*|%;ZUf3Ui|`heVblqRj{l|lQ3&PWf_6|cl@R+&O#_kUiyAYQfGl5v zx+F{c8!RO&z5U_Wr~;|V$f6I;NA(XH%E3@-7NadH6_wRc<(k4+kXPox;H;LP+=Ni=j(ut~6k)qhREx0@0{b$lv_~w;UUxic1 z!7uGa_uW6sSiTA!xJ+WaZ?+I;04hx3=GNB4u}K95448V&im)>b6Um*nbJ9ZQ@MXcE zz(Dd5>Po=2Jt)iX1Xr^X@>P;>8R5T4ZMsc{f2*G-?P9q)yU2wnQ~!h8o0;?oxkhP1 z3}p{avg2uOojh%J@v9hJTk)!)aU#?XrgEe=iJOOc5)z=RAl%88CTWsOV zNa@mZj?VUIy2zRNDx=W7GSji0kx^qT!NlfA+a8h=4$WC#!?(BSJM8-uX4>o+J$TFu zb_m92%eqHgKH(}~y%fewkv`t-YH(Y>EAw_jO}Bbuk+x0J~IRP;2vBUK0V>M)Tky&+Ebw7cuJOt4o9+*OxMyv@x$w|jaxvss~nuk=~- z*%f@e?@Nrr4+941fG2J1zNeGxPru@1rQ28d{3btWdh8c2{083@kDRxDM>9RpB z+&r&L+wt(uWY=9eB&A!M3`1Hp%`*Hx6TklwDn7t6&~JDG!ed{(v}3FeBF}D~08iUT z743|7?8V&EN4*;S081;<9FjWuNPign(x2M!i;WI@Yc?6;Q>=-KaWY1NrC+qyj|+5k zTC^R_=Ad$7nUgn;C*)lYYLHZi%$bzka%ZF9=>rFm^M*`SkEdV{q;TZ0^;vQ|2XxeN zgSx5W3FB|kytn}d(EeI#ZI1nDtRm3>4Q!rhND~$7{5ghy(gXQmha+8G3?G^5`Jy)k zP->ztptutf7Z!qGT#~9+=+NSiC08Jx_#ci7ln?#$kL>gtI@z_E*0)VVWRbu@A0aOcJOv;eum4r^^aU6iQPMZe5-yk|JlW!`uu`Qui;nKVe$7k+hMryf#O@v?>EriDuk^>4;WV zC?5277&r`k_kll-mtn`rZ9o*mwN#(!a1`;c;-dy)hQ3X6W3U>dW`+86MVD z>D%h+T+(CxleC`8g zMg09j>q{up-#6HSkiScys-VAX{k`F`H!CGT|9@}cs`&nW&WD)_rRUa@OsQV`_cG$V z9VOk;4czeha$?I|SEbAqa?SKR?Ldl|b{W@XwZ60RnW*b0&x-9CbIIjKx+^hEZ`5kX ze6?6qlM2t-)AZwZm*1G*E=?GSkIv1O4T08yh1=T$J!pTLt5~(|m$elYV@docF~yKM?pKt(px?hyLb6usem52E!2F3bMq zq59N!@Tik2=oiV+W5i51OXqjli%`*bNgTMsUGh*Sk9#*VFlSbXLx1dk2ft(4Pyp4M zB3qZ1*C6eb0yLt<0*0wMVyz{XM>Ld9818s+${t=o65{CaNo-_E!&msXC-Br*8yYTZJd+SlBKh2%0P!uqsGSN>##wnzZFC)Rm|uui%;?%w3r4TN|s` zh8(Eyb22l}bN>&nXIST#Q7@p6S0<)gbXH&XSXcTt}A=NYwsm#F`?z2!$!$&E6Qd3$& zXHp=-AJJ2PFyN;L33t{F>zoMD$`L16=8qFnO<+0ej@+9 z!3~ZL8Bn6>j(@I7vZ%u7+m8pr0xW0eVwi=FhqRh2h%hj7%dT}~RyRf0(wM=UWt)Bn z8+q*{8@Fh}&Cq)H{69ve^0CjAVj@_iQG}F?2TPP2_Ry`^ZA<#^3zBYHwnz1l;-TLdiVT8c(GGWyKPo~MK@ z_dLB0=XbJ-T`3|ov3TUA3z%b)%Dc|afw}We9<96l9l=8oyC@SW&u}i5Prl7nD&)aZ zUNl@mCsIK(12j0l%z==PY2e7f+)y8yNT;jAI|65A@n|(C)|n6(dg2S4-N^NXxq%{| z(NVwr1mz?rIc^kJXzeUa&!($nC{HMrI{BQAv?Vs?*`<>h599aji}q11DQ8Pg#CCCq z)_{`v8Oy+l?5xV@Znd!5Yf*l+Ua{L&pCXgI&NrXgJZunx`&U$p> z;cMA3)bEj4V;88xCVOh_j?AZtS(nsNBPF}PWuCn^7w!9YL@&p4m&CnRA$EJxv|$Cg zryNgGIF+L@GAHRWs;MUFM(hAV2sX!U5*h{@d`o0dj^uq3LD4bYGk}E*KfHAlIyYoH zDA3E8fqU-%}R|)$g_C zKJ|LEI(O|T{(7agL}>D{MNr1|?sFG(ePQXRrKx8q`1#fwRnWj}s_>II$@REDx)kO7 zcZ1iEl7dY>WUw+t?=&La&X^c{7C@4J3jP2KwyGk6)1Y+;D;E_;hf+(xg| z#6PSGdQ#(sj(Zav3HCsc|&U79muwN#sr=y|q^YW6si8U6}(-w%>9cNCc z>;#VtZnj55-=uPxO z*osz0@F3iOl`u^7-49+=t4SC~-DCMiG}#2D&D>CKA=o;Gg)4ZnOTcN4_qXs9!u4Ld!x08LTtpM)_c#U zoaVQ`+L&y&i$%!^6&@B|vZjh!6bQjj5#a4Leb)Epl+-``KU^_1DydInc0ixp)BdsY zYoux_A&2K3$`7gh&*ZzWv(w}!ze94mI@pv-?d75r8>U0kYfGyezvF#j?U7Y#7M{l}zbIh1z}EVqrm#i`7? zz<*TlfuSEj68*(bm*}V!h@%uyT&Uf)* z#+fuhWh63PRW6oU-L$mP))R*tnv^2Ep3#pVb}sPuMv%R8=2w}j{be%D)-L4|8bu=A z7fEIrloN@P{l(#U%;)sBF2w}z=HM1`{>pNO$4Munmcn-51mWMPk?5AV8jEN(Jy0QN zhE?hH$+x^!eS1WzTLF^=8=^wVI+_KtR_*+%O#<7-OURT5&vs6WuRS0hA)v?uK+>JIQ4>j?W>W&DZOR973kB2Dk4Jw3! zCnMVWb2F5z)+cTXq@vg-*2LGtj`-fbiJGBJEp}g z%PR(@@NoXrIJU+XL9!OvS9DEwSD4>nDJ=(XUs1s_=)QU~Y2o~%#CY^vBtku)RjruV!~d6_nSd$n>-l^@C4aCVSC#9udA=D@UhQDGX=vv{Yiz(*uBGn>+58*CS62YK`Ld zAA2NCm%Aj|du(PpG(2^>6ltuNyN*-3cD>efvD;Yay0_}SHyhLnc-A~qyweU}> zn=_qjG4=Bmx&bAuv4OHz@&KFStO`lEy6g^@_j2I zq6~ex)@U(^4_t?WRN=eyb@y!NFh9UK@DUf3`(iM>5^@sTP?DuFw{8mMM8c_abd!np_{EE2Ph zhJB>HpT%%~JZD)6vEDPx|pX54TeunGZna0O2dP-$ZY8^+4 zK?gEMH#!YWjy`@}X+?OmXGn3nqqLh}?^kMJmP-;;N-E1MF_t+OXS0Z4ZVO@v8wWuW zeG*IR+Mz&%SdNbgWuP(rlA)rlh+J(p>B>pQDVEme3-{9!N@nwk5vn@fXZa*T8OKrp zyMwJZJpjn24D%|E_dxFMp9^y)2*kyB__;7!lE85A#-cE@Hxo7Hlf3M!H1IJ56C``p z9O>iM#1>k1IJjTzby<-A(`HU|qSQ3#Luh*a+e(@j&ayR)0)N&_x56fgw*wrd&eM}& z+w^!TQ4L|UNvXwxiKyoH#j(4J*J6|xrxWNIfr#ioAxyq%$+&oL0{kbv_Ljs#dfRoS z@hW#F)NFe|-Xj>`s_}}kH;mNhCAbq_O@pUp9@fRiMe~ce>7&) zT{QX%gYM=sUCLHkfw)WWVr}~$OV*})4D_ZQ6W#-uzKl(8Sep@`J;s$w!%&Yk8cgrk z>-OA7R|T5F^KH6$`z;>1A@V)`ZP{ep^s?y5O1vX6NzQ&A7>d(SDot&(g|+ z!b<)tcOT|rZk4%q{yBF>KLXmwJ2(W~`J`qlWtO@1-S>e5hs>tXOItPT6Y|+zN9li~ z3*F-z$0_*WGj#uEL#?*@Z}YCiHSb7QJ|2)4_Zj`!k}9$_Sbt&HivQyiL)n9`O>c%3 zPRD+H@h`S?JKhOn@X(vn7wS3U@p|A;T<)vpE^_?S1&zVOBCk8Jc`=AshC2wNL^ zB^y?4`EoSsgB$jI(Wf7mJBYErHkqyUZ%(8XU6wk{-6lD;F8a74_#SqEF)qsMbr`8X zUdcF}+vn*)^YTzsi(xJvm!7rH-IBfZ_(s+hESIFy=UuDP3&$Yr zuLF$>Mj6xnn>wqr9@4mE?(KpfjO;@sCC4PZ>Z?~0EUm6wH;tk$_nO$L7wjdd9t0Z4 zbQrzZl4@p2EpnMQt!G`A%HLb`4bs~Y;tYPg<=abE@2>Zv;WD=A4L6k-x5JivT4WUL zQ{iyQSmPHfZ*?&nVdHJUJ7L`cwQiqqg1MXU(sN5o0iw~_l)ll$HMxi`7}cIW`O#hSpW zA9?-s*M6})6xd?uKfU{WIw+>Tgsl5b#9eZI;iW@X0-0{$&=J1l^*IHZr0jxrxntrd zlkst_CgNpdCS4H9Z>k_Sxhn=^E?iCwuTmdZB7V4Mn|F}bl@KS~SHg_b?v!^9pIMbF zspe{LA=>|d2Mm%nka6$XnAUL3>}TQf8{mUF&Da;^tnla(Z9CND*nyQ9Gl{>0kH1_X zn+!qvX!C>=qvsTKmxs-UWj}~^wkNrSoE$nTXbVfrT_}K)g2r)KA40GD@KTYs7=|};w?2WRH?0zCw+zjQ1m$xj{IB0`?_9O% zmrXkDLg&=5AwJ<7pDo#o3ai={^@4UA9&MCQNV@kp7Nb~O3><%&KTi&q{t6$*M^pGY zOZm8^m6&5pPq4o3W%V0=3;m|nTts&<2L(3i`dv;wrtd~uq)C9^axWlnSr&8H*5J%us^*d;M*#nZtPtx zzUJI<6)Wu15zzvQRQW#wD1u^NCzwRnCUxn>yZ-^l&pqUd#X3(YeQvmy>)iO=V8sZk zBh6Rd-kr(NzoN}6_qtAp6F6)5?%IAJ*s0!=pMvBvSi*|{!sL5uj$H?p!G&a2%ufbc zmUN|&!Jhc-lut>zEA<&2;KQ10Tb$PghWB?T?!jY)Z=EUC4hmw=W_D2~|kTgLEDIz<%K+NJ>1`d2& z< z_PpGE5jnQnc>VgAM&hDdGRKonk|tsXCscOT+a{wVwU+pt4JcC&(u1MG?k~7}o&T_0 zDJH3Nx{h+wbLx~0RKj&6wU#qgLEH9DY!QmL9M~S#!`I75>EDV3!RrHz32a^`2?2qN zk<06>*IEkRogC$5j~Yek3(+2g^`gkKhb6{)r!C%xbgU+HdKXdwH>bdSUlQ z{?%r#`n%q@qV=+lmj`drLROJcwau+cst@DyW3O#L_dl|ksEg8P-zC_KT9{x5r z*B>O*fnKzAEb!m6150uEUgbiV0E_>};Q|izK;0zurT0iM3IV#_x5&n(;+}lv632dR zW8`kZh(MnA(z>aFo;KA`vIU_9Hm!6q70_xP1+0Bv{}bFARhWX z@me_Y^)@#-kEegy+Rc(SAdxJAAgypx16moGV%+fYOC=7!S46N3L>hl|kXOxPdc20S zP5DSxB~$-2mIp2nf9U!wYxG1aS%aFA(tv27OrHKjsh;A>32mJ!MZNe^8R(&`-ma>S ziZ(VIqCT|lkh!qWFQ%!ER1X@Q)t@NpD1%RIMFVtF!aZ+~%@#94c^MJ=xyELC6SRDP zq?p`%;X1CvB^(d4*pxt4u4(gclDni?XWCcTz_cK#Krq$5xTujQ+`Wlis<5@hnf_J! zwCgJ^(ATM~AY<1lvYjBf4yq%_2<>`lZNh!UArL~-ohGE$k!K=-yH0P%i0I8tlQ&id zISiM?4Rx-MQ#lZe?|W(Z_bJ{qBgnd_`aHYdc?*$v2a*{MsEnB7B(p zN!B_jlY_|y(8CUw7iakccWCfvwH0l#!WlI;>2@kyXT@mC%0k>NSiIWV;9FL4)RFz?@;h#v0$eRK%1PXu|Du-9T%O&-dsd0sAy|T zGneA9<*zgZF&Fegw{7~W^J-Iyr=hm3C1VkBjhRQG;Engnptl0{NbXozFew!@xH%Xs z?W=xcUdP{vTVz2{I4+xFlCrY1Q1xJHA=~5FX3g7jL@>W3qU-=oYx_SW?Oz76xTVrZ zA6oGsXN(4OHCg3%@uRsA>kh@ihsQ-+ScBRS(w1ioTwZdUK}hZkcVj~W{G5nFaD}6X z(qF^+9SZiORbdh0N@G%F*$mS^nfZjsTzMG{(`Ypf)qHm^(3lbsc2Dq?~lecz>hFL{{L(i`WnDHhY)D`Ge6 z8`qJ#TQAnDgiD#L=rK>s=yfXWyr)|CoNyF{7Ctqrt2h}ah9%4QidpLPenMbW*)qYA zZGgW@AL@ga)LMKfRM34CaQ13fIPUtFH7&e~riu}4ivD#Tx|r*W-k;JSqsw#4(!*_2 zyT0LblWiG#4Ztd}Y1!P*lVkQ1Ou}(oek$>)LKR(mOJ0JO2AT)q-v}u<5ThjOT&f_A zX0qRzM`t2xAgCSqe%ke7z_t5AQEmxGAcSd8Xim&G&z7&Dh@{@Upzwx|4%c(9*NKc0Y;UdlvD`9l&rx`%}H%J1F<(E-hWewa9 zz4F`q(_&yJeuY|~Bg&QrqL#)#@s`k zttBq)%GH>P`_GpBu9KVqrRU z->+88m7)})q;d1aQrz~n7(eeE{tSI2dNH0feYk&Ka9|U{z%^<-HJc9q=GMl&hZU&I z$P#F5f7z7t#20eAHNW3gV&gU-x6Zl(1&s0QS^Og)Y)8&esN^4^1D+sydW8P)_@O$C zjr@%TGQ2%gDk>Zg>Xve!w0CUq(I>1D?bAk9x*WvnUy*p)=L?@S2bG#1ysLKIa;NI?eou(U(Q|dKlZ?MIVsI(*Pk>*G~#n% zvi>;RzuH+0dQS;0J-ymk_EPywH0Y)8IKuaC^2Oa07G5!35|p{+uK$=`$%8>xg$QsP zSL*VdA}0i~&w>m$xl!7oJgDbH0?KigN3~kGY~V(C6c3ibgZPz`w*VZsBj)Xu>Z6aM z4dB_6->`R-n`Hc9sq`;#wLs7>r%OY%yeX{NN`ilH|NZ5LM#-xi~&jz0VtM4joBPflQ&mO5dC%c0W z^})?2-OxmD+B7f|iXO^xYLcHzfSQK-uCyA?zmhC(o9^D_LNu(!Pyr36j|t!!MnuOZ zHs=m-=Q46Mnn#l4UqLkm{sb74O5@Q&0hJA{!OgCeX4J1aKY1-({BjM?(;KO5hkv_L zIpIqJH+*t3Tx(wFG?u7BfuVJ7R-8RX&%dm5j_Do-fU%|V3&F=d-7H0~pKJtE_>|wn_3BzSbfwT%{VlduM z5LK#6s~>HXil2JI1RZyu_p$YQyi2K`Cz03)>+fd4YbCti2v9jP63tTtU9y=58awFn zFq2DU%^|th=e!&@O%8%BEW$RayXgG|Bas=Z5XO(M6PL9;r7~3SE5^0ClLn+2aY}L< zw?dT!Eoo!?(>(KuYT!D(VXxmGty=s}Tl;d}8l@7iCbo4)%q}EOoO_%4VZGHYNqc2pZBI6a)CUM>=VbOt> zsprCT?R4k?_E25XS+In(P#uG>;l>WOAMs_ls8RbhkG72F&C|SOxD<>5fBfK2414m? zk*S|TOx8dav@bGjYwhX{Mo5G1F#7IXZ7}~hJyHbq$U<)NcvpI(*Sw%EXlWH+qm>AN zT|danDOzY|J-O|4Bfx^ukv;mu@vKzPi;>*iMeq0c3IWDxzsUkkBfw`Ns*ezssL;1< z9Z7`~q_B$umQJ`C%xk(v5AL70q~PhG+w{o?b+@AF@Cn4{kYY#7i6Y@un_ySaG{vGCZ4CxkQz}#Kko_V~3GLC_!<}>5 z0}Y#>oq>bh5l>{_eSu!Wdjo)3C|+y-4u1h$=VF&>Do*809t1_>2ym=%m;%!B1OW6P z^$jVJMr*j3@aq?=6RZCuZaqd{`AG1}6^f+8n90Y34bdR^QWgF1Astko2T8{KgtN#@ zNB84_B+AUy`_=>+UwREL{)Dc4$n~!D(S?JQ-O7j>bBV0k9aFdFcaz;wb5rS_ni_a?VM~2mlr}7!#`|JG2i90zcGg&5e!Iab8^`?(p=96rCqsomXpF_n7l~;L^4VI%&ksO zQ(wBTOe|g2){!e~5{P1YBrY#r?F-jpg;xZBsX;Z9we;_2`x{4uqu9dLyr_q#W}f#; zH*BQ~PZ5Zawp9H{ViL467&kl;{|OdUlLrN<*nI&@W0{#0&lj%N;U)~U6oUBtn&l4&f2q{b#S&KTO z1#_3`ALwBkSa2IrvA?PNZS0Ff!}R1^TpE=?FnjhN);af>7S@Z)QGDiBZWmIbIR&|- z#IX+g?BE$Yqw^Y$0aLj{*~we5?gz8!#IYJc1qMpb(cSE%nZi<= zTBLVMV>P8iQv!__aV_>;hmAFdCUfg9Jby5e7yUY&s!gW|Z{UUUu4A5aud-ZOn+`lF zCSY}MD|v*r!G9~D`{>fvcQAIpz-$6+x7e7k-e`<0ehwcm%@Mpt12bbc#iEnnO|VOL zL>h%08Xo;vo|qjnYi1};=N}fR*K}NQfh7>!{bV+WOJjUgv{pNu;@buC8K3S!yvLy= z=xryug0Fq^e$i;!oBE?E*?$zrG?`6%Jya2ULe^68m)H+_4f}z~X9=U2@Y5L7N|cyHEg#XP zfH9~QrcBu{KQc)>6gdPj+aeKx_vKUxa%QDW4<$g}GsPN?w)TT`+Qx2e?Hee5D=j8# zJ+aq0UoPYQHw?JDU-w98d7P28q;=h+zY+k9vQ2$znOdfVC44qSyzxxxbT0p689A9 zqxi_GJI;tQ!p*XC>K*2{_njL#er%4{zg`i({BdDFjwyARdXBN(mU(OipgX0j5lhkN zEE{0F$551AklkMA>fAD@$H_nR37<}wy<|C(sQvSE`^t7fnqOgDpT@Jv;cF=xs3n!r z_@gvIV3Gu43{+@OM*UH&j{T%QJG7};H|03xy&QdEeiPB zC@oVb{TcvbG-GO?9#7H3b@D_1_cmd0+>2-W(CIptpd{$wd%O13$8v5mesa5PL{uGV zTrz1(SR>@HX!=ME3Nj8WlH@Mr6;T#YAQW@bZS0FbR}_yIHFp4w+%~Jf5Apq{DX0Mi zpQV5_d0+Y>lb7tS?1(DxmBZBm`T(CZc69W4)KzEA(X&O0xEqGVq9Tlm?i|uM1iM!^ zHT;|?b|)!TPz@|OX#e0Gd_!7jF@>H@RC-u^@ zu4472b>v+cDg4`V5|{enEcPGF=f`0gA6c&#;=|&1i{4-&5gum_(z-f1Xl;3r$3lza z)kmfgwfiHttBxM~0Oh5J@HB9?4_RXy3CydDtT`>i18>lc0pW}>0kHcD);9p;h$NF# z&W1C+WYsq9zufuah)esLik0yEuu=+h#DI_`{D0X_ED(YllU7%4l2^As`tV>Hg1+29 z&vgaMyw`HyZ}FVr_fjLzR(IO@0PUN}wD6cmP_B+@yc*J#J&D9!q24;cinQKZJ=8 zfKJ_NRk-qI@`Tbp-L5v9op{_Mq?gh6 zYNFz8Ts5~A>}K3o6Z`KL`z&(59WACJ45kUfY`O4chz5|0uO;pGe@jVnvF=D=Q_$*v zCaMB2q)XmJut^y7Z+L2Qw798B1FcI4FtuuoSD|r3ftkAhHO-RbnxCzEi9%l5{NlKf zkXyi&@R8j2rt;VjA`c{R&F}u}U*pO%Iybp9^Vxqs_*?kk&>)06PiT#G00jm1KpDDJ zMyqXFJMR3sVI2CHg5ugNR>DzY^#_25jw}CX0d7+ww@ZTX$znmZ^XX3kX)qVHN657E zl)>Y^VH`TPj;~fF4RFzK@gxc%uZ^q&NDBV+O4)5@@t7La$!<{m*CB?3z!Hb<4U;t@ zEY_zxU#-GlL5W%t$>l8T%uw6xE{k8Cs}q2xJobMt`33$mXW;fLfJlp^#ovMF%xpLu zKF$rW{gUK_n-l70&mxJ2kp4sfYAfVY;WnMJMHWes&qb$x;Z(ds-$hbgR-@yimA%T+ z>)+xNH6FFZtu20p?b`LT;?Q7jtd*|B>m(yOS>u6U{#nwXpsu2qAV^H~?*wtEVw2-W z+rt){bbRJaTkUgeM*pgCy3mcAjbpG|xyu?F?~ILAgc4xbfswnH(6TCx8tLON5-UN; z2E74kl(eAC6HU<4#l7{+zVG1dH$o0?1B_+fYcu&K4_a}WECjIwhmR&XVn^WW8$s=K zLd;RF#4SR*4Js*K>my%u8W#?dz>Br1p;r0K2tnT;4=Xs0YsN!wZJgalw}NcWUc|zb zj4s5vvLhcLHKulsGhP2$3E(h98NP0{1mEykfD0Tx-p~aRpP$f&1M}b^#hxNLbge{< z8f$?n%n^swem2NSZGlFfblQXGm5hFx>ZeA1KG6?h?)2Usw3+ zB{R-&aLwmuKm#*NZ5QtUlGaT@BnaZ{b)-k)bI3>9LV9Bt&%nXnlp_yYYO_U|GK%ZV zA6dsc+i=@tL5W(!!}b1Z7I6EoP2g_>)XC*ZqGaZM%5zMIZ2IeC&W?<{VjOZ~8SI4-eO|-}P<|^vv ztp5TZze=>sJ29&U7#74Q0kO-D==ik#)Co1n{s4$JBf!Y`m+j#R3fOcwQ5x@b|Hof= z_lMu7dO<3uuW}M*JLE@>cG!lx$itYRpcte42l7(PM|o1wf<{@B9)d=RHxRW0&GBC9GGnL{ObTmzlmVlUpQ;w_B$(IQJIN`Ymb9|hbY?ETD#~- zdp?~aTt+JWsfSudPd?X_85ZwuQW|VrKvamoq4v7g6`RqWHQ98zQ*j4f(~fX>@!Xw@%-SVQHorJF2(g_s;vW}#Czt5!;? z_SpJQOt%@%@`xJ$gTh8Pj;oKxx(6Ac%c+-iKk#WOny+7@`+RGEm{zBqqyLwTYzR62 z*Voe73$v^di0v8boRy}YKSuO;jmp+cBZTc4{EAM?av8&pS4ty&L4un-Gd6de+!|>k zLz_YX5qCt1t&{D=655MxauvOjIsG>B%ss2EGe??w0CjZ@*$s}?nntq|rnReCBy;8@ zbNy(K<~#O1Tf=a%*n&=L55xKZ**51nS;`5U#U6*qZ{+^B0@)DXVg~^e=HxZ?rH;jW zsZQtPbqAILz@9E!n{U=W*5OxBAFOjcxx2^PajUBiC+l?d4KRuFEA#Eo_B6${1ei+) zTran+I}Xi1H$2M>J2H-xEbx~{wqZx3yR3JP#66dh&l6Up^8`;_>;PwR1D6Rk7K`?SSiHFR`A8W27k!_TEOX2+|V@`RKst;V9t!Etk8>~zE2VrN}AHD+R^n9ZYn0w89$HhAS1)q+z zz>OdOlVTF!9dEd?-vPmH|IX;?`~64$Sy(Q!I%j=vC{h0%^!_Kp|Ih;9TpsZ3!2gpR zjyMrB1LgL>yw?6m@#+oQqZt|fDFf~tn4G1&Ckop<_*r1(wDXHO(7=jz_d!|kYhZ)24AZ!fF#x@y-Ma6JAu?J65vV!tJ66|X&WK68&hs@ zW;5~4l`Ci`klTB>C+Yojj0jq{V|h!NoNBY1OlAY5JloCVcjlHhVL*oT`#bb_lN>^r z5v}>gL9-&JMI`CfJ3xX^R}z@8 zhX4B8U{VRZlifLbqa#I1e37Q|KEg}+#h z$DsG#ep+OfI3xHMSpu>%7Tn%20I?{hy!#T~fcTsGNMXQuSck=DSJIXvYSFkGswpF#r7gC_1Jf4EJgemLMmrb9erBpT1%VQRYUg?_nNsGVQnKPg*pe{mu1!o zk18MgM@F!2wUEHHt3J@hl*uExyTn>1PX3~B5|jO2=Lw{O0!bYclxh7RNVMO|ef^0q zxirVJk)~A?4BW})&%qvU%SH|)b2L}4j_F^pzOJ<4|KfbQw{V)TO}WDd2C#d>Wp7u~ z-a_r73Ns6;0GF)gd$4ht?H6GvVpdPqlDXZosnBTz*K_}~Bg=@kcwM70TurQD z^JK>^_rrS4e!g1NaLS4(sENM1GcrMH2e$9aJ(z_ z2cPZ7XZJTy$HcHV6Gvgie;oB|?GJTCsy%vM50pHW zMc7sa5-&N9k_iW0y2prp`O?*Fc8BcN2-xvZE`h^)-qJ3wL z2l4I>vFL)Lm`Kg@;A@^--)-5es%Ep0M9ZQ4mA!PZkMW)D{YEre`klX<$Wd~E_MN=Z zt_L0A7wuYf-ch5l4>>#aV9&!naP>B7B_Y6g4Xf+Mx25ZYAXpARNKdFh8{!~{b6iM+ z^osC#(tTiRaz4;F&z+1oJf6jnlSZl_7W`PPrcM}%k)K;7>2?UKUiLR;^OL23A(JDe zlQ)#GU^J*#gCe)S${WwW!Iw1)FJ%)HAZ?j_2{qvcj|2kGvKeU5M-Gh5>Je2c*71L< z9P9`LFEU5w5ei3Ae`s>@_}Ti8wi}(=Pu#V0&on_K$Uk2^P{-R3SjjMfGH?<6(23D8 zk%r9oAbd7vgj)QL%3jqu&vv4F-BGhzw%VV~4d0L`A>(~|d5h>5;(4k-?HEuxX9hp~ zw9iQ_ymlwqxB+%Ir^i{JoWphKZo^yJ!97}+8LKA&KY+97Lw``+i@a;Q`?SvKSQ6wR zCR-Pm=;rm&vykLiYo56%Ec1om#OPBVJdNFXs1PQpEd80C1Dgn3r^+A=H{sa6TTvkN zYCgA_goJw{T^dBxwUqq3d2AtB+Tj4ANJj=+9^zePA`QsAZZANwd@zzsx<*xTDhvGT zsmM^8Ua?1bHQF2)9&Qdiw)QahTVG>GJmpdf58|X|q>%a8Nq@~5qz~2SE0|9|?4DDM z_BE1*SJ{yx!v_jZH!mnmw#xat8ZO;2tfYn8w0}7W>WTKfAxb2`Vd_>^0?-{>IXzCY zk9<^z_6(3jE=BdIB7Hp|IRj~v#?+MiA)~*6@-cyS*9f@uW|tN`9et<)bd8bQ`^KvliarP5jPDJ)T%K>Udgt zotMp^o?qmo5+7T;UOU$vqHdaVZ*tK~Sx5tzb1aDnQ+11>7AeH3xF2AwGMQeSK0K#r zGufDw%W^|@a+zEi5k;UyH`eeKdAJHg0elS@`LI4bH4*~m8Z&-yOEn*eD=;C{TJQVn zs438ia^8Koy80k&4Hy6eLh`3-eT=#Omoqinh~Kr9Ze zI173w5t)oKSb3}M(WJvlEw!LW@GfZ!e2*((O=a+OV99ISC!91?J^mS-?9xc~=Zp0< z19{*{o))apYq*(j`RVD)kDgY9)Q;>Eiq!4rrzZr%5V06{HD%CP$5!`F^jN|ZqLyN@ z@QKEF=7RHmO4zgyovTSUrBahWg|(hemcr7c!rO_#$Wr*6GGRR zW=MaEvh_3$z$qR2)r4ny;}kw*vC6uS)Z zn`$XcbfZ%hTNd{eqfN~%-su*htDN0AQ%9L=4ieysJa!ThooQ5=DIU$xQ+o>KAOj%A zhF^x}XL}z)bTsug4;D5w&>H=%t0zF4uD1S()~k&RVp#N4BOFZrO5u^1G$;do1Ed6G z>aM3X?Kb?4e{s}QUm^Qrf`MlYlcOTk`IGt|5O`CQS2Vd+3Ue?v#%|-F7awoVlJd!0 zQRg#meCPl0;j7?$Z7K!7NqrN%vF5?CpF7ZDCp^jCo~xU&J=q*YCXz?snLw=*=5E93GIb%s*f`qPvowlt zzB89Jh3HrftRC$vuH3vVa254Y@hnZBVKrN-6r8?_n-vrzB{RKPn*SK_&W%Mxr=gZ+tkZ*_^z&zMo9S{YG+6uV z7xNX?bkv3aLgVrh)HY22AZqN|=UgEps*s6<2M=$ifNqcK~6 z)qM35wyyRRNV9`2RK{b+Lde;J8|-Ta7o^P^$BW3}U_tUimBEh;B}LKTv+dBmuwTQT zyiYYl5p+2zL#l?2Pv!qFwm2Djc9M~HK3tly`qloj=?~}RL)m`FB!H!JGh^9}=AJ!Qd(o^TD+^-OeDO)6Gl6A}+|kt~ z8yKUSlfQD7E;F2yPx)B`$&Nf)S(uAfm{|*FQIb4d$?mqMJ9(_lej!*Lp(%DPo#%3K z(ebtJbf@C0k#rvJh)US&?t_!fmHm4I#eRv}Hpf7|w@$I^mC<|i`dX(!KGP23a4 z$!w~$x9G8TyF5XkNi|rQMxQxr@f`X8#W>?EZ0?S}?V>uD@VGcI4EYXL2X+2VpT{W* zvPC@+zvW@9$WFLOL1pm6>A%1}(HSkQ{`=a!wtChD2A?2ePI;iU7ar?I@hV3)gB)d5CIb|3?d^WE{ys$8l^cAN$NSD~HCc zjn7sR?LY}wX7kIoyWEg)4NX@@8tQaYP5Z=#%3)xMRm)Ii@^)&P;G=MQ^I{Ht(hp%4 z0GEQxVw1}tQ$2!+|1kahVe=t}ZXBMwF2^YTFCh&iwT`W7vP|G&O4ylOR!wo^8I!FU zV3@YLNGzu#+(1yU9e$f$k~}?^bghQ_|320umv$^8=yXW8gWYb#mCiCa8+1tyv zLJr5slF2mwHC4SVZ)!S|yZo|Zg~K62mJ9SxmVeU^Z1sKq{(qQz>#(ZUwp)BFDoB^G zXpod%pwf+WgMw1hAl(fLxae*vX;eZ&I#jwOC8VTd(cS!>CF*v+*ZZFHedm1F?>hhO zYwyXPb3Sv<^^7s@agRH%i&BYg&>Fr^7RbR9krAUdY>xmNhEJ7~a2jv4fU<#Jwz53b zaO644F}2;^U<)?6^I!>^WHIDJ@MO?*8Br>-i8AY#r;M%1VTepUkjrb6Nb8{P-hztutnWrDJ2PBy>it4_5V zFS}EJ92*XR^krEKkW4FP=y>rv?dpAsyM*$W5V!_1lby=eaLo8`j$IuoRe!?A+x;LK zz;ib|z=}01xMVfm-97f0C;(#oP4hr`BVZf)Y~-5)54f(nU^fD>+Be~SqFM$_&44(8 zE4-|paK%A#ebJqwwka#><`~NI5-iBh*yC&7iBYHboiakjGKP% zKNPT3J9$|a)(Ct;kTWKrXG)=u@$REg^RSZzD|3l&9eb=k8%sH{2-H{C^gpsNd*IOa zh1;pDEXjsVrkhXGXe{jXWdgS7%1beS%&*!G&dww}aEzblw`oEM&z6!-wtW1b>lg+* z13)1tg8k2{yR3M8{__TZl!s(1ho6G%nP2o9Uu+e*!K^J_5pa1$>fNhS-ZyjvN2@K9 z9Gsk5)T>jcb$qXc#R3xD%zg_<-HPZtLh1u|+^hFHMOJ}C&d!M5HUdIj9&&AUPg@&Z zyznh?JaM89@W-MED{_lP{Po}DT^4!D^h`aykqe6~ z$;h@J()j;ausK zqSGn~NDktwQ{KX$jCAkcyg}kb$$~(0_!M|<~~^))&;mptIjFqXdR|NG0O)&iR0%#77mvz%i1jslJK>{6l2Uf3yryRngnJlYk*3St`?roG%Zjr0M*P<$djwWyhbiFW z)m4jF>6UZrtt_oQ;k~n8?~7H!i&NYSl?k?&yp#l2LM%@k(p6q;mtk6wiNPI(P*%k* zQqOj#hg2JdjOCrjP|_D~-ziWdQ4IT`}8btcM0QBXJg6a_lZ;Dw&0`$@5~3kmHSW?xau>KYvniBrdZhUy)?h$ z&BMDXPWqgLU)SC1W*M7k(3Mc3nP+;4EFcNs8=pEMbIsZd$F|(g^?eP@4}nvd#BK0l z#W9gihOd}z>&nOn*5dHBjh^rfz;9bq-|pnW1H5d)yI(My4c{ zmdm+jF{;ROpWG%WuFji!x0DQt3^3iiL_5kvZ>v+@)ryji;)|EJ%U$)CjePX2o z>LfH@sno3UbOe5)w4Ym!T=f>+MDH#gY(uJXzZ$S5b?mbr*orhfD3;GHL-`q>C0b}! zt<|9=&Nqp%=AL&a%#O*~pV<^M)yQ^L8%|su>#Y2RkJ>WVf;P?tqgOIc?1yPT_+F4L ze*@PQy}u}FdV%6BgaUXk`ULNCIZ6Y+_C7qc*DgBj(*&IwvQT*8&dx5~Kh)t~GFm$% z__!G-MqOZRhp){+urLtq?fOIUaH?<8O_WW1tUo1Tyn2Ee>tE|tH@*qa8>?KiS>Fuq z&P^M(^zS{N5Uysc{$^Fp7OLXdYoE2YSmB>jGk>&)`2YZ?#fr2vt~X@k2K(^kg@KP8 z-^6xI1uYhb(OQ=ZTg$<uwc15yd~|_D6$N?D?m6RxpbQS^;1tK{FJ}$ z9}o9^v(kWLOk2bB)5pNvC~tQ5xDAw#35l_O42$5k zGUi(LjMlk|$Qn-u@X5XZVu|cGq`hN0`j6{R@r33((M;TR$F1kDjC4S9u+FQ-Jleg{ z%|Ir-*kf&7X5DXU7neCWWjF+awSHGBRMDA20VGmHa@+1M` zp&6&Ku|(QpWi!w%#Wh~MmUu#?ws>KDE{UM&iEGj zr-uOjhQU)HaOpWa2uxI(ss0<(QfZ)G}&S6ErcmGAE#uBZ$Ci3b$|=`wuC0pc3ImxW^20ktNT3S=sU^=wHy- zHC;)+y!0WNK#OGb;-dVXocMI!(X4WZZ1UZhv26l;SK_t>1-esunOocFRgO; z1lS=q>i*}DA=U2>@KE&3H8ma9PQPh6yZeB1a6bauJAR`YfP8WYL(8PyQg3>7@cO!y zz4qEKi1UYS<9`EUE?qD;{{i_D^aIYmb7359-vm;snV-&I%RL`E=|MI?G>Gjxlo{p( zm;SLBG!g|iy)Q5bXOBW^xE_$^A%b7j(^^qw&a+pXgHC?zrA%Sg6g>gm>0naY$`oGvCQokcW)cg8RM?h`#YPwk$Qoi<5}k_*Hd&$>2t3Ue3PDgV{dSJARVO3tK`b4iJ{(EIkOM&I4#E*R(hlTiRO zhqJt=l!UIkxyU%j*5uPk8ESidZv9$0cbn=!K31W2sma%UXxS`Z;$(b-^{RUCbFOz# z#fl*+P5;g`Au0K9QJA3udTxHGx;W`5b2wJ((lnxFxkxtiMKil)+2#PDRkYs44wAjc z6yL`Eqp{X$4`R}L`Iq;pie3uoR4LD{QKa^~dWE<{k;5lSD5euBf7O|Gy8M^fLkM+G0JwBwp=%BX*1NN}g*T6E6BornG^gfW1_^l!x!thCE2tnMI&! z-CUV4X!>KQinrJY>_#_4B;Lvgc$YJm!!cwka(JRVsx29^kP1y^oc$v31!bb_Yw<_N zB907~?M9N-61~!{W`~_kSN+MJ{U32owjt0cJI4VXO`KPe6)SPZWJv?wyr@CTkqsXQ|LRNJgSg_r;~HDU7P(C zRNo~->u_YnrWy}n?gKtO0N*y#C5>O<+;uQU!5Esw>$G}GW)+1^Dbt%$4^QB8VW_^O$Q%{vwY}=mh9zD)BCk~ zsE#0gp=k-*2hvgcq`0nVGrX2|o<_EST)&-V?Z~B+z^qR5iccE!Vk^2lqfQ)j^JqWBCs zi}redWKU6i!=wP+L{F0JLVx2en#43-qEqo2sjP^E))X1<83tRJESoX4-Qe>HXmMOeyJ<}9@O{y;C zNHP&V)C24>`O+!7BMwN*Z1f8=??E{b`tQ=;i%6!k=j zr(?7nx#!zkAS8^m9>8^vAt96xHa~1Vp3qe z*N#E-MDnn8V@SI5E5DbgSfs-`wiVfU19F3wbJaMnsUQo9tJan@8jEiH#2L*R-V4j! z1f?6GFuPt+<34^4#8a9N?+PW!Sz4z|Of|iAiM`Hb3Jwlb0Utk6L>Fj%&$#?> zg5e&1rf*Y^IgTc5me0#<$2w=_&RXgoo$5<{>!iQFH9gC*nlRNi3r8}u1)j`~AG_>5 z(1B)50*q3kT;AGFJ26ZF(p)0qDrYwQ3=}xH;VNTCT*^X4?xp*P1+ezdGO(d8^Y*Jz z^wXrD2w&KOlLTei``f_34~?-A!X4)F5o_Q~w*R7b9wj5LsB_&bYCrJf7R{M}U-?c? ze2vyyOew6NDLCQ+lsjS&jxOmIsRBygp0wV?-0MxYtmsh)1PEupOr7UMKJB?>vI z#lQ&FAGP>qB>+g|6`FHeOxe|tNbWq3s^f#s}&{mI8zWO_vb6&p& zf&CY}(;ALKPuS*c;qYO!7k5`B;fpu6&2%bQ&g>#3$EXT0iC^_-$H(M24ti1oM_j+) zz&Ux@mvguL0jH0-s76o7MAw2Wm5{T{wcn@2Z7hiJRI|RZ$_{HUa8~i`0BJtn!Fu8c zPZD7j9$V4(Y#OOg47>RkbB$ohjEhgML{<;>)qH)DorpRjQvf<9UQ6eNApkwpY56tfI^h zz2sPrazW*Z8o*;EVhgVkik*$*PdN?b_i7&97Et{XXm@<;p!0K&=#hmDah1sr#O?Mp zI6Wr`O%(rJ9<}pTj!`9iypO0(+Kjj!-u?B5Z%b#X<-h08(%xUFI?&9JPN<* zi+hBO(e1x+em=2{T`gph3CEURizrj{ChEl>iQ} z+!wrl5>Ful;i&;s+mFn5-*SCw@K1eU-E8wMWHj=y?jc9SVqBoAuTcyhexpUdDo+;v z{@?DQKjiYsB`Iv#>)W-(yJ?>|I&KE(Iel_vfYV!K2n#Au9FYH0Vb?1F0;8vm;N}2l zJ&isQ{EpvG*X_UP=!WN1l|eTD&@E|Ud`=%^htGW%G7zq=I)tl>UvdA^)wTUkjg$62 z*|`+YS@QUxDW5ehj9={ybD( zzVz+rL)H5JHE@pqm9Og?$)6W{52((fC4PSr+Dps*KUNCRag=u4KiTnrO*OB-g|L4; z-PJ|(DgA1_xHO9WUItKK0mLx>#@_^auNnJAFea-oil71Tq@5vLZGUu+EKHF|{73fb z&icx^TzV&LXz2$7y}(oR1K}GWdmI~065*Np=441%(MUZWd{q*WjZqBJuh`@@2|72X z5-D?QJp$2>;fdR6J65m8rf21_XjGv%GtM^bX->{CPz7WLC z9U@pIJdp%=Z_u0)_4Y5bdz!ad`px)<8%2@G7tq%`}lUT)w-@OL-mzMb_S~~K) zu=DR8496$z;PO6lrjV*xU*HQ~(Pe?=-#?$yS~`68-~(tLMqWSK9gqU;2SWsH1QPSd z<__<*l!ONDDch-jDmXHEtKfWb&n7Fye4aaI3!lvL`-!tUgpG6bVMcg)y9epw5U z{M@eW{D~qL*;I5`vw+he*RFGbkw83(g|DZmg|c(LefX8MYMq^$LrdS?toy>+A4pg6 zC^5ziE~HPC#+{VP)~@uA@7wI0m}Qv&=bzw3pXkwK8Ry(Zl7qhTsl$Ge;aOp*?U$D8 zJ?mfLySBJ_Y%2oTm&!$X6FUo;-}YhubH%zqIEJbcKB=`FD+S8jUu7EbLU?Sjck(fTY;xRHLDv_&E3d-AIl2LUz9t(DcRJ1 z$+ql*ZvjtbdJs-{IA3F?Q8dMLOYFc!Yy9+(oR`4wq{8R4-jGRS@w_{|{uLoy3E3ii zqi{D?wZRTF@3US#8M@zS*S}L?MHDo)FQrbp94$!NXmZ5eRC9T0% z%_3TK+NUF(9&c?j@azZCnFXugQkF(G4W)R8XK6?)-@<);ib9?*khB8$F9H#?~nF;%xkd72dJ&G~S5A;2MPIdt@F-PiNP zanP-XOFK=)(Wb&SK01tL85VSk{g*|NV=H*Rj&=v>^LN(m`n{g#m=Qs=Kl74Oh+m6g z?3713w?iRKbGKM`-L4q6zdAl!poXq|zufTvZTwVv?DnSir~UMXE8oe{Y~WZ9M6Itc zR5Nj+#$FE*xxBxuVf3u=ato~C#qTM;kwfK`AH`CWrO$KIE~9OgoV z)??o1aCT5S-Ut7fVU!+1%%Slmxl-xAh<9%3yw$(g7j5@-kUqQ8guurw^Zc>@kD?GT5T}zoFeQuIGhUkXlX+oz>ftuf zgwb0^1hWc3U73x~bhNqNM1QAScZ1cuN-%rKz^{XB;uG{c#F41-M3^{C+BROyvdEOE zZ3leobACvUy=$_u51%zif7j3|?l)o?6VUY{ndaM8V}yZpnJLmCBrX9n%?3=bGwt_Z z&XUl+QcS1TsAQ$2$*f#GHBdWsyXs6<-gkfJU^yo;bpS;l#f{pZ6BZUtB>Sj+R-HzA z>Kn(lxMPCrBO0G*!az0?#VU=dD4Hd--rt zXn9&HBP{PgI6)!jmzZY-Ils#yAt^Hv5s@?Cl8qAk(y;xbGu!!_CJnx3K%+7V^IZ&BO^YYZDB$kpC*v;7>N9&L3up4;ZfUZO* zQN7FmTFbkGXs?ywj-dAY)xv?}<(RjMZ=96g>xB0dSoaq{6)Ma!&^C3zdYW>=wK%LB z9~s75X(k8L*Ujb9n2rHfGzm$wOhR5Wb0ZE32vF7Hqd$d9<<>bw(ZI&yCaD(BjtmDRT2GIj zxLTZX72|(1VaJKDo7CGbFYr=f<#bhyqY&KA&mSczI331xU38Wk1{P7%an^lRrNX!uHe*+(#7>&-OW9X6o;$COKY->(NZ^X~ z+ViY}0QLx?+!I{LBAXcc7F$SGBn?b^tRbenGPuxno&V^9{ISK(AvKI7HHI@sKK_=( zjf2i0lP}Q*smH>v;>B^f*Q8%4R>$z^qjbFS1~ITdoc4HPq9v$VXexe+qHiD61p!Mb z&v<>sxa;6#ke;c-dk^SpcYxkOOS9d^>bv>efiH0e?4NU8`Jq}n$z%_iQRXH#^G|oz zqvvzO1(;;H)+!RIJ8p@EL2!N71`%Gk>)uUa5zmy^^tpGpbRXSC&9ifvVDb(c&g#>I zh71(Ct5(n4i)c0zyV3a?d7$}yYY$}IQ?q5tGga=1(aSGwT6drxtCqQ5m?^p){SAsy zJCp%zo>q^xh#G;D|FXq2tAW9}BR*mhoMU8f?>uM@+cl!XNgon8j9>eb|KZTmM_t+I z5MJZ=A?}vCwYL*Xfc5IUHh-!{w_47Fx@6~8l|_H{HbiS3&NlysD2(6ARmbbC8P3GJ z^;iQsZRY673f$3&TG7-edT9b`L#J!2<7y5E9q!c7WSSzqm8xqVOo@+Yv$5EsN$Gu2b?BtqOZDQCi2`3ARlVvqH@e|fXuRa`ShYowDDI38c3t%o zr29l-h~N382iueLNhHONDIGfr^otK-I;m#f_@^bb*dMLuf`>O^cV^<{ybeE-Z4bh% zv(_k_6V}$M-RD0TTaem*$E!LJJjv*&OKXB(-E>9|{M8AZ=!Pp6LFX?JEvj@K8e;11 z92de%i~HH&XU6+-gIYAwK=En3;y+t$lOR4cJgZgsL&y-v*@jrHhCi@j4tX>7q20)m zO5W+RuYcE|MO`Nq09qOKNSDo{mo3MG?;uyzF-s|5q8g%6+wSoegt(=9AxWeD*)I$D z!WHq&phc^@k=O62u?qy79I!L`S9onjv!C4y3OLih$U|Q7b;F2RHuy&)a1F$m3Q-5!uqft^)soVGSrz(|@#(T$X?SV-xfxqKEx= zuleIDv^7EX4qHXDgcTO?CfTEET5*FnGe}0KpVA~fQslMhW9B#~aklqG8mRW7i>oyn zy9}@ozg#njwHl>>GH1DnD{L8dqdex1U6mgdZP6OlaXn zP#(W?S^q@*#dcr~8Ay5p$+EwnI+3aV2tB?Wi#n0XtHfOv$q$aJI1+ZCZX@xcr}sbE zvlcU4O_J_zn1%}euxKImUNW)w6^E+5U$1BS2T~_zz5N$|mQ545SYpr@$HuPO_K={$ zXL*(3_!&(U{;zi4|5X?N|H%uC{@ZkQ`R@I}N-rZ&{%ZjO|97V@rG|OGatI%{8DQDM z1ryEwaGl{c628)jqDVV$Kn%OGf8qFjMpwu9YVG-g=5^OFfpeOp&g3e(P;Ai~xZryQ zsTbgx0ej%-7BB!Exqnahx9=OTZOj6;Oh+s7e19ce(Kg}By#1f8XOJ`BrI$9%y~txv z$DVC=b4|4|6`gCtQiMLo@PJ4?7K5T1<#Nk0^2I#sNA)MEr_-Bvq!YyV6+{I)QcmQ2e@o_Gg1+~RzZu{!($qm3q~QaQa9soo0#x_t1d z+IBcR-0GQbtGSHoG8B>BqH2OciWD|qKx>_3KS?4(Mo8s}@y8R2{Y#|MWW{qkZHniS z)!}RbBGquaVo`^k%QM8d@WMeXxzx+d&FlptwWP##hoE%)+c&ylE$`^svhNQ|(HUbI zPvzy(w(>j{Pg*-4Hjpp{Pr1m(6=~d26x=Ht2Z3`E3n2b1E;2rh<0yin_HdhtV*zV; zZXX0Z93leBs%Ig+tlYy~6LvK?W2sSeuylK2sSke(7qh|BivAc}aA3=d2Nf=%$)nuJ zw8bQyyOtScA3l)WAv-&$+xE%7YPeY)92eqLqoV3+`Tj26RNXpa(hsAj{= zO-D)+R-Bs!+IvW`Rakz%la_oX!DG`nz+$h5#nDqYbaf>-wTSwxiyhu@RK7G$uUJ)Wcdg2IuIi-aSmo+VFad`u(k>ir z30hmT;>oEJXz+2#uphs={AGEfkA0|p*nJ7jcwXxzYVIjh^Q>w6iDSj!F!Nc$B)M;A z114=9&g%2u{z`9s?wQU!(Q{LX_o1<1+{Fp#eO+1rt@!M%{>*0`ZX z>iT1oG$vqz=(NNl67~xC{MDc+n$sUMdTlJJd!H3sM4f>Wn%CLLNx`|Cuq}8pK3!t2 zZvH}8#A(>0a!87PrPz5xr&QqD4ab)@9`##juBU-K#zZGuB8dzqMLTKX!+y5&C~N*Z z4vX5(BwH^kGd%BMt&j)FG-Hc~T2h)s@U$hwO-Iwf7>ld5-|Up{XNJ$$2yuU^y%MfG zchtj`xbGOQEg4@#;awWJ(#s><@L4K*9oa~TbHjSU#etE$HP};oKj~da!fn>txp=$2 zHeH0#GyaR~qGMuG zqBB=1F(b%PzOPTDEbufSQ@GL4bGm%N%1nvC)_pA+b^V3yPTr|rUHH)0EwPxF)wjz? z)x+>X(^=M)ZX~K^sRR;@+*Z7|rQTW$B$htq%9~xYZ%okd-CmhZ6(UqeKX7o2<+m<` zh#r?sE!pZ_b6N4kf$k-;l=8j-@Ms}^R^WkyA-?=XsQg3?;g<1m&FLHg1{ zb3(Y_c~e_6h`;1?9O@H9+)ylyg_S4%E#s7D*CS}#NNJuN++xg(I(teMRt(mt^M)6B zeAfO;Q>+HlEHh0H$;9=ee&JDWuiA0n2Bg}r=*43VLPEH1-x7uHWj+UKiqxzVGZa`& zx30p;DQw^rym2bt)P~=Gzo#oLc#Re0dAwU!)Z^Gu{Y*Ym z#z$Na;Xm6N;_E7-*ftmTaBx?T=(jqCVEDe4uko%v!qjW*DfmwGK#uLL@S*6m?9Dv! zkzPy}C)|N#$X5s3pI4s(5|8l0R6hk|yKA)-Wt#uB*A$@H@8FT=xy2Q}&j&I<6PK6P z*Vm&K-rZ<><2|Du+yES?>O2GANJ_fU(X{Q#8gmhq-4$zyA;0D44;Z@?Z-%rj}JpdLO5oss$~2yD%X6{c0TQR6rG>lJ8I63 zkH;62v!y0m3s~+^Ir+qUON=c0^yoTa(i=5TuU-Mxxz@6k0_W5AeBZm%9+f5Y8Ef!! zt!|Lknqcs`O4Qv)Wf5a7?Cg84s}lLjY!KB-mgW3;-QnWX#V>Km7I043;aDrjP$nyP zIJaQPjoCxWdDCzS56;wGmQZ?F&D^MZ&CJH5l`qb5?qKrUUzaAII0)=xC=S=t>r*G& zQ*te(MwQYRAQw!6#-_A|;q^)RyP%J2&XY!S$aXK5A4nm6!+A|cMTC7V2FdJGxX6J+ zlakTR%%}+bzotLmUvGQG2FpWky5UHAT)H#&u0XT%h4q>gLOK=trZht3N{9GgDQCzSprCn0(miFDy$eRum}#x7Sw?2MZ$;UwIlbv z1fldW+HL#@&G2IaG@bPPg&j2mhv;3hO9*8FW!|f$>OV#cqFOd*fMsc|h@zuOEN|nG z-VA|K+hyzU-;_>m2)U=kH*uyU7sI4w+DV#`;=4 z9+4J1{e%SMnRwmsJJU0FR%@||w`AW?=f=W+wVEKZtOnyDaU$)@I{q2Tbtu-Fw@Q6* z+Whz>Za7YKvDl6}(e(9b@~2oB4YN>dnDm3}{=cK1ra@ee;Gb**0VMxVAinm(=f7jO z{>8)h5eKY<8S`%_bD4wnU(M(Gzk}ERJ!C)p2z|mk8kFPMA)XY!F?C@9NKiz1!}9xI z{98Kw{{)-(@7?ZCS;7}m?zpPQe*CL12|<1u!85yL6#u=O1yK@*AH}dbi(AuZBq=z# zA&8XZTA?*Cps;AcGr8$w5OLv0tz?U~$0SZBB*-+)JhT^B_N>Evds=Ipp1Hiyk` zy}{8Sh^h(90}w{V>A>Kc5aj_^2xbocEGn9aq2J=Pb2+|vwZZ70?jd0G)qNw0yf$}^6G9G1cS$%rA>KLZLp1TdmMXR~Fq<2ty z&yeNVTz+X!?3)9Dr&f%V(&!W0l>R1|WOQQ{T&?CPR9}JFJK!ZXLPY#YHP#=bN9II{ zury&itc}q(RG(JZEjG31c=qZ5yv)>4xogMib{|0#@#rr`<>GIX9kIW1{r>Sv=~+f| zQIf}#^*FYMsI+9q^2d*gKRfIddD~~Va{*IlmcfBl^e~}V%moO`;Q$exIfanWq@xiF zd)AMI+68tymUwb05rW(O$|Xjf@pKp-C02EhbIt725()W@)5LVWEmN19@a@daHEYZH zp{MZEMex?|{+!_lDDW2;gifAzSO%Ty!E7Og_0=h=mk3f+bx@BSI#*YIh(RrhO`j!p z?O~i6zVbQ($It5#@2}eXlLY!|h}@uxO0zx{C8#awl}cG~Y{p)^nHfKFker)#kJ_cD z>m;dN$g?HWSl3+WcqHH4+&unZ^5P>(-jJr`sf0F<#8AP-AZcq4TP3$k7wfuLai}Z^ z?{bPzX`4GtvJO6X;*OP*`tbXe0q^KDxAq>0Xx$L zJ9jV5iv8*hD&N0mcQZLm}3}5>GA2&$PL*}6EzN6ueH#s@WkW_Ezn@+jeQUeD!+9z?E>3&FIvBg3>vu~b zFNyx)GOVX7fJ9>QnLuoaQ{q9zVwV(2j&4m&4W1;rw#a8RLKjvX>#Z5SRMjTMsn_|z z66d_}MYvGrd-^E0mR6H`E7!OD#P!n-c6u@tbjXS*n=Zruz%l^|7mR~uk>}_*;#$LL#U!JT)}5f#mYm_Q^V65= z{{fOO1$8;?!0CW3js^T?Gjer6wENfNVm@pI1yF-o>L?-P3Q^e; zTh%&1IW+qd+gUZU>v!V^AdLAw*`6i!W^Y5t-J)=6GyRhp8|m-1=lIf@hn3Hl8tzu* zcD&~9;lYcSCLB7^cllxdo+omvVYVuNS1o83^~3mHyasJ;zZowVbwonOBmg}1UF7s8 zsR6sub6q5h?K!ln@>Q9yzRk+vDA(`FM;jjAaT>%MnBkms?8mZ-yRKSBnk49Lo-A?v zC)OP-f;e^d-^9+{DsiER8}2BxZ|yA0F)GnNVtl;$U5eVOdqWz{={^@)(``gwShN%d&xg6I#I7i}%qy?8;PQe3_ z6T>aXkprnji!fTo#q~&zQ0m09%i8HBz*+JI`JAld6(J?=0m7_zjJ)L z?|yDi)SkvTuOf{4Vu@~)+(nO;4OU$FAOp5>-DS+u?bwF__*{{~d7Rjy`IK6jP&=n~ zciTjvA#mvNLxWO+38&8`QY6%$UfN)$QNt(BuCK@e4-=x3*_;UmVst^cl&^AQ9uss| zzqe|@D3tTzczLxnd4qdx2&tEd74iO(K~Bdjh64D9E#spwqtw;rJV+R^fW!?ldo3Ef zFG}hCC65+*QW!xu&LMmh(-}Kf81t! z0i!lIDv5mSqRpSd)h0Jg5S=DNFiP$T;?9};t*T3mg8=2vAK(qsPDuL}R<2`v@R&|f z0W#~B>`@_j0{NJ7-%6JuQ@N1ONa6U;vfW)6WacG?)OTqPxBEIH8VsBg;W3h#%Y{gig(~@yTt~JUqEauMSHyW!dH7k5jFqT zq8ed|u+3Cx2#wPf9gDyY!A0IVO=)Ch+iO%M3aN4Qgy`3kdo;gt2 zS1y|yQl?rXrVy)K%GH*WVVU8n05S9aa>JEeht_gZtz=rtUhUEOqUk2{bQ}1R-8lV5 zn9;044)C%uc#X0`lE`8k!Q2P3KPc+pOUQlp;}U5Fa_Po@R2TKw+Rot2vxXujwPAPv zNgv{RUL{f+jZf@!+50XWJvci^rr4ddp~JZO(r>=%JZ@%y+k244#_UdfQMor;}H-V}{JR<-8$ZI}92*Oi49bVB=b(88+YE+TbAGsZD zT`eQg1rqiOv3_(D`W=c~y(L8@S~Z=c$>2|9fFMlvyz9qXeW7b`mjc90s;T_e+~7hs zuG6)fUfAwl`$jRrNVgcdM4EXga!E-~h)Hm}fQx7R8%UebiQZS%u zU2W6L7v}ZvNMYN1__27QB2#<{tYmwdt{@h_&(<4n@huBT?Z2;b3X=R=%-;r+a|(K% z?%T|Mmi4;hez1OTPxMTwr}sYn>5^L2#wUNno>T!kfxw?5v+zL{O4y#1^NXb_*XUl* zvP1I@@qj^aGmW(m^CS@)-CtYoGf1&wx5PsJdLp95mFYL)$*w9fm!)#Yy5Yk|rxlBU zX~X~@w!3vPXb*B@-@TOS##0oe?NrZ?X|}GVMHG!r7oEdmldP(=G0FKMi}_@X_W?Su zadv*?WMcp-6Y}oNp6-e5K&Jl&L)4EV8#S#OIFHBf#F&Sm>-%9Jbz;Pd-)iKsPrJDw zMtQbT#F7Jvl0!%y{qE4FrKu3CwY;Z&QWOAj;upH#!)^ZTVI&^OKXha4O(_+uvY6Tf zjOKdxKq{*D{x32o!SPJ~Uy0ngf^Zb1dR_#xhm=>Y+}b*9IOc{?MuHJ z5|xh-ocm>=O?j04nI6TJBG}fRRn2rrAt*%trKm$m6npTc}F zdGI>2c9@_+Zw_h3&mrJ7YEaPa4o{Z_gB*Uj##GOB8){o@rZ!6P?VV8FHXn5Y;x_}e zjQ898cl`QfSKUDs=@m|`$--IpT$BDJMFG`;LSHLkQ>OMd_yo=>1LBxR1+>dGRy;C zEb1ZRSD*vzlV8}cE-@#aUhg4T;q;d}QzB>}Z4UYDAWK9Yus|Dod3(PJ8#b4dpQ3lb zbZQ}MmDg!E$ML}|Dwxj3K;C3_mP-=yT%?Wixr@Ta+o{ld4Rv`wPE$x&iOO{##hm2m zXdO!-;;Z@U)Oxy@{~Xq^R$3=Kh)QSwxuJZuNf3|XUyD{PnWc6a%ScrHi`zPXj1>!4 zEy#j}jT(VsUf0&Rkf(%I1DFX^{UWlx*EF3xDXl?msa`bGw^|{MNqoWq$ZbDwjuaX~ zh!NIHBpuQO#cgcgC z5xq$w?;D7y)Lu=LLl^2C;q8#A*d~Uoa9wW}EVeW-4MD)nY}DwyobigK=39l=F%YlQ zcHRLmFijKb3V8G4$OH7wS!NwMGb~dog6vg0C=V?3w2Wz7Uw&@GX?zkqol7FfNo@sj zeYdB^@$E+moZ2$MYi)g9ffVZS;5wVu_bTz)=HLw%1sowy-x5~hBe+(*Ow;?p0IH@B zRj&ST2%GS513f1>_v(|;XC4bV>;AQ;5XBxNaB)P(`H)NoSz13KW-2>s5$)cthT2ux zy4Vn5-fd-cX)snDSATgTfGVK5mki2`5_1cmKMXRYf==~vJ(T?4aaYw?7g;d!P^)B@ z!uajiGid_3J82Hv%MuJ*;}qr1C^J=!Y>W{dGT`4nFK0a{=%s1R#qxX?Dn|to}?xz7nsaR^e^2YqS z{*i*Odv^4$DZdd%ztV)qfif-j_^^p%XqKNP#uLmqSHQfPyek;;4Dxv9!fxb#4cAvl1EYfOJ>>cP??52Q6hM zCb}x&2MaR2kH26am2IM%k!Kxvy?%@HZ98w=-X}n6b4cVAgx>K}0p!yIpQ-#y* zP;+8RnbMgA-J%Q)^@x$A(cObN^%F>JyY7+a1gF5n-EMw**LtHg1>g#7>ZdNF zSMne;L}Kdbwx#~U=SE+&O634ikE|wwCU5CQ=7Ukz$j$FL-tJn{s)KMA$L8Ma)V{n= z{A_duL3Yv$1%bfy3$1!KSVZFBXqgLTOV`yF*Bv8ayKN)xfC*WOWIt+o=hueKI^T%=$AR`MI`0b_E>7*XoeCk;Cu!=K#d^73lycmISp52(5XY7^GrPyrQ|3ytU5vsctA@}m1?nI`x0eJ`%}qW z6ZW1gu5#}BOUDpe+4vNX*RNN5ZMhTdQVc$p2-G`3(XCAy2m|%rvlf4^YE8Gqk##B5 zwi_EW=t=Rd3^}#)`~$)!f?#EJt8L(zsUNS>U;N%FBd+74pWYQ}*o+%XX(BP1QH?K~ zek)CjhptYk16`r&Rd1SGBBgzs^l~X_CNLnnSs9SlzICjz3kO}Fkzg^6T zU6laRUgh+(PaRA~g{)=1lV*{53kd)0*9Wes#A^ITlmIjdxSGZL)dlEw6bMrRibLfVX(FBY4X7k(cv4ig5X<}Nd&QLbsjTT{_L#;BSqnnm8L>f9#)#M z+&L;^ApKq=9#-?m-dfUOo!~> zf;>i(FMWgLs`v2oNset*s@-TtVQei{;Ul=xt zo}`6qTh`d8u_&)TgR`fx6a-+7619fK?Q7lLu!vqDE9f(MXE9dXsg(dWVlbr|u^n^& zaN?I!*Hn^`PwU`=uM$j>x&B)={jbzy605Nr?`h5n6&~KD;OwlTSdFSF9J$Rjn=Lwi z*W*GfRsJ+(S!I5gUVD4hvRq*ONwgFC*@L=r?aR3zKjou|fOKkKCKE5l#fERU*l3ky zWEgSccw6})H@90m}i^Wx;WsTe8c9xna zYoyupUo-`+)4#VI$yr32$ZPM`zWk!Nc3D6EB{c{^9ca;~WCPQg$Taq|pcR7WI`1i( znUGztay-;(buO`RzDr7VG*U=sFD#{k8R?En?Hs5y_6_H&1TdU-0YOb#VtzK z*nF?38(^oh5JYJce|9%bMSm&&v4h;Qe!}>TN0WAojjNqPSg7T}9jMaj&I*=pwqpdT zoF)x)q9?0-f4qpQ-qbMGhXjp~IoY__nbRPd*Iw0dt!Iod=*!kYRWQUdVT`q+DC_mv6gF_>uF#{faawujJdZZGR4HeofmwaW}q?&un7=MvVRm%O2G`hY3*Nr>Mnt98>RD~fEg4g+ana`RMZli9g&^(S4Y zo1MWp=~`8;#aFGq9dTC7Wfwlthw$g1Xj6367%Q~cu%$QUsNCb`GvnhgIYi+gA>s9_Pg8%ni z&;O&M@qhKypa43JgeAb-O70y+>e==EDgWXB*W7oHP5NO-j{ zo!YbG|Lr3bulJ>l->;r5Z_>F8Q&1AeBLoMoyWtn_vxMX8j>RK5U2DMS6X%Pp>m%dTx+@>Y;s`FO{7Q~;54s<*-`KCRy6Ac?!5eV*m&VQm~6Ebs1N=dGsop4^d4 zv6zsApaLxF!j56DLu6@sCUDMYrqyClzAlLJmewFK|QC}(tCIA_Stj>QD1i9}1BAr!o+)#vXAofhIiR!yS zmjO&=rZ)i=>>%vngqgI?@ z-j#hrv;xra_VxA$i15w!_xB?!H$=HkW~}uPRV%6b2Z46=s}0MbT<|P)!K-qZ>G<8- zkUXk4Bs>E9lLJZBap?FiiKxq`5@gaabwy=#z1P6O^Pxk4+v0b{!%>fimn5P1;1?p1 zzs1T)Whnv=-V>NC+Cp0X{HuZGE0A z>S+y=Q=Ft_IiIFqXLn8EDe(^hgS7rnn(c_Bl%V%Y?1U*J0?S9q{I0b3=#)XNCSSqJ zvwRrP?j`H=yuq6t4GEF+fcuRir>aZ4xK!U1rU-*@3p&n_i?`a775lFHpLH}{hqYYU zK!^%7cgp~EYQ{*|8@>Cq)r2~`*$k3&uDjbNj-cHTS-vO(WV0*9_i!H#+_gQKQnz&2 zPq{wsMMsWvcz61{y(=)EKcQ!i@Rj}bSaRdqRTF!AdmuAoWpNli*?wt^UCX7x+Gi6* z5o!z6u2blH7vZ31jV>EhvCCEhhEsZOB|d!vsZZFxUAl8J%|7@=;@qK-Hho4>P@1^* z%`Qin5G*aRA&L0GOqM=oXHdY8o6VnH<6^@8psXBN+`_}Eh{ZRi9xn+|yS3+{Qm|6v zFj85T!}CS-N`NZ5MdjU22wUV`5!6JNpW;}lsOc-BI_sA(722>cFS;fNn;uj8$J@Si z667FjFgfZnjdF4Gu$uWy3XdnVe)rT&UT@TP;xN6NWxBv*VB^gfK{RGd0rvZ9O9fY< zVYMT-E$Ti=1yBu`FyI1dCu=EP;ogrC=(m;a|1uH$nONK_COm7PY)U);X1Nk^?gx_p z_6!Duu9rJ2dDllEI9X0bU#c!^k;XNaRdKS^dRV$@iKVn+30xoFEc)M8prE^t`y@Pq z>ZuQ1Jhu&qV|B)vfK9esZ3cQE!gP=-o1kaJwaxnDy${J^Dt56F&ICf>ZFor!7UM_1 z+Wh~VE&g{O{6{PMzq{rDayAgA{B1oC2Q3lb(~NUU9h08VsMR%8Axm9t`6iYNb2ix(pNffh*ss|O zrG8yXlE814$EKoXsDw?mz33XjBMlMO2#Zh5^hp2I)=sLo2wQnzKgz z^Zu1C87)%r%*hw?3O?LRhZbG+3kff7=7Wo(I#(dC5xCS-n|G@1?nG!o&kHh1qX1 zegWdCbah<(JkYL6*@YYXv%{er1sBiP(uL@wZWde=Gcd1U`-l-^eom&(?rnvfLcm-Q zblY}Diw_aXyKuFDS55H5RzstUeVx^c5IJ>k4e;l(lDepcqi4X-!nZ)TkQg?PLm4%q+_h86w(7nW9SOJ}UQinoG_cUAJQ-zqo6L*KIM zA!au{jIwf+JRhlEHxn;+sky2(-)7jRbbRK_M69*Kd-`XkR(y@VUCBtmhP^MZcLtxZ=7>SfVo;W^XDQn^0$@cKhoL3?{lO~Noe#R45&9^}c z7J=Dqu38iEJR~Sz29kF2Xe0W7SL>q)_H?{&xbdG!FJ+~EQipdBbfJN4tuSxs44)p^ z$FBC*8utfX!|82^SS$=#_!)_75YQ7U+z@F)pm{Nh^O?A&_Q|*lWPl|?-?x0W9*N=M z(6W15eCA0njrR+ZwQGkNU#dYzEt@kRNyKgBk8#HFGF4!u<@ zJE!-=+@Y@dn}Rz@h$z+eAgpGxrt#i~wDeLA?NG_B^S$ z)}RYjxI-XlpV0!Vx*gtD{!lW`1ZLV{Ri;H@@z#4>sUEAKp;;ippUveX7ypF}&bqJ2 zXipyd56~zbN&(`QymcgLg~Ri`uO--fN(osEpI>}m1OFK#sjUs~q{{w}WaywOIq`uw*G1)-+t{ELRD#RCo(p4~~QsLjRV5ycH!(o zY1WXy$4aWY4@mCUmGQTQSZ)_^PBJ~JVD8JW;~M*F7$vInhVoU#p$K3TLE+9qUYHY1 zo;+{u;UVwMFhBHum=`{jZ#)b%1jCR7LR?cN0j2m& zAEu060ab;tl)RSgsC3bsb69SvMonUUq0TjMm7{4P(Bs0~SJ)jBQ7M|21+z5SRUXGX zpqbUGbW_;e#@S0Jw__$mtF1E!ZJOt;mbB-c3vSB*ZVI@JQmF@EYriS4 zR?9yao!G(KGmh=ZLAQ=M9ewLZPYsadnO35Vczs?Mr)+&b1om)Wqttp#zf0s%4w7{w z45sN+N-j)+u006%4mmJQy#v@iXsZyg-SxR0_QH#>+aJ5`-aXJM+wQF{?VO-+p2zRZ zb1p{A0=tI0!RSSDyL}vGRo{=TE~Z5SWZJ#i_e-~ma8u=_X&h0P`|^=@LQadQ6%S{2 z6_&QQoS`ltkic%Y(Zwr$e^siC|{jrCN*F$L^udG9j|%3(q&B zYEk*AGuP=qA0^fwgTUL*hL`?9g^PKl!lnJ!D%^X0H$-BYe6@5(tmEB!e7_0qcYf4ZHF!q(Zykw`Ik0YgyaNy=` zx{z^;Dt5rr3x~y?m(lf7673!>!aXM^Qb>i)kS#AEPDhc5cQ!&8xCi%V9LUK<-#v=o zxo#gT>t^d=vsO6GBp+yS|Dh$OGP4jNyRJXP9UOf+DWYAG1`Ve_d8Oe3%m1;*xFx3yf!Ty6xCn! z{ipU(yjDB+g6lrv`^v&4&pazKOBZ}Z@uH4!r=e)mrkW|PS#j?+R?|sy;V!XuD!TXD zwBB@dU=R$Fl7H?7%ih&6NGXL|hxCdmRq87`qx}Nog(4QB#)HxRfEMX7DH?a(qJgD8 zBSRa)WFL&NQJ*mLcUGf5M^x)0`THb)#*ul|iz#AQbZbZ!R3vF5rv$W`)murLrg~qU zT1!N2Yr(m*GrxJ)?9wQn>RqbfI>n6?GtV+@wE?LJapc%8$|=-4KQACaRL!WVi|6*} zVnX2l&l(DFswwch7)lOuq3_S8>lZdxR0|tP_H*s^4-Lg#)1Ag6)++hK+S}n3*~oJ2 zMYrwK1`n^GdrMua9)y7gVR|@W@8l#^surPwG{d@Md-sl&n5WU+pzDe5>oW0*>$_7i zEh@H`sW#UL-s>gArm{QX`?a#~%R~{+nUNv#B11Tr;&*C`pf`o= zH*aCx#YH?priMb3z-iFRmz3HL6${PtT@#G`UV2Ns+diG(&2MFnFt+3LWbf-Dq)p?4|V%1nz)3=7nszUb0 zpCAbvX2Rb&D!Lb&l1hm^KI|uHR+@(RPHaAQzC*GJ$!c$i7_j>|0-{Ei(dX;#*PZRl zTs9~$-EaDsI=w@tQ55r~#4*OD%JCg@xjG1Q)tzoiD5qWxgFc>KTr?ZFzuBHPesX&~ z-yUxm0*@Tsx^Zhn|Ko}+6m@D_h(?ky4A9Isgy=j7MM6D6BZ4r;mosGS;WTkp@E|o= zsu8!ThXS}_g8G)z?QOiML;rkKr=&ntD5~*tr&!|JJCG9O$!blfG8kMZJ3ASGnE~BK zmN%pt%vyRVIvU&3zUlwke+R@e&>yy+{Of zy+(Vn`J3V=%MBJ)tAn$1I1ITS|7hMN7LyJKDE$S=T^#bgBRAdAyMPz#q;;kxTeZ87 zGM0}#V8C17*dZnp?HPV+b28h2S>FR%msQ)d1`p=KxfA-}864tF?5nmwJy28fQHV<@s zmQi$xvxTTOG=CnGF3)suh>dj|(-sh9Irx$YFjUpGEZMUA?IER$MGbd^jfQ;R z>DQ%b4HinP%RPR@RwdJ`5Lkb`wF!f!>0If&QInwikS{^&g<5RhGZ7|#z+jpTQ+rOC zyS)bx-e-#sRJkb(5r_s&T5JA>W};uoC}4}g$ROPA&=Z)W=hhUpj-Yl$?{vqY{J z;qyEPJ~dX8A#J(JuzaTsz?VRyVE)hrO@?AY^wjMn(m!<5J%on0tt?0BxFv>N9N*Va zF|VF74$F6&RI^$omFqmusr-{30@*%X3@^-Ay-sqQhGX&jhn|CLZ*N=^&{?HabLUbw zOC^(P8q8`u*HL+U0csUHm{*}uR4w>zMi9k8ZPNsG+zl}gNdW=dJdYZ&tdzS>qXc#D zBd3SKs6f*y1M-1n#S4{xQn^KPK@u^6-5|B|azd?C$f>FSGWWileF$4T*Iobms55E*vxvc3|c*m z5FN>6AL-?W^3zdv0@%ThV`;Hmx2FKM3vN)z4=mDCDLpL?M9$ zp{*isZ_VJ*-1v+9_nSh1?iYJygb~6Q|ACkO!eKljzeQr7deAx8bK z7i9Oryk(;j!o91V%71B2CZ7DnYJJ`VOb_K|^&(N92d6TG!yrAPl-?U4QeJg~$4BP^ z&={pcMV3C*TFospMYU1;9A+W3$pGC<45+piaoo~h5fWeu&&cLCkGT03fTK9+T%Pcl z=y}b{$w4`eAWNTEfpyVY+5Cc4xU7~TjNjbkf-)N%-pXTN!hS}%MT!7SC&of44ZIR} z#9mZrltRz@O*^(zob;vMPJXsurpw(@{e;+QAvY&|p_z$0L0ix+o3gL)o9w|rwwcx$`H`J3|TWMTl zA=~3I>wX6G#g@XvxN`IZ2{DK}2`lS)I~6)L15NVr(2dgieL``J6E;$3mn$3Y;kZ$5_`C3r&!p;T8&l&iBDoH&yr zBUE;U{@^U8Ne$k?@2Xt^GA`@!asyb+y$0)z>Wi%w#!~?@q}k; zgjM2nq1AiEbjLBoTm3Dcu>4KG;)&>4i{OLZwmhpY_TuImkL_yL_sOF5Pc|0hyUv=+ zg7^vJfD{W(UPrJ_A6P=Xjpws+Xr8y11j1E>?Iqo7Mhm=*7MBC}fdlm|o`%5ADW}Y0 zxyT2FoT6g$GSaXc+?k*-aqmd{e~8n`e}mJ1uXuji6wC=XcMPmO%4D&nzD)1}ALy+~ zg-FGRIB|gLSv>kWTGf2o>otKCM5gjjA9bvV{V&R#RXxT3F29QQFcReU9PE#FkI13? zW^Glj|I`}5lP4cQ{-~5iiw+l(#d^s!8YYE76TcN1BrKY9o37jS{X8 zN>ff?^WX&Sx{QMJ!dj6MH6Fd zW;Tx=-l2h>`0O<6H3DKY8q3xaqQ^Hu!UlFgU;PkgktHbk{&My%UKFMKidn~q{IUv< ze)EX?C0(yInI!lj^{TqQiw+5YFHcxOb=^K1t+Khhjgb|?n)>1}yx|`iS<}DC$TCbE zF|v6Uo>YQ1()&+Z*Gen0p<@OF(mijSQzKU}pDY*(39>Rpiv*H}Mg0px_PJ9j&l|Jp z(~^wh$(|T%D;qhwaD`jV_lVBOL>>~ed6h*povS+r)uk+|#f3{7CkowCl2n|D@5&v! zIKIOUKU(;0cezXA3vk$#P9cq#DBZ>=JfAW1cNe{PX|nekeHq+VmzfO9@e^DPC9%0P za9r}NE_IWM`^v{Vef)G%=cGCLJg9{HGFKgGyb$94Ty=A$E1K}`UN!?&!O1O8oN@b0 z+<2(*URZN&GZX8GtAe_^T~u`z!zcennE9jfcbH|Jsk4WMQe#m{))^055Nad14a^C` zokM&zrB9^rh@AW}Izea`lM27sHr}zJ6HNI;hnAwqEo&P!vfc)FaQu~>J@tEbc1!o( zZO9!zsF-F^i^idl~&2k zjg;4gMLioYzDYH`IG6~WH$!J1sTq&<$h4noJJa7OEcFMexY%RdV~lllr61OQCLgl4 zF;{;Fxc_gkwz^(_Wo->rpObiTp_B3Vm)k_oxD}mFw%XJ{WkKOM-iZM|i3|L=X4QdE z#;}|n`+%Au$#$afz1PrS_2WQ{nU7@Rs{4a$uXE}Y#ogU42KaXAWgY*SqWRgQP*ym` z7%usXr9?Itkb`eYO~#?lCMt-8&=*7sR_(QwTj_e)G>&~rh%@RuxPqeQP4TnR#62m< z<5Q^kXb({N6x+yq&wZk(t#NQ7H4+MOymiz|8ov6Zx%+G84$_F4NSx+4z8rs}Og8Uf z&;Z+z9mtrdO9e=EwCw?yl00Yma$|+Tvs_ecoA~(5`I8mcOMz5;aE>m}J&L!N4ak#j z08i|92?>xVaX`s!q;v-(6maPDU;pX&0CzD0V4*Pq10h(Y^M?635c(pV>KZ2GHZCoo zgL4{J{;0S~eXNiWcy9q)$m3{Rp(%G?p_SkP!|sZ`nVjBpNAzq%v=EY=MFIFSvc}hRL9!@|sc-W@a?Ud<+1s}v za;3@!ermY~d{!MIzF^g)tq~@%;T-C&qP)CV7u@s>l781}3In6c-RYP6x5Y1Ix^J=x zZ2K_wX)O_O&WB*>VK=|_epi>48pLhXofS|=NbiP4{BqAJ8Sd@)T({&tqf|rq0ok<7 zuMv;3!ah2O3x8j*q}=@a)k}S#S#M&x%Lw5_@3~xPM#7lmGr9|kE<(qX)|e2DeH57z zk~S8m!Pg~Y_0crfb%WWy_`J8XS)3M?4-k*C=YIq4!8y#ag;5E0+L8Ugf!* z@2bTRNk56OBdzUv+vMZQ*ZTI*0zn8Rhxp-5O5)30{qynBv3(nSg!a-R&PhUEwui_) zkS45+t&0Md<&SWO>%5PrPGj<(uO-gE9}bnAkUE{bD@S*tt}3&8JK5{aQBlVcgA5>C zZW(8SO|y@816DkDA+bHWHVE}BzwQ&qRO;*TH$o`g2W`A?ky`^#AC(V=7Mm}+F_Hf0 zLp#)0JCXcYph{UVc!YcMWPHt9A?BVT)nwSVai>Hy)qP-s(+BhPN+ zxPJF;YbSo++#szr3?7*B3NUr6_j#(YC3o@AtZiqQvLR(7GWEZnbYOitQGleKEr!Mn0OdC z8d?ik0S?UQl~?Ty`!0)nj0&aCc8zW97J^ndDj16KtMsTI0L~K2;L-56w9YzMb82f$ z>&PR49lAHs$43q1aim2C)pi~9x~K|3kh9DsTkl9{f0MtH_9Qg;&G74gNpd#e-4_54 zlLfbsCC}D~YQ@bR&&`_{L6Z?+*8#WpBah^7$Us-${yQR2q0(%LL+$6s34E;1gZ=(7 z6&+S1_ZtCgfGT>mj+9Ch#zmbuUdRC?Ro4m~^$=>*U>6I1QRG;Ky0z7|5x^g;WU{Rc zaV;_*U^I$z&6cfPJh5VbQYG94gb8|3#tYa)nvM)p<{(b#i0@m8V=2@tZk!RDE!+#7 z^xqAm5WF}ILYVGy9v|lK^(7Z>LP+gd$h*ZLH+!pG(eIkwS?%RxP5ZIu-@72o(XZ}s z@+TXKyKRo}SfUeJZJ0ZQ2$G|)&r)&?aH{W?A>Ja*x6rIx2sNV^15#F5)q`z*)o2&J zoXVRZ{glt~-ZjvDu+Msi43WDc69AGD#Q;{2jbb%Mf%uaOxJo(x=t*`c|{Zd4~+fSFQqeYb+; z*#lUc%9WFjff0dKKP6Gew4whM)HLB=U747_xH3H*Fn(Av18M&2mdtvfsAP9P03yB~ zChrS9^i*4#eJjlh>OF!tm+a;SjhmE5S7uKY%4bIsclQ3~YqKo4wRxyQM$H7zHjJ<( zyNhOjjS}}AyBXW#URHwxeE~V?HMN?(J@jB@;1$cG4dJCg^3T^@Hgkgl7x%wns#Q*k zE4TeC7p9t0l;bi|b)t?YfssOFM@asC@C8A`2tSx9PlGk!OiTAz(jr*J`@aiHaTG<} z4_FL0RSGpp^8#O>1YNTU2TXS8sHMRfmQeyG)?`v$bZ@_>^lBaN0?;*GY_GLpk# ziQ_UJR?WN1x9U7L#fWa!z2eMDa_A`1b$#4^N` zM@DcyAc|pqCY%-N>eZVAL)nWwtM=B$fj-xPUwv%SsARgt;z0-*s=jdhehCG&K+r-~ z*OR;tQP?D8)w4J6&bn`23v(iVn`+d#VK_B;ck#6oX$obgE)F}k_?rAepZgOz?cfqW zq2+Gsay@vrSF6%>r~Fr<}fuZCsjR z*4oq9V4nHR-`~^d-Br2PRFeVYn(Ng|`&yR!>Gs;)B^9r35vd%lSWUF)7*5sP+@pz`8x2apM*j7CxaG#r2`RKur&l{l1=LEdZXEPqX;H{MENO*WR+81SZ(t}s$* z&hY8Y(R3GmiJUikfz2yA$%3byCsKNs6k>geS{#yuG$BE)R6Ar56>tHk${W=;FF z_}WvH4)(Hknlt3;ns%D#I$mJ0`G`!y3GM3_p(o+mkve`(Tpl`a;%mN~J4YjO;_1Bq z_lsqwh5(N7)Cp7k4?+lUrqVgciPs1m_)|Kl;e%vG=*b%)M358WTrIhha$J~C8R@^j zS+q6|hMeU0&%atjh!O4kAYNpp8P|b?%&?Zz@$xF{ix3-pQWjZF~E<^EqRG-G41F72Sxzw;Q#;t From a7941f4e5111b0e9ae971d82540cd7cffc4e7324 Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Thu, 19 Nov 2020 11:21:27 +0800 Subject: [PATCH 31/51] =?UTF-8?q?refactor:=20=E5=B0=8F=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 980ef48f..d76de61b 100644 --- a/README.md +++ b/README.md @@ -68,10 +68,13 @@ #### 开启前vs 开启后 +头像加速: ![](./doc/avatar2.png) ![](./doc/avatar1.png) -clone加速 + +clone加速 + ![](./doc/clone.png) From eaa340ce1f416ad39013f0165d78a56cd68268a5 Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Thu, 19 Nov 2020 11:34:59 +0800 Subject: [PATCH 32/51] =?UTF-8?q?refactor:=20=E5=B0=8F=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 1 + doc/index.png | Bin 31484 -> 42046 bytes 2 files changed, 1 insertion(+) diff --git a/README.md b/README.md index d76de61b..eca77804 100644 --- a/README.md +++ b/README.md @@ -54,6 +54,7 @@ 安装后打开 + ![](./doc/index.png) #### 1.2 安装根证书 diff --git a/doc/index.png b/doc/index.png index 9a7da24d6612444389620e397246e8d6036b4dae..9c3424164bb5ddfd24ab024ede100660a61029e6 100644 GIT binary patch literal 42046 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 XNBTG^^m+l!gG2wWi7w)fL-c&N=XkcOCI$>eq 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 DE0GuZ From 001a17429e4464a7f804105f9b653ffc3419eb85 Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Thu, 19 Nov 2020 12:20:16 +0800 Subject: [PATCH 33/51] =?UTF-8?q?refactor:=20=E5=B0=8F=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index eca77804..e7d5419d 100644 --- a/README.md +++ b/README.md @@ -5,15 +5,21 @@ star GitHub stars + ## 特性 ### 1、 dns优选 根据网络状况智能解析最佳域名ip地址,获取最佳网络速度 -第一次访问会比较慢,等多次访问之后,慢慢的选到比较快的ip,之后就很快了 + 建议遇到打开比较慢的国外网站,可以优先尝试将该域名添加到dns设置中(注意:被GFW封杀的无效) +------------- +>注意: +>第一次访问会比较慢,耐心的刷新几次之后,慢慢的选到比较快的ip,之后就很快了 +------------- + ### 2、 请求拦截 拦截打不开的网站,代理到加速镜像站点上去。 可配置多个镜像站作为备份 From 08fefb2bff823fa6e124b69a36143079acff898a Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Thu, 19 Nov 2020 13:56:02 +0800 Subject: [PATCH 34/51] =?UTF-8?q?refactor:=20github.io=E5=8A=A0=E9=80=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/core/src/config/index.js | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/core/src/config/index.js b/packages/core/src/config/index.js index d874df30..aeccb9ab 100644 --- a/packages/core/src/config/index.js +++ b/packages/core/src/config/index.js @@ -133,6 +133,7 @@ module.exports = { } }, mapping: { + '*github.io': 'usa', 'img.shields.io': 'usa', '*.github.com': 'usa', '*.githubusercontent.com': 'usa', From d3b0bc34432dbc70d16022192852bc299df7db4f Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Thu, 19 Nov 2020 14:08:23 +0800 Subject: [PATCH 35/51] =?UTF-8?q?refactor:=20=E5=B0=8F=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e7d5419d..0158690c 100644 --- a/README.md +++ b/README.md @@ -64,8 +64,11 @@ ![](./doc/index.png) #### 1.2 安装根证书 -第一次打开会在本机自动随机生成根证书,不用担心根证书的安全问题 -请根据提示安装根证书 + +第一次打开会提示安装证书,根据提示操作即可 + + +>根证书是本地随机生成的,所以不用担心根证书的安全问题 #### 1.3 开始加速吧 From e076b6d5dc20293504c00b8367f5c50cecc1dcee Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Thu, 19 Nov 2020 17:46:30 +0800 Subject: [PATCH 36/51] =?UTF-8?q?refactor:=20=E8=AF=81=E4=B9=A6=E5=90=8D?= =?UTF-8?q?=E7=A7=B0=E6=94=B9=E4=B8=BAThis=20certificate=20is=20generated?= =?UTF-8?q?=20locally?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/mitmproxy/src/lib/proxy/common/config.js | 3 +-- packages/mitmproxy/src/lib/proxy/tls/tlsUtils.js | 9 +++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/packages/mitmproxy/src/lib/proxy/common/config.js b/packages/mitmproxy/src/lib/proxy/common/config.js index de534cae..77d508b9 100644 --- a/packages/mitmproxy/src/lib/proxy/common/config.js +++ b/packages/mitmproxy/src/lib/proxy/common/config.js @@ -1,5 +1,4 @@ const path = require('path') - const config = exports config.caCertFileName = 'dev-sidecar.ca.crt' @@ -8,7 +7,7 @@ config.caKeyFileName = 'dev-sidecar.ca.key.pem' config.defaultPort = 1181 -config.caName = 'DevSidecar CA' +config.caName = 'This certificate is generated locally' config.getDefaultCABasePath = function () { const userHome = process.env.HOME || process.env.USERPROFILE diff --git a/packages/mitmproxy/src/lib/proxy/tls/tlsUtils.js b/packages/mitmproxy/src/lib/proxy/tls/tlsUtils.js index 8bb0aa3c..93d7928b 100644 --- a/packages/mitmproxy/src/lib/proxy/tls/tlsUtils.js +++ b/packages/mitmproxy/src/lib/proxy/tls/tlsUtils.js @@ -9,6 +9,15 @@ const mkdirp = require('mkdirp') const utils = exports const pki = forge.pki +// const os = require('os') +// let username = 'dev-sidecar' +// try { +// const user = os.userInfo() +// username = user.username +// } catch (e) { +// console.log('get userinfo error', e) +// } + utils.createCA = function (CN) { const keys = pki.rsa.generateKeyPair(2046) const cert = pki.createCertificate() From 7c16f4567d94febc02758ae12c609ebd474a3391 Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Fri, 20 Nov 2020 10:02:26 +0800 Subject: [PATCH 37/51] =?UTF-8?q?docs:=20=E8=81=94=E7=B3=BB=E4=BD=9C?= =?UTF-8?q?=E8=80=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 26 ++++++++++++++++++++++++++ doc/contact.png | Bin 0 -> 630004 bytes doc/log.png | Bin 0 -> 15139 bytes doc/proxy.png | Bin 0 -> 140533 bytes doc/proxy2.png | Bin 0 -> 89173 bytes 5 files changed, 26 insertions(+) create mode 100644 doc/contact.png create mode 100644 doc/log.png create mode 100644 doc/proxy.png create mode 100644 doc/proxy2.png diff --git a/README.md b/README.md index 0158690c..e296fa60 100644 --- a/README.md +++ b/README.md @@ -165,6 +165,32 @@ const intercepts = { ``` 注意:暂时只支持IPv4的解析 +## 问题排查 +如果没有加速效果,请根据以下步骤进行排查 + +> 1、请确认windows的代理设置处于勾选状态 +> 如何打开查看windows代理设置: +> win10: 开始->设置->网络和Internet->最下方代理 +> win7: 开始->控制面板->网络和Internet->网络和共享中心->左下角Internet选项->连接选项卡->局域网设置 + +![](./doc/proxy.png) + +![](./doc/proxy2.png) + +> 2. 360软件会严重拖慢设置代理命令的执行时间,如果开启了360,那么软件开启windows代理的时间会特别长,需要耐心等待。 + +> 3.如果还是不行,请在下方加作者好友,将服务日志发送给作者进行分析 +> 日志打开方式:加速服务->右边日志按钮->另存为 + +![](./doc/log.png) + +## 联系作者 + +欢迎bug反馈,需求建议,技术交流等(请备注dev-sidecar,或简称DS) + +![](./doc/contact.png) + + ## 感谢 本项目使用lerna包管理工具 diff --git a/doc/contact.png b/doc/contact.png new file mode 100644 index 0000000000000000000000000000000000000000..45adec39d7358fda18ccf7731ce018756fd08cbe GIT binary patch literal 630004 zcmeFYbyr-?*Crf@;qDqFxVv-Xkf6a`8h3XI?u|>M!GgPcux^~7ja%dHF2ntsHP6gE zv)*s;{&m)=Q>Us{)m61?U)SD|%8D|mNJL2Q-n~PWla>7O?%fC2yLa$62%p|c-cSFS zc=zthJ2^=)HP5W0PVFS7AvdzSRv#vi_R>n*Br=gD7ZGt}?3X~yFR=-I8w7k3KwEhp zjs;~dX5XC83qt!cdr}UGqozDl(RB5JvR0CIg|gP~urT1Teg?jSgR}g_`>u1fsEmV? z=azrh(^ErjwW9J-W2M4p0!rG9{4U)JWrVp2kE~aPA4_D?QsA5 z{Xbs^`ryC9{*Oxk7DgclB|820dLPAx`2MS@|Jm?n&@a=h|K5q1GKb>--EUsY7dpb? z|7$3D%6b^dF{=OP=-&QeLHGuy|8HZ#|M340@BeG|J|R#npVH_tlysi3&b<8Z1#`ML z3aZ-qZxb1X9LVthF0{D&9JZFMMNF&B8b@lJw#ZG%1nw=mgPCm@AV3sy)!=g0aw9_L z;-W69Snn|F@mNxaeG*<7b}VxIB>3%J$1s^pipSJ)E3}F4M5n#%)S?xQ5eQas??lig z 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

    BC}p;#%?ntTDQdE$28lo^nPdU3?YBL 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%0AS}7!MWG$} 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%0DEkgTdGPWyay2{aX+QO-oOSP7~ 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�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℞eG%A2k03(-} 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%0A7t=t5>&7tR)jgv}7&C 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≥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

    mA9%ufQ5abk!gZ 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 DIIi%Z literal 0 HcmV?d00001 diff --git a/doc/log.png b/doc/log.png new file mode 100644 index 0000000000000000000000000000000000000000..33e71f9bbcda89f2d1741be14b797085be7059c8 GIT binary patch literal 15139 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