From 372cf22b0d2a18a92fb45b675946a7e584f5434a Mon Sep 17 00:00:00 2001 From: Cogons Date: Wed, 21 Feb 2018 21:48:56 +0800 Subject: [PATCH] jist 0.1.0 --- .babelrc | 39 + .electron-vue/build.js | 130 + .electron-vue/dev-client.js | 40 + .electron-vue/dev-runner.js | 178 + .electron-vue/webpack.main.config.js | 83 + .electron-vue/webpack.renderer.config.js | 178 + .electron-vue/webpack.web.config.js | 139 + .eslintignore | 5 + .eslintrc.js | 26 + .gitignore | 12 + .travis.yml | 43 + README.md | 21 + appveyor.yml | 33 + build/icons/256x256.png | Bin 0 -> 16464 bytes build/icons/icon.icns | Bin 0 -> 259896 bytes build/icons/icon.ico | Bin 0 -> 370070 bytes dist/electron/.gitkeep | 0 dist/web/.gitkeep | 0 package.json | 136 + src/index.ejs | 22 + src/main/config.template.js | 15 + src/main/index.dev.js | 27 + src/main/index.js | 101 + src/renderer/App.vue | 44 + src/renderer/assets/.gitkeep | 0 src/renderer/assets/github.png | Bin 0 -> 45295 bytes src/renderer/assets/logo.png | Bin 0 -> 61878 bytes src/renderer/auth.js | 10 + src/renderer/components/EditPanel.vue | 194 + src/renderer/components/LandingPage.vue | 267 + src/renderer/components/LoginPanel.vue | 112 + src/renderer/components/Menu.vue | 248 + src/renderer/components/PreviewPanel.vue | 169 + src/renderer/components/SettingPanel.vue | 78 + src/renderer/components/WelcomePanel.vue | 81 + src/renderer/datastore.js | 10 + src/renderer/main.js | 51 + src/renderer/router/index.js | 18 + src/renderer/store/actions.js | 412 + src/renderer/store/getters.js | 23 + src/renderer/store/index.js | 72 + src/renderer/store/mutation-types.js | 20 + src/renderer/store/mutations.js | 106 + src/renderer/store/plugins.js | 25 + static/.gitkeep | 0 test/.eslintrc | 11 + test/e2e/index.js | 18 + test/e2e/specs/Launch.spec.js | 13 + test/e2e/utils.js | 23 + test/unit/index.js | 13 + test/unit/karma.conf.js | 62 + test/unit/specs/LandingPage.spec.js | 13 + yarn.lock | 9004 ++++++++++++++++++++++ 53 files changed, 12325 insertions(+) create mode 100644 .babelrc create mode 100644 .electron-vue/build.js create mode 100644 .electron-vue/dev-client.js create mode 100644 .electron-vue/dev-runner.js create mode 100644 .electron-vue/webpack.main.config.js create mode 100644 .electron-vue/webpack.renderer.config.js create mode 100644 .electron-vue/webpack.web.config.js create mode 100644 .eslintignore create mode 100644 .eslintrc.js create mode 100644 .gitignore create mode 100644 .travis.yml create mode 100644 README.md create mode 100644 appveyor.yml create mode 100644 build/icons/256x256.png create mode 100644 build/icons/icon.icns create mode 100644 build/icons/icon.ico create mode 100644 dist/electron/.gitkeep create mode 100644 dist/web/.gitkeep create mode 100644 package.json create mode 100644 src/index.ejs create mode 100644 src/main/config.template.js create mode 100644 src/main/index.dev.js create mode 100644 src/main/index.js create mode 100644 src/renderer/App.vue create mode 100644 src/renderer/assets/.gitkeep create mode 100644 src/renderer/assets/github.png create mode 100644 src/renderer/assets/logo.png create mode 100644 src/renderer/auth.js create mode 100644 src/renderer/components/EditPanel.vue create mode 100644 src/renderer/components/LandingPage.vue create mode 100644 src/renderer/components/LoginPanel.vue create mode 100644 src/renderer/components/Menu.vue create mode 100644 src/renderer/components/PreviewPanel.vue create mode 100644 src/renderer/components/SettingPanel.vue create mode 100644 src/renderer/components/WelcomePanel.vue create mode 100644 src/renderer/datastore.js create mode 100644 src/renderer/main.js create mode 100644 src/renderer/router/index.js create mode 100644 src/renderer/store/actions.js create mode 100644 src/renderer/store/getters.js create mode 100644 src/renderer/store/index.js create mode 100644 src/renderer/store/mutation-types.js create mode 100644 src/renderer/store/mutations.js create mode 100644 src/renderer/store/plugins.js create mode 100644 static/.gitkeep create mode 100644 test/.eslintrc create mode 100644 test/e2e/index.js create mode 100644 test/e2e/specs/Launch.spec.js create mode 100644 test/e2e/utils.js create mode 100644 test/unit/index.js create mode 100644 test/unit/karma.conf.js create mode 100644 test/unit/specs/LandingPage.spec.js create mode 100644 yarn.lock diff --git a/.babelrc b/.babelrc new file mode 100644 index 0000000..386f322 --- /dev/null +++ b/.babelrc @@ -0,0 +1,39 @@ +{ + "comments": false, + "env": { + "test": { + "presets": [ + ["env", { + "targets": { "node": 7 } + }], + "stage-0" + ], + "plugins": ["istanbul"] + }, + "main": { + "presets": [ + ["env", { + "targets": { "node": 7 } + }], + "stage-0" + ] + }, + "renderer": { + "presets": [ + ["env", { + "modules": false + }], + "stage-0" + ] + }, + "web": { + "presets": [ + ["env", { + "modules": false + }], + "stage-0" + ] + } + }, + "plugins": ["transform-runtime"] +} diff --git a/.electron-vue/build.js b/.electron-vue/build.js new file mode 100644 index 0000000..2d96f17 --- /dev/null +++ b/.electron-vue/build.js @@ -0,0 +1,130 @@ +'use strict' + +process.env.NODE_ENV = 'production' + +const { say } = require('cfonts') +const chalk = require('chalk') +const del = require('del') +const { spawn } = require('child_process') +const webpack = require('webpack') +const Multispinner = require('multispinner') + + +const mainConfig = require('./webpack.main.config') +const rendererConfig = require('./webpack.renderer.config') +const webConfig = require('./webpack.web.config') + +const doneLog = chalk.bgGreen.white(' DONE ') + ' ' +const errorLog = chalk.bgRed.white(' ERROR ') + ' ' +const okayLog = chalk.bgBlue.white(' OKAY ') + ' ' +const isCI = process.env.CI || false + +if (process.env.BUILD_TARGET === 'clean') clean() +else if (process.env.BUILD_TARGET === 'web') web() +else build() + +function clean () { + del.sync(['build/*', '!build/icons', '!build/icons/icon.*']) + console.log(`\n${doneLog}\n`) + process.exit() +} + +function build () { + greeting() + + del.sync(['dist/electron/*', '!.gitkeep']) + + const tasks = ['main', 'renderer'] + const m = new Multispinner(tasks, { + preText: 'building', + postText: 'process' + }) + + let results = '' + + m.on('success', () => { + process.stdout.write('\x1B[2J\x1B[0f') + console.log(`\n\n${results}`) + console.log(`${okayLog}take it away ${chalk.yellow('`electron-builder`')}\n`) + process.exit() + }) + + pack(mainConfig).then(result => { + results += result + '\n\n' + m.success('main') + }).catch(err => { + m.error('main') + console.log(`\n ${errorLog}failed to build main process`) + console.error(`\n${err}\n`) + process.exit(1) + }) + + pack(rendererConfig).then(result => { + results += result + '\n\n' + m.success('renderer') + }).catch(err => { + m.error('renderer') + console.log(`\n ${errorLog}failed to build renderer process`) + console.error(`\n${err}\n`) + process.exit(1) + }) +} + +function pack (config) { + return new Promise((resolve, reject) => { + webpack(config, (err, stats) => { + if (err) reject(err.stack || err) + else if (stats.hasErrors()) { + let err = '' + + stats.toString({ + chunks: false, + colors: true + }) + .split(/\r?\n/) + .forEach(line => { + err += ` ${line}\n` + }) + + reject(err) + } else { + resolve(stats.toString({ + chunks: false, + colors: true + })) + } + }) + }) +} + +function web () { + del.sync(['dist/web/*', '!.gitkeep']) + webpack(webConfig, (err, stats) => { + if (err || stats.hasErrors()) console.log(err) + + console.log(stats.toString({ + chunks: false, + colors: true + })) + + process.exit() + }) +} + +function greeting () { + const cols = process.stdout.columns + let text = '' + + if (cols > 85) text = 'lets-build' + else if (cols > 60) text = 'lets-|build' + else text = false + + if (text && !isCI) { + say(text, { + colors: ['yellow'], + font: 'simple3d', + space: false + }) + } else console.log(chalk.yellow.bold('\n lets-build')) + console.log() +} diff --git a/.electron-vue/dev-client.js b/.electron-vue/dev-client.js new file mode 100644 index 0000000..2913ea4 --- /dev/null +++ b/.electron-vue/dev-client.js @@ -0,0 +1,40 @@ +const hotClient = require('webpack-hot-middleware/client?noInfo=true&reload=true') + +hotClient.subscribe(event => { + /** + * Reload browser when HTMLWebpackPlugin emits a new index.html + * + * Currently disabled until jantimon/html-webpack-plugin#680 is resolved. + * https://github.com/SimulatedGREG/electron-vue/issues/437 + * https://github.com/jantimon/html-webpack-plugin/issues/680 + */ + // if (event.action === 'reload') { + // window.location.reload() + // } + + /** + * Notify `mainWindow` when `main` process is compiling, + * giving notice for an expected reload of the `electron` process + */ + if (event.action === 'compiling') { + document.body.innerHTML += ` + + +
+ Compiling Main Process... +
+ ` + } +}) diff --git a/.electron-vue/dev-runner.js b/.electron-vue/dev-runner.js new file mode 100644 index 0000000..3903901 --- /dev/null +++ b/.electron-vue/dev-runner.js @@ -0,0 +1,178 @@ +'use strict' + +const chalk = require('chalk') +const electron = require('electron') +const path = require('path') +const { say } = require('cfonts') +const { spawn } = require('child_process') +const webpack = require('webpack') +const WebpackDevServer = require('webpack-dev-server') +const webpackHotMiddleware = require('webpack-hot-middleware') + +const mainConfig = require('./webpack.main.config') +const rendererConfig = require('./webpack.renderer.config') + +let electronProcess = null +let manualRestart = false +let hotMiddleware + +function logStats (proc, data) { + let log = '' + + log += chalk.yellow.bold(`┏ ${proc} Process ${new Array((19 - proc.length) + 1).join('-')}`) + log += '\n\n' + + if (typeof data === 'object') { + data.toString({ + colors: true, + chunks: false + }).split(/\r?\n/).forEach(line => { + log += ' ' + line + '\n' + }) + } else { + log += ` ${data}\n` + } + + log += '\n' + chalk.yellow.bold(`┗ ${new Array(28 + 1).join('-')}`) + '\n' + + console.log(log) +} + +function startRenderer () { + return new Promise((resolve, reject) => { + rendererConfig.entry.renderer = [path.join(__dirname, 'dev-client')].concat(rendererConfig.entry.renderer) + + const compiler = webpack(rendererConfig) + hotMiddleware = webpackHotMiddleware(compiler, { + log: false, + heartbeat: 2500 + }) + + compiler.plugin('compilation', compilation => { + compilation.plugin('html-webpack-plugin-after-emit', (data, cb) => { + hotMiddleware.publish({ action: 'reload' }) + cb() + }) + }) + + compiler.plugin('done', stats => { + logStats('Renderer', stats) + }) + + const server = new WebpackDevServer( + compiler, + { + contentBase: path.join(__dirname, '../'), + quiet: true, + before (app, ctx) { + app.use(hotMiddleware) + ctx.middleware.waitUntilValid(() => { + resolve() + }) + } + } + ) + + server.listen(9080) + }) +} + +function startMain () { + return new Promise((resolve, reject) => { + mainConfig.entry.main = [path.join(__dirname, '../src/main/index.dev.js')].concat(mainConfig.entry.main) + + const compiler = webpack(mainConfig) + + compiler.plugin('watch-run', (compilation, done) => { + logStats('Main', chalk.white.bold('compiling...')) + hotMiddleware.publish({ action: 'compiling' }) + done() + }) + + compiler.watch({}, (err, stats) => { + if (err) { + console.log(err) + return + } + + logStats('Main', stats) + + if (electronProcess && electronProcess.kill) { + manualRestart = true + process.kill(electronProcess.pid) + electronProcess = null + startElectron() + + setTimeout(() => { + manualRestart = false + }, 5000) + } + + resolve() + }) + }) +} + +function startElectron () { + electronProcess = spawn(electron, ['--inspect=5858', path.join(__dirname, '../dist/electron/main.js')]) + + electronProcess.stdout.on('data', data => { + electronLog(data, 'blue') + }) + electronProcess.stderr.on('data', data => { + electronLog(data, 'red') + }) + + electronProcess.on('close', () => { + if (!manualRestart) process.exit() + }) +} + +function electronLog (data, color) { + let log = '' + data = data.toString().split(/\r?\n/) + data.forEach(line => { + log += ` ${line}\n` + }) + if (/[0-9A-z]+/.test(log)) { + console.log( + chalk[color].bold('┏ Electron -------------------') + + '\n\n' + + log + + chalk[color].bold('┗ ----------------------------') + + '\n' + ) + } +} + +function greeting () { + const cols = process.stdout.columns + let text = '' + + if (cols > 104) text = 'electron-vue' + else if (cols > 76) text = 'electron-|vue' + else text = false + + if (text) { + say(text, { + colors: ['yellow'], + font: 'simple3d', + space: false + }) + } else console.log(chalk.yellow.bold('\n electron-vue')) + console.log(chalk.blue(' getting ready...') + '\n') +} + +function init () { + greeting() + + Promise.all([startRenderer(), startMain()]) + .then(() => { + startElectron() + }) + .catch(err => { + console.error(err) + }) +} + +init() diff --git a/.electron-vue/webpack.main.config.js b/.electron-vue/webpack.main.config.js new file mode 100644 index 0000000..ad541e4 --- /dev/null +++ b/.electron-vue/webpack.main.config.js @@ -0,0 +1,83 @@ +'use strict' + +process.env.BABEL_ENV = 'main' + +const path = require('path') +const { dependencies } = require('../package.json') +const webpack = require('webpack') + +const BabiliWebpackPlugin = require('babili-webpack-plugin') + +let mainConfig = { + entry: { + main: path.join(__dirname, '../src/main/index.js') + }, + externals: [ + ...Object.keys(dependencies || {}) + ], + module: { + rules: [ + { + test: /\.(js)$/, + enforce: 'pre', + exclude: /node_modules/, + use: { + loader: 'eslint-loader', + options: { + formatter: require('eslint-friendly-formatter') + } + } + }, + { + test: /\.js$/, + use: 'babel-loader', + exclude: /node_modules/ + }, + { + test: /\.node$/, + use: 'node-loader' + } + ] + }, + node: { + __dirname: process.env.NODE_ENV !== 'production', + __filename: process.env.NODE_ENV !== 'production' + }, + output: { + filename: '[name].js', + libraryTarget: 'commonjs2', + path: path.join(__dirname, '../dist/electron') + }, + plugins: [ + new webpack.NoEmitOnErrorsPlugin() + ], + resolve: { + extensions: ['.js', '.json', '.node'] + }, + target: 'electron-main' +} + +/** + * Adjust mainConfig for development settings + */ +if (process.env.NODE_ENV !== 'production') { + mainConfig.plugins.push( + new webpack.DefinePlugin({ + '__static': `"${path.join(__dirname, '../static').replace(/\\/g, '\\\\')}"` + }) + ) +} + +/** + * Adjust mainConfig for production settings + */ +if (process.env.NODE_ENV === 'production') { + mainConfig.plugins.push( + new BabiliWebpackPlugin(), + new webpack.DefinePlugin({ + 'process.env.NODE_ENV': '"production"' + }) + ) +} + +module.exports = mainConfig diff --git a/.electron-vue/webpack.renderer.config.js b/.electron-vue/webpack.renderer.config.js new file mode 100644 index 0000000..1f412fa --- /dev/null +++ b/.electron-vue/webpack.renderer.config.js @@ -0,0 +1,178 @@ +'use strict' + +process.env.BABEL_ENV = 'renderer' + +const path = require('path') +const { dependencies } = require('../package.json') +const webpack = require('webpack') + +const BabiliWebpackPlugin = require('babili-webpack-plugin') +const CopyWebpackPlugin = require('copy-webpack-plugin') +const ExtractTextPlugin = require('extract-text-webpack-plugin') +const HtmlWebpackPlugin = require('html-webpack-plugin') + +/** + * List of node_modules to include in webpack bundle + * + * Required for specific packages like Vue UI libraries + * that provide pure *.vue files that need compiling + * https://simulatedgreg.gitbooks.io/electron-vue/content/en/webpack-configurations.html#white-listing-externals + */ +let whiteListedModules = ['vue','element-ui','axios'] + +let rendererConfig = { + devtool: '#cheap-module-eval-source-map', + entry: { + renderer: path.join(__dirname, '../src/renderer/main.js') + }, + externals: [ + ...Object.keys(dependencies || {}).filter(d => !whiteListedModules.includes(d)) + ], + module: { + rules: [ + { + test: /\.(js|vue)$/, + enforce: 'pre', + exclude: /node_modules/, + use: { + loader: 'eslint-loader', + options: { + formatter: require('eslint-friendly-formatter') + } + } + }, + { + test: /\.css$/, + use: ExtractTextPlugin.extract({ + fallback: 'style-loader', + use: 'css-loader' + }) + }, + { + test: /\.html$/, + use: 'vue-html-loader' + }, + { + test: /\.js$/, + use: 'babel-loader', + exclude: /node_modules/ + }, + { + test: /\.node$/, + use: 'node-loader' + }, + { + test: /\.vue$/, + use: { + loader: 'vue-loader', + options: { + extractCSS: process.env.NODE_ENV === 'production', + loaders: { + sass: 'vue-style-loader!css-loader!sass-loader?indentedSyntax=1', + scss: 'vue-style-loader!css-loader!sass-loader' + } + } + } + }, + { + test: /\.(png|jpe?g|gif|svg)(\?.*)?$/, + use: { + loader: 'url-loader', + query: { + limit: 10000, + name: 'imgs/[name]--[folder].[ext]' + } + } + }, + { + test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/, + loader: 'url-loader', + options: { + limit: 10000, + name: 'media/[name]--[folder].[ext]' + } + }, + { + test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/, + use: { + loader: 'url-loader', + query: { + limit: 10000, + name: 'fonts/[name]--[folder].[ext]' + } + } + } + ] + }, + node: { + __dirname: process.env.NODE_ENV !== 'production', + __filename: process.env.NODE_ENV !== 'production' + }, + plugins: [ + new ExtractTextPlugin('styles.css'), + new HtmlWebpackPlugin({ + filename: 'index.html', + template: path.resolve(__dirname, '../src/index.ejs'), + minify: { + collapseWhitespace: true, + removeAttributeQuotes: true, + removeComments: true + }, + nodeModules: process.env.NODE_ENV !== 'production' + ? path.resolve(__dirname, '../node_modules') + : false + }), + new webpack.HotModuleReplacementPlugin(), + new webpack.NoEmitOnErrorsPlugin() + ], + output: { + filename: '[name].js', + libraryTarget: 'commonjs2', + path: path.join(__dirname, '../dist/electron') + }, + resolve: { + alias: { + '@': path.join(__dirname, '../src/renderer'), + 'vue$': 'vue/dist/vue.esm.js' + }, + extensions: ['.js', '.vue', '.json', '.css', '.node'] + }, + target: 'electron-renderer' +} + +/** + * Adjust rendererConfig for development settings + */ +if (process.env.NODE_ENV !== 'production') { + rendererConfig.plugins.push( + new webpack.DefinePlugin({ + '__static': `"${path.join(__dirname, '../static').replace(/\\/g, '\\\\')}"` + }) + ) +} + +/** + * Adjust rendererConfig for production settings + */ +if (process.env.NODE_ENV === 'production') { + rendererConfig.devtool = '' + + rendererConfig.plugins.push( + new BabiliWebpackPlugin(), + new CopyWebpackPlugin([ + { + from: path.join(__dirname, '../static'), + to: path.join(__dirname, '../dist/electron/static'), + ignore: ['.*'] + } + ]), + new webpack.DefinePlugin({ + 'process.env.NODE_ENV': '"production"' + }), + new webpack.LoaderOptionsPlugin({ + minimize: true + }) + ) +} + +module.exports = rendererConfig diff --git a/.electron-vue/webpack.web.config.js b/.electron-vue/webpack.web.config.js new file mode 100644 index 0000000..010883a --- /dev/null +++ b/.electron-vue/webpack.web.config.js @@ -0,0 +1,139 @@ +'use strict' + +process.env.BABEL_ENV = 'web' + +const path = require('path') +const webpack = require('webpack') + +const BabiliWebpackPlugin = require('babili-webpack-plugin') +const CopyWebpackPlugin = require('copy-webpack-plugin') +const ExtractTextPlugin = require('extract-text-webpack-plugin') +const HtmlWebpackPlugin = require('html-webpack-plugin') + +let webConfig = { + devtool: '#cheap-module-eval-source-map', + entry: { + web: path.join(__dirname, '../src/renderer/main.js') + }, + module: { + rules: [ + { + test: /\.(js|vue)$/, + enforce: 'pre', + exclude: /node_modules/, + use: { + loader: 'eslint-loader', + options: { + formatter: require('eslint-friendly-formatter') + } + } + }, + { + test: /\.css$/, + use: ExtractTextPlugin.extract({ + fallback: 'style-loader', + use: 'css-loader' + }) + }, + { + test: /\.html$/, + use: 'vue-html-loader' + }, + { + test: /\.js$/, + use: 'babel-loader', + include: [ path.resolve(__dirname, '../src/renderer') ], + exclude: /node_modules/ + }, + { + test: /\.vue$/, + use: { + loader: 'vue-loader', + options: { + extractCSS: true, + loaders: { + sass: 'vue-style-loader!css-loader!sass-loader?indentedSyntax=1', + scss: 'vue-style-loader!css-loader!sass-loader' + } + } + } + }, + { + test: /\.(png|jpe?g|gif|svg)(\?.*)?$/, + use: { + loader: 'url-loader', + query: { + limit: 10000, + name: 'imgs/[name].[ext]' + } + } + }, + { + test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/, + use: { + loader: 'url-loader', + query: { + limit: 10000, + name: 'fonts/[name].[ext]' + } + } + } + ] + }, + plugins: [ + new ExtractTextPlugin('styles.css'), + new HtmlWebpackPlugin({ + filename: 'index.html', + template: path.resolve(__dirname, '../src/index.ejs'), + minify: { + collapseWhitespace: true, + removeAttributeQuotes: true, + removeComments: true + }, + nodeModules: false + }), + new webpack.DefinePlugin({ + 'process.env.IS_WEB': 'true' + }), + new webpack.HotModuleReplacementPlugin(), + new webpack.NoEmitOnErrorsPlugin() + ], + output: { + filename: '[name].js', + path: path.join(__dirname, '../dist/web') + }, + resolve: { + alias: { + '@': path.join(__dirname, '../src/renderer'), + 'vue$': 'vue/dist/vue.esm.js' + }, + extensions: ['.js', '.vue', '.json', '.css'] + }, + target: 'web' +} + +/** + * Adjust webConfig for production settings + */ +if (process.env.NODE_ENV === 'production') { + webConfig.devtool = '' + + webConfig.plugins.push( + new BabiliWebpackPlugin(), + new CopyWebpackPlugin([ + { + from: path.join(__dirname, '../static'), + to: path.join(__dirname, '../dist/web/static'), + ignore: ['.*'] + } + ]), + new webpack.DefinePlugin({ + 'process.env.NODE_ENV': '"production"' + }), + new webpack.LoaderOptionsPlugin({ + minimize: true + }) + ) +} + +module.exports = webConfig diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..e0d91bd --- /dev/null +++ b/.eslintignore @@ -0,0 +1,5 @@ +test/unit/coverage/** +test/unit/*.js +test/e2e/*.js +*.js +*.vue \ No newline at end of file diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..90cf05b --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,26 @@ +module.exports = { + root: true, + parser: 'babel-eslint', + parserOptions: { + sourceType: 'module' + }, + env: { + browser: true, + node: true + }, + extends: 'standard', + globals: { + __static: true + }, + plugins: [ + 'html' + ], + 'rules': { + // allow paren-less arrow functions + 'arrow-parens': 0, + // allow async-await + 'generator-star-spacing': 0, + // allow debugger during development + 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0 + } +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d333e4b --- /dev/null +++ b/.gitignore @@ -0,0 +1,12 @@ +.DS_Store +dist/electron/* +dist/web/* +build/* +!build/icons +coverage +node_modules/ +npm-debug.log +npm-debug.log.* +thumbs.db +!.gitkeep +config.js \ No newline at end of file diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..1108550 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,43 @@ +# Commented sections below can be used to run tests on the CI server +# https://simulatedgreg.gitbooks.io/electron-vue/content/en/testing.html#on-the-subject-of-ci-testing +osx_image: xcode8.3 +sudo: required +dist: trusty +language: c +matrix: + include: + - os: osx + - os: linux + env: CC=clang CXX=clang++ npm_config_clang=1 + compiler: clang +cache: + directories: + - node_modules + - "$HOME/.electron" + - "$HOME/.cache" +addons: + apt: + packages: + - libgnome-keyring-dev + - icnsutils + #- xvfb +before_install: +- mkdir -p /tmp/git-lfs && curl -L https://github.com/github/git-lfs/releases/download/v1.2.1/git-lfs-$([ + "$TRAVIS_OS_NAME" == "linux" ] && echo "linux" || echo "darwin")-amd64-1.2.1.tar.gz + | tar -xz -C /tmp/git-lfs --strip-components 1 && /tmp/git-lfs/git-lfs pull +- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get install --no-install-recommends -y icnsutils graphicsmagick xz-utils; fi +install: +#- export DISPLAY=':99.0' +#- Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 & +- nvm install 7 +- curl -o- -L https://yarnpkg.com/install.sh | bash +- source ~/.bashrc +- npm install -g xvfb-maybe +- yarn +script: +#- xvfb-maybe node_modules/.bin/karma start test/unit/karma.conf.js +#- yarn run pack && xvfb-maybe node_modules/.bin/mocha test/e2e +- yarn run build +branches: + only: + - master diff --git a/README.md b/README.md new file mode 100644 index 0000000..4aa32ad --- /dev/null +++ b/README.md @@ -0,0 +1,21 @@ +# Jist + +> A Code Snippets Manager for Github Gist. + +#### Build Setup + +``` bash +# install dependencies +yarn install + +# run development +yarn dev + +# build electron application for production +yarn build + +``` + +--- + +This project was generated with [electron-vue](https://github.com/SimulatedGREG/electron-vue) using [vue-cli](https://github.com/vuejs/vue-cli). Documentation about the original structure can be found [here](https://simulatedgreg.gitbooks.io/electron-vue/content/index.html). diff --git a/appveyor.yml b/appveyor.yml new file mode 100644 index 0000000..0bff3e0 --- /dev/null +++ b/appveyor.yml @@ -0,0 +1,33 @@ +# Commented sections below can be used to run tests on the CI server +# https://simulatedgreg.gitbooks.io/electron-vue/content/en/testing.html#on-the-subject-of-ci-testing +version: 0.1.{build} + +branches: + only: + - master + +image: Visual Studio 2017 +platform: + - x64 + +cache: + - node_modules + - '%APPDATA%\npm-cache' + - '%USERPROFILE%\.electron' + - '%USERPROFILE%\AppData\Local\Yarn\cache' + +init: + - git config --global core.autocrlf input + +install: + - ps: Install-Product node 8 x64 + - choco install yarn --ignore-dependencies + - git reset --hard HEAD + - yarn + - node --version + +build_script: + #- yarn test + - yarn build + +test: off diff --git a/build/icons/256x256.png b/build/icons/256x256.png new file mode 100644 index 0000000000000000000000000000000000000000..a18c6c1e0fd74a33488431a620215d4a0ce27caf GIT binary patch literal 16464 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%0AT#C*qi`_PUpux?PV(*wOea5XH(KBEosru5n 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≪h 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 V_mW>W@C@8C!X%f?6G3lF{{!Z4)CvFq literal 0 HcmV?d00001 diff --git a/build/icons/icon.ico b/build/icons/icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..209bde7593965c055066ae36bfa70d5eaf56c92a GIT binary patch literal 370070 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

}uK?SEyG0Sc|J$ ze3M0Fvt0%|JN;7;RJbsreY6k&CJq^mOtwx`wV7^PJINZxLJnZ;QKH z+`!^8>Ys;Jj=fK8-V0@tUZNym`p>+V`~m4)=dJu-Ek51irWSX$c!)*rH!ik_Z(#q7 z-O4Tnt*GZfTZ;Gr&N8pFc#*}gSv=Ar&q(u~#phXkY_1QKS>43mtAsNtpGcsTfZ2)G z!Y$`U!^Jl&Yw-mZ7g*fJ;#(}f+v0&1*<&AT@f3?+wusH1Y4KZS{6<;!6@#Z*JkBED zO+MJ-J{Gy(zMaL5Ev{y91&ciMko8p>M5~vrPY2oKJiH@^nms^`sHsuJP<8VoJ0LRj3WM~8BuB%e2L zL9W*JoDK4M^B$G2S9My1&O}MfH*n_9thHtK6n&P%sp{+n{^9F07r5TnXL_*6*W(7J zho*2EXbY#;7KQ5_81rNO^$j}x&R}4%Y8r3`1JkQ#NMKs;!Cf$&fxzAjExJCo9~fK| z>jQ(aIxrZd2lg}uXRsF}c-PGKrgG-dRhlE?9ZFGa7w~6q)&VE zr|L7^n>GU1=dSNYU~#VAb#PIx-gPin?K+t4p6g(?du{}?-E#uSj2;{{NAUVQe@y`_ z&et~uuqa>O6hK8id*u}Jm5N0an(R0<0o0HLOy6r2uQ{7ce}P;w=SSDc(}RHT6jYE5%z5!1dMrO9F0Hzqpz{ z4M0tO8h}OB^sVaC09BKx0jd#y8lYD7HN%qzs8xN<@T39kson;-W_Z&8*VfwrUtcG` zHtHAG(VGJFRBsBfsIL89>rH{`nn!_J)YqzyDcFGP7u2esDQJ)N^J~@96nMb(OVz5c zDfo!%A9a1bevG>Q;Vt-k_~Ls0=X(9aTJ*nV{i1sLJ#126E1+2~pT)J^o7Yl*dZeHA z_IZ81{95_1N420Iczuic=TR-{2R?tbn4gzwQQ!0Y-sAeC<@%+?`f5Ro`j+dn7VE!- zE$UmYAM4k*w*Fi+uO_sy{#{%{KF{cD>uvpheI0$P`Zo3twFc70{-#!ejlQ;ie(m-< z?ayiz*f#LB3f8KAVNtIjt?G@uRzX_S+wj*aK&$mj~DZWYpmg1`vU@4wT0nQiy6#`nI`U(LpRDFejn$>v$ zHM?KY!Dja>I@s)fMF;0kT|e8w1yl9e4lbOk&vwvN=O!uFy=(^^``HdQM~~}dIxyc~ zKhuGQzCP1|Y1K13;G_@c3>BTmer5#bPj7z)gA1nD&tNcAM+O6XGbA`odbAZJI6t-@ z7+5%?e(^jPrVVZbb=ovCe z>BV7|yF}8EU6b?xb_hs|4wl!dwTsFrmZWyBt`&)U;l zt7A-7wD=N>TUgx5;+_`&pTz?$9#Y1G41U1kUKZbC@s$?Ww78PRN7Gg=SY5il!MP*Y zTt~;G3^|uFpCNB6U(Vu27WcMzjK%L+yxQWO7J1)+z_ZS+f^c{q`fiJVu=qoZCt7^J z#mz0EQ`4T&vb=bkRz4=8o3(5>xlS8%E9c$1Z7qJ<;?FJe>^gz*(-FX@%0v0^a8fLbYU9L9%quSmw?GIJrC)ztPFp=hsAR&-er;C$Axjz zJ5G!-dDV9dX@jgTU=JXwe$>qR^0@qwOSna=bFrpw0N^cg2q60 zsJvhUYk0r9uAuZmc{pM1alFMfG{%-rbA$3rIy8C2abL&E&an89MFR4Svh^}fNF)9c zKZ2fLSYr-3-{PhkZ%a?>x5}3kX#JmN2bN#U;&&_}D*_N(2THEMuEG%i7uE9``vC9E z4V!43EzSC1iCQOGf1A2*>1SE|qQyAw8f!sAX&rLo{Lg>>GyU)VKmPHLg8#j*i{KEU z$+gv*gJ~Gz9f&UD7gWX?b~W_C;51v1Zp=04`)TRNSUk`oYiC0AnUYhZw&K^1k;a+v zWelk!2v#(aEfx(>dXv+OEb+`j^#w>ji3HY)pS762ph7UtFAh_Swa0r=32YRr8ZM7Q65d-1~`{;)Xu=%b6h_S&m>)vI1r ztiJl{#WSDz%;G6ec}nrbCqA)w{No>AEWPy7DK53tQiURA)Gf2jGR1PsEmu7K=}#|K zTWz&si!HV&cHe#X;?tl0baCN@7Zx|&bW>BuxW4#-r^rvXBaOnS2b%kMhx>`89#o!d z&z5wz^D;OOJ@im<$t9O08-CsEURS*Eg)dBF z$5=k$2~Q}V{NyJWPkriBi}~~Cr}2EoGoF!j;aSgmR*{S72@yPKR#;($)CO(Q=CaE! zTRiu<&n>puW}D*BLk}%3y6B?f{`(t864C|n2!ARgT@lo8trJ1J(c9f$^bd#*pqI=;ixw>^uDkBK)H(IZ_ijavh;IigAN#<8vEy4`u7$I z^uzZn73v3>NG|wHB7wEs;fEhyyx;{dNHS$EX3SgJxz~eXr{x!zhtLD~-GBf6iyLob zO1A@!@*G0_6-<>=KVDYM2Lv3-%S#=2#5no^<4|th(x|NrtS$p8f1+kM+1mJ;N8kGjj@S$5mEYC9P5Kz4u!vd)gFJ($b9}$n zv*M|s{%CFg;Di6ay)%K9tSayQ?dTJe=)-wHeT~tq7@YDPP$SSFDhffCib`Y@6pRy! zsEA@WD56V5e4-HrG>9Sr;}jJPLnElDfD9@q*xeGrDTwmSvc>MI_y2uo|IhvE^r=%- z_f~bI&%M^Jz0aP$aesR_`|MiVf9-2u8+)zr$KyQxA5WU&ZQ&n7J~Z1F?7Q#2{abF~ zs7PfC2+cF%$yo>7&**n?-b`Wi$BktN1n*Ar7s%trmi^5)-`wAQ_ua$Z(+{$|n|;N3 z&2&GHn{OS0-?>hXyUiTVD&OrAV)uA2!5FxD_3Db5WnMI<4qT&3erGWAy<)-gnE%g# z?EF53b+aVT>#+O%nl)?s%a$#Ry;|rtui=9|X*r&sNzc#Y)JNv%8RIWw4Rv@XJ-3x% z=6JJAekPuu7lI%4;RSn{ta;hn#(91;LI>RMK3B$pnaW>iS@s77l2yM)?jvP?-F4UX zx88c|*dt>-+~k{iKCO`Uv9ZXUcLTs=&V}shZ+Tx~S}+&W4m!Xd7kFNB$tA(wF?GQE zgm0bYTtEnUzQ;Y$&2zW|^0&^q-y{3SJmxX6{(;UmKG`-qY?g7l!%_LjnR(?CpZLW7 z>8GFGzu|@(;(b0g_LNgjiN40WLF40g9gb>$n)!waF5dT;KnLKx=L5UUSO<8Y^DTLt zVRp*?M?d;e{|Qfc!hr0d*B(Baey8Pd(tOGzdt}RAlHbKJzeX^iU zHBBDFOZ&`k^VoTQb{Rj9lMf%i``zle0ei|>{ zzyl8ysvFLutfS`VFddi{J_~8bI>7j~i#bpKIG+LDaADFdwhJ`s#W<#~5thIW!*}I^Chu9Xj2i(;Yh9A@-kl zNH2czivvgNr17i~Z^7Mmps54Ea{Gqs(CH4H?$GHDo$k=-4xR3hbkAqcJ@?!|-@I<2 z2_3L!lJoe5&IMH0p( zoo2s+wd~J-{_~*8V?mKkGw>Mwg@ud(YRs~KwBo#Hz*(=VClWN?^XI2O{pt1k&o~?DESmulH85SJ`KpJSLFlGPB5sU&s%8#91<&ac$vQ z%}1B94zQ1q^?76A-^L$oDm3vO%Lsaqm2JTJlh^>&v+U{n-dnUz0XCd<&mr%0;Faxu z8=snKmb>*}TKR5gtF5+*wf!`7fVM1?96D|qGEF%?jeL&->|60&6VCjPhxs4N%QoN{ zoo>&-s0h&$<-w_{loQx%_Rn-8RlTqMuFLr}a$R&~6ym z8J@>!A03$1SU_9jz?@YX=x2V*8FTj5aYN>UmK!1NiKA?Q%6PqhMAWF}{H|Y;D*0RQ z_|}g7HuJ^uX``RKN%CD5IkP7Q9Ny#7Ht)*VSEdZQKw4M(4}bW>7p(*AWdql=HfijF zKMKEb^C<^>*0@I;QHg29T+sUgA1?9_853`F5;E_2t}Vi5{1}jb?)&UZKIutMig_P0 zu)NHNW@vsj)BW7c=NZ|v7tZ$|ANarr;+@E~*IwJd@WKoGha7T9*d6*qQwQ9pL)w~! z4!C{7CjL2ZTKR61u?9Wh+h$yc4M2uCCc*bd<_b4BC!jR<{eMs#$NbSYBog>R{_gvH zGmRd)KNz=W2w$3M`ME8hG-S`aFuvpc+0UvYhNhDcclOz5*L!mw4|3bY-9DjpV3%EX zS@61`X$P9{n$L#cO!xDo`ILv}*u$faIx6^pOpr~BBhfbCWkvoQ*Z`IByzk?sjSc2~ zx$m>r^R%ZuE&8APzUi4pNSo;RqaXd~TE}^(gsnsNgnp05ciG-A8>Rypr)lZ{ZH`ReA7zt_iK_`(-ry@wt`(ws~}yl%qhyE4|Ri?sucP2iegwZ)t8n`IV~4_xdo-<;xx z*nn)q>C;;k8xZ|H+XLn8K|6A`{nb z58I6WF&)zmZU6c98)w+aJiAGCpou3knWhfVmgU`qHH&BSsks)+JW@Q50epnIrFB4Y z&-=D1b#mE~G}zak_q^wY-Jy@pf+pIeZO-uW9_H3tZw)+be-@$xqwqv-tnFEAEcAVW z#{$|K1#epUnNQ8TXlmhA5#;K1Kz%+)Y5sQijir32?Z5u|>q9o+kL_vm&U4r-<8+5@ z`Q)M7$mGyN4-M3^Z5vkyn49BmtAJ&=4xPrH+B9^4HLG=?NtL|wV6C*?1%3--apev z;AK-UEwi?Crx|ZQH^a7k=wqETZ5?RB<{9|2(gC;M2G?nA^gC}@ePqEpfIHA|c}^4w z^FQbSj_)^?Ciy>7&(3p5xp3Ac_Iw!Q*o(*JWV~h_M<#hcV6k>!6u!V?UALI|fb9Tn zje@tBd}P6#lW%OepAg4f$#RQ?>L=TPcqfbwDC-5K44r&H{MInTJ{ zu$d2E;3aEwT*n;1@;@cX{}WyEH}Bs0&Uc3FtjpkPpK)_q4v{Z&RQ9WnKKkf*Z-XpO zKKbO>zrxmL9msWw=k_;-4rG|K(t%84rZ1;E-jz=tyklN=@WBU%C_DPU=YSU_`B$4q z)%n;1;cH6Cg44jJXdJ8q&wAFg7Q8O-*$LYLx1DJ-+#Gi0o7eo;0j|mGNUUUxoyYAWzg@(t z^bO>1nOu40m0@3i0j`sHYzFmlZ8~Xv=+c2v@Zclsip7ovlh^^q@@eP*`eYf8qO&WX zF$|nI6NMW?{`;xeZc%v1*l+n?eDTGxP6NgyI)GfjiT~BW+0I+$1$J!{nmWMPK^x=1 zgpbqE0nhh_@!Gfm584)^1AL>zx`?)h!5cRnKCzBEww`oi}(M z-^E|!K^bUA{vZA5M>pWLd8{zY|1dr8U-DY#{+7dMKJ%HNv#l=31@D0y8@Rql{CE#T{*rsz%vu$Eu!s~A6b-Nj+(+Fp!1GH^8nMS8ObRKlmS57?f z#0~fy3Dr-QKZi#TEP2=j@@fZP%#*XuIxE&bz%aZ?LU850B6@_IR0sIprD+Gc;F}k- z(19jgXq%M|G+}i;o96ew|NR^AI1;L#EdRGFX>9pp=N2k|Yyf;>E%4dTes%-=+y{-P zp9yV)&;jflICvh?#SdhH&P+=Ox?qt9JjOcqxfc4qfcXIZ#CCQR%$yHj;1AzP;Bp@` zUllgxKbHMRX3#c@_g!)^P0%+h9mw#BFIES*quFaN>wbn|{yU93n--%3t5>g%`_dSH z+@@g=wxu~AT9N-4=Yc){sZqyN7_vfp(a`E$0&b_rP78=uVk zwtUhkGfN#XE{5-C_l@Ptmj}6%&IyOv0n=o7eqM+Uc(09n>##X)(=-q|?mWXIghuq{ z%rnmn8pn|TD^zfsC|vz)F#q$|%e_8c7iZWDjoX$kb}T^OJtmF9W!gG03LZMZ+J2n* z0P`HnpZ6r(Rm*&76pWk?A6RGo$AA1sNHgnrL&o0!+gs_J{rPRl-$4GxiEoXe2mPb} zX1K)L(sG%$e9MjRH5M};KnIX*8;m9n(7+hESUcc3zuO-Mn=?7+0Pp3x=7d@P-}%mW zqW{yT+jVGo&5(Tf$zCgWvEVx7Z#h3h#kP>YneuW@ubxPdUg9`|&Ak)Y0N@xmhv3r| zZ%cDo!ddBn;W{+Gc%Ft1ApfibhC^uj9BwFvzaq zEPvklK8Q0Q3NI>UTK9mA8)tv9Wwy1(Yq23T%t8l7;Wcd?=z<50=m7g4d~=G8$GPtl z=RahTA2xha9#fui^aU@dj&kO9X}dUN@3Eggf9E3qYQdl_1EpC%q6+PxpE%y(v$lnf zE?O6wXPP<3;P3uyCxH(x+4-5!I?5iAZ6`W43KwXZmL16UdKg^FAYb}7-_UZeC;uhA z_uhNg-=&xj!`f&|r(OEy>tFx+U{S}|@3sF0>HOE53twC1Z{B|Ki(d@=1s1#==D}}R zo@LUOPd(ER z^f{!AkmD|w({j9-@8@ah0R5y3Z^I*8h#i1Wo)ff5?7*Fr-?5K29s&eF@vTm^mSK0N#zlo%~64!1Cuk40aiu zN5NSLe`piW+`sF5y=0pE{ufK%ukU|SzUA+;;Mj@QF~GF(|IOBI;{gqhw}sQlr;Tao zzdFz4nT33vByH znEyeR-uHQVi|w}^*j(lQvsCL`2lAbHrVTv7uj!rcaIyJrXIeUd?QF^?<7jw?Z-lvr`3DUf%fqKx=)fran>qkLm=|Rae>lTK**r#$YI~A=XvgkzA4~q;)A9j_ z;t-hUeP3#meM$2^z*9;+_kZh7B-6g_8)w291FYYZ;6JUh);;uaq4NR80_*^Ez}Hc@ zvHqpsu^0B6-~6WLi){g8G53D(j>q_oYID+jyszTbh5MEM47CBAS$g)fpB?KQXf_=iJA{Yk z`C{!r)`2cM3=?_SdkpESx0pO=Wbc)8B7WCHe;m^HEw|ew&qo&d$2f19H$#=P4X7^O z9m582-juZfJXj2E)2M5kI}IIxo=vIKZT#4J>#f7qFxKEa7aJmfkNaniBl}XuHsG(- zeDx<|)f~dQ6mYF`p7Xr?TeE##F4}6)Qn@0{KLqC2d zG(WMe*ny@F7>4O-hO@|bo8SUX+`sHKCO8{^(*sGxd+gtCT=|!BwgJ_Lg!49F10AsZ zxf34Q+a`i@n>WAO@=PaX7MkxirlkYCSG5kf?Zx1?82X`!dF401`OOfubv4P|QRL(` z-@oU6O?;G7UE6?%D*o%zsCBA5&i5O?7x>6WJ`#P#Ho!8>{L1lJ<^yLjI$)YOo5!3E z9T+CNOjC|elRoy_nPYNK8qRaRj=t}{x()JHmCkX$sS_%18&Cn9UqiZG&2L_N9((z`fM`4F!bvgldS^KlAH`8*YeoDf@HTZf**`8K&`=R0nJWPB`I&c;8JQ zbekJ1w9diLE3UXA_-?yz-q*sIANNUO?)JA?md!ps>RI(|171vna^4THo<*YZFkY+& zn5V#Z@ZZ!PSuI2dOb_3tvA)5kZERZ5ImVyUPCG4lZJf;WNUVM=6Zie2itIy%qhviS zUrpN%oL69ZUSW8VYEOOlaD5vH4wDKp_0q8L;yk9{E9@A!lUvATJ z?#zUT%{$G^>mm;V%fhnZBU%c%}BN zblrS&^=YpAlzCi&S2G5M}*nKD;>=}TYQ=WIKB zE9ahjZvSm>ds~e6yl1oBcRlOuFx)21ce|E7|1a$Sbsj_Z@E*^{<0Jp$y(!m8p4Gm` zfoCg@L+=c~RR@eeI>5K7jA_;Z^9lMlg*SZUiw-bO(f80(;^bRLW{Dqg;0ZP#d$VfQ zs*1T9hj1E)Bi# zc9wjdq-}J7{^yYR#=;L?pmXf+_>O$@tV8y&*t|cv$bKsGy{62Y&w}f@z*!(6XFP`L zfX7t+LyB`VtP9{Z9y!5l`%V39JRHsfAKHX=WKVxM@W2D>b6jJ}-u?a}@qe?XjAr>P zc$WX4EB;k^obl<@0qX&GoMG?SFNX)_F=6&i8RR_Ip^W3V_k81ueZlTC9x~VP8qfS0 z(eFLqyH0!`ILkjvx#zY8*ZTqwP#ipPBXt0}tl!+TyWMu%#n_w21IygJ%CgOQf2jHV zj|S@w=*s_ZKB4S?A$~ssnJC;Sc0bEM!xeni1V56;jim$LTj5(0=HAS=;D_~~Dd#_i zXU{3H_y72h|JdiQpI}(W*@P%CKeuwf=bh}|7a7cSzSop_^I3R!P4IBVZz}kXr32Uj z>;Zbuc^3Kw^Kf*)yt3RqSMYN)yglbbi~Br#Nu1f`y&}#$AU>we=LO(XZV$4zE(jm% zz*dU4*@4bEfyV>x807!USc9?dhG*6T%Xe6aJ`BqvePibX&vNHX4D);TLisKL2hG{u zk12cl{SHO;@!hs%u&G1gWgTEF$nycq-l4K9XPOCfKj6D5&N#s{c$f8{t>0U=&Agm$ z9cY$uy2EMYTkgzlncs2W7yHbXcc#@mFi*@Hh31!SDdWBOcQ&cbAEs-<&pL2_#lJ3( zV{K?!97YB|&~F~VAKL=fiR{O5UmkjZJz!iw7m(HM(SskJclF5q8P9k|+{Nts_%eN& z?wT1@#5^MOy7~u-Kdkio+okNS6T;K$0@jA!A3%p&_llJs&N@JtZ6n{9@cw!37)`xA4z>?sNN}_{1mrzy3Amx_TEfMxUpsWe=|``wJDn z_aB1nvknMn?-6*P5SnbupwqM}I`5i#;Ahqg+(G`vH@>l6GqQ$47tjMdvOp$H-_(zV zgE_wE`5#pLPDS>cWQ}K;P8tgD zCGs8*_^#Y{43D%0DqD{UnTO^d-#qc%(LepuKlQiWcH7uT!Y(jZK-QLzbz+!aAXCa) zw#_ihnzqPiOb3?NDePzSe@o0=jd#Y`X_49f<9yYIex*Z^!W@*!j__In)UXPF|; ztS5dZADy5Mb#q(T8t!t(2C;90%)!IBczpM>!$eMwns(CQhh@*Vmyas4zk}j`u(G%Q ziH3U4qBv(rs>N?bbDkG;>VbI;pBWDbapp67sH<16?tl5qU+(iCNUwX{>tf!(JdAH8 zEmOt~?2R|6F?S^e!jGyrd0%q#KyHzn`fce3T^kSHIIoE53 z-OxA4HQt1|zjIdSL-G&!|Dn$h(+AOC>$~Dh<^Nf}`oN{KmF_F>&tB1mxuz_KJuj^F zx|Z=Iv@R3JA@@(nZ&l=u4g8}T=ZDF9Si0yR;DMeWEPtH*f63!AAK_=_Zxpy4{A8Rg zb8Nijj%_;@H4H__@95S!@U|M4S-w7(rTCxZK7qoDUjz1ls!F@7{I2ro!u9f5HhPR_+XrMre3)M3 zy2IksZMJ7QyN-&)or!#)_X7EQW-|3$&vA14pW@?lpzyG^3Di^?|5@;O`9tJCEx$@0 zS>Y_B>S_L&bYyC8{qQrP>pE<^~ugPQ2kCcDD{3GT6qKTu@ zLgotpG^cAaXGYJ3=gbd=?w2VKz1Tt?xzSe{KVB%mzx+$&4=nLL749a#o&2NaA0+?h z!%$Zq^6rE^tnTe8T{PgwW1y=G*x2#-`$GN%Xevaa)!kWmQ zLoVS~RL_j}xKh1tU|p3xH@7UZ`@iz@=GF5WKbHnq`nfdd$3jBgd;w55UjP(rskIaU zHMqIC0Jvtpy#Tm!{yA8%V*WW0n12ie68JzMfe!=*o`pa{ClE^L1VU?a`$DMsyfWtt z!GUKXxFYB4IX{AM<9Psm5zu@dKwkuncwRa{o(OC{50EQ@M?J3@#CNj^pYO18u>Qo) zD+cQ?xt%@FHSn4Ad85;_vcb>B^ThI5GuYl88qb@JdLE^J&HSc5H=i5*V`<}ggZ|U( zZ_Vdsf8F4D#awdg?<>>eT=QA>VolDMeHkFI`78rDK%nf`071((d>$ZRd4JI0=rJ28 zp*MhV*xQ6)*yDs?*z1JQQtBs!mhqerSk80eSUk>iD8MC-1h_cxD8gonLw$!iO_VGKj zAAyg#at5F@FkULZi#+edco*;)`IYjQ6i@tf@|=r$gZ#7P|4M#f{-i~KX?-zU$x55EKRIz&mWF6Z;Ulr64qgEo`DK=B<-r{Xm(PMcLISoG(B zr|_ZjpO(jgGO~=lQ_&W*LQBbvckEHJ<45)Da^@LrsYF#*{lLIseGr zH2MDr)NZs%+tIN0#TB9(INm+3khe@`q6?{g*4*dIgG)^}x@@}1<9?Wb`?r6KZvZ)W z_rM1}uz!zx+@pWDyWK6qd*1V&{d?W(Ug3%7yazns0db~_J15~sz7HE1z^cIaG9SLK zw7){{6;720YVVGvUHbV?$~E{X@PuW(;^ zV8mEO+`5h~e)z*5j_+K-5xl|KG!r^L3H`ZjZWEnAZ}`@bF~hhJX8iQ{vc>Q~^=(g( zJ8jd~qvJ77k;WNazIVO*-R~Z9=lfUF+ZBR;SAJI>FyIY#gl~vA(}x2mIieneh+7XP zvInYX+P77FEe*>J(0=Kqm&UpDd*A!sA$!y0K5ZKEGjVid>C&Y^zxBj*sguh$pIwfS z@2c;6-}}Zn*ROo#E702H0r=v5XWUpkQ2E&BR`>w<8{|XwgqAz^fFc8I6nGftu8_Wr zZMfh4?iYNcEOF%7Rj(_Ly4VKr_{?WmQq1FMc`1o`<6oD)FmexHWljGV6^HidWSMqs z8}u7@XzRk$Hl6QD`1bAATW<{;w$DEM#Q4WIWnJ~#@(dFk(3AV$|Nd<}s0>8)zGS5Q zMXvS!HHCJ@xUhAE=sdVIX$O}skB;2uKKJQ!HwaF=tV70lY?^t{)lOR;_?QRi0{>r! z!#)#AenEqxD~b-Z@WGXRZ;EpZw$}agPBopr;L&wlw-U_@Sd;{c3fk z3iJyR#T2|9&xsXO&(w``G#c_%(i@RWo&)rD_qh5p}r-oSTZ zjM>QEGZfx5z&ALB$? z#>q0_dtw~4L1R4h`+S?lKHh!hStEr06C%5(J?&{>tD(znIwTEQ@C*!|O$%cjJn+~v zE)URE+8f0K`ZPQ+E?uEz!Z(t>s{#f5j=r7DIs0Tmc0quA309m5bu4g>kLfXQEpZ`a_=(p`4XNEW{gi}_f`+R2# zUEt(42$40k^ZhXQK&;X{`|PvNj&IdH_s%@vo8vA$Xybv$hjDq3@oS4C5BSV~`r@zw z&>9c@{_7PUL!5q5@?t-WJ_?U>o3zE8=98cNWK_3}<9q34%a(=QU5Ajl4m@BUfotmv z+^K;s@r^F9fB_HS^(Y>Iqw8fna~wP<_wIMU+c?k#O#cU!7z1{upK;&12_E*wZ}sZc zZmYgezKaKZgFYz_JU)E=>uhV!^DfU5=?j?$#xsY|4}a4hlR_|PS?;2^+|43%9 z8U3fO+oCTZ8~Re(Z;JA+2M_rFO5~1Qs7uJaU>qI*lfFegV8a98cJbh4FMC&a{Qx?Rf?__%n(JJM6GS%>(L< z!vpRXYU6>&m1bWs&v`e5-Z$}uesHCq;3%K$ANqd^>Dm7AUv$<()7=c=!8m#V50Ja% zNk|`JPBKgn-~so?`UKgT@~wjIWoddQM>Jgz}Mo5n|zp6O@5hdRKf z|KMrQaX)is3_RfO5dWWt<>8RNz`g(G0qso61K>~(S{Q?XZ#^*m%tz3F${0UFU_p!b zgBatJ{5h+!KlIB9s>kG!74* z|NQ4i`@o?dxSmehUI66*dOFE2@hxsUcdwH%pTSk*gs&dj7*@Jdcd{!bH)w6 zz%$O9;Giw_{mat&|0wd6SMPsd1KeK?V^j$2ae466r#`jT1M0y8Xlvtv*A46&GX_Ba zC|t<5PI4CvuF&uOkN=bC-zEyk1i&ET=nMbVL*IdqZnj{%iebH$0GHvrSE$W*zh~9mF`z(9nxWt2#6_2qHb+I0BJ`){;j&bR3mh0kyZ5(%& zVGE$6S%1{C+h;9YXn^jZB@+7mGc&D0c==Jj&p-Sx#kuPMC-SQ~F=NQiJMSFpOY;C3 z*@K(ogw1ECp_kB?^?>osV;t}6EdQ?da{I*L7xh?cu@)@IM}LP0a_o0^{%^AKJr=x_ z3aS_O(&Hij8wmdNFL;pgndov1b6Uee1j+0 zet0`>JHYnb+2@{&qj47c%yr_P8ifPrUfSpI@3Y^}h6nO$ex3&!8_Gz5~=X~lJ0sY6}%vzd3W7WMz;8YW@E!DHNw zdiL3-MakW?J5;;22lr6CI&56cl?Qa8;MC{;4R}w+yF~V~kt5>;HVeA2`Ot`(|NQgMANUpseJe5-sDbZazAU`%SL8mCtuu|ILbd;A@*W?VWZoi=F3|5b z;Dgf0j=3G*7&|q+H*a@s^KaAXn76=#QuRo3@$ebl398_-%~1a2U`xJwH_bX!#$?Kw4D84|7+!+WS>?zk%*cSgt27 zf{28bpyxGWBqtmzMh?RB#Q?o0aPuWD-{JtZqS|r9`=fVR^YcVOa^6Ml)(i z&~U#0W%D)hIJcR@m2=^IA4napsM42=3aerZ{~gu7^H)|NYW)1Xrb^$;VUu3-p~0VJ z=9~Fg^K~T+iqFxY_#O>P4$+Y05*3&CD*-6rQVA8Gm#Yda=ed$Q_eA`i{C@IF=C;(Y z+(WBivA===o;S>d4z*vmt2nk|PvLU~ILRr{z@s^Z z#@cnlImQ|#G0xUr<;deKV4Me}PN_=+-%9RpUTxN6h~hg47Uy$u;LMr)dLCe$ z*fV8ck~IgOHCWk4rAXkd`n=D&O&+!`6>S4U@{M(;U@}*E@+35*NlHNP8rwrx8owvmP2(T6NV19leK^WMUH{GEMT<>;&5pq_c4J2!gt zJ=$ka&pHC^>`6z@*}r(9?(hIl&RChxxok5|UD`&cI47b#MAKk7Tq%^|-E;dnK&iAm9>`Nh2aBG7HE>0(I8s7D;cR@lY4X!sV zMBgk|eJfG-1#px*AmdJ4>0c$U(Ai`Ez3cl-aK+952TvTHK?mPhvhReGJ@?$9j~pn2 zts!*XVIg~W_tW=T<&15m)RlfCgFOFzQsI5ZgCCUD-9s=w=3GSvJHmII(vKxgyuw!X*q?-M_AlLz zL)ycmSN;Z*y8MUczWeT5(*Ta+&_Fr2-4=pF`rZ-zd1oUu`~O^UXMX9q@H%Wg^Do;n z&hn4Y^IF=L>s@rwMPch`le&1?vO8n`=)^30u~ z8yb!~?l^%6`#c~A@}YsyIOh;pv~~2+Y~l4|odnKu9G-s{anTg`^KCADleWN<5MDEX z;6LbS!+no;wByh~Iobh-VKjgvHp4Uk+n%(g8vnSfL5}gvV;L83oKj@3;ofqxVKJ$3!rJl=VIq-j}{uT)wiFeTeJjxk&LhwL7ywfdh8~?L~&R2{- zccbwRkT$48JJ7-zbe!fwt{*foo}yd4Q-Yo@8qhmvH4W$~4zZhF`ZW4x8fY62F7yrF z-;^_#?!)YHTw3s7Pab6`OC8gIT)8t12dv7>YLj2@I-!Abrh)fsZF1l{AJYJi#D~!U zo!C-nHU9Jm-Y@h0zMNEu?i>3v1Nieki?Y-;{-+YDbwKoZyG?3vj^}IoPmo+pZH(aM*sbiioX;5Z9h4?03OH~y0drxqpdbMKm$CZ z4zi{l`hJ@npn*OQt>8yJ)~CFOGTmUG~9~f^R zTjp?=yASC7de7(cX$L;EdD;ZOE*gMIU1)%wd}iJKl=Dus(*}byaG>AOAN2iNp1*xh z_(ID2 zVOa0VH`?$%`mJ#N7JSEv-(J5zx5yyop&I969fNGaui19<*))I?cNgIDI8C1>4_qmm zeX}i|EmzL$=!}PX@3q%H8TTMWKga;MMFxE15bI!MKzpM+`~o)p%``CHcz(t=3&>%d z_Q0F|a{B3~gL{pWaQvnohwWc&qkNpdmFe-F3H^t8T^sK*AIWc{fq5$q8PFHNE!WF& z+5i?X53jy$ZSG$^z3{$CL+FukkMUSx>>r|X>`B23=5`s@u()jUcC|HE_>!Y+y5| z1ux>mJThyR;n_T34Cnor)=0K9wd{oh?@;_*Pw03P=jOA@+onET^?wwIt3S{eh--cu zvH%BQWBb7oTEL08adw=LJeNU+)I}bQHF{5JJ0p zW1d*>jB&N-dNiq@_bM;W7bxu1cjG!NRQ)CLmc+lC6@pU)oD*fO zhi6@?qRNUqmk|rr-9{U(ql)l+TX0cWzc(L-+a&2~&on^KZh{3J#wF(DtbvMLpoh5% zb1m>A4!$blSIBi;h+<5Ap1kEfa6V)bJiE%$zF|;Kan78)Q=T&gYvn5j3pL@?=0j&x zi~;#-`FG2+hiSVFZx*F5UHCgsFb4PoO!P7M zwlp8Ep}cyc!<9S>bB8N<7WapRWG}|8pmIn1E6Gpztl>G~+oZ>Inr`#Ke5v`gvhdA( zG+$M);x)(f=H@u3wWa*_@=GG7$lc^8aOeU$Ko#lzo#dCvth`PA^=$RmYvgY%{u-s7 zqrA7P3}-C*$4^RBsYp-3W`DCoqRX^;W>T=HGrNC3t zNE@KChI?1VKLuR1ft~!l-ifW#ygk-#+MkN|$D9ek^DddRC+j6b7)RVhS-%zYCcV_hjtH(b5gSC&zd=t;S7Ec;^l+pW$ z9(NOK9s%ymkHFz7#kYVL3I}k|vvmx*FO>`x^l#I7rXK5Iz31-%gLx<+dmy~~=RF{6 z0-jmd?9Ykf!iJ@GZ@r2XudFJIpG{mbB$ z^N0hRy*0fv?(v-hIFzrk z(DC`tqXIP!{;!9C4Ns(I|49Mlt#v`qGNwM>Z9xHweZoOA{Tv+d?Dc0HSXY1>b-8mW^8p(H55WO> z5Yoo^=bs-sAlToNUj-b!w^&ae@ZmZ9M%Fm?dB6cW@ds#cyom#KsRzF@4)6i|SnK17 zvwudrg8kzRpSD@=;c4&SgAX3Sf&K%X_$ChiFCS#gnkwVKyBq4TwxwO&uan_l4leqp zdp))b*zk$9Gjc%JGaop61)X^If-)aCHwql%z#T|9*3rOay-J?GD>MJUtG43>s?N)- z6YqQQ2pkB(7k;7ZO&n+k&z?>b2XMpwv3>@B=rR8l@2M|a|Gp?aW}bpgT&MD3d!XHN z0B3M-;=uisw)IUM&`J6bItMPaMVq8O^O?_N4ioSN^C;PXCrJl_ANoHr`hSo0J$h)* zGrB>$nGehhZ0FHW+Xueg18-n@kART2weOkj&-TJ$iP~f>(%1Q>b>dU~j)401?1vy* z^sI@4#|ZR+bKNJMbW+fc{9K>7>`@OJ4=lBDm1vLiZVC@BZT=pcBfj?7bD~c6q`}XO z1AEBmH#QbI!)y2sT-T)@ZBkFpvS)?v zfrIzZ;TvNe_!++IO7G$vyI^<@bYOw$xsT_)rxhH2$9x5O(I?p-gO2RM0iL7#*jeM| zGSoo^virSqM#8Xtr%65k0~efl@|VK#YsNuiLhMP3uFwbCgg)rPg9AJV51z?$8O9mT zoXFOo?}p8pi1=Slr47LMv%-6*%q5nE_7vA+!$lvq0e;l5fyJC34}9_{Be^lo(-)9; zz*d`=DIRk!!>XvB|5bX(L1q6!@lSw*bcHs4fBp5>uhaRQUimh;hfXoRk7wSe`aiQJ+((0>=V98?SEQ)_%>sA@mDDAv&uU{WjHe$-xMld(~;ZF@%XB1 zrJ5F+Y$a$Pf^Y2ju5L5@N^LjbSIo^VDSmF4Q$G7GQEp|ax2Cj1o3veTR{(SE(mwkX zEKIkQUlPBH1ojGBoM;NU=qx(>TJIIDd=J7v|0~6Lcm6)TW7&$Tibq*Dqvs{kU&fmi zim$!;>Z|+O=Z>@F%yo2Ti19&L{okp~TlHRL1D#Rc8LWLY{;tzHW!+uwa+mdYxWgTK zn{U2(Pu~Ho*IIm?=1J?yd9JgRU+bLeuAr{wz-w72Gp=hNy2o8C^kvO8V%?+vs_W?v zv9;x{pSOX(=w)y2R>m6Ew%8qwz40EDvj#Wbcw>w=nlnY;WX)X8ssBd%#E(?nW1&|t z)-i@L9%;@U_ua96}yT#p{XYuc1vt4Bs7v(s2yj<%5>`$%#w4-PD-@jJ;-RiUO_GWyEA17Y@O)g7(?NaUaYFBZk VYOhd>_+gH`m3Wo?l`JrI{~zr!$?E_B literal 0 HcmV?d00001 diff --git a/dist/electron/.gitkeep b/dist/electron/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/dist/web/.gitkeep b/dist/web/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/package.json b/package.json new file mode 100644 index 0000000..4f270fd --- /dev/null +++ b/package.json @@ -0,0 +1,136 @@ +{ + "name": "Jist", + "version": "0.1.0", + "author": "Cogons ", + "description": "An Code Snippets Manager for Gist", + "license": null, + "main": "./dist/electron/main.js", + "scripts": { + "build": "node .electron-vue/build.js && electron-builder", + "build:dir": "node .electron-vue/build.js && electron-builder --dir", + "build:clean": "cross-env BUILD_TARGET=clean node .electron-vue/build.js", + "build:web": "cross-env BUILD_TARGET=web node .electron-vue/build.js", + "dev": "node .electron-vue/dev-runner.js", + "e2e": "npm run pack && mocha test/e2e", + "lint": "eslint --ext .js,.vue -f ./node_modules/eslint-friendly-formatter src test", + "lint:fix": "eslint --ext .js,.vue -f ./node_modules/eslint-friendly-formatter --fix src test", + "pack": "npm run pack:main && npm run pack:renderer", + "pack:main": "cross-env NODE_ENV=production webpack --progress --colors --config .electron-vue/webpack.main.config.js", + "pack:renderer": "cross-env NODE_ENV=production webpack --progress --colors --config .electron-vue/webpack.renderer.config.js", + "test": "npm run unit && npm run e2e", + "unit": "karma start test/unit/karma.conf.js", + "postinstall": "npm run lint:fix" + }, + "build": { + "productName": "jist", + "appId": "cc.cogons.jist", + "directories": { + "output": "build" + }, + "files": [ + "dist/electron/**/*" + ], + "dmg": { + "contents": [ + { + "x": 410, + "y": 150, + "type": "link", + "path": "/Applications" + }, + { + "x": 130, + "y": 150, + "type": "file" + } + ] + }, + "mac": { + "icon": "build/icons/icon.icns" + }, + "win": { + "icon": "build/icons/icon.ico" + }, + "linux": { + "icon": "build/icons" + } + }, + "dependencies": { + "axios": "^0.17.1", + "electron-oauth2": "^3.0.0", + "element-ui": "^2.1.0", + "front-matter": "^2.3.0", + "github-markdown-css": "^2.10.0", + "highlight.js": "^9.12.0", + "marked": "^0.3.12", + "moment": "^2.20.1", + "nedb": "^1.8.0", + "underscore": "^1.8.3", + "vue": "^2.3.3", + "vue-electron": "^1.0.6", + "vue-router": "^2.5.3", + "vuex": "^2.3.1", + "vuex-persist": "^1.1.1" + }, + "devDependencies": { + "babel-core": "^6.25.0", + "babel-eslint": "^7.2.3", + "babel-loader": "^7.1.1", + "babel-plugin-istanbul": "^4.1.1", + "babel-plugin-transform-runtime": "^6.23.0", + "babel-preset-env": "^1.6.0", + "babel-preset-stage-0": "^6.24.1", + "babel-register": "^6.24.1", + "babili-webpack-plugin": "^0.1.2", + "cfonts": "^1.1.3", + "chai": "^4.0.0", + "chalk": "^2.1.0", + "copy-webpack-plugin": "^4.0.1", + "cross-env": "^5.0.5", + "css-loader": "^0.28.4", + "del": "^3.0.0", + "devtron": "^1.4.0", + "electron": "^1.7.5", + "electron-builder": "^19.19.1", + "electron-debug": "^1.4.0", + "electron-devtools-installer": "^2.2.0", + "eslint": "^4.4.1", + "eslint-config-standard": "^10.2.1", + "eslint-friendly-formatter": "^3.0.0", + "eslint-loader": "^1.9.0", + "eslint-plugin-html": "^3.1.1", + "eslint-plugin-import": "^2.7.0", + "eslint-plugin-node": "^5.1.1", + "eslint-plugin-promise": "^3.5.0", + "eslint-plugin-standard": "^3.0.1", + "extract-text-webpack-plugin": "^3.0.0", + "file-loader": "^0.11.2", + "html-webpack-plugin": "^2.30.1", + "inject-loader": "^3.0.0", + "karma": "^1.3.0", + "karma-chai": "^0.1.0", + "karma-coverage": "^1.1.1", + "karma-electron": "^5.1.1", + "karma-mocha": "^1.2.0", + "karma-sourcemap-loader": "^0.3.7", + "karma-spec-reporter": "^0.0.31", + "karma-webpack": "^2.0.1", + "mocha": "^3.0.2", + "multispinner": "^0.2.1", + "node-loader": "^0.6.0", + "node-sass": "^4.7.2", + "require-dir": "^0.3.0", + "sass-loader": "^6.0.6", + "spectron": "^3.7.1", + "style-loader": "^0.18.2", + "url-loader": "^0.5.9", + "vue-html-loader": "^1.2.4", + "vue-loader": "^13.0.5", + "vue-style-loader": "^3.0.1", + "vue-template-compiler": "^2.4.2", + "webpack": "^3.5.2", + "webpack-dev-server": "^2.7.1", + "webpack-hot-middleware": "^2.18.2", + "webpack-merge": "^4.1.0" + } +} diff --git a/src/index.ejs b/src/index.ejs new file mode 100644 index 0000000..d7f4f63 --- /dev/null +++ b/src/index.ejs @@ -0,0 +1,22 @@ + + + + + vue + <% if (htmlWebpackPlugin.options.nodeModules) { %> + + + <% } %> + + +

+ + + + + + diff --git a/src/main/config.template.js b/src/main/config.template.js new file mode 100644 index 0000000..6d30a2c --- /dev/null +++ b/src/main/config.template.js @@ -0,0 +1,15 @@ +module.exports = { + sources: { + repoUrl: '' + }, + oauth: { + clientId: process.env.GITHUB_CLIENT_ID || '', + clientSecret: process.env.GITHUB_CLIENT_SECRET || '', + authorizationUrl: 'https://github.com/login/oauth/authorize', + tokenUrl: 'https://github.com/login/oauth/access_token', + useBasicAuthorizationHeader: false, + // don't touch me + redirectUri: 'http://localhost' + } + }; + \ No newline at end of file diff --git a/src/main/index.dev.js b/src/main/index.dev.js new file mode 100644 index 0000000..ae70ccf --- /dev/null +++ b/src/main/index.dev.js @@ -0,0 +1,27 @@ +/** + * This file is used specifically and only for development. It installs + * `electron-debug` & `vue-devtools`. There shouldn't be any need to + * modify this file, but it can be used to extend your development + * environment. + */ + +/* eslint-disable */ + +// Set environment for development +process.env.NODE_ENV = 'development' + +// Install `electron-debug` with `devtron` +require('electron-debug')({ showDevTools: true }) + +// Install `vue-devtools` +require('electron').app.on('ready', () => { + let installExtension = require('electron-devtools-installer') + installExtension.default(installExtension.VUEJS_DEVTOOLS) + .then(() => {}) + .catch(err => { + console.log('Unable to install `vue-devtools`: \n', err) + }) +}) + +// Require `main` process to boot app +require('./index') diff --git a/src/main/index.js b/src/main/index.js new file mode 100644 index 0000000..8ded866 --- /dev/null +++ b/src/main/index.js @@ -0,0 +1,101 @@ +'use strict' + +import { app, BrowserWindow,Menu,ipcMain } from 'electron' + +const oauthConfig = require('./config').oauth; +const electronOauth2 = require('electron-oauth2'); +const windowParams = { + alwaysOnTop: true, + autoHideMenuBar: true, + webPreferences: { + nodeIntegration: false + } +}; +const githubOAuth = electronOauth2(oauthConfig, windowParams) + +/** + * Set `__static` path to static files in production + * https://simulatedgreg.gitbooks.io/electron-vue/content/en/using-static-assets.html + */ +if (process.env.NODE_ENV !== 'development') { + global.__static = require('path').join(__dirname, '/static').replace(/\\/g, '\\\\') +} + +ipcMain.on('min', e=> mainWindow.minimize()); +ipcMain.on('max', e=> { + if (mainWindow.isMaximized()) { + mainWindow.unmaximize() + } else { + mainWindow.maximize() + } +}); +ipcMain.on('close', e=> mainWindow.close()); + +ipcMain.on('github-oauth', (event, arg) => { + githubOAuth.getAccessToken({scope: 'repo,gist'}) + .then(token => { + event.sender.send('github-oauth-reply', token); + }, err => { + console.log('Error while getting token', err); + }); +}); + +let mainWindow +const winURL = process.env.NODE_ENV === 'development' + ? `http://localhost:9080` + : `file://${__dirname}/index.html` + +function createWindow () { + /** + * Initial window options + */ + Menu.setApplicationMenu(null) + mainWindow = new BrowserWindow({ + height: 800, + useContentSize: true, + width: 1200, + frame: false + }) + + mainWindow.loadURL(winURL) + + //mainWindow.openDevTools() + + mainWindow.on('closed', () => { + mainWindow = null + }) +} + +app.on('ready', createWindow) + +app.on('window-all-closed', () => { + if (process.platform !== 'darwin') { + app.quit() + } +}) + +app.on('activate', () => { + if (mainWindow === null) { + createWindow() + } +}) + +/** + * Auto Updater + * + * Uncomment the following code below and install `electron-updater` to + * support auto updating. Code Signing with a valid certificate is required. + * https://simulatedgreg.gitbooks.io/electron-vue/content/en/using-electron-builder.html#auto-updating + */ + +/* +import { autoUpdater } from 'electron-updater' + +autoUpdater.on('update-downloaded', () => { + autoUpdater.quitAndInstall() +}) + +app.on('ready', () => { + if (process.env.NODE_ENV === 'production') autoUpdater.checkForUpdates() +}) + */ diff --git a/src/renderer/App.vue b/src/renderer/App.vue new file mode 100644 index 0000000..d9d35d8 --- /dev/null +++ b/src/renderer/App.vue @@ -0,0 +1,44 @@ + + + + + diff --git a/src/renderer/assets/.gitkeep b/src/renderer/assets/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/src/renderer/assets/github.png b/src/renderer/assets/github.png new file mode 100644 index 0000000000000000000000000000000000000000..3661ca8b11d0b1c2002805429c3e1ebcb1bca6b8 GIT binary patch literal 45295 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�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�B`((=)>$XlbBTM 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 PwLnnceaq1`faSeA zHp-yS4G12p!WES5I{Hx$#@HJ=amFunKNK-D)mXP71#%N77THA-pAc84#X7chP|@0- zK5H~~m!3brSAoOE<;%VigyJa9BW!o)&~E|jm?T^tok|Ypr!4~c0(0)pBy34R25#g@da21$sXKpaj7f9h)%OktVW_`lzc?` zp+K?wcm|6?+!K9{no}!JG>{+G9Q$U~QIWGlhqP(|&i=b1RQ>f)L$>!-a{3TcOsNHn ztq&YtgB%!36RXHm>nvr$RO28#Mb?Nz`S15)%1e2urApP9Gw7+%Y>YB{W^>XmK#4FK zPO9>2yVigeAO1T_jYp=qQJt_xz~bifqBY?1_f$6fK!ckUT`! z%vShgV{P~XuFQ1xk)i#R2x}k4&8M z$mz!O4`;5gSEtpASZE4MWpOtZn(_eo=(=D141?-?+-p6hbYB>hHmK(PfO?1eQFOGL z-xiv_&ippglZV5d9=By*JH8D0un*F|HDwrtU<%@(ostDMNs}Ewg)hDd+*^8npb>=g zj?Mv*x$|-=_3_YUp4Ag~0v&R;T|RzZ{7lqBeu`FE!b|xU6I^ZucpohRj0#3^)+|gWG*LbY@cwsr%)^7_9!jqd9aYv3(NZLz?0|NvKRjQAJN^# zuCII?-hO&O(iNJ_4MJMt#2)1&kTwri%x+YIr9Z;aO0PQCslyO9 z@h3-lf$MuIha`VCjT+Pr0{_sJmcQdF8dmOAAZRP7#$n1@Y}pN(=zX$+A?uq+ z+hNs9ql)D?nPsclye4Ic1fFIK7M#(b3$jPO6bM*o6i(f88mFh|II4w(d0^iiBc6-V z*d6trKfd{AtDEp*GSrLY_`~>`SFJyREEPlio0eTrNMz0JS3kkF(;@5rIZvM{P|PIi z^%RVq_G=8o`ok{vY?L8=Q)c}Tz z%J1#*Dr&u^z@c82_P~tygete+Y9aWlrr3ix{4X@l>va7kGCe|@Ib4WKwCJU&h1P9{TZr>(-coNdV<)R;UYvYOiPen(`XF7aG;_1?i-$hhcJ^b)leSjtjJThp|KM6FGR!j|yFa zzAO>X_vVvueip9U7KaI2^8u4Ynr3~(Jgx)_;co+`GOSwCQI3>JC88j+rV z-oLimN!J^Cu{JKL@~$f=5|%FNc)`QlRY0`&alFEhhCHp$578-b`kS)w++3 zTx-xK>h=8j>W83mezPKY@k|WiWV}|YW{bR&7rI96Lbwh~dpILKLwp%>&L?8D8Jz3{!(6Yl2!MdG{n@~3g`Ig9swPA{{6gi8`oC_yOK|ms_@HOz_A*-;upMj=N2k& zKR$1@Zz*O0J`rJFH{OViljql#WG!un3Qp(WwNDnW|58PMoK<$se>WuA$~2AbzZHo# zwERg>8BHIOQOIutd~_)v8`d=vKE2Xi#PX7*YNyiAzO&juxlC5g@U-nLipujBBz>Se zk?ri68^zt9YINT(wS=X&eA}f&P5!wq5&xEpHQcq`WBy^6y1EO{ha&=e$f51V;XM#6 zC{5dO^Jp`~WwLUH=c3Q^DZq#F03O@6NTqcg1s%r?9M4()IGG8Avi>=tS7->3LU;Z_ z#K4=bB1UUv>%lu3nA<~LgBzF8^O3y!%CAig=xd4Z0%&+JiYw}764F|#za3X@*ejE6 z@s~WMMzenxsT6LMe&p(@`Lu5cf57g0y25QH*OYGYIIMf8qhheBde#g3skoBLCn3ag znfp6ux@sd0C@BHAZW3|5Ua$1nJC>_fsm3&n#`+1BW>+O$yx*li2iN#q7&(Wx8~Om(Ff& zHxPZ)d2KtX9PyV{3PPQ=ZnnS7+E#xRCu^;n8k%bSp3xB~EtaA_!$1c&b^#F4R6YzS zWsjkM=uRc6Jg+7nUBS8g_QrP7O7#WkU!110164LWm*#(0T52RjyMA8MeD;OS%I}H{ z;N$35F>bxMEDJP2xkpmp&n_OMbXaC@6jrQT)X<+{ZTO%kruT8X)PK#Hh=@kysGtll zl~)R~y@h(B+JTjLETZ%&eD+0{%df*K!vP00{L9s+M2>O!Yo|AP!kCsRVLN^#15mjro{s+gses&MljbXC-1{ zWJT9`qj};z_;|w5-|2BHG@h@)e-DFM#EdUyW#=dG_vovc1C_TqHQ%k$BlX*@c617#${ZrML<;sjNoQa0MI=sArqEyQZ+{5??i z9*4F>n2fbn*2Mx2uYqbG0qTx4JL`V*OEEtnuifyCrG@A@#;E)r1iD*&`IYACXDh;A zQMfGrl}}^$d0V4%nRNZoRvJ9qr7qlY2zVNVn9u8fNc@L!D-9|gmtV==)xRIv@PC|e z2QX6a8L^&0?~BV()hk!G>k;WZkDrS}OKPYgI3wUqQIuVN1_B(YV}DuH>yz_~b5Yvp zAk)u5E=Ne9hl%GahLDy8`!Z!KJ2piv_gbYshpxXzoZ%ut5k2y_xy(++cEo&!Z0e3C zUAAZwx&weML_Ev>z=9}E`s}BWo6C#3VvlF{&Ki`kMkwls$B9LgR@MTIHvW8ToBjYk zczFUlTGQYgmpwHZLi&^-jpfP{tF3Il9XDd=8rN<2ra@q7Mwc(EkoW&50OTIKTEm$o zc^wMnO&z)TN{}?G+gIA;lB;L;u=qA5s(uEfo0MV%SRt$I87TcxMc|)JeCy|x#wO4I{Vwp5LCr5md>LYGvb2({+7;!wb9tpDA-P~UZ+AKH zp6@4n!#^t#Nj)kuhc^`4q|Waq%v?ll0#`nhJ)8RBsQSA6)t%D?)6g+UT6I|C;l%R z;CUM6?AiFNDJgSX#)x$wsnU;ParxrTQ{O7@`~TEmNkw&92K7pSoQqxfXteo*sh5rZ0Hd>O@S99$;u0 ztL`EGNTUGZOF>{aHL2CbJL>>v%I}St2qYLkqD}=e^1UucxI#eNTiOuNrT&+Ij?P}e z5ayDcRTV^l9=ti_Bx|KoG(>b4J?3@W4gw+wQ!RB2)~YHcfA79=2Wx_7@h?biI5@IA zKz@;rz*@O+)@f4sgi4xHHE&uDpUjljOrUrFqa#-h&Zb|4GRZ<#+5sOkARD#jNkv*p zt{!d9tKsSf&8z@yCTeKuuYSCj=RB|^rD((iaB>UlkMGZdg;ZYz1EWO;X5-&jUOL%S z8xCiQhBj}yivh46bYVt*vR_g`p^h$fZ>4vg7JiyHg$k}6kJYVGCJ#7t!O`Zk$&P6bA{icBBCjAIWnGemIDmMBSGiY0kK;TKz$r@rFe+&C| z>lL@X5obrePq}qq;}c%A*`HO-)qE+SKyi*tKAv-?2$yC}SL3d_RY$omsXuhH(V)6n zfXe>}klGQxYd7R}VPbxiYl{%Eh~`bq@TwyN7-&ZF6XXnJCu!IenxIMux1+c$o7M*s zZvQ0=sbNvtlVtlV76=Y+r+gUw`XKCW)wdLx4mYgpOW5TP*@O%Ojfwn__OXc+sQwfgwxcW!$vTnWgF<qUIub3gx;JW?H^{)bDpSstQ!M|AA= zAE7~FoiWLB@QAavlM4!s08N^Ou#K#oK?TqN(u+^;Z&+Q97<6%{&C~oQWoaa78xm8L zpyy5O2bXyx;+1am_qctV#Q-3VBmJM|d!NP$9G`mFT1N|o`kF2#E$kOwOr82j47S*h zL@_=ky$wA=qOH-+Ot!fqbs)ztV4yumGiywvfiK_OjK~ zU`rn$0jM*@Pnm9FzL#>IdtIFja%GR$d*Utj0q1yVgC=Gizcjg~y*G6}lj096mp{K@1Y&2yu|7Di2Ll$U!S%7qM70VHp?+j1KRfdIbZ<&p;igHq#FgShEz%= z<@CY~XIcVS!rS^$lN;A2$8-@EJ^>6Y6G)&I(WCl8r&O z)o@n{5uc6dX?-q02I^Dl-#E!xDRn$`rp`VP7^+ul0qpBj$Ml6Y7xF*L7c2mk+|OhE zJ>i*R-+d-q@x-&9^)#Ttyl?8%u5CNK(H$r&pj$G!WjVortpnKUA-)jNAKYqQ)j}VW zP=(CJpEt{L#CTIO=3z_0{>GM5k_D)~sMou5Fz4)kuI;yfb_$4v2>`jBKzW_sB8Nvu zSJV>-eoMHK#Og%HEso9a>Y2eQmZn(8M@2@2%@p9bH_j z21~aM0o;Ly8%#8@9DnX&t{VwRUOGo;$YVc6cS$D@DTVBIo5Z5P`H6$B!ps;i^$PR>iLK3hBHyZ>C@t!`0 z1$!t9S)1gD@I=fzUdO*mYgCJV5cu<%R=Rg%c&|PVbRDzN0Pg7I7?iTy>nZS_)~jvg!Gq<+v=CX>arKTSxV?UI#K<71=KzKYgW+By4h_6SIuG6yb@ov z|H^skt3f7-RAZO7|31Pm2pQ(^yJ|GyJkZ8Zj{bW<^^{Z$^%T$*{QW3?6mUubjR@2h z@AlcKoJoy5L?Hh&D$Qhlf3ikjk44*>X~#?n`jzQm<}T&5zl%mqMFUV1GW0OL=oLEm z0-vrlIR*4Je2;QG;#brHQ1WQRhWI1|*VhEE<%v8PW&)A|{`&%Mrvec;pqU9(z7*=Y z$GD?d6;Q2-1#XJhi?Q^iMxjbR2`9z#@4eL`EZ-ka_qyf3^(Cb1(QA-p^SLPL0rm?SKdpkp~m&;FVg5&J}`#jvmJ^IS`Eb)VM z@rb>}Pc^Z2V(O==ZsGfd*Sh{p6bcgP24$N*KE!EP~H3Q3ZH zi)c48pK#GP)F~eb3rE6OoE$u__8D4* z+Q?{rwJByCOlCnXe!ri(sr8j0nRyZTR(-AdlUV~tX9nx4>g}EhO>N_~zc9^?5?U<- zh5;tLM4`ZG6cF6GzS+(&x2qA6p_pUL(D0DX&ma-a5=`7?dFT-~q=35d1^VWiP@d}=QWm-bl2Z+-qCyE{)( zI42VNOk2NMYg_rSL8=$u!rx4Wzy+IMA3qkkvAfk$RDR(pd(jm8AHP=a zG@P_N^e=W$q^ebgk^ME(4$Li|!(*ZOO?Os2m)T_s7(pA!wReJf_`AJQ8dQexR@(YS zoIZur>>nN&n~hu!A`4ZJN}*b2wVcUM>qAky5n6Y5J_yaFU?{2v4p)reu>b7deEq z(pY9bb;F19MaAJHpP2_TGva-5wBEf~S%28dlRj+Mza#(#iaJGfcjQrPmIPClzVq78 zY1{5QPz8Of_Hu6HVx56PlHNYqL(S)>0~)|JOYwf_HeWi6qUQ3l=IHZg;2k)_4eO>$i! zX~sxXWF2LhEHhMG5p^$(t!$Tcg|QCCMU<%~jk1lI?9HVtV~Z(EzsL9ct8;#@-}(1^ zp3mp~e3tj;d7g9T%pm(?<;u;|Q{}`a!MP@wh6#((%qG-(t8MDZs|W3wG+SI7_yEqt z`&pl4?W5Q}=vCAUdO?>Y?eo%TDK-Ia*n|+7|BO2*$5M~u_2~y0=sAX_{>iRz6cHU+ z1xHx1zs~)7K;;|^ZXuSwA>0a|93Oz*b$KzXpyc0z^+_7g0nd+0-!dV1(X zr7Pk5ZT^9K3a>h9WP;$W19x4^&b{U3$9aL=5m#i_f-efN*|D?Xpn3@wrI(vdaawrOhFf zVKqE+3kE!3w8WL&PGnv2U6_ohsQ_TVb$%cN76ETG0gX@DTA7YpOHXFS^w*bH5hq9$c*uv=H5fnYJX`_s5Lv_z%a_=^)3PDesj~ zn>yrP>M#PIG(gla;QIjGi9lLm4+)>_p#ejNsJq-zq1go`eifB`TtNZ6xq=`YFe<_) z1m4#{)Qw<*!gjxq+T+~7%YP%l?wAlu(zWHXgJCWPkBo2N2AKvyRnpcebV287gd$}V zU^UaL8D9;)7xewo2?Z9VRk%}uen{Q2Y4i<;`t{vQFOls}C2aXF4pDP}1Fd;Y!L&z@ z;7$YSoNmV4X$A6m^?U7ZBjtYt^5VQnjK5-a=D${CPsG_EBzv2_;jaT5gMg0?@8!cw zJ_u4qyQ7Z(^{9v+kh#a_^KR_RyNKgQNarVD%}JK|Zr2pNg@T~#KTe3r_!5|G4#;_1 zL~2uWM64{zs@M8EXTFtn&ZD9%z#mJI35y)#PWQr4e|+T=c$Efa$KJpZ)`8{2jS*b) zJuE1PG_A)G@`=s5UgL9vy|}`;06SY-MCiU)b0rLa!oD02IAqg_G0(Ipzb)249(XpX z{V=Eh@k}X2+922s4u@sqGC`cK`%orK^+x*kec>+nWNdTU^X?6G$8-}64}AMK1mO5F zR0fW49UzGvF?MIGXVjfd)mj$dP32id!e!1^)u|$H2RQMlk@Q{(L+?Lo23{Q>avrYn*qwlQ_zIZEvE3rj{{>xFWM0NI~qPc+Zb2b-E^lI7H$l%jp3F-q;7Bt!Sgv3A7E%|Hc z<~w?K^c0-Ax4eB`$*P$~J6X416~CvUunGJ@V2$r(cH8l7&$k`lSN4grw2Z68Z-8^GH|WaG|LW+0p4k>xF|`XZkrK+++8HxC`Cj>+9bx z!WmFd^gv@lRZC=1aEC-@H2P%iNBY1~l_PMEfh3P{CFDFCi`|CL1abBJYtCe7IXF9c zZL|JZQ`~m^n=S~_v24Z!5SD!JGaL>DacAou|3RtbTzIzh;2Eih#J8Jq4cA9hfwG!A z$~ck8T5%$#U~Z>8iVKNQV-<{4XT|#&X~7U7RZwCYo<=9aKhgy*oxBTa*~=wZlPR)d z;}cXK%sW(fAUEQ&wJj#Dd*H-aNH^$Tkp=vL`K2o9|&^fI#1GWBC>7G3qK zOTg8SxS-Wd{g!ww{&Mhq#!`VJ->f;ZM)+Ub+bYUWjFRTdB8a^)uV6vy4~oFHt5RF* zH`_n^s0O_uabj1h`;`$bOEwE=bYXg(?NkwZR9cHi|Jv(1|9d4Q&^O3}>=|uS z0&jOSF>4Nzb*$$Q(T`%g*@njuC=-4Mq8!bSS7KLQ=Nh)YR7i15-`eIxE9qkl!3W3? z;R2{P0?&3!d?Fv8;&?U#b9A%+?4iVE49CQ8WqXxA5+^7=nVoC)&0&(#jx5X zi@$_YO3jv?U;tDN(7B@c{^Mv_Q74H%UVg&6Lm)jH)-aYM)QsGp)QV`bBa2g$lWkiF z;x9D?l;@N#5xne(cx!{Gg?hx`i!49>^@U1yV zc{e^YUuqT)A2+Lf?H}2@3R{M#GN3^3^8CkHxmlA+LjG;^^wHrJtr1bx!v*%jB!ZX} zcY(=Q4|I(9@~P&aDQ&-JZ)Y}NHFVSett2kktcr4Zz!(+@5Ci!Xx3}o3 z8tY1@i~OW-=ul~YKP}rv-Ct;MSxG4D{R`%>L4EFom?DT0mh>uqH@e+G1ut?ilfsqP zA{$Sp60myyrKa|$KJ@7F6mz^%x2roba(IG2-|*W#g*7y`1q|}BJ%;yVryIV z#wc1xq(_7lE;7z2*!wLk8E|dYU0la((l9|D%<>j5#nHs*L&sHWwvF}}Vtw-vEKzq~ zZY*{tb(&RiqG&9``6d}JhUDa}$mR-LXFY}(it#GK?iD9CxZaBzOwRVA9xJe+t%T2R7DdVZKjuJ1v0AQkVP5PRru zukRk+@D6Z<%A9^x$Wj?ANdfT`0E+x?9Sw>nJDMbUpn|$aSkl@jg>62$C1J~{J%u*@ zutrGKd=X{5$v2gNpJxv3lJa`M)@-v4e>W_5$x1Qtqv_aAG~5%QWfW*eKT55y&$L=` za`GY$k8BBH?ENwzHot3Z)^ix1Rukpg;=;nk^#LGI_fadc+sb1LZ?>uCT~jGCj-34L zfus^@DM)0+pr$4pIYX^Q{xy$}*D3O!6HDZ$)&9R&Fc5RH?&HqtJqKUIPtRt%aMVB5 zdK#`sgJ1T3zuZ2_YfwA7B<=pSx04dpZ25G?$;*AVWz%BWtr14<*KC_ej{}DhE9OB; zS+9hse2A#}Y1LAltX@?q5EO=(dkdEpTq6S8iBk=5mQwuzmn@e&ep}~hNJlq&cY=)Y zw_P1vtiLtVvo7M@(as}?gF{H<)QoAO>?=xc*<+zTt#L(pXDmLrU|^|FEil8ziS-Z0 z7Jk_V5~%^U}+bXHn$vZh$wBfUgeVhda9DyP%oF^uuvlvH010 zG*`xSONbFR{SLb;O6aS$xG;uD5vn>!=jD9R46GDGYfYM2lr>;H+wi#v0rfYz+H>ln zysTU$k~7B-wgZVw0XYBPoV--6P2RFb+ig~t`JiKwR4CUhXr#x9SFM9OZ!-}C>cCzm z9IPDJ##4!+t@!wh-Y69=!(kSyKy#p=v1By^$|C28->)U` z1as~D6X#FSNUwM=4=~lHGyTq+C*h4?SOI&RF_sU1rV9k#f%K8uV)Rt#3(D%79Vbm= zU6!)u3b9}BkNXT(gtmn!Qx;vZ+u@PM`tGP~6fq^R&_gxI;BMpF(OjA4<&-&@geo9yQD2WZ zl!OS`AO-XG6;*1b+hUJkSJ)Znx~&w!c?80Zgu*o$#cLlNGvPMWQ3^AX(>>f??D5?0;;Gt!{(KkT+TA8dauL2;>s+f0V2>R!-}b2ZMhQJ zU4GOThf~R6uX$fTe6d> { + ipcRenderer.on('github-oauth-reply', (event, {access_token}) => { + store.commit('SET_ACCESS_TOKEN', access_token); + store.dispatch('getUser').then(user => { + store.commit('AUTHENTICATED', user); + }); + }); +} diff --git a/src/renderer/components/EditPanel.vue b/src/renderer/components/EditPanel.vue new file mode 100644 index 0000000..5a95c69 --- /dev/null +++ b/src/renderer/components/EditPanel.vue @@ -0,0 +1,194 @@ + + + + + diff --git a/src/renderer/components/LandingPage.vue b/src/renderer/components/LandingPage.vue new file mode 100644 index 0000000..6ab4951 --- /dev/null +++ b/src/renderer/components/LandingPage.vue @@ -0,0 +1,267 @@ + + + + + diff --git a/src/renderer/components/LoginPanel.vue b/src/renderer/components/LoginPanel.vue new file mode 100644 index 0000000..7b2d6b1 --- /dev/null +++ b/src/renderer/components/LoginPanel.vue @@ -0,0 +1,112 @@ + + + + + diff --git a/src/renderer/components/Menu.vue b/src/renderer/components/Menu.vue new file mode 100644 index 0000000..71022b8 --- /dev/null +++ b/src/renderer/components/Menu.vue @@ -0,0 +1,248 @@ + + + + + diff --git a/src/renderer/components/PreviewPanel.vue b/src/renderer/components/PreviewPanel.vue new file mode 100644 index 0000000..a767af6 --- /dev/null +++ b/src/renderer/components/PreviewPanel.vue @@ -0,0 +1,169 @@ + + + + + diff --git a/src/renderer/components/SettingPanel.vue b/src/renderer/components/SettingPanel.vue new file mode 100644 index 0000000..f2f1b85 --- /dev/null +++ b/src/renderer/components/SettingPanel.vue @@ -0,0 +1,78 @@ + + + + + + diff --git a/src/renderer/components/WelcomePanel.vue b/src/renderer/components/WelcomePanel.vue new file mode 100644 index 0000000..b2c94d7 --- /dev/null +++ b/src/renderer/components/WelcomePanel.vue @@ -0,0 +1,81 @@ + + + + + + + diff --git a/src/renderer/datastore.js b/src/renderer/datastore.js new file mode 100644 index 0000000..12b29af --- /dev/null +++ b/src/renderer/datastore.js @@ -0,0 +1,10 @@ +import Datastore from 'nedb' +import path from 'path' +import { remote } from 'electron' + +let db = new Datastore({ + autoload: true, + filename: path.join(remote.app.getPath('userData'), '/data.db') +}) + +export default db \ No newline at end of file diff --git a/src/renderer/main.js b/src/renderer/main.js new file mode 100644 index 0000000..9b44d8d --- /dev/null +++ b/src/renderer/main.js @@ -0,0 +1,51 @@ +import Vue from 'vue' +import axios from 'axios' + +import App from './App' +import router from './router' +import store from './store' +import db from './datastore' + +import ElementUI from 'element-ui' +import 'element-ui/lib/theme-chalk/index.css' + +import {init as initAuth} from './auth'; + + +if (!process.env.IS_WEB) Vue.use(require('vue-electron')) +Vue.http = Vue.prototype.$http = axios +Vue.config.productionTip = false +Vue.prototype.$db = db + + + +Vue.use(ElementUI) + +Vue.directive('focus', { + inserted: function (el) { + el.focus(); + }, + update: function (el) { + Vue.nextTick(function() { + el.focus(); + }) + } +}) + +store.dispatch('initApp').then(() => { + const app = new Vue({ + components: { App }, + router, + store, + template: '' + }).$mount('#app') + + + initAuth(store); +}, (err) => { + console.log('Error wile initializing', err); + // TODO: Warn user but should not occur... +}); + + +// db.insert({"attributes":{"title":"Just hack'n","description":"Nothing to see here","tags":["cat","dog","bat"],"created":1518190381578},"body":"\nCreated at 1518190381578","frontmatter":"title: Just hack'n\ndescription: Nothing to see here\ntags: [ 'cat', 'dog', 'bat' ]\ncreated: 1518190381578"}) \ No newline at end of file diff --git a/src/renderer/router/index.js b/src/renderer/router/index.js new file mode 100644 index 0000000..3c9e078 --- /dev/null +++ b/src/renderer/router/index.js @@ -0,0 +1,18 @@ +import Vue from 'vue' +import Router from 'vue-router' + +Vue.use(Router) + +export default new Router({ + routes: [ + { + path: '/', + name: 'landing-page', + component: require('@/components/LandingPage').default + }, + { + path: '*', + redirect: '/' + } + ] +}) diff --git a/src/renderer/store/actions.js b/src/renderer/store/actions.js new file mode 100644 index 0000000..b0f4183 --- /dev/null +++ b/src/renderer/store/actions.js @@ -0,0 +1,412 @@ +import * as types from './mutation-types' +import * as axios from 'axios'; +import { ipcRenderer } from 'electron'; +import marked from 'marked' +import _ from 'underscore' +import moment from 'moment' + +const md = (file) => { + + if (file.filename.indexOf(".md") > -1) { + return marked(file.raw_content) + } else { + const format_raw_content = "```\n" + file.raw_content + "\n```" + return marked(format_raw_content) + } + +} + + +const getAxiosClient = (state) => { + return axios.create({ + baseURL: state.server.url, + headers: { + 'Authorization': 'token ' + state.session.access_token + }, + responseType: 'json' + }); +} + +export const getToken = ({ commit }) => { + ipcRenderer.send('github-oauth', 'getToken'); +}; + +export const logout = ({ commit }) => { + return new Promise(resolve => { + commit(types.REMOVE_ACCESS_TOKEN); + commit(types.INIT_SESSION); + commit(types.REMOVE_USER); + resolve(); + }); +}; + +export const getUser = ({ commit, state }) => { + return new Promise((resolve, reject) => { + getAxiosClient(state) + .get(`/user`) + .then(response => { + commit(types.SET_CONNECTION_ERROR, false); + commit(types.SET_USER, response.data); + resolve(response.data); + }, err => { + commit(types.SET_CONNECTION_ERROR, true); + //commit(types.SET_USER, err); + reject(err); + }); + }); +}; + +export const getGist = async function({ commit, state }) { + + let response = await getAxiosClient(state).get(`/users/${state.session.user.login}/gists`) + let gists = response.data + let gists_in_state = state.gists + let enhanced_gists = {} + const time = moment().format() + for (let i = 0; i < gists.length; i++) { + let id = gists[i].id + enhanced_gists[id] = await enhanceGist({ + commit, + state + }, gists[i]) + enhanced_gists[id].syncType = "sync" + enhanced_gists[id].edit_at = time + enhanced_gists[id].sync_at = time + + } + await commit(types.SET_GISTS, enhanced_gists); + await commit(types.SET_GETTING_GIST_STATE, false) + return enhanced_gists +} + +export const postLocalGist = async function({ + commit, + state +}, gist) { + gist.syncType = "post" + gist.id = "Local-" + new Date().getTime(); + gist.edit_at = moment().format() + for (let f in gist.files) { + let value = gist.files[f]; + if (value && value.raw_content) { + gist.files[f].html_content = md(value) + if (f !== value.filename) { + let value = gist.files[f]; + gist.files[value.filename] = gist.files[f] + gist.files = _.omit(gist.files, f) + }; + } else { + if (f.indexOf("@new-") > -1) gist.files = _.omit(gist.files, f) + else gist.files[f] = null + } + } + + await commit(types.UPDATE_GIST, gist); + await commit(types.SET_CURRENTGIST, gist.id); +} + +export const patchLocalGist = async function({ + commit, + state +}, gist) { + + gist.syncType = "patch" + gist.edit_at = moment().format() + for (let f in gist.files) { + let value = gist.files[f]; + if (value && value.raw_content) { + gist.files[f].html_content = md(value) + if (f !== value.filename) { + let value = gist.files[f]; + gist.files[value.filename] = gist.files[f] + gist.files = _.omit(gist.files, f) + }; + } else { + if (f.indexOf("@new-") > -1) gist.files = _.omit(gist.files, f) + else gist.files[f] = null + } + } + + await commit(types.UPDATE_GIST, gist); + await commit(types.SET_CURRENTGIST, gist.id); + +} + +export const deleteLocalGist = async function({ + commit, + state +}, id) { + await commit(types.SET_CURRENTGIST, -1); + if (id.indexOf("Local") == -1) + await commit(types.ADD_DELETE_TASK, id); + await commit(types.REMOVE_GIST, id) + return id +}; + +export const syncToGithub = async function({ commit, state }) { + + commit(types.SET_CONNECTION_ERROR, false); + + + try { + + let deleteTask = state.delete_task + for (let i = 0; i < deleteTask.length; i++) { + + let res = await deleteGist({ + commit, + state + }, deleteTask[i]) + + console.log(res) + + if (res.status == "404") await commit(types.CLEAR_DELETE_TASK, deleteTask[i]) + + } + + //await commit(types.CLEAR_DELETE_TASK) + + + let gists = state.gists + let time = moment().format() + for (let key in gists) { + + let gist = gists[key] + + if (!gist.sync_at || moment(gist.edit_at).diff(moment(gist.sync_at)) > 0) { + let response; + if (gist.id.indexOf('Local') > -1) { + + response = await postGist({ + commit, + state + }, gist) + } else { + + response = await patchGist({ + commit, + state + }, gist) + } + // if (response.status == '200') { + // await commit(types.SYNC_GIST, { id: gist.id, time }) + // } + } + + await commit(types.SET_SYNC_TIME, time) + + } + return true + + } catch (e) { + commit(types.SET_CONNECTION_ERROR, true); + } + +}; + +export const patchGist = async function({ + commit, + state +}, gist) { + + let time = moment().format() + + let request = { + description: JSON.stringify(gist.description), + files: {} + }; + + for (let f in gist.files) { + + let value = gist.files[f]; + + if (value && value.raw_content) { + + request.files[value.filename] = { + filename: value.filename, + content: "" + value.raw_content + }; + + } else { + + request.files[f] = null + + } + + } + + let raw_response = await getAxiosClient(state).patch(`/gists/${gist.id}`, request) + await commit(types.SYNC_GIST, { id: gist.id, time }) + await commit(types.REMOVE_NULL_FILE, gist.id); + // let enhanced_response = await await enhanceGist({ commit, state + // },raw_response.data) await commit(types.UPDATE_GIST, enhanced_response); + // await commit(types.SET_CURRENTGIST, enhanced_response.id); + return raw_response +}; + +export const getSingleGist = ({ + commit, + state +}, url) => { + return new Promise((resolve, reject) => { + axios + .get(url) + .then(response => { + resolve(response.data); + }, err => { + console.log(err); + reject(err); + }); + }); +}; + +export const postGist = async function({ + commit, + state +}, gist) { + + let time = moment().format() + + + let request = { + description: JSON.stringify(gist.description), + files: {}, + public: false + }; + + for (let f in gist.files) { + + let value = gist.files[f]; + + if (value && value.raw_content) { + + request.files[value.filename] = { + filename: value.filename, + content: "" + value.raw_content + }; + + } + + } + let post_response = await getAxiosClient(state).post(`/gists`, request) + // let enhanced_response = await await enhanceGist({ commit, state }, + // post_response.data) + let old_id = gist.id + let new_gist = post_response.data + new_gist.description = gist.description + new_gist.files = gist.files + await commit(types.SYNC_GIST, { id: gist.id, time }) + await commit(types.UPDATE_GIST, new_gist); + await commit(types.REMOVE_GIST, old_id); + return post_response +}; + +export const deleteGist = async function({ + commit, + state +}, id) { + try { + let raw_response = await getAxiosClient(state).delete(`/gists/${id}`) + await commit(types.SET_CURRENTGIST, -1); + await commit(types.REMOVE_GIST, id) + return raw_response + + } catch (e) { + + return e.response + + } + +}; + +const downloadGistFiles = (files) => { + + let promiseArr = Object + .values(files) + .map((f) => { + return new Promise((resolve, reject) => { + if (f.raw_content) { + resolve(f) + } else { + axios + .get(f.raw_url) + .then(response => { + f.raw_content = response.data + f.html_content = md(f) + resolve(f); + }, err => { + console.log(err); + reject(err); + }); + } + }) + }) + return Promise + .all(promiseArr) + .then((arr) => { + let obj = {} + arr.forEach((a) => { + obj[a.filename] = a + }) + return obj + }) + +} + +export const getSingleGistContent = ({ + commit, + state +}, files) => { + + return downloadGistFiles(files) + +}; + +export const initApp = ({ commit, state }) => { + return new Promise(resolve => { + if (!state.session.access_token) { + return resolve(); + } + + getUser({ commit, state }).then(user => { + commit(types.SET_USER, user); + commit(types.AUTHENTICATED, user); + resolve(); + }, err => { + console.log('Error while getting user from github, user will have to login', err); + resolve(); + }); + }); +}; + +export const setCurrentGist = ({ + commit, + state +}, gist) => { + return new Promise((resolve, reject) => { + commit(types.SET_CURRENTGIST, gist) + resolve(gist) + }); +}; + +export const enhanceGist = ({ + commit, + state +}, gist) => { + return downloadGistFiles(gist.files).then((filesWithContent) => { + if (Object.prototype.toString.call(gist.description) === "[object String]") { + try { + gist.description = JSON.parse(gist.description); + } catch (e) { + gist.description = { + title: gist.id, + tags: "", + description: gist.description + }; + } + } + gist.files = filesWithContent + //commit(types.UPDATE_GIST, {id:idx,gist:gist}) + return gist + }) +}; \ No newline at end of file diff --git a/src/renderer/store/getters.js b/src/renderer/store/getters.js new file mode 100644 index 0000000..a2f9e06 --- /dev/null +++ b/src/renderer/store/getters.js @@ -0,0 +1,23 @@ +export const isAuthenticated = (state) => { + return !!state.session.access_token; +}; + +export const username = (state) => { + return state.session.user.login ? state.session.user.login : ''; +} + +export const avatarUrl = (state) => { + return state.session.user.avatar_url ? state.session.user.avatar_url:require('../assets/github.png'); +} + +export const onAuthenticated = (state) => { + return state.session.ready; +} + +export const accessToken = (state) => { + return state.session.access_token; +} + +export const gists = (state) => { + return state.gists; +} \ No newline at end of file diff --git a/src/renderer/store/index.js b/src/renderer/store/index.js new file mode 100644 index 0000000..056aeb7 --- /dev/null +++ b/src/renderer/store/index.js @@ -0,0 +1,72 @@ +import Vue from 'vue'; +import Vuex from 'vuex'; +import * as actions from './actions'; +import * as getters from './getters'; +import * as types from './mutation-types'; +import plugins from './plugins'; +import mutations from './mutations'; + +import moment from 'moment' + +// let state = { +// server: { +// url: 'https://api.github.com' +// }, +// session: { +// access_token: window.localStorage.getItem('access_token'), +// ready: false, +// authenticated: false, +// user: {} +// }, +// gists:{}, +// gists:{}, +// currentGist:-1, +// edit_mode: false, +// update_mode:true, +// getting_gist_state:true +// }; + + +let state; + + + +if(localStorage.getItem('store')) { + state = JSON.parse(localStorage.getItem('store')) +} else { + state = { + server: { + url: 'https://api.github.com' + }, + session: { + access_token: window.localStorage.getItem('access_token'), + ready: false, + authenticated: false, + user: {} + }, + delete_task:[], + gists:{}, + sync_time: moment().toString(), + currentGist:-1, + edit_mode: false, + update_mode:true, + getting_gist_state:true, + connection_error:false + }; +} + +state.edit_mode = false +state.currentGist = -1, + +mutations[types.INIT_SESSION](state); + +Vue.use(Vuex); + +export default new Vuex.Store({ + state, + actions, + getters, + mutations, + plugins, + strict: process.env.NODE_ENV !== 'production' +}) \ No newline at end of file diff --git a/src/renderer/store/mutation-types.js b/src/renderer/store/mutation-types.js new file mode 100644 index 0000000..fce6cbb --- /dev/null +++ b/src/renderer/store/mutation-types.js @@ -0,0 +1,20 @@ +export const SET_USER = 'SET_USER'; +export const SET_GISTS = 'SET_GISTS'; +export const SET_CURRENTGIST = 'SET_CURRENTGIST'; +export const UPDATE_GIST = 'UPDATE_GIST'; +export const SET_ACCESS_TOKEN = 'SET_ACCESS_TOKEN'; +export const REMOVE_ACCESS_TOKEN = 'REMOVE_ACCESS_TOKEN'; +export const REMOVE_USER = 'REMOVE_USER'; +export const REMOVE_GIST = 'REMOVE_GIST'; +export const AUTHENTICATED = 'AUTHENTICATED'; +export const INIT_SESSION = 'INIT_SESSION'; +export const SET_EDIT_MODE = 'SET_EDIT_MODE'; +export const SET_UPDATE_MODE = 'SET_UPDATE_MODE'; +export const SET_GETTING_GIST_STATE = 'SET_GETTING_GIST_STATE' +export const ADD_DELETE_TASK = 'ADD_DELETE_TASK' +export const SYNC_GIST = 'SYNC_GIST' +export const CLEAR_DELETE_TASK = 'CLEAR_DELETE_TASK' +export const DELETE_FILE = 'DELETE_FILE' +export const REMOVE_NULL_FILE = 'REMOVE_NULL_FILE' +export const SET_SYNC_TIME = 'SET_SYNC_TIME' +export const SET_CONNECTION_ERROR = 'SET_CONNECTION_ERROR' diff --git a/src/renderer/store/mutations.js b/src/renderer/store/mutations.js new file mode 100644 index 0000000..583c548 --- /dev/null +++ b/src/renderer/store/mutations.js @@ -0,0 +1,106 @@ +import * as types from './mutation-types'; +import _ from 'underscore' + +export default { + [types.SET_USER](state, user) { + state.session.user = user; + }, + + [types.SET_GISTS](state, gists) { + state.gists = gists + }, + + [types.SET_GETTING_GIST_STATE](state, value) { + state.getting_gist_state = value + }, + + [types.REMOVE_GIST](state, id) { + state.gists = _.omit(state.gists, id); + }, + + [types.SET_CURRENTGIST](state, gist) { + state.currentGist = gist + }, + + [types.SET_ACCESS_TOKEN](state, token) { + state.session.access_token = token; + }, + + [types.REMOVE_ACCESS_TOKEN](state) { + state.session.access_token = false; + }, + + [types.UPDATE_GIST](state, gist) { + state.gists = { + + ...state.gists, + [gist.id]: gist + + } + }, + + [types.SYNC_GIST](state, {id,time}) { + state.gists[id].syncType = "sync" + state.gists[id].sync_at = time + }, + + [types.ADD_DELETE_TASK](state, id) { + state.delete_task.push(id) + }, + + [types.CLEAR_DELETE_TASK](state,id) { + state.delete_task = _.omit(state.delete_task,id) + }, + + [types.DELETE_FILE](state,{id,filename}) { + if(!state.gists[id].delete_files){ + state.gists[id].delete_files = [] + } + state.gists[id].delete_files.push(filename) + }, + + [types.REMOVE_NULL_FILE](state,id) { + for(let f in state.gists[id].files){ + let value = state.gists[id].files[f] + if(!value){ + state.gists[id].files = _.omit(state.gists[id].files, f); + } + } + }, + + [types.SET_SYNC_TIME](state,time) { + state.sync_time = time + }, + + [types.REMOVE_USER](state) { + state.session.user = {}; + }, + + [types.SET_EDIT_MODE](state, value) { + state.edit_mode = value; + }, + + [types.SET_CONNECTION_ERROR](state, value) { + state.connection_error = value; + }, + + [types.SET_UPDATE_MODE](state, value) { + state.update_mode = value; + }, + + [types.AUTHENTICATED](state) { + state + .session + .authenticated(); + }, + + [types.INIT_SESSION](state) { + let authenticated; + const authPromise = new Promise((resolve, reject) => { + authenticated = resolve; + }); + + state.session.ready = authPromise; + state.session.authenticated = authenticated; + } +} \ No newline at end of file diff --git a/src/renderer/store/plugins.js b/src/renderer/store/plugins.js new file mode 100644 index 0000000..f81e3da --- /dev/null +++ b/src/renderer/store/plugins.js @@ -0,0 +1,25 @@ +import createLogger from 'vuex/dist/logger'; +//import db from '../datastore' + +const localStoragePlugin = store => { + store.subscribe((mutation, { session }) => { + if (session.access_token) { + window.localStorage.setItem('access_token', session.access_token); + } else { + window.localStorage.removeItem('access_token'); + } + }) +} + +const persistPlugin = store => { + store.subscribe((mutation, state) => { + // Store the state object as a JSON string + + localStorage.setItem('store', JSON.stringify(state)); + }); +} + + +export default process.env.NODE_ENV !== 'production' + ? [createLogger(), localStoragePlugin,persistPlugin] + : [localStoragePlugin,persistPlugin] \ No newline at end of file diff --git a/static/.gitkeep b/static/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/test/.eslintrc b/test/.eslintrc new file mode 100644 index 0000000..3f26d66 --- /dev/null +++ b/test/.eslintrc @@ -0,0 +1,11 @@ +{ + "env": { + "mocha": true + }, + "globals": { + "assert": true, + "expect": true, + "should": true, + "__static": true + } +} diff --git a/test/e2e/index.js b/test/e2e/index.js new file mode 100644 index 0000000..af4b0e7 --- /dev/null +++ b/test/e2e/index.js @@ -0,0 +1,18 @@ +'use strict' + +// Set BABEL_ENV to use proper env config +process.env.BABEL_ENV = 'test' + +// Enable use of ES6+ on required files +require('babel-register')({ + ignore: /node_modules/ +}) + +// Attach Chai APIs to global scope +const { expect, should, assert } = require('chai') +global.expect = expect +global.should = should +global.assert = assert + +// Require all JS files in `./specs` for Mocha to consume +require('require-dir')('./specs') diff --git a/test/e2e/specs/Launch.spec.js b/test/e2e/specs/Launch.spec.js new file mode 100644 index 0000000..57d0953 --- /dev/null +++ b/test/e2e/specs/Launch.spec.js @@ -0,0 +1,13 @@ +import utils from '../utils' + +describe('Launch', function () { + beforeEach(utils.beforeEach) + afterEach(utils.afterEach) + + it('shows the proper application title', function () { + return this.app.client.getTitle() + .then(title => { + expect(title).to.equal('vue') + }) + }) +}) diff --git a/test/e2e/utils.js b/test/e2e/utils.js new file mode 100644 index 0000000..7d4e0da --- /dev/null +++ b/test/e2e/utils.js @@ -0,0 +1,23 @@ +import electron from 'electron' +import { Application } from 'spectron' + +export default { + afterEach () { + this.timeout(10000) + + if (this.app && this.app.isRunning()) { + return this.app.stop() + } + }, + beforeEach () { + this.timeout(10000) + this.app = new Application({ + path: electron, + args: ['dist/electron/main.js'], + startTimeout: 10000, + waitTimeout: 10000 + }) + + return this.app.start() + } +} diff --git a/test/unit/index.js b/test/unit/index.js new file mode 100644 index 0000000..f07be98 --- /dev/null +++ b/test/unit/index.js @@ -0,0 +1,13 @@ +import Vue from 'vue' +Vue.config.devtools = false +Vue.config.productionTip = false + +// require all test files (files that ends with .spec.js) +const testsContext = require.context('./specs', true, /\.spec$/) +testsContext.keys().forEach(testsContext) + +// require all src files except main.js for coverage. +// you can also change this to match only the subset of files that +// you want coverage for. +const srcContext = require.context('../../src/renderer', true, /^\.\/(?!main(\.js)?$)/) +srcContext.keys().forEach(srcContext) diff --git a/test/unit/karma.conf.js b/test/unit/karma.conf.js new file mode 100644 index 0000000..6204011 --- /dev/null +++ b/test/unit/karma.conf.js @@ -0,0 +1,62 @@ +'use strict' + +const path = require('path') +const merge = require('webpack-merge') +const webpack = require('webpack') + +const baseConfig = require('../../.electron-vue/webpack.renderer.config') +const projectRoot = path.resolve(__dirname, '../../src/renderer') + +// Set BABEL_ENV to use proper preset config +process.env.BABEL_ENV = 'test' + +let webpackConfig = merge(baseConfig, { + devtool: '#inline-source-map', + plugins: [ + new webpack.DefinePlugin({ + 'process.env.NODE_ENV': '"testing"' + }) + ] +}) + +// don't treat dependencies as externals +delete webpackConfig.entry +delete webpackConfig.externals +delete webpackConfig.output.libraryTarget + +// apply vue option to apply isparta-loader on js +webpackConfig.module.rules + .find(rule => rule.use.loader === 'vue-loader').use.options.loaders.js = 'babel-loader' + +module.exports = config => { + config.set({ + browsers: ['visibleElectron'], + client: { + useIframe: false + }, + coverageReporter: { + dir: './coverage', + reporters: [ + { type: 'lcov', subdir: '.' }, + { type: 'text-summary' } + ] + }, + customLaunchers: { + 'visibleElectron': { + base: 'Electron', + flags: ['--show'] + } + }, + frameworks: ['mocha', 'chai'], + files: ['./index.js'], + preprocessors: { + './index.js': ['webpack', 'sourcemap'] + }, + reporters: ['spec', 'coverage'], + singleRun: true, + webpack: webpackConfig, + webpackMiddleware: { + noInfo: true + } + }) +} diff --git a/test/unit/specs/LandingPage.spec.js b/test/unit/specs/LandingPage.spec.js new file mode 100644 index 0000000..7cea66f --- /dev/null +++ b/test/unit/specs/LandingPage.spec.js @@ -0,0 +1,13 @@ +import Vue from 'vue' +import LandingPage from '@/components/LandingPage' + +describe('LandingPage.vue', () => { + it('should render correct contents', () => { + const vm = new Vue({ + el: document.createElement('div'), + render: h => h(LandingPage) + }).$mount() + + expect(vm.$el.querySelector('.title').textContent).to.contain('Welcome to your new project!') + }) +}) diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..52e9993 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,9004 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"7zip-bin@~3.0.0": + version "3.0.0" + resolved "http://registry.npm.taobao.org/7zip-bin/download/7zip-bin-3.0.0.tgz#17416dc542f41511b26a9667b92847d75ef150fe" + +"7zip@0.0.6": + version "0.0.6" + resolved "http://registry.npm.taobao.org/7zip/download/7zip-0.0.6.tgz#9cafb171af82329490353b4816f03347aa150a30" + +"@types/node@^8.0.24": + version "8.9.1" + resolved "http://registry.npm.taobao.org/@types/node/download/@types/node-8.9.1.tgz#5a329d73a97f3c5a626dfe0ed8c0b831fee5357a" + +abbrev@1: + version "1.1.1" + resolved "http://registry.npm.taobao.org/abbrev/download/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + +abbrev@1.0.x: + version "1.0.9" + resolved "http://registry.npm.taobao.org/abbrev/download/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135" + +accepts@1.3.3: + version "1.3.3" + resolved "http://registry.npm.taobao.org/accepts/download/accepts-1.3.3.tgz#c3ca7434938648c3e0d9c1e328dd68b622c284ca" + dependencies: + mime-types "~2.1.11" + negotiator "0.6.1" + +accepts@~1.3.4: + version "1.3.4" + resolved "http://registry.npm.taobao.org/accepts/download/accepts-1.3.4.tgz#86246758c7dd6d21a6474ff084a4740ec05eb21f" + dependencies: + mime-types "~2.1.16" + negotiator "0.6.1" + +accessibility-developer-tools@^2.11.0: + version "2.12.0" + resolved "http://registry.npm.taobao.org/accessibility-developer-tools/download/accessibility-developer-tools-2.12.0.tgz#3da0cce9d6ec6373964b84f35db7cfc3df7ab514" + +acorn-dynamic-import@^2.0.0: + version "2.0.2" + resolved "http://registry.npm.taobao.org/acorn-dynamic-import/download/acorn-dynamic-import-2.0.2.tgz#c752bd210bef679501b6c6cb7fc84f8f47158cc4" + dependencies: + acorn "^4.0.3" + +acorn-jsx@^3.0.0: + version "3.0.1" + resolved "http://registry.npm.taobao.org/acorn-jsx/download/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" + dependencies: + acorn "^3.0.4" + +acorn@^3.0.4: + version "3.3.0" + resolved "http://registry.npm.taobao.org/acorn/download/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" + +acorn@^4.0.3: + version "4.0.13" + resolved "http://registry.npm.taobao.org/acorn/download/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" + +acorn@^5.0.0, acorn@^5.4.0: + version "5.4.1" + resolved "http://registry.npm.taobao.org/acorn/download/acorn-5.4.1.tgz#fdc58d9d17f4a4e98d102ded826a9b9759125102" + +after@0.8.2: + version "0.8.2" + resolved "http://registry.npm.taobao.org/after/download/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" + +ajv-keywords@^2.0.0, ajv-keywords@^2.1.0: + version "2.1.1" + resolved "http://registry.npm.taobao.org/ajv-keywords/download/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762" + +ajv@^4.9.1: + version "4.11.8" + resolved "http://registry.npm.taobao.org/ajv/download/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" + dependencies: + co "^4.6.0" + json-stable-stringify "^1.0.1" + +ajv@^5.0.0, ajv@^5.1.0, ajv@^5.1.5, ajv@^5.2.3, ajv@^5.3.0, ajv@^5.5.0: + version "5.5.2" + resolved "http://registry.npm.taobao.org/ajv/download/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" + dependencies: + co "^4.6.0" + fast-deep-equal "^1.0.0" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.3.0" + +align-text@^0.1.1, align-text@^0.1.3: + version "0.1.4" + resolved "http://registry.npm.taobao.org/align-text/download/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" + dependencies: + kind-of "^3.0.2" + longest "^1.0.1" + repeat-string "^1.5.2" + +alphanum-sort@^1.0.1, alphanum-sort@^1.0.2: + version "1.0.2" + resolved "http://registry.npm.taobao.org/alphanum-sort/download/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" + +amdefine@>=0.0.4: + version "1.0.1" + resolved "http://registry.npm.taobao.org/amdefine/download/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" + +ansi-align@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/ansi-align/download/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f" + dependencies: + string-width "^2.0.0" + +ansi-escapes@^1.0.0: + version "1.4.0" + resolved "http://registry.npm.taobao.org/ansi-escapes/download/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" + +ansi-escapes@^3.0.0: + version "3.0.0" + resolved "http://registry.npm.taobao.org/ansi-escapes/download/ansi-escapes-3.0.0.tgz#ec3e8b4e9f8064fc02c3ac9b65f1c275bda8ef92" + +ansi-html@0.0.7: + version "0.0.7" + resolved "http://registry.npm.taobao.org/ansi-html/download/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" + +ansi-regex@^1.0.0, ansi-regex@^1.1.0: + version "1.1.1" + resolved "http://registry.npm.taobao.org/ansi-regex/download/ansi-regex-1.1.1.tgz#41c847194646375e6a1a5d10c3ca054ef9fc980d" + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "http://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + +ansi-regex@^3.0.0: + version "3.0.0" + resolved "http://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + +ansi-styles@^2.0.1, ansi-styles@^2.2.1: + version "2.2.1" + resolved "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + +ansi-styles@^3.1.0: + version "3.2.0" + resolved "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.0.tgz#c159b8d5be0f9e5a6f346dab94f16ce022161b88" + dependencies: + color-convert "^1.9.0" + +anymatch@^1.3.0: + version "1.3.2" + resolved "http://registry.npm.taobao.org/anymatch/download/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" + dependencies: + micromatch "^2.1.5" + normalize-path "^2.0.0" + +anymatch@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/anymatch/download/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + dependencies: + micromatch "^3.1.4" + normalize-path "^2.1.1" + +aproba@^1.0.3, aproba@^1.1.1: + version "1.2.0" + resolved "http://registry.npm.taobao.org/aproba/download/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + +archiver-utils@^1.3.0: + version "1.3.0" + resolved "http://registry.npm.taobao.org/archiver-utils/download/archiver-utils-1.3.0.tgz#e50b4c09c70bf3d680e32ff1b7994e9f9d895174" + dependencies: + glob "^7.0.0" + graceful-fs "^4.1.0" + lazystream "^1.0.0" + lodash "^4.8.0" + normalize-path "^2.0.0" + readable-stream "^2.0.0" + +archiver@~2.1.0: + version "2.1.1" + resolved "http://registry.npm.taobao.org/archiver/download/archiver-2.1.1.tgz#ff662b4a78201494a3ee544d3a33fe7496509ebc" + dependencies: + archiver-utils "^1.3.0" + async "^2.0.0" + buffer-crc32 "^0.2.1" + glob "^7.0.0" + lodash "^4.8.0" + readable-stream "^2.0.0" + tar-stream "^1.5.0" + zip-stream "^1.2.0" + +are-we-there-yet@~1.1.2: + version "1.1.4" + resolved "http://registry.npm.taobao.org/are-we-there-yet/download/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d" + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.6" + +argparse@^1.0.7: + version "1.0.9" + resolved "http://registry.npm.taobao.org/argparse/download/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86" + dependencies: + sprintf-js "~1.0.2" + +arr-diff@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/arr-diff/download/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" + dependencies: + arr-flatten "^1.0.1" + +arr-diff@^4.0.0: + version "4.0.0" + resolved "http://registry.npm.taobao.org/arr-diff/download/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + +arr-flatten@^1.0.1, arr-flatten@^1.1.0: + version "1.1.0" + resolved "http://registry.npm.taobao.org/arr-flatten/download/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + +arr-union@^3.1.0: + version "3.1.0" + resolved "http://registry.npm.taobao.org/arr-union/download/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + +array-find-index@^1.0.1: + version "1.0.2" + resolved "http://registry.npm.taobao.org/array-find-index/download/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" + +array-flatten@1.1.1: + version "1.1.1" + resolved "http://registry.npm.taobao.org/array-flatten/download/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + +array-flatten@^2.1.0: + version "2.1.1" + resolved "http://registry.npm.taobao.org/array-flatten/download/array-flatten-2.1.1.tgz#426bb9da84090c1838d812c8150af20a8331e296" + +array-includes@^3.0.3: + version "3.0.3" + resolved "http://registry.npm.taobao.org/array-includes/download/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.7.0" + +array-slice@^0.2.3: + version "0.2.3" + resolved "http://registry.npm.taobao.org/array-slice/download/array-slice-0.2.3.tgz#dd3cfb80ed7973a75117cdac69b0b99ec86186f5" + +array-union@^1.0.1: + version "1.0.2" + resolved "http://registry.npm.taobao.org/array-union/download/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + dependencies: + array-uniq "^1.0.1" + +array-uniq@^1.0.1: + version "1.0.3" + resolved "http://registry.npm.taobao.org/array-uniq/download/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + +array-unique@^0.2.1: + version "0.2.1" + resolved "http://registry.npm.taobao.org/array-unique/download/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" + +array-unique@^0.3.2: + version "0.3.2" + resolved "http://registry.npm.taobao.org/array-unique/download/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + +arraybuffer.slice@0.0.6: + version "0.0.6" + resolved "http://registry.npm.taobao.org/arraybuffer.slice/download/arraybuffer.slice-0.0.6.tgz#f33b2159f0532a3f3107a272c0ccfbd1ad2979ca" + +arrify@^1.0.0, arrify@^1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/arrify/download/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + +asar-integrity@0.2.4: + version "0.2.4" + resolved "http://registry.npm.taobao.org/asar-integrity/download/asar-integrity-0.2.4.tgz#b7867c9720e08c461d12bc42f005c239af701733" + dependencies: + bluebird-lst "^1.0.5" + fs-extra-p "^4.5.0" + +asn1.js@^4.0.0: + version "4.9.2" + resolved "http://registry.npm.taobao.org/asn1.js/download/asn1.js-4.9.2.tgz#8117ef4f7ed87cd8f89044b5bff97ac243a16c9a" + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +asn1@~0.2.3: + version "0.2.3" + resolved "http://registry.npm.taobao.org/asn1/download/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/assert-plus/download/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + +assert-plus@^0.2.0: + version "0.2.0" + resolved "http://registry.npm.taobao.org/assert-plus/download/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" + +assert@^1.1.1: + version "1.4.1" + resolved "http://registry.npm.taobao.org/assert/download/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" + dependencies: + util "0.10.3" + +assertion-error@^1.0.1: + version "1.1.0" + resolved "http://registry.npm.taobao.org/assertion-error/download/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" + +assign-symbols@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/assign-symbols/download/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + +ast-types@0.9.6: + version "0.9.6" + resolved "http://registry.npm.taobao.org/ast-types/download/ast-types-0.9.6.tgz#102c9e9e9005d3e7e3829bf0c4fa24ee862ee9b9" + +async-each@^1.0.0: + version "1.0.1" + resolved "http://registry.npm.taobao.org/async-each/download/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" + +async-exit-hook@^2.0.1: + version "2.0.1" + resolved "http://registry.npm.taobao.org/async-exit-hook/download/async-exit-hook-2.0.1.tgz#8bd8b024b0ec9b1c01cccb9af9db29bd717dfaf3" + +async-foreach@^0.1.3: + version "0.1.3" + resolved "http://registry.npm.taobao.org/async-foreach/download/async-foreach-0.1.3.tgz#36121f845c0578172de419a97dbeb1d16ec34542" + +async-validator@~1.8.1: + version "1.8.2" + resolved "http://registry.npm.taobao.org/async-validator/download/async-validator-1.8.2.tgz#b77597226e96242f8d531c0d46ae295f62422ba4" + dependencies: + babel-runtime "6.x" + +async@0.2.10, async@~0.2.6: + version "0.2.10" + resolved "http://registry.npm.taobao.org/async/download/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1" + +async@1.x, async@^1.4.0, async@^1.5.2: + version "1.5.2" + resolved "http://registry.npm.taobao.org/async/download/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" + +async@^2.0.0, async@^2.1.2, async@^2.1.5, async@^2.4.1: + version "2.6.0" + resolved "http://registry.npm.taobao.org/async/download/async-2.6.0.tgz#61a29abb6fcc026fea77e56d1c6ec53a795951f4" + dependencies: + lodash "^4.14.0" + +async@~0.9.0: + version "0.9.2" + resolved "http://registry.npm.taobao.org/async/download/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" + +asynckit@^0.4.0: + version "0.4.0" + resolved "http://registry.npm.taobao.org/asynckit/download/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + +atob@^2.0.0: + version "2.0.3" + resolved "http://registry.npm.taobao.org/atob/download/atob-2.0.3.tgz#19c7a760473774468f20b2d2d03372ad7d4cbf5d" + +atob@~1.1.0: + version "1.1.3" + resolved "http://registry.npm.taobao.org/atob/download/atob-1.1.3.tgz#95f13629b12c3a51a5d215abdce2aa9f32f80773" + +autoprefixer@^6.3.1: + version "6.7.7" + resolved "http://registry.npm.taobao.org/autoprefixer/download/autoprefixer-6.7.7.tgz#1dbd1c835658e35ce3f9984099db00585c782014" + dependencies: + browserslist "^1.7.6" + caniuse-db "^1.0.30000634" + normalize-range "^0.1.2" + num2fraction "^1.2.2" + postcss "^5.2.16" + postcss-value-parser "^3.2.3" + +aws-sign2@~0.6.0: + version "0.6.0" + resolved "http://registry.npm.taobao.org/aws-sign2/download/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "http://registry.npm.taobao.org/aws-sign2/download/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + +aws4@^1.2.1, aws4@^1.6.0: + version "1.6.0" + resolved "http://registry.npm.taobao.org/aws4/download/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" + +axios@^0.17.1: + version "0.17.1" + resolved "http://registry.npm.taobao.org/axios/download/axios-0.17.1.tgz#2d8e3e5d0bdbd7327f91bc814f5c57660f81824d" + dependencies: + follow-redirects "^1.2.5" + is-buffer "^1.1.5" + +babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: + version "6.26.0" + resolved "http://registry.npm.taobao.org/babel-code-frame/download/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" + dependencies: + chalk "^1.1.3" + esutils "^2.0.2" + js-tokens "^3.0.2" + +babel-core@^6.24.1, babel-core@^6.25.0, babel-core@^6.26.0, babel-core@~6: + version "6.26.0" + resolved "http://registry.npm.taobao.org/babel-core/download/babel-core-6.26.0.tgz#af32f78b31a6fcef119c87b0fd8d9753f03a0bb8" + 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.0" + debug "^2.6.8" + json5 "^0.5.1" + lodash "^4.17.4" + minimatch "^3.0.4" + path-is-absolute "^1.0.1" + private "^0.1.7" + slash "^1.0.0" + source-map "^0.5.6" + +babel-eslint@^7.2.3: + version "7.2.3" + resolved "http://registry.npm.taobao.org/babel-eslint/download/babel-eslint-7.2.3.tgz#b2fe2d80126470f5c19442dc757253a897710827" + dependencies: + babel-code-frame "^6.22.0" + babel-traverse "^6.23.1" + babel-types "^6.23.0" + babylon "^6.17.0" + +babel-generator@^6.18.0, babel-generator@^6.26.0: + version "6.26.1" + resolved "http://registry.npm.taobao.org/babel-generator/download/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" + 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-bindify-decorators@^6.24.1: + version "6.24.1" + resolved "http://registry.npm.taobao.org/babel-helper-bindify-decorators/download/babel-helper-bindify-decorators-6.24.1.tgz#14c19e5f142d7b47f19a52431e52b1ccbc40a330" + dependencies: + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: + version "6.24.1" + resolved "http://registry.npm.taobao.org/babel-helper-builder-binary-assignment-operator-visitor/download/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664" + dependencies: + babel-helper-explode-assignable-expression "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-call-delegate@^6.24.1: + version "6.24.1" + resolved "http://registry.npm.taobao.org/babel-helper-call-delegate/download/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" + 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 "http://registry.npm.taobao.org/babel-helper-define-map/download/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f" + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + lodash "^4.17.4" + +babel-helper-evaluate-path@^0.1.0: + version "0.1.0" + resolved "http://registry.npm.taobao.org/babel-helper-evaluate-path/download/babel-helper-evaluate-path-0.1.0.tgz#95d98c4ea36150483db2e7d3ec9e1954a72629cb" + +babel-helper-explode-assignable-expression@^6.24.1: + version "6.24.1" + resolved "http://registry.npm.taobao.org/babel-helper-explode-assignable-expression/download/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa" + dependencies: + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-explode-class@^6.24.1: + version "6.24.1" + resolved "http://registry.npm.taobao.org/babel-helper-explode-class/download/babel-helper-explode-class-6.24.1.tgz#7dc2a3910dee007056e1e31d640ced3d54eaa9eb" + dependencies: + babel-helper-bindify-decorators "^6.24.1" + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-flip-expressions@^0.1.2: + version "0.1.2" + resolved "http://registry.npm.taobao.org/babel-helper-flip-expressions/download/babel-helper-flip-expressions-0.1.2.tgz#77f6652f9de9c42401d827bd46ebd2109e3ef18a" + +babel-helper-function-name@^6.24.1: + version "6.24.1" + resolved "http://registry.npm.taobao.org/babel-helper-function-name/download/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" + 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 "http://registry.npm.taobao.org/babel-helper-get-function-arity/download/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-hoist-variables@^6.24.1: + version "6.24.1" + resolved "http://registry.npm.taobao.org/babel-helper-hoist-variables/download/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-is-nodes-equiv@^0.0.1: + version "0.0.1" + resolved "http://registry.npm.taobao.org/babel-helper-is-nodes-equiv/download/babel-helper-is-nodes-equiv-0.0.1.tgz#34e9b300b1479ddd98ec77ea0bbe9342dfe39684" + +babel-helper-is-void-0@^0.1.1: + version "0.1.1" + resolved "http://registry.npm.taobao.org/babel-helper-is-void-0/download/babel-helper-is-void-0-0.1.1.tgz#72f21a3abba0bef3837f9174fca731aed9a02888" + +babel-helper-mark-eval-scopes@^0.1.1: + version "0.1.1" + resolved "http://registry.npm.taobao.org/babel-helper-mark-eval-scopes/download/babel-helper-mark-eval-scopes-0.1.1.tgz#4554345edf9f2549427bd2098e530253f8af2992" + +babel-helper-optimise-call-expression@^6.24.1: + version "6.24.1" + resolved "http://registry.npm.taobao.org/babel-helper-optimise-call-expression/download/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-regex@^6.24.1: + version "6.26.0" + resolved "http://registry.npm.taobao.org/babel-helper-regex/download/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72" + 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 "http://registry.npm.taobao.org/babel-helper-remap-async-to-generator/download/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b" + 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-remove-or-void@^0.1.1: + version "0.1.1" + resolved "http://registry.npm.taobao.org/babel-helper-remove-or-void/download/babel-helper-remove-or-void-0.1.1.tgz#9d7e1856dc6fafcb41b283a416730dc1844f66d7" + +babel-helper-replace-supers@^6.24.1: + version "6.24.1" + resolved "http://registry.npm.taobao.org/babel-helper-replace-supers/download/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" + 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-helper-to-multiple-sequence-expressions@^0.1.1: + version "0.1.1" + resolved "http://registry.npm.taobao.org/babel-helper-to-multiple-sequence-expressions/download/babel-helper-to-multiple-sequence-expressions-0.1.1.tgz#5f1b832b39e4acf954e9137f0251395c71196b35" + +babel-helper-vue-jsx-merge-props@^2.0.0: + version "2.0.3" + resolved "http://registry.npm.taobao.org/babel-helper-vue-jsx-merge-props/download/babel-helper-vue-jsx-merge-props-2.0.3.tgz#22aebd3b33902328e513293a8e4992b384f9f1b6" + +babel-helpers@^6.24.1: + version "6.24.1" + resolved "http://registry.npm.taobao.org/babel-helpers/download/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-loader@^7.1.1: + version "7.1.2" + resolved "http://registry.npm.taobao.org/babel-loader/download/babel-loader-7.1.2.tgz#f6cbe122710f1aa2af4d881c6d5b54358ca24126" + dependencies: + find-cache-dir "^1.0.0" + loader-utils "^1.0.2" + mkdirp "^0.5.1" + +babel-messages@^6.23.0: + version "6.23.0" + resolved "http://registry.npm.taobao.org/babel-messages/download/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-check-es2015-constants@^6.22.0: + version "6.22.0" + resolved "http://registry.npm.taobao.org/babel-plugin-check-es2015-constants/download/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-istanbul@^4.1.1: + version "4.1.5" + resolved "http://registry.npm.taobao.org/babel-plugin-istanbul/download/babel-plugin-istanbul-4.1.5.tgz#6760cdd977f411d3e175bb064f2bc327d99b2b6e" + dependencies: + find-up "^2.1.0" + istanbul-lib-instrument "^1.7.5" + test-exclude "^4.1.1" + +babel-plugin-minify-builtins@^0.1.3: + version "0.1.3" + resolved "http://registry.npm.taobao.org/babel-plugin-minify-builtins/download/babel-plugin-minify-builtins-0.1.3.tgz#4f21a7dcb51f91a04ea71d47ff0e8e3b05fec021" + dependencies: + babel-helper-evaluate-path "^0.1.0" + +babel-plugin-minify-constant-folding@^0.1.3: + version "0.1.3" + resolved "http://registry.npm.taobao.org/babel-plugin-minify-constant-folding/download/babel-plugin-minify-constant-folding-0.1.3.tgz#57bd172adf8b8d74ad7c99612eb950414ebea3ca" + dependencies: + babel-helper-evaluate-path "^0.1.0" + +babel-plugin-minify-dead-code-elimination@^0.1.7: + version "0.1.7" + resolved "http://registry.npm.taobao.org/babel-plugin-minify-dead-code-elimination/download/babel-plugin-minify-dead-code-elimination-0.1.7.tgz#774f536f347b98393a27baa717872968813c342c" + dependencies: + babel-helper-mark-eval-scopes "^0.1.1" + babel-helper-remove-or-void "^0.1.1" + lodash.some "^4.6.0" + +babel-plugin-minify-flip-comparisons@^0.1.2: + version "0.1.2" + resolved "http://registry.npm.taobao.org/babel-plugin-minify-flip-comparisons/download/babel-plugin-minify-flip-comparisons-0.1.2.tgz#e286b40b7599b18dfea195071e4279465cfc1884" + dependencies: + babel-helper-is-void-0 "^0.1.1" + +babel-plugin-minify-guarded-expressions@^0.1.2: + version "0.1.2" + resolved "http://registry.npm.taobao.org/babel-plugin-minify-guarded-expressions/download/babel-plugin-minify-guarded-expressions-0.1.2.tgz#dfc3d473b0362d9605d3ce0ac1e22328c60d1007" + dependencies: + babel-helper-flip-expressions "^0.1.2" + +babel-plugin-minify-infinity@^0.1.2: + version "0.1.2" + resolved "http://registry.npm.taobao.org/babel-plugin-minify-infinity/download/babel-plugin-minify-infinity-0.1.2.tgz#5f1cf67ddedcba13c8a00da832542df0091a1cd4" + +babel-plugin-minify-mangle-names@^0.1.3: + version "0.1.3" + resolved "http://registry.npm.taobao.org/babel-plugin-minify-mangle-names/download/babel-plugin-minify-mangle-names-0.1.3.tgz#bfa24661a6794fb03833587e55828b65449e06fe" + dependencies: + babel-helper-mark-eval-scopes "^0.1.1" + +babel-plugin-minify-numeric-literals@^0.1.1: + version "0.1.1" + resolved "http://registry.npm.taobao.org/babel-plugin-minify-numeric-literals/download/babel-plugin-minify-numeric-literals-0.1.1.tgz#d4b8b0c925f874714ee33ee4b26678583d7ce7fb" + +babel-plugin-minify-replace@^0.1.2: + version "0.1.2" + resolved "http://registry.npm.taobao.org/babel-plugin-minify-replace/download/babel-plugin-minify-replace-0.1.2.tgz#b90b9e71ab4d3b36325629a91beabe13b0b16ac1" + +babel-plugin-minify-simplify@^0.1.2: + version "0.1.2" + resolved "http://registry.npm.taobao.org/babel-plugin-minify-simplify/download/babel-plugin-minify-simplify-0.1.2.tgz#a968f1658fdeb2fc759e81fe331d89829df0f6b9" + dependencies: + babel-helper-flip-expressions "^0.1.2" + babel-helper-is-nodes-equiv "^0.0.1" + babel-helper-to-multiple-sequence-expressions "^0.1.1" + +babel-plugin-minify-type-constructors@^0.1.2: + version "0.1.2" + resolved "http://registry.npm.taobao.org/babel-plugin-minify-type-constructors/download/babel-plugin-minify-type-constructors-0.1.2.tgz#db53c5b76cb8e2fcd45d862f17104c78761337ee" + dependencies: + babel-helper-is-void-0 "^0.1.1" + +babel-plugin-syntax-async-functions@^6.8.0: + version "6.13.0" + resolved "http://registry.npm.taobao.org/babel-plugin-syntax-async-functions/download/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" + +babel-plugin-syntax-async-generators@^6.5.0: + version "6.13.0" + resolved "http://registry.npm.taobao.org/babel-plugin-syntax-async-generators/download/babel-plugin-syntax-async-generators-6.13.0.tgz#6bc963ebb16eccbae6b92b596eb7f35c342a8b9a" + +babel-plugin-syntax-class-constructor-call@^6.18.0: + version "6.18.0" + resolved "http://registry.npm.taobao.org/babel-plugin-syntax-class-constructor-call/download/babel-plugin-syntax-class-constructor-call-6.18.0.tgz#9cb9d39fe43c8600bec8146456ddcbd4e1a76416" + +babel-plugin-syntax-class-properties@^6.8.0: + version "6.13.0" + resolved "http://registry.npm.taobao.org/babel-plugin-syntax-class-properties/download/babel-plugin-syntax-class-properties-6.13.0.tgz#d7eb23b79a317f8543962c505b827c7d6cac27de" + +babel-plugin-syntax-decorators@^6.13.0: + version "6.13.0" + resolved "http://registry.npm.taobao.org/babel-plugin-syntax-decorators/download/babel-plugin-syntax-decorators-6.13.0.tgz#312563b4dbde3cc806cee3e416cceeaddd11ac0b" + +babel-plugin-syntax-do-expressions@^6.8.0: + version "6.13.0" + resolved "http://registry.npm.taobao.org/babel-plugin-syntax-do-expressions/download/babel-plugin-syntax-do-expressions-6.13.0.tgz#5747756139aa26d390d09410b03744ba07e4796d" + +babel-plugin-syntax-dynamic-import@^6.18.0: + version "6.18.0" + resolved "http://registry.npm.taobao.org/babel-plugin-syntax-dynamic-import/download/babel-plugin-syntax-dynamic-import-6.18.0.tgz#8d6a26229c83745a9982a441051572caa179b1da" + +babel-plugin-syntax-exponentiation-operator@^6.8.0: + version "6.13.0" + resolved "http://registry.npm.taobao.org/babel-plugin-syntax-exponentiation-operator/download/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" + +babel-plugin-syntax-export-extensions@^6.8.0: + version "6.13.0" + resolved "http://registry.npm.taobao.org/babel-plugin-syntax-export-extensions/download/babel-plugin-syntax-export-extensions-6.13.0.tgz#70a1484f0f9089a4e84ad44bac353c95b9b12721" + +babel-plugin-syntax-function-bind@^6.8.0: + version "6.13.0" + resolved "http://registry.npm.taobao.org/babel-plugin-syntax-function-bind/download/babel-plugin-syntax-function-bind-6.13.0.tgz#48c495f177bdf31a981e732f55adc0bdd2601f46" + +babel-plugin-syntax-object-rest-spread@^6.8.0: + version "6.13.0" + resolved "http://registry.npm.taobao.org/babel-plugin-syntax-object-rest-spread/download/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" + +babel-plugin-syntax-trailing-function-commas@^6.22.0: + version "6.22.0" + resolved "http://registry.npm.taobao.org/babel-plugin-syntax-trailing-function-commas/download/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" + +babel-plugin-transform-async-generator-functions@^6.24.1: + version "6.24.1" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-async-generator-functions/download/babel-plugin-transform-async-generator-functions-6.24.1.tgz#f058900145fd3e9907a6ddf28da59f215258a5db" + dependencies: + babel-helper-remap-async-to-generator "^6.24.1" + babel-plugin-syntax-async-generators "^6.5.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-async-to-generator@^6.22.0, babel-plugin-transform-async-to-generator@^6.24.1: + version "6.24.1" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-async-to-generator/download/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" + 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-class-constructor-call@^6.24.1: + version "6.24.1" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-class-constructor-call/download/babel-plugin-transform-class-constructor-call-6.24.1.tgz#80dc285505ac067dcb8d6c65e2f6f11ab7765ef9" + dependencies: + babel-plugin-syntax-class-constructor-call "^6.18.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-class-properties@^6.24.1: + version "6.24.1" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-class-properties/download/babel-plugin-transform-class-properties-6.24.1.tgz#6a79763ea61d33d36f37b611aa9def81a81b46ac" + dependencies: + babel-helper-function-name "^6.24.1" + babel-plugin-syntax-class-properties "^6.8.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-decorators@^6.24.1: + version "6.24.1" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-decorators/download/babel-plugin-transform-decorators-6.24.1.tgz#788013d8f8c6b5222bdf7b344390dfd77569e24d" + dependencies: + babel-helper-explode-class "^6.24.1" + babel-plugin-syntax-decorators "^6.13.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-types "^6.24.1" + +babel-plugin-transform-do-expressions@^6.22.0: + version "6.22.0" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-do-expressions/download/babel-plugin-transform-do-expressions-6.22.0.tgz#28ccaf92812d949c2cd1281f690c8fdc468ae9bb" + dependencies: + babel-plugin-syntax-do-expressions "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-arrow-functions@^6.22.0: + version "6.22.0" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-arrow-functions/download/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: + version "6.22.0" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-block-scoped-functions/download/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-block-scoping@^6.23.0: + version "6.26.0" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-block-scoping/download/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" + 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.23.0: + version "6.24.1" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-classes/download/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" + 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.22.0: + version "6.24.1" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-computed-properties/download/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-destructuring@^6.23.0: + version "6.23.0" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-destructuring/download/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-duplicate-keys@^6.22.0: + version "6.24.1" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-duplicate-keys/download/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-for-of@^6.23.0: + version "6.23.0" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-for-of/download/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-function-name@^6.22.0: + version "6.24.1" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-function-name/download/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" + 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 "http://registry.npm.taobao.org/babel-plugin-transform-es2015-literals/download/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015-modules-amd@^6.24.1: + version "6.24.1" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-modules-amd/download/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" + 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.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1: + version "6.26.0" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-modules-commonjs/download/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz#0d8394029b7dc6abe1a97ef181e00758dd2e5d8a" + 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.23.0: + version "6.24.1" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-modules-systemjs/download/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" + 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.23.0: + version "6.24.1" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-modules-umd/download/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" + 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.22.0: + version "6.24.1" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-object-super/download/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" + dependencies: + babel-helper-replace-supers "^6.24.1" + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-parameters@^6.23.0: + version "6.24.1" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-parameters/download/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" + 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.22.0: + version "6.24.1" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-shorthand-properties/download/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-spread@^6.22.0: + version "6.22.0" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-spread/download/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-sticky-regex@^6.22.0: + version "6.24.1" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-sticky-regex/download/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" + 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 "http://registry.npm.taobao.org/babel-plugin-transform-es2015-template-literals/download/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-typeof-symbol@^6.23.0: + version "6.23.0" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-typeof-symbol/download/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-unicode-regex@^6.22.0: + version "6.24.1" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-unicode-regex/download/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" + dependencies: + babel-helper-regex "^6.24.1" + babel-runtime "^6.22.0" + regexpu-core "^2.0.0" + +babel-plugin-transform-exponentiation-operator@^6.22.0, babel-plugin-transform-exponentiation-operator@^6.24.1: + version "6.24.1" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-exponentiation-operator/download/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" + dependencies: + babel-helper-builder-binary-assignment-operator-visitor "^6.24.1" + babel-plugin-syntax-exponentiation-operator "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-export-extensions@^6.22.0: + version "6.22.0" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-export-extensions/download/babel-plugin-transform-export-extensions-6.22.0.tgz#53738b47e75e8218589eea946cbbd39109bbe653" + dependencies: + babel-plugin-syntax-export-extensions "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-function-bind@^6.22.0: + version "6.22.0" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-function-bind/download/babel-plugin-transform-function-bind-6.22.0.tgz#c6fb8e96ac296a310b8cf8ea401462407ddf6a97" + dependencies: + babel-plugin-syntax-function-bind "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-inline-consecutive-adds@^0.1.2: + version "0.1.2" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-inline-consecutive-adds/download/babel-plugin-transform-inline-consecutive-adds-0.1.2.tgz#5442e9f1c19c78a7899f8a4dee6fd481f61001f5" + +babel-plugin-transform-member-expression-literals@^6.8.4: + version "6.9.0" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-member-expression-literals/download/babel-plugin-transform-member-expression-literals-6.9.0.tgz#ab07ad52a11ff7d2528c71388e8f901a4499c2b2" + +babel-plugin-transform-merge-sibling-variables@^6.8.5: + version "6.9.0" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-merge-sibling-variables/download/babel-plugin-transform-merge-sibling-variables-6.9.0.tgz#140017e305f8eb4f60d2f2db61154fbd71a9fcdd" + +babel-plugin-transform-minify-booleans@^6.8.2: + version "6.9.0" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-minify-booleans/download/babel-plugin-transform-minify-booleans-6.9.0.tgz#e36ceaa49aadcae70ec98bd9dbccb660719a667a" + +babel-plugin-transform-object-rest-spread@^6.22.0: + version "6.26.0" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-object-rest-spread/download/babel-plugin-transform-object-rest-spread-6.26.0.tgz#0f36692d50fef6b7e2d4b3ac1478137a963b7b06" + dependencies: + babel-plugin-syntax-object-rest-spread "^6.8.0" + babel-runtime "^6.26.0" + +babel-plugin-transform-property-literals@^6.8.4: + version "6.9.0" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-property-literals/download/babel-plugin-transform-property-literals-6.9.0.tgz#4ddc12ada888927eacab4daff8a535ebc5de5a61" + dependencies: + esutils "^2.0.2" + +babel-plugin-transform-regenerator@^6.22.0: + version "6.26.0" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-regenerator/download/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" + dependencies: + regenerator-transform "^0.10.0" + +babel-plugin-transform-regexp-constructors@^0.1.1: + version "0.1.1" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-regexp-constructors/download/babel-plugin-transform-regexp-constructors-0.1.1.tgz#312ab7487cc88a1c62ee25ea1b6087e89b87799c" + +babel-plugin-transform-remove-console@^6.8.4: + version "6.9.0" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-remove-console/download/babel-plugin-transform-remove-console-6.9.0.tgz#a7b671aab050dd30ef7cf2142b61a7d10efb327f" + +babel-plugin-transform-remove-debugger@^6.8.4: + version "6.9.0" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-remove-debugger/download/babel-plugin-transform-remove-debugger-6.9.0.tgz#b465e74b3fbe1970da561fb1331e30aefac3f1fe" + +babel-plugin-transform-remove-undefined@^0.1.2: + version "0.1.2" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-remove-undefined/download/babel-plugin-transform-remove-undefined-0.1.2.tgz#e1ebf51110f6b1e0665f28382ef73f95e5023652" + +babel-plugin-transform-runtime@^6.23.0: + version "6.23.0" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-runtime/download/babel-plugin-transform-runtime-6.23.0.tgz#88490d446502ea9b8e7efb0fe09ec4d99479b1ee" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-simplify-comparison-operators@^6.8.4: + version "6.9.0" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-simplify-comparison-operators/download/babel-plugin-transform-simplify-comparison-operators-6.9.0.tgz#586252fea023cb13f2400a09c0ab178dc0844f0a" + +babel-plugin-transform-strict-mode@^6.24.1: + version "6.24.1" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-strict-mode/download/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-undefined-to-void@^6.8.2: + version "6.9.0" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-undefined-to-void/download/babel-plugin-transform-undefined-to-void-6.9.0.tgz#eb5db0554caffe9ded0206468ec0c6c3b332b9d2" + +babel-preset-babili@^0.1.4: + version "0.1.4" + resolved "http://registry.npm.taobao.org/babel-preset-babili/download/babel-preset-babili-0.1.4.tgz#ad9d6651002f5bc3f07cab300781167f54724bf2" + dependencies: + babel-plugin-minify-builtins "^0.1.3" + babel-plugin-minify-constant-folding "^0.1.3" + babel-plugin-minify-dead-code-elimination "^0.1.7" + babel-plugin-minify-flip-comparisons "^0.1.2" + babel-plugin-minify-guarded-expressions "^0.1.2" + babel-plugin-minify-infinity "^0.1.2" + babel-plugin-minify-mangle-names "^0.1.3" + babel-plugin-minify-numeric-literals "^0.1.1" + babel-plugin-minify-replace "^0.1.2" + babel-plugin-minify-simplify "^0.1.2" + babel-plugin-minify-type-constructors "^0.1.2" + babel-plugin-transform-inline-consecutive-adds "^0.1.2" + babel-plugin-transform-member-expression-literals "^6.8.4" + babel-plugin-transform-merge-sibling-variables "^6.8.5" + babel-plugin-transform-minify-booleans "^6.8.2" + babel-plugin-transform-property-literals "^6.8.4" + babel-plugin-transform-regexp-constructors "^0.1.1" + babel-plugin-transform-remove-console "^6.8.4" + babel-plugin-transform-remove-debugger "^6.8.4" + babel-plugin-transform-remove-undefined "^0.1.2" + babel-plugin-transform-simplify-comparison-operators "^6.8.4" + babel-plugin-transform-undefined-to-void "^6.8.2" + lodash.isplainobject "^4.0.6" + +babel-preset-env@^1.6.0: + version "1.6.1" + resolved "http://registry.npm.taobao.org/babel-preset-env/download/babel-preset-env-1.6.1.tgz#a18b564cc9b9afdf4aae57ae3c1b0d99188e6f48" + dependencies: + babel-plugin-check-es2015-constants "^6.22.0" + babel-plugin-syntax-trailing-function-commas "^6.22.0" + babel-plugin-transform-async-to-generator "^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.23.0" + babel-plugin-transform-es2015-classes "^6.23.0" + babel-plugin-transform-es2015-computed-properties "^6.22.0" + babel-plugin-transform-es2015-destructuring "^6.23.0" + babel-plugin-transform-es2015-duplicate-keys "^6.22.0" + babel-plugin-transform-es2015-for-of "^6.23.0" + babel-plugin-transform-es2015-function-name "^6.22.0" + babel-plugin-transform-es2015-literals "^6.22.0" + babel-plugin-transform-es2015-modules-amd "^6.22.0" + babel-plugin-transform-es2015-modules-commonjs "^6.23.0" + babel-plugin-transform-es2015-modules-systemjs "^6.23.0" + babel-plugin-transform-es2015-modules-umd "^6.23.0" + babel-plugin-transform-es2015-object-super "^6.22.0" + babel-plugin-transform-es2015-parameters "^6.23.0" + babel-plugin-transform-es2015-shorthand-properties "^6.22.0" + babel-plugin-transform-es2015-spread "^6.22.0" + babel-plugin-transform-es2015-sticky-regex "^6.22.0" + babel-plugin-transform-es2015-template-literals "^6.22.0" + babel-plugin-transform-es2015-typeof-symbol "^6.23.0" + babel-plugin-transform-es2015-unicode-regex "^6.22.0" + babel-plugin-transform-exponentiation-operator "^6.22.0" + babel-plugin-transform-regenerator "^6.22.0" + browserslist "^2.1.2" + invariant "^2.2.2" + semver "^5.3.0" + +babel-preset-stage-0@^6.24.1: + version "6.24.1" + resolved "http://registry.npm.taobao.org/babel-preset-stage-0/download/babel-preset-stage-0-6.24.1.tgz#5642d15042f91384d7e5af8bc88b1db95b039e6a" + dependencies: + babel-plugin-transform-do-expressions "^6.22.0" + babel-plugin-transform-function-bind "^6.22.0" + babel-preset-stage-1 "^6.24.1" + +babel-preset-stage-1@^6.24.1: + version "6.24.1" + resolved "http://registry.npm.taobao.org/babel-preset-stage-1/download/babel-preset-stage-1-6.24.1.tgz#7692cd7dcd6849907e6ae4a0a85589cfb9e2bfb0" + dependencies: + babel-plugin-transform-class-constructor-call "^6.24.1" + babel-plugin-transform-export-extensions "^6.22.0" + babel-preset-stage-2 "^6.24.1" + +babel-preset-stage-2@^6.24.1: + version "6.24.1" + resolved "http://registry.npm.taobao.org/babel-preset-stage-2/download/babel-preset-stage-2-6.24.1.tgz#d9e2960fb3d71187f0e64eec62bc07767219bdc1" + dependencies: + babel-plugin-syntax-dynamic-import "^6.18.0" + babel-plugin-transform-class-properties "^6.24.1" + babel-plugin-transform-decorators "^6.24.1" + babel-preset-stage-3 "^6.24.1" + +babel-preset-stage-3@^6.24.1: + version "6.24.1" + resolved "http://registry.npm.taobao.org/babel-preset-stage-3/download/babel-preset-stage-3-6.24.1.tgz#836ada0a9e7a7fa37cb138fb9326f87934a48395" + dependencies: + babel-plugin-syntax-trailing-function-commas "^6.22.0" + babel-plugin-transform-async-generator-functions "^6.24.1" + babel-plugin-transform-async-to-generator "^6.24.1" + babel-plugin-transform-exponentiation-operator "^6.24.1" + babel-plugin-transform-object-rest-spread "^6.22.0" + +babel-register@^6.24.1, babel-register@^6.26.0: + version "6.26.0" + resolved "http://registry.npm.taobao.org/babel-register/download/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" + 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.22.0: + version "6.22.0" + resolved "http://registry.npm.taobao.org/babel-runtime/download/babel-runtime-6.22.0.tgz#1cf8b4ac67c77a4ddb0db2ae1f74de52ac4ca611" + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.10.0" + +babel-runtime@6.x, babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0: + version "6.26.0" + resolved "http://registry.npm.taobao.org/babel-runtime/download/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + +babel-template@^6.16.0, babel-template@^6.24.1, babel-template@^6.26.0: + version "6.26.0" + resolved "http://registry.npm.taobao.org/babel-template/download/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" + 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.18.0, babel-traverse@^6.23.1, babel-traverse@^6.24.1, babel-traverse@^6.26.0: + version "6.26.0" + resolved "http://registry.npm.taobao.org/babel-traverse/download/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" + 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.18.0, babel-types@^6.19.0, babel-types@^6.23.0, babel-types@^6.24.1, babel-types@^6.26.0: + version "6.26.0" + resolved "http://registry.npm.taobao.org/babel-types/download/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" + dependencies: + babel-runtime "^6.26.0" + esutils "^2.0.2" + lodash "^4.17.4" + to-fast-properties "^1.0.3" + +babili-webpack-plugin@^0.1.2: + version "0.1.2" + resolved "http://registry.npm.taobao.org/babili-webpack-plugin/download/babili-webpack-plugin-0.1.2.tgz#164ac03d5932f6a52143e7ffc06f2711c651b6f2" + dependencies: + babel-core "^6.24.1" + babel-preset-babili "^0.1.4" + webpack-sources "^1.0.1" + +babylon@^6.17.0, babylon@^6.18.0: + version "6.18.0" + resolved "http://registry.npm.taobao.org/babylon/download/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" + +backo2@1.0.2: + version "1.0.2" + resolved "http://registry.npm.taobao.org/backo2/download/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" + +balanced-match@^0.4.2: + version "0.4.2" + resolved "http://registry.npm.taobao.org/balanced-match/download/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" + +balanced-match@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/balanced-match/download/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + +base64-arraybuffer@0.1.5: + version "0.1.5" + resolved "http://registry.npm.taobao.org/base64-arraybuffer/download/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" + +base64-js@1.2.0: + version "1.2.0" + resolved "http://registry.npm.taobao.org/base64-js/download/base64-js-1.2.0.tgz#a39992d723584811982be5e290bb6a53d86700f1" + +base64-js@^1.0.2: + version "1.2.1" + resolved "http://registry.npm.taobao.org/base64-js/download/base64-js-1.2.1.tgz#a91947da1f4a516ea38e5b4ec0ec3773675e0886" + +base64id@1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/base64id/download/base64id-1.0.0.tgz#47688cb99bb6804f0e06d3e763b1c32e57d8e6b6" + +base@^0.11.1: + version "0.11.2" + resolved "http://registry.npm.taobao.org/base/download/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + dependencies: + cache-base "^1.0.1" + class-utils "^0.3.5" + component-emitter "^1.2.1" + define-property "^1.0.0" + isobject "^3.0.1" + mixin-deep "^1.2.0" + pascalcase "^0.1.1" + +batch@0.6.1: + version "0.6.1" + resolved "http://registry.npm.taobao.org/batch/download/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" + +bcrypt-pbkdf@^1.0.0: + version "1.0.1" + resolved "http://registry.npm.taobao.org/bcrypt-pbkdf/download/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" + dependencies: + tweetnacl "^0.14.3" + +better-assert@~1.0.0: + version "1.0.2" + resolved "http://registry.npm.taobao.org/better-assert/download/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522" + dependencies: + callsite "1.0.0" + +big.js@^3.1.3: + version "3.2.0" + resolved "http://registry.npm.taobao.org/big.js/download/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" + +binary-extensions@^1.0.0: + version "1.11.0" + resolved "http://registry.npm.taobao.org/binary-extensions/download/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205" + +binary-search-tree@0.2.5: + version "0.2.5" + resolved "http://registry.npm.taobao.org/binary-search-tree/download/binary-search-tree-0.2.5.tgz#7dbb3b210fdca082450dad2334c304af39bdc784" + dependencies: + underscore "~1.4.4" + +bl@^1.0.0: + version "1.2.1" + resolved "http://registry.npm.taobao.org/bl/download/bl-1.2.1.tgz#cac328f7bee45730d404b692203fcb590e172d5e" + dependencies: + readable-stream "^2.0.5" + +blob@0.0.4: + version "0.0.4" + resolved "http://registry.npm.taobao.org/blob/download/blob-0.0.4.tgz#bcf13052ca54463f30f9fc7e95b9a47630a94921" + +block-stream@*: + version "0.0.9" + resolved "http://registry.npm.taobao.org/block-stream/download/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" + dependencies: + inherits "~2.0.0" + +bluebird-lst@^1.0.5: + version "1.0.5" + resolved "http://registry.npm.taobao.org/bluebird-lst/download/bluebird-lst-1.0.5.tgz#bebc83026b7e92a72871a3dc599e219cbfb002a9" + dependencies: + bluebird "^3.5.1" + +bluebird@^3.1.1, bluebird@^3.3.0, bluebird@^3.4.7, bluebird@^3.5.0, bluebird@^3.5.1: + version "3.5.1" + resolved "http://registry.npm.taobao.org/bluebird/download/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9" + +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: + version "4.11.8" + resolved "http://registry.npm.taobao.org/bn.js/download/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" + +body-parser@1.18.2, body-parser@^1.16.1: + version "1.18.2" + resolved "http://registry.npm.taobao.org/body-parser/download/body-parser-1.18.2.tgz#87678a19d84b47d859b83199bd59bce222b10454" + dependencies: + bytes "3.0.0" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.1" + http-errors "~1.6.2" + iconv-lite "0.4.19" + on-finished "~2.3.0" + qs "6.5.1" + raw-body "2.3.2" + type-is "~1.6.15" + +bonjour@^3.5.0: + version "3.5.0" + resolved "http://registry.npm.taobao.org/bonjour/download/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" + 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: + version "1.0.0" + resolved "http://registry.npm.taobao.org/boolbase/download/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + +boom@2.x.x: + version "2.10.1" + resolved "http://registry.npm.taobao.org/boom/download/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" + dependencies: + hoek "2.x.x" + +boom@4.x.x: + version "4.3.1" + resolved "http://registry.npm.taobao.org/boom/download/boom-4.3.1.tgz#4f8a3005cb4a7e3889f749030fd25b96e01d2e31" + dependencies: + hoek "4.x.x" + +boom@5.x.x: + version "5.2.0" + resolved "http://registry.npm.taobao.org/boom/download/boom-5.2.0.tgz#5dd9da6ee3a5f302077436290cb717d3f4a54e02" + dependencies: + hoek "4.x.x" + +boxen@^1.2.1: + version "1.3.0" + resolved "http://registry.npm.taobao.org/boxen/download/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b" + dependencies: + ansi-align "^2.0.0" + camelcase "^4.0.0" + chalk "^2.0.1" + cli-boxes "^1.0.0" + string-width "^2.0.0" + term-size "^1.2.0" + widest-line "^2.0.0" + +brace-expansion@^1.1.7: + version "1.1.8" + resolved "http://registry.npm.taobao.org/brace-expansion/download/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292" + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^0.1.2: + version "0.1.5" + resolved "http://registry.npm.taobao.org/braces/download/braces-0.1.5.tgz#c085711085291d8b75fdd74eab0f8597280711e6" + dependencies: + expand-range "^0.1.0" + +braces@^1.8.2: + version "1.8.5" + resolved "http://registry.npm.taobao.org/braces/download/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" + dependencies: + expand-range "^1.8.1" + preserve "^0.2.0" + repeat-element "^1.1.2" + +braces@^2.3.0: + version "2.3.0" + resolved "http://registry.npm.taobao.org/braces/download/braces-2.3.0.tgz#a46941cb5fb492156b3d6a656e06c35364e3e66e" + dependencies: + arr-flatten "^1.1.0" + array-unique "^0.3.2" + define-property "^1.0.0" + extend-shallow "^2.0.1" + fill-range "^4.0.0" + isobject "^3.0.1" + repeat-element "^1.1.2" + snapdragon "^0.8.1" + snapdragon-node "^2.0.1" + split-string "^3.0.2" + to-regex "^3.0.1" + +brorand@^1.0.1: + version "1.1.0" + resolved "http://registry.npm.taobao.org/brorand/download/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + +browser-stdout@1.3.0: + version "1.3.0" + resolved "http://registry.npm.taobao.org/browser-stdout/download/browser-stdout-1.3.0.tgz#f351d32969d32fa5d7a5567154263d928ae3bd1f" + +browserify-aes@^1.0.0, browserify-aes@^1.0.4: + version "1.1.1" + resolved "http://registry.npm.taobao.org/browserify-aes/download/browserify-aes-1.1.1.tgz#38b7ab55edb806ff2dcda1a7f1620773a477c49f" + dependencies: + buffer-xor "^1.0.3" + cipher-base "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.3" + inherits "^2.0.1" + safe-buffer "^5.0.1" + +browserify-cipher@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/browserify-cipher/download/browserify-cipher-1.0.0.tgz#9988244874bf5ed4e28da95666dcd66ac8fc363a" + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + +browserify-des@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/browserify-des/download/browserify-des-1.0.0.tgz#daa277717470922ed2fe18594118a175439721dd" + dependencies: + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" + +browserify-rsa@^4.0.0: + version "4.0.1" + resolved "http://registry.npm.taobao.org/browserify-rsa/download/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" + dependencies: + bn.js "^4.1.0" + randombytes "^2.0.1" + +browserify-sign@^4.0.0: + version "4.0.4" + resolved "http://registry.npm.taobao.org/browserify-sign/download/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" + dependencies: + bn.js "^4.1.1" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.2" + elliptic "^6.0.0" + inherits "^2.0.1" + parse-asn1 "^5.0.0" + +browserify-zlib@^0.2.0: + version "0.2.0" + resolved "http://registry.npm.taobao.org/browserify-zlib/download/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" + dependencies: + pako "~1.0.5" + +browserslist@^1.3.6, browserslist@^1.5.2, browserslist@^1.7.6: + version "1.7.7" + resolved "http://registry.npm.taobao.org/browserslist/download/browserslist-1.7.7.tgz#0bd76704258be829b2398bb50e4b62d1a166b0b9" + dependencies: + caniuse-db "^1.0.30000639" + electron-to-chromium "^1.2.7" + +browserslist@^2.1.2: + version "2.11.3" + resolved "http://registry.npm.taobao.org/browserslist/download/browserslist-2.11.3.tgz#fe36167aed1bbcde4827ebfe71347a2cc70b99b2" + dependencies: + caniuse-lite "^1.0.30000792" + electron-to-chromium "^1.3.30" + +buffer-crc32@^0.2.1: + version "0.2.13" + resolved "http://registry.npm.taobao.org/buffer-crc32/download/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + +buffer-indexof@^1.0.0: + version "1.1.1" + resolved "http://registry.npm.taobao.org/buffer-indexof/download/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" + +buffer-xor@^1.0.3: + version "1.0.3" + resolved "http://registry.npm.taobao.org/buffer-xor/download/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + +buffer@^4.3.0: + version "4.9.1" + resolved "http://registry.npm.taobao.org/buffer/download/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + isarray "^1.0.0" + +builder-util-runtime@4.0.4: + version "4.0.4" + resolved "http://registry.npm.taobao.org/builder-util-runtime/download/builder-util-runtime-4.0.4.tgz#c92c352097006a07f3324ea200fa815440cba198" + dependencies: + bluebird-lst "^1.0.5" + debug "^3.1.0" + fs-extra-p "^4.5.0" + sax "^1.2.4" + +builder-util-runtime@^4.0.4, builder-util-runtime@^4.0.5: + version "4.0.5" + resolved "http://registry.npm.taobao.org/builder-util-runtime/download/builder-util-runtime-4.0.5.tgz#5340cf9886b9283ea6e5b20dc09b5e3e461aef62" + dependencies: + bluebird-lst "^1.0.5" + debug "^3.1.0" + fs-extra-p "^4.5.0" + sax "^1.2.4" + +builder-util@4.2.4: + version "4.2.4" + resolved "http://registry.npm.taobao.org/builder-util/download/builder-util-4.2.4.tgz#ab0b460e6d62d8f24ecfe9435d9335851be3ea1a" + dependencies: + "7zip-bin" "~3.0.0" + bluebird-lst "^1.0.5" + builder-util-runtime "^4.0.4" + chalk "^2.3.0" + debug "^3.1.0" + fs-extra-p "^4.5.0" + ini "^1.3.5" + is-ci "^1.1.0" + js-yaml "^3.10.0" + lazy-val "^1.0.3" + semver "^5.5.0" + source-map-support "^0.5.3" + stat-mode "^0.2.2" + temp-file "^3.1.1" + tunnel-agent "^0.6.0" + +builder-util@^4.2.2: + version "4.2.5" + resolved "http://registry.npm.taobao.org/builder-util/download/builder-util-4.2.5.tgz#babc190e2f2c3681497632b5cc274f1543aa9264" + dependencies: + "7zip-bin" "~3.0.0" + bluebird-lst "^1.0.5" + builder-util-runtime "^4.0.5" + chalk "^2.3.0" + debug "^3.1.0" + fs-extra-p "^4.5.0" + ini "^1.3.5" + is-ci "^1.1.0" + js-yaml "^3.10.0" + lazy-val "^1.0.3" + semver "^5.5.0" + source-map-support "^0.5.3" + stat-mode "^0.2.2" + temp-file "^3.1.1" + tunnel-agent "^0.6.0" + +builtin-modules@^1.0.0, builtin-modules@^1.1.1: + version "1.1.1" + resolved "http://registry.npm.taobao.org/builtin-modules/download/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" + +builtin-status-codes@^3.0.0: + version "3.0.0" + resolved "http://registry.npm.taobao.org/builtin-status-codes/download/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" + +bytes@3.0.0: + version "3.0.0" + resolved "http://registry.npm.taobao.org/bytes/download/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + +cacache@^10.0.1: + version "10.0.2" + resolved "http://registry.npm.taobao.org/cacache/download/cacache-10.0.2.tgz#105a93a162bbedf3a25da42e1939ed99ffb145f8" + dependencies: + bluebird "^3.5.0" + chownr "^1.0.1" + glob "^7.1.2" + graceful-fs "^4.1.11" + lru-cache "^4.1.1" + mississippi "^1.3.0" + mkdirp "^0.5.1" + move-concurrently "^1.0.1" + promise-inflight "^1.0.1" + rimraf "^2.6.1" + ssri "^5.0.0" + unique-filename "^1.1.0" + y18n "^3.2.1" + +cache-base@^1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/cache-base/download/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + dependencies: + collection-visit "^1.0.0" + component-emitter "^1.2.1" + get-value "^2.0.6" + has-value "^1.0.0" + isobject "^3.0.1" + set-value "^2.0.0" + to-object-path "^0.3.0" + union-value "^1.0.0" + unset-value "^1.0.0" + +caller-path@^0.1.0: + version "0.1.0" + resolved "http://registry.npm.taobao.org/caller-path/download/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" + dependencies: + callsites "^0.2.0" + +callsite@1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/callsite/download/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" + +callsites@^0.2.0: + version "0.2.0" + resolved "http://registry.npm.taobao.org/callsites/download/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" + +camel-case@3.0.x, camel-case@^3.0.0: + version "3.0.0" + resolved "http://registry.npm.taobao.org/camel-case/download/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73" + dependencies: + no-case "^2.2.0" + upper-case "^1.1.1" + +camelcase-keys@^2.0.0: + version "2.1.0" + resolved "http://registry.npm.taobao.org/camelcase-keys/download/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" + dependencies: + camelcase "^2.0.0" + map-obj "^1.0.0" + +camelcase@^1.0.2: + version "1.2.1" + resolved "http://registry.npm.taobao.org/camelcase/download/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" + +camelcase@^2.0.0: + version "2.1.1" + resolved "http://registry.npm.taobao.org/camelcase/download/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" + +camelcase@^3.0.0: + version "3.0.0" + resolved "http://registry.npm.taobao.org/camelcase/download/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" + +camelcase@^4.0.0, camelcase@^4.1.0: + version "4.1.0" + resolved "http://registry.npm.taobao.org/camelcase/download/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" + +caniuse-api@^1.5.2: + version "1.6.1" + resolved "http://registry.npm.taobao.org/caniuse-api/download/caniuse-api-1.6.1.tgz#b534e7c734c4f81ec5fbe8aca2ad24354b962c6c" + dependencies: + browserslist "^1.3.6" + caniuse-db "^1.0.30000529" + lodash.memoize "^4.1.2" + lodash.uniq "^4.5.0" + +caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639: + version "1.0.30000805" + resolved "http://registry.npm.taobao.org/caniuse-db/download/caniuse-db-1.0.30000805.tgz#8f1ad9264c835989b5055dd9b009513ce6d95338" + +caniuse-lite@^1.0.30000792: + version "1.0.30000805" + resolved "http://registry.npm.taobao.org/caniuse-lite/download/caniuse-lite-1.0.30000805.tgz#83a5f21ead01486e67bccca6fae5dca7cde496de" + +capture-stack-trace@^1.0.0: + version "1.0.1" + resolved "http://registry.npm.taobao.org/capture-stack-trace/download/capture-stack-trace-1.0.1.tgz#ed0a1edb87c05d4db1037c5f8f483d8a3b5f0825" + +caseless@~0.11.0: + version "0.11.0" + resolved "http://registry.npm.taobao.org/caseless/download/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7" + +caseless@~0.12.0: + version "0.12.0" + resolved "http://registry.npm.taobao.org/caseless/download/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + +center-align@^0.1.1: + version "0.1.3" + resolved "http://registry.npm.taobao.org/center-align/download/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" + dependencies: + align-text "^0.1.3" + lazy-cache "^1.0.3" + +cfonts@^1.1.3: + version "1.1.3" + resolved "http://registry.npm.taobao.org/cfonts/download/cfonts-1.1.3.tgz#5d9a7a6bf1a023fc2d535da7264ea90ecd9dbf48" + dependencies: + babel-runtime "6.22.0" + chalk "1.0.0" + change-case "3.0.0" + commander "2.9.0" + window-size "0.3.0" + +chai@^4.0.0: + version "4.1.2" + resolved "http://registry.npm.taobao.org/chai/download/chai-4.1.2.tgz#0f64584ba642f0f2ace2806279f4f06ca23ad73c" + dependencies: + assertion-error "^1.0.1" + check-error "^1.0.1" + deep-eql "^3.0.0" + get-func-name "^2.0.0" + pathval "^1.0.0" + type-detect "^4.0.0" + +chalk@1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/chalk/download/chalk-1.0.0.tgz#b3cf4ed0ff5397c99c75b8f679db2f52831f96dc" + dependencies: + ansi-styles "^2.0.1" + escape-string-regexp "^1.0.2" + has-ansi "^1.0.3" + strip-ansi "^2.0.1" + supports-color "^1.3.0" + +chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: + version "1.1.3" + resolved "http://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + 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: + version "2.3.0" + resolved "http://registry.npm.taobao.org/chalk/download/chalk-2.3.0.tgz#b5ea48efc9c1793dccc9b4767c93914d3f2d52ba" + dependencies: + ansi-styles "^3.1.0" + escape-string-regexp "^1.0.5" + supports-color "^4.0.0" + +change-case@3.0.0: + version "3.0.0" + resolved "http://registry.npm.taobao.org/change-case/download/change-case-3.0.0.tgz#6c9c8e35f8790870a82b6b0745be8c3cbef9b081" + dependencies: + camel-case "^3.0.0" + constant-case "^2.0.0" + dot-case "^2.1.0" + header-case "^1.0.0" + is-lower-case "^1.1.0" + is-upper-case "^1.1.0" + lower-case "^1.1.1" + lower-case-first "^1.0.0" + no-case "^2.2.0" + param-case "^2.1.0" + pascal-case "^2.0.0" + path-case "^2.1.0" + sentence-case "^2.1.0" + snake-case "^2.1.0" + swap-case "^1.1.0" + title-case "^2.1.0" + upper-case "^1.1.1" + upper-case-first "^1.1.0" + +change-case@3.0.x: + version "3.0.1" + resolved "http://registry.npm.taobao.org/change-case/download/change-case-3.0.1.tgz#ee5f5ad0415ad1ad9e8072cf49cd4cfa7660a554" + dependencies: + camel-case "^3.0.0" + constant-case "^2.0.0" + dot-case "^2.1.0" + header-case "^1.0.0" + is-lower-case "^1.1.0" + is-upper-case "^1.1.0" + lower-case "^1.1.1" + lower-case-first "^1.0.0" + no-case "^2.2.0" + param-case "^2.1.0" + pascal-case "^2.0.0" + path-case "^2.1.0" + sentence-case "^2.1.0" + snake-case "^2.1.0" + swap-case "^1.1.0" + title-case "^2.1.0" + upper-case "^1.1.1" + upper-case-first "^1.1.0" + +chardet@^0.4.0: + version "0.4.2" + resolved "http://registry.npm.taobao.org/chardet/download/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" + +check-error@^1.0.1: + version "1.0.2" + resolved "http://registry.npm.taobao.org/check-error/download/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" + +chokidar@^1.4.1, chokidar@^1.7.0: + version "1.7.0" + resolved "http://registry.npm.taobao.org/chokidar/download/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" + dependencies: + anymatch "^1.3.0" + async-each "^1.0.0" + glob-parent "^2.0.0" + inherits "^2.0.1" + is-binary-path "^1.0.0" + is-glob "^2.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.0.0" + optionalDependencies: + fsevents "^1.0.0" + +chokidar@^2.0.0: + version "2.0.1" + resolved "http://registry.npm.taobao.org/chokidar/download/chokidar-2.0.1.tgz#6e67e9998fe10e8f651e975ca62460456ff8e297" + dependencies: + anymatch "^2.0.0" + async-each "^1.0.0" + braces "^2.3.0" + glob-parent "^3.1.0" + inherits "^2.0.1" + is-binary-path "^1.0.0" + is-glob "^4.0.0" + normalize-path "^2.1.1" + path-is-absolute "^1.0.0" + readdirp "^2.0.0" + upath "1.0.0" + optionalDependencies: + fsevents "^1.0.0" + +chownr@^1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/chownr/download/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181" + +chromium-pickle-js@^0.2.0: + version "0.2.0" + resolved "http://registry.npm.taobao.org/chromium-pickle-js/download/chromium-pickle-js-0.2.0.tgz#04a106672c18b085ab774d983dfa3ea138f22205" + +ci-info@^1.0.0: + version "1.1.2" + resolved "http://registry.npm.taobao.org/ci-info/download/ci-info-1.1.2.tgz#03561259db48d0474c8bdc90f5b47b068b6bbfb4" + +cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: + version "1.0.4" + resolved "http://registry.npm.taobao.org/cipher-base/download/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +circular-json@^0.3.1: + version "0.3.3" + resolved "http://registry.npm.taobao.org/circular-json/download/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" + +clap@^1.0.9: + version "1.2.3" + resolved "http://registry.npm.taobao.org/clap/download/clap-1.2.3.tgz#4f36745b32008492557f46412d66d50cb99bce51" + dependencies: + chalk "^1.1.3" + +class-utils@^0.3.5: + version "0.3.6" + resolved "http://registry.npm.taobao.org/class-utils/download/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" + +clean-css@3.4.x: + version "3.4.28" + resolved "http://registry.npm.taobao.org/clean-css/download/clean-css-3.4.28.tgz#bf1945e82fc808f55695e6ddeaec01400efd03ff" + dependencies: + commander "2.8.x" + source-map "0.4.x" + +clean-css@4.1.x: + version "4.1.9" + resolved "http://registry.npm.taobao.org/clean-css/download/clean-css-4.1.9.tgz#35cee8ae7687a49b98034f70de00c4edd3826301" + dependencies: + source-map "0.5.x" + +cli-boxes@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/cli-boxes/download/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" + +cli-cursor@^1.0.2: + version "1.0.2" + resolved "http://registry.npm.taobao.org/cli-cursor/download/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" + dependencies: + restore-cursor "^1.0.1" + +cli-cursor@^2.1.0: + version "2.1.0" + resolved "http://registry.npm.taobao.org/cli-cursor/download/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" + dependencies: + restore-cursor "^2.0.0" + +cli-width@^2.0.0: + version "2.2.0" + resolved "http://registry.npm.taobao.org/cli-width/download/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" + +cliui@^2.1.0: + version "2.1.0" + resolved "http://registry.npm.taobao.org/cliui/download/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" + dependencies: + center-align "^0.1.1" + right-align "^0.1.1" + wordwrap "0.0.2" + +cliui@^3.2.0: + version "3.2.0" + resolved "http://registry.npm.taobao.org/cliui/download/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + wrap-ansi "^2.0.0" + +cliui@^4.0.0: + version "4.0.0" + resolved "http://registry.npm.taobao.org/cliui/download/cliui-4.0.0.tgz#743d4650e05f36d1ed2575b59638d87322bfbbcc" + dependencies: + string-width "^2.1.1" + strip-ansi "^4.0.0" + wrap-ansi "^2.0.0" + +clone-deep@^0.3.0: + version "0.3.0" + resolved "http://registry.npm.taobao.org/clone-deep/download/clone-deep-0.3.0.tgz#348c61ae9cdbe0edfe053d91ff4cc521d790ede8" + dependencies: + for-own "^1.0.0" + is-plain-object "^2.0.1" + kind-of "^3.2.2" + shallow-clone "^0.1.2" + +clone@^1.0.2: + version "1.0.3" + resolved "http://registry.npm.taobao.org/clone/download/clone-1.0.3.tgz#298d7e2231660f40c003c2ed3140decf3f53085f" + +co@^4.6.0: + version "4.6.0" + resolved "http://registry.npm.taobao.org/co/download/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + +coa@~1.0.1: + version "1.0.4" + resolved "http://registry.npm.taobao.org/coa/download/coa-1.0.4.tgz#a9ef153660d6a86a8bdec0289a5c684d217432fd" + dependencies: + q "^1.1.2" + +coalescy@1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/coalescy/download/coalescy-1.0.0.tgz#4b065846b836361ada6c4b4a4abf4bc1cac31bf1" + +code-point-at@^1.0.0: + version "1.1.0" + resolved "http://registry.npm.taobao.org/code-point-at/download/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + +collection-visit@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/collection-visit/download/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + +color-convert@^1.3.0, color-convert@^1.9.0: + version "1.9.1" + resolved "http://registry.npm.taobao.org/color-convert/download/color-convert-1.9.1.tgz#c1261107aeb2f294ebffec9ed9ecad529a6097ed" + dependencies: + color-name "^1.1.1" + +color-convert@~0.5.0: + version "0.5.3" + resolved "http://registry.npm.taobao.org/color-convert/download/color-convert-0.5.3.tgz#bdb6c69ce660fadffe0b0007cc447e1b9f7282bd" + +color-name@^1.0.0, color-name@^1.1.1: + version "1.1.3" + resolved "http://registry.npm.taobao.org/color-name/download/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + +color-string@^0.3.0: + version "0.3.0" + resolved "http://registry.npm.taobao.org/color-string/download/color-string-0.3.0.tgz#27d46fb67025c5c2fa25993bfbf579e47841b991" + dependencies: + color-name "^1.0.0" + +color@^0.11.0: + version "0.11.4" + resolved "http://registry.npm.taobao.org/color/download/color-0.11.4.tgz#6d7b5c74fb65e841cd48792ad1ed5e07b904d764" + dependencies: + clone "^1.0.2" + color-convert "^1.3.0" + color-string "^0.3.0" + +colormin@^1.0.5: + version "1.1.2" + resolved "http://registry.npm.taobao.org/colormin/download/colormin-1.1.2.tgz#ea2f7420a72b96881a38aae59ec124a6f7298133" + dependencies: + color "^0.11.0" + css-color-names "0.0.4" + has "^1.0.1" + +colors@^1.1.0, colors@^1.1.2, colors@~1.1.2: + version "1.1.2" + resolved "http://registry.npm.taobao.org/colors/download/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" + +combine-lists@^1.0.0: + version "1.0.1" + resolved "http://registry.npm.taobao.org/combine-lists/download/combine-lists-1.0.1.tgz#458c07e09e0d900fc28b70a3fec2dacd1d2cb7f6" + dependencies: + lodash "^4.5.0" + +combined-stream@^1.0.5, combined-stream@~1.0.5: + version "1.0.5" + resolved "http://registry.npm.taobao.org/combined-stream/download/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" + dependencies: + delayed-stream "~1.0.0" + +commander@1.0.4: + version "1.0.4" + resolved "http://registry.npm.taobao.org/commander/download/commander-1.0.4.tgz#5edeb1aee23c4fb541a6b70d692abef19669a2d3" + dependencies: + keypress "0.1.x" + +commander@2.12.x: + version "2.12.2" + resolved "http://registry.npm.taobao.org/commander/download/commander-2.12.2.tgz#0f5946c427ed9ec0d91a46bb9def53e54650e555" + +commander@2.8.x: + version "2.8.1" + resolved "http://registry.npm.taobao.org/commander/download/commander-2.8.1.tgz#06be367febfda0c330aa1e2a072d3dc9762425d4" + dependencies: + graceful-readlink ">= 1.0.0" + +commander@2.9.0, commander@2.9.x, commander@~2.9.0: + version "2.9.0" + resolved "http://registry.npm.taobao.org/commander/download/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" + dependencies: + graceful-readlink ">= 1.0.0" + +commander@^2.9.0, commander@~2.14.1: + version "2.14.1" + resolved "http://registry.npm.taobao.org/commander/download/commander-2.14.1.tgz#2235123e37af8ca3c65df45b026dbd357b01b9aa" + +commondir@^1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/commondir/download/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + +compare-version@^0.1.2: + version "0.1.2" + resolved "http://registry.npm.taobao.org/compare-version/download/compare-version-0.1.2.tgz#0162ec2d9351f5ddd59a9202cba935366a725080" + +component-bind@1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/component-bind/download/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" + +component-emitter@1.1.2: + version "1.1.2" + resolved "http://registry.npm.taobao.org/component-emitter/download/component-emitter-1.1.2.tgz#296594f2753daa63996d2af08d15a95116c9aec3" + +component-emitter@1.2.1, component-emitter@^1.2.1: + version "1.2.1" + resolved "http://registry.npm.taobao.org/component-emitter/download/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" + +component-inherit@0.0.3: + version "0.0.3" + resolved "http://registry.npm.taobao.org/component-inherit/download/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" + +compress-commons@^1.2.0: + version "1.2.2" + resolved "http://registry.npm.taobao.org/compress-commons/download/compress-commons-1.2.2.tgz#524a9f10903f3a813389b0225d27c48bb751890f" + dependencies: + buffer-crc32 "^0.2.1" + crc32-stream "^2.0.0" + normalize-path "^2.0.0" + readable-stream "^2.0.0" + +compressible@~2.0.11: + version "2.0.12" + resolved "http://registry.npm.taobao.org/compressible/download/compressible-2.0.12.tgz#c59a5c99db76767e9876500e271ef63b3493bd66" + dependencies: + mime-db ">= 1.30.0 < 2" + +compression@^1.5.2: + version "1.7.1" + resolved "http://registry.npm.taobao.org/compression/download/compression-1.7.1.tgz#eff2603efc2e22cf86f35d2eb93589f9875373db" + dependencies: + accepts "~1.3.4" + bytes "3.0.0" + compressible "~2.0.11" + debug "2.6.9" + on-headers "~1.0.1" + safe-buffer "5.1.1" + vary "~1.1.2" + +concat-map@0.0.1: + version "0.0.1" + resolved "http://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + +concat-stream@1.6.0, concat-stream@^1.5.0, concat-stream@^1.6.0: + version "1.6.0" + resolved "http://registry.npm.taobao.org/concat-stream/download/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7" + dependencies: + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +configstore@^3.0.0: + version "3.1.1" + resolved "http://registry.npm.taobao.org/configstore/download/configstore-3.1.1.tgz#094ee662ab83fad9917678de114faaea8fcdca90" + dependencies: + dot-prop "^4.1.0" + graceful-fs "^4.1.2" + make-dir "^1.0.0" + unique-string "^1.0.0" + write-file-atomic "^2.0.0" + xdg-basedir "^3.0.0" + +connect-history-api-fallback@^1.3.0: + version "1.5.0" + resolved "http://registry.npm.taobao.org/connect-history-api-fallback/download/connect-history-api-fallback-1.5.0.tgz#b06873934bc5e344fef611a196a6faae0aee015a" + +connect@^3.6.0: + version "3.6.5" + resolved "http://registry.npm.taobao.org/connect/download/connect-3.6.5.tgz#fb8dde7ba0763877d0ec9df9dac0b4b40e72c7da" + dependencies: + debug "2.6.9" + finalhandler "1.0.6" + parseurl "~1.3.2" + utils-merge "1.0.1" + +console-browserify@^1.1.0: + version "1.1.0" + resolved "http://registry.npm.taobao.org/console-browserify/download/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" + dependencies: + date-now "^0.1.4" + +console-control-strings@^1.0.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "http://registry.npm.taobao.org/console-control-strings/download/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + +consolidate@^0.14.0: + version "0.14.5" + resolved "http://registry.npm.taobao.org/consolidate/download/consolidate-0.14.5.tgz#5a25047bc76f73072667c8cb52c989888f494c63" + dependencies: + bluebird "^3.1.1" + +constant-case@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/constant-case/download/constant-case-2.0.0.tgz#4175764d389d3fa9c8ecd29186ed6005243b6a46" + dependencies: + snake-case "^2.1.0" + upper-case "^1.1.1" + +constants-browserify@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/constants-browserify/download/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" + +contains-path@^0.1.0: + version "0.1.0" + resolved "http://registry.npm.taobao.org/contains-path/download/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" + +content-disposition@0.5.2: + version "0.5.2" + resolved "http://registry.npm.taobao.org/content-disposition/download/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" + +content-type@~1.0.4: + version "1.0.4" + resolved "http://registry.npm.taobao.org/content-type/download/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + +convert-source-map@^1.5.0: + version "1.5.1" + resolved "http://registry.npm.taobao.org/convert-source-map/download/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5" + +convert-source-map@~1.2.0: + version "1.2.0" + resolved "http://registry.npm.taobao.org/convert-source-map/download/convert-source-map-1.2.0.tgz#44c08c2506f10fb3ca6fd888d5a3444cf8d6a669" + +cookie-signature@1.0.6: + version "1.0.6" + resolved "http://registry.npm.taobao.org/cookie-signature/download/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + +cookie@0.3.1: + version "0.3.1" + resolved "http://registry.npm.taobao.org/cookie/download/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" + +copy-concurrently@^1.0.0: + version "1.0.5" + resolved "http://registry.npm.taobao.org/copy-concurrently/download/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" + dependencies: + aproba "^1.1.1" + fs-write-stream-atomic "^1.0.8" + iferr "^0.1.5" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.0" + +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "http://registry.npm.taobao.org/copy-descriptor/download/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + +copy-webpack-plugin@^4.0.1: + version "4.4.1" + resolved "http://registry.npm.taobao.org/copy-webpack-plugin/download/copy-webpack-plugin-4.4.1.tgz#1e8c366211db6dc2ddee40e5a3e4fc661dd149e8" + dependencies: + cacache "^10.0.1" + find-cache-dir "^1.0.0" + globby "^7.1.1" + is-glob "^4.0.0" + loader-utils "^0.2.15" + minimatch "^3.0.4" + p-limit "^1.0.0" + serialize-javascript "^1.4.0" + +core-js@^2.2.0, core-js@^2.4.0, core-js@^2.5.0: + version "2.5.3" + resolved "http://registry.npm.taobao.org/core-js/download/core-js-2.5.3.tgz#8acc38345824f16d8365b7c9b4259168e8ed603e" + +core-util-is@1.0.2, core-util-is@~1.0.0: + version "1.0.2" + resolved "http://registry.npm.taobao.org/core-util-is/download/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + +cosmiconfig@^2.1.0, cosmiconfig@^2.1.1: + version "2.2.2" + resolved "http://registry.npm.taobao.org/cosmiconfig/download/cosmiconfig-2.2.2.tgz#6173cebd56fac042c1f4390edf7af6c07c7cb892" + dependencies: + is-directory "^0.3.1" + js-yaml "^3.4.3" + minimist "^1.2.0" + object-assign "^4.1.0" + os-homedir "^1.0.1" + parse-json "^2.2.0" + require-from-string "^1.1.0" + +crc32-stream@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/crc32-stream/download/crc32-stream-2.0.0.tgz#e3cdd3b4df3168dd74e3de3fbbcb7b297fe908f4" + dependencies: + crc "^3.4.4" + readable-stream "^2.0.0" + +crc@^3.4.4: + version "3.5.0" + resolved "http://registry.npm.taobao.org/crc/download/crc-3.5.0.tgz#98b8ba7d489665ba3979f59b21381374101a1964" + +create-ecdh@^4.0.0: + version "4.0.0" + resolved "http://registry.npm.taobao.org/create-ecdh/download/create-ecdh-4.0.0.tgz#888c723596cdf7612f6498233eebd7a35301737d" + dependencies: + bn.js "^4.1.0" + elliptic "^6.0.0" + +create-error-class@^3.0.0: + version "3.0.2" + resolved "http://registry.npm.taobao.org/create-error-class/download/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" + dependencies: + capture-stack-trace "^1.0.0" + +create-hash@^1.1.0, create-hash@^1.1.2: + version "1.1.3" + resolved "http://registry.npm.taobao.org/create-hash/download/create-hash-1.1.3.tgz#606042ac8b9262750f483caddab0f5819172d8fd" + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + ripemd160 "^2.0.0" + sha.js "^2.4.0" + +create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: + version "1.1.6" + resolved "http://registry.npm.taobao.org/create-hmac/download/create-hmac-1.1.6.tgz#acb9e221a4e17bdb076e90657c42b93e3726cf06" + dependencies: + cipher-base "^1.0.3" + create-hash "^1.1.0" + inherits "^2.0.1" + ripemd160 "^2.0.0" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +cross-env@^5.0.5: + version "5.1.3" + resolved "http://registry.npm.taobao.org/cross-env/download/cross-env-5.1.3.tgz#f8ae18faac87692b0a8b4d2f7000d4ec3a85dfd7" + dependencies: + cross-spawn "^5.1.0" + is-windows "^1.0.0" + +cross-spawn@^3.0.0: + version "3.0.1" + resolved "http://registry.npm.taobao.org/cross-spawn/download/cross-spawn-3.0.1.tgz#1256037ecb9f0c5f79e3d6ef135e30770184b982" + dependencies: + lru-cache "^4.0.1" + which "^1.2.9" + +cross-spawn@^5.0.1, cross-spawn@^5.1.0: + version "5.1.0" + resolved "http://registry.npm.taobao.org/cross-spawn/download/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" + dependencies: + lru-cache "^4.0.1" + shebang-command "^1.2.0" + which "^1.2.9" + +cross-unzip@0.0.2: + version "0.0.2" + resolved "http://registry.npm.taobao.org/cross-unzip/download/cross-unzip-0.0.2.tgz#5183bc47a09559befcf98cc4657964999359372f" + +cryptiles@2.x.x: + version "2.0.5" + resolved "http://registry.npm.taobao.org/cryptiles/download/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" + dependencies: + boom "2.x.x" + +cryptiles@3.x.x: + version "3.1.2" + resolved "http://registry.npm.taobao.org/cryptiles/download/cryptiles-3.1.2.tgz#a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe" + dependencies: + boom "5.x.x" + +crypto-browserify@^3.11.0: + version "3.12.0" + resolved "http://registry.npm.taobao.org/crypto-browserify/download/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" + dependencies: + browserify-cipher "^1.0.0" + browserify-sign "^4.0.0" + create-ecdh "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.0" + diffie-hellman "^5.0.0" + inherits "^2.0.1" + pbkdf2 "^3.0.3" + public-encrypt "^4.0.0" + randombytes "^2.0.0" + randomfill "^1.0.3" + +crypto-random-string@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/crypto-random-string/download/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" + +css-color-names@0.0.4: + version "0.0.4" + resolved "http://registry.npm.taobao.org/css-color-names/download/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" + +css-loader@^0.28.4: + version "0.28.9" + resolved "http://registry.npm.taobao.org/css-loader/download/css-loader-0.28.9.tgz#68064b85f4e271d7ce4c48a58300928e535d1c95" + dependencies: + babel-code-frame "^6.26.0" + css-selector-tokenizer "^0.7.0" + cssnano "^3.10.0" + icss-utils "^2.1.0" + loader-utils "^1.0.2" + lodash.camelcase "^4.3.0" + object-assign "^4.1.1" + postcss "^5.0.6" + postcss-modules-extract-imports "^1.2.0" + postcss-modules-local-by-default "^1.2.0" + postcss-modules-scope "^1.1.0" + postcss-modules-values "^1.3.0" + postcss-value-parser "^3.3.0" + source-list-map "^2.0.0" + +css-parse@~2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/css-parse/download/css-parse-2.0.0.tgz#a468ee667c16d81ccf05c58c38d2a97c780dbfd4" + dependencies: + css "^2.0.0" + +css-select@^1.1.0: + version "1.2.0" + resolved "http://registry.npm.taobao.org/css-select/download/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" + dependencies: + boolbase "~1.0.0" + css-what "2.1" + domutils "1.5.1" + nth-check "~1.0.1" + +css-selector-tokenizer@^0.7.0: + version "0.7.0" + resolved "http://registry.npm.taobao.org/css-selector-tokenizer/download/css-selector-tokenizer-0.7.0.tgz#e6988474ae8c953477bf5e7efecfceccd9cf4c86" + dependencies: + cssesc "^0.1.0" + fastparse "^1.1.1" + regexpu-core "^1.0.0" + +css-value@~0.0.1: + version "0.0.1" + resolved "http://registry.npm.taobao.org/css-value/download/css-value-0.0.1.tgz#5efd6c2eea5ea1fd6b6ac57ec0427b18452424ea" + +css-what@2.1: + version "2.1.0" + resolved "http://registry.npm.taobao.org/css-what/download/css-what-2.1.0.tgz#9467d032c38cfaefb9f2d79501253062f87fa1bd" + +css@^2.0.0: + version "2.2.1" + resolved "http://registry.npm.taobao.org/css/download/css-2.2.1.tgz#73a4c81de85db664d4ee674f7d47085e3b2d55dc" + dependencies: + inherits "^2.0.1" + source-map "^0.1.38" + source-map-resolve "^0.3.0" + urix "^0.1.0" + +cssesc@^0.1.0: + version "0.1.0" + resolved "http://registry.npm.taobao.org/cssesc/download/cssesc-0.1.0.tgz#c814903e45623371a0477b40109aaafbeeaddbb4" + +cssnano@^3.10.0: + version "3.10.0" + resolved "http://registry.npm.taobao.org/cssnano/download/cssnano-3.10.0.tgz#4f38f6cea2b9b17fa01490f23f1dc68ea65c1c38" + dependencies: + autoprefixer "^6.3.1" + decamelize "^1.1.2" + defined "^1.0.0" + has "^1.0.1" + object-assign "^4.0.1" + postcss "^5.0.14" + postcss-calc "^5.2.0" + postcss-colormin "^2.1.8" + postcss-convert-values "^2.3.4" + postcss-discard-comments "^2.0.4" + postcss-discard-duplicates "^2.0.1" + postcss-discard-empty "^2.0.1" + postcss-discard-overridden "^0.1.1" + postcss-discard-unused "^2.2.1" + postcss-filter-plugins "^2.0.0" + postcss-merge-idents "^2.1.5" + postcss-merge-longhand "^2.0.1" + postcss-merge-rules "^2.0.3" + postcss-minify-font-values "^1.0.2" + postcss-minify-gradients "^1.0.1" + postcss-minify-params "^1.0.4" + postcss-minify-selectors "^2.0.4" + postcss-normalize-charset "^1.1.0" + postcss-normalize-url "^3.0.7" + postcss-ordered-values "^2.1.0" + postcss-reduce-idents "^2.2.2" + postcss-reduce-initial "^1.0.0" + postcss-reduce-transforms "^1.0.3" + postcss-svgo "^2.1.1" + postcss-unique-selectors "^2.0.2" + postcss-value-parser "^3.2.3" + postcss-zindex "^2.0.1" + +csso@~2.3.1: + version "2.3.2" + resolved "http://registry.npm.taobao.org/csso/download/csso-2.3.2.tgz#ddd52c587033f49e94b71fc55569f252e8ff5f85" + dependencies: + clap "^1.0.9" + source-map "^0.5.3" + +currently-unhandled@^0.4.1: + version "0.4.1" + resolved "http://registry.npm.taobao.org/currently-unhandled/download/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" + dependencies: + array-find-index "^1.0.1" + +custom-event@~1.0.0: + version "1.0.1" + resolved "http://registry.npm.taobao.org/custom-event/download/custom-event-1.0.1.tgz#5d02a46850adf1b4a317946a3928fccb5bfd0425" + +cyclist@~0.2.2: + version "0.2.2" + resolved "http://registry.npm.taobao.org/cyclist/download/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640" + +d@1: + version "1.0.0" + resolved "http://registry.npm.taobao.org/d/download/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" + dependencies: + es5-ext "^0.10.9" + +dashdash@^1.12.0: + version "1.14.1" + resolved "http://registry.npm.taobao.org/dashdash/download/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + dependencies: + assert-plus "^1.0.0" + +date-now@^0.1.4: + version "0.1.4" + resolved "http://registry.npm.taobao.org/date-now/download/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" + +dateformat@^1.0.6: + version "1.0.12" + resolved "http://registry.npm.taobao.org/dateformat/download/dateformat-1.0.12.tgz#9f124b67594c937ff706932e4a642cca8dbbfee9" + dependencies: + get-stdin "^4.0.1" + meow "^3.3.0" + +de-indent@^1.0.2: + version "1.0.2" + resolved "http://registry.npm.taobao.org/de-indent/download/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d" + +debug@2.2.0: + version "2.2.0" + resolved "http://registry.npm.taobao.org/debug/download/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da" + dependencies: + ms "0.7.1" + +debug@2.3.3: + version "2.3.3" + resolved "http://registry.npm.taobao.org/debug/download/debug-2.3.3.tgz#40c453e67e6e13c901ddec317af8986cda9eff8c" + dependencies: + ms "0.7.2" + +debug@2.6.8: + version "2.6.8" + resolved "http://registry.npm.taobao.org/debug/download/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc" + dependencies: + ms "2.0.0" + +debug@2.6.9, debug@^2.1.3, debug@^2.2.0, debug@^2.3.3, debug@^2.6.6, debug@^2.6.8, debug@^2.6.9: + version "2.6.9" + resolved "http://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + dependencies: + ms "2.0.0" + +debug@^3.0.0, debug@^3.1.0: + version "3.1.0" + resolved "http://registry.npm.taobao.org/debug/download/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + dependencies: + ms "2.0.0" + +decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2: + version "1.2.0" + resolved "http://registry.npm.taobao.org/decamelize/download/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + +decode-uri-component@^0.2.0: + version "0.2.0" + resolved "http://registry.npm.taobao.org/decode-uri-component/download/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + +deep-eql@^3.0.0: + version "3.0.1" + resolved "http://registry.npm.taobao.org/deep-eql/download/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" + dependencies: + type-detect "^4.0.0" + +deep-equal@^1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/deep-equal/download/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" + +deep-extend@~0.4.0: + version "0.4.2" + resolved "http://registry.npm.taobao.org/deep-extend/download/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f" + +deep-is@~0.1.3: + version "0.1.3" + resolved "http://registry.npm.taobao.org/deep-is/download/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + +deepmerge@^1.2.0: + version "1.5.2" + resolved "http://registry.npm.taobao.org/deepmerge/download/deepmerge-1.5.2.tgz#10499d868844cdad4fee0842df8c7f6f0c95a753" + +deepmerge@~2.0.1: + version "2.0.1" + resolved "http://registry.npm.taobao.org/deepmerge/download/deepmerge-2.0.1.tgz#25c1c24f110fb914f80001b925264dd77f3f4312" + +define-properties@^1.1.2: + version "1.1.2" + resolved "http://registry.npm.taobao.org/define-properties/download/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94" + dependencies: + foreach "^2.0.5" + object-keys "^1.0.8" + +define-property@^0.2.5: + version "0.2.5" + resolved "http://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + dependencies: + is-descriptor "^0.1.0" + +define-property@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + dependencies: + is-descriptor "^1.0.0" + +defined@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/defined/download/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" + +del@^2.0.2: + version "2.2.2" + resolved "http://registry.npm.taobao.org/del/download/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" + dependencies: + globby "^5.0.0" + is-path-cwd "^1.0.0" + is-path-in-cwd "^1.0.0" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + rimraf "^2.2.8" + +del@^3.0.0: + version "3.0.0" + resolved "http://registry.npm.taobao.org/del/download/del-3.0.0.tgz#53ecf699ffcbcb39637691ab13baf160819766e5" + dependencies: + globby "^6.1.0" + is-path-cwd "^1.0.0" + is-path-in-cwd "^1.0.0" + p-map "^1.1.1" + pify "^3.0.0" + rimraf "^2.2.8" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/delayed-stream/download/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + +delegates@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/delegates/download/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + +depd@1.1.1: + version "1.1.1" + resolved "http://registry.npm.taobao.org/depd/download/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359" + +depd@~1.1.1: + version "1.1.2" + resolved "http://registry.npm.taobao.org/depd/download/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + +des.js@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/des.js/download/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" + dependencies: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +destroy@~1.0.4: + version "1.0.4" + resolved "http://registry.npm.taobao.org/destroy/download/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + +detect-indent@^4.0.0: + version "4.0.0" + resolved "http://registry.npm.taobao.org/detect-indent/download/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" + dependencies: + repeating "^2.0.0" + +detect-libc@^1.0.2: + version "1.0.3" + resolved "http://registry.npm.taobao.org/detect-libc/download/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + +detect-node@^2.0.3: + version "2.0.3" + resolved "http://registry.npm.taobao.org/detect-node/download/detect-node-2.0.3.tgz#a2033c09cc8e158d37748fbde7507832bd6ce127" + +dev-null@^0.1.1: + version "0.1.1" + resolved "http://registry.npm.taobao.org/dev-null/download/dev-null-0.1.1.tgz#5a205ce3c2b2ef77b6238d6ba179eb74c6a0e818" + +devtron@^1.4.0: + version "1.4.0" + resolved "http://registry.npm.taobao.org/devtron/download/devtron-1.4.0.tgz#b5e748bd6e95bbe70bfcc68aae6fe696119441e1" + dependencies: + accessibility-developer-tools "^2.11.0" + highlight.js "^9.3.0" + humanize-plus "^1.8.1" + +di@^0.0.1: + version "0.0.1" + resolved "http://registry.npm.taobao.org/di/download/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c" + +diff@3.2.0: + version "3.2.0" + resolved "http://registry.npm.taobao.org/diff/download/diff-3.2.0.tgz#c9ce393a4b7cbd0b058a725c93df299027868ff9" + +diffie-hellman@^5.0.0: + version "5.0.2" + resolved "http://registry.npm.taobao.org/diffie-hellman/download/diffie-hellman-5.0.2.tgz#b5835739270cfe26acf632099fded2a07f209e5e" + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + +dir-glob@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/dir-glob/download/dir-glob-2.0.0.tgz#0b205d2b6aef98238ca286598a8204d29d0a0034" + dependencies: + arrify "^1.0.1" + path-type "^3.0.0" + +dmg-builder@3.1.4: + version "3.1.4" + resolved "http://registry.npm.taobao.org/dmg-builder/download/dmg-builder-3.1.4.tgz#57c53a2b5a1e28526a837430b6ecc7110cadcf63" + dependencies: + bluebird-lst "^1.0.5" + builder-util "^4.2.2" + fs-extra-p "^4.5.0" + iconv-lite "^0.4.19" + js-yaml "^3.10.0" + parse-color "^1.0.0" + +dns-equal@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/dns-equal/download/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" + +dns-packet@^1.3.1: + version "1.3.1" + resolved "http://registry.npm.taobao.org/dns-packet/download/dns-packet-1.3.1.tgz#12aa426981075be500b910eedcd0b47dd7deda5a" + dependencies: + ip "^1.1.0" + safe-buffer "^5.0.1" + +dns-txt@^2.0.2: + version "2.0.2" + resolved "http://registry.npm.taobao.org/dns-txt/download/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" + dependencies: + buffer-indexof "^1.0.0" + +doctrine@1.5.0: + version "1.5.0" + resolved "http://registry.npm.taobao.org/doctrine/download/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" + dependencies: + esutils "^2.0.2" + isarray "^1.0.0" + +doctrine@^2.1.0: + version "2.1.0" + resolved "http://registry.npm.taobao.org/doctrine/download/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + dependencies: + esutils "^2.0.2" + +dom-converter@~0.1: + version "0.1.4" + resolved "http://registry.npm.taobao.org/dom-converter/download/dom-converter-0.1.4.tgz#a45ef5727b890c9bffe6d7c876e7b19cb0e17f3b" + dependencies: + utila "~0.3" + +dom-serialize@^2.2.0: + version "2.2.1" + resolved "http://registry.npm.taobao.org/dom-serialize/download/dom-serialize-2.2.1.tgz#562ae8999f44be5ea3076f5419dcd59eb43ac95b" + dependencies: + custom-event "~1.0.0" + ent "~2.2.0" + extend "^3.0.0" + void-elements "^2.0.0" + +dom-serializer@0: + version "0.1.0" + resolved "http://registry.npm.taobao.org/dom-serializer/download/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82" + dependencies: + domelementtype "~1.1.1" + entities "~1.1.1" + +domain-browser@^1.1.1: + version "1.2.0" + resolved "http://registry.npm.taobao.org/domain-browser/download/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" + +domelementtype@1, domelementtype@^1.3.0: + version "1.3.0" + resolved "http://registry.npm.taobao.org/domelementtype/download/domelementtype-1.3.0.tgz#b17aed82e8ab59e52dd9c19b1756e0fc187204c2" + +domelementtype@~1.1.1: + version "1.1.3" + resolved "http://registry.npm.taobao.org/domelementtype/download/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b" + +domhandler@2.1: + version "2.1.0" + resolved "http://registry.npm.taobao.org/domhandler/download/domhandler-2.1.0.tgz#d2646f5e57f6c3bab11cf6cb05d3c0acf7412594" + dependencies: + domelementtype "1" + +domhandler@^2.3.0: + version "2.4.1" + resolved "http://registry.npm.taobao.org/domhandler/download/domhandler-2.4.1.tgz#892e47000a99be55bbf3774ffea0561d8879c259" + dependencies: + domelementtype "1" + +domutils@1.1: + version "1.1.6" + resolved "http://registry.npm.taobao.org/domutils/download/domutils-1.1.6.tgz#bddc3de099b9a2efacc51c623f28f416ecc57485" + dependencies: + domelementtype "1" + +domutils@1.5.1: + version "1.5.1" + resolved "http://registry.npm.taobao.org/domutils/download/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" + dependencies: + dom-serializer "0" + domelementtype "1" + +domutils@^1.5.1: + version "1.7.0" + resolved "http://registry.npm.taobao.org/domutils/download/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" + dependencies: + dom-serializer "0" + domelementtype "1" + +dot-case@^2.1.0: + version "2.1.1" + resolved "http://registry.npm.taobao.org/dot-case/download/dot-case-2.1.1.tgz#34dcf37f50a8e93c2b3bca8bb7fb9155c7da3bee" + dependencies: + no-case "^2.2.0" + +dot-prop@^4.1.0: + version "4.2.0" + resolved "http://registry.npm.taobao.org/dot-prop/download/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" + dependencies: + is-obj "^1.0.0" + +dotenv-expand@^4.0.1: + version "4.2.0" + resolved "http://registry.npm.taobao.org/dotenv-expand/download/dotenv-expand-4.2.0.tgz#def1f1ca5d6059d24a766e587942c21106ce1275" + +dotenv@^4.0.0: + version "4.0.0" + resolved "http://registry.npm.taobao.org/dotenv/download/dotenv-4.0.0.tgz#864ef1379aced55ce6f95debecdce179f7a0cd1d" + +duplexer3@^0.1.4: + version "0.1.4" + resolved "http://registry.npm.taobao.org/duplexer3/download/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" + +duplexify@^3.4.2, duplexify@^3.5.3: + version "3.5.3" + resolved "http://registry.npm.taobao.org/duplexify/download/duplexify-3.5.3.tgz#8b5818800df92fd0125b27ab896491912858243e" + dependencies: + end-of-stream "^1.0.0" + inherits "^2.0.1" + readable-stream "^2.0.0" + stream-shift "^1.0.0" + +ecc-jsbn@~0.1.1: + version "0.1.1" + resolved "http://registry.npm.taobao.org/ecc-jsbn/download/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" + dependencies: + jsbn "~0.1.0" + +ee-first@1.1.1: + version "1.1.1" + resolved "http://registry.npm.taobao.org/ee-first/download/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + +ejs@^2.5.7, ejs@~2.5.6: + version "2.5.7" + resolved "http://registry.npm.taobao.org/ejs/download/ejs-2.5.7.tgz#cc872c168880ae3c7189762fd5ffc00896c9518a" + +electron-builder-lib@19.56.2: + version "19.56.2" + resolved "http://registry.npm.taobao.org/electron-builder-lib/download/electron-builder-lib-19.56.2.tgz#9e4ef3a1a5fa21d3fd490561261ae639bb263da3" + dependencies: + "7zip-bin" "~3.0.0" + asar-integrity "0.2.4" + async-exit-hook "^2.0.1" + bluebird-lst "^1.0.5" + builder-util "4.2.4" + builder-util-runtime "4.0.4" + chromium-pickle-js "^0.2.0" + debug "^3.1.0" + dmg-builder "3.1.4" + ejs "^2.5.7" + electron-osx-sign "0.4.8" + electron-publish "19.56.0" + fs-extra-p "^4.5.0" + hosted-git-info "^2.5.0" + is-ci "^1.1.0" + isbinaryfile "^3.0.2" + js-yaml "^3.10.0" + lazy-val "^1.0.3" + minimatch "^3.0.4" + normalize-package-data "^2.4.0" + plist "^2.1.0" + read-config-file "2.1.1" + sanitize-filename "^1.6.1" + semver "^5.5.0" + temp-file "^3.1.1" + +electron-builder@^19.19.1: + version "19.56.2" + resolved "http://registry.npm.taobao.org/electron-builder/download/electron-builder-19.56.2.tgz#11c0c4544c4d82f1f1a2837e7f349a67457f1d99" + dependencies: + bluebird-lst "^1.0.5" + builder-util "4.2.4" + builder-util-runtime "4.0.4" + chalk "^2.3.0" + electron-builder-lib "19.56.2" + electron-download-tf "4.3.4" + fs-extra-p "^4.5.0" + is-ci "^1.1.0" + lazy-val "^1.0.3" + read-config-file "2.1.1" + sanitize-filename "^1.6.1" + update-notifier "^2.3.0" + yargs "^11.0.0" + +electron-chromedriver@~1.8.0: + version "1.8.0" + resolved "http://registry.npm.taobao.org/electron-chromedriver/download/electron-chromedriver-1.8.0.tgz#901714133cf6f6093d365e1f44a52d99624d8241" + dependencies: + electron-download "^4.1.0" + extract-zip "^1.6.5" + +electron-debug@^1.4.0: + version "1.5.0" + resolved "http://registry.npm.taobao.org/electron-debug/download/electron-debug-1.5.0.tgz#d88c02146efb7fc5ae1b21eac56fbe4987eae50c" + dependencies: + electron-is-dev "^0.3.0" + electron-localshortcut "^3.0.0" + +electron-devtools-installer@^2.2.0: + version "2.2.3" + resolved "http://registry.npm.taobao.org/electron-devtools-installer/download/electron-devtools-installer-2.2.3.tgz#58b9a4ec507377bc46e091cd43714188e0c369be" + dependencies: + "7zip" "0.0.6" + cross-unzip "0.0.2" + rimraf "^2.5.2" + semver "^5.3.0" + +electron-download-tf@4.3.4: + version "4.3.4" + resolved "http://registry.npm.taobao.org/electron-download-tf/download/electron-download-tf-4.3.4.tgz#b03740b2885aa2ad3f8784fae74df427f66d5165" + dependencies: + debug "^3.0.0" + env-paths "^1.0.0" + fs-extra "^4.0.1" + minimist "^1.2.0" + nugget "^2.0.1" + path-exists "^3.0.0" + rc "^1.2.1" + semver "^5.4.1" + sumchecker "^2.0.2" + +electron-download@^3.0.1: + version "3.3.0" + resolved "http://registry.npm.taobao.org/electron-download/download/electron-download-3.3.0.tgz#2cfd54d6966c019c4d49ad65fbe65cc9cdef68c8" + dependencies: + debug "^2.2.0" + fs-extra "^0.30.0" + home-path "^1.0.1" + minimist "^1.2.0" + nugget "^2.0.0" + path-exists "^2.1.0" + rc "^1.1.2" + semver "^5.3.0" + sumchecker "^1.2.0" + +electron-download@^4.1.0: + version "4.1.0" + resolved "http://registry.npm.taobao.org/electron-download/download/electron-download-4.1.0.tgz#bf932c746f2f87ffcc09d1dd472f2ff6b9187845" + dependencies: + debug "^2.2.0" + env-paths "^1.0.0" + fs-extra "^2.0.0" + minimist "^1.2.0" + nugget "^2.0.0" + path-exists "^3.0.0" + rc "^1.1.2" + semver "^5.3.0" + sumchecker "^2.0.1" + +electron-is-accelerator@^0.1.0: + version "0.1.2" + resolved "http://registry.npm.taobao.org/electron-is-accelerator/download/electron-is-accelerator-0.1.2.tgz#509e510c26a56b55e17f863a4b04e111846ab27b" + +electron-is-dev@^0.3.0: + version "0.3.0" + resolved "http://registry.npm.taobao.org/electron-is-dev/download/electron-is-dev-0.3.0.tgz#14e6fda5c68e9e4ecbeff9ccf037cbd7c05c5afe" + +electron-localshortcut@^3.0.0: + version "3.1.0" + resolved "http://registry.npm.taobao.org/electron-localshortcut/download/electron-localshortcut-3.1.0.tgz#10c1ffd537b8d39170aaf6e1551341f7780dd2ce" + dependencies: + debug "^2.6.8" + electron-is-accelerator "^0.1.0" + keyboardevent-from-electron-accelerator "^1.1.0" + keyboardevents-areequal "^0.2.1" + +electron-oauth2@^3.0.0: + version "3.0.0" + resolved "http://registry.npm.taobao.org/electron-oauth2/download/electron-oauth2-3.0.0.tgz#d7e8ba354776097fc18d7dbcbdfaedfa3f377e7b" + dependencies: + node-fetch "^1.3.3" + object-assign "^4.0.1" + pinkie-promise "^2.0.0" + +electron-osx-sign@0.4.8: + version "0.4.8" + resolved "http://registry.npm.taobao.org/electron-osx-sign/download/electron-osx-sign-0.4.8.tgz#f0b9fadded9e1e54ec35fa89877b5c6c34c7bc40" + dependencies: + bluebird "^3.5.0" + compare-version "^0.1.2" + debug "^2.6.8" + isbinaryfile "^3.0.2" + minimist "^1.2.0" + plist "^2.1.0" + +electron-publish@19.56.0: + version "19.56.0" + resolved "http://registry.npm.taobao.org/electron-publish/download/electron-publish-19.56.0.tgz#1a0446e69b3085a905c0abdf16125c1c97d108d9" + dependencies: + bluebird-lst "^1.0.5" + builder-util "^4.2.2" + builder-util-runtime "^4.0.4" + chalk "^2.3.0" + fs-extra-p "^4.5.0" + mime "^2.2.0" + +electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.30: + version "1.3.33" + resolved "http://registry.npm.taobao.org/electron-to-chromium/download/electron-to-chromium-1.3.33.tgz#bf00703d62a7c65238136578c352d6c5c042a545" + +electron@^1.7.5: + version "1.8.2" + resolved "http://registry.npm.taobao.org/electron/download/electron-1.8.2.tgz#a817cd733c2972b3c7cc4f777caf6e424b88014d" + dependencies: + "@types/node" "^8.0.24" + electron-download "^3.0.1" + extract-zip "^1.0.3" + +element-ui@^2.1.0: + version "2.1.0" + resolved "http://registry.npm.taobao.org/element-ui/download/element-ui-2.1.0.tgz#eec860e3d3b131e61c2974a3e2b19a689d040f14" + dependencies: + async-validator "~1.8.1" + babel-helper-vue-jsx-merge-props "^2.0.0" + deepmerge "^1.2.0" + normalize-wheel "^1.0.1" + throttle-debounce "^1.0.1" + +elliptic@^6.0.0: + version "6.4.0" + resolved "http://registry.npm.taobao.org/elliptic/download/elliptic-6.4.0.tgz#cac9af8762c85836187003c8dfe193e5e2eae5df" + dependencies: + bn.js "^4.4.0" + brorand "^1.0.1" + hash.js "^1.0.0" + hmac-drbg "^1.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.0" + +emojis-list@^2.0.0: + version "2.1.0" + resolved "http://registry.npm.taobao.org/emojis-list/download/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" + +encodeurl@~1.0.1: + version "1.0.2" + resolved "http://registry.npm.taobao.org/encodeurl/download/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + +encoding@^0.1.11: + version "0.1.12" + resolved "http://registry.npm.taobao.org/encoding/download/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" + dependencies: + iconv-lite "~0.4.13" + +end-of-stream@^1.0.0, end-of-stream@^1.1.0: + version "1.4.1" + resolved "http://registry.npm.taobao.org/end-of-stream/download/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" + dependencies: + once "^1.4.0" + +engine.io-client@1.8.3: + version "1.8.3" + resolved "http://registry.npm.taobao.org/engine.io-client/download/engine.io-client-1.8.3.tgz#1798ed93451246453d4c6f635d7a201fe940d5ab" + dependencies: + component-emitter "1.2.1" + component-inherit "0.0.3" + debug "2.3.3" + engine.io-parser "1.3.2" + has-cors "1.1.0" + indexof "0.0.1" + parsejson "0.0.3" + parseqs "0.0.5" + parseuri "0.0.5" + ws "1.1.2" + xmlhttprequest-ssl "1.5.3" + yeast "0.1.2" + +engine.io-parser@1.3.2: + version "1.3.2" + resolved "http://registry.npm.taobao.org/engine.io-parser/download/engine.io-parser-1.3.2.tgz#937b079f0007d0893ec56d46cb220b8cb435220a" + dependencies: + after "0.8.2" + arraybuffer.slice "0.0.6" + base64-arraybuffer "0.1.5" + blob "0.0.4" + has-binary "0.1.7" + wtf-8 "1.0.0" + +engine.io@1.8.3: + version "1.8.3" + resolved "http://registry.npm.taobao.org/engine.io/download/engine.io-1.8.3.tgz#8de7f97895d20d39b85f88eeee777b2bd42b13d4" + dependencies: + accepts "1.3.3" + base64id "1.0.0" + cookie "0.3.1" + debug "2.3.3" + engine.io-parser "1.3.2" + ws "1.1.2" + +enhanced-resolve@^3.4.0: + version "3.4.1" + resolved "http://registry.npm.taobao.org/enhanced-resolve/download/enhanced-resolve-3.4.1.tgz#0421e339fd71419b3da13d129b3979040230476e" + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.4.0" + object-assign "^4.0.1" + tapable "^0.2.7" + +ent@~2.2.0: + version "2.2.0" + resolved "http://registry.npm.taobao.org/ent/download/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d" + +entities@^1.1.1, entities@~1.1.1: + version "1.1.1" + resolved "http://registry.npm.taobao.org/entities/download/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" + +env-paths@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/env-paths/download/env-paths-1.0.0.tgz#4168133b42bb05c38a35b1ae4397c8298ab369e0" + +errno@^0.1.3: + version "0.1.6" + resolved "http://registry.npm.taobao.org/errno/download/errno-0.1.6.tgz#c386ce8a6283f14fc09563b71560908c9bf53026" + dependencies: + prr "~1.0.1" + +error-ex@^1.2.0: + version "1.3.1" + resolved "http://registry.npm.taobao.org/error-ex/download/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc" + dependencies: + is-arrayish "^0.2.1" + +es-abstract@^1.7.0: + version "1.10.0" + resolved "http://registry.npm.taobao.org/es-abstract/download/es-abstract-1.10.0.tgz#1ecb36c197842a00d8ee4c2dfd8646bb97d60864" + dependencies: + es-to-primitive "^1.1.1" + function-bind "^1.1.1" + has "^1.0.1" + is-callable "^1.1.3" + is-regex "^1.0.4" + +es-to-primitive@^1.1.1: + version "1.1.1" + resolved "http://registry.npm.taobao.org/es-to-primitive/download/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d" + dependencies: + is-callable "^1.1.1" + is-date-object "^1.0.1" + is-symbol "^1.0.1" + +es5-ext@^0.10.14, es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14: + version "0.10.38" + resolved "http://registry.npm.taobao.org/es5-ext/download/es5-ext-0.10.38.tgz#fa7d40d65bbc9bb8a67e1d3f9cc656a00530eed3" + dependencies: + es6-iterator "~2.0.3" + es6-symbol "~3.1.1" + +es6-iterator@^2.0.1, es6-iterator@~2.0.1, es6-iterator@~2.0.3: + version "2.0.3" + resolved "http://registry.npm.taobao.org/es6-iterator/download/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + +es6-map@^0.1.3: + version "0.1.5" + resolved "http://registry.npm.taobao.org/es6-map/download/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" + dependencies: + d "1" + es5-ext "~0.10.14" + es6-iterator "~2.0.1" + es6-set "~0.1.5" + es6-symbol "~3.1.1" + event-emitter "~0.3.5" + +es6-promise@^4.0.5: + version "4.2.4" + resolved "http://registry.npm.taobao.org/es6-promise/download/es6-promise-4.2.4.tgz#dc4221c2b16518760bd8c39a52d8f356fc00ed29" + +es6-set@~0.1.5: + version "0.1.5" + resolved "http://registry.npm.taobao.org/es6-set/download/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" + dependencies: + d "1" + es5-ext "~0.10.14" + es6-iterator "~2.0.1" + es6-symbol "3.1.1" + event-emitter "~0.3.5" + +es6-symbol@3.1.1, es6-symbol@^3.1.1, es6-symbol@~3.1.1: + version "3.1.1" + resolved "http://registry.npm.taobao.org/es6-symbol/download/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" + dependencies: + d "1" + es5-ext "~0.10.14" + +es6-templates@^0.2.2: + version "0.2.3" + resolved "http://registry.npm.taobao.org/es6-templates/download/es6-templates-0.2.3.tgz#5cb9ac9fb1ded6eb1239342b81d792bbb4078ee4" + dependencies: + recast "~0.11.12" + through "~2.3.6" + +es6-weak-map@^2.0.1: + version "2.0.2" + resolved "http://registry.npm.taobao.org/es6-weak-map/download/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f" + dependencies: + d "1" + es5-ext "^0.10.14" + es6-iterator "^2.0.1" + es6-symbol "^3.1.1" + +escape-html@~1.0.3: + version "1.0.3" + resolved "http://registry.npm.taobao.org/escape-html/download/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + +escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "http://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + +escodegen@1.8.x: + version "1.8.1" + resolved "http://registry.npm.taobao.org/escodegen/download/escodegen-1.8.1.tgz#5a5b53af4693110bebb0867aa3430dd3b70a1018" + dependencies: + esprima "^2.7.1" + estraverse "^1.9.1" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.2.0" + +escope@^3.6.0: + version "3.6.0" + resolved "http://registry.npm.taobao.org/escope/download/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" + dependencies: + es6-map "^0.1.3" + es6-weak-map "^2.0.1" + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-config-standard@^10.2.1: + version "10.2.1" + resolved "http://registry.npm.taobao.org/eslint-config-standard/download/eslint-config-standard-10.2.1.tgz#c061e4d066f379dc17cd562c64e819b4dd454591" + +eslint-friendly-formatter@^3.0.0: + version "3.0.0" + resolved "http://registry.npm.taobao.org/eslint-friendly-formatter/download/eslint-friendly-formatter-3.0.0.tgz#278874435a6c46ec1d94fa0b1ff494e30ef04290" + dependencies: + chalk "^1.0.0" + coalescy "1.0.0" + extend "^3.0.0" + minimist "^1.2.0" + text-table "^0.2.0" + +eslint-import-resolver-node@^0.3.1: + version "0.3.2" + resolved "http://registry.npm.taobao.org/eslint-import-resolver-node/download/eslint-import-resolver-node-0.3.2.tgz#58f15fb839b8d0576ca980413476aab2472db66a" + dependencies: + debug "^2.6.9" + resolve "^1.5.0" + +eslint-loader@^1.9.0: + version "1.9.0" + resolved "http://registry.npm.taobao.org/eslint-loader/download/eslint-loader-1.9.0.tgz#7e1be9feddca328d3dcfaef1ad49d5beffe83a13" + dependencies: + loader-fs-cache "^1.0.0" + loader-utils "^1.0.2" + object-assign "^4.0.1" + object-hash "^1.1.4" + rimraf "^2.6.1" + +eslint-module-utils@^2.1.1: + version "2.1.1" + resolved "http://registry.npm.taobao.org/eslint-module-utils/download/eslint-module-utils-2.1.1.tgz#abaec824177613b8a95b299639e1b6facf473449" + dependencies: + debug "^2.6.8" + pkg-dir "^1.0.0" + +eslint-plugin-html@^3.1.1: + version "3.2.2" + resolved "http://registry.npm.taobao.org/eslint-plugin-html/download/eslint-plugin-html-3.2.2.tgz#ef7093621d3a93de3206fd1f92f347ea9a1a4dfa" + dependencies: + htmlparser2 "^3.8.2" + semver "^5.4.1" + +eslint-plugin-import@^2.7.0: + version "2.8.0" + resolved "http://registry.npm.taobao.org/eslint-plugin-import/download/eslint-plugin-import-2.8.0.tgz#fa1b6ef31fcb3c501c09859c1b86f1fc5b986894" + dependencies: + builtin-modules "^1.1.1" + contains-path "^0.1.0" + debug "^2.6.8" + doctrine "1.5.0" + eslint-import-resolver-node "^0.3.1" + eslint-module-utils "^2.1.1" + has "^1.0.1" + lodash.cond "^4.3.0" + minimatch "^3.0.3" + read-pkg-up "^2.0.0" + +eslint-plugin-node@^5.1.1: + version "5.2.1" + resolved "http://registry.npm.taobao.org/eslint-plugin-node/download/eslint-plugin-node-5.2.1.tgz#80df3253c4d7901045ec87fa660a284e32bdca29" + dependencies: + ignore "^3.3.6" + minimatch "^3.0.4" + resolve "^1.3.3" + semver "5.3.0" + +eslint-plugin-promise@^3.5.0: + version "3.6.0" + resolved "http://registry.npm.taobao.org/eslint-plugin-promise/download/eslint-plugin-promise-3.6.0.tgz#54b7658c8f454813dc2a870aff8152ec4969ba75" + +eslint-plugin-standard@^3.0.1: + version "3.0.1" + resolved "http://registry.npm.taobao.org/eslint-plugin-standard/download/eslint-plugin-standard-3.0.1.tgz#34d0c915b45edc6f010393c7eef3823b08565cf2" + +eslint-scope@^3.7.1: + version "3.7.1" + resolved "http://registry.npm.taobao.org/eslint-scope/download/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8" + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-visitor-keys@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/eslint-visitor-keys/download/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" + +eslint@^4.4.1: + version "4.17.0" + resolved "http://registry.npm.taobao.org/eslint/download/eslint-4.17.0.tgz#dc24bb51ede48df629be7031c71d9dc0ee4f3ddf" + dependencies: + ajv "^5.3.0" + babel-code-frame "^6.22.0" + chalk "^2.1.0" + concat-stream "^1.6.0" + cross-spawn "^5.1.0" + debug "^3.1.0" + doctrine "^2.1.0" + eslint-scope "^3.7.1" + eslint-visitor-keys "^1.0.0" + espree "^3.5.2" + esquery "^1.0.0" + esutils "^2.0.2" + file-entry-cache "^2.0.0" + functional-red-black-tree "^1.0.1" + glob "^7.1.2" + globals "^11.0.1" + ignore "^3.3.3" + imurmurhash "^0.1.4" + inquirer "^3.0.6" + is-resolvable "^1.0.0" + js-yaml "^3.9.1" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.3.0" + lodash "^4.17.4" + minimatch "^3.0.2" + mkdirp "^0.5.1" + natural-compare "^1.4.0" + optionator "^0.8.2" + path-is-inside "^1.0.2" + pluralize "^7.0.0" + progress "^2.0.0" + require-uncached "^1.0.3" + semver "^5.3.0" + strip-ansi "^4.0.0" + strip-json-comments "~2.0.1" + table "^4.0.1" + text-table "~0.2.0" + +espree@^3.5.2: + version "3.5.3" + resolved "http://registry.npm.taobao.org/espree/download/espree-3.5.3.tgz#931e0af64e7fbbed26b050a29daad1fc64799fa6" + dependencies: + acorn "^5.4.0" + acorn-jsx "^3.0.0" + +esprima@2.7.x, esprima@^2.6.0, esprima@^2.7.1: + version "2.7.3" + resolved "http://registry.npm.taobao.org/esprima/download/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" + +esprima@^4.0.0: + version "4.0.0" + resolved "http://registry.npm.taobao.org/esprima/download/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" + +esprima@~3.1.0: + version "3.1.3" + resolved "http://registry.npm.taobao.org/esprima/download/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" + +esquery@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/esquery/download/esquery-1.0.0.tgz#cfba8b57d7fba93f17298a8a006a04cda13d80fa" + dependencies: + estraverse "^4.0.0" + +esrecurse@^4.1.0: + version "4.2.0" + resolved "http://registry.npm.taobao.org/esrecurse/download/esrecurse-4.2.0.tgz#fa9568d98d3823f9a41d91e902dcab9ea6e5b163" + dependencies: + estraverse "^4.1.0" + object-assign "^4.0.1" + +estraverse@^1.9.1: + version "1.9.3" + resolved "http://registry.npm.taobao.org/estraverse/download/estraverse-1.9.3.tgz#af67f2dc922582415950926091a4005d29c9bb44" + +estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1: + version "4.2.0" + resolved "http://registry.npm.taobao.org/estraverse/download/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" + +esutils@^2.0.2: + version "2.0.2" + resolved "http://registry.npm.taobao.org/esutils/download/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" + +etag@~1.8.1: + version "1.8.1" + resolved "http://registry.npm.taobao.org/etag/download/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + +event-emitter@~0.3.5: + version "0.3.5" + resolved "http://registry.npm.taobao.org/event-emitter/download/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" + dependencies: + d "1" + es5-ext "~0.10.14" + +eventemitter3@1.x.x: + version "1.2.0" + resolved "http://registry.npm.taobao.org/eventemitter3/download/eventemitter3-1.2.0.tgz#1c86991d816ad1e504750e73874224ecf3bec508" + +events@^1.0.0: + version "1.1.1" + resolved "http://registry.npm.taobao.org/events/download/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" + +eventsource@0.1.6: + version "0.1.6" + resolved "http://registry.npm.taobao.org/eventsource/download/eventsource-0.1.6.tgz#0acede849ed7dd1ccc32c811bb11b944d4f29232" + dependencies: + original ">=0.0.5" + +evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "http://registry.npm.taobao.org/evp_bytestokey/download/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + dependencies: + md5.js "^1.3.4" + safe-buffer "^5.1.1" + +execa@^0.7.0: + version "0.7.0" + resolved "http://registry.npm.taobao.org/execa/download/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" + dependencies: + cross-spawn "^5.0.1" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +exit-hook@^1.0.0: + version "1.1.1" + resolved "http://registry.npm.taobao.org/exit-hook/download/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" + +expand-braces@^0.1.1: + version "0.1.2" + resolved "http://registry.npm.taobao.org/expand-braces/download/expand-braces-0.1.2.tgz#488b1d1d2451cb3d3a6b192cfc030f44c5855fea" + dependencies: + array-slice "^0.2.3" + array-unique "^0.2.1" + braces "^0.1.2" + +expand-brackets@^0.1.4: + version "0.1.5" + resolved "http://registry.npm.taobao.org/expand-brackets/download/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" + dependencies: + is-posix-bracket "^0.1.0" + +expand-brackets@^2.1.4: + version "2.1.4" + resolved "http://registry.npm.taobao.org/expand-brackets/download/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + dependencies: + debug "^2.3.3" + define-property "^0.2.5" + extend-shallow "^2.0.1" + posix-character-classes "^0.1.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +expand-range@^0.1.0: + version "0.1.1" + resolved "http://registry.npm.taobao.org/expand-range/download/expand-range-0.1.1.tgz#4cb8eda0993ca56fa4f41fc42f3cbb4ccadff044" + dependencies: + is-number "^0.1.1" + repeat-string "^0.2.2" + +expand-range@^1.8.1: + version "1.8.2" + resolved "http://registry.npm.taobao.org/expand-range/download/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" + dependencies: + fill-range "^2.1.0" + +express@^4.16.2: + version "4.16.2" + resolved "http://registry.npm.taobao.org/express/download/express-4.16.2.tgz#e35c6dfe2d64b7dca0a5cd4f21781be3299e076c" + dependencies: + accepts "~1.3.4" + array-flatten "1.1.1" + body-parser "1.18.2" + content-disposition "0.5.2" + content-type "~1.0.4" + cookie "0.3.1" + cookie-signature "1.0.6" + debug "2.6.9" + depd "~1.1.1" + encodeurl "~1.0.1" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "1.1.0" + fresh "0.5.2" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.2" + path-to-regexp "0.1.7" + proxy-addr "~2.0.2" + qs "6.5.1" + range-parser "~1.2.0" + safe-buffer "5.1.1" + send "0.16.1" + serve-static "1.13.1" + setprototypeof "1.1.0" + statuses "~1.3.1" + type-is "~1.6.15" + utils-merge "1.0.1" + vary "~1.1.2" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + dependencies: + is-extendable "^0.1.0" + +extend-shallow@^3.0.0: + version "3.0.2" + resolved "http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + +extend@^3.0.0, extend@~3.0.0, extend@~3.0.1: + version "3.0.1" + resolved "http://registry.npm.taobao.org/extend/download/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" + +external-editor@^2.0.4: + version "2.1.0" + resolved "http://registry.npm.taobao.org/external-editor/download/external-editor-2.1.0.tgz#3d026a21b7f95b5726387d4200ac160d372c3b48" + dependencies: + chardet "^0.4.0" + iconv-lite "^0.4.17" + tmp "^0.0.33" + +extglob@^0.3.1: + version "0.3.2" + resolved "http://registry.npm.taobao.org/extglob/download/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" + dependencies: + is-extglob "^1.0.0" + +extglob@^2.0.2: + version "2.0.4" + resolved "http://registry.npm.taobao.org/extglob/download/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + dependencies: + array-unique "^0.3.2" + define-property "^1.0.0" + expand-brackets "^2.1.4" + extend-shallow "^2.0.1" + fragment-cache "^0.2.1" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +extract-text-webpack-plugin@^3.0.0: + version "3.0.2" + resolved "http://registry.npm.taobao.org/extract-text-webpack-plugin/download/extract-text-webpack-plugin-3.0.2.tgz#5f043eaa02f9750a9258b78c0a6e0dc1408fb2f7" + dependencies: + async "^2.4.1" + loader-utils "^1.1.0" + schema-utils "^0.3.0" + webpack-sources "^1.0.1" + +extract-zip@^1.0.3, extract-zip@^1.6.5: + version "1.6.6" + resolved "http://registry.npm.taobao.org/extract-zip/download/extract-zip-1.6.6.tgz#1290ede8d20d0872b429fd3f351ca128ec5ef85c" + dependencies: + concat-stream "1.6.0" + debug "2.6.9" + mkdirp "0.5.0" + yauzl "2.4.1" + +extsprintf@1.3.0: + version "1.3.0" + resolved "http://registry.npm.taobao.org/extsprintf/download/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + +extsprintf@^1.2.0: + version "1.4.0" + resolved "http://registry.npm.taobao.org/extsprintf/download/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + +fast-deep-equal@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff" + +fast-json-stable-stringify@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/fast-json-stable-stringify/download/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" + +fast-levenshtein@~2.0.4: + version "2.0.6" + resolved "http://registry.npm.taobao.org/fast-levenshtein/download/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + +fastparse@^1.0.0, fastparse@^1.1.1: + version "1.1.1" + resolved "http://registry.npm.taobao.org/fastparse/download/fastparse-1.1.1.tgz#d1e2643b38a94d7583b479060e6c4affc94071f8" + +faye-websocket@^0.10.0: + version "0.10.0" + resolved "http://registry.npm.taobao.org/faye-websocket/download/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" + dependencies: + websocket-driver ">=0.5.1" + +faye-websocket@~0.11.0: + version "0.11.1" + resolved "http://registry.npm.taobao.org/faye-websocket/download/faye-websocket-0.11.1.tgz#f0efe18c4f56e4f40afc7e06c719fd5ee6188f38" + dependencies: + websocket-driver ">=0.5.1" + +fd-slicer@~1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/fd-slicer/download/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65" + dependencies: + pend "~1.2.0" + +figures@^1.4.0: + version "1.7.0" + resolved "http://registry.npm.taobao.org/figures/download/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" + dependencies: + escape-string-regexp "^1.0.5" + object-assign "^4.1.0" + +figures@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/figures/download/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" + dependencies: + escape-string-regexp "^1.0.5" + +file-entry-cache@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/file-entry-cache/download/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" + dependencies: + flat-cache "^1.2.1" + object-assign "^4.0.1" + +file-loader@^0.11.2: + version "0.11.2" + resolved "http://registry.npm.taobao.org/file-loader/download/file-loader-0.11.2.tgz#4ff1df28af38719a6098093b88c82c71d1794a34" + dependencies: + loader-utils "^1.0.2" + +filename-regex@^2.0.0: + version "2.0.1" + resolved "http://registry.npm.taobao.org/filename-regex/download/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" + +fill-range@^2.1.0: + version "2.2.3" + resolved "http://registry.npm.taobao.org/fill-range/download/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" + dependencies: + is-number "^2.1.0" + isobject "^2.0.0" + randomatic "^1.1.3" + repeat-element "^1.1.2" + repeat-string "^1.5.2" + +fill-range@^4.0.0: + version "4.0.0" + resolved "http://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + dependencies: + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" + +finalhandler@1.0.6: + version "1.0.6" + resolved "http://registry.npm.taobao.org/finalhandler/download/finalhandler-1.0.6.tgz#007aea33d1a4d3e42017f624848ad58d212f814f" + dependencies: + debug "2.6.9" + encodeurl "~1.0.1" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.2" + statuses "~1.3.1" + unpipe "~1.0.0" + +finalhandler@1.1.0: + version "1.1.0" + resolved "http://registry.npm.taobao.org/finalhandler/download/finalhandler-1.1.0.tgz#ce0b6855b45853e791b2fcc680046d88253dd7f5" + dependencies: + debug "2.6.9" + encodeurl "~1.0.1" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.2" + statuses "~1.3.1" + unpipe "~1.0.0" + +find-cache-dir@^0.1.1: + version "0.1.1" + resolved "http://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9" + dependencies: + commondir "^1.0.1" + mkdirp "^0.5.1" + pkg-dir "^1.0.0" + +find-cache-dir@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-1.0.0.tgz#9288e3e9e3cc3748717d39eade17cf71fc30ee6f" + dependencies: + commondir "^1.0.1" + make-dir "^1.0.0" + pkg-dir "^2.0.0" + +find-up@^1.0.0: + version "1.1.2" + resolved "http://registry.npm.taobao.org/find-up/download/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + dependencies: + path-exists "^2.0.0" + pinkie-promise "^2.0.0" + +find-up@^2.0.0, find-up@^2.1.0: + version "2.1.0" + resolved "http://registry.npm.taobao.org/find-up/download/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + dependencies: + locate-path "^2.0.0" + +flat-cache@^1.2.1: + version "1.3.0" + resolved "http://registry.npm.taobao.org/flat-cache/download/flat-cache-1.3.0.tgz#d3030b32b38154f4e3b7e9c709f490f7ef97c481" + dependencies: + circular-json "^0.3.1" + del "^2.0.2" + graceful-fs "^4.1.2" + write "^0.2.1" + +flatten@^1.0.2: + version "1.0.2" + resolved "http://registry.npm.taobao.org/flatten/download/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782" + +flush-write-stream@^1.0.0: + version "1.0.2" + resolved "http://registry.npm.taobao.org/flush-write-stream/download/flush-write-stream-1.0.2.tgz#c81b90d8746766f1a609a46809946c45dd8ae417" + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.4" + +follow-redirects@^1.2.5: + version "1.4.1" + resolved "http://registry.npm.taobao.org/follow-redirects/download/follow-redirects-1.4.1.tgz#d8120f4518190f55aac65bb6fc7b85fcd666d6aa" + dependencies: + debug "^3.1.0" + +for-in@^0.1.3: + version "0.1.8" + resolved "http://registry.npm.taobao.org/for-in/download/for-in-0.1.8.tgz#d8773908e31256109952b1fdb9b3fa867d2775e1" + +for-in@^1.0.1, for-in@^1.0.2: + version "1.0.2" + resolved "http://registry.npm.taobao.org/for-in/download/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + +for-own@^0.1.4: + version "0.1.5" + resolved "http://registry.npm.taobao.org/for-own/download/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" + dependencies: + for-in "^1.0.1" + +for-own@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/for-own/download/for-own-1.0.0.tgz#c63332f415cedc4b04dbfe70cf836494c53cb44b" + dependencies: + for-in "^1.0.1" + +foreach@^2.0.5: + version "2.0.5" + resolved "http://registry.npm.taobao.org/foreach/download/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" + +forever-agent@~0.6.1: + version "0.6.1" + resolved "http://registry.npm.taobao.org/forever-agent/download/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + +form-data@~2.1.1: + version "2.1.4" + resolved "http://registry.npm.taobao.org/form-data/download/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1" + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.5" + mime-types "^2.1.12" + +form-data@~2.3.1: + version "2.3.1" + resolved "http://registry.npm.taobao.org/form-data/download/form-data-2.3.1.tgz#6fb94fbd71885306d73d15cc497fe4cc4ecd44bf" + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.5" + mime-types "^2.1.12" + +forwarded@~0.1.2: + version "0.1.2" + resolved "http://registry.npm.taobao.org/forwarded/download/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" + +fragment-cache@^0.2.1: + version "0.2.1" + resolved "http://registry.npm.taobao.org/fragment-cache/download/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + dependencies: + map-cache "^0.2.2" + +fresh@0.5.2: + version "0.5.2" + resolved "http://registry.npm.taobao.org/fresh/download/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + +from2@^2.1.0: + version "2.3.0" + resolved "http://registry.npm.taobao.org/from2/download/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.0" + +front-matter@^2.3.0: + version "2.3.0" + resolved "http://registry.npm.taobao.org/front-matter/download/front-matter-2.3.0.tgz#7203af896ce357ee04e2aa45169ea91ed7f67504" + dependencies: + js-yaml "^3.10.0" + +fs-extra-p@^4.5.0: + version "4.5.0" + resolved "http://registry.npm.taobao.org/fs-extra-p/download/fs-extra-p-4.5.0.tgz#b79f3f3fcc0b5e57b7e7caeb06159f958ef15fe8" + dependencies: + bluebird-lst "^1.0.5" + fs-extra "^5.0.0" + +fs-extra@^0.30.0: + version "0.30.0" + resolved "http://registry.npm.taobao.org/fs-extra/download/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0" + dependencies: + graceful-fs "^4.1.2" + jsonfile "^2.1.0" + klaw "^1.0.0" + path-is-absolute "^1.0.0" + rimraf "^2.2.8" + +fs-extra@^2.0.0: + version "2.1.2" + resolved "http://registry.npm.taobao.org/fs-extra/download/fs-extra-2.1.2.tgz#046c70163cef9aad46b0e4a7fa467fb22d71de35" + dependencies: + graceful-fs "^4.1.2" + jsonfile "^2.1.0" + +fs-extra@^4.0.1: + version "4.0.3" + resolved "http://registry.npm.taobao.org/fs-extra/download/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-extra@^5.0.0: + version "5.0.0" + resolved "http://registry.npm.taobao.org/fs-extra/download/fs-extra-5.0.0.tgz#414d0110cdd06705734d055652c5411260c31abd" + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-write-stream-atomic@^1.0.8: + version "1.0.10" + resolved "http://registry.npm.taobao.org/fs-write-stream-atomic/download/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" + dependencies: + graceful-fs "^4.1.2" + iferr "^0.1.5" + imurmurhash "^0.1.4" + readable-stream "1 || 2" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/fs.realpath/download/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + +fsevents@^1.0.0: + version "1.1.3" + resolved "http://registry.npm.taobao.org/fsevents/download/fsevents-1.1.3.tgz#11f82318f5fe7bb2cd22965a108e9306208216d8" + dependencies: + nan "^2.3.0" + node-pre-gyp "^0.6.39" + +fstream-ignore@^1.0.5: + version "1.0.5" + resolved "http://registry.npm.taobao.org/fstream-ignore/download/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" + dependencies: + fstream "^1.0.0" + inherits "2" + minimatch "^3.0.0" + +fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2: + version "1.0.11" + resolved "http://registry.npm.taobao.org/fstream/download/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" + dependencies: + graceful-fs "^4.1.2" + inherits "~2.0.0" + mkdirp ">=0.5 0" + rimraf "2" + +function-bind@^1.0.2, function-bind@^1.1.1: + version "1.1.1" + resolved "http://registry.npm.taobao.org/function-bind/download/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/functional-red-black-tree/download/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + +gauge@~2.7.3: + version "2.7.4" + resolved "http://registry.npm.taobao.org/gauge/download/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + dependencies: + aproba "^1.0.3" + console-control-strings "^1.0.0" + has-unicode "^2.0.0" + object-assign "^4.1.0" + signal-exit "^3.0.0" + string-width "^1.0.1" + strip-ansi "^3.0.1" + wide-align "^1.1.0" + +gaze@^1.0.0, gaze@~1.1.2: + version "1.1.2" + resolved "http://registry.npm.taobao.org/gaze/download/gaze-1.1.2.tgz#847224677adb8870d679257ed3388fdb61e40105" + dependencies: + globule "^1.0.0" + +generate-function@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/generate-function/download/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74" + +generate-object-property@^1.1.0: + version "1.2.0" + resolved "http://registry.npm.taobao.org/generate-object-property/download/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0" + dependencies: + is-property "^1.0.0" + +get-caller-file@^1.0.1: + version "1.0.2" + resolved "http://registry.npm.taobao.org/get-caller-file/download/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" + +get-func-name@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/get-func-name/download/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" + +get-stdin@^4.0.1: + version "4.0.1" + resolved "http://registry.npm.taobao.org/get-stdin/download/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" + +get-stream@^3.0.0: + version "3.0.0" + resolved "http://registry.npm.taobao.org/get-stream/download/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "http://registry.npm.taobao.org/get-value/download/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + +getpass@^0.1.1: + version "0.1.7" + resolved "http://registry.npm.taobao.org/getpass/download/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + dependencies: + assert-plus "^1.0.0" + +github-markdown-css@^2.10.0: + version "2.10.0" + resolved "http://registry.npm.taobao.org/github-markdown-css/download/github-markdown-css-2.10.0.tgz#0612fed22816b33b282f37ef8def7a4ecabfe993" + +glob-base@^0.3.0: + version "0.3.0" + resolved "http://registry.npm.taobao.org/glob-base/download/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" + dependencies: + glob-parent "^2.0.0" + is-glob "^2.0.0" + +glob-parent@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/glob-parent/download/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" + dependencies: + is-glob "^2.0.0" + +glob-parent@^3.1.0: + version "3.1.0" + resolved "http://registry.npm.taobao.org/glob-parent/download/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + dependencies: + is-glob "^3.1.0" + path-dirname "^1.0.0" + +glob@7.1.1: + version "7.1.1" + resolved "http://registry.npm.taobao.org/glob/download/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.2" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^5.0.15: + version "5.0.15" + resolved "http://registry.npm.taobao.org/glob/download/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "2 || 3" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^6.0.4: + version "6.0.4" + resolved "http://registry.npm.taobao.org/glob/download/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22" + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "2 || 3" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@~7.1.1: + version "7.1.2" + resolved "http://registry.npm.taobao.org/glob/download/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +global-dirs@^0.1.0: + version "0.1.1" + resolved "http://registry.npm.taobao.org/global-dirs/download/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" + dependencies: + ini "^1.3.4" + +globals@^11.0.1: + version "11.3.0" + resolved "http://registry.npm.taobao.org/globals/download/globals-11.3.0.tgz#e04fdb7b9796d8adac9c8f64c14837b2313378b0" + +globals@^9.18.0: + version "9.18.0" + resolved "http://registry.npm.taobao.org/globals/download/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" + +globby@^5.0.0: + version "5.0.0" + resolved "http://registry.npm.taobao.org/globby/download/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" + dependencies: + array-union "^1.0.1" + arrify "^1.0.0" + glob "^7.0.3" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +globby@^6.1.0: + version "6.1.0" + resolved "http://registry.npm.taobao.org/globby/download/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" + 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 "http://registry.npm.taobao.org/globby/download/globby-7.1.1.tgz#fb2ccff9401f8600945dfada97440cca972b8680" + 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" + +globule@^1.0.0: + version "1.2.0" + resolved "http://registry.npm.taobao.org/globule/download/globule-1.2.0.tgz#1dc49c6822dd9e8a2fa00ba2a295006e8664bd09" + dependencies: + glob "~7.1.1" + lodash "~4.17.4" + minimatch "~3.0.2" + +got@^6.7.1: + version "6.7.1" + resolved "http://registry.npm.taobao.org/got/download/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" + dependencies: + create-error-class "^3.0.0" + duplexer3 "^0.1.4" + get-stream "^3.0.0" + is-redirect "^1.0.0" + is-retry-allowed "^1.0.0" + is-stream "^1.0.0" + lowercase-keys "^1.0.0" + safe-buffer "^5.0.1" + timed-out "^4.0.0" + unzip-response "^2.0.1" + url-parse-lax "^1.0.0" + +graceful-fs@^4.1.0, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9: + version "4.1.11" + resolved "http://registry.npm.taobao.org/graceful-fs/download/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" + +"graceful-readlink@>= 1.0.0": + version "1.0.1" + resolved "http://registry.npm.taobao.org/graceful-readlink/download/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" + +growl@1.9.2: + version "1.9.2" + resolved "http://registry.npm.taobao.org/growl/download/growl-1.9.2.tgz#0ea7743715db8d8de2c5ede1775e1b45ac85c02f" + +handle-thing@^1.2.5: + version "1.2.5" + resolved "http://registry.npm.taobao.org/handle-thing/download/handle-thing-1.2.5.tgz#fd7aad726bf1a5fd16dfc29b2f7a6601d27139c4" + +handlebars@^4.0.1: + version "4.0.11" + resolved "http://registry.npm.taobao.org/handlebars/download/handlebars-4.0.11.tgz#630a35dfe0294bc281edae6ffc5d329fc7982dcc" + dependencies: + async "^1.4.0" + optimist "^0.6.1" + source-map "^0.4.4" + optionalDependencies: + uglify-js "^2.6" + +har-schema@^1.0.5: + version "1.0.5" + resolved "http://registry.npm.taobao.org/har-schema/download/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" + +har-schema@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/har-schema/download/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + +har-validator@~2.0.6: + version "2.0.6" + resolved "http://registry.npm.taobao.org/har-validator/download/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d" + dependencies: + chalk "^1.1.1" + commander "^2.9.0" + is-my-json-valid "^2.12.4" + pinkie-promise "^2.0.0" + +har-validator@~4.2.1: + version "4.2.1" + resolved "http://registry.npm.taobao.org/har-validator/download/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a" + dependencies: + ajv "^4.9.1" + har-schema "^1.0.5" + +har-validator@~5.0.3: + version "5.0.3" + resolved "http://registry.npm.taobao.org/har-validator/download/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd" + dependencies: + ajv "^5.1.0" + har-schema "^2.0.0" + +has-ansi@^1.0.3: + version "1.0.3" + resolved "http://registry.npm.taobao.org/has-ansi/download/has-ansi-1.0.3.tgz#c0b5b1615d9e382b0ff67169d967b425e48ca538" + dependencies: + ansi-regex "^1.1.0" + get-stdin "^4.0.1" + +has-ansi@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/has-ansi/download/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + dependencies: + ansi-regex "^2.0.0" + +has-binary@0.1.7: + version "0.1.7" + resolved "http://registry.npm.taobao.org/has-binary/download/has-binary-0.1.7.tgz#68e61eb16210c9545a0a5cce06a873912fe1e68c" + dependencies: + isarray "0.0.1" + +has-cors@1.1.0: + version "1.1.0" + resolved "http://registry.npm.taobao.org/has-cors/download/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" + +has-flag@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/has-flag/download/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" + +has-flag@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/has-flag/download/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" + +has-unicode@^2.0.0: + version "2.0.1" + resolved "http://registry.npm.taobao.org/has-unicode/download/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + +has-value@^0.3.1: + version "0.3.1" + resolved "http://registry.npm.taobao.org/has-value/download/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + dependencies: + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" + +has-value@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/has-value/download/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + dependencies: + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + +has-values@^0.1.4: + version "0.1.4" + resolved "http://registry.npm.taobao.org/has-values/download/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + +has-values@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/has-values/download/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +has@^1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/has/download/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28" + dependencies: + function-bind "^1.0.2" + +hash-base@^2.0.0: + version "2.0.2" + resolved "http://registry.npm.taobao.org/hash-base/download/hash-base-2.0.2.tgz#66ea1d856db4e8a5470cadf6fce23ae5244ef2e1" + dependencies: + inherits "^2.0.1" + +hash-base@^3.0.0: + version "3.0.4" + resolved "http://registry.npm.taobao.org/hash-base/download/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +hash-sum@^1.0.2: + version "1.0.2" + resolved "http://registry.npm.taobao.org/hash-sum/download/hash-sum-1.0.2.tgz#33b40777754c6432573c120cc3808bbd10d47f04" + +hash.js@^1.0.0, hash.js@^1.0.3: + version "1.1.3" + resolved "http://registry.npm.taobao.org/hash.js/download/hash.js-1.1.3.tgz#340dedbe6290187151c1ea1d777a3448935df846" + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.0" + +hawk@3.1.3, hawk@~3.1.3: + version "3.1.3" + resolved "http://registry.npm.taobao.org/hawk/download/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" + dependencies: + boom "2.x.x" + cryptiles "2.x.x" + hoek "2.x.x" + sntp "1.x.x" + +hawk@~6.0.2: + version "6.0.2" + resolved "http://registry.npm.taobao.org/hawk/download/hawk-6.0.2.tgz#af4d914eb065f9b5ce4d9d11c1cb2126eecc3038" + dependencies: + boom "4.x.x" + cryptiles "3.x.x" + hoek "4.x.x" + sntp "2.x.x" + +he@1.1.1, he@1.1.x, he@^1.1.0: + version "1.1.1" + resolved "http://registry.npm.taobao.org/he/download/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" + +header-case@^1.0.0: + version "1.0.1" + resolved "http://registry.npm.taobao.org/header-case/download/header-case-1.0.1.tgz#9535973197c144b09613cd65d317ef19963bd02d" + dependencies: + no-case "^2.2.0" + upper-case "^1.1.3" + +highlight.js@^9.12.0, highlight.js@^9.3.0: + version "9.12.0" + resolved "http://registry.npm.taobao.org/highlight.js/download/highlight.js-9.12.0.tgz#e6d9dbe57cbefe60751f02af336195870c90c01e" + +hmac-drbg@^1.0.0: + version "1.0.1" + resolved "http://registry.npm.taobao.org/hmac-drbg/download/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + +hoek@2.x.x: + version "2.16.3" + resolved "http://registry.npm.taobao.org/hoek/download/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" + +hoek@4.x.x: + version "4.2.0" + resolved "http://registry.npm.taobao.org/hoek/download/hoek-4.2.0.tgz#72d9d0754f7fe25ca2d01ad8f8f9a9449a89526d" + +home-or-tmp@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/home-or-tmp/download/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.1" + +home-path@^1.0.1: + version "1.0.5" + resolved "http://registry.npm.taobao.org/home-path/download/home-path-1.0.5.tgz#788b29815b12d53bacf575648476e6f9041d133f" + +hosted-git-info@^2.1.4, hosted-git-info@^2.5.0: + version "2.5.0" + resolved "http://registry.npm.taobao.org/hosted-git-info/download/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c" + +hpack.js@^2.1.6: + version "2.1.6" + resolved "http://registry.npm.taobao.org/hpack.js/download/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" + dependencies: + inherits "^2.0.1" + obuf "^1.0.0" + readable-stream "^2.0.1" + wbuf "^1.1.0" + +html-comment-regex@^1.1.0: + version "1.1.1" + resolved "http://registry.npm.taobao.org/html-comment-regex/download/html-comment-regex-1.1.1.tgz#668b93776eaae55ebde8f3ad464b307a4963625e" + +html-entities@^1.2.0: + version "1.2.1" + resolved "http://registry.npm.taobao.org/html-entities/download/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f" + +html-minifier@^2.1.5: + version "2.1.7" + resolved "http://registry.npm.taobao.org/html-minifier/download/html-minifier-2.1.7.tgz#9051d6fcbbcf214ed307e1ad74f432bb9ad655cc" + dependencies: + change-case "3.0.x" + clean-css "3.4.x" + commander "2.9.x" + he "1.1.x" + ncname "1.0.x" + relateurl "0.2.x" + uglify-js "2.6.x" + +html-minifier@^3.2.3: + version "3.5.8" + resolved "http://registry.npm.taobao.org/html-minifier/download/html-minifier-3.5.8.tgz#5ccdb1f73a0d654e6090147511f6e6b2ee312700" + dependencies: + camel-case "3.0.x" + clean-css "4.1.x" + commander "2.12.x" + he "1.1.x" + ncname "1.0.x" + param-case "2.1.x" + relateurl "0.2.x" + uglify-js "3.3.x" + +html-webpack-plugin@^2.30.1: + version "2.30.1" + resolved "http://registry.npm.taobao.org/html-webpack-plugin/download/html-webpack-plugin-2.30.1.tgz#7f9c421b7ea91ec460f56527d78df484ee7537d5" + dependencies: + bluebird "^3.4.7" + html-minifier "^3.2.3" + loader-utils "^0.2.16" + lodash "^4.17.3" + pretty-error "^2.0.2" + toposort "^1.0.0" + +htmlparser2@^3.8.2: + version "3.9.2" + resolved "http://registry.npm.taobao.org/htmlparser2/download/htmlparser2-3.9.2.tgz#1bdf87acca0f3f9e53fa4fcceb0f4b4cbb00b338" + dependencies: + domelementtype "^1.3.0" + domhandler "^2.3.0" + domutils "^1.5.1" + entities "^1.1.1" + inherits "^2.0.1" + readable-stream "^2.0.2" + +htmlparser2@~3.3.0: + version "3.3.0" + resolved "http://registry.npm.taobao.org/htmlparser2/download/htmlparser2-3.3.0.tgz#cc70d05a59f6542e43f0e685c982e14c924a9efe" + dependencies: + domelementtype "1" + domhandler "2.1" + domutils "1.1" + readable-stream "1.0" + +http-deceiver@^1.2.7: + version "1.2.7" + resolved "http://registry.npm.taobao.org/http-deceiver/download/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" + +http-errors@1.6.2, http-errors@~1.6.2: + version "1.6.2" + resolved "http://registry.npm.taobao.org/http-errors/download/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736" + dependencies: + depd "1.1.1" + inherits "2.0.3" + setprototypeof "1.0.3" + statuses ">= 1.3.1 < 2" + +http-parser-js@>=0.4.0: + version "0.4.10" + resolved "http://registry.npm.taobao.org/http-parser-js/download/http-parser-js-0.4.10.tgz#92c9c1374c35085f75db359ec56cc257cbb93fa4" + +http-proxy-middleware@~0.17.4: + version "0.17.4" + resolved "http://registry.npm.taobao.org/http-proxy-middleware/download/http-proxy-middleware-0.17.4.tgz#642e8848851d66f09d4f124912846dbaeb41b833" + dependencies: + http-proxy "^1.16.2" + is-glob "^3.1.0" + lodash "^4.17.2" + micromatch "^2.3.11" + +http-proxy@^1.13.0, http-proxy@^1.16.2: + version "1.16.2" + resolved "http://registry.npm.taobao.org/http-proxy/download/http-proxy-1.16.2.tgz#06dff292952bf64dbe8471fa9df73066d4f37742" + dependencies: + eventemitter3 "1.x.x" + requires-port "1.x.x" + +http-signature@~1.1.0: + version "1.1.1" + resolved "http://registry.npm.taobao.org/http-signature/download/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" + dependencies: + assert-plus "^0.2.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +http-signature@~1.2.0: + version "1.2.0" + resolved "http://registry.npm.taobao.org/http-signature/download/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +https-browserify@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/https-browserify/download/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" + +humanize-plus@^1.8.1: + version "1.8.2" + resolved "http://registry.npm.taobao.org/humanize-plus/download/humanize-plus-1.8.2.tgz#a65b34459ad6367adbb3707a82a3c9f916167030" + +iconv-lite@0.4.19, iconv-lite@^0.4.17, iconv-lite@^0.4.19, iconv-lite@~0.4.13: + version "0.4.19" + resolved "http://registry.npm.taobao.org/iconv-lite/download/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" + +icss-replace-symbols@^1.1.0: + version "1.1.0" + resolved "http://registry.npm.taobao.org/icss-replace-symbols/download/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" + +icss-utils@^2.1.0: + version "2.1.0" + resolved "http://registry.npm.taobao.org/icss-utils/download/icss-utils-2.1.0.tgz#83f0a0ec378bf3246178b6c2ad9136f135b1c962" + dependencies: + postcss "^6.0.1" + +ieee754@^1.1.4: + version "1.1.8" + resolved "http://registry.npm.taobao.org/ieee754/download/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" + +iferr@^0.1.5: + version "0.1.5" + resolved "http://registry.npm.taobao.org/iferr/download/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" + +ignore@^3.3.3, ignore@^3.3.5, ignore@^3.3.6: + version "3.3.7" + resolved "http://registry.npm.taobao.org/ignore/download/ignore-3.3.7.tgz#612289bfb3c220e186a58118618d5be8c1bab021" + +immediate@~3.0.5: + version "3.0.6" + resolved "http://registry.npm.taobao.org/immediate/download/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" + +import-lazy@^2.1.0: + version "2.1.0" + resolved "http://registry.npm.taobao.org/import-lazy/download/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" + +import-local@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/import-local/download/import-local-1.0.0.tgz#5e4ffdc03f4fe6c009c6729beb29631c2f8227bc" + dependencies: + pkg-dir "^2.0.0" + resolve-cwd "^2.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "http://registry.npm.taobao.org/imurmurhash/download/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + +in-publish@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/in-publish/download/in-publish-2.0.0.tgz#e20ff5e3a2afc2690320b6dc552682a9c7fadf51" + +indent-string@^2.1.0: + version "2.1.0" + resolved "http://registry.npm.taobao.org/indent-string/download/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" + dependencies: + repeating "^2.0.0" + +indexes-of@^1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/indexes-of/download/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" + +indexof@0.0.1: + version "0.0.1" + resolved "http://registry.npm.taobao.org/indexof/download/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" + +inflight@^1.0.4: + version "1.0.6" + resolved "http://registry.npm.taobao.org/inflight/download/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.3" + resolved "http://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + +inherits@2.0.1: + version "2.0.1" + resolved "http://registry.npm.taobao.org/inherits/download/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + +ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: + version "1.3.5" + resolved "http://registry.npm.taobao.org/ini/download/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" + +inject-loader@^3.0.0: + version "3.0.1" + resolved "http://registry.npm.taobao.org/inject-loader/download/inject-loader-3.0.1.tgz#844a4596150cf6b864c2f79806d40a2caee4c2c7" + dependencies: + babel-core "~6" + +inquirer@^3.0.6, inquirer@~3.3.0: + version "3.3.0" + resolved "http://registry.npm.taobao.org/inquirer/download/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" + dependencies: + ansi-escapes "^3.0.0" + chalk "^2.0.0" + cli-cursor "^2.1.0" + cli-width "^2.0.0" + external-editor "^2.0.4" + figures "^2.0.0" + lodash "^4.3.0" + mute-stream "0.0.7" + run-async "^2.2.0" + rx-lite "^4.0.8" + rx-lite-aggregates "^4.0.8" + string-width "^2.1.0" + strip-ansi "^4.0.0" + through "^2.3.6" + +internal-ip@1.2.0: + version "1.2.0" + resolved "http://registry.npm.taobao.org/internal-ip/download/internal-ip-1.2.0.tgz#ae9fbf93b984878785d50a8de1b356956058cf5c" + dependencies: + meow "^3.3.0" + +interpret@^1.0.0: + version "1.1.0" + resolved "http://registry.npm.taobao.org/interpret/download/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614" + +invariant@^2.2.2: + version "2.2.2" + resolved "http://registry.npm.taobao.org/invariant/download/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" + dependencies: + loose-envify "^1.0.0" + +invert-kv@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/invert-kv/download/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" + +ip@^1.1.0, ip@^1.1.5: + version "1.1.5" + resolved "http://registry.npm.taobao.org/ip/download/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" + +ipaddr.js@1.5.2: + version "1.5.2" + resolved "http://registry.npm.taobao.org/ipaddr.js/download/ipaddr.js-1.5.2.tgz#d4b505bde9946987ccf0fc58d9010ff9607e3fa0" + +is-absolute-url@^2.0.0: + version "2.1.0" + resolved "http://registry.npm.taobao.org/is-absolute-url/download/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" + +is-accessor-descriptor@^0.1.6: + version "0.1.6" + resolved "http://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + dependencies: + kind-of "^3.0.2" + +is-accessor-descriptor@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + dependencies: + kind-of "^6.0.0" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "http://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + +is-binary-path@^1.0.0: + version "1.0.1" + resolved "http://registry.npm.taobao.org/is-binary-path/download/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + dependencies: + binary-extensions "^1.0.0" + +is-buffer@^1.0.2, is-buffer@^1.1.5: + version "1.1.6" + resolved "http://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + +is-builtin-module@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/is-builtin-module/download/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" + dependencies: + builtin-modules "^1.0.0" + +is-callable@^1.1.1, is-callable@^1.1.3: + version "1.1.3" + resolved "http://registry.npm.taobao.org/is-callable/download/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2" + +is-ci@^1.1.0: + version "1.1.0" + resolved "http://registry.npm.taobao.org/is-ci/download/is-ci-1.1.0.tgz#247e4162e7860cebbdaf30b774d6b0ac7dcfe7a5" + dependencies: + ci-info "^1.0.0" + +is-data-descriptor@^0.1.4: + version "0.1.4" + resolved "http://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + dependencies: + kind-of "^3.0.2" + +is-data-descriptor@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + dependencies: + kind-of "^6.0.0" + +is-date-object@^1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/is-date-object/download/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" + +is-descriptor@^0.1.0: + version "0.1.6" + resolved "http://registry.npm.taobao.org/is-descriptor/download/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + dependencies: + is-accessor-descriptor "^0.1.6" + is-data-descriptor "^0.1.4" + kind-of "^5.0.0" + +is-descriptor@^1.0.0: + version "1.0.2" + resolved "http://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + dependencies: + is-accessor-descriptor "^1.0.0" + is-data-descriptor "^1.0.0" + kind-of "^6.0.2" + +is-directory@^0.3.1: + version "0.3.1" + resolved "http://registry.npm.taobao.org/is-directory/download/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" + +is-dotfile@^1.0.0: + version "1.0.3" + resolved "http://registry.npm.taobao.org/is-dotfile/download/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" + +is-equal-shallow@^0.1.3: + version "0.1.3" + resolved "http://registry.npm.taobao.org/is-equal-shallow/download/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" + dependencies: + is-primitive "^2.0.0" + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "http://registry.npm.taobao.org/is-extendable/download/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + +is-extendable@^1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/is-extendable/download/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + dependencies: + is-plain-object "^2.0.4" + +is-extglob@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/is-extglob/download/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" + +is-extglob@^2.1.0, is-extglob@^2.1.1: + version "2.1.1" + resolved "http://registry.npm.taobao.org/is-extglob/download/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + +is-finite@^1.0.0: + version "1.0.2" + resolved "http://registry.npm.taobao.org/is-finite/download/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + +is-glob@^2.0.0, is-glob@^2.0.1: + version "2.0.1" + resolved "http://registry.npm.taobao.org/is-glob/download/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" + dependencies: + is-extglob "^1.0.0" + +is-glob@^3.1.0: + version "3.1.0" + resolved "http://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + dependencies: + is-extglob "^2.1.0" + +is-glob@^4.0.0: + version "4.0.0" + resolved "http://registry.npm.taobao.org/is-glob/download/is-glob-4.0.0.tgz#9521c76845cc2610a85203ddf080a958c2ffabc0" + dependencies: + is-extglob "^2.1.1" + +is-installed-globally@^0.1.0: + version "0.1.0" + resolved "http://registry.npm.taobao.org/is-installed-globally/download/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80" + dependencies: + global-dirs "^0.1.0" + is-path-inside "^1.0.0" + +is-lower-case@^1.1.0: + version "1.1.3" + resolved "http://registry.npm.taobao.org/is-lower-case/download/is-lower-case-1.1.3.tgz#7e147be4768dc466db3bfb21cc60b31e6ad69393" + dependencies: + lower-case "^1.1.0" + +is-my-json-valid@^2.12.4: + version "2.17.1" + resolved "http://registry.npm.taobao.org/is-my-json-valid/download/is-my-json-valid-2.17.1.tgz#3da98914a70a22f0a8563ef1511a246c6fc55471" + dependencies: + generate-function "^2.0.0" + generate-object-property "^1.1.0" + jsonpointer "^4.0.0" + xtend "^4.0.0" + +is-npm@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/is-npm/download/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" + +is-number@^0.1.1: + version "0.1.1" + resolved "http://registry.npm.taobao.org/is-number/download/is-number-0.1.1.tgz#69a7af116963d47206ec9bd9b48a14216f1e3806" + +is-number@^2.1.0: + version "2.1.0" + resolved "http://registry.npm.taobao.org/is-number/download/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" + dependencies: + kind-of "^3.0.2" + +is-number@^3.0.0: + version "3.0.0" + resolved "http://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + dependencies: + kind-of "^3.0.2" + +is-obj@^1.0.0: + version "1.0.1" + resolved "http://registry.npm.taobao.org/is-obj/download/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + +is-odd@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/is-odd/download/is-odd-1.0.0.tgz#3b8a932eb028b3775c39bb09e91767accdb69088" + dependencies: + is-number "^3.0.0" + +is-path-cwd@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/is-path-cwd/download/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" + +is-path-in-cwd@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/is-path-in-cwd/download/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc" + dependencies: + is-path-inside "^1.0.0" + +is-path-inside@^1.0.0: + version "1.0.1" + resolved "http://registry.npm.taobao.org/is-path-inside/download/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" + dependencies: + path-is-inside "^1.0.1" + +is-plain-obj@^1.0.0: + version "1.1.0" + resolved "http://registry.npm.taobao.org/is-plain-obj/download/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + +is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: + version "2.0.4" + resolved "http://registry.npm.taobao.org/is-plain-object/download/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + dependencies: + isobject "^3.0.1" + +is-posix-bracket@^0.1.0: + version "0.1.1" + resolved "http://registry.npm.taobao.org/is-posix-bracket/download/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" + +is-primitive@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/is-primitive/download/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" + +is-promise@^2.1.0: + version "2.1.0" + resolved "http://registry.npm.taobao.org/is-promise/download/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" + +is-property@^1.0.0: + version "1.0.2" + resolved "http://registry.npm.taobao.org/is-property/download/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" + +is-redirect@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/is-redirect/download/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" + +is-regex@^1.0.4: + version "1.0.4" + resolved "http://registry.npm.taobao.org/is-regex/download/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" + dependencies: + has "^1.0.1" + +is-resolvable@^1.0.0: + version "1.1.0" + resolved "http://registry.npm.taobao.org/is-resolvable/download/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" + +is-retry-allowed@^1.0.0: + version "1.1.0" + resolved "http://registry.npm.taobao.org/is-retry-allowed/download/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" + +is-stream@^1.0.0, is-stream@^1.0.1, is-stream@^1.1.0: + version "1.1.0" + resolved "http://registry.npm.taobao.org/is-stream/download/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + +is-svg@^2.0.0: + version "2.1.0" + resolved "http://registry.npm.taobao.org/is-svg/download/is-svg-2.1.0.tgz#cf61090da0d9efbcab8722deba6f032208dbb0e9" + dependencies: + html-comment-regex "^1.1.0" + +is-symbol@^1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/is-symbol/download/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572" + +is-typedarray@~1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/is-typedarray/download/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + +is-upper-case@^1.1.0: + version "1.1.2" + resolved "http://registry.npm.taobao.org/is-upper-case/download/is-upper-case-1.1.2.tgz#8d0b1fa7e7933a1e58483600ec7d9661cbaf756f" + dependencies: + upper-case "^1.1.0" + +is-utf8@^0.2.0: + version "0.2.1" + resolved "http://registry.npm.taobao.org/is-utf8/download/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + +is-windows@^1.0.0: + version "1.0.1" + resolved "http://registry.npm.taobao.org/is-windows/download/is-windows-1.0.1.tgz#310db70f742d259a16a369202b51af84233310d9" + +is-wsl@^1.1.0: + version "1.1.0" + resolved "http://registry.npm.taobao.org/is-wsl/download/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" + +isarray@0.0.1: + version "0.0.1" + resolved "http://registry.npm.taobao.org/isarray/download/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + +isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + +isbinaryfile@^3.0.0, isbinaryfile@^3.0.2: + version "3.0.2" + resolved "http://registry.npm.taobao.org/isbinaryfile/download/isbinaryfile-3.0.2.tgz#4a3e974ec0cba9004d3fc6cde7209ea69368a621" + +isexe@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/isexe/download/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + +isobject@^2.0.0: + version "2.1.0" + resolved "http://registry.npm.taobao.org/isobject/download/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + dependencies: + isarray "1.0.0" + +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "http://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + +isstream@~0.1.2: + version "0.1.2" + resolved "http://registry.npm.taobao.org/isstream/download/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + +istanbul-lib-coverage@^1.1.1: + version "1.1.1" + resolved "http://registry.npm.taobao.org/istanbul-lib-coverage/download/istanbul-lib-coverage-1.1.1.tgz#73bfb998885299415c93d38a3e9adf784a77a9da" + +istanbul-lib-instrument@^1.7.5: + version "1.9.1" + resolved "http://registry.npm.taobao.org/istanbul-lib-instrument/download/istanbul-lib-instrument-1.9.1.tgz#250b30b3531e5d3251299fdd64b0b2c9db6b558e" + dependencies: + babel-generator "^6.18.0" + babel-template "^6.16.0" + babel-traverse "^6.18.0" + babel-types "^6.18.0" + babylon "^6.18.0" + istanbul-lib-coverage "^1.1.1" + semver "^5.3.0" + +istanbul@^0.4.0: + version "0.4.5" + resolved "http://registry.npm.taobao.org/istanbul/download/istanbul-0.4.5.tgz#65c7d73d4c4da84d4f3ac310b918fb0b8033733b" + dependencies: + abbrev "1.0.x" + async "1.x" + escodegen "1.8.x" + esprima "2.7.x" + glob "^5.0.15" + handlebars "^4.0.1" + js-yaml "3.x" + mkdirp "0.5.x" + nopt "3.x" + once "1.x" + resolve "1.1.x" + supports-color "^3.1.0" + which "^1.1.1" + wordwrap "^1.0.0" + +js-base64@^2.1.8, js-base64@^2.1.9: + version "2.4.3" + resolved "http://registry.npm.taobao.org/js-base64/download/js-base64-2.4.3.tgz#2e545ec2b0f2957f41356510205214e98fad6582" + +js-string-escape@~1.0.0: + version "1.0.1" + resolved "http://registry.npm.taobao.org/js-string-escape/download/js-string-escape-1.0.1.tgz#e2625badbc0d67c7533e9edc1068c587ae4137ef" + +js-tokens@^3.0.0, js-tokens@^3.0.2: + version "3.0.2" + resolved "http://registry.npm.taobao.org/js-tokens/download/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" + +js-yaml@3.x, js-yaml@^3.10.0, js-yaml@^3.4.3, js-yaml@^3.9.1: + version "3.10.0" + resolved "http://registry.npm.taobao.org/js-yaml/download/js-yaml-3.10.0.tgz#2e78441646bd4682e963f22b6e92823c309c62dc" + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +js-yaml@~3.7.0: + version "3.7.0" + resolved "http://registry.npm.taobao.org/js-yaml/download/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80" + dependencies: + argparse "^1.0.7" + esprima "^2.6.0" + +jsbn@~0.1.0: + version "0.1.1" + resolved "http://registry.npm.taobao.org/jsbn/download/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + +jsesc@^1.3.0: + version "1.3.0" + resolved "http://registry.npm.taobao.org/jsesc/download/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" + +jsesc@~0.5.0: + version "0.5.0" + resolved "http://registry.npm.taobao.org/jsesc/download/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + +json-loader@^0.5.4: + version "0.5.7" + resolved "http://registry.npm.taobao.org/json-loader/download/json-loader-0.5.7.tgz#dca14a70235ff82f0ac9a3abeb60d337a365185d" + +json-schema-traverse@^0.3.0: + version "0.3.1" + resolved "http://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" + +json-schema@0.2.3: + version "0.2.3" + resolved "http://registry.npm.taobao.org/json-schema/download/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/json-stable-stringify-without-jsonify/download/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + +json-stable-stringify@^1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/json-stable-stringify/download/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" + dependencies: + jsonify "~0.0.0" + +json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "http://registry.npm.taobao.org/json-stringify-safe/download/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + +json3@3.3.2, json3@^3.3.2: + version "3.3.2" + resolved "http://registry.npm.taobao.org/json3/download/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1" + +json5@^0.5.0, json5@^0.5.1: + version "0.5.1" + resolved "http://registry.npm.taobao.org/json5/download/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" + +jsonfile@^2.1.0: + version "2.4.0" + resolved "http://registry.npm.taobao.org/jsonfile/download/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" + optionalDependencies: + graceful-fs "^4.1.6" + +jsonfile@^4.0.0: + version "4.0.0" + resolved "http://registry.npm.taobao.org/jsonfile/download/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + optionalDependencies: + graceful-fs "^4.1.6" + +jsonify@~0.0.0: + version "0.0.0" + resolved "http://registry.npm.taobao.org/jsonify/download/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" + +jsonpointer@^4.0.0: + version "4.0.1" + resolved "http://registry.npm.taobao.org/jsonpointer/download/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9" + +jsprim@^1.2.2: + version "1.4.1" + resolved "http://registry.npm.taobao.org/jsprim/download/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.2.3" + verror "1.10.0" + +karma-chai@^0.1.0: + version "0.1.0" + resolved "http://registry.npm.taobao.org/karma-chai/download/karma-chai-0.1.0.tgz#bee5ad40400517811ae34bb945f762909108b79a" + +karma-coverage@^1.1.1: + version "1.1.1" + resolved "http://registry.npm.taobao.org/karma-coverage/download/karma-coverage-1.1.1.tgz#5aff8b39cf6994dc22de4c84362c76001b637cf6" + dependencies: + dateformat "^1.0.6" + istanbul "^0.4.0" + lodash "^3.8.0" + minimatch "^3.0.0" + source-map "^0.5.1" + +karma-electron@^5.1.1: + version "5.2.2" + resolved "http://registry.npm.taobao.org/karma-electron/download/karma-electron-5.2.2.tgz#bdab1b2ce142fba7d12156d0add6061816b38258" + dependencies: + commander "~2.9.0" + convert-source-map "~1.2.0" + js-string-escape "~1.0.0" + minstache "~1.2.0" + xtend "~4.0.1" + +karma-mocha@^1.2.0: + version "1.3.0" + resolved "http://registry.npm.taobao.org/karma-mocha/download/karma-mocha-1.3.0.tgz#eeaac7ffc0e201eb63c467440d2b69c7cf3778bf" + dependencies: + minimist "1.2.0" + +karma-sourcemap-loader@^0.3.7: + version "0.3.7" + resolved "http://registry.npm.taobao.org/karma-sourcemap-loader/download/karma-sourcemap-loader-0.3.7.tgz#91322c77f8f13d46fed062b042e1009d4c4505d8" + dependencies: + graceful-fs "^4.1.2" + +karma-spec-reporter@^0.0.31: + version "0.0.31" + resolved "http://registry.npm.taobao.org/karma-spec-reporter/download/karma-spec-reporter-0.0.31.tgz#4830dc7148a155c7d7a186e632339a0d80fadec3" + dependencies: + colors "^1.1.2" + +karma-webpack@^2.0.1: + version "2.0.9" + resolved "http://registry.npm.taobao.org/karma-webpack/download/karma-webpack-2.0.9.tgz#61c88091f7dd910635134c032b266a465affb57f" + dependencies: + async "~0.9.0" + loader-utils "^0.2.5" + lodash "^3.8.0" + source-map "^0.5.6" + webpack-dev-middleware "^1.12.0" + +karma@^1.3.0: + version "1.7.1" + resolved "http://registry.npm.taobao.org/karma/download/karma-1.7.1.tgz#85cc08e9e0a22d7ce9cca37c4a1be824f6a2b1ae" + dependencies: + bluebird "^3.3.0" + body-parser "^1.16.1" + chokidar "^1.4.1" + colors "^1.1.0" + combine-lists "^1.0.0" + connect "^3.6.0" + core-js "^2.2.0" + di "^0.0.1" + dom-serialize "^2.2.0" + expand-braces "^0.1.1" + glob "^7.1.1" + graceful-fs "^4.1.2" + http-proxy "^1.13.0" + isbinaryfile "^3.0.0" + lodash "^3.8.0" + log4js "^0.6.31" + mime "^1.3.4" + minimatch "^3.0.2" + optimist "^0.6.1" + qjobs "^1.1.4" + range-parser "^1.2.0" + rimraf "^2.6.0" + safe-buffer "^5.0.1" + socket.io "1.7.3" + source-map "^0.5.3" + tmp "0.0.31" + useragent "^2.1.12" + +keyboardevent-from-electron-accelerator@^1.1.0: + version "1.1.0" + resolved "http://registry.npm.taobao.org/keyboardevent-from-electron-accelerator/download/keyboardevent-from-electron-accelerator-1.1.0.tgz#324614f6e33490c37ffc5be5876b3e85fe223c84" + +keyboardevents-areequal@^0.2.1: + version "0.2.2" + resolved "http://registry.npm.taobao.org/keyboardevents-areequal/download/keyboardevents-areequal-0.2.2.tgz#88191ec738ce9f7591c25e9056de928b40277194" + +keypress@0.1.x: + version "0.1.0" + resolved "http://registry.npm.taobao.org/keypress/download/keypress-0.1.0.tgz#4a3188d4291b66b4f65edb99f806aa9ae293592a" + +killable@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/killable/download/killable-1.0.0.tgz#da8b84bd47de5395878f95d64d02f2449fe05e6b" + +kind-of@^2.0.1: + version "2.0.1" + resolved "http://registry.npm.taobao.org/kind-of/download/kind-of-2.0.1.tgz#018ec7a4ce7e3a86cb9141be519d24c8faa981b5" + dependencies: + is-buffer "^1.0.2" + +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0, kind-of@^3.2.2: + version "3.2.2" + resolved "http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "http://registry.npm.taobao.org/kind-of/download/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + dependencies: + is-buffer "^1.1.5" + +kind-of@^5.0.0, kind-of@^5.0.2: + version "5.1.0" + resolved "http://registry.npm.taobao.org/kind-of/download/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + +kind-of@^6.0.0, kind-of@^6.0.2: + version "6.0.2" + resolved "http://registry.npm.taobao.org/kind-of/download/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" + +klaw@^1.0.0: + version "1.3.1" + resolved "http://registry.npm.taobao.org/klaw/download/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" + optionalDependencies: + graceful-fs "^4.1.9" + +latest-version@^3.0.0: + version "3.1.0" + resolved "http://registry.npm.taobao.org/latest-version/download/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15" + dependencies: + package-json "^4.0.0" + +lazy-cache@^0.2.3: + version "0.2.7" + resolved "http://registry.npm.taobao.org/lazy-cache/download/lazy-cache-0.2.7.tgz#7feddf2dcb6edb77d11ef1d117ab5ffdf0ab1b65" + +lazy-cache@^1.0.3: + version "1.0.4" + resolved "http://registry.npm.taobao.org/lazy-cache/download/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" + +lazy-cache@^2.0.2: + version "2.0.2" + resolved "http://registry.npm.taobao.org/lazy-cache/download/lazy-cache-2.0.2.tgz#b9190a4f913354694840859f8a8f7084d8822264" + dependencies: + set-getter "^0.1.0" + +lazy-val@^1.0.3: + version "1.0.3" + resolved "http://registry.npm.taobao.org/lazy-val/download/lazy-val-1.0.3.tgz#bb97b200ef00801d94c317e29dc6ed39e31c5edc" + +lazystream@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/lazystream/download/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4" + dependencies: + readable-stream "^2.0.5" + +lcid@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/lcid/download/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" + dependencies: + invert-kv "^1.0.0" + +levn@^0.3.0, levn@~0.3.0: + version "0.3.0" + resolved "http://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +lie@3.1.1: + version "3.1.1" + resolved "http://registry.npm.taobao.org/lie/download/lie-3.1.1.tgz#9a436b2cc7746ca59de7a41fa469b3efb76bd87e" + dependencies: + immediate "~3.0.5" + +load-json-file@^1.0.0: + version "1.1.0" + resolved "http://registry.npm.taobao.org/load-json-file/download/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + pinkie-promise "^2.0.0" + strip-bom "^2.0.0" + +load-json-file@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/load-json-file/download/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + strip-bom "^3.0.0" + +loader-fs-cache@^1.0.0: + version "1.0.1" + resolved "http://registry.npm.taobao.org/loader-fs-cache/download/loader-fs-cache-1.0.1.tgz#56e0bf08bd9708b26a765b68509840c8dec9fdbc" + dependencies: + find-cache-dir "^0.1.1" + mkdirp "0.5.1" + +loader-runner@^2.3.0: + version "2.3.0" + resolved "http://registry.npm.taobao.org/loader-runner/download/loader-runner-2.3.0.tgz#f482aea82d543e07921700d5a46ef26fdac6b8a2" + +loader-utils@^0.2.15, loader-utils@^0.2.16, loader-utils@^0.2.5: + version "0.2.17" + resolved "http://registry.npm.taobao.org/loader-utils/download/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348" + dependencies: + big.js "^3.1.3" + emojis-list "^2.0.0" + json5 "^0.5.0" + object-assign "^4.0.1" + +loader-utils@^1.0.1, loader-utils@^1.0.2, loader-utils@^1.1.0: + version "1.1.0" + resolved "http://registry.npm.taobao.org/loader-utils/download/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd" + dependencies: + big.js "^3.1.3" + emojis-list "^2.0.0" + json5 "^0.5.0" + +localforage@^1.3.0: + version "1.5.6" + resolved "http://registry.npm.taobao.org/localforage/download/localforage-1.5.6.tgz#d034d15e5372ee97c64173e9a9aeb96815f5dd06" + dependencies: + lie "3.1.1" + +locate-path@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/locate-path/download/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + +lodash._arraycopy@^3.0.0: + version "3.0.0" + resolved "http://registry.npm.taobao.org/lodash._arraycopy/download/lodash._arraycopy-3.0.0.tgz#76e7b7c1f1fb92547374878a562ed06a3e50f6e1" + +lodash._arrayeach@^3.0.0: + version "3.0.0" + resolved "http://registry.npm.taobao.org/lodash._arrayeach/download/lodash._arrayeach-3.0.0.tgz#bab156b2a90d3f1bbd5c653403349e5e5933ef9e" + +lodash._baseassign@^3.0.0: + version "3.2.0" + resolved "http://registry.npm.taobao.org/lodash._baseassign/download/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e" + dependencies: + lodash._basecopy "^3.0.0" + lodash.keys "^3.0.0" + +lodash._baseclone@^3.0.0: + version "3.3.0" + resolved "http://registry.npm.taobao.org/lodash._baseclone/download/lodash._baseclone-3.3.0.tgz#303519bf6393fe7e42f34d8b630ef7794e3542b7" + dependencies: + lodash._arraycopy "^3.0.0" + lodash._arrayeach "^3.0.0" + lodash._baseassign "^3.0.0" + lodash._basefor "^3.0.0" + lodash.isarray "^3.0.0" + lodash.keys "^3.0.0" + +lodash._basecopy@^3.0.0: + version "3.0.1" + resolved "http://registry.npm.taobao.org/lodash._basecopy/download/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" + +lodash._basecreate@^3.0.0: + version "3.0.3" + resolved "http://registry.npm.taobao.org/lodash._basecreate/download/lodash._basecreate-3.0.3.tgz#1bc661614daa7fc311b7d03bf16806a0213cf821" + +lodash._basefor@^3.0.0: + version "3.0.3" + resolved "http://registry.npm.taobao.org/lodash._basefor/download/lodash._basefor-3.0.3.tgz#7550b4e9218ef09fad24343b612021c79b4c20c2" + +lodash._bindcallback@^3.0.0: + version "3.0.1" + resolved "http://registry.npm.taobao.org/lodash._bindcallback/download/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e" + +lodash._createassigner@^3.0.0: + version "3.1.1" + resolved "http://registry.npm.taobao.org/lodash._createassigner/download/lodash._createassigner-3.1.1.tgz#838a5bae2fdaca63ac22dee8e19fa4e6d6970b11" + dependencies: + lodash._bindcallback "^3.0.0" + lodash._isiterateecall "^3.0.0" + lodash.restparam "^3.0.0" + +lodash._getnative@^3.0.0: + version "3.9.1" + resolved "http://registry.npm.taobao.org/lodash._getnative/download/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" + +lodash._isiterateecall@^3.0.0: + version "3.0.9" + resolved "http://registry.npm.taobao.org/lodash._isiterateecall/download/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c" + +lodash.assign@^4.2.0: + version "4.2.0" + resolved "http://registry.npm.taobao.org/lodash.assign/download/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" + +lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "http://registry.npm.taobao.org/lodash.camelcase/download/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + +lodash.clonedeep@^3.0.2: + version "3.0.2" + resolved "http://registry.npm.taobao.org/lodash.clonedeep/download/lodash.clonedeep-3.0.2.tgz#a0a1e40d82a5ea89ff5b147b8444ed63d92827db" + dependencies: + lodash._baseclone "^3.0.0" + lodash._bindcallback "^3.0.0" + +lodash.clonedeep@^4.3.2: + version "4.5.0" + resolved "http://registry.npm.taobao.org/lodash.clonedeep/download/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" + +lodash.cond@^4.3.0: + version "4.5.2" + resolved "http://registry.npm.taobao.org/lodash.cond/download/lodash.cond-4.5.2.tgz#f471a1da486be60f6ab955d17115523dd1d255d5" + +lodash.create@3.1.1: + version "3.1.1" + resolved "http://registry.npm.taobao.org/lodash.create/download/lodash.create-3.1.1.tgz#d7f2849f0dbda7e04682bb8cd72ab022461debe7" + dependencies: + lodash._baseassign "^3.0.0" + lodash._basecreate "^3.0.0" + lodash._isiterateecall "^3.0.0" + +lodash.isarguments@^3.0.0: + version "3.1.0" + resolved "http://registry.npm.taobao.org/lodash.isarguments/download/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" + +lodash.isarray@^3.0.0: + version "3.0.4" + resolved "http://registry.npm.taobao.org/lodash.isarray/download/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" + +lodash.isplainobject@^3.0.0: + version "3.2.0" + resolved "http://registry.npm.taobao.org/lodash.isplainobject/download/lodash.isplainobject-3.2.0.tgz#9a8238ae16b200432960cd7346512d0123fbf4c5" + dependencies: + lodash._basefor "^3.0.0" + lodash.isarguments "^3.0.0" + lodash.keysin "^3.0.0" + +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "http://registry.npm.taobao.org/lodash.isplainobject/download/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + +lodash.istypedarray@^3.0.0: + version "3.0.6" + resolved "http://registry.npm.taobao.org/lodash.istypedarray/download/lodash.istypedarray-3.0.6.tgz#c9a477498607501d8e8494d283b87c39281cef62" + +lodash.keys@^3.0.0: + version "3.1.2" + resolved "http://registry.npm.taobao.org/lodash.keys/download/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" + dependencies: + lodash._getnative "^3.0.0" + lodash.isarguments "^3.0.0" + lodash.isarray "^3.0.0" + +lodash.keysin@^3.0.0: + version "3.0.8" + resolved "http://registry.npm.taobao.org/lodash.keysin/download/lodash.keysin-3.0.8.tgz#22c4493ebbedb1427962a54b445b2c8a767fb47f" + dependencies: + lodash.isarguments "^3.0.0" + lodash.isarray "^3.0.0" + +lodash.memoize@^4.1.2: + version "4.1.2" + resolved "http://registry.npm.taobao.org/lodash.memoize/download/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + +lodash.merge@^3.3.2: + version "3.3.2" + resolved "http://registry.npm.taobao.org/lodash.merge/download/lodash.merge-3.3.2.tgz#0d90d93ed637b1878437bb3e21601260d7afe994" + dependencies: + lodash._arraycopy "^3.0.0" + lodash._arrayeach "^3.0.0" + lodash._createassigner "^3.0.0" + lodash._getnative "^3.0.0" + lodash.isarguments "^3.0.0" + lodash.isarray "^3.0.0" + lodash.isplainobject "^3.0.0" + lodash.istypedarray "^3.0.0" + lodash.keys "^3.0.0" + lodash.keysin "^3.0.0" + lodash.toplainobject "^3.0.0" + +lodash.merge@^4.6.0: + version "4.6.1" + resolved "http://registry.npm.taobao.org/lodash.merge/download/lodash.merge-4.6.1.tgz#adc25d9cb99b9391c59624f379fbba60d7111d54" + +lodash.mergewith@^4.6.0: + version "4.6.1" + resolved "http://registry.npm.taobao.org/lodash.mergewith/download/lodash.mergewith-4.6.1.tgz#639057e726c3afbdb3e7d42741caa8d6e4335927" + +lodash.restparam@^3.0.0: + version "3.6.1" + resolved "http://registry.npm.taobao.org/lodash.restparam/download/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" + +lodash.some@^4.6.0: + version "4.6.0" + resolved "http://registry.npm.taobao.org/lodash.some/download/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d" + +lodash.tail@^4.1.1: + version "4.1.1" + resolved "http://registry.npm.taobao.org/lodash.tail/download/lodash.tail-4.1.1.tgz#d2333a36d9e7717c8ad2f7cacafec7c32b444664" + +lodash.toplainobject@^3.0.0: + version "3.0.0" + resolved "http://registry.npm.taobao.org/lodash.toplainobject/download/lodash.toplainobject-3.0.0.tgz#28790ad942d293d78aa663a07ecf7f52ca04198d" + dependencies: + lodash._basecopy "^3.0.0" + lodash.keysin "^3.0.0" + +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "http://registry.npm.taobao.org/lodash.uniq/download/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + +lodash@3.x, lodash@^3.8.0: + version "3.10.1" + resolved "http://registry.npm.taobao.org/lodash/download/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" + +lodash@^4.0.0, lodash@^4.14.0, lodash@^4.17.2, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.3.0, lodash@^4.5.0, lodash@^4.8.0, lodash@~4.17.4: + version "4.17.5" + resolved "http://registry.npm.taobao.org/lodash/download/lodash-4.17.5.tgz#99a92d65c0272debe8c96b6057bc8fbfa3bed511" + +log-update@^1.0.2: + version "1.0.2" + resolved "http://registry.npm.taobao.org/log-update/download/log-update-1.0.2.tgz#19929f64c4093d2d2e7075a1dad8af59c296b8d1" + dependencies: + ansi-escapes "^1.0.0" + cli-cursor "^1.0.2" + +log4js@^0.6.31: + version "0.6.38" + resolved "http://registry.npm.taobao.org/log4js/download/log4js-0.6.38.tgz#2c494116695d6fb25480943d3fc872e662a522fd" + dependencies: + readable-stream "~1.0.2" + semver "~4.3.3" + +loglevel@^1.4.1: + version "1.6.1" + resolved "http://registry.npm.taobao.org/loglevel/download/loglevel-1.6.1.tgz#e0fc95133b6ef276cdc8887cdaf24aa6f156f8fa" + +longest@^1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/longest/download/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" + +loose-envify@^1.0.0: + version "1.3.1" + resolved "http://registry.npm.taobao.org/loose-envify/download/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" + dependencies: + js-tokens "^3.0.0" + +loud-rejection@^1.0.0: + version "1.6.0" + resolved "http://registry.npm.taobao.org/loud-rejection/download/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" + dependencies: + currently-unhandled "^0.4.1" + signal-exit "^3.0.0" + +lower-case-first@^1.0.0: + version "1.0.2" + resolved "http://registry.npm.taobao.org/lower-case-first/download/lower-case-first-1.0.2.tgz#e5da7c26f29a7073be02d52bac9980e5922adfa1" + dependencies: + lower-case "^1.1.2" + +lower-case@^1.1.0, lower-case@^1.1.1, lower-case@^1.1.2: + version "1.1.4" + resolved "http://registry.npm.taobao.org/lower-case/download/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" + +lowercase-keys@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/lowercase-keys/download/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" + +lru-cache@4.1.x, lru-cache@^4.0.1, lru-cache@^4.1.1: + version "4.1.1" + resolved "http://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.1.tgz#622e32e82488b49279114a4f9ecf45e7cd6bba55" + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +macaddress@^0.2.8: + version "0.2.8" + resolved "http://registry.npm.taobao.org/macaddress/download/macaddress-0.2.8.tgz#5904dc537c39ec6dbefeae902327135fa8511f12" + +make-dir@^1.0.0: + version "1.1.0" + resolved "http://registry.npm.taobao.org/make-dir/download/make-dir-1.1.0.tgz#19b4369fe48c116f53c2af95ad102c0e39e85d51" + dependencies: + pify "^3.0.0" + +map-cache@^0.2.2: + version "0.2.2" + resolved "http://registry.npm.taobao.org/map-cache/download/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + +map-obj@^1.0.0, map-obj@^1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/map-obj/download/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + +map-visit@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/map-visit/download/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + dependencies: + object-visit "^1.0.0" + +marked@^0.3.12: + version "0.3.12" + resolved "http://registry.npm.taobao.org/marked/download/marked-0.3.12.tgz#7cf25ff2252632f3fe2406bde258e94eee927519" + +math-expression-evaluator@^1.2.14: + version "1.2.17" + resolved "http://registry.npm.taobao.org/math-expression-evaluator/download/math-expression-evaluator-1.2.17.tgz#de819fdbcd84dccd8fae59c6aeb79615b9d266ac" + +md5.js@^1.3.4: + version "1.3.4" + resolved "http://registry.npm.taobao.org/md5.js/download/md5.js-1.3.4.tgz#e9bdbde94a20a5ac18b04340fc5764d5b09d901d" + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + +media-typer@0.3.0: + version "0.3.0" + resolved "http://registry.npm.taobao.org/media-typer/download/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + +mem@^1.1.0: + version "1.1.0" + resolved "http://registry.npm.taobao.org/mem/download/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" + dependencies: + mimic-fn "^1.0.0" + +memory-fs@^0.4.0, memory-fs@~0.4.1: + version "0.4.1" + resolved "http://registry.npm.taobao.org/memory-fs/download/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +meow@^3.1.0, meow@^3.3.0, meow@^3.7.0: + version "3.7.0" + resolved "http://registry.npm.taobao.org/meow/download/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" + dependencies: + camelcase-keys "^2.0.0" + decamelize "^1.1.2" + loud-rejection "^1.0.0" + map-obj "^1.0.1" + minimist "^1.1.3" + normalize-package-data "^2.3.4" + object-assign "^4.0.1" + read-pkg-up "^1.0.1" + redent "^1.0.0" + trim-newlines "^1.0.0" + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/merge-descriptors/download/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + +methods@~1.1.2: + version "1.1.2" + resolved "http://registry.npm.taobao.org/methods/download/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + +micromatch@^2.1.5, micromatch@^2.3.11: + version "2.3.11" + resolved "http://registry.npm.taobao.org/micromatch/download/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" + dependencies: + arr-diff "^2.0.0" + array-unique "^0.2.1" + braces "^1.8.2" + expand-brackets "^0.1.4" + extglob "^0.3.1" + filename-regex "^2.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.1" + kind-of "^3.0.2" + normalize-path "^2.0.1" + object.omit "^2.0.0" + parse-glob "^3.0.4" + regex-cache "^0.4.2" + +micromatch@^3.1.4: + version "3.1.5" + resolved "http://registry.npm.taobao.org/micromatch/download/micromatch-3.1.5.tgz#d05e168c206472dfbca985bfef4f57797b4cd4ba" + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + braces "^2.3.0" + define-property "^1.0.0" + extend-shallow "^2.0.1" + extglob "^2.0.2" + fragment-cache "^0.2.1" + kind-of "^6.0.0" + nanomatch "^1.2.5" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +miller-rabin@^4.0.0: + version "4.0.1" + resolved "http://registry.npm.taobao.org/miller-rabin/download/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" + dependencies: + bn.js "^4.0.0" + brorand "^1.0.1" + +"mime-db@>= 1.30.0 < 2": + version "1.32.0" + resolved "http://registry.npm.taobao.org/mime-db/download/mime-db-1.32.0.tgz#485b3848b01a3cda5f968b4882c0771e58e09414" + +mime-db@~1.30.0: + version "1.30.0" + resolved "http://registry.npm.taobao.org/mime-db/download/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01" + +mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.15, mime-types@~2.1.16, mime-types@~2.1.17, mime-types@~2.1.7: + version "2.1.17" + resolved "http://registry.npm.taobao.org/mime-types/download/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a" + dependencies: + mime-db "~1.30.0" + +mime@1.3.x: + version "1.3.6" + resolved "http://registry.npm.taobao.org/mime/download/mime-1.3.6.tgz#591d84d3653a6b0b4a3b9df8de5aa8108e72e5e0" + +mime@1.4.1: + version "1.4.1" + resolved "http://registry.npm.taobao.org/mime/download/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" + +mime@^1.3.4, mime@^1.5.0: + version "1.6.0" + resolved "http://registry.npm.taobao.org/mime/download/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + +mime@^2.2.0: + version "2.2.0" + resolved "http://registry.npm.taobao.org/mime/download/mime-2.2.0.tgz#161e541965551d3b549fa1114391e3a3d55b923b" + +mimic-fn@^1.0.0: + version "1.2.0" + resolved "http://registry.npm.taobao.org/mimic-fn/download/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + +minimalistic-assert@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/minimalistic-assert/download/minimalistic-assert-1.0.0.tgz#702be2dda6b37f4836bcb3f5db56641b64a1d3d3" + +minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/minimalistic-crypto-utils/download/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + +"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4, minimatch@~3.0.2: + version "3.0.4" + resolved "http://registry.npm.taobao.org/minimatch/download/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + dependencies: + brace-expansion "^1.1.7" + +minimist@0.0.8: + version "0.0.8" + resolved "http://registry.npm.taobao.org/minimist/download/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + +minimist@1.2.0, minimist@^1.1.0, minimist@^1.1.3, minimist@^1.2.0: + version "1.2.0" + resolved "http://registry.npm.taobao.org/minimist/download/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + +minimist@~0.0.1: + version "0.0.10" + resolved "http://registry.npm.taobao.org/minimist/download/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" + +minstache@~1.2.0: + version "1.2.0" + resolved "http://registry.npm.taobao.org/minstache/download/minstache-1.2.0.tgz#ff1cc403ac2844f68dbf18c662129be7eb0efc41" + dependencies: + commander "1.0.4" + +mississippi@^1.3.0: + version "1.3.1" + resolved "http://registry.npm.taobao.org/mississippi/download/mississippi-1.3.1.tgz#2a8bb465e86550ac8b36a7b6f45599171d78671e" + dependencies: + concat-stream "^1.5.0" + duplexify "^3.4.2" + end-of-stream "^1.1.0" + flush-write-stream "^1.0.0" + from2 "^2.1.0" + parallel-transform "^1.1.0" + pump "^1.0.0" + pumpify "^1.3.3" + stream-each "^1.1.0" + through2 "^2.0.0" + +mixin-deep@^1.2.0: + version "1.3.1" + resolved "http://registry.npm.taobao.org/mixin-deep/download/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe" + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + +mixin-object@^2.0.1: + version "2.0.1" + resolved "http://registry.npm.taobao.org/mixin-object/download/mixin-object-2.0.1.tgz#4fb949441dab182540f1fe035ba60e1947a5e57e" + dependencies: + for-in "^0.1.3" + is-extendable "^0.1.1" + +mkdirp@0.5.0: + version "0.5.0" + resolved "http://registry.npm.taobao.org/mkdirp/download/mkdirp-0.5.0.tgz#1d73076a6df986cd9344e15e71fcc05a4c9abf12" + dependencies: + minimist "0.0.8" + +mkdirp@0.5.1, mkdirp@0.5.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: + version "0.5.1" + resolved "http://registry.npm.taobao.org/mkdirp/download/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + dependencies: + minimist "0.0.8" + +mocha@^3.0.2: + version "3.5.3" + resolved "http://registry.npm.taobao.org/mocha/download/mocha-3.5.3.tgz#1e0480fe36d2da5858d1eb6acc38418b26eaa20d" + dependencies: + browser-stdout "1.3.0" + commander "2.9.0" + debug "2.6.8" + diff "3.2.0" + escape-string-regexp "1.0.5" + glob "7.1.1" + growl "1.9.2" + he "1.1.1" + json3 "3.3.2" + lodash.create "3.1.1" + mkdirp "0.5.1" + supports-color "3.1.2" + +moment@^2.20.1: + version "2.20.1" + resolved "http://registry.npm.taobao.org/moment/download/moment-2.20.1.tgz#d6eb1a46cbcc14a2b2f9434112c1ff8907f313fd" + +move-concurrently@^1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/move-concurrently/download/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" + dependencies: + aproba "^1.1.1" + copy-concurrently "^1.0.0" + fs-write-stream-atomic "^1.0.8" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.3" + +ms@0.7.1: + version "0.7.1" + resolved "http://registry.npm.taobao.org/ms/download/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098" + +ms@0.7.2: + version "0.7.2" + resolved "http://registry.npm.taobao.org/ms/download/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765" + +ms@2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + +multicast-dns-service-types@^1.1.0: + version "1.1.0" + resolved "http://registry.npm.taobao.org/multicast-dns-service-types/download/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" + +multicast-dns@^6.0.1: + version "6.2.3" + resolved "http://registry.npm.taobao.org/multicast-dns/download/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" + dependencies: + dns-packet "^1.3.1" + thunky "^1.0.2" + +multispinner@^0.2.1: + version "0.2.1" + resolved "http://registry.npm.taobao.org/multispinner/download/multispinner-0.2.1.tgz#c1cc100cfc40c697b8a12c3a25e81598eccc29f4" + dependencies: + chalk "^1.1.1" + figures "^1.4.0" + kind-of "^2.0.1" + lodash.clonedeep "^3.0.2" + lodash.merge "^3.3.2" + log-update "^1.0.2" + +mute-stream@0.0.7: + version "0.0.7" + resolved "http://registry.npm.taobao.org/mute-stream/download/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" + +nan@^2.3.0, nan@^2.3.2: + version "2.8.0" + resolved "http://registry.npm.taobao.org/nan/download/nan-2.8.0.tgz#ed715f3fe9de02b57a5e6252d90a96675e1f085a" + +nanomatch@^1.2.5: + version "1.2.7" + resolved "http://registry.npm.taobao.org/nanomatch/download/nanomatch-1.2.7.tgz#53cd4aa109ff68b7f869591fdc9d10daeeea3e79" + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + define-property "^1.0.0" + extend-shallow "^2.0.1" + fragment-cache "^0.2.1" + is-odd "^1.0.0" + kind-of "^5.0.2" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +natural-compare@^1.4.0: + version "1.4.0" + resolved "http://registry.npm.taobao.org/natural-compare/download/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + +ncname@1.0.x: + version "1.0.0" + resolved "http://registry.npm.taobao.org/ncname/download/ncname-1.0.0.tgz#5b57ad18b1ca092864ef62b0b1ed8194f383b71c" + dependencies: + xml-char-classes "^1.0.0" + +nedb@^1.8.0: + version "1.8.0" + resolved "http://registry.npm.taobao.org/nedb/download/nedb-1.8.0.tgz#0e3502cd82c004d5355a43c9e55577bd7bd91d88" + dependencies: + async "0.2.10" + binary-search-tree "0.2.5" + localforage "^1.3.0" + mkdirp "~0.5.1" + underscore "~1.4.4" + +negotiator@0.6.1: + version "0.6.1" + resolved "http://registry.npm.taobao.org/negotiator/download/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" + +no-case@^2.2.0: + version "2.3.2" + resolved "http://registry.npm.taobao.org/no-case/download/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac" + dependencies: + lower-case "^1.1.1" + +node-fetch@^1.3.3: + version "1.7.3" + resolved "http://registry.npm.taobao.org/node-fetch/download/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" + dependencies: + encoding "^0.1.11" + is-stream "^1.0.1" + +node-forge@0.7.1: + version "0.7.1" + resolved "http://registry.npm.taobao.org/node-forge/download/node-forge-0.7.1.tgz#9da611ea08982f4b94206b3beb4cc9665f20c300" + +node-gyp@^3.3.1: + version "3.6.2" + resolved "http://registry.npm.taobao.org/node-gyp/download/node-gyp-3.6.2.tgz#9bfbe54562286284838e750eac05295853fa1c60" + dependencies: + fstream "^1.0.0" + glob "^7.0.3" + graceful-fs "^4.1.2" + minimatch "^3.0.2" + mkdirp "^0.5.0" + nopt "2 || 3" + npmlog "0 || 1 || 2 || 3 || 4" + osenv "0" + request "2" + rimraf "2" + semver "~5.3.0" + tar "^2.0.0" + which "1" + +node-libs-browser@^2.0.0: + version "2.1.0" + resolved "http://registry.npm.taobao.org/node-libs-browser/download/node-libs-browser-2.1.0.tgz#5f94263d404f6e44767d726901fff05478d600df" + dependencies: + assert "^1.1.1" + browserify-zlib "^0.2.0" + buffer "^4.3.0" + console-browserify "^1.1.0" + constants-browserify "^1.0.0" + crypto-browserify "^3.11.0" + domain-browser "^1.1.1" + events "^1.0.0" + https-browserify "^1.0.0" + os-browserify "^0.3.0" + path-browserify "0.0.0" + process "^0.11.10" + punycode "^1.2.4" + querystring-es3 "^0.2.0" + readable-stream "^2.3.3" + stream-browserify "^2.0.1" + stream-http "^2.7.2" + string_decoder "^1.0.0" + timers-browserify "^2.0.4" + tty-browserify "0.0.0" + url "^0.11.0" + util "^0.10.3" + vm-browserify "0.0.4" + +node-loader@^0.6.0: + version "0.6.0" + resolved "http://registry.npm.taobao.org/node-loader/download/node-loader-0.6.0.tgz#c797ef51095ed5859902b157f6384f6361e05ae8" + +node-pre-gyp@^0.6.39: + version "0.6.39" + resolved "http://registry.npm.taobao.org/node-pre-gyp/download/node-pre-gyp-0.6.39.tgz#c00e96860b23c0e1420ac7befc5044e1d78d8649" + dependencies: + detect-libc "^1.0.2" + hawk "3.1.3" + mkdirp "^0.5.1" + nopt "^4.0.1" + npmlog "^4.0.2" + rc "^1.1.7" + request "2.81.0" + rimraf "^2.6.1" + semver "^5.3.0" + tar "^2.2.1" + tar-pack "^3.4.0" + +node-sass@^4.7.2: + version "4.7.2" + resolved "http://registry.npm.taobao.org/node-sass/download/node-sass-4.7.2.tgz#9366778ba1469eb01438a9e8592f4262bcb6794e" + dependencies: + async-foreach "^0.1.3" + chalk "^1.1.1" + cross-spawn "^3.0.0" + gaze "^1.0.0" + get-stdin "^4.0.1" + glob "^7.0.3" + in-publish "^2.0.0" + lodash.assign "^4.2.0" + lodash.clonedeep "^4.3.2" + lodash.mergewith "^4.6.0" + meow "^3.7.0" + mkdirp "^0.5.1" + nan "^2.3.2" + node-gyp "^3.3.1" + npmlog "^4.0.0" + request "~2.79.0" + sass-graph "^2.2.4" + stdout-stream "^1.4.0" + "true-case-path" "^1.0.2" + +"nopt@2 || 3", nopt@3.x: + version "3.0.6" + resolved "http://registry.npm.taobao.org/nopt/download/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" + dependencies: + abbrev "1" + +nopt@^4.0.1: + version "4.0.1" + resolved "http://registry.npm.taobao.org/nopt/download/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" + dependencies: + abbrev "1" + osenv "^0.1.4" + +normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.4.0: + version "2.4.0" + resolved "http://registry.npm.taobao.org/normalize-package-data/download/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" + dependencies: + hosted-git-info "^2.1.4" + is-builtin-module "^1.0.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-path@^2.0.0, normalize-path@^2.0.1, normalize-path@^2.1.1: + version "2.1.1" + resolved "http://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + dependencies: + remove-trailing-separator "^1.0.1" + +normalize-range@^0.1.2: + version "0.1.2" + resolved "http://registry.npm.taobao.org/normalize-range/download/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + +normalize-url@^1.4.0: + version "1.9.1" + resolved "http://registry.npm.taobao.org/normalize-url/download/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" + dependencies: + object-assign "^4.0.1" + prepend-http "^1.0.0" + query-string "^4.1.0" + sort-keys "^1.0.0" + +normalize-wheel@^1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/normalize-wheel/download/normalize-wheel-1.0.1.tgz#aec886affdb045070d856447df62ecf86146ec45" + +npm-install-package@~2.1.0: + version "2.1.0" + resolved "http://registry.npm.taobao.org/npm-install-package/download/npm-install-package-2.1.0.tgz#d7efe3cfcd7ab00614b896ea53119dc9ab259125" + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "http://registry.npm.taobao.org/npm-run-path/download/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + dependencies: + path-key "^2.0.0" + +"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0, npmlog@^4.0.2: + version "4.1.2" + resolved "http://registry.npm.taobao.org/npmlog/download/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.3" + set-blocking "~2.0.0" + +nth-check@~1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/nth-check/download/nth-check-1.0.1.tgz#9929acdf628fc2c41098deab82ac580cf149aae4" + dependencies: + boolbase "~1.0.0" + +nugget@^2.0.0, nugget@^2.0.1: + version "2.0.1" + resolved "http://registry.npm.taobao.org/nugget/download/nugget-2.0.1.tgz#201095a487e1ad36081b3432fa3cada4f8d071b0" + dependencies: + debug "^2.1.3" + minimist "^1.1.0" + pretty-bytes "^1.0.2" + progress-stream "^1.1.0" + request "^2.45.0" + single-line-log "^1.1.2" + throttleit "0.0.2" + +num2fraction@^1.2.2: + version "1.2.2" + resolved "http://registry.npm.taobao.org/num2fraction/download/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "http://registry.npm.taobao.org/number-is-nan/download/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + +oauth-sign@~0.8.1, oauth-sign@~0.8.2: + version "0.8.2" + resolved "http://registry.npm.taobao.org/oauth-sign/download/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" + +object-assign@4.1.0: + version "4.1.0" + resolved "http://registry.npm.taobao.org/object-assign/download/object-assign-4.1.0.tgz#7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0" + +object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: + version "4.1.1" + resolved "http://registry.npm.taobao.org/object-assign/download/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + +object-component@0.0.3: + version "0.0.3" + resolved "http://registry.npm.taobao.org/object-component/download/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" + +object-copy@^0.1.0: + version "0.1.0" + resolved "http://registry.npm.taobao.org/object-copy/download/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + +object-hash@^1.1.4: + version "1.2.0" + resolved "http://registry.npm.taobao.org/object-hash/download/object-hash-1.2.0.tgz#e96af0e96981996a1d47f88ead8f74f1ebc4422b" + +object-keys@^1.0.8: + version "1.0.11" + resolved "http://registry.npm.taobao.org/object-keys/download/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" + +object-keys@~0.4.0: + version "0.4.0" + resolved "http://registry.npm.taobao.org/object-keys/download/object-keys-0.4.0.tgz#28a6aae7428dd2c3a92f3d95f21335dd204e0336" + +object-visit@^1.0.0: + version "1.0.1" + resolved "http://registry.npm.taobao.org/object-visit/download/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + dependencies: + isobject "^3.0.0" + +object.omit@^2.0.0: + version "2.0.1" + resolved "http://registry.npm.taobao.org/object.omit/download/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" + dependencies: + for-own "^0.1.4" + is-extendable "^0.1.1" + +object.pick@^1.3.0: + version "1.3.0" + resolved "http://registry.npm.taobao.org/object.pick/download/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + dependencies: + isobject "^3.0.1" + +obuf@^1.0.0, obuf@^1.1.1: + version "1.1.1" + resolved "http://registry.npm.taobao.org/obuf/download/obuf-1.1.1.tgz#104124b6c602c6796881a042541d36db43a5264e" + +on-finished@~2.3.0: + version "2.3.0" + resolved "http://registry.npm.taobao.org/on-finished/download/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + dependencies: + ee-first "1.1.1" + +on-headers@~1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/on-headers/download/on-headers-1.0.1.tgz#928f5d0f470d49342651ea6794b0857c100693f7" + +once@1.x, once@^1.3.0, once@^1.3.1, once@^1.3.3, once@^1.4.0: + version "1.4.0" + resolved "http://registry.npm.taobao.org/once/download/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + dependencies: + wrappy "1" + +onetime@^1.0.0: + version "1.1.0" + resolved "http://registry.npm.taobao.org/onetime/download/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" + +onetime@^2.0.0: + version "2.0.1" + resolved "http://registry.npm.taobao.org/onetime/download/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + dependencies: + mimic-fn "^1.0.0" + +opn@^5.1.0: + version "5.2.0" + resolved "http://registry.npm.taobao.org/opn/download/opn-5.2.0.tgz#71fdf934d6827d676cecbea1531f95d354641225" + dependencies: + is-wsl "^1.1.0" + +optimist@^0.6.1, optimist@~0.6.1: + version "0.6.1" + resolved "http://registry.npm.taobao.org/optimist/download/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" + dependencies: + minimist "~0.0.1" + wordwrap "~0.0.2" + +optionator@^0.8.1, optionator@^0.8.2: + version "0.8.2" + resolved "http://registry.npm.taobao.org/optionator/download/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.4" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + wordwrap "~1.0.0" + +options@>=0.0.5: + version "0.0.6" + resolved "http://registry.npm.taobao.org/options/download/options-0.0.6.tgz#ec22d312806bb53e731773e7cdaefcf1c643128f" + +original@>=0.0.5: + version "1.0.0" + resolved "http://registry.npm.taobao.org/original/download/original-1.0.0.tgz#9147f93fa1696d04be61e01bd50baeaca656bd3b" + dependencies: + url-parse "1.0.x" + +os-browserify@^0.3.0: + version "0.3.0" + resolved "http://registry.npm.taobao.org/os-browserify/download/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" + +os-homedir@^1.0.0, os-homedir@^1.0.1: + version "1.0.2" + resolved "http://registry.npm.taobao.org/os-homedir/download/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + +os-locale@^1.4.0: + version "1.4.0" + resolved "http://registry.npm.taobao.org/os-locale/download/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" + dependencies: + lcid "^1.0.0" + +os-locale@^2.0.0: + version "2.1.0" + resolved "http://registry.npm.taobao.org/os-locale/download/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" + dependencies: + execa "^0.7.0" + lcid "^1.0.0" + mem "^1.1.0" + +os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.1, os-tmpdir@~1.0.2: + version "1.0.2" + resolved "http://registry.npm.taobao.org/os-tmpdir/download/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + +osenv@0, osenv@^0.1.4: + version "0.1.4" + resolved "http://registry.npm.taobao.org/osenv/download/osenv-0.1.4.tgz#42fe6d5953df06c8064be6f176c3d05aaaa34644" + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.0" + +p-finally@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/p-finally/download/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + +p-limit@^1.0.0, p-limit@^1.1.0: + version "1.2.0" + resolved "http://registry.npm.taobao.org/p-limit/download/p-limit-1.2.0.tgz#0e92b6bedcb59f022c13d0f1949dc82d15909f1c" + dependencies: + p-try "^1.0.0" + +p-locate@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/p-locate/download/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + dependencies: + p-limit "^1.1.0" + +p-map@^1.1.1: + version "1.2.0" + resolved "http://registry.npm.taobao.org/p-map/download/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b" + +p-try@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/p-try/download/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + +package-json@^4.0.0: + version "4.0.1" + resolved "http://registry.npm.taobao.org/package-json/download/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed" + dependencies: + got "^6.7.1" + registry-auth-token "^3.0.1" + registry-url "^3.0.3" + semver "^5.1.0" + +pako@~1.0.5: + version "1.0.6" + resolved "http://registry.npm.taobao.org/pako/download/pako-1.0.6.tgz#0101211baa70c4bca4a0f63f2206e97b7dfaf258" + +parallel-transform@^1.1.0: + version "1.1.0" + resolved "http://registry.npm.taobao.org/parallel-transform/download/parallel-transform-1.1.0.tgz#d410f065b05da23081fcd10f28854c29bda33b06" + dependencies: + cyclist "~0.2.2" + inherits "^2.0.3" + readable-stream "^2.1.5" + +param-case@2.1.x, param-case@^2.1.0: + version "2.1.1" + resolved "http://registry.npm.taobao.org/param-case/download/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247" + dependencies: + no-case "^2.2.0" + +parse-asn1@^5.0.0: + version "5.1.0" + resolved "http://registry.npm.taobao.org/parse-asn1/download/parse-asn1-5.1.0.tgz#37c4f9b7ed3ab65c74817b5f2480937fbf97c712" + dependencies: + asn1.js "^4.0.0" + browserify-aes "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.0" + pbkdf2 "^3.0.3" + +parse-color@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/parse-color/download/parse-color-1.0.0.tgz#7b748b95a83f03f16a94f535e52d7f3d94658619" + dependencies: + color-convert "~0.5.0" + +parse-glob@^3.0.4: + version "3.0.4" + resolved "http://registry.npm.taobao.org/parse-glob/download/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" + dependencies: + glob-base "^0.3.0" + is-dotfile "^1.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.0" + +parse-json@^2.2.0: + version "2.2.0" + resolved "http://registry.npm.taobao.org/parse-json/download/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + dependencies: + error-ex "^1.2.0" + +parsejson@0.0.3: + version "0.0.3" + resolved "http://registry.npm.taobao.org/parsejson/download/parsejson-0.0.3.tgz#ab7e3759f209ece99437973f7d0f1f64ae0e64ab" + dependencies: + better-assert "~1.0.0" + +parseqs@0.0.5: + version "0.0.5" + resolved "http://registry.npm.taobao.org/parseqs/download/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d" + dependencies: + better-assert "~1.0.0" + +parseuri@0.0.5: + version "0.0.5" + resolved "http://registry.npm.taobao.org/parseuri/download/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a" + dependencies: + better-assert "~1.0.0" + +parseurl@~1.3.2: + version "1.3.2" + resolved "http://registry.npm.taobao.org/parseurl/download/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3" + +pascal-case@^2.0.0: + version "2.0.1" + resolved "http://registry.npm.taobao.org/pascal-case/download/pascal-case-2.0.1.tgz#2d578d3455f660da65eca18ef95b4e0de912761e" + dependencies: + camel-case "^3.0.0" + upper-case-first "^1.1.0" + +pascalcase@^0.1.1: + version "0.1.1" + resolved "http://registry.npm.taobao.org/pascalcase/download/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + +path-browserify@0.0.0: + version "0.0.0" + resolved "http://registry.npm.taobao.org/path-browserify/download/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" + +path-case@^2.1.0: + version "2.1.1" + resolved "http://registry.npm.taobao.org/path-case/download/path-case-2.1.1.tgz#94b8037c372d3fe2906e465bb45e25d226e8eea5" + dependencies: + no-case "^2.2.0" + +path-dirname@^1.0.0: + version "1.0.2" + resolved "http://registry.npm.taobao.org/path-dirname/download/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + +path-exists@^2.0.0, path-exists@^2.1.0: + version "2.1.0" + resolved "http://registry.npm.taobao.org/path-exists/download/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + dependencies: + pinkie-promise "^2.0.0" + +path-exists@^3.0.0: + version "3.0.0" + resolved "http://registry.npm.taobao.org/path-exists/download/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + +path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/path-is-absolute/download/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + +path-is-inside@^1.0.1, path-is-inside@^1.0.2: + version "1.0.2" + resolved "http://registry.npm.taobao.org/path-is-inside/download/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + +path-key@^2.0.0: + version "2.0.1" + resolved "http://registry.npm.taobao.org/path-key/download/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + +path-parse@^1.0.5: + version "1.0.5" + resolved "http://registry.npm.taobao.org/path-parse/download/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "http://registry.npm.taobao.org/path-to-regexp/download/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + +path-type@^1.0.0: + version "1.1.0" + resolved "http://registry.npm.taobao.org/path-type/download/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" + dependencies: + graceful-fs "^4.1.2" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +path-type@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/path-type/download/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" + dependencies: + pify "^2.0.0" + +path-type@^3.0.0: + version "3.0.0" + resolved "http://registry.npm.taobao.org/path-type/download/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" + dependencies: + pify "^3.0.0" + +pathval@^1.0.0: + version "1.1.0" + resolved "http://registry.npm.taobao.org/pathval/download/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0" + +pbkdf2@^3.0.3: + version "3.0.14" + resolved "http://registry.npm.taobao.org/pbkdf2/download/pbkdf2-3.0.14.tgz#a35e13c64799b06ce15320f459c230e68e73bade" + dependencies: + create-hash "^1.1.2" + create-hmac "^1.1.4" + ripemd160 "^2.0.1" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +pend@~1.2.0: + version "1.2.0" + resolved "http://registry.npm.taobao.org/pend/download/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" + +performance-now@^0.2.0: + version "0.2.0" + resolved "http://registry.npm.taobao.org/performance-now/download/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" + +performance-now@^2.1.0: + version "2.1.0" + resolved "http://registry.npm.taobao.org/performance-now/download/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + +pify@^2.0.0: + version "2.3.0" + resolved "http://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + +pify@^3.0.0: + version "3.0.0" + resolved "http://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "http://registry.npm.taobao.org/pinkie-promise/download/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "http://registry.npm.taobao.org/pinkie/download/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + +pkg-dir@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/pkg-dir/download/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" + dependencies: + find-up "^1.0.0" + +pkg-dir@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/pkg-dir/download/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" + dependencies: + find-up "^2.1.0" + +plist@^2.1.0: + version "2.1.0" + resolved "http://registry.npm.taobao.org/plist/download/plist-2.1.0.tgz#57ccdb7a0821df21831217a3cad54e3e146a1025" + dependencies: + base64-js "1.2.0" + xmlbuilder "8.2.2" + xmldom "0.1.x" + +pluralize@^7.0.0: + version "7.0.0" + resolved "http://registry.npm.taobao.org/pluralize/download/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" + +portfinder@^1.0.9: + version "1.0.13" + resolved "http://registry.npm.taobao.org/portfinder/download/portfinder-1.0.13.tgz#bb32ecd87c27104ae6ee44b5a3ccbf0ebb1aede9" + dependencies: + async "^1.5.2" + debug "^2.2.0" + mkdirp "0.5.x" + +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "http://registry.npm.taobao.org/posix-character-classes/download/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + +postcss-calc@^5.2.0: + version "5.3.1" + resolved "http://registry.npm.taobao.org/postcss-calc/download/postcss-calc-5.3.1.tgz#77bae7ca928ad85716e2fda42f261bf7c1d65b5e" + dependencies: + postcss "^5.0.2" + postcss-message-helpers "^2.0.0" + reduce-css-calc "^1.2.6" + +postcss-colormin@^2.1.8: + version "2.2.2" + resolved "http://registry.npm.taobao.org/postcss-colormin/download/postcss-colormin-2.2.2.tgz#6631417d5f0e909a3d7ec26b24c8a8d1e4f96e4b" + dependencies: + colormin "^1.0.5" + postcss "^5.0.13" + postcss-value-parser "^3.2.3" + +postcss-convert-values@^2.3.4: + version "2.6.1" + resolved "http://registry.npm.taobao.org/postcss-convert-values/download/postcss-convert-values-2.6.1.tgz#bbd8593c5c1fd2e3d1c322bb925dcae8dae4d62d" + dependencies: + postcss "^5.0.11" + postcss-value-parser "^3.1.2" + +postcss-discard-comments@^2.0.4: + version "2.0.4" + resolved "http://registry.npm.taobao.org/postcss-discard-comments/download/postcss-discard-comments-2.0.4.tgz#befe89fafd5b3dace5ccce51b76b81514be00e3d" + dependencies: + postcss "^5.0.14" + +postcss-discard-duplicates@^2.0.1: + version "2.1.0" + resolved "http://registry.npm.taobao.org/postcss-discard-duplicates/download/postcss-discard-duplicates-2.1.0.tgz#b9abf27b88ac188158a5eb12abcae20263b91932" + dependencies: + postcss "^5.0.4" + +postcss-discard-empty@^2.0.1: + version "2.1.0" + resolved "http://registry.npm.taobao.org/postcss-discard-empty/download/postcss-discard-empty-2.1.0.tgz#d2b4bd9d5ced5ebd8dcade7640c7d7cd7f4f92b5" + dependencies: + postcss "^5.0.14" + +postcss-discard-overridden@^0.1.1: + version "0.1.1" + resolved "http://registry.npm.taobao.org/postcss-discard-overridden/download/postcss-discard-overridden-0.1.1.tgz#8b1eaf554f686fb288cd874c55667b0aa3668d58" + dependencies: + postcss "^5.0.16" + +postcss-discard-unused@^2.2.1: + version "2.2.3" + resolved "http://registry.npm.taobao.org/postcss-discard-unused/download/postcss-discard-unused-2.2.3.tgz#bce30b2cc591ffc634322b5fb3464b6d934f4433" + dependencies: + postcss "^5.0.14" + uniqs "^2.0.0" + +postcss-filter-plugins@^2.0.0: + version "2.0.2" + resolved "http://registry.npm.taobao.org/postcss-filter-plugins/download/postcss-filter-plugins-2.0.2.tgz#6d85862534d735ac420e4a85806e1f5d4286d84c" + dependencies: + postcss "^5.0.4" + uniqid "^4.0.0" + +postcss-load-config@^1.1.0: + version "1.2.0" + resolved "http://registry.npm.taobao.org/postcss-load-config/download/postcss-load-config-1.2.0.tgz#539e9afc9ddc8620121ebf9d8c3673e0ce50d28a" + dependencies: + cosmiconfig "^2.1.0" + object-assign "^4.1.0" + postcss-load-options "^1.2.0" + postcss-load-plugins "^2.3.0" + +postcss-load-options@^1.2.0: + version "1.2.0" + resolved "http://registry.npm.taobao.org/postcss-load-options/download/postcss-load-options-1.2.0.tgz#b098b1559ddac2df04bc0bb375f99a5cfe2b6d8c" + dependencies: + cosmiconfig "^2.1.0" + object-assign "^4.1.0" + +postcss-load-plugins@^2.3.0: + version "2.3.0" + resolved "http://registry.npm.taobao.org/postcss-load-plugins/download/postcss-load-plugins-2.3.0.tgz#745768116599aca2f009fad426b00175049d8d92" + dependencies: + cosmiconfig "^2.1.1" + object-assign "^4.1.0" + +postcss-merge-idents@^2.1.5: + version "2.1.7" + resolved "http://registry.npm.taobao.org/postcss-merge-idents/download/postcss-merge-idents-2.1.7.tgz#4c5530313c08e1d5b3bbf3d2bbc747e278eea270" + dependencies: + has "^1.0.1" + postcss "^5.0.10" + postcss-value-parser "^3.1.1" + +postcss-merge-longhand@^2.0.1: + version "2.0.2" + resolved "http://registry.npm.taobao.org/postcss-merge-longhand/download/postcss-merge-longhand-2.0.2.tgz#23d90cd127b0a77994915332739034a1a4f3d658" + dependencies: + postcss "^5.0.4" + +postcss-merge-rules@^2.0.3: + version "2.1.2" + resolved "http://registry.npm.taobao.org/postcss-merge-rules/download/postcss-merge-rules-2.1.2.tgz#d1df5dfaa7b1acc3be553f0e9e10e87c61b5f721" + dependencies: + browserslist "^1.5.2" + caniuse-api "^1.5.2" + postcss "^5.0.4" + postcss-selector-parser "^2.2.2" + vendors "^1.0.0" + +postcss-message-helpers@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/postcss-message-helpers/download/postcss-message-helpers-2.0.0.tgz#a4f2f4fab6e4fe002f0aed000478cdf52f9ba60e" + +postcss-minify-font-values@^1.0.2: + version "1.0.5" + resolved "http://registry.npm.taobao.org/postcss-minify-font-values/download/postcss-minify-font-values-1.0.5.tgz#4b58edb56641eba7c8474ab3526cafd7bbdecb69" + dependencies: + object-assign "^4.0.1" + postcss "^5.0.4" + postcss-value-parser "^3.0.2" + +postcss-minify-gradients@^1.0.1: + version "1.0.5" + resolved "http://registry.npm.taobao.org/postcss-minify-gradients/download/postcss-minify-gradients-1.0.5.tgz#5dbda11373703f83cfb4a3ea3881d8d75ff5e6e1" + dependencies: + postcss "^5.0.12" + postcss-value-parser "^3.3.0" + +postcss-minify-params@^1.0.4: + version "1.2.2" + resolved "http://registry.npm.taobao.org/postcss-minify-params/download/postcss-minify-params-1.2.2.tgz#ad2ce071373b943b3d930a3fa59a358c28d6f1f3" + dependencies: + alphanum-sort "^1.0.1" + postcss "^5.0.2" + postcss-value-parser "^3.0.2" + uniqs "^2.0.0" + +postcss-minify-selectors@^2.0.4: + version "2.1.1" + resolved "http://registry.npm.taobao.org/postcss-minify-selectors/download/postcss-minify-selectors-2.1.1.tgz#b2c6a98c0072cf91b932d1a496508114311735bf" + dependencies: + alphanum-sort "^1.0.2" + has "^1.0.1" + postcss "^5.0.14" + postcss-selector-parser "^2.0.0" + +postcss-modules-extract-imports@^1.2.0: + version "1.2.0" + resolved "http://registry.npm.taobao.org/postcss-modules-extract-imports/download/postcss-modules-extract-imports-1.2.0.tgz#66140ecece38ef06bf0d3e355d69bf59d141ea85" + dependencies: + postcss "^6.0.1" + +postcss-modules-local-by-default@^1.2.0: + version "1.2.0" + resolved "http://registry.npm.taobao.org/postcss-modules-local-by-default/download/postcss-modules-local-by-default-1.2.0.tgz#f7d80c398c5a393fa7964466bd19500a7d61c069" + dependencies: + css-selector-tokenizer "^0.7.0" + postcss "^6.0.1" + +postcss-modules-scope@^1.1.0: + version "1.1.0" + resolved "http://registry.npm.taobao.org/postcss-modules-scope/download/postcss-modules-scope-1.1.0.tgz#d6ea64994c79f97b62a72b426fbe6056a194bb90" + dependencies: + css-selector-tokenizer "^0.7.0" + postcss "^6.0.1" + +postcss-modules-values@^1.3.0: + version "1.3.0" + resolved "http://registry.npm.taobao.org/postcss-modules-values/download/postcss-modules-values-1.3.0.tgz#ecffa9d7e192518389f42ad0e83f72aec456ea20" + dependencies: + icss-replace-symbols "^1.1.0" + postcss "^6.0.1" + +postcss-normalize-charset@^1.1.0: + version "1.1.1" + resolved "http://registry.npm.taobao.org/postcss-normalize-charset/download/postcss-normalize-charset-1.1.1.tgz#ef9ee71212d7fe759c78ed162f61ed62b5cb93f1" + dependencies: + postcss "^5.0.5" + +postcss-normalize-url@^3.0.7: + version "3.0.8" + resolved "http://registry.npm.taobao.org/postcss-normalize-url/download/postcss-normalize-url-3.0.8.tgz#108f74b3f2fcdaf891a2ffa3ea4592279fc78222" + dependencies: + is-absolute-url "^2.0.0" + normalize-url "^1.4.0" + postcss "^5.0.14" + postcss-value-parser "^3.2.3" + +postcss-ordered-values@^2.1.0: + version "2.2.3" + resolved "http://registry.npm.taobao.org/postcss-ordered-values/download/postcss-ordered-values-2.2.3.tgz#eec6c2a67b6c412a8db2042e77fe8da43f95c11d" + dependencies: + postcss "^5.0.4" + postcss-value-parser "^3.0.1" + +postcss-reduce-idents@^2.2.2: + version "2.4.0" + resolved "http://registry.npm.taobao.org/postcss-reduce-idents/download/postcss-reduce-idents-2.4.0.tgz#c2c6d20cc958284f6abfbe63f7609bf409059ad3" + dependencies: + postcss "^5.0.4" + postcss-value-parser "^3.0.2" + +postcss-reduce-initial@^1.0.0: + version "1.0.1" + resolved "http://registry.npm.taobao.org/postcss-reduce-initial/download/postcss-reduce-initial-1.0.1.tgz#68f80695f045d08263a879ad240df8dd64f644ea" + dependencies: + postcss "^5.0.4" + +postcss-reduce-transforms@^1.0.3: + version "1.0.4" + resolved "http://registry.npm.taobao.org/postcss-reduce-transforms/download/postcss-reduce-transforms-1.0.4.tgz#ff76f4d8212437b31c298a42d2e1444025771ae1" + dependencies: + has "^1.0.1" + postcss "^5.0.8" + postcss-value-parser "^3.0.1" + +postcss-selector-parser@^2.0.0, postcss-selector-parser@^2.2.2: + version "2.2.3" + resolved "http://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-2.2.3.tgz#f9437788606c3c9acee16ffe8d8b16297f27bb90" + dependencies: + flatten "^1.0.2" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-svgo@^2.1.1: + version "2.1.6" + resolved "http://registry.npm.taobao.org/postcss-svgo/download/postcss-svgo-2.1.6.tgz#b6df18aa613b666e133f08adb5219c2684ac108d" + dependencies: + is-svg "^2.0.0" + postcss "^5.0.14" + postcss-value-parser "^3.2.3" + svgo "^0.7.0" + +postcss-unique-selectors@^2.0.2: + version "2.0.2" + resolved "http://registry.npm.taobao.org/postcss-unique-selectors/download/postcss-unique-selectors-2.0.2.tgz#981d57d29ddcb33e7b1dfe1fd43b8649f933ca1d" + dependencies: + alphanum-sort "^1.0.1" + postcss "^5.0.4" + uniqs "^2.0.0" + +postcss-value-parser@^3.0.1, postcss-value-parser@^3.0.2, postcss-value-parser@^3.1.1, postcss-value-parser@^3.1.2, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0: + version "3.3.0" + resolved "http://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.0.tgz#87f38f9f18f774a4ab4c8a232f5c5ce8872a9d15" + +postcss-zindex@^2.0.1: + version "2.2.0" + resolved "http://registry.npm.taobao.org/postcss-zindex/download/postcss-zindex-2.2.0.tgz#d2109ddc055b91af67fc4cb3b025946639d2af22" + dependencies: + has "^1.0.1" + postcss "^5.0.4" + uniqs "^2.0.0" + +postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0.14, postcss@^5.0.16, postcss@^5.0.2, postcss@^5.0.4, postcss@^5.0.5, postcss@^5.0.6, postcss@^5.0.8, postcss@^5.2.16: + version "5.2.18" + resolved "http://registry.npm.taobao.org/postcss/download/postcss-5.2.18.tgz#badfa1497d46244f6390f58b319830d9107853c5" + dependencies: + chalk "^1.1.3" + js-base64 "^2.1.9" + source-map "^0.5.6" + supports-color "^3.2.3" + +postcss@^6.0.1, postcss@^6.0.8: + version "6.0.17" + resolved "http://registry.npm.taobao.org/postcss/download/postcss-6.0.17.tgz#e259a051ca513f81e9afd0c21f7f82eda50c65c5" + dependencies: + chalk "^2.3.0" + source-map "^0.6.1" + supports-color "^5.1.0" + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "http://registry.npm.taobao.org/prelude-ls/download/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + +prepend-http@^1.0.0, prepend-http@^1.0.1: + version "1.0.4" + resolved "http://registry.npm.taobao.org/prepend-http/download/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" + +preserve@^0.2.0: + version "0.2.0" + resolved "http://registry.npm.taobao.org/preserve/download/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" + +prettier@^1.7.0: + version "1.10.2" + resolved "http://registry.npm.taobao.org/prettier/download/prettier-1.10.2.tgz#1af8356d1842276a99a5b5529c82dd9e9ad3cc93" + +pretty-bytes@^1.0.2: + version "1.0.4" + resolved "http://registry.npm.taobao.org/pretty-bytes/download/pretty-bytes-1.0.4.tgz#0a22e8210609ad35542f8c8d5d2159aff0751c84" + dependencies: + get-stdin "^4.0.1" + meow "^3.1.0" + +pretty-error@^2.0.2: + version "2.1.1" + resolved "http://registry.npm.taobao.org/pretty-error/download/pretty-error-2.1.1.tgz#5f4f87c8f91e5ae3f3ba87ab4cf5e03b1a17f1a3" + dependencies: + renderkid "^2.0.1" + utila "~0.4" + +private@^0.1.6, private@^0.1.7, private@~0.1.5: + version "0.1.8" + resolved "http://registry.npm.taobao.org/private/download/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" + +process-nextick-args@~1.0.6: + version "1.0.7" + resolved "http://registry.npm.taobao.org/process-nextick-args/download/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" + +process@^0.11.10: + version "0.11.10" + resolved "http://registry.npm.taobao.org/process/download/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + +progress-stream@^1.1.0: + version "1.2.0" + resolved "http://registry.npm.taobao.org/progress-stream/download/progress-stream-1.2.0.tgz#2cd3cfea33ba3a89c9c121ec3347abe9ab125f77" + dependencies: + speedometer "~0.1.2" + through2 "~0.2.3" + +progress@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/progress/download/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f" + +promise-inflight@^1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/promise-inflight/download/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + +proxy-addr@~2.0.2: + version "2.0.2" + resolved "http://registry.npm.taobao.org/proxy-addr/download/proxy-addr-2.0.2.tgz#6571504f47bb988ec8180253f85dd7e14952bdec" + dependencies: + forwarded "~0.1.2" + ipaddr.js "1.5.2" + +prr@~1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/prr/download/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + +pseudomap@^1.0.2: + version "1.0.2" + resolved "http://registry.npm.taobao.org/pseudomap/download/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + +public-encrypt@^4.0.0: + version "4.0.0" + resolved "http://registry.npm.taobao.org/public-encrypt/download/public-encrypt-4.0.0.tgz#39f699f3a46560dd5ebacbca693caf7c65c18cc6" + dependencies: + bn.js "^4.1.0" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + parse-asn1 "^5.0.0" + randombytes "^2.0.1" + +pump@^1.0.0: + version "1.0.3" + resolved "http://registry.npm.taobao.org/pump/download/pump-1.0.3.tgz#5dfe8311c33bbf6fc18261f9f34702c47c08a954" + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pump@^2.0.0: + version "2.0.1" + resolved "http://registry.npm.taobao.org/pump/download/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pumpify@^1.3.3: + version "1.4.0" + resolved "http://registry.npm.taobao.org/pumpify/download/pumpify-1.4.0.tgz#80b7c5df7e24153d03f0e7ac8a05a5d068bd07fb" + dependencies: + duplexify "^3.5.3" + inherits "^2.0.3" + pump "^2.0.0" + +punycode@1.3.2: + version "1.3.2" + resolved "http://registry.npm.taobao.org/punycode/download/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + +punycode@^1.2.4, punycode@^1.4.1: + version "1.4.1" + resolved "http://registry.npm.taobao.org/punycode/download/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + +q@^1.1.2, q@~1.5.0: + version "1.5.1" + resolved "http://registry.npm.taobao.org/q/download/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" + +qjobs@^1.1.4: + version "1.1.5" + resolved "http://registry.npm.taobao.org/qjobs/download/qjobs-1.1.5.tgz#659de9f2cf8dcc27a1481276f205377272382e73" + +qs@6.5.1, qs@~6.5.1: + version "6.5.1" + resolved "http://registry.npm.taobao.org/qs/download/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" + +qs@~6.3.0: + version "6.3.2" + resolved "http://registry.npm.taobao.org/qs/download/qs-6.3.2.tgz#e75bd5f6e268122a2a0e0bda630b2550c166502c" + +qs@~6.4.0: + version "6.4.0" + resolved "http://registry.npm.taobao.org/qs/download/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" + +query-string@^4.1.0: + version "4.3.4" + resolved "http://registry.npm.taobao.org/query-string/download/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" + dependencies: + object-assign "^4.1.0" + strict-uri-encode "^1.0.0" + +querystring-es3@^0.2.0: + version "0.2.1" + resolved "http://registry.npm.taobao.org/querystring-es3/download/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + +querystring@0.2.0, querystring@^0.2.0: + version "0.2.0" + resolved "http://registry.npm.taobao.org/querystring/download/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + +querystringify@0.0.x: + version "0.0.4" + resolved "http://registry.npm.taobao.org/querystringify/download/querystringify-0.0.4.tgz#0cf7f84f9463ff0ae51c4c4b142d95be37724d9c" + +querystringify@~1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/querystringify/download/querystringify-1.0.0.tgz#6286242112c5b712fa654e526652bf6a13ff05cb" + +randomatic@^1.1.3: + version "1.1.7" + resolved "http://registry.npm.taobao.org/randomatic/download/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c" + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: + version "2.0.6" + resolved "http://registry.npm.taobao.org/randombytes/download/randombytes-2.0.6.tgz#d302c522948588848a8d300c932b44c24231da80" + dependencies: + safe-buffer "^5.1.0" + +randomfill@^1.0.3: + version "1.0.3" + resolved "http://registry.npm.taobao.org/randomfill/download/randomfill-1.0.3.tgz#b96b7df587f01dd91726c418f30553b1418e3d62" + dependencies: + randombytes "^2.0.5" + safe-buffer "^5.1.0" + +range-parser@^1.0.3, range-parser@^1.2.0, range-parser@~1.2.0: + version "1.2.0" + resolved "http://registry.npm.taobao.org/range-parser/download/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" + +raw-body@2.3.2: + version "2.3.2" + resolved "http://registry.npm.taobao.org/raw-body/download/raw-body-2.3.2.tgz#bcd60c77d3eb93cde0050295c3f379389bc88f89" + dependencies: + bytes "3.0.0" + http-errors "1.6.2" + iconv-lite "0.4.19" + unpipe "1.0.0" + +rc@^1.0.1, rc@^1.1.2, rc@^1.1.6, rc@^1.1.7, rc@^1.2.1: + version "1.2.5" + resolved "http://registry.npm.taobao.org/rc/download/rc-1.2.5.tgz#275cd687f6e3b36cc756baa26dfee80a790301fd" + dependencies: + deep-extend "~0.4.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +read-config-file@2.1.1: + version "2.1.1" + resolved "http://registry.npm.taobao.org/read-config-file/download/read-config-file-2.1.1.tgz#bd6c2b93e97a82a35f71a3c9eb43161e16692054" + dependencies: + ajv "^5.5.0" + ajv-keywords "^2.1.0" + bluebird-lst "^1.0.5" + dotenv "^4.0.0" + dotenv-expand "^4.0.1" + fs-extra-p "^4.5.0" + js-yaml "^3.10.0" + json5 "^0.5.1" + lazy-val "^1.0.3" + +read-pkg-up@^1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/read-pkg-up/download/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" + dependencies: + find-up "^1.0.0" + read-pkg "^1.0.0" + +read-pkg-up@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/read-pkg-up/download/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" + dependencies: + find-up "^2.0.0" + read-pkg "^2.0.0" + +read-pkg@^1.0.0: + version "1.1.0" + resolved "http://registry.npm.taobao.org/read-pkg/download/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" + dependencies: + load-json-file "^1.0.0" + normalize-package-data "^2.3.2" + path-type "^1.0.0" + +read-pkg@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/read-pkg/download/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" + dependencies: + load-json-file "^2.0.0" + normalize-package-data "^2.3.2" + path-type "^2.0.0" + +"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.2.9, readable-stream@^2.3.3: + version "2.3.3" + resolved "http://registry.npm.taobao.org/readable-stream/download/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~1.0.6" + safe-buffer "~5.1.1" + string_decoder "~1.0.3" + util-deprecate "~1.0.1" + +readable-stream@1.0, readable-stream@~1.0.2: + version "1.0.34" + resolved "http://registry.npm.taobao.org/readable-stream/download/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readable-stream@~1.1.9: + version "1.1.14" + resolved "http://registry.npm.taobao.org/readable-stream/download/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readdirp@^2.0.0: + version "2.1.0" + resolved "http://registry.npm.taobao.org/readdirp/download/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" + dependencies: + graceful-fs "^4.1.2" + minimatch "^3.0.2" + readable-stream "^2.0.2" + set-immediate-shim "^1.0.1" + +recast@~0.11.12: + version "0.11.23" + resolved "http://registry.npm.taobao.org/recast/download/recast-0.11.23.tgz#451fd3004ab1e4df9b4e4b66376b2a21912462d3" + dependencies: + ast-types "0.9.6" + esprima "~3.1.0" + private "~0.1.5" + source-map "~0.5.0" + +redent@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/redent/download/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" + dependencies: + indent-string "^2.1.0" + strip-indent "^1.0.1" + +reduce-css-calc@^1.2.6: + version "1.3.0" + resolved "http://registry.npm.taobao.org/reduce-css-calc/download/reduce-css-calc-1.3.0.tgz#747c914e049614a4c9cfbba629871ad1d2927716" + dependencies: + balanced-match "^0.4.2" + math-expression-evaluator "^1.2.14" + reduce-function-call "^1.0.1" + +reduce-function-call@^1.0.1: + version "1.0.2" + resolved "http://registry.npm.taobao.org/reduce-function-call/download/reduce-function-call-1.0.2.tgz#5a200bf92e0e37751752fe45b0ab330fd4b6be99" + dependencies: + balanced-match "^0.4.2" + +regenerate@^1.2.1: + version "1.3.3" + resolved "http://registry.npm.taobao.org/regenerate/download/regenerate-1.3.3.tgz#0c336d3980553d755c39b586ae3b20aa49c82b7f" + +regenerator-runtime@^0.10.0: + version "0.10.5" + resolved "http://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" + +regenerator-runtime@^0.11.0: + version "0.11.1" + resolved "http://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" + +regenerator-transform@^0.10.0: + version "0.10.1" + resolved "http://registry.npm.taobao.org/regenerator-transform/download/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" + dependencies: + babel-runtime "^6.18.0" + babel-types "^6.19.0" + private "^0.1.6" + +regex-cache@^0.4.2: + version "0.4.4" + resolved "http://registry.npm.taobao.org/regex-cache/download/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" + dependencies: + is-equal-shallow "^0.1.3" + +regex-not@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/regex-not/download/regex-not-1.0.0.tgz#42f83e39771622df826b02af176525d6a5f157f9" + dependencies: + extend-shallow "^2.0.1" + +regexpu-core@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/regexpu-core/download/regexpu-core-1.0.0.tgz#86a763f58ee4d7c2f6b102e4764050de7ed90c6b" + dependencies: + regenerate "^1.2.1" + regjsgen "^0.2.0" + regjsparser "^0.1.4" + +regexpu-core@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/regexpu-core/download/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" + dependencies: + regenerate "^1.2.1" + regjsgen "^0.2.0" + regjsparser "^0.1.4" + +registry-auth-token@^3.0.1: + version "3.3.2" + resolved "http://registry.npm.taobao.org/registry-auth-token/download/registry-auth-token-3.3.2.tgz#851fd49038eecb586911115af845260eec983f20" + dependencies: + rc "^1.1.6" + safe-buffer "^5.0.1" + +registry-url@^3.0.3: + version "3.1.0" + resolved "http://registry.npm.taobao.org/registry-url/download/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" + dependencies: + rc "^1.0.1" + +regjsgen@^0.2.0: + version "0.2.0" + resolved "http://registry.npm.taobao.org/regjsgen/download/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" + +regjsparser@^0.1.4: + version "0.1.5" + resolved "http://registry.npm.taobao.org/regjsparser/download/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" + dependencies: + jsesc "~0.5.0" + +relateurl@0.2.x: + version "0.2.7" + resolved "http://registry.npm.taobao.org/relateurl/download/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "http://registry.npm.taobao.org/remove-trailing-separator/download/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + +renderkid@^2.0.1: + version "2.0.1" + resolved "http://registry.npm.taobao.org/renderkid/download/renderkid-2.0.1.tgz#898cabfc8bede4b7b91135a3ffd323e58c0db319" + dependencies: + css-select "^1.1.0" + dom-converter "~0.1" + htmlparser2 "~3.3.0" + strip-ansi "^3.0.0" + utila "~0.3" + +repeat-element@^1.1.2: + version "1.1.2" + resolved "http://registry.npm.taobao.org/repeat-element/download/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" + +repeat-string@^0.2.2: + version "0.2.2" + resolved "http://registry.npm.taobao.org/repeat-string/download/repeat-string-0.2.2.tgz#c7a8d3236068362059a7e4651fc6884e8b1fb4ae" + +repeat-string@^1.5.2, repeat-string@^1.6.1: + version "1.6.1" + resolved "http://registry.npm.taobao.org/repeat-string/download/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + +repeating@^2.0.0: + version "2.0.1" + resolved "http://registry.npm.taobao.org/repeating/download/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" + dependencies: + is-finite "^1.0.0" + +request@2, request@^2.45.0, request@^2.81.0, request@~2.83.0: + version "2.83.0" + resolved "http://registry.npm.taobao.org/request/download/request-2.83.0.tgz#ca0b65da02ed62935887808e6f510381034e3356" + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.6.0" + caseless "~0.12.0" + combined-stream "~1.0.5" + extend "~3.0.1" + forever-agent "~0.6.1" + form-data "~2.3.1" + har-validator "~5.0.3" + hawk "~6.0.2" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.17" + oauth-sign "~0.8.2" + performance-now "^2.1.0" + qs "~6.5.1" + safe-buffer "^5.1.1" + stringstream "~0.0.5" + tough-cookie "~2.3.3" + tunnel-agent "^0.6.0" + uuid "^3.1.0" + +request@2.81.0: + version "2.81.0" + resolved "http://registry.npm.taobao.org/request/download/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" + dependencies: + aws-sign2 "~0.6.0" + aws4 "^1.2.1" + caseless "~0.12.0" + combined-stream "~1.0.5" + extend "~3.0.0" + forever-agent "~0.6.1" + form-data "~2.1.1" + har-validator "~4.2.1" + hawk "~3.1.3" + http-signature "~1.1.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.7" + oauth-sign "~0.8.1" + performance-now "^0.2.0" + qs "~6.4.0" + safe-buffer "^5.0.1" + stringstream "~0.0.4" + tough-cookie "~2.3.0" + tunnel-agent "^0.6.0" + uuid "^3.0.0" + +request@~2.79.0: + version "2.79.0" + resolved "http://registry.npm.taobao.org/request/download/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de" + dependencies: + aws-sign2 "~0.6.0" + aws4 "^1.2.1" + caseless "~0.11.0" + combined-stream "~1.0.5" + extend "~3.0.0" + forever-agent "~0.6.1" + form-data "~2.1.1" + har-validator "~2.0.6" + hawk "~3.1.3" + http-signature "~1.1.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.7" + oauth-sign "~0.8.1" + qs "~6.3.0" + stringstream "~0.0.4" + tough-cookie "~2.3.0" + tunnel-agent "~0.4.1" + uuid "^3.0.0" + +require-dir@^0.3.0: + version "0.3.2" + resolved "http://registry.npm.taobao.org/require-dir/download/require-dir-0.3.2.tgz#c1d5c75e9fbffde9f2e6b33e383db4f594b5a6a9" + +require-directory@^2.1.1: + version "2.1.1" + resolved "http://registry.npm.taobao.org/require-directory/download/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + +require-from-string@^1.1.0: + version "1.2.1" + resolved "http://registry.npm.taobao.org/require-from-string/download/require-from-string-1.2.1.tgz#529c9ccef27380adfec9a2f965b649bbee636418" + +require-main-filename@^1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/require-main-filename/download/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" + +require-uncached@^1.0.3: + version "1.0.3" + resolved "http://registry.npm.taobao.org/require-uncached/download/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" + dependencies: + caller-path "^0.1.0" + resolve-from "^1.0.0" + +requires-port@1.0.x, requires-port@1.x.x, requires-port@~1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/requires-port/download/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + +resolve-cwd@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/resolve-cwd/download/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" + dependencies: + resolve-from "^3.0.0" + +resolve-from@^1.0.0: + version "1.0.1" + resolved "http://registry.npm.taobao.org/resolve-from/download/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" + +resolve-from@^3.0.0: + version "3.0.0" + resolved "http://registry.npm.taobao.org/resolve-from/download/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + +resolve-url@^0.2.1, resolve-url@~0.2.1: + version "0.2.1" + resolved "http://registry.npm.taobao.org/resolve-url/download/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + +resolve@1.1.x: + version "1.1.7" + resolved "http://registry.npm.taobao.org/resolve/download/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" + +resolve@^1.3.3, resolve@^1.4.0, resolve@^1.5.0: + version "1.5.0" + resolved "http://registry.npm.taobao.org/resolve/download/resolve-1.5.0.tgz#1f09acce796c9a762579f31b2c1cc4c3cddf9f36" + dependencies: + path-parse "^1.0.5" + +restore-cursor@^1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/restore-cursor/download/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" + dependencies: + exit-hook "^1.0.0" + onetime "^1.0.0" + +restore-cursor@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/restore-cursor/download/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" + dependencies: + onetime "^2.0.0" + signal-exit "^3.0.2" + +rgb2hex@~0.1.0: + version "0.1.0" + resolved "http://registry.npm.taobao.org/rgb2hex/download/rgb2hex-0.1.0.tgz#ccd55f860ae0c5c4ea37504b958e442d8d12325b" + +right-align@^0.1.1: + version "0.1.3" + resolved "http://registry.npm.taobao.org/right-align/download/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" + dependencies: + align-text "^0.1.1" + +rimraf@2, rimraf@^2.2.8, rimraf@^2.5.1, rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.0, rimraf@^2.6.1: + version "2.6.2" + resolved "http://registry.npm.taobao.org/rimraf/download/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" + dependencies: + glob "^7.0.5" + +ripemd160@^2.0.0, ripemd160@^2.0.1: + version "2.0.1" + resolved "http://registry.npm.taobao.org/ripemd160/download/ripemd160-2.0.1.tgz#0f4584295c53a3628af7e6d79aca21ce57d1c6e7" + dependencies: + hash-base "^2.0.0" + inherits "^2.0.1" + +run-async@^2.2.0: + version "2.3.0" + resolved "http://registry.npm.taobao.org/run-async/download/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" + dependencies: + is-promise "^2.1.0" + +run-queue@^1.0.0, run-queue@^1.0.3: + version "1.0.3" + resolved "http://registry.npm.taobao.org/run-queue/download/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" + dependencies: + aproba "^1.1.1" + +rx-lite-aggregates@^4.0.8: + version "4.0.8" + resolved "http://registry.npm.taobao.org/rx-lite-aggregates/download/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" + dependencies: + rx-lite "*" + +rx-lite@*, rx-lite@^4.0.8: + version "4.0.8" + resolved "http://registry.npm.taobao.org/rx-lite/download/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" + +safe-buffer@5.1.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.1" + resolved "http://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" + +sanitize-filename@^1.6.1: + version "1.6.1" + resolved "http://registry.npm.taobao.org/sanitize-filename/download/sanitize-filename-1.6.1.tgz#612da1c96473fa02dccda92dcd5b4ab164a6772a" + dependencies: + truncate-utf8-bytes "^1.0.0" + +sass-graph@^2.2.4: + version "2.2.4" + resolved "http://registry.npm.taobao.org/sass-graph/download/sass-graph-2.2.4.tgz#13fbd63cd1caf0908b9fd93476ad43a51d1e0b49" + dependencies: + glob "^7.0.0" + lodash "^4.0.0" + scss-tokenizer "^0.2.3" + yargs "^7.0.0" + +sass-loader@^6.0.6: + version "6.0.6" + resolved "http://registry.npm.taobao.org/sass-loader/download/sass-loader-6.0.6.tgz#e9d5e6c1f155faa32a4b26d7a9b7107c225e40f9" + dependencies: + async "^2.1.5" + clone-deep "^0.3.0" + loader-utils "^1.0.1" + lodash.tail "^4.1.1" + pify "^3.0.0" + +sax@^1.2.4, sax@~1.2.1: + version "1.2.4" + resolved "http://registry.npm.taobao.org/sax/download/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + +schema-utils@^0.3.0: + version "0.3.0" + resolved "http://registry.npm.taobao.org/schema-utils/download/schema-utils-0.3.0.tgz#f5877222ce3e931edae039f17eb3716e7137f8cf" + dependencies: + ajv "^5.0.0" + +scss-tokenizer@^0.2.3: + version "0.2.3" + resolved "http://registry.npm.taobao.org/scss-tokenizer/download/scss-tokenizer-0.2.3.tgz#8eb06db9a9723333824d3f5530641149847ce5d1" + dependencies: + js-base64 "^2.1.8" + source-map "^0.4.2" + +select-hose@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/select-hose/download/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" + +selfsigned@^1.9.1: + version "1.10.2" + resolved "http://registry.npm.taobao.org/selfsigned/download/selfsigned-1.10.2.tgz#b4449580d99929b65b10a48389301a6592088758" + dependencies: + node-forge "0.7.1" + +semver-diff@^2.0.0: + version "2.1.0" + resolved "http://registry.npm.taobao.org/semver-diff/download/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" + dependencies: + semver "^5.0.3" + +"semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0: + version "5.5.0" + resolved "http://registry.npm.taobao.org/semver/download/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" + +semver@5.3.0, semver@~5.3.0: + version "5.3.0" + resolved "http://registry.npm.taobao.org/semver/download/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" + +semver@~4.3.3: + version "4.3.6" + resolved "http://registry.npm.taobao.org/semver/download/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da" + +send@0.16.1: + version "0.16.1" + resolved "http://registry.npm.taobao.org/send/download/send-0.16.1.tgz#a70e1ca21d1382c11d0d9f6231deb281080d7ab3" + dependencies: + debug "2.6.9" + depd "~1.1.1" + destroy "~1.0.4" + encodeurl "~1.0.1" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "~1.6.2" + mime "1.4.1" + ms "2.0.0" + on-finished "~2.3.0" + range-parser "~1.2.0" + statuses "~1.3.1" + +sentence-case@^2.1.0: + version "2.1.1" + resolved "http://registry.npm.taobao.org/sentence-case/download/sentence-case-2.1.1.tgz#1f6e2dda39c168bf92d13f86d4a918933f667ed4" + dependencies: + no-case "^2.2.0" + upper-case-first "^1.1.2" + +serialize-javascript@^1.4.0: + version "1.4.0" + resolved "http://registry.npm.taobao.org/serialize-javascript/download/serialize-javascript-1.4.0.tgz#7c958514db6ac2443a8abc062dc9f7886a7f6005" + +serve-index@^1.7.2: + version "1.9.1" + resolved "http://registry.npm.taobao.org/serve-index/download/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" + 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.13.1: + version "1.13.1" + resolved "http://registry.npm.taobao.org/serve-static/download/serve-static-1.13.1.tgz#4c57d53404a761d8f2e7c1e8a18a47dbf278a719" + dependencies: + encodeurl "~1.0.1" + escape-html "~1.0.3" + parseurl "~1.3.2" + send "0.16.1" + +set-blocking@^2.0.0, set-blocking@~2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/set-blocking/download/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + +set-getter@^0.1.0: + version "0.1.0" + resolved "http://registry.npm.taobao.org/set-getter/download/set-getter-0.1.0.tgz#d769c182c9d5a51f409145f2fba82e5e86e80376" + dependencies: + to-object-path "^0.3.0" + +set-immediate-shim@^1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/set-immediate-shim/download/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" + +set-value@^0.4.3: + version "0.4.3" + resolved "http://registry.npm.taobao.org/set-value/download/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1" + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.1" + to-object-path "^0.3.0" + +set-value@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/set-value/download/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274" + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + +setimmediate@^1.0.4: + version "1.0.5" + resolved "http://registry.npm.taobao.org/setimmediate/download/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + +setprototypeof@1.0.3: + version "1.0.3" + resolved "http://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04" + +setprototypeof@1.1.0: + version "1.1.0" + resolved "http://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + +sha.js@^2.4.0, sha.js@^2.4.8: + version "2.4.10" + resolved "http://registry.npm.taobao.org/sha.js/download/sha.js-2.4.10.tgz#b1fde5cd7d11a5626638a07c604ab909cfa31f9b" + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +shallow-clone@^0.1.2: + version "0.1.2" + resolved "http://registry.npm.taobao.org/shallow-clone/download/shallow-clone-0.1.2.tgz#5909e874ba77106d73ac414cfec1ffca87d97060" + dependencies: + is-extendable "^0.1.1" + kind-of "^2.0.1" + lazy-cache "^0.2.3" + mixin-object "^2.0.1" + +shebang-command@^1.2.0: + version "1.2.0" + resolved "http://registry.npm.taobao.org/shebang-command/download/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + dependencies: + shebang-regex "^1.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/shebang-regex/download/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + +signal-exit@^3.0.0, signal-exit@^3.0.2: + version "3.0.2" + resolved "http://registry.npm.taobao.org/signal-exit/download/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" + +single-line-log@^1.1.2: + version "1.1.2" + resolved "http://registry.npm.taobao.org/single-line-log/download/single-line-log-1.1.2.tgz#c2f83f273a3e1a16edb0995661da0ed5ef033364" + dependencies: + string-width "^1.0.1" + +slash@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/slash/download/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" + +slice-ansi@1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/slice-ansi/download/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d" + dependencies: + is-fullwidth-code-point "^2.0.0" + +snake-case@^2.1.0: + version "2.1.0" + resolved "http://registry.npm.taobao.org/snake-case/download/snake-case-2.1.0.tgz#41bdb1b73f30ec66a04d4e2cad1b76387d4d6d9f" + dependencies: + no-case "^2.2.0" + +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "http://registry.npm.taobao.org/snapdragon-node/download/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + dependencies: + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" + +snapdragon-util@^3.0.1: + version "3.0.1" + resolved "http://registry.npm.taobao.org/snapdragon-util/download/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + dependencies: + kind-of "^3.2.0" + +snapdragon@^0.8.1: + version "0.8.1" + resolved "http://registry.npm.taobao.org/snapdragon/download/snapdragon-0.8.1.tgz#e12b5487faded3e3dea0ac91e9400bf75b401370" + dependencies: + base "^0.11.1" + debug "^2.2.0" + define-property "^0.2.5" + extend-shallow "^2.0.1" + map-cache "^0.2.2" + source-map "^0.5.6" + source-map-resolve "^0.5.0" + use "^2.0.0" + +sntp@1.x.x: + version "1.0.9" + resolved "http://registry.npm.taobao.org/sntp/download/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" + dependencies: + hoek "2.x.x" + +sntp@2.x.x: + version "2.1.0" + resolved "http://registry.npm.taobao.org/sntp/download/sntp-2.1.0.tgz#2c6cec14fedc2222739caf9b5c3d85d1cc5a2cc8" + dependencies: + hoek "4.x.x" + +socket.io-adapter@0.5.0: + version "0.5.0" + resolved "http://registry.npm.taobao.org/socket.io-adapter/download/socket.io-adapter-0.5.0.tgz#cb6d4bb8bec81e1078b99677f9ced0046066bb8b" + dependencies: + debug "2.3.3" + socket.io-parser "2.3.1" + +socket.io-client@1.7.3: + version "1.7.3" + resolved "http://registry.npm.taobao.org/socket.io-client/download/socket.io-client-1.7.3.tgz#b30e86aa10d5ef3546601c09cde4765e381da377" + dependencies: + backo2 "1.0.2" + component-bind "1.0.0" + component-emitter "1.2.1" + debug "2.3.3" + engine.io-client "1.8.3" + has-binary "0.1.7" + indexof "0.0.1" + object-component "0.0.3" + parseuri "0.0.5" + socket.io-parser "2.3.1" + to-array "0.1.4" + +socket.io-parser@2.3.1: + version "2.3.1" + resolved "http://registry.npm.taobao.org/socket.io-parser/download/socket.io-parser-2.3.1.tgz#dd532025103ce429697326befd64005fcfe5b4a0" + dependencies: + component-emitter "1.1.2" + debug "2.2.0" + isarray "0.0.1" + json3 "3.3.2" + +socket.io@1.7.3: + version "1.7.3" + resolved "http://registry.npm.taobao.org/socket.io/download/socket.io-1.7.3.tgz#b8af9caba00949e568e369f1327ea9be9ea2461b" + dependencies: + debug "2.3.3" + engine.io "1.8.3" + has-binary "0.1.7" + object-assign "4.1.0" + socket.io-adapter "0.5.0" + socket.io-client "1.7.3" + socket.io-parser "2.3.1" + +sockjs-client@1.1.4: + version "1.1.4" + resolved "http://registry.npm.taobao.org/sockjs-client/download/sockjs-client-1.1.4.tgz#5babe386b775e4cf14e7520911452654016c8b12" + dependencies: + debug "^2.6.6" + eventsource "0.1.6" + faye-websocket "~0.11.0" + inherits "^2.0.1" + json3 "^3.3.2" + url-parse "^1.1.8" + +sockjs@0.3.19: + version "0.3.19" + resolved "http://registry.npm.taobao.org/sockjs/download/sockjs-0.3.19.tgz#d976bbe800af7bd20ae08598d582393508993c0d" + dependencies: + faye-websocket "^0.10.0" + uuid "^3.0.1" + +sort-keys@^1.0.0: + version "1.1.2" + resolved "http://registry.npm.taobao.org/sort-keys/download/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" + dependencies: + is-plain-obj "^1.0.0" + +source-list-map@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/source-list-map/download/source-list-map-2.0.0.tgz#aaa47403f7b245a92fbc97ea08f250d6087ed085" + +source-map-resolve@^0.3.0: + version "0.3.1" + resolved "http://registry.npm.taobao.org/source-map-resolve/download/source-map-resolve-0.3.1.tgz#610f6122a445b8dd51535a2a71b783dfc1248761" + dependencies: + atob "~1.1.0" + resolve-url "~0.2.1" + source-map-url "~0.3.0" + urix "~0.1.0" + +source-map-resolve@^0.5.0: + version "0.5.1" + resolved "http://registry.npm.taobao.org/source-map-resolve/download/source-map-resolve-0.5.1.tgz#7ad0f593f2281598e854df80f19aae4b92d7a11a" + dependencies: + atob "^2.0.0" + decode-uri-component "^0.2.0" + resolve-url "^0.2.1" + source-map-url "^0.4.0" + urix "^0.1.0" + +source-map-support@^0.4.15: + version "0.4.18" + resolved "http://registry.npm.taobao.org/source-map-support/download/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" + dependencies: + source-map "^0.5.6" + +source-map-support@^0.5.3: + version "0.5.3" + resolved "http://registry.npm.taobao.org/source-map-support/download/source-map-support-0.5.3.tgz#2b3d5fff298cfa4d1afd7d4352d569e9a0158e76" + dependencies: + source-map "^0.6.0" + +source-map-url@^0.4.0: + version "0.4.0" + resolved "http://registry.npm.taobao.org/source-map-url/download/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" + +source-map-url@~0.3.0: + version "0.3.0" + resolved "http://registry.npm.taobao.org/source-map-url/download/source-map-url-0.3.0.tgz#7ecaf13b57bcd09da8a40c5d269db33799d4aaf9" + +source-map@0.4.x, source-map@^0.4.2, source-map@^0.4.4: + version "0.4.4" + resolved "http://registry.npm.taobao.org/source-map/download/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" + dependencies: + amdefine ">=0.0.4" + +source-map@0.5.x, source-map@^0.5.1, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.0, source-map@~0.5.1: + version "0.5.7" + resolved "http://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + +source-map@^0.1.38: + version "0.1.43" + resolved "http://registry.npm.taobao.org/source-map/download/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346" + dependencies: + amdefine ">=0.0.4" + +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: + version "0.6.1" + resolved "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + +source-map@~0.2.0: + version "0.2.0" + resolved "http://registry.npm.taobao.org/source-map/download/source-map-0.2.0.tgz#dab73fbcfc2ba819b4de03bd6f6eaa48164b3f9d" + dependencies: + amdefine ">=0.0.4" + +spdx-correct@~1.0.0: + version "1.0.2" + resolved "http://registry.npm.taobao.org/spdx-correct/download/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40" + dependencies: + spdx-license-ids "^1.0.2" + +spdx-expression-parse@~1.0.0: + version "1.0.4" + resolved "http://registry.npm.taobao.org/spdx-expression-parse/download/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c" + +spdx-license-ids@^1.0.2: + version "1.2.2" + resolved "http://registry.npm.taobao.org/spdx-license-ids/download/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57" + +spdy-transport@^2.0.18: + version "2.0.20" + resolved "http://registry.npm.taobao.org/spdy-transport/download/spdy-transport-2.0.20.tgz#735e72054c486b2354fe89e702256004a39ace4d" + dependencies: + debug "^2.6.8" + detect-node "^2.0.3" + hpack.js "^2.1.6" + obuf "^1.1.1" + readable-stream "^2.2.9" + safe-buffer "^5.0.1" + wbuf "^1.7.2" + +spdy@^3.4.1: + version "3.4.7" + resolved "http://registry.npm.taobao.org/spdy/download/spdy-3.4.7.tgz#42ff41ece5cc0f99a3a6c28aabb73f5c3b03acbc" + dependencies: + debug "^2.6.8" + handle-thing "^1.2.5" + http-deceiver "^1.2.7" + safe-buffer "^5.0.1" + select-hose "^2.0.0" + spdy-transport "^2.0.18" + +spectron@^3.7.1: + version "3.8.0" + resolved "http://registry.npm.taobao.org/spectron/download/spectron-3.8.0.tgz#122c3562fd7e92b7cdf6f94094aa495b150dfa51" + dependencies: + dev-null "^0.1.1" + electron-chromedriver "~1.8.0" + request "^2.81.0" + split "^1.0.0" + webdriverio "^4.8.0" + +speedometer@~0.1.2: + version "0.1.4" + resolved "http://registry.npm.taobao.org/speedometer/download/speedometer-0.1.4.tgz#9876dbd2a169d3115402d48e6ea6329c8816a50d" + +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "http://registry.npm.taobao.org/split-string/download/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + dependencies: + extend-shallow "^3.0.0" + +split@^1.0.0: + version "1.0.1" + resolved "http://registry.npm.taobao.org/split/download/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9" + dependencies: + through "2" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "http://registry.npm.taobao.org/sprintf-js/download/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + +sshpk@^1.7.0: + version "1.13.1" + resolved "http://registry.npm.taobao.org/sshpk/download/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3" + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + dashdash "^1.12.0" + getpass "^0.1.1" + optionalDependencies: + bcrypt-pbkdf "^1.0.0" + ecc-jsbn "~0.1.1" + jsbn "~0.1.0" + tweetnacl "~0.14.0" + +ssri@^5.0.0: + version "5.2.1" + resolved "http://registry.npm.taobao.org/ssri/download/ssri-5.2.1.tgz#8b6eb873688759bd3c75a88dee74593d179bb73c" + dependencies: + safe-buffer "^5.1.1" + +stat-mode@^0.2.2: + version "0.2.2" + resolved "http://registry.npm.taobao.org/stat-mode/download/stat-mode-0.2.2.tgz#e6c80b623123d7d80cf132ce538f346289072502" + +static-extend@^0.1.1: + version "0.1.2" + resolved "http://registry.npm.taobao.org/static-extend/download/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + +"statuses@>= 1.3.1 < 2": + version "1.4.0" + resolved "http://registry.npm.taobao.org/statuses/download/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087" + +statuses@~1.3.1: + version "1.3.1" + resolved "http://registry.npm.taobao.org/statuses/download/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" + +stdout-stream@^1.4.0: + version "1.4.0" + resolved "http://registry.npm.taobao.org/stdout-stream/download/stdout-stream-1.4.0.tgz#a2c7c8587e54d9427ea9edb3ac3f2cd522df378b" + dependencies: + readable-stream "^2.0.1" + +stream-browserify@^2.0.1: + version "2.0.1" + resolved "http://registry.npm.taobao.org/stream-browserify/download/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db" + dependencies: + inherits "~2.0.1" + readable-stream "^2.0.2" + +stream-each@^1.1.0: + version "1.2.2" + resolved "http://registry.npm.taobao.org/stream-each/download/stream-each-1.2.2.tgz#8e8c463f91da8991778765873fe4d960d8f616bd" + dependencies: + end-of-stream "^1.1.0" + stream-shift "^1.0.0" + +stream-http@^2.7.2: + version "2.8.0" + resolved "http://registry.npm.taobao.org/stream-http/download/stream-http-2.8.0.tgz#fd86546dac9b1c91aff8fc5d287b98fafb41bc10" + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.1" + readable-stream "^2.3.3" + to-arraybuffer "^1.0.0" + xtend "^4.0.0" + +stream-shift@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/stream-shift/download/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" + +strict-uri-encode@^1.0.0: + version "1.1.0" + resolved "http://registry.npm.taobao.org/strict-uri-encode/download/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" + +string-width@^1.0.1, string-width@^1.0.2: + version "1.0.2" + resolved "http://registry.npm.taobao.org/string-width/download/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: + version "2.1.1" + resolved "http://registry.npm.taobao.org/string-width/download/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string_decoder@^1.0.0, string_decoder@~1.0.3: + version "1.0.3" + resolved "http://registry.npm.taobao.org/string_decoder/download/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab" + dependencies: + safe-buffer "~5.1.0" + +string_decoder@~0.10.x: + version "0.10.31" + resolved "http://registry.npm.taobao.org/string_decoder/download/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + +stringstream@~0.0.4, stringstream@~0.0.5: + version "0.0.5" + resolved "http://registry.npm.taobao.org/stringstream/download/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" + +strip-ansi@^2.0.1: + version "2.0.1" + resolved "http://registry.npm.taobao.org/strip-ansi/download/strip-ansi-2.0.1.tgz#df62c1aa94ed2f114e1d0f21fd1d50482b79a60e" + dependencies: + ansi-regex "^1.0.0" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "http://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "http://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + dependencies: + ansi-regex "^3.0.0" + +strip-bom@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/strip-bom/download/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + dependencies: + is-utf8 "^0.2.0" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "http://registry.npm.taobao.org/strip-bom/download/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + +strip-eof@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/strip-eof/download/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + +strip-indent@^1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/strip-indent/download/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" + dependencies: + get-stdin "^4.0.1" + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "http://registry.npm.taobao.org/strip-json-comments/download/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + +style-loader@^0.18.2: + version "0.18.2" + resolved "http://registry.npm.taobao.org/style-loader/download/style-loader-0.18.2.tgz#cc31459afbcd6d80b7220ee54b291a9fd66ff5eb" + dependencies: + loader-utils "^1.0.2" + schema-utils "^0.3.0" + +sumchecker@^1.2.0: + version "1.3.1" + resolved "http://registry.npm.taobao.org/sumchecker/download/sumchecker-1.3.1.tgz#79bb3b4456dd04f18ebdbc0d703a1d1daec5105d" + dependencies: + debug "^2.2.0" + es6-promise "^4.0.5" + +sumchecker@^2.0.1, sumchecker@^2.0.2: + version "2.0.2" + resolved "http://registry.npm.taobao.org/sumchecker/download/sumchecker-2.0.2.tgz#0f42c10e5d05da5d42eea3e56c3399a37d6c5b3e" + dependencies: + debug "^2.2.0" + +supports-color@3.1.2: + version "3.1.2" + resolved "http://registry.npm.taobao.org/supports-color/download/supports-color-3.1.2.tgz#72a262894d9d408b956ca05ff37b2ed8a6e2a2d5" + dependencies: + has-flag "^1.0.0" + +supports-color@^1.3.0: + version "1.3.1" + resolved "http://registry.npm.taobao.org/supports-color/download/supports-color-1.3.1.tgz#15758df09d8ff3b4acc307539fabe27095e1042d" + +supports-color@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + +supports-color@^3.1.0, supports-color@^3.2.3: + version "3.2.3" + resolved "http://registry.npm.taobao.org/supports-color/download/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" + dependencies: + has-flag "^1.0.0" + +supports-color@^4.0.0, supports-color@^4.2.1: + version "4.5.0" + resolved "http://registry.npm.taobao.org/supports-color/download/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b" + dependencies: + has-flag "^2.0.0" + +supports-color@^5.1.0: + version "5.1.0" + resolved "http://registry.npm.taobao.org/supports-color/download/supports-color-5.1.0.tgz#058a021d1b619f7ddf3980d712ea3590ce7de3d5" + dependencies: + has-flag "^2.0.0" + +supports-color@~5.0.0: + version "5.0.1" + resolved "http://registry.npm.taobao.org/supports-color/download/supports-color-5.0.1.tgz#1c5331f22250c84202805b2f17adf16699f3a39a" + dependencies: + has-flag "^2.0.0" + +svgo@^0.7.0: + version "0.7.2" + resolved "http://registry.npm.taobao.org/svgo/download/svgo-0.7.2.tgz#9f5772413952135c6fefbf40afe6a4faa88b4bb5" + dependencies: + coa "~1.0.1" + colors "~1.1.2" + csso "~2.3.1" + js-yaml "~3.7.0" + mkdirp "~0.5.1" + sax "~1.2.1" + whet.extend "~0.9.9" + +swap-case@^1.1.0: + version "1.1.2" + resolved "http://registry.npm.taobao.org/swap-case/download/swap-case-1.1.2.tgz#c39203a4587385fad3c850a0bd1bcafa081974e3" + dependencies: + lower-case "^1.1.1" + upper-case "^1.1.1" + +table@^4.0.1: + version "4.0.2" + resolved "http://registry.npm.taobao.org/table/download/table-4.0.2.tgz#a33447375391e766ad34d3486e6e2aedc84d2e36" + dependencies: + ajv "^5.2.3" + ajv-keywords "^2.1.0" + chalk "^2.1.0" + lodash "^4.17.4" + slice-ansi "1.0.0" + string-width "^2.1.1" + +tapable@^0.2.7: + version "0.2.8" + resolved "http://registry.npm.taobao.org/tapable/download/tapable-0.2.8.tgz#99372a5c999bf2df160afc0d74bed4f47948cd22" + +tar-pack@^3.4.0: + version "3.4.1" + resolved "http://registry.npm.taobao.org/tar-pack/download/tar-pack-3.4.1.tgz#e1dbc03a9b9d3ba07e896ad027317eb679a10a1f" + dependencies: + debug "^2.2.0" + fstream "^1.0.10" + fstream-ignore "^1.0.5" + once "^1.3.3" + readable-stream "^2.1.4" + rimraf "^2.5.1" + tar "^2.2.1" + uid-number "^0.0.6" + +tar-stream@^1.5.0: + version "1.5.5" + resolved "http://registry.npm.taobao.org/tar-stream/download/tar-stream-1.5.5.tgz#5cad84779f45c83b1f2508d96b09d88c7218af55" + dependencies: + bl "^1.0.0" + end-of-stream "^1.0.0" + readable-stream "^2.0.0" + xtend "^4.0.0" + +tar@^2.0.0, tar@^2.2.1: + version "2.2.1" + resolved "http://registry.npm.taobao.org/tar/download/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" + dependencies: + block-stream "*" + fstream "^1.0.2" + inherits "2" + +temp-file@^3.1.1: + version "3.1.1" + resolved "http://registry.npm.taobao.org/temp-file/download/temp-file-3.1.1.tgz#8823649aa4e8a6e419eb71b601a2e4d472b0f24f" + dependencies: + async-exit-hook "^2.0.1" + bluebird-lst "^1.0.5" + fs-extra-p "^4.5.0" + lazy-val "^1.0.3" + +term-size@^1.2.0: + version "1.2.0" + resolved "http://registry.npm.taobao.org/term-size/download/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" + dependencies: + execa "^0.7.0" + +test-exclude@^4.1.1: + version "4.1.1" + resolved "http://registry.npm.taobao.org/test-exclude/download/test-exclude-4.1.1.tgz#4d84964b0966b0087ecc334a2ce002d3d9341e26" + dependencies: + arrify "^1.0.1" + micromatch "^2.3.11" + object-assign "^4.1.0" + read-pkg-up "^1.0.1" + require-main-filename "^1.0.1" + +text-table@^0.2.0, text-table@~0.2.0: + version "0.2.0" + resolved "http://registry.npm.taobao.org/text-table/download/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + +throttle-debounce@^1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/throttle-debounce/download/throttle-debounce-1.0.1.tgz#dad0fe130f9daf3719fdea33dc36a8e6ba7f30b5" + +throttleit@0.0.2: + version "0.0.2" + resolved "http://registry.npm.taobao.org/throttleit/download/throttleit-0.0.2.tgz#cfedf88e60c00dd9697b61fdd2a8343a9b680eaf" + +through2@^2.0.0: + version "2.0.3" + resolved "http://registry.npm.taobao.org/through2/download/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" + dependencies: + readable-stream "^2.1.5" + xtend "~4.0.1" + +through2@~0.2.3: + version "0.2.3" + resolved "http://registry.npm.taobao.org/through2/download/through2-0.2.3.tgz#eb3284da4ea311b6cc8ace3653748a52abf25a3f" + dependencies: + readable-stream "~1.1.9" + xtend "~2.1.1" + +through@2, through@^2.3.6, through@~2.3.6: + version "2.3.8" + resolved "http://registry.npm.taobao.org/through/download/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + +thunky@^1.0.2: + version "1.0.2" + resolved "http://registry.npm.taobao.org/thunky/download/thunky-1.0.2.tgz#a862e018e3fb1ea2ec3fce5d55605cf57f247371" + +time-stamp@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/time-stamp/download/time-stamp-2.0.0.tgz#95c6a44530e15ba8d6f4a3ecb8c3a3fac46da357" + +timed-out@^4.0.0: + version "4.0.1" + resolved "http://registry.npm.taobao.org/timed-out/download/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" + +timers-browserify@^2.0.4: + version "2.0.6" + resolved "http://registry.npm.taobao.org/timers-browserify/download/timers-browserify-2.0.6.tgz#241e76927d9ca05f4d959819022f5b3664b64bae" + dependencies: + setimmediate "^1.0.4" + +title-case@^2.1.0: + version "2.1.1" + resolved "http://registry.npm.taobao.org/title-case/download/title-case-2.1.1.tgz#3e127216da58d2bc5becf137ab91dae3a7cd8faa" + dependencies: + no-case "^2.2.0" + upper-case "^1.0.3" + +tmp@0.0.31: + version "0.0.31" + resolved "http://registry.npm.taobao.org/tmp/download/tmp-0.0.31.tgz#8f38ab9438e17315e5dbd8b3657e8bfb277ae4a7" + dependencies: + os-tmpdir "~1.0.1" + +tmp@0.0.x, tmp@^0.0.33: + version "0.0.33" + resolved "http://registry.npm.taobao.org/tmp/download/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + dependencies: + os-tmpdir "~1.0.2" + +to-array@0.1.4: + version "0.1.4" + resolved "http://registry.npm.taobao.org/to-array/download/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" + +to-arraybuffer@^1.0.0: + version "1.0.1" + resolved "http://registry.npm.taobao.org/to-arraybuffer/download/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" + +to-fast-properties@^1.0.3: + version "1.0.3" + resolved "http://registry.npm.taobao.org/to-fast-properties/download/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" + +to-object-path@^0.3.0: + version "0.3.0" + resolved "http://registry.npm.taobao.org/to-object-path/download/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + dependencies: + kind-of "^3.0.2" + +to-regex-range@^2.1.0: + version "2.1.1" + resolved "http://registry.npm.taobao.org/to-regex-range/download/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + +to-regex@^3.0.1: + version "3.0.1" + resolved "http://registry.npm.taobao.org/to-regex/download/to-regex-3.0.1.tgz#15358bee4a2c83bd76377ba1dc049d0f18837aae" + dependencies: + define-property "^0.2.5" + extend-shallow "^2.0.1" + regex-not "^1.0.0" + +toposort@^1.0.0: + version "1.0.6" + resolved "http://registry.npm.taobao.org/toposort/download/toposort-1.0.6.tgz#c31748e55d210effc00fdcdc7d6e68d7d7bb9cec" + +tough-cookie@~2.3.0, tough-cookie@~2.3.3: + version "2.3.3" + resolved "http://registry.npm.taobao.org/tough-cookie/download/tough-cookie-2.3.3.tgz#0b618a5565b6dea90bf3425d04d55edc475a7561" + dependencies: + punycode "^1.4.1" + +trim-newlines@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/trim-newlines/download/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" + +trim-right@^1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/trim-right/download/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" + +"true-case-path@^1.0.2": + version "1.0.2" + resolved "http://registry.npm.taobao.org/true-case-path/download/true-case-path-1.0.2.tgz#7ec91130924766c7f573be3020c34f8fdfd00d62" + dependencies: + glob "^6.0.4" + +truncate-utf8-bytes@^1.0.0: + version "1.0.2" + resolved "http://registry.npm.taobao.org/truncate-utf8-bytes/download/truncate-utf8-bytes-1.0.2.tgz#405923909592d56f78a5818434b0b78489ca5f2b" + dependencies: + utf8-byte-length "^1.0.1" + +tty-browserify@0.0.0: + version "0.0.0" + resolved "http://registry.npm.taobao.org/tty-browserify/download/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "http://registry.npm.taobao.org/tunnel-agent/download/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + dependencies: + safe-buffer "^5.0.1" + +tunnel-agent@~0.4.1: + version "0.4.3" + resolved "http://registry.npm.taobao.org/tunnel-agent/download/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "http://registry.npm.taobao.org/tweetnacl/download/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + +type-check@~0.3.2: + version "0.3.2" + resolved "http://registry.npm.taobao.org/type-check/download/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + dependencies: + prelude-ls "~1.1.2" + +type-detect@^4.0.0: + version "4.0.8" + resolved "http://registry.npm.taobao.org/type-detect/download/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + +type-is@~1.6.15: + version "1.6.15" + resolved "http://registry.npm.taobao.org/type-is/download/type-is-1.6.15.tgz#cab10fb4909e441c82842eafe1ad646c81804410" + dependencies: + media-typer "0.3.0" + mime-types "~2.1.15" + +typedarray@^0.0.6: + version "0.0.6" + resolved "http://registry.npm.taobao.org/typedarray/download/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + +uglify-js@2.6.x: + version "2.6.4" + resolved "http://registry.npm.taobao.org/uglify-js/download/uglify-js-2.6.4.tgz#65ea2fb3059c9394692f15fed87c2b36c16b9adf" + dependencies: + async "~0.2.6" + source-map "~0.5.1" + uglify-to-browserify "~1.0.0" + yargs "~3.10.0" + +uglify-js@3.3.x: + version "3.3.10" + resolved "http://registry.npm.taobao.org/uglify-js/download/uglify-js-3.3.10.tgz#8e47821d4cf28e14c1826a0078ba0825ed094da8" + dependencies: + commander "~2.14.1" + source-map "~0.6.1" + +uglify-js@^2.6, uglify-js@^2.8.29: + version "2.8.29" + resolved "http://registry.npm.taobao.org/uglify-js/download/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" + dependencies: + source-map "~0.5.1" + yargs "~3.10.0" + optionalDependencies: + uglify-to-browserify "~1.0.0" + +uglify-to-browserify@~1.0.0: + version "1.0.2" + resolved "http://registry.npm.taobao.org/uglify-to-browserify/download/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" + +uglifyjs-webpack-plugin@^0.4.6: + version "0.4.6" + resolved "http://registry.npm.taobao.org/uglifyjs-webpack-plugin/download/uglifyjs-webpack-plugin-0.4.6.tgz#b951f4abb6bd617e66f63eb891498e391763e309" + dependencies: + source-map "^0.5.6" + uglify-js "^2.8.29" + webpack-sources "^1.0.1" + +uid-number@^0.0.6: + version "0.0.6" + resolved "http://registry.npm.taobao.org/uid-number/download/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" + +ultron@1.0.x: + version "1.0.2" + resolved "http://registry.npm.taobao.org/ultron/download/ultron-1.0.2.tgz#ace116ab557cd197386a4e88f4685378c8b2e4fa" + +underscore.string@2.3.x: + version "2.3.3" + resolved "http://registry.npm.taobao.org/underscore.string/download/underscore.string-2.3.3.tgz#71c08bf6b428b1133f37e78fa3a21c82f7329b0d" + +underscore@^1.8.3: + version "1.8.3" + resolved "http://registry.npm.taobao.org/underscore/download/underscore-1.8.3.tgz#4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022" + +underscore@~1.4.4: + version "1.4.4" + resolved "http://registry.npm.taobao.org/underscore/download/underscore-1.4.4.tgz#61a6a32010622afa07963bf325203cf12239d604" + +union-value@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/union-value/download/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4" + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^0.4.3" + +uniq@^1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/uniq/download/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" + +uniqid@^4.0.0: + version "4.1.1" + resolved "http://registry.npm.taobao.org/uniqid/download/uniqid-4.1.1.tgz#89220ddf6b751ae52b5f72484863528596bb84c1" + dependencies: + macaddress "^0.2.8" + +uniqs@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/uniqs/download/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" + +unique-filename@^1.1.0: + version "1.1.0" + resolved "http://registry.npm.taobao.org/unique-filename/download/unique-filename-1.1.0.tgz#d05f2fe4032560871f30e93cbe735eea201514f3" + dependencies: + unique-slug "^2.0.0" + +unique-slug@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/unique-slug/download/unique-slug-2.0.0.tgz#db6676e7c7cc0629878ff196097c78855ae9f4ab" + dependencies: + imurmurhash "^0.1.4" + +unique-string@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/unique-string/download/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" + dependencies: + crypto-random-string "^1.0.0" + +universalify@^0.1.0: + version "0.1.1" + resolved "http://registry.npm.taobao.org/universalify/download/universalify-0.1.1.tgz#fa71badd4437af4c148841e3b3b165f9e9e590b7" + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/unpipe/download/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + +unset-value@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/unset-value/download/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + +unzip-response@^2.0.1: + version "2.0.1" + resolved "http://registry.npm.taobao.org/unzip-response/download/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" + +upath@1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/upath/download/upath-1.0.0.tgz#b4706b9461ca8473adf89133d235689ca17f3656" + dependencies: + lodash "3.x" + underscore.string "2.3.x" + +update-notifier@^2.3.0: + version "2.3.0" + resolved "http://registry.npm.taobao.org/update-notifier/download/update-notifier-2.3.0.tgz#4e8827a6bb915140ab093559d7014e3ebb837451" + dependencies: + boxen "^1.2.1" + chalk "^2.0.1" + configstore "^3.0.0" + import-lazy "^2.1.0" + is-installed-globally "^0.1.0" + is-npm "^1.0.0" + latest-version "^3.0.0" + semver-diff "^2.0.0" + xdg-basedir "^3.0.0" + +upper-case-first@^1.1.0, upper-case-first@^1.1.2: + version "1.1.2" + resolved "http://registry.npm.taobao.org/upper-case-first/download/upper-case-first-1.1.2.tgz#5d79bedcff14419518fd2edb0a0507c9b6859115" + dependencies: + upper-case "^1.1.1" + +upper-case@^1.0.3, upper-case@^1.1.0, upper-case@^1.1.1, upper-case@^1.1.3: + version "1.1.3" + resolved "http://registry.npm.taobao.org/upper-case/download/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" + +urix@^0.1.0, urix@~0.1.0: + version "0.1.0" + resolved "http://registry.npm.taobao.org/urix/download/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + +url-loader@^0.5.9: + version "0.5.9" + resolved "http://registry.npm.taobao.org/url-loader/download/url-loader-0.5.9.tgz#cc8fea82c7b906e7777019250869e569e995c295" + dependencies: + loader-utils "^1.0.2" + mime "1.3.x" + +url-parse-lax@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/url-parse-lax/download/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" + dependencies: + prepend-http "^1.0.1" + +url-parse@1.0.x: + version "1.0.5" + resolved "http://registry.npm.taobao.org/url-parse/download/url-parse-1.0.5.tgz#0854860422afdcfefeb6c965c662d4800169927b" + dependencies: + querystringify "0.0.x" + requires-port "1.0.x" + +url-parse@^1.1.8: + version "1.2.0" + resolved "http://registry.npm.taobao.org/url-parse/download/url-parse-1.2.0.tgz#3a19e8aaa6d023ddd27dcc44cb4fc8f7fec23986" + dependencies: + querystringify "~1.0.0" + requires-port "~1.0.0" + +url@^0.11.0, url@~0.11.0: + version "0.11.0" + resolved "http://registry.npm.taobao.org/url/download/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + dependencies: + punycode "1.3.2" + querystring "0.2.0" + +use@^2.0.0: + version "2.0.2" + resolved "http://registry.npm.taobao.org/use/download/use-2.0.2.tgz#ae28a0d72f93bf22422a18a2e379993112dec8e8" + dependencies: + define-property "^0.2.5" + isobject "^3.0.0" + lazy-cache "^2.0.2" + +useragent@^2.1.12: + version "2.3.0" + resolved "http://registry.npm.taobao.org/useragent/download/useragent-2.3.0.tgz#217f943ad540cb2128658ab23fc960f6a88c9972" + dependencies: + lru-cache "4.1.x" + tmp "0.0.x" + +utf8-byte-length@^1.0.1: + version "1.0.4" + resolved "http://registry.npm.taobao.org/utf8-byte-length/download/utf8-byte-length-1.0.4.tgz#f45f150c4c66eee968186505ab93fcbb8ad6bf61" + +util-deprecate@~1.0.1: + version "1.0.2" + resolved "http://registry.npm.taobao.org/util-deprecate/download/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + +util@0.10.3, util@^0.10.3: + version "0.10.3" + resolved "http://registry.npm.taobao.org/util/download/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + dependencies: + inherits "2.0.1" + +utila@~0.3: + version "0.3.3" + resolved "http://registry.npm.taobao.org/utila/download/utila-0.3.3.tgz#d7e8e7d7e309107092b05f8d9688824d633a4226" + +utila@~0.4: + version "0.4.0" + resolved "http://registry.npm.taobao.org/utila/download/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" + +utils-merge@1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/utils-merge/download/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + +uuid@^3.0.0, uuid@^3.0.1, uuid@^3.1.0: + version "3.2.1" + resolved "http://registry.npm.taobao.org/uuid/download/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14" + +validate-npm-package-license@^3.0.1: + version "3.0.1" + resolved "http://registry.npm.taobao.org/validate-npm-package-license/download/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc" + dependencies: + spdx-correct "~1.0.0" + spdx-expression-parse "~1.0.0" + +validator@~9.1.1: + version "9.1.2" + resolved "http://registry.npm.taobao.org/validator/download/validator-9.1.2.tgz#5711b6413f78bd9d56003130c81b47c39e86546c" + +vary@~1.1.2: + version "1.1.2" + resolved "http://registry.npm.taobao.org/vary/download/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + +vendors@^1.0.0: + version "1.0.1" + resolved "http://registry.npm.taobao.org/vendors/download/vendors-1.0.1.tgz#37ad73c8ee417fb3d580e785312307d274847f22" + +verror@1.10.0: + version "1.10.0" + resolved "http://registry.npm.taobao.org/verror/download/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +vm-browserify@0.0.4: + version "0.0.4" + resolved "http://registry.npm.taobao.org/vm-browserify/download/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" + dependencies: + indexof "0.0.1" + +void-elements@^2.0.0: + version "2.0.1" + resolved "http://registry.npm.taobao.org/void-elements/download/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" + +vue-electron@^1.0.6: + version "1.0.6" + resolved "http://registry.npm.taobao.org/vue-electron/download/vue-electron-1.0.6.tgz#e798e03180b8933539defe31f92e53b9242b9406" + +vue-hot-reload-api@^2.2.0: + version "2.2.4" + resolved "http://registry.npm.taobao.org/vue-hot-reload-api/download/vue-hot-reload-api-2.2.4.tgz#683bd1d026c0d3b3c937d5875679e9a87ec6cd8f" + +vue-html-loader@^1.2.4: + version "1.2.4" + resolved "http://registry.npm.taobao.org/vue-html-loader/download/vue-html-loader-1.2.4.tgz#54ce489be06065c91dc2a1173122f3e004e0a253" + dependencies: + es6-templates "^0.2.2" + fastparse "^1.0.0" + html-minifier "^2.1.5" + loader-utils "^1.0.2" + object-assign "^4.1.0" + +vue-loader@^13.0.5: + version "13.7.1" + resolved "http://registry.npm.taobao.org/vue-loader/download/vue-loader-13.7.1.tgz#d9009d0abd392b4efe8b8fb1f542f6723b02dd3a" + dependencies: + consolidate "^0.14.0" + hash-sum "^1.0.2" + loader-utils "^1.1.0" + lru-cache "^4.1.1" + postcss "^6.0.8" + postcss-load-config "^1.1.0" + postcss-selector-parser "^2.0.0" + prettier "^1.7.0" + resolve "^1.4.0" + source-map "^0.6.1" + vue-hot-reload-api "^2.2.0" + vue-style-loader "^3.0.0" + vue-template-es2015-compiler "^1.6.0" + +vue-router@^2.5.3: + version "2.8.1" + resolved "http://registry.npm.taobao.org/vue-router/download/vue-router-2.8.1.tgz#9833c9ee57ac83beb0269056fefee71713f20695" + +vue-style-loader@^3.0.0, vue-style-loader@^3.0.1: + version "3.1.2" + resolved "http://registry.npm.taobao.org/vue-style-loader/download/vue-style-loader-3.1.2.tgz#6b66ad34998fc9520c2f1e4d5fa4091641c1597a" + dependencies: + hash-sum "^1.0.2" + loader-utils "^1.0.2" + +vue-template-compiler@^2.4.2: + version "2.5.13" + resolved "http://registry.npm.taobao.org/vue-template-compiler/download/vue-template-compiler-2.5.13.tgz#12a2aa0ecd6158ac5e5f14d294b0993f399c3d38" + dependencies: + de-indent "^1.0.2" + he "^1.1.0" + +vue-template-es2015-compiler@^1.6.0: + version "1.6.0" + resolved "http://registry.npm.taobao.org/vue-template-es2015-compiler/download/vue-template-es2015-compiler-1.6.0.tgz#dc42697133302ce3017524356a6c61b7b69b4a18" + +vue@^2.3.3: + version "2.5.13" + resolved "http://registry.npm.taobao.org/vue/download/vue-2.5.13.tgz#95bd31e20efcf7a7f39239c9aa6787ce8cf578e1" + +vuex-persist@^1.1.1: + version "1.1.1" + resolved "http://registry.npm.taobao.org/vuex-persist/download/vuex-persist-1.1.1.tgz#dc3875fa17d5a5881a526276608bdfc8001ed0c1" + dependencies: + lodash.merge "^4.6.0" + +vuex@^2.3.1: + version "2.5.0" + resolved "http://registry.npm.taobao.org/vuex/download/vuex-2.5.0.tgz#20f0265ade6c9a5ac6724a405d3ffdb4726c9741" + +watchpack@^1.4.0: + version "1.4.0" + resolved "http://registry.npm.taobao.org/watchpack/download/watchpack-1.4.0.tgz#4a1472bcbb952bd0a9bb4036801f954dfb39faac" + dependencies: + async "^2.1.2" + chokidar "^1.7.0" + graceful-fs "^4.1.2" + +wbuf@^1.1.0, wbuf@^1.7.2: + version "1.7.2" + resolved "http://registry.npm.taobao.org/wbuf/download/wbuf-1.7.2.tgz#d697b99f1f59512df2751be42769c1580b5801fe" + dependencies: + minimalistic-assert "^1.0.0" + +wdio-dot-reporter@~0.0.8: + version "0.0.9" + resolved "http://registry.npm.taobao.org/wdio-dot-reporter/download/wdio-dot-reporter-0.0.9.tgz#929b2adafd49d6b0534fda068e87319b47e38fe5" + +webdriverio@^4.8.0: + version "4.10.2" + resolved "http://registry.npm.taobao.org/webdriverio/download/webdriverio-4.10.2.tgz#0d28622802c966015afe34b3ac566dc339f22e43" + dependencies: + archiver "~2.1.0" + babel-runtime "^6.26.0" + css-parse "~2.0.0" + css-value "~0.0.1" + deepmerge "~2.0.1" + ejs "~2.5.6" + gaze "~1.1.2" + glob "~7.1.1" + inquirer "~3.3.0" + json-stringify-safe "~5.0.1" + mkdirp "~0.5.1" + npm-install-package "~2.1.0" + optimist "~0.6.1" + q "~1.5.0" + request "~2.83.0" + rgb2hex "~0.1.0" + safe-buffer "~5.1.1" + supports-color "~5.0.0" + url "~0.11.0" + validator "~9.1.1" + wdio-dot-reporter "~0.0.8" + wgxpath "~1.0.0" + +webpack-dev-middleware@1.12.2, webpack-dev-middleware@^1.12.0: + version "1.12.2" + resolved "http://registry.npm.taobao.org/webpack-dev-middleware/download/webpack-dev-middleware-1.12.2.tgz#f8fc1120ce3b4fc5680ceecb43d777966b21105e" + dependencies: + memory-fs "~0.4.1" + mime "^1.5.0" + path-is-absolute "^1.0.0" + range-parser "^1.0.3" + time-stamp "^2.0.0" + +webpack-dev-server@^2.7.1: + version "2.11.1" + resolved "http://registry.npm.taobao.org/webpack-dev-server/download/webpack-dev-server-2.11.1.tgz#6f9358a002db8403f016e336816f4485384e5ec0" + dependencies: + ansi-html "0.0.7" + array-includes "^3.0.3" + bonjour "^3.5.0" + chokidar "^2.0.0" + compression "^1.5.2" + connect-history-api-fallback "^1.3.0" + debug "^3.1.0" + del "^3.0.0" + express "^4.16.2" + html-entities "^1.2.0" + http-proxy-middleware "~0.17.4" + import-local "^1.0.0" + internal-ip "1.2.0" + ip "^1.1.5" + killable "^1.0.0" + loglevel "^1.4.1" + opn "^5.1.0" + portfinder "^1.0.9" + selfsigned "^1.9.1" + serve-index "^1.7.2" + sockjs "0.3.19" + sockjs-client "1.1.4" + spdy "^3.4.1" + strip-ansi "^3.0.0" + supports-color "^5.1.0" + webpack-dev-middleware "1.12.2" + yargs "6.6.0" + +webpack-hot-middleware@^2.18.2: + version "2.21.0" + resolved "http://registry.npm.taobao.org/webpack-hot-middleware/download/webpack-hot-middleware-2.21.0.tgz#7b3c113a7a4b301c91e0749573c7aab28b414b52" + dependencies: + ansi-html "0.0.7" + html-entities "^1.2.0" + querystring "^0.2.0" + strip-ansi "^3.0.0" + +webpack-merge@^4.1.0: + version "4.1.1" + resolved "http://registry.npm.taobao.org/webpack-merge/download/webpack-merge-4.1.1.tgz#f1197a0a973e69c6fbeeb6d658219aa8c0c13555" + dependencies: + lodash "^4.17.4" + +webpack-sources@^1.0.1: + version "1.1.0" + resolved "http://registry.npm.taobao.org/webpack-sources/download/webpack-sources-1.1.0.tgz#a101ebae59d6507354d71d8013950a3a8b7a5a54" + dependencies: + source-list-map "^2.0.0" + source-map "~0.6.1" + +webpack@^3.5.2: + version "3.10.0" + resolved "http://registry.npm.taobao.org/webpack/download/webpack-3.10.0.tgz#5291b875078cf2abf42bdd23afe3f8f96c17d725" + dependencies: + acorn "^5.0.0" + acorn-dynamic-import "^2.0.0" + ajv "^5.1.5" + ajv-keywords "^2.0.0" + async "^2.1.2" + enhanced-resolve "^3.4.0" + escope "^3.6.0" + interpret "^1.0.0" + json-loader "^0.5.4" + json5 "^0.5.1" + loader-runner "^2.3.0" + loader-utils "^1.1.0" + memory-fs "~0.4.1" + mkdirp "~0.5.0" + node-libs-browser "^2.0.0" + source-map "^0.5.3" + supports-color "^4.2.1" + tapable "^0.2.7" + uglifyjs-webpack-plugin "^0.4.6" + watchpack "^1.4.0" + webpack-sources "^1.0.1" + yargs "^8.0.2" + +websocket-driver@>=0.5.1: + version "0.7.0" + resolved "http://registry.npm.taobao.org/websocket-driver/download/websocket-driver-0.7.0.tgz#0caf9d2d755d93aee049d4bdd0d3fe2cca2a24eb" + dependencies: + http-parser-js ">=0.4.0" + websocket-extensions ">=0.1.1" + +websocket-extensions@>=0.1.1: + version "0.1.3" + resolved "http://registry.npm.taobao.org/websocket-extensions/download/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29" + +wgxpath@~1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/wgxpath/download/wgxpath-1.0.0.tgz#eef8a4b9d558cc495ad3a9a2b751597ecd9af690" + +whet.extend@~0.9.9: + version "0.9.9" + resolved "http://registry.npm.taobao.org/whet.extend/download/whet.extend-0.9.9.tgz#f877d5bf648c97e5aa542fadc16d6a259b9c11a1" + +which-module@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/which-module/download/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" + +which-module@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/which-module/download/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + +which@1, which@^1.1.1, which@^1.2.9: + version "1.3.0" + resolved "http://registry.npm.taobao.org/which/download/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a" + dependencies: + isexe "^2.0.0" + +wide-align@^1.1.0: + version "1.1.2" + resolved "http://registry.npm.taobao.org/wide-align/download/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710" + dependencies: + string-width "^1.0.2" + +widest-line@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/widest-line/download/widest-line-2.0.0.tgz#0142a4e8a243f8882c0233aa0e0281aa76152273" + dependencies: + string-width "^2.1.1" + +window-size@0.1.0: + version "0.1.0" + resolved "http://registry.npm.taobao.org/window-size/download/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" + +window-size@0.3.0: + version "0.3.0" + resolved "http://registry.npm.taobao.org/window-size/download/window-size-0.3.0.tgz#b8f0b66e325d22160751e496337e44b45b727546" + +wordwrap@0.0.2: + version "0.0.2" + resolved "http://registry.npm.taobao.org/wordwrap/download/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" + +wordwrap@^1.0.0, wordwrap@~1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/wordwrap/download/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + +wordwrap@~0.0.2: + version "0.0.3" + resolved "http://registry.npm.taobao.org/wordwrap/download/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" + +wrap-ansi@^2.0.0: + version "2.1.0" + resolved "http://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + +wrappy@1: + version "1.0.2" + resolved "http://registry.npm.taobao.org/wrappy/download/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + +write-file-atomic@^2.0.0: + version "2.3.0" + resolved "http://registry.npm.taobao.org/write-file-atomic/download/write-file-atomic-2.3.0.tgz#1ff61575c2e2a4e8e510d6fa4e243cce183999ab" + dependencies: + graceful-fs "^4.1.11" + imurmurhash "^0.1.4" + signal-exit "^3.0.2" + +write@^0.2.1: + version "0.2.1" + resolved "http://registry.npm.taobao.org/write/download/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" + dependencies: + mkdirp "^0.5.1" + +ws@1.1.2: + version "1.1.2" + resolved "http://registry.npm.taobao.org/ws/download/ws-1.1.2.tgz#8a244fa052401e08c9886cf44a85189e1fd4067f" + dependencies: + options ">=0.0.5" + ultron "1.0.x" + +wtf-8@1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/wtf-8/download/wtf-8-1.0.0.tgz#392d8ba2d0f1c34d1ee2d630f15d0efb68e1048a" + +xdg-basedir@^3.0.0: + version "3.0.0" + resolved "http://registry.npm.taobao.org/xdg-basedir/download/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" + +xml-char-classes@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/xml-char-classes/download/xml-char-classes-1.0.0.tgz#64657848a20ffc5df583a42ad8a277b4512bbc4d" + +xmlbuilder@8.2.2: + version "8.2.2" + resolved "http://registry.npm.taobao.org/xmlbuilder/download/xmlbuilder-8.2.2.tgz#69248673410b4ba42e1a6136551d2922335aa773" + +xmldom@0.1.x: + version "0.1.27" + resolved "http://registry.npm.taobao.org/xmldom/download/xmldom-0.1.27.tgz#d501f97b3bdb403af8ef9ecc20573187aadac0e9" + +xmlhttprequest-ssl@1.5.3: + version "1.5.3" + resolved "http://registry.npm.taobao.org/xmlhttprequest-ssl/download/xmlhttprequest-ssl-1.5.3.tgz#185a888c04eca46c3e4070d99f7b49de3528992d" + +xtend@^4.0.0, xtend@~4.0.1: + version "4.0.1" + resolved "http://registry.npm.taobao.org/xtend/download/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" + +xtend@~2.1.1: + version "2.1.2" + resolved "http://registry.npm.taobao.org/xtend/download/xtend-2.1.2.tgz#6efecc2a4dad8e6962c4901b337ce7ba87b5d28b" + dependencies: + object-keys "~0.4.0" + +y18n@^3.2.1: + version "3.2.1" + resolved "http://registry.npm.taobao.org/y18n/download/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" + +yallist@^2.1.2: + version "2.1.2" + resolved "http://registry.npm.taobao.org/yallist/download/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + +yargs-parser@^4.2.0: + version "4.2.1" + resolved "http://registry.npm.taobao.org/yargs-parser/download/yargs-parser-4.2.1.tgz#29cceac0dc4f03c6c87b4a9f217dd18c9f74871c" + dependencies: + camelcase "^3.0.0" + +yargs-parser@^5.0.0: + version "5.0.0" + resolved "http://registry.npm.taobao.org/yargs-parser/download/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a" + dependencies: + camelcase "^3.0.0" + +yargs-parser@^7.0.0: + version "7.0.0" + resolved "http://registry.npm.taobao.org/yargs-parser/download/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9" + dependencies: + camelcase "^4.1.0" + +yargs-parser@^9.0.2: + version "9.0.2" + resolved "http://registry.npm.taobao.org/yargs-parser/download/yargs-parser-9.0.2.tgz#9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077" + dependencies: + camelcase "^4.1.0" + +yargs@6.6.0: + version "6.6.0" + resolved "http://registry.npm.taobao.org/yargs/download/yargs-6.6.0.tgz#782ec21ef403345f830a808ca3d513af56065208" + dependencies: + camelcase "^3.0.0" + cliui "^3.2.0" + decamelize "^1.1.1" + get-caller-file "^1.0.1" + os-locale "^1.4.0" + read-pkg-up "^1.0.1" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^1.0.2" + which-module "^1.0.0" + y18n "^3.2.1" + yargs-parser "^4.2.0" + +yargs@^11.0.0: + version "11.0.0" + resolved "http://registry.npm.taobao.org/yargs/download/yargs-11.0.0.tgz#c052931006c5eee74610e5fc0354bedfd08a201b" + dependencies: + cliui "^4.0.0" + decamelize "^1.1.1" + find-up "^2.1.0" + get-caller-file "^1.0.1" + os-locale "^2.0.0" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^2.0.0" + which-module "^2.0.0" + y18n "^3.2.1" + yargs-parser "^9.0.2" + +yargs@^7.0.0: + version "7.1.0" + resolved "http://registry.npm.taobao.org/yargs/download/yargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8" + dependencies: + camelcase "^3.0.0" + cliui "^3.2.0" + decamelize "^1.1.1" + get-caller-file "^1.0.1" + os-locale "^1.4.0" + read-pkg-up "^1.0.1" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^1.0.2" + which-module "^1.0.0" + y18n "^3.2.1" + yargs-parser "^5.0.0" + +yargs@^8.0.2: + version "8.0.2" + resolved "http://registry.npm.taobao.org/yargs/download/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360" + dependencies: + camelcase "^4.1.0" + cliui "^3.2.0" + decamelize "^1.1.1" + get-caller-file "^1.0.1" + os-locale "^2.0.0" + read-pkg-up "^2.0.0" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^2.0.0" + which-module "^2.0.0" + y18n "^3.2.1" + yargs-parser "^7.0.0" + +yargs@~3.10.0: + version "3.10.0" + resolved "http://registry.npm.taobao.org/yargs/download/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" + dependencies: + camelcase "^1.0.2" + cliui "^2.1.0" + decamelize "^1.0.0" + window-size "0.1.0" + +yauzl@2.4.1: + version "2.4.1" + resolved "http://registry.npm.taobao.org/yauzl/download/yauzl-2.4.1.tgz#9528f442dab1b2284e58b4379bb194e22e0c4005" + dependencies: + fd-slicer "~1.0.1" + +yeast@0.1.2: + version "0.1.2" + resolved "http://registry.npm.taobao.org/yeast/download/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" + +zip-stream@^1.2.0: + version "1.2.0" + resolved "http://registry.npm.taobao.org/zip-stream/download/zip-stream-1.2.0.tgz#a8bc45f4c1b49699c6b90198baacaacdbcd4ba04" + dependencies: + archiver-utils "^1.3.0" + compress-commons "^1.2.0" + lodash "^4.8.0" + readable-stream "^2.0.0"