From f7e56798298f2ac39035c037ebe961a3ce65cf81 Mon Sep 17 00:00:00 2001 From: vinman Date: Thu, 12 Jul 2018 18:53:23 +0800 Subject: [PATCH 1/7] first commit --- .babelrc | 18 + .editorconfig | 9 + .eslintignore | 5 + .eslintrc.js | 29 + .gitignore | 25 + .postcssrc.js | 10 + README.md | 52 + backend/command/__init__.py | 16 + backend/command/ide_cmd.py | 304 + backend/command/resource.py | 297 + backend/command/response.py | 22 + backend/command/utils.py | 18 + backend/common/__init__.py | 0 backend/common/define.py | 27 + backend/common/loop.py | 45 + backend/common/processor.py | 32 + backend/common/utils.py | 38 + backend/handlers/__init__.py | 0 backend/handlers/http/__init__.py | 1 + backend/handlers/http/vue_handler.py | 14 + backend/handlers/websocket/__init__.py | 1 + backend/handlers/websocket/websocket.py | 61 + backend/projects/ide/example/.config | 13 + backend/projects/ide/example/main.py | 8 + .../projects/ide/example/utils/__init__.py | 0 backend/projects/ide/example/utils/calc.py | 5 + backend/projects/ide/test/.config | 11 + backend/projects/ide/test/main.py | 7 + backend/requirements.txt | 2 + backend/server.py | 65 + backend/utils/__init__.py | 0 backend/utils/log.py | 50 + build/build.js | 41 + build/check-versions.js | 54 + build/utils.js | 101 + build/vue-loader.conf.js | 22 + build/webpack.base.conf.js | 92 + build/webpack.dev.conf.js | 95 + build/webpack.prod.conf.js | 149 + config/dev.env.js | 7 + config/index.js | 76 + config/prod.env.js | 4 + config/test.env.js | 7 + doc/img/code.png | Bin 0 -> 48693 bytes doc/img/complete.png | Bin 0 -> 13719 bytes doc/img/run.png | Bin 0 -> 54176 bytes index.html | 12 + package.json | 94 + src/App.vue | 72 + .../codemirror/theme/monokai-sublime.css | 63 + src/assets/css/common.css | 36 + src/assets/i18n/cn.js | 3 + src/assets/i18n/en.js | 3 + src/assets/img/ide/btn_addfile.svg | 20 + src/assets/img/ide/btn_addfolder.svg | 19 + src/assets/img/ide/btn_addproject.svg | 14 + src/assets/img/ide/btn_clear.svg | 12 + src/assets/img/ide/btn_rename.svg | 22 + src/assets/img/ide/btn_trash.svg | 18 + src/assets/img/ide/icon_addfile.svg | 18 + src/assets/img/ide/icon_back.svg | 17 + src/assets/img/ide/icon_btmclose.svg | 16 + src/assets/img/ide/icon_close.svg | 14 + src/assets/img/ide/icon_close_white.svg | 12 + src/assets/img/ide/icon_documents.svg | 12 + src/assets/img/ide/icon_folder.svg | 17 + src/assets/img/ide/icon_md.svg | 18 + src/assets/img/ide/icon_openfolder.svg | 18 + src/assets/img/ide/icon_project.svg | 12 + src/assets/img/ide/icon_running.svg | 12 + src/assets/img/ide/icon_running_gray.svg | 12 + src/assets/img/ide/icon_stop.svg | 12 + src/assets/img/ide/icon_stop_gray.svg | 12 + src/assets/img/ide/language-python_white.svg | 12 + src/assets/img/ide/language_python.svg | 12 + src/assets/img/pop/bottomarrowbtns.svg | 14 + src/assets/img/pop/btn_trash.svg | 16 + src/assets/img/pop/frame01.svg | 19 + src/assets/img/pop/frame02.svg | 19 + src/assets/img/pop/frame03_fileselection.svg | 19 + src/assets/img/pop/icon_add.svg | 16 + src/assets/img/pop/icon_close.svg | 12 + src/assets/img/pop/icon_project.svg | 16 + src/assets/img/pop/icon_select.svg | 19 + src/assets/img/pop/toparrowbtns.svg | 14 + src/assets/lib/python-hint.js | 23 + src/assets/lib/reconnecting-websocket.js | 389 + src/components/Editor.vue | 325 + src/components/common/BaseCommonTopMenu.vue | 48 + src/components/editor/CodeEditor.vue | 176 + src/components/editor/CodeTab.vue | 109 + src/components/editor/Console.vue | 52 + src/components/editor/ConsoleTab.vue | 108 + src/components/editor/ElTree.vue | 143 + src/components/editor/ResultRun.vue | 3 + src/components/editor/TopMenu.vue | 198 + src/components/editor/dialog/DialogDelete.vue | 136 + src/components/editor/dialog/DialogProjs.vue | 275 + src/components/editor/dialog/DialogText.vue | 305 + src/main.js | 36 + src/router/index.js | 20 + src/store/actions.js | 21 + src/store/core/constant.js | 25 + src/store/core/global_util.js | 22 + src/store/core/model.js | 11 + src/store/core/model_ide.js | 499 + src/store/core/model_socket.js | 114 + src/store/core/model_util.js | 27 + src/store/getters.js | 1 + src/store/index.js | 14 + src/store/modules/index.js | 11 + src/store/modules/model.js | 14 + src/store/mutation-types.js | 1 + static/.gitkeep | 0 test/e2e/custom-assertions/elementCount.js | 27 + test/e2e/nightwatch.conf.js | 46 + test/e2e/runner.js | 48 + test/e2e/specs/test.js | 19 + test/unit/.eslintrc | 7 + test/unit/jest.conf.js | 30 + test/unit/setup.js | 3 + test/unit/specs/HelloWorld.spec.js | 11 + yarn.lock | 8373 +++++++++++++++++ 123 files changed, 14281 insertions(+) create mode 100644 .babelrc create mode 100644 .editorconfig create mode 100644 .eslintignore create mode 100644 .eslintrc.js create mode 100644 .gitignore create mode 100644 .postcssrc.js create mode 100644 README.md create mode 100644 backend/command/__init__.py create mode 100644 backend/command/ide_cmd.py create mode 100644 backend/command/resource.py create mode 100644 backend/command/response.py create mode 100644 backend/command/utils.py create mode 100644 backend/common/__init__.py create mode 100644 backend/common/define.py create mode 100644 backend/common/loop.py create mode 100644 backend/common/processor.py create mode 100644 backend/common/utils.py create mode 100644 backend/handlers/__init__.py create mode 100644 backend/handlers/http/__init__.py create mode 100644 backend/handlers/http/vue_handler.py create mode 100644 backend/handlers/websocket/__init__.py create mode 100644 backend/handlers/websocket/websocket.py create mode 100644 backend/projects/ide/example/.config create mode 100644 backend/projects/ide/example/main.py create mode 100644 backend/projects/ide/example/utils/__init__.py create mode 100644 backend/projects/ide/example/utils/calc.py create mode 100644 backend/projects/ide/test/.config create mode 100644 backend/projects/ide/test/main.py create mode 100644 backend/requirements.txt create mode 100644 backend/server.py create mode 100644 backend/utils/__init__.py create mode 100644 backend/utils/log.py create mode 100644 build/build.js create mode 100644 build/check-versions.js create mode 100644 build/utils.js create mode 100644 build/vue-loader.conf.js create mode 100644 build/webpack.base.conf.js create mode 100644 build/webpack.dev.conf.js create mode 100644 build/webpack.prod.conf.js create mode 100644 config/dev.env.js create mode 100644 config/index.js create mode 100644 config/prod.env.js create mode 100644 config/test.env.js create mode 100644 doc/img/code.png create mode 100644 doc/img/complete.png create mode 100644 doc/img/run.png create mode 100644 index.html create mode 100644 package.json create mode 100644 src/App.vue create mode 100644 src/assets/codemirror/theme/monokai-sublime.css create mode 100644 src/assets/css/common.css create mode 100644 src/assets/i18n/cn.js create mode 100644 src/assets/i18n/en.js create mode 100644 src/assets/img/ide/btn_addfile.svg create mode 100644 src/assets/img/ide/btn_addfolder.svg create mode 100644 src/assets/img/ide/btn_addproject.svg create mode 100644 src/assets/img/ide/btn_clear.svg create mode 100644 src/assets/img/ide/btn_rename.svg create mode 100644 src/assets/img/ide/btn_trash.svg create mode 100644 src/assets/img/ide/icon_addfile.svg create mode 100644 src/assets/img/ide/icon_back.svg create mode 100644 src/assets/img/ide/icon_btmclose.svg create mode 100644 src/assets/img/ide/icon_close.svg create mode 100644 src/assets/img/ide/icon_close_white.svg create mode 100644 src/assets/img/ide/icon_documents.svg create mode 100644 src/assets/img/ide/icon_folder.svg create mode 100644 src/assets/img/ide/icon_md.svg create mode 100644 src/assets/img/ide/icon_openfolder.svg create mode 100644 src/assets/img/ide/icon_project.svg create mode 100644 src/assets/img/ide/icon_running.svg create mode 100644 src/assets/img/ide/icon_running_gray.svg create mode 100644 src/assets/img/ide/icon_stop.svg create mode 100644 src/assets/img/ide/icon_stop_gray.svg create mode 100644 src/assets/img/ide/language-python_white.svg create mode 100644 src/assets/img/ide/language_python.svg create mode 100644 src/assets/img/pop/bottomarrowbtns.svg create mode 100644 src/assets/img/pop/btn_trash.svg create mode 100644 src/assets/img/pop/frame01.svg create mode 100644 src/assets/img/pop/frame02.svg create mode 100644 src/assets/img/pop/frame03_fileselection.svg create mode 100644 src/assets/img/pop/icon_add.svg create mode 100644 src/assets/img/pop/icon_close.svg create mode 100644 src/assets/img/pop/icon_project.svg create mode 100644 src/assets/img/pop/icon_select.svg create mode 100644 src/assets/img/pop/toparrowbtns.svg create mode 100644 src/assets/lib/python-hint.js create mode 100644 src/assets/lib/reconnecting-websocket.js create mode 100644 src/components/Editor.vue create mode 100644 src/components/common/BaseCommonTopMenu.vue create mode 100644 src/components/editor/CodeEditor.vue create mode 100644 src/components/editor/CodeTab.vue create mode 100644 src/components/editor/Console.vue create mode 100644 src/components/editor/ConsoleTab.vue create mode 100644 src/components/editor/ElTree.vue create mode 100644 src/components/editor/ResultRun.vue create mode 100644 src/components/editor/TopMenu.vue create mode 100644 src/components/editor/dialog/DialogDelete.vue create mode 100644 src/components/editor/dialog/DialogProjs.vue create mode 100644 src/components/editor/dialog/DialogText.vue create mode 100644 src/main.js create mode 100644 src/router/index.js create mode 100644 src/store/actions.js create mode 100644 src/store/core/constant.js create mode 100644 src/store/core/global_util.js create mode 100644 src/store/core/model.js create mode 100644 src/store/core/model_ide.js create mode 100644 src/store/core/model_socket.js create mode 100644 src/store/core/model_util.js create mode 100644 src/store/getters.js create mode 100644 src/store/index.js create mode 100644 src/store/modules/index.js create mode 100644 src/store/modules/model.js create mode 100644 src/store/mutation-types.js create mode 100644 static/.gitkeep create mode 100644 test/e2e/custom-assertions/elementCount.js create mode 100644 test/e2e/nightwatch.conf.js create mode 100644 test/e2e/runner.js create mode 100644 test/e2e/specs/test.js create mode 100644 test/unit/.eslintrc create mode 100644 test/unit/jest.conf.js create mode 100644 test/unit/setup.js create mode 100644 test/unit/specs/HelloWorld.spec.js create mode 100644 yarn.lock diff --git a/.babelrc b/.babelrc new file mode 100644 index 0000000..9390d16 --- /dev/null +++ b/.babelrc @@ -0,0 +1,18 @@ +{ + "presets": [ + ["env", { + "modules": false, + "targets": { + "browsers": ["> 1%", "last 2 versions", "not ie <= 8"] + } + }], + "stage-2" + ], + "plugins": ["transform-vue-jsx", "transform-runtime"], + "env": { + "test": { + "presets": ["env", "stage-2"], + "plugins": ["transform-vue-jsx", "transform-es2015-modules-commonjs", "dynamic-import-node"] + } + } +} diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..9d08a1a --- /dev/null +++ b/.editorconfig @@ -0,0 +1,9 @@ +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..e2192c5 --- /dev/null +++ b/.eslintignore @@ -0,0 +1,5 @@ +/build/ +/config/ +/dist/ +/*.js +/test/unit/coverage/ diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..22fdce8 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,29 @@ +// https://eslint.org/docs/user-guide/configuring + +module.exports = { + root: true, + parserOptions: { + parser: 'babel-eslint' + }, + env: { + browser: true, + }, + extends: [ + // https://github.com/vuejs/eslint-plugin-vue#priority-a-essential-error-prevention + // consider switching to `plugin:vue/strongly-recommended` or `plugin:vue/recommended` for stricter rules. + 'plugin:vue/essential', + // https://github.com/standard/standard/blob/master/docs/RULES-en.md + 'standard' + ], + // required to lint *.vue files + plugins: [ + 'vue' + ], + // add your custom rules here + rules: { + // allow async-await + 'generator-star-spacing': 'off', + // allow debugger during development + 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off' + } +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ef3a620 --- /dev/null +++ b/.gitignore @@ -0,0 +1,25 @@ +.DS_Store +node_modules/ +/dist/ +npm-debug.log* +yarn-debug.log* +yarn-error.log* +/test/unit/coverage/ +/test/e2e/reports/ +selenium-debug.log + +# Editor directories and files +.idea +.vscode +*.suo +*.ntvs* +*.njsproj +*.sln +*.pyc +**/__pycache__ +**/__pycache__/ +__pycache__ +__pycache__/* +/backend/static/* +/backend/templates/* + diff --git a/.postcssrc.js b/.postcssrc.js new file mode 100644 index 0000000..eee3e92 --- /dev/null +++ b/.postcssrc.js @@ -0,0 +1,10 @@ +// https://github.com/michael-ciniawsky/postcss-load-config + +module.exports = { + "plugins": { + "postcss-import": {}, + "postcss-url": {}, + // to edit target browsers: use "browserslist" field in package.json + "autoprefixer": {} + } +} diff --git a/README.md b/README.md new file mode 100644 index 0000000..e59cef9 --- /dev/null +++ b/README.md @@ -0,0 +1,52 @@ +# Python-Web-IDE +----------- +> 一个在线Python的IDE +> 前后端分离 + +## 概述 +在线Python IDE在实现上前后端分离,后端使用Python的Tornado框架实现,前端使用Vue来实现,前后端使用websocket来通信。 + +### 技术栈 +- Python/Tornado +- JS/Vue + +## 功能描述 +- 支持工程、文件、文件夹的增删查改 +- 支持Python代码基本补全 +- 支持Python代码运行管理和输出 + +编码: +![avatar](doc/img/code.png) +补全: +![avatar](doc/img/complete.png) +运行: +![avatar](doc/img/run.png) + +## 编译与运行 +### 前端 +``` bash +# 安装依赖 +npm install 或者 yarn install + +# 开发运行(默认端口是8080) +npm run dev 或者 yarn run dev + +# 打包编译(默认打包的路径已经指定在后端程序可以加载的地方) +npm run build 或者 yarn build +``` +### 后端 +``` +# 进入backend目录 +cd backend + +# 安装依赖 +pip install -r requirements.txt + +# 运行(运行端口为10086)指定端口可以使用参数 --port=10010 +# 如果前端页面是独立运行的,不可指定后端端口(除非修改前端代码) +python server.py + +#访问 +开发运行前端的情况: localhost:8080 +打包好前端的情况: localhost:10086 +``` diff --git a/backend/command/__init__.py b/backend/command/__init__.py new file mode 100644 index 0000000..9eacf2c --- /dev/null +++ b/backend/command/__init__.py @@ -0,0 +1,16 @@ +#!/usr/bin/env python3 +# Software License Agreement (BSD License) +# +# Copyright (c) 2018, Vinman, Inc. +# All rights reserved. +# +# Author: Vinman + +from .ide_cmd import IdeCmd + + +class Command(IdeCmd): + def __init__(self): + self.isBeart = False + self.beart_clients = [] + super(Command, self).__init__() diff --git a/backend/command/ide_cmd.py b/backend/command/ide_cmd.py new file mode 100644 index 0000000..c1b2f9b --- /dev/null +++ b/backend/command/ide_cmd.py @@ -0,0 +1,304 @@ +#!/usr/bin/env python3 +# Software License Agreement (BSD License) +# +# Copyright (c) 2018, Vinman, Inc. +# All rights reserved. +# +# Author: Vinman + +import os +import sys +import json +import shutil +import jedi +import time +import threading +import subprocess +from tornado import gen +from .utils import convert_path +from .resource import * +from .response import response +from common import define + +PROJECT_IS_EXIST = -1 +PROJECT_IS_NOT_EXIST = -2 + +DIR_IS_EXIST = -11 +DIR_IS_NOT_EXIST = -12 + +FILE_IS_EXIST = -21 +FILE_IS_NOT_EXIST = -22 + +if not os.path.exists(os.path.join(define.PROJECTS, 'ide')): + os.makedirs(os.path.join(define.PROJECTS, 'ide')) + + +class IdeCmd(object): + def __init__(self): + pass + + @gen.coroutine + def ide_list_projects(self, client, cmd_id, data): + ide_path = os.path.join(define.PROJECTS, 'ide') + code, projects = list_projects(ide_path) + response(client, cmd_id, code, projects) + + @gen.coroutine + def ide_get_project(self, client, cmd_id, data): + prj_name = data.get('projectName') + prj_path = os.path.join(define.PROJECTS, 'ide', prj_name) + code, project = get_project(prj_path) + response(client, cmd_id, code, project) + + @gen.coroutine + def ide_create_project(self, client, cmd_id, data): + prj_name = data.get('projectName') + prj_path = os.path.join(define.PROJECTS, 'ide', prj_name) + code, _ = create_project(prj_path, config_data={ + 'type': 'python', + 'expendKeys': ['/'], + 'openList': ['/main.py'], + 'selectFilePath': '/main.py' + }) + if code == 0: + write(os.path.join(prj_path, 'main.py'), '#!/usr/bin/env python3\n\n') + response(client, cmd_id, code, _) + + @gen.coroutine + def ide_delete_project(self, client, cmd_id, data): + prj_name = data.get('projectName') + prj_path = os.path.join(define.PROJECTS, 'ide', prj_name) + code, _ = delete(prj_path) + response(client, cmd_id, code, _) + + @gen.coroutine + def ide_rename_project(self, client, cmd_id, data): + old_name = data.get('oldName') + old_path = os.path.join(define.PROJECTS, 'ide', old_name) + new_name = data.get('newName') + new_path = os.path.join(define.PROJECTS, 'ide', new_name) + code, _ = rename(old_path, new_path) + response(client, cmd_id, code, _) + + @gen.coroutine + def ide_save_project(self, client, cmd_id, data): + prj_name = data.get('projectName') + prj_path = os.path.join(define.PROJECTS, 'ide', prj_name) + code, _ = save_project(prj_path, data) + response(client, cmd_id, code, _) + + @gen.coroutine + def ide_create_file(self, client, cmd_id, data): + prj_name = data.get('projectName') + prj_path = os.path.join(define.PROJECTS, 'ide', prj_name) + parent_path = convert_path(data.get('parentPath')) + file_name = data.get('fileName') + file_path = os.path.join(prj_path, parent_path, file_name) + code, _ = write_project_file(prj_path, file_path, '') + response(client, cmd_id, code, _) + + @gen.coroutine + def ide_write_file(self, client, cmd_id, data): + prj_name = data.get('projectName') + prj_path = os.path.join(define.PROJECTS, 'ide', prj_name) + file_path = os.path.join(prj_path, convert_path(data.get('filePath'))) + file_data = data.get('fileData') + code, _ = write_project_file(prj_path, file_path, file_data) + if data.get('complete', False): + line = data.get('line', None) + column = data.get('column', None) + line = line + 1 if line is not None else line + script = jedi.api.Script(source=file_data, line=line, column=column) + completions = set() + for completion in script.completions(): + completions.add(completion.name) + response(client, cmd_id, 0, list(completions)) + else: + response(client, cmd_id, code, _) + + @gen.coroutine + def ide_get_file(self, client, cmd_id, data): + prj_name = data.get('projectName') + prj_path = os.path.join(define.PROJECTS, 'ide', prj_name) + file_path = os.path.join(prj_path, convert_path(data.get('filePath'))) + code, file_data = get_project_file(prj_path, file_path) + response(client, cmd_id, code, file_data) + + @gen.coroutine + def ide_delete_file(self, client, cmd_id, data): + prj_name = data.get('projectName') + prj_path = os.path.join(define.PROJECTS, 'ide', prj_name) + file_path = os.path.join(prj_path, convert_path(data.get('filePath'))) + code, _ = delete_project_file(prj_path, file_path) + response(client, cmd_id, code, _) + + @gen.coroutine + def ide_rename_file(self, client, cmd_id, data): + prj_name = data.get('projectName') + prj_path = os.path.join(define.PROJECTS, 'ide', prj_name) + old_path = os.path.join(prj_path, convert_path(data.get('oldPath'))) + new_name = data.get('newName') + new_path = os.path.join(os.path.dirname(old_path), new_name) + code, _ = rename_project_file(prj_path, old_path, new_path) + response(client, cmd_id, code, _) + + @gen.coroutine + def ide_create_folder(self, client, cmd_id, data): + prj_name = data.get('projectName') + prj_path = os.path.join(define.PROJECTS, 'ide', prj_name) + parent_path = convert_path(data.get('parentPath')) + folder_name = data.get('folderName') + folder_path = os.path.join(prj_path, parent_path, folder_name) + code, _ = create_project_folder(prj_path, folder_path) + response(client, cmd_id, code, _) + + @gen.coroutine + def ide_delete_folder(self, client, cmd_id, data): + prj_name = data.get('projectName') + prj_path = os.path.join(define.PROJECTS, 'ide', prj_name) + folder_path = os.path.join(prj_path, convert_path(data.get('folderPath'))) + code, _ = delete_project_file(prj_path, folder_path) + response(client, cmd_id, code, _) + + @gen.coroutine + def ide_rename_folder(self, client, cmd_id, data): + prj_name = data.get('projectName') + prj_path = os.path.join(define.PROJECTS, 'ide', prj_name) + old_path = os.path.join(prj_path, convert_path(data.get('oldPath'))) + new_name = data.get('newName') + new_path = os.path.join(os.path.dirname(old_path), new_name) + code, _ = rename_project_file(prj_path, old_path, new_path) + response(client, cmd_id, code, _) + + @gen.coroutine + def autocomplete_python(self, client, cmd_id, data): + source = data.get('source') + line = data.get('line', None) + column = data.get('column', None) + line = line + 1 if line is not None else line + script = jedi.api.Script(source=source, line=line, column=column) + completions = set() + for completion in script.completions(): + completions.add(completion.name) + response(client, cmd_id, 0, list(completions)) + + @gen.coroutine + def run_pip_command(self, client, cmd_id, data): + pass + + @gen.coroutine + def run_python_program(self, client, cmd_id, data): + # define.PYTHON + print(data) + prj_name = data.get('projectName') + prj_path = os.path.join(define.PROJECTS, 'ide', prj_name) + file_path = os.path.join(prj_path, convert_path(data.get('filePath'))) + print(file_path) + if os.path.exists(file_path) and os.path.isfile(file_path) and file_path.endswith('.py'): + cmd = [define.PYTHON, '-u', file_path] + print(cmd) + define.subprograms[cmd_id] = SubProgramThread(cmd, cmd_id, client) + define.subprograms[cmd_id].start() + response(client, cmd_id, 0, None) + else: + response(client, cmd_id, 1, '') + + @gen.coroutine + def stop_python_program(self, client, cmd_id, data): + if cmd_id is None: + for cmd_id, p in define.subprograms.items(): + p.alive = False + elif cmd_id in define.subprograms: + define.subprograms[cmd_id].alive = False + response(client, cmd_id, 0, None) + + +class SubProgramThread(threading.Thread): + def __init__(self, cmd, cmd_id, client): + super(SubProgramThread, self).__init__() + self.cmd = cmd + self.cmd_id = cmd_id + self.client = client + self.alive = True + self.daemon = True + + def response_to_client(self, code, stdout): + if stdout: + data = { + 'stdout': stdout + } + res = { + 'type': 'response', + 'id': self.cmd_id, + 'code': code, + 'data': data + } + if self.client.connected: + try: + self.client.write_message(json.dumps(res, ensure_ascii=False)) + except: + pass + + def run_python_program(self): + start_time = time.time() + print('run_python_program:', self.cmd_id) + try: + p = subprocess.Popen(self.cmd, shell=False, universal_newlines=True, + stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + while self.alive and p.poll() is None: + if not self.client.connected: + self.alive = False + p.kill() + define.subprograms.pop(self.cmd_id) + print('client is disconnect, kill program') + return + stdout = p.stdout.readline() + stdout = stdout.strip() + self.response_to_client(0, stdout) + time.sleep(0.002) + if not self.alive: + self.response_to_client(1111, '[program is terminate]') + p.kill() + define.subprograms.pop(self.cmd_id) + print('[program {} is terminate]'.format(self.cmd_id)) + return + try: + stdout = p.stdout.read() + self.response_to_client(0, stdout) + except: + pass + if self.client.connected: + stdout = '[Program exit with code {code}]'.format(code=p.returncode) + else: + stdout = '[Finish in {second:.2f}s with exit code {code}]'.format(second=time.time() - start_time, code=p.returncode) + self.response_to_client(1111, stdout) + define.subprograms.pop(self.cmd_id) + if p.returncode == 0: + print('subprogram {} success'.format(self.cmd_id)) + p.kill() + return 'ok' + else: + print('subprogram {} failed'.format(self.cmd_id)) + p.kill() + return 'failed' + except Exception as e: + print(e) + finally: + try: + p.kill() + except: + pass + try: + define.subprograms.pop(self.cmd_id) + except: + pass + + def run(self): + self.alive = True + try: + self.run_python_program() + except: + pass + self.alive = False + + diff --git a/backend/command/resource.py b/backend/command/resource.py new file mode 100644 index 0000000..e7bbab2 --- /dev/null +++ b/backend/command/resource.py @@ -0,0 +1,297 @@ +#!/usr/bin/env python3 +# Software License Agreement (BSD License) +# +# Copyright (c) 2018, Vinman, Inc. +# All rights reserved. +# +# Author: Vinman + +import os +import time +import uuid +import json +import shutil +import datetime + + +PATH_IS_EXIST = -11 +PATH_IS_NOT_EXIST = -12 + +PATH_IS_FILE = -21 +PATH_IS_DIR = -22 + +READ_ERROR = -31 +WRITE_ERROR = -32 +DELETE_ERROR = 33 +RENAME_ERROR = -34 +CREATE_ERROR = -35 + + +def read(path, is_json=False): + if os.path.exists(path) and os.path.isfile(path): + try: + with open(path, 'r', encoding='utf-8') as f: + if is_json: + data = json.load(f) + else: + data = f.read() + return 0, data + except Exception as e: + return READ_ERROR, e + elif not os.path.exists(path): + return PATH_IS_NOT_EXIST, None + else: + return PATH_IS_DIR, None + + +def write(path, data, is_json=False): + try: + with open(path, 'w', encoding='utf-8') as f: + if is_json: + json.dump(data, f, sort_keys=True, indent=4, skipkeys=True, separators=(',', ':'), ensure_ascii=False) + else: + f.write(data) + return 0, None + except Exception as e: + return WRITE_ERROR, e + + +def create(path, data=None): + if data is None: + if not os.path.exists(path): + try: + os.makedirs(path) + return 0, None + except Exception as e: + return CREATE_ERROR, e + else: + return PATH_IS_EXIST, None + else: + return write(path, data) + + +def delete(path): + if os.path.exists(path): + if os.path.isdir(path): + try: + shutil.rmtree(path) + return 0, None + except Exception as e: + return DELETE_ERROR, e + else: + try: + os.remove(path) + return 0, None + except Exception as e: + return DELETE_ERROR, e + else: + return PATH_IS_NOT_EXIST, None + + +def rename(old_path, new_path): + if os.path.exists(old_path): + if not os.path.exists(new_path): + try: + os.rename(old_path, new_path) + return 0, None + except Exception as e: + return RENAME_ERROR, e + else: + return PATH_IS_EXIST, None + else: + return PATH_IS_NOT_EXIST, None + + +def list_dir(path, result=None, prefix='', filter_config=True, list_type='simple'): + prefix = '' if prefix == '/' else prefix + if os.path.exists(path): + if result is None: + result = { + 'uuid': '/', + 'name': os.path.basename(path), + 'label': os.path.basename(path), + 'type': 'dir', + # 'path': path, + 'path': '/', + } + result['children'] = [] + for p in os.listdir(path): + if filter_config: + if p == '.config': + continue + abs_p = os.path.join(path, p) + if os.path.isdir(abs_p): + _result = { + 'uuid': prefix + '/' + p, + 'name': p, + 'label': p, + 'type': 'dir', + # 'path': abs_p, + 'path': prefix + '/' + p, + } + result['children'].append(_result) + if list_type == 'detail': + list_dir(abs_p, _result, prefix=prefix + '/' + p, filter_config=False, list_type=list_type) + else: + result['children'].append({ + 'uuid': prefix + '/' + p, + 'name': p, + 'label': p, + 'type': 'file', + # 'path': abs_p, + 'path': prefix + '/' + p, + }) + return result + + +# path = os.path.join(os.path.expanduser('~'), '.UFACTORY', 'projects', 'test', 'xarm7', 'python', 'demo') +# result = list_dir(path, list_type='detail') +# print(json.dumps(result, sort_keys=True, indent=4, skipkeys=True, separators=(',', ':'), ensure_ascii=False)) + + +def list_projects(path): + projects = [] + if os.path.exists(path) and os.path.isdir(path): + for prj in os.listdir(path): + _config_path = os.path.join(path, prj, '.config') + code, config_data = read(_config_path, is_json=True) + if code == 0: + config_data['name'] = prj + config_data['atime'] = time.strftime("%d/%m/%Y %I:%M:%S %p", + time.localtime(os.path.getatime(_config_path))), # 访问时间 + config_data['mtime'] = time.strftime("%d/%m/%Y %I:%M:%S %p", + time.localtime(os.path.getmtime(_config_path))), # 修改时间 + config_data['ctime'] = time.strftime("%d/%m/%Y %I:%M:%S %p", + time.localtime(os.path.getctime(_config_path))), # 创建时间 + + config_data['atime'] = config_data['atime'][0] if isinstance( + config_data['atime'], tuple) else config_data['atime'] + config_data['mtime'] = config_data['mtime'][0] if isinstance( + config_data['mtime'], tuple) else config_data['mtime'] + config_data['ctime'] = config_data['ctime'][0] if isinstance( + config_data['ctime'], tuple) else config_data['ctime'] + projects.append(config_data) + return 0, projects + elif not os.path.exists(path): + return PATH_IS_NOT_EXIST, projects + else: + return PATH_IS_FILE, projects + + +def get_project(path): + if os.path.exists(path): + project = list_dir(path, list_type='detail') + _config_path = os.path.join(path, '.config') + _code, config_data = read(_config_path, is_json=True) + if _code != 0: + config_data = {} + config_data['lastAccessTime'] = time.time() + write(_config_path, config_data, is_json=True) + config_data['name'] = os.path.basename(path) + config_data['atime'] = time.strftime("%d/%m/%Y %I:%M:%S %p", + time.localtime(os.path.getatime(_config_path))), # 访问时间 + config_data['mtime'] = time.strftime("%d/%m/%Y %I:%M:%S %p", + time.localtime(os.path.getmtime(_config_path))), # 修改时间 + config_data['ctime'] = time.strftime("%d/%m/%Y %I:%M:%S %p", + time.localtime(os.path.getctime(_config_path))), # 创建时间 + + config_data['atime'] = config_data['atime'][0] if isinstance( + config_data['atime'], tuple) else config_data['atime'] + config_data['mtime'] = config_data['mtime'][0] if isinstance( + config_data['mtime'], tuple) else config_data['mtime'] + config_data['ctime'] = config_data['ctime'][0] if isinstance( + config_data['ctime'], tuple) else config_data['ctime'] + project['config'] = config_data + return 0, project + else: + return PATH_IS_NOT_EXIST, None + + +def create_project(path, config_data=None): + code, _ = create(path) + if code == 0: + if not isinstance(config_data, dict): + config_data = {} + config_data['lastAccessTime'] = time.time() + code, _ = write(os.path.join(path, '.config'), config_data, is_json=True) + config_data['name'] = os.path.basename(path) + return code, config_data + else: + return code, None + + +def save_project(project_path, data): + _config_path = os.path.join(project_path, '.config') + code, config_data = read(_config_path, is_json=True) + if code != 0: + config_data = {} + config_data['lastAccessTime'] = time.time() + expend_keys = data.get('expendKeys') + open_list = data.get('openList') + selectFilePath = data.get('selectFilePath') + config_data['expendKeys'] = list(set(expend_keys)) + config_data['openList'] = list(set(open_list)) + config_data['selectFilePath'] = selectFilePath + write(_config_path, config_data, is_json=True) + return code, config_data + + +def get_project_file(project_path, file_path): + code, data = read(file_path) + if code == 0: + _config_path = os.path.join(project_path, '.config') + _code, config_data = read(_config_path, is_json=True) + if _code != 0: + config_data = {} + config_data['lastAccessTime'] = time.time() + write(_config_path, config_data, is_json=True) + return code, data + + +def delete_project_file(project_path, file_path): + code, _ = delete(file_path) + if code == 0: + _config_path = os.path.join(project_path, '.config') + _code, config_data = read(_config_path, is_json=True) + if _code != 0: + config_data = {} + config_data['lastAccessTime'] = time.time() + write(_config_path, config_data, is_json=True) + return code, _ + + +def rename_project_file(project_path, old_path, new_path): + code, _ = rename(old_path, new_path) + if code == 0: + _config_path = os.path.join(project_path, '.config') + _code, config_data = read(_config_path, is_json=True) + if _code != 0: + config_data = {} + config_data['lastAccessTime'] = time.time() + write(_config_path, config_data, is_json=True) + return code, _ + + +def write_project_file(project_path, file_path, data): + code, _ = write(file_path, data) + if code == 0: + _config_path = os.path.join(project_path, '.config') + _code, config_data = read(_config_path, is_json=True) + if _code != 0: + config_data = {} + config_data['lastAccessTime'] = time.time() + write(_config_path, config_data, is_json=True) + return code, _ + + +def create_project_folder(project_path, folder_path): + code, _ = create(folder_path) + if code == 0: + _config_path = os.path.join(project_path, '.config') + _code, config_data = read(_config_path, is_json=True) + if _code != 0: + config_data = {} + config_data['lastAccessTime'] = time.time() + write(_config_path, config_data, is_json=True) + return code, _ + diff --git a/backend/command/response.py b/backend/command/response.py new file mode 100644 index 0000000..aa5e6cd --- /dev/null +++ b/backend/command/response.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python3 +# Software License Agreement (BSD License) +# +# Copyright (c) 2018, Vinman, Inc. +# All rights reserved. +# +# Author: Vinman + +from tornado import gen +from common.utils import push_res_queue + + +@gen.coroutine +def response(client, id, code=0, data=None): + res = { + 'type': 'response', + 'id': id, + 'code': code, + 'data': data + } + yield push_res_queue(client, res) + diff --git a/backend/command/utils.py b/backend/command/utils.py new file mode 100644 index 0000000..459ad35 --- /dev/null +++ b/backend/command/utils.py @@ -0,0 +1,18 @@ +#!/usr/bin/env python3 +# Software License Agreement (BSD License) +# +# Copyright (c) 2018, Vinman, Inc. +# All rights reserved. +# +# Author: Vinman + +import platform + +system = platform.system().lower() + + +def convert_path(path): + if system == 'windows': + return path.lstrip('/').replace('/', '\\') + else: + return path.lstrip('/') diff --git a/backend/common/__init__.py b/backend/common/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/backend/common/define.py b/backend/common/define.py new file mode 100644 index 0000000..d8e3e68 --- /dev/null +++ b/backend/common/define.py @@ -0,0 +1,27 @@ +#!/usr/bin/env python3 +# Software License Agreement (BSD License) +# +# Copyright (c) 2018, Vinman, Inc. +# All rights reserved. +# +# Author: Vinman + +import sys +import os +from tornado import queues + + +connected_clients = {} +req_msg_queue = queues.Queue() +res_msg_queue = queues.Queue() + +message_processor = None + +command = None + +PYTHON = sys.executable +PROJECTS = os.path.join(os.path.abspath('.'), 'projects') +if not os.path.exists(PROJECTS): + os.makedirs(PROJECTS) + +subprograms = {} \ No newline at end of file diff --git a/backend/common/loop.py b/backend/common/loop.py new file mode 100644 index 0000000..17017ca --- /dev/null +++ b/backend/common/loop.py @@ -0,0 +1,45 @@ +#!/usr/bin/env python3 +# Software License Agreement (BSD License) +# +# Copyright (c) 2018, Vinman, Inc. +# All rights reserved. +# +# Author: Vinman + +import json +from tornado import gen +from . import define +from . import processor + +define.message_processor = processor.MessageProcessor() + + +@gen.coroutine +def process_req_loop(): + print('process req loop start') + while True: + try: + item = yield define.req_msg_queue.get() + client = item['client'] + msg = item['data'] + if isinstance(msg, str): + msg = json.loads(msg) + yield define.message_processor.process_message(client, msg) + define.req_msg_queue.task_done() + except: + pass + + +@gen.coroutine +def process_res_loop(): + print('process res loop start') + while True: + try: + item = yield define.res_msg_queue.get() + client = item['client'] + if client and client.connected: + client.write_message(json.dumps(item['data'], ensure_ascii=False)) + define.res_msg_queue.task_done() + except: + pass + diff --git a/backend/common/processor.py b/backend/common/processor.py new file mode 100644 index 0000000..13d8e55 --- /dev/null +++ b/backend/common/processor.py @@ -0,0 +1,32 @@ +#!/usr/bin/env python3 +# Software License Agreement (BSD License) +# +# Copyright (c) 2018, Vinman, Inc. +# All rights reserved. +# +# Author: Vinman + +from tornado import gen +from command import Command +from . import define + + +class MessageProcessor(object): + def __init__(self): + define.command = Command() + + @gen.coroutine + def process_message(self, client, msg): + cmd = msg.get('cmd') + if hasattr(define.command, cmd): + func = getattr(define.command, cmd) + yield func(client, msg['id'], msg.get('data', {})) + else: + res = { + 'type': 'response', + 'id': msg['id'], + 'code': 1000, + 'data': 'not support cmd: {}'.format(cmd) + } + raise gen.Return(res) + diff --git a/backend/common/utils.py b/backend/common/utils.py new file mode 100644 index 0000000..b3e426a --- /dev/null +++ b/backend/common/utils.py @@ -0,0 +1,38 @@ +#!/usr/bin/env python3 +# Software License Agreement (BSD License) +# +# Copyright (c) 2018, Vinman, Inc. +# All rights reserved. +# +# Author: Vinman + +import json +from tornado import gen +from . import define + + +@gen.coroutine +def push_req_queue(client, msg, is_json=False): + try: + if not is_json: + msg = json.loads(msg) + item = { + 'client': client, + 'data': msg + } + yield define.req_msg_queue.put(item) + except: + pass + + +@gen.coroutine +def push_res_queue(client, msg): + try: + item = { + 'client': client, + 'data': msg + } + yield define.res_msg_queue.put(item) + except: + pass + diff --git a/backend/handlers/__init__.py b/backend/handlers/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/backend/handlers/http/__init__.py b/backend/handlers/http/__init__.py new file mode 100644 index 0000000..68a48ac --- /dev/null +++ b/backend/handlers/http/__init__.py @@ -0,0 +1 @@ +from .vue_handler import VueHandler diff --git a/backend/handlers/http/vue_handler.py b/backend/handlers/http/vue_handler.py new file mode 100644 index 0000000..243cef3 --- /dev/null +++ b/backend/handlers/http/vue_handler.py @@ -0,0 +1,14 @@ +#!/usr/bin/env python3 +# Software License Agreement (BSD License) +# +# Copyright (c) 2018, Vinman, Inc. +# All rights reserved. +# +# Author: Vinman + +from tornado import web + + +class VueHandler(web.RequestHandler): + def get(self): + self.render("index.html") diff --git a/backend/handlers/websocket/__init__.py b/backend/handlers/websocket/__init__.py new file mode 100644 index 0000000..917d8dd --- /dev/null +++ b/backend/handlers/websocket/__init__.py @@ -0,0 +1 @@ +from .websocket import WebSocketHandler \ No newline at end of file diff --git a/backend/handlers/websocket/websocket.py b/backend/handlers/websocket/websocket.py new file mode 100644 index 0000000..e96a6ff --- /dev/null +++ b/backend/handlers/websocket/websocket.py @@ -0,0 +1,61 @@ +#!/usr/bin/env python3 +# Software License Agreement (BSD License) +# +# Copyright (c) 2018, Vinman, Inc. +# All rights reserved. +# +# Author: Vinman + +import threading +import queue +import time +import datetime +from tornado import gen +from tornado import websocket +from utils.log import logger +from common.utils import push_req_queue + + +class WebSocketHandler(websocket.WebSocketHandler): + def __init__(self, *args, **kwargs): + super(WebSocketHandler, self).__init__(*args, **kwargs) + self._info = {} + self._connected = False + + @property + def connected(self): + return self._connected + + @property + def info(self): + return self._info + + def check_origin(self, origin): + return True + + @gen.coroutine + def open(self, *args, **kwargs): + self._info['type'] = self.get_argument('type', 'cmd') + self._info['remote_ip'] = self.request.remote_ip + self._info['id'] = id(self) + self._connected = True + logger.debug('A new ws client [type:{}] [id:{}] [addr:{}], {}'.format( + self.info['type'], + self.info['id'], + self.info['remote_ip'], + datetime.datetime.now())) + + def on_close(self): + self._connected = False + logger.debug('ws client [type:{}] [id:{}] [addr:{}], closed on {}'.format( + self.info['type'], + self.info['id'], + self.info['remote_ip'], + datetime.datetime.now())) + + def on_message(self, message): + if self.info['type'] == 'cmd': + push_req_queue(self, message) + + + diff --git a/backend/projects/ide/example/.config b/backend/projects/ide/example/.config new file mode 100644 index 0000000..f326367 --- /dev/null +++ b/backend/projects/ide/example/.config @@ -0,0 +1,13 @@ +{ + "expendKeys":[ + "/", + "/utils" + ], + "lastAccessTime":1531392576.8389764, + "openList":[ + "/main.py", + "/utils/calc.py" + ], + "selectFilePath":"/main.py", + "type":"python" +} \ No newline at end of file diff --git a/backend/projects/ide/example/main.py b/backend/projects/ide/example/main.py new file mode 100644 index 0000000..d19d931 --- /dev/null +++ b/backend/projects/ide/example/main.py @@ -0,0 +1,8 @@ +#!/usr/bin/env python3 + +from utils.calc import add, sub + +a = 100 +b = 45 +print('a + b =', add(a, b)) +print('a - b =', sub(a, b)) \ No newline at end of file diff --git a/backend/projects/ide/example/utils/__init__.py b/backend/projects/ide/example/utils/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/backend/projects/ide/example/utils/calc.py b/backend/projects/ide/example/utils/calc.py new file mode 100644 index 0000000..a23839c --- /dev/null +++ b/backend/projects/ide/example/utils/calc.py @@ -0,0 +1,5 @@ +def add(a, b): + return a + b + +def sub(a, b): + return a - b \ No newline at end of file diff --git a/backend/projects/ide/test/.config b/backend/projects/ide/test/.config new file mode 100644 index 0000000..42c81c2 --- /dev/null +++ b/backend/projects/ide/test/.config @@ -0,0 +1,11 @@ +{ + "expendKeys":[ + "/" + ], + "lastAccessTime":1531392570.711179, + "openList":[ + "/main.py" + ], + "selectFilePath":"/main.py", + "type":"python" +} \ No newline at end of file diff --git a/backend/projects/ide/test/main.py b/backend/projects/ide/test/main.py new file mode 100644 index 0000000..9b5aa85 --- /dev/null +++ b/backend/projects/ide/test/main.py @@ -0,0 +1,7 @@ +#!/usr/bin/env python3 +import time +from t + +while True: + print('===========', time.time()) + time.sleep(1) \ No newline at end of file diff --git a/backend/requirements.txt b/backend/requirements.txt new file mode 100644 index 0000000..c7b1047 --- /dev/null +++ b/backend/requirements.txt @@ -0,0 +1,2 @@ +tornado==4.5.2 +jedi==0.11.1 diff --git a/backend/server.py b/backend/server.py new file mode 100644 index 0000000..6df7f3e --- /dev/null +++ b/backend/server.py @@ -0,0 +1,65 @@ +#!/usr/bin/env python3 +# Software License Agreement (BSD License) +# +# Copyright (c) 2018, Vinman, Inc. +# All rights reserved. +# +# Author: Vinman + +import os +import sys +import argparse +import tornado +from tornado import ioloop +from tornado import web +from tornado import httpserver +from handlers.websocket import WebSocketHandler +from handlers.http import VueHandler +from common import loop + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument('--address', type=str, default='0.0.0.0', help='server listen address') + parser.add_argument('--port', type=int, default=10086, help='server listen port') + parser.add_argument('--num_processes', type=int, default=-1, help='fork process to support') + args = parser.parse_args() + + template_path = os.path.join(os.path.dirname(__file__), 'templates') + static_path = os.path.join(os.path.dirname(__file__), 'static') + settings = { + 'template_path': template_path, + 'static_path': static_path + } + + handlers = [ + (r'/ws', WebSocketHandler), + (r'/', VueHandler), + ] + + # app = web.Application(handlers, **settings, autoreload=True) + app = web.Application(handlers, **settings) + + if args.num_processes >= 0: + try: + http_server = httpserver.HTTPServer(app) + http_server.bind(args.port, args.address) + http_server.start(num_processes=args.num_processes) + except: + app.listen(args.port, address=args.address) + else: + app.listen(args.port, address=args.address) + print('server listen on {}:{}'.format(args.address, args.port)) + pid = os.getpid() + ppid = os.getppid() + print('server process pid: {}, ppid: {}'.format(pid, ppid)) + + main_ioloop = ioloop.IOLoop.instance() + main_ioloop.add_timeout(1, loop.process_req_loop) + main_ioloop.add_timeout(1, loop.process_res_loop) + main_ioloop.start() + + +if __name__ == '__main__': + main() + diff --git a/backend/utils/__init__.py b/backend/utils/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/backend/utils/log.py b/backend/utils/log.py new file mode 100644 index 0000000..4844e36 --- /dev/null +++ b/backend/utils/log.py @@ -0,0 +1,50 @@ +#!/usr/bin/env python3 +# Software License Agreement (BSD License) +# +# Copyright (c) 2018, UFACTORY, Inc. +# All rights reserved. +# +# Author: Vinman + +import logging +import sys +import os +import functools +from logging.handlers import RotatingFileHandler + +logging.VERBOSE = 5 +logging.addLevelName(logging.VERBOSE, 'VERBOSE') + + +class Logger(logging.Logger): + logger_fmt = '[%(levelname)s] %(asctime)s [%(pathname)s:%(lineno)d]: %(message)s' + logger_date_fmt = '%Y-%m-%d %H:%M:%S' + stream_handler_fmt = logger_fmt + stream_handler_date_fmt = logger_date_fmt + stream_handler = logging.StreamHandler(sys.stdout) + stream_handler.setLevel(logging.VERBOSE) + stream_handler.setFormatter(logging.Formatter(stream_handler_fmt, stream_handler_date_fmt)) + + logger = logging.Logger(__name__) + logger.setLevel(logging.DEBUG) + logger.addHandler(stream_handler) + + def __new__(cls, *args, **kwargs): + if not hasattr(cls, 'logger'): + cls.logger = super(Logger, cls).__new__(cls, *args, **kwargs) + return cls.logger + +logger = Logger(__name__) + +logger.setLevel(logging.DEBUG) + +logger.VERBOSE = logging.VERBOSE +logger.DEBUG = logging.DEBUG +logger.INFO = logging.INFO +logger.WARN = logging.WARN +logger.WARNING = logging.WARNING +logger.ERROR = logging.ERROR +logger.CRITICAL = logging.CRITICAL + +logger.verbose = functools.partial(logger.log, logging.VERBOSE) + diff --git a/build/build.js b/build/build.js new file mode 100644 index 0000000..8f2ad8a --- /dev/null +++ b/build/build.js @@ -0,0 +1,41 @@ +'use strict' +require('./check-versions')() + +process.env.NODE_ENV = 'production' + +const ora = require('ora') +const rm = require('rimraf') +const path = require('path') +const chalk = require('chalk') +const webpack = require('webpack') +const config = require('../config') +const webpackConfig = require('./webpack.prod.conf') + +const spinner = ora('building for production...') +spinner.start() + +rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => { + if (err) throw err + webpack(webpackConfig, (err, stats) => { + spinner.stop() + if (err) throw err + process.stdout.write(stats.toString({ + colors: true, + modules: false, + children: false, // If you are using ts-loader, setting this to true will make TypeScript errors show up during build. + chunks: false, + chunkModules: false + }) + '\n\n') + + if (stats.hasErrors()) { + console.log(chalk.red(' Build failed with errors.\n')) + process.exit(1) + } + + console.log(chalk.cyan(' Build complete.\n')) + console.log(chalk.yellow( + ' Tip: built files are meant to be served over an HTTP server.\n' + + ' Opening index.html over file:// won\'t work.\n' + )) + }) +}) diff --git a/build/check-versions.js b/build/check-versions.js new file mode 100644 index 0000000..3ef972a --- /dev/null +++ b/build/check-versions.js @@ -0,0 +1,54 @@ +'use strict' +const chalk = require('chalk') +const semver = require('semver') +const packageConfig = require('../package.json') +const shell = require('shelljs') + +function exec (cmd) { + return require('child_process').execSync(cmd).toString().trim() +} + +const versionRequirements = [ + { + name: 'node', + currentVersion: semver.clean(process.version), + versionRequirement: packageConfig.engines.node + } +] + +if (shell.which('npm')) { + versionRequirements.push({ + name: 'npm', + currentVersion: exec('npm --version'), + versionRequirement: packageConfig.engines.npm + }) +} + +module.exports = function () { + const warnings = [] + + for (let i = 0; i < versionRequirements.length; i++) { + const mod = versionRequirements[i] + + if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) { + warnings.push(mod.name + ': ' + + chalk.red(mod.currentVersion) + ' should be ' + + chalk.green(mod.versionRequirement) + ) + } + } + + if (warnings.length) { + console.log('') + console.log(chalk.yellow('To use this template, you must update following to modules:')) + console.log() + + for (let i = 0; i < warnings.length; i++) { + const warning = warnings[i] + console.log(' ' + warning) + } + + console.log() + process.exit(1) + } +} diff --git a/build/utils.js b/build/utils.js new file mode 100644 index 0000000..e534fb0 --- /dev/null +++ b/build/utils.js @@ -0,0 +1,101 @@ +'use strict' +const path = require('path') +const config = require('../config') +const ExtractTextPlugin = require('extract-text-webpack-plugin') +const packageConfig = require('../package.json') + +exports.assetsPath = function (_path) { + const assetsSubDirectory = process.env.NODE_ENV === 'production' + ? config.build.assetsSubDirectory + : config.dev.assetsSubDirectory + + return path.posix.join(assetsSubDirectory, _path) +} + +exports.cssLoaders = function (options) { + options = options || {} + + const cssLoader = { + loader: 'css-loader', + options: { + sourceMap: options.sourceMap + } + } + + const postcssLoader = { + loader: 'postcss-loader', + options: { + sourceMap: options.sourceMap + } + } + + // generate loader string to be used with extract text plugin + function generateLoaders (loader, loaderOptions) { + const loaders = options.usePostCSS ? [cssLoader, postcssLoader] : [cssLoader] + + if (loader) { + loaders.push({ + loader: loader + '-loader', + options: Object.assign({}, loaderOptions, { + sourceMap: options.sourceMap + }) + }) + } + + // Extract CSS when that option is specified + // (which is the case during production build) + if (options.extract) { + return ExtractTextPlugin.extract({ + use: loaders, + fallback: 'vue-style-loader' + }) + } else { + return ['vue-style-loader'].concat(loaders) + } + } + + // https://vue-loader.vuejs.org/en/configurations/extract-css.html + return { + css: generateLoaders(), + postcss: generateLoaders(), + less: generateLoaders('less'), + sass: generateLoaders('sass', { indentedSyntax: true }), + scss: generateLoaders('sass'), + stylus: generateLoaders('stylus'), + styl: generateLoaders('stylus') + } +} + +// Generate loaders for standalone style files (outside of .vue) +exports.styleLoaders = function (options) { + const output = [] + const loaders = exports.cssLoaders(options) + + for (const extension in loaders) { + const loader = loaders[extension] + output.push({ + test: new RegExp('\\.' + extension + '$'), + use: loader + }) + } + + return output +} + +exports.createNotifierCallback = () => { + const notifier = require('node-notifier') + + return (severity, errors) => { + if (severity !== 'error') return + + const error = errors[0] + const filename = error.file && error.file.split('!').pop() + + notifier.notify({ + title: packageConfig.name, + message: severity + ': ' + error.name, + subtitle: filename || '', + icon: path.join(__dirname, 'logo.png') + }) + } +} diff --git a/build/vue-loader.conf.js b/build/vue-loader.conf.js new file mode 100644 index 0000000..33ed58b --- /dev/null +++ b/build/vue-loader.conf.js @@ -0,0 +1,22 @@ +'use strict' +const utils = require('./utils') +const config = require('../config') +const isProduction = process.env.NODE_ENV === 'production' +const sourceMapEnabled = isProduction + ? config.build.productionSourceMap + : config.dev.cssSourceMap + +module.exports = { + loaders: utils.cssLoaders({ + sourceMap: sourceMapEnabled, + extract: isProduction + }), + cssSourceMap: sourceMapEnabled, + cacheBusting: config.dev.cacheBusting, + transformToRequire: { + video: ['src', 'poster'], + source: 'src', + img: 'src', + image: 'xlink:href' + } +} diff --git a/build/webpack.base.conf.js b/build/webpack.base.conf.js new file mode 100644 index 0000000..8b0faa7 --- /dev/null +++ b/build/webpack.base.conf.js @@ -0,0 +1,92 @@ +'use strict' +const path = require('path') +const utils = require('./utils') +const config = require('../config') +const vueLoaderConfig = require('./vue-loader.conf') + +function resolve (dir) { + return path.join(__dirname, '..', dir) +} + +const createLintingRule = () => ({ + test: /\.(js|vue)$/, + loader: 'eslint-loader', + enforce: 'pre', + include: [resolve('src'), resolve('test')], + options: { + formatter: require('eslint-friendly-formatter'), + emitWarning: !config.dev.showEslintErrorsInOverlay + } +}) + +module.exports = { + context: path.resolve(__dirname, '../'), + entry: { + app: './src/main.js' + }, + output: { + path: config.build.assetsRoot, + filename: '[name].js', + publicPath: process.env.NODE_ENV === 'production' + ? config.build.assetsPublicPath + : config.dev.assetsPublicPath + }, + resolve: { + extensions: ['.js', '.vue', '.json'], + alias: { + 'vue$': 'vue/dist/vue.esm.js', + '@': resolve('src'), + } + }, + module: { + rules: [ + // ...(config.dev.useEslint ? [createLintingRule()] : []), + { + test: /\.vue$/, + loader: 'vue-loader', + options: vueLoaderConfig + }, + { + test: /\.js$/, + loader: 'babel-loader', + include: [resolve('src'), resolve('test'), resolve('node_modules/webpack-dev-server/client')] + }, + { + test: /\.(png|jpe?g|gif|svg)(\?.*)?$/, + loader: 'url-loader', + options: { + limit: 10000, + name: utils.assetsPath('img/[name].[hash:7].[ext]') + } + }, + { + test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/, + loader: 'url-loader', + options: { + limit: 10000, + name: utils.assetsPath('media/[name].[hash:7].[ext]') + } + }, + { + test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/, + loader: 'url-loader', + options: { + limit: 10000, + name: utils.assetsPath('fonts/[name].[hash:7].[ext]') + } + } + ] + }, + node: { + // prevent webpack from injecting useless setImmediate polyfill because Vue + // source contains it (although only uses it if it's native). + setImmediate: false, + // prevent webpack from injecting mocks to Node native modules + // that does not make sense for the client + dgram: 'empty', + fs: 'empty', + net: 'empty', + tls: 'empty', + child_process: 'empty' + } +} diff --git a/build/webpack.dev.conf.js b/build/webpack.dev.conf.js new file mode 100644 index 0000000..070ae22 --- /dev/null +++ b/build/webpack.dev.conf.js @@ -0,0 +1,95 @@ +'use strict' +const utils = require('./utils') +const webpack = require('webpack') +const config = require('../config') +const merge = require('webpack-merge') +const path = require('path') +const baseWebpackConfig = require('./webpack.base.conf') +const CopyWebpackPlugin = require('copy-webpack-plugin') +const HtmlWebpackPlugin = require('html-webpack-plugin') +const FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin') +const portfinder = require('portfinder') + +const HOST = process.env.HOST +const PORT = process.env.PORT && Number(process.env.PORT) + +const devWebpackConfig = merge(baseWebpackConfig, { + module: { + rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap, usePostCSS: true }) + }, + // cheap-module-eval-source-map is faster for development + devtool: config.dev.devtool, + + // these devServer options should be customized in /config/index.js + devServer: { + clientLogLevel: 'warning', + historyApiFallback: { + rewrites: [ + { from: /.*/, to: path.posix.join(config.dev.assetsPublicPath, 'index.html') }, + ], + }, + hot: true, + contentBase: false, // since we use CopyWebpackPlugin. + compress: true, + host: HOST || config.dev.host, + port: PORT || config.dev.port, + open: config.dev.autoOpenBrowser, + overlay: config.dev.errorOverlay + ? { warnings: false, errors: true } + : false, + publicPath: config.dev.assetsPublicPath, + proxy: config.dev.proxyTable, + quiet: true, // necessary for FriendlyErrorsPlugin + watchOptions: { + poll: config.dev.poll, + } + }, + plugins: [ + new webpack.DefinePlugin({ + 'process.env': require('../config/dev.env') + }), + new webpack.HotModuleReplacementPlugin(), + new webpack.NamedModulesPlugin(), // HMR shows correct file names in console on update. + new webpack.NoEmitOnErrorsPlugin(), + // https://github.com/ampedandwired/html-webpack-plugin + new HtmlWebpackPlugin({ + filename: 'index.html', + template: 'index.html', + inject: true + }), + // copy custom static assets + new CopyWebpackPlugin([ + { + from: path.resolve(__dirname, '../static'), + to: config.dev.assetsSubDirectory, + ignore: ['.*'] + } + ]) + ] +}) + +module.exports = new Promise((resolve, reject) => { + portfinder.basePort = process.env.PORT || config.dev.port + portfinder.getPort((err, port) => { + if (err) { + reject(err) + } else { + // publish the new Port, necessary for e2e tests + process.env.PORT = port + // add port to devServer config + devWebpackConfig.devServer.port = port + + // Add FriendlyErrorsPlugin + devWebpackConfig.plugins.push(new FriendlyErrorsPlugin({ + compilationSuccessInfo: { + messages: [`Your application is running here: http://${devWebpackConfig.devServer.host}:${port}`], + }, + onErrors: config.dev.notifyOnErrors + ? utils.createNotifierCallback() + : undefined + })) + + resolve(devWebpackConfig) + } + }) +}) diff --git a/build/webpack.prod.conf.js b/build/webpack.prod.conf.js new file mode 100644 index 0000000..2f17259 --- /dev/null +++ b/build/webpack.prod.conf.js @@ -0,0 +1,149 @@ +'use strict' +const path = require('path') +const utils = require('./utils') +const webpack = require('webpack') +const config = require('../config') +const merge = require('webpack-merge') +const baseWebpackConfig = require('./webpack.base.conf') +const CopyWebpackPlugin = require('copy-webpack-plugin') +const HtmlWebpackPlugin = require('html-webpack-plugin') +const ExtractTextPlugin = require('extract-text-webpack-plugin') +const OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin') +const UglifyJsPlugin = require('uglifyjs-webpack-plugin') + +const env = process.env.NODE_ENV === 'testing' + ? require('../config/test.env') + : require('../config/prod.env') + +const webpackConfig = merge(baseWebpackConfig, { + module: { + rules: utils.styleLoaders({ + sourceMap: config.build.productionSourceMap, + extract: true, + usePostCSS: true + }) + }, + devtool: config.build.productionSourceMap ? config.build.devtool : false, + output: { + path: config.build.assetsRoot, + filename: utils.assetsPath('js/[name].[chunkhash].js'), + chunkFilename: utils.assetsPath('js/[id].[chunkhash].js') + }, + plugins: [ + // http://vuejs.github.io/vue-loader/en/workflow/production.html + new webpack.DefinePlugin({ + 'process.env': env + }), + new UglifyJsPlugin({ + uglifyOptions: { + compress: { + warnings: false + } + }, + sourceMap: config.build.productionSourceMap, + parallel: true + }), + // extract css into its own file + new ExtractTextPlugin({ + filename: utils.assetsPath('css/[name].[contenthash].css'), + // Setting the following option to `false` will not extract CSS from codesplit chunks. + // Their CSS will instead be inserted dynamically with style-loader when the codesplit chunk has been loaded by webpack. + // It's currently set to `true` because we are seeing that sourcemaps are included in the codesplit bundle as well when it's `false`, + // increasing file size: https://github.com/vuejs-templates/webpack/issues/1110 + allChunks: true, + }), + // Compress extracted CSS. We are using this plugin so that possible + // duplicated CSS from different components can be deduped. + new OptimizeCSSPlugin({ + cssProcessorOptions: config.build.productionSourceMap + ? { safe: true, map: { inline: false } } + : { safe: true } + }), + // generate dist index.html with correct asset hash for caching. + // you can customize output by editing /index.html + // see https://github.com/ampedandwired/html-webpack-plugin + new HtmlWebpackPlugin({ + filename: process.env.NODE_ENV === 'testing' + ? 'index.html' + : config.build.index, + template: 'index.html', + inject: true, + minify: { + removeComments: true, + collapseWhitespace: true, + removeAttributeQuotes: true + // more options: + // https://github.com/kangax/html-minifier#options-quick-reference + }, + // necessary to consistently work with multiple chunks via CommonsChunkPlugin + chunksSortMode: 'dependency' + }), + // keep module.id stable when vendor modules does not change + new webpack.HashedModuleIdsPlugin(), + // enable scope hoisting + new webpack.optimize.ModuleConcatenationPlugin(), + // split vendor js into its own file + new webpack.optimize.CommonsChunkPlugin({ + name: 'vendor', + minChunks (module) { + // any required modules inside node_modules are extracted to vendor + return ( + module.resource && + /\.js$/.test(module.resource) && + module.resource.indexOf( + path.join(__dirname, '../node_modules') + ) === 0 + ) + } + }), + // extract webpack runtime and module manifest to its own file in order to + // prevent vendor hash from being updated whenever app bundle is updated + new webpack.optimize.CommonsChunkPlugin({ + name: 'manifest', + minChunks: Infinity + }), + // This instance extracts shared chunks from code splitted chunks and bundles them + // in a separate chunk, similar to the vendor chunk + // see: https://webpack.js.org/plugins/commons-chunk-plugin/#extra-async-commons-chunk + new webpack.optimize.CommonsChunkPlugin({ + name: 'app', + async: 'vendor-async', + children: true, + minChunks: 3 + }), + + // copy custom static assets + new CopyWebpackPlugin([ + { + from: path.resolve(__dirname, '../static'), + to: config.build.assetsSubDirectory, + ignore: ['.*'] + } + ]) + ] +}) + +if (config.build.productionGzip) { + const CompressionWebpackPlugin = require('compression-webpack-plugin') + + webpackConfig.plugins.push( + new CompressionWebpackPlugin({ + asset: '[path].gz[query]', + algorithm: 'gzip', + test: new RegExp( + '\\.(' + + config.build.productionGzipExtensions.join('|') + + ')$' + ), + threshold: 10240, + minRatio: 0.8 + }) + ) +} + +if (config.build.bundleAnalyzerReport) { + const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin + webpackConfig.plugins.push(new BundleAnalyzerPlugin()) +} + +module.exports = webpackConfig diff --git a/config/dev.env.js b/config/dev.env.js new file mode 100644 index 0000000..1e22973 --- /dev/null +++ b/config/dev.env.js @@ -0,0 +1,7 @@ +'use strict' +const merge = require('webpack-merge') +const prodEnv = require('./prod.env') + +module.exports = merge(prodEnv, { + NODE_ENV: '"development"' +}) diff --git a/config/index.js b/config/index.js new file mode 100644 index 0000000..a624b56 --- /dev/null +++ b/config/index.js @@ -0,0 +1,76 @@ +'use strict' +// Template version: 1.3.1 +// see http://vuejs-templates.github.io/webpack for documentation. + +const path = require('path') + +module.exports = { + dev: { + + // Paths + assetsSubDirectory: 'static', + assetsPublicPath: '/', + proxyTable: {}, + + // Various Dev Server settings + host: '0.0.0.0', // can be overwritten by process.env.HOST + port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined + autoOpenBrowser: false, + errorOverlay: true, + notifyOnErrors: true, + poll: false, // https://webpack.js.org/configuration/dev-server/#devserver-watchoptions- + + // Use Eslint Loader? + // If true, your code will be linted during bundling and + // linting errors and warnings will be shown in the console. + useEslint: true, + // If true, eslint errors and warnings will also be shown in the error overlay + // in the browser. + showEslintErrorsInOverlay: false, + + /** + * Source Maps + */ + + // https://webpack.js.org/configuration/devtool/#development + devtool: 'cheap-module-eval-source-map', + + // If you have problems debugging vue-files in devtools, + // set this to false - it *may* help + // https://vue-loader.vuejs.org/en/options.html#cachebusting + cacheBusting: true, + + cssSourceMap: true + }, + + build: { + // Template for index.html + index: path.resolve(__dirname, '../backend/templates/index.html'), + + // Paths + assetsRoot: path.resolve(__dirname, '../backend/'), + assetsSubDirectory: 'static', + assetsPublicPath: '/', + + /** + * Source Maps + */ + + productionSourceMap: true, + // https://webpack.js.org/configuration/devtool/#production + devtool: '#source-map', + + // Gzip off by default as many popular static hosts such as + // Surge or Netlify already gzip all static assets for you. + // Before setting to `true`, make sure to: + // npm install --save-dev compression-webpack-plugin + productionGzip: false, + productionGzipExtensions: ['js', 'css'], + + // Run the build command with an extra argument to + // View the bundle analyzer report after build finishes: + // `npm run build --report` + // Set to `true` or `false` to always turn it on or off + bundleAnalyzerReport: process.env.npm_config_report + } +} diff --git a/config/prod.env.js b/config/prod.env.js new file mode 100644 index 0000000..a6f9976 --- /dev/null +++ b/config/prod.env.js @@ -0,0 +1,4 @@ +'use strict' +module.exports = { + NODE_ENV: '"production"' +} diff --git a/config/test.env.js b/config/test.env.js new file mode 100644 index 0000000..c2824a3 --- /dev/null +++ b/config/test.env.js @@ -0,0 +1,7 @@ +'use strict' +const merge = require('webpack-merge') +const devEnv = require('./dev.env') + +module.exports = merge(devEnv, { + NODE_ENV: '"testing"' +}) diff --git a/doc/img/code.png b/doc/img/code.png new file mode 100644 index 0000000000000000000000000000000000000000..24f9ca2e72bb7f7f1780cfbcfda7536e24c909b4 GIT binary patch literal 48693 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 OBQNtpx>)k{hyMbK{Dx)# literal 0 HcmV?d00001 diff --git a/doc/img/complete.png b/doc/img/complete.png new file mode 100644 index 0000000000000000000000000000000000000000..d83d35eb6fa5012f5df2885c95d18d72da93bd90 GIT binary patch literal 13719 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 MSf0k8bieig0Fhk*&Hw-a literal 0 HcmV?d00001 diff --git a/doc/img/run.png b/doc/img/run.png new file mode 100644 index 0000000000000000000000000000000000000000..07f2fbc5d0af0f00443ba8e0bc62b3b5dace9459 GIT binary patch literal 54176 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 UP2aPD|3R8OUHx3vIVCg!01e!m;{X5v literal 0 HcmV?d00001 diff --git a/index.html b/index.html new file mode 100644 index 0000000..ea71264 --- /dev/null +++ b/index.html @@ -0,0 +1,12 @@ + + + + + + PythonWebIDE + + +
+ + + diff --git a/package.json b/package.json new file mode 100644 index 0000000..5c8c826 --- /dev/null +++ b/package.json @@ -0,0 +1,94 @@ +{ + "name": "PythonWebIDE", + "version": "1.0.0", + "description": "A Simple Python Web IDE", + "author": "vimior ", + "private": true, + "scripts": { + "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js", + "start": "npm run dev", + "unit": "jest --config test/unit/jest.conf.js --coverage", + "e2e": "node test/e2e/runner.js", + "test": "npm run unit && npm run e2e", + "lint": "eslint --ext .js,.vue src test/unit test/e2e/specs", + "build": "node build/build.js" + }, + "dependencies": { + "codemirror": "^5.39.0", + "element-ui": "^2.4.3", + "node-sass": "^4.9.2", + "sass-loader": "^7.0.3", + "scss-loader": "0.0.1", + "vue": "^2.5.2", + "vue-codemirror": "^4.0.5", + "vue-i18n": "^8.0.0", + "vue-router": "^3.0.1", + "vuex": "^3.0.1" + }, + "devDependencies": { + "autoprefixer": "^7.1.2", + "babel-core": "^6.22.1", + "babel-eslint": "^8.2.1", + "babel-helper-vue-jsx-merge-props": "^2.0.3", + "babel-jest": "^21.0.2", + "babel-loader": "^7.1.1", + "babel-plugin-dynamic-import-node": "^1.2.0", + "babel-plugin-syntax-jsx": "^6.18.0", + "babel-plugin-transform-es2015-modules-commonjs": "^6.26.0", + "babel-plugin-transform-runtime": "^6.22.0", + "babel-plugin-transform-vue-jsx": "^3.5.0", + "babel-preset-env": "^1.3.2", + "babel-preset-stage-2": "^6.22.0", + "babel-register": "^6.22.0", + "chalk": "^2.0.1", + "copy-webpack-plugin": "^4.0.1", + "cross-spawn": "^5.0.1", + "css-loader": "^0.28.11", + "eslint": "^4.15.0", + "eslint-config-standard": "^10.2.1", + "eslint-friendly-formatter": "^3.0.0", + "eslint-loader": "^1.7.1", + "eslint-plugin-import": "^2.7.0", + "eslint-plugin-node": "^5.2.0", + "eslint-plugin-promise": "^3.4.0", + "eslint-plugin-standard": "^3.0.1", + "eslint-plugin-vue": "^4.0.0", + "extract-text-webpack-plugin": "^3.0.0", + "file-loader": "^1.1.4", + "friendly-errors-webpack-plugin": "^1.6.1", + "html-webpack-plugin": "^2.30.1", + "jest": "^22.0.4", + "jest-serializer-vue": "^0.3.0", + "nightwatch": "^0.9.12", + "node-notifier": "^5.1.2", + "optimize-css-assets-webpack-plugin": "^3.2.0", + "ora": "^1.2.0", + "portfinder": "^1.0.13", + "postcss-import": "^11.0.0", + "postcss-loader": "^2.0.8", + "postcss-url": "^7.2.1", + "rimraf": "^2.6.0", + "selenium-server": "^3.0.1", + "semver": "^5.3.0", + "shelljs": "^0.7.6", + "uglifyjs-webpack-plugin": "^1.1.1", + "url-loader": "^0.5.8", + "vue-jest": "^1.0.2", + "vue-loader": "^13.3.0", + "vue-style-loader": "^3.1.2", + "vue-template-compiler": "^2.5.2", + "webpack": "^3.6.0", + "webpack-bundle-analyzer": "^2.9.0", + "webpack-dev-server": "^2.9.1", + "webpack-merge": "^4.1.0" + }, + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + }, + "browserslist": [ + "> 1%", + "last 2 versions", + "not ie <= 8" + ] +} diff --git a/src/App.vue b/src/App.vue new file mode 100644 index 0000000..025e8d8 --- /dev/null +++ b/src/App.vue @@ -0,0 +1,72 @@ + + + + + diff --git a/src/components/common/BaseCommonTopMenu.vue b/src/components/common/BaseCommonTopMenu.vue new file mode 100644 index 0000000..e74e057 --- /dev/null +++ b/src/components/common/BaseCommonTopMenu.vue @@ -0,0 +1,48 @@ + + + + + diff --git a/src/components/editor/CodeEditor.vue b/src/components/editor/CodeEditor.vue new file mode 100644 index 0000000..5d9157b --- /dev/null +++ b/src/components/editor/CodeEditor.vue @@ -0,0 +1,176 @@ + + + + + diff --git a/src/components/editor/CodeTab.vue b/src/components/editor/CodeTab.vue new file mode 100644 index 0000000..390272c --- /dev/null +++ b/src/components/editor/CodeTab.vue @@ -0,0 +1,109 @@ + + + + + diff --git a/src/components/editor/Console.vue b/src/components/editor/Console.vue new file mode 100644 index 0000000..3521db7 --- /dev/null +++ b/src/components/editor/Console.vue @@ -0,0 +1,52 @@ + + + + + + + diff --git a/src/components/editor/ConsoleTab.vue b/src/components/editor/ConsoleTab.vue new file mode 100644 index 0000000..5847f86 --- /dev/null +++ b/src/components/editor/ConsoleTab.vue @@ -0,0 +1,108 @@ + + + + + diff --git a/src/components/editor/ElTree.vue b/src/components/editor/ElTree.vue new file mode 100644 index 0000000..ce1ab2a --- /dev/null +++ b/src/components/editor/ElTree.vue @@ -0,0 +1,143 @@ + + + + + + + + diff --git a/src/components/editor/ResultRun.vue b/src/components/editor/ResultRun.vue new file mode 100644 index 0000000..7b8b46c --- /dev/null +++ b/src/components/editor/ResultRun.vue @@ -0,0 +1,3 @@ + diff --git a/src/components/editor/TopMenu.vue b/src/components/editor/TopMenu.vue new file mode 100644 index 0000000..5b07d0f --- /dev/null +++ b/src/components/editor/TopMenu.vue @@ -0,0 +1,198 @@ + + + + + \ No newline at end of file diff --git a/src/components/editor/dialog/DialogDelete.vue b/src/components/editor/dialog/DialogDelete.vue new file mode 100644 index 0000000..a7b2b2c --- /dev/null +++ b/src/components/editor/dialog/DialogDelete.vue @@ -0,0 +1,136 @@ + + + + + + diff --git a/src/components/editor/dialog/DialogProjs.vue b/src/components/editor/dialog/DialogProjs.vue new file mode 100644 index 0000000..773e563 --- /dev/null +++ b/src/components/editor/dialog/DialogProjs.vue @@ -0,0 +1,275 @@ + + + + + diff --git a/src/components/editor/dialog/DialogText.vue b/src/components/editor/dialog/DialogText.vue new file mode 100644 index 0000000..6d8a91e --- /dev/null +++ b/src/components/editor/dialog/DialogText.vue @@ -0,0 +1,305 @@ + + + + + + diff --git a/src/main.js b/src/main.js new file mode 100644 index 0000000..e85611d --- /dev/null +++ b/src/main.js @@ -0,0 +1,36 @@ +// The Vue build version to load with the `import` command +// (runtime-only or standalone) has been set in webpack.base.conf with an alias. +import Vue from 'vue' +import ElementUI from 'element-ui'; +import VueI18n from 'vue-i18n'; +import 'element-ui/lib/theme-chalk/index.css'; +import GlobalUtil from '@/store/core/global_util'; +window.GlobalUtil = GlobalUtil; +import store from './store'; +import App from './App' +import router from './router' +require('@/assets/css/common.css'); + +Vue.use(ElementUI); +Vue.use(VueI18n); + +Vue.config.productionTip = false + +const i18n = new VueI18n({ + locale: 'en', + silentTranslationWarn: true, + messages: { + en: require('@/assets/i18n/en'), + cn: require('@/assets/i18n/cn'), + }, +}); + +/* eslint-disable no-new */ +new Vue({ + i18n, + el: '#app', + router, + store, + components: { App }, + template: '' +}) diff --git a/src/router/index.js b/src/router/index.js new file mode 100644 index 0000000..a0426f4 --- /dev/null +++ b/src/router/index.js @@ -0,0 +1,20 @@ +import Vue from 'vue' +import Router from 'vue-router' +import Editor from '@/components/Editor' + +Vue.use(Router) + +export default new Router({ + routes: [ + { + path: '/', + name: 'Editor', + component: Editor + }, + { + path: '/editor', + name: 'Editor', + component: Editor + } + ] +}) diff --git a/src/store/actions.js b/src/store/actions.js new file mode 100644 index 0000000..c750a1b --- /dev/null +++ b/src/store/actions.js @@ -0,0 +1,21 @@ +import * as types from './mutation-types'; + +export const openWebsocket = ({ commit }) => { + window.GlobalUtil.model.socketModel.init_socket(window.GlobalUtil.socketInfo); + window.GlobalUtil.model.socketModel.init_onopen(()=> { + window.GlobalUtil.model.socketModel.socketInfo.connected = true; + window.GlobalUtil.model.socketModel.cleanPenddingCmd(); + window.GlobalUtil.model.ideModel.listProjects(); + }); + window.GlobalUtil.model.socketModel.init_onclose((evt) => { + window.GlobalUtil.model.socketModel.socketInfo.connected = false; + window.GlobalUtil.model.socketModel.cleanPenddingCmd(); + }); + window.GlobalUtil.model.socketModel.init_onerror((evt) => { + window.GlobalUtil.model.socketModel.socketInfo.connected = false; + console.log(`onerror onerror onerror = ${evt.data}`); + }); + window.GlobalUtil.model.socketModel.init_onmessage((evt) => { + window.GlobalUtil.model.socketModel.onmessage(evt); + }); +}; diff --git a/src/store/core/constant.js b/src/store/core/constant.js new file mode 100644 index 0000000..de2f744 --- /dev/null +++ b/src/store/core/constant.js @@ -0,0 +1,25 @@ +const Constant = {}; +const self = Constant; + +self.IDE_LIST_PROJECTS = 'ide_list_projects'; +self.IDE_GET_PROJECT = 'ide_get_project'; +self.IDE_CREATE_PROJECT = 'ide_create_project'; +self.IDE_DEL_PROJECT = 'ide_delete_project'; +self.IDE_RENAME_PROJECT = 'ide_rename_project'; +self.IDE_SAVE_PROJECT = 'ide_save_project'; +self.IDE_CREATE_FILE = 'ide_create_file'; +self.IDE_WRITE_FILE = 'ide_write_file'; +self.IDE_GET_FILE = 'ide_get_file'; +self.IDE_DEL_FILE = 'ide_delete_file'; +self.IDE_RENAME_FILE = 'ide_rename_file'; +self.IDE_CREATE_FOLDER = 'ide_create_folder'; +self.IDE_DEL_FOLDER = 'ide_delete_folder'; +self.IDE_RENAME_FOLDER = 'ide_rename_folder'; + +self.AUTOCOMPLETE_PYTHON = 'autocomplete_python'; +self.RUN_PIP_COMMAND = 'run_pip_command'; +self.RUN_PYTHON_PROGRAM = 'run_python_program'; +self.STOP_PYTHON_PROGRAM = 'stop_python_program'; + + +export default self; diff --git a/src/store/core/global_util.js b/src/store/core/global_util.js new file mode 100644 index 0000000..8b04bd5 --- /dev/null +++ b/src/store/core/global_util.js @@ -0,0 +1,22 @@ +import Model from './model'; +import Constant from './constant'; + +const socketInfo = { + protocol: 'ws', + host: window.location.hostname + ':10086', + path: '/ws', +}; +if (process.env.NODE_ENV === 'production') { + socketInfo.host = window.location.host; + console.log = () => {}; + console.warn = () => {}; +} + +const GlobalUtil = {}; +const self = GlobalUtil; +window.GlobalUtil = self; +self.model = Model; +self.constant = Constant; +self.socketInfo = socketInfo; + +export default self; diff --git a/src/store/core/model.js b/src/store/core/model.js new file mode 100644 index 0000000..7f4e7b3 --- /dev/null +++ b/src/store/core/model.js @@ -0,0 +1,11 @@ +import IdeModel from './model_ide'; +import SocketModel from './model_socket'; +import UtilModel from './model_util'; + +const Model = {} + +Model.ideModel = IdeModel; +Model.socketModel = SocketModel; +Model.utilModel = UtilModel; + +export default Model; diff --git a/src/store/core/model_ide.js b/src/store/core/model_ide.js new file mode 100644 index 0000000..4486287 --- /dev/null +++ b/src/store/core/model_ide.js @@ -0,0 +1,499 @@ + +const path = require('path'); + +const IdeModel = {}; +const self = IdeModel; + +self.consoleId = 10001; + +self.projElTree = null; +self.codeItems = []; +self.selectFilePath = null; +self.selectNode = null; +self.projList = []; +self.curProjConfig = {}; +self.curProjTree = {}; +self.curProjExpandedKeys = []; + +self.consoleItems = []; +self.curRunFileList = []; +self.selectConsoleItem = {}; + +self.dialogType = ''; +self.dialogTitle = ''; +self.dialogTips = ''; +self.dialogInputText = ''; +self.showProjsDialog = false; +self.showFileDialog = false; +self.showDeleteDialog = false; + +self.uniqueArr = (arr) => { + const result = []; + const hash = {}; + for (let i = 0, elem; (elem = arr[i]) != null; i += 1) { + if (!hash[elem]) { + result.push(elem); + hash[elem] = true; + }; + }; + return result; +}; + +self.isHasProj = (name) => { + for (let i = 0; i < self.projList.length; i += 1) { + if (self.projList[i].name === name) { + self.dialogTips = 'Project name is the same'; + return true; + } + } + self.dialogTips = ''; + return false; +}; + +self.isRepeatFile = (name, isCreateFile) => { + if (isCreateFile === true) { + for (let i = 0; i < self.selectNode.children.length; i++) { + if (self.selectNode.children[i].name === name) { + self.dialogTips = 'The name is the same'; + return true; + }; + }; + self.dialogTips = ''; + return false; + } + else if (self.selectNode.path === '/') { + return self.isHasProj(name); + } + else { + let node = self.curProjTree; + while (true) { + const check = self.checkNodeHasChild(self.selectNode.path, node); + if (check === true) { + break; + } + else if (check === false) { + node = null; + break; + } + else { + node = check; + } + } + if (node !== null) { + for (let i = 0; i < node.children.length; i++) { + if (name === node.children[i].name) { + self.dialogTips = 'The name is the same'; + return true; + } + } + } + self.dialogTips = ''; + return false; + } +}; + +self.checkNodeHasChild = (path, node) => { + if (node.children === undefined || node.children === null) { + return false; + } + for (let i = 0; i < node.children.length; i++) { + if (node.children[i].path === path) { + return true + } + else if (path.indexOf(node.children[i].path) === 0) { + return node.children[i]; + } + } + return false; +} + +self.curProjAddExpandedKeys = (uuid) => { + if (self.curProjExpandedKeys.indexOf(uuid) < 0) { + self.curProjExpandedKeys.push(uuid); + self.saveProject() + }; +}; + +self.curProjRemoveExpandedKeys = (uuid) => { + self.curProjExpandedKeys.splice(self.curProjExpandedKeys.findIndex(item => item === uuid), 1) + self.saveProject(); +}; + +self.sendCmd = (cmd, data, callback, id) => { + window.GlobalUtil.model.socketModel.sendCmd(cmd, data, callback, id); +}; + +self.listProjects = (callback) => { + self.sendCmd(window.GlobalUtil.constant.IDE_LIST_PROJECTS, {}, (dict) => { + if (dict.code === 0) { + self.projList = dict.data; + let lastAccessTime = 0; + for (let i = 0; i < self.projList.length; i += 1) { + if (self.projList[i].lastAccessTime > lastAccessTime) { + lastAccessTime = self.projList[i].lastAccessTime; + self.curProjConfig = self.projList[i]; + }; + }; + self.getProject(); + }; + }); +}; + +self.getProject = (projectName, callback) => { + const params = { + projectName: projectName === undefined ? self.curProjConfig.name : projectName, + }; + self.sendCmd(window.GlobalUtil.constant.IDE_GET_PROJECT, params, (dict) => { + if (dict.code === 0) { + self.codeItems = []; + self.selectFilePath = null; + self.curProjExpandedKeys = []; + self.curProjConfig = dict.data.config; + self.curProjTree = dict.data; + if (dict.data.config !== undefined && dict.data.config.expendKeys !== undefined) { + self.curProjExpandedKeys = dict.data.config.expendKeys; + for (let i = 0; i < dict.data.config.openList.length; i++) { + self.getFile(dict.data.config.openList[i], false); + } + let node = self.curProjTree; + while (true) { + const check = self.checkNodeHasChild(dict.data.config.selectFilePath, node); + if (check === true) { + for (let i = 0; i < node.children.length; i++) { + if (node.children[i].path === dict.data.config.selectFilePath) { + self.selectNode = node.children[i]; + self.projElTree.setCurrentNode(self.selectNode); + } + } + break; + } + else if (check === false) { + node = null; + break; + } + else { + node = check; + } + } + self.selectFilePath = dict.data.config.selectFilePath; + if (callback !== undefined && callback !== null) { + callback(); + } + }; + }; + }); +}; + +self.saveProject = (callback) => { + const openList = [] + for(let i = 0; i < self.codeItems.length; i++) { + openList.push(self.codeItems[i].path); + } + const params = { + projectName: self.curProjTree.name, + expendKeys: self.curProjExpandedKeys, + openList: openList, + selectFilePath: self.selectFilePath, + }; + self.sendCmd(window.GlobalUtil.constant.IDE_SAVE_PROJECT, params, (dict) => { + if (dict.code === 0) { + if (callback !== undefined && callback !== null) { + callback(); + } + }; + }); +}; + +self.createProject = (projectName) => { + const params = { + projectName: projectName, + }; + self.sendCmd(window.GlobalUtil.constant.IDE_CREATE_PROJECT, params, (dict) => { + if (dict.code === 0) { + self.listProjects(); + }; + }); +}; + +self.deleteProject = (projectName) => { + const params = { + projectName: projectName, + }; + self.sendCmd(window.GlobalUtil.constant.IDE_DEL_PROJECT, params, (dict) => { + if (dict.code === 0) { + self.listProjects(); + }; + }); +}; + +self.renameProject = (newName) => { + const params = { + oldName: self.curProjTree.name, + newName: newName, + }; + self.sendCmd(window.GlobalUtil.constant.IDE_RENAME_PROJECT, params, (dict) => { + if (dict.code === 0) { + self.listProjects(); + }; + }); +}; + +self.getFile = (filePath, save) => { + const params = { + projectName: self.curProjTree.name, + filePath: filePath, + }; + self.sendCmd(window.GlobalUtil.constant.IDE_GET_FILE, params, (dict) => { + if (dict.code === 0) { + for (let i = 0; i < self.codeItems.length; i++) { + if (self.codeItems[i].path === filePath) { + self.selectFilePath = filePath; + return; + }; + }; + self.codeItems.push({ + name: path.basename(filePath), + content: dict.data, + path: filePath, + codemirror: null, + }); + if (save !== false) { + self.selectFilePath = filePath; + self.saveProject(); + self.projElTree.setCurrentKey(self.selectFilePath); + } + }; + }); +}; + +self.createFile = (fileName) => { + const params = { + projectName: self.curProjTree.name, + parentPath: self.selectNode.path, + fileName: fileName, + }; + self.sendCmd(window.GlobalUtil.constant.IDE_CREATE_FILE, params, (dict) => { + if (dict.code === 0) { + const newPath = path.join(self.selectNode.path, fileName); + self.getFile(newPath); + self.selectFilePath = newPath; + self.curProjAddExpandedKeys(self.selectNode.path); + self.saveProject(self.getProject); + }; + }); +}; + +self.writeFile = (filePath, data, complete, line, column, callback) => { + const params = { + projectName: self.curProjTree.name, + filePath: filePath, + fileData: data, + complete: complete, + line: line, + column: column + }; + self.sendCmd(window.GlobalUtil.constant.IDE_WRITE_FILE, params, (dict) => { + console.log(dict); + if (dict.code === 0) { + if (callback) { + callback(dict); + } + } + }) +}; + +self.deleteFile = (filePath) => { + const params = { + projectName: self.curProjTree.name, + filePath: filePath, + }; + self.sendCmd(window.GlobalUtil.constant.IDE_DEL_FILE, params, (dict) => { + if (dict.code === 0) { + for (let i = 0; i < self.codeItems.length; i++) { + if (self.codeItems[i].path === filePath) { + if (i > 0) { + self.selectFilePath = self.codeItems[i - 1].path; + } + else if (i < self.codeItems.length - 1) { + self.selectFilePath = self.codeItems[i + 1].path; + } + self.codeItems.splice(i, 1); + break; + }; + }; + self.saveProject(self.getProject); + } + }) +}; + +self.renameFile = (fileName) => { + const params = { + projectName: self.curProjTree.name, + oldPath: self.selectNode.path, + newName: fileName, + }; + self.sendCmd(window.GlobalUtil.constant.IDE_RENAME_FILE, params, (dict) => { + if (dict.code === 0) { + const name = path.basename(self.selectNode.path); + const newPath = self.selectNode.path.substring(0, self.selectNode.path.length - name.length) + fileName; + for (let i = 0; i < self.codeItems.length; i++) { + if (self.codeItems[i].path === self.selectNode.path) { + self.codeItems[i].path = newPath; + break; + }; + }; + self.selectNode.path = newPath; + self.selectFilePath = self.selectNode.path; + self.getFile(newPath); + self.saveProject(self.getProject); + }; + }); +}; + +self.createFolder = (folderName) => { + const params = { + projectName: self.curProjTree.name, + parentPath: self.selectNode.path, + folderName: folderName, + }; + self.sendCmd(window.GlobalUtil.constant.IDE_CREATE_FOLDER, params, (dict) => { + if (dict.code === 0) { + self.curProjAddExpandedKeys(self.selectNode.path); + self.saveProject(self.getProject); + }; + }); +}; + +self.deleteFolder = (folderPath) => { + const params = { + projectName: self.curProjTree.name, + folderPath: folderPath, + }; + self.sendCmd(window.GlobalUtil.constant.IDE_DEL_FOLDER, params, (dict) => { + if (dict.code === 0) { + self.getProject(); + } + }) +}; + +self.renameFolder = (folderName) => { + const params = { + projectName: self.curProjTree.name, + oldPath: self.selectNode.path, + newName: folderName, + }; + self.sendCmd(window.GlobalUtil.constant.IDE_RENAME_FOLDER, params, (dict) => { + if (dict.code === 0) { + const name = path.basename(self.selectNode.path); + const newPath = self.selectNode.path.substring(0, self.selectNode.path.length - name.length) + folderName; + for (let i = 0; i < self.curProjExpandedKeys.length; i++) { + if (self.curProjExpandedKeys[i] === self.selectNode.path) { + self.curProjExpandedKeys[i] = newPath; + break; + }; + }; + self.selectNode.path = newPath; + self.selectFilePath = self.selectNode.path; + self.saveProject(self.getProject); + }; + }); +}; + +self.autocompletePython = (source, line, column, callback) => { + const params = { + source: source, + line: line, + column: column, + }; + self.sendCmd(window.GlobalUtil.constant.AUTOCOMPLETE_PYTHON, params, (dict) => { + if (dict.code === 0) { + if (callback) { + callback(dict); + }; + }; + }); +} + +self.runPythonProgram = (id, filePath) => { + const params = { + projectName: self.curProjTree.name, + filePath: filePath, + }; + self.sendCmd(window.GlobalUtil.constant.RUN_PYTHON_PROGRAM, params, (dict) => { + if (dict.code === 0) { + if (dict.data === null || dict.data.stdout === undefined || dict.data.stdout === null) { + for (let i = 0; i < self.consoleItems.length; i++) { + if (self.consoleItems[i].id === dict.id) { + self.consoleItems[i].run = true; + self.consoleItems[i].output = ''; + break; + }; + }; + } + else { + for (let i = 0; i < self.consoleItems.length; i++) { + if (self.consoleItems[i].id === dict.id) { + self.consoleItems[i].output += '\n' + dict.data.stdout + const textArea = document.getElementById('console-' + self.consoleItems[i].id) + if (textArea !== undefined && textArea !== null) { + textArea.scrollTop = textArea.scrollHeight; + } + break; + }; + }; + } + } + else { + console.log(dict); + for (let i = 0; i < self.consoleItems.length; i++) { + if (self.consoleItems[i].id === dict.id) { + self.consoleItems[i].output += '\n' + dict.data.stdout + const textArea = document.getElementById('console-' + self.consoleItems[i].id) + if (textArea !== undefined && textArea !== null) { + textArea.scrollTop = textArea.scrollHeight; + } + self.consoleItems[i].run = false; + break; + }; + }; + } + }, id) +}; + +self.stopPythonProgram = (id) => { + const params = {} + self.sendCmd(window.GlobalUtil.constant.STOP_PYTHON_PROGRAM, params, (dict) => { + console.log('>>>', dict); + if (dict.code === 0) { + if (dict.data === null || dict.data.stdout === undefined || dict.data.stdout === null) { + return; + } + for (let i = 0; i < self.consoleItems.length; i++) { + if (self.consoleItems[i].id === dict.id) { + self.consoleItems[i].output += '\n' + dict.data.stdout + const textArea = document.getElementById('console-' + self.consoleItems[i].id) + if (textArea !== undefined && textArea !== null) { + textArea.scrollTop = textArea.scrollHeight; + } + self.consoleItems[i].run = false; + break; + }; + }; + } + else { + for (let i = 0; i < self.consoleItems.length; i++) { + if (self.consoleItems[i].id === dict.id) { + self.consoleItems[i].output += '\n' + dict.data.stdout + const textArea = document.getElementById('console-' + self.consoleItems[i].id) + if (textArea !== undefined && textArea !== null) { + textArea.scrollTop = textArea.scrollHeight; + } + self.consoleItems[i].run = false; + break; + }; + }; + } + }, id); +} + +export default self; diff --git a/src/store/core/model_socket.js b/src/store/core/model_socket.js new file mode 100644 index 0000000..cadaad3 --- /dev/null +++ b/src/store/core/model_socket.js @@ -0,0 +1,114 @@ +import ReconnectingWebSocket from '@/assets/lib/reconnecting-websocket'; + +const SocketModel = {}; +const self = SocketModel; + +self.socketInfo = { + socket: null, + protocol: 'ws', + host: null, + path: '/ws', + connected: false, +}; + +self.msgid = 0; +self.response = ''; +self.penddingCmds = {}; + +self.init_socket = (args) => { + const self = SocketModel; + args = args || {}; + args.logger = args.logger || console; + self.socketInfo.protocol = args.protocol || self.socketInfo.protocol; + self.socketInfo.host = args.host || self.socketInfo.host; + self.socketInfo.path = args.path || self.socketInfo.path; + const ws_url = `${self.socketInfo.protocol}://${self.socketInfo.host}${self.socketInfo.path}`; + console.log('ws url:', ws_url); + self.socketInfo.socket = new ReconnectingWebSocket(ws_url, null, { + debug: false, + logger: args.logger, + reconnectInterval: 1000, + }); +}; + +self.init_onopen = (onopen) => { + self.socketInfo.socket.onopen = onopen; +}; + +self.init_onclose = (onclose) => { + self.socketInfo.socket.onclose = onclose; +}; + +self.init_onmessage = (onmessage) => { + self.socketInfo.socket.onmessage = onmessage; +}; + +self.init_onerror = (onerror) => { + self.socketInfo.socket.onerror = onerror; +}; + +self.sendMsg = (msg, callback, id) => { + const self = SocketModel; + if (self.socketInfo.socket === null || self.socketInfo.socket === undefined) { + console.log('self.socketInfo.socket.readyState is not init'); + return -1; + } + if (self.socketInfo.socket.readyState !== ReconnectingWebSocket.OPEN) { + console.log('self.socketInfo.socket.readyState is not open'); + return -1; + } + if (id !== undefined) { + msg.id = id; + } + else { + if (self.msgid > 10000) { + self.msgid = 0; + } + self.msgid += 1; + msg.id = self.msgid; + } + if (callback) { + self.penddingCmds[msg.id] = callback; + } + const js_msg = JSON.stringify(msg); + console.log(`send: msg.id = ${msg.id}, js_msg = ${js_msg}`); + self.socketInfo.socket.send(js_msg); + return msg.id; +} + +self.sendCmd = (cmd, data, callback, id) => { + const self = SocketModel; + const msg = {}; + data = data || {}; + msg.cmd = cmd; + msg.data = data; + self.sendMsg(msg, callback, id); +}; + +self.onmessage = (evt) => { + const dict = JSON.parse(evt.data) || {}; + const callback = self.penddingCmds[dict.id]; + if (dict.type !== 'response') { + return; + } + if (dict.id === null) { + return; + } + if (callback) { + callback(dict); + } +} + +self.cleanPenddingCmd = () => { + for (const key in self.penddingCmds) { + const callback = self.penddingCmds[key]; + if (callback) { + callback({ + code: 10086, + }); + } + } + self.penddingCmds = {}; +}; + +export default self; diff --git a/src/store/core/model_util.js b/src/store/core/model_util.js new file mode 100644 index 0000000..9941ecc --- /dev/null +++ b/src/store/core/model_util.js @@ -0,0 +1,27 @@ +const UtilModel = {}; +const self = UtilModel; + +self.checkStrIsLegal = (str, isFile) => { + const errStr = `'Name contains "only letter, numbers, '_' and no more than 15 characters in total.${[]}`; + if (str === null || str === undefined || str.length === 0) { + return false; + } + if (str.length > 15) { + return errStr; + } + for (let i = 0; i < str.length; i++) { + if (isFile !== true) { + if (!((str[i] >= 'a' && str[i] <= 'z') || (str[i] >= 'A' && str[i] <= 'Z') || str[i] === '_' || (str[i] >= '0' && str[i] <= '9'))) { + return errStr; + }; + } + else { + if (!((str[i] >= 'a' && str[i] <= 'z') || (str[i] >= 'A' && str[i] <= 'Z') || str[i] === '_' || str[i] === '.' || (str[i] >= '0' && str[i] <= '9'))) { + return errStr; + }; + }; + }; + return true; +} + +export default self; diff --git a/src/store/getters.js b/src/store/getters.js new file mode 100644 index 0000000..99c38cc --- /dev/null +++ b/src/store/getters.js @@ -0,0 +1 @@ +export const counter = state => state.counter \ No newline at end of file diff --git a/src/store/index.js b/src/store/index.js new file mode 100644 index 0000000..a2657c7 --- /dev/null +++ b/src/store/index.js @@ -0,0 +1,14 @@ +import Vue from 'vue'; +import Vuex from 'vuex'; +import * as actions from './actions'; +import * as getters from './getters'; +import modules from './modules'; + +Vue.use(Vuex); + +export default new Vuex.Store({ + actions, + getters, + modules, + strict: false, +}) \ No newline at end of file diff --git a/src/store/modules/index.js b/src/store/modules/index.js new file mode 100644 index 0000000..c331657 --- /dev/null +++ b/src/store/modules/index.js @@ -0,0 +1,11 @@ +const files = require.context('.', false, /\.js$/); +const modules = {}; + +files.keys().forEach((key) => { + if (key === './index.js') { + return; + } + modules[key.replace(/(\.\/|\.js)/g, '')] = files(key).default; +}); + +export default modules; diff --git a/src/store/modules/model.js b/src/store/modules/model.js new file mode 100644 index 0000000..f5e2040 --- /dev/null +++ b/src/store/modules/model.js @@ -0,0 +1,14 @@ +const state= { + model: window.GlobalUtil.model, + constant: window.GlobalUtil.constant, +} +const actions = { +} +const mutations = { +} + +export default { + state, + actions, + mutations, +} diff --git a/src/store/mutation-types.js b/src/store/mutation-types.js new file mode 100644 index 0000000..fa5a682 --- /dev/null +++ b/src/store/mutation-types.js @@ -0,0 +1 @@ +export const INCRESE_COUNTER = 'INCRESE_COUNTER' diff --git a/static/.gitkeep b/static/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/test/e2e/custom-assertions/elementCount.js b/test/e2e/custom-assertions/elementCount.js new file mode 100644 index 0000000..818e602 --- /dev/null +++ b/test/e2e/custom-assertions/elementCount.js @@ -0,0 +1,27 @@ +// A custom Nightwatch assertion. +// The assertion name is the filename. +// Example usage: +// +// browser.assert.elementCount(selector, count) +// +// For more information on custom assertions see: +// http://nightwatchjs.org/guide#writing-custom-assertions + +exports.assertion = function (selector, count) { + this.message = 'Testing if element <' + selector + '> has count: ' + count + this.expected = count + this.pass = function (val) { + return val === this.expected + } + this.value = function (res) { + return res.value + } + this.command = function (cb) { + var self = this + return this.api.execute(function (selector) { + return document.querySelectorAll(selector).length + }, [selector], function (res) { + cb.call(self, res) + }) + } +} diff --git a/test/e2e/nightwatch.conf.js b/test/e2e/nightwatch.conf.js new file mode 100644 index 0000000..f019c0a --- /dev/null +++ b/test/e2e/nightwatch.conf.js @@ -0,0 +1,46 @@ +require('babel-register') +var config = require('../../config') + +// http://nightwatchjs.org/gettingstarted#settings-file +module.exports = { + src_folders: ['test/e2e/specs'], + output_folder: 'test/e2e/reports', + custom_assertions_path: ['test/e2e/custom-assertions'], + + selenium: { + start_process: true, + server_path: require('selenium-server').path, + host: '127.0.0.1', + port: 4444, + cli_args: { + 'webdriver.chrome.driver': require('chromedriver').path + } + }, + + test_settings: { + default: { + selenium_port: 4444, + selenium_host: 'localhost', + silent: true, + globals: { + devServerURL: 'http://localhost:' + (process.env.PORT || config.dev.port) + } + }, + + chrome: { + desiredCapabilities: { + browserName: 'chrome', + javascriptEnabled: true, + acceptSslCerts: true + } + }, + + firefox: { + desiredCapabilities: { + browserName: 'firefox', + javascriptEnabled: true, + acceptSslCerts: true + } + } + } +} diff --git a/test/e2e/runner.js b/test/e2e/runner.js new file mode 100644 index 0000000..2722032 --- /dev/null +++ b/test/e2e/runner.js @@ -0,0 +1,48 @@ +// 1. start the dev server using production config +process.env.NODE_ENV = 'testing' + +const webpack = require('webpack') +const DevServer = require('webpack-dev-server') + +const webpackConfig = require('../../build/webpack.prod.conf') +const devConfigPromise = require('../../build/webpack.dev.conf') + +let server + +devConfigPromise.then(devConfig => { + const devServerOptions = devConfig.devServer + const compiler = webpack(webpackConfig) + server = new DevServer(compiler, devServerOptions) + const port = devServerOptions.port + const host = devServerOptions.host + return server.listen(port, host) +}) +.then(() => { + // 2. run the nightwatch test suite against it + // to run in additional browsers: + // 1. add an entry in test/e2e/nightwatch.conf.js under "test_settings" + // 2. add it to the --env flag below + // or override the environment flag, for example: `npm run e2e -- --env chrome,firefox` + // For more information on Nightwatch's config file, see + // http://nightwatchjs.org/guide#settings-file + let opts = process.argv.slice(2) + if (opts.indexOf('--config') === -1) { + opts = opts.concat(['--config', 'test/e2e/nightwatch.conf.js']) + } + if (opts.indexOf('--env') === -1) { + opts = opts.concat(['--env', 'chrome']) + } + + const spawn = require('cross-spawn') + const runner = spawn('./node_modules/.bin/nightwatch', opts, { stdio: 'inherit' }) + + runner.on('exit', function (code) { + server.close() + process.exit(code) + }) + + runner.on('error', function (err) { + server.close() + throw err + }) +}) diff --git a/test/e2e/specs/test.js b/test/e2e/specs/test.js new file mode 100644 index 0000000..a7b1bd9 --- /dev/null +++ b/test/e2e/specs/test.js @@ -0,0 +1,19 @@ +// For authoring Nightwatch tests, see +// http://nightwatchjs.org/guide#usage + +module.exports = { + 'default e2e tests': function (browser) { + // automatically uses dev Server port from /config.index.js + // default: http://localhost:8080 + // see nightwatch.conf.js + const devServer = browser.globals.devServerURL + + browser + .url(devServer) + .waitForElementVisible('#app', 5000) + .assert.elementPresent('.hello') + .assert.containsText('h1', 'Welcome to Your Vue.js App') + .assert.elementCount('img', 1) + .end() + } +} diff --git a/test/unit/.eslintrc b/test/unit/.eslintrc new file mode 100644 index 0000000..4d5d98f --- /dev/null +++ b/test/unit/.eslintrc @@ -0,0 +1,7 @@ +{ + "env": { + "jest": true + }, + "globals": { + } +} diff --git a/test/unit/jest.conf.js b/test/unit/jest.conf.js new file mode 100644 index 0000000..4f7da15 --- /dev/null +++ b/test/unit/jest.conf.js @@ -0,0 +1,30 @@ +const path = require('path') + +module.exports = { + rootDir: path.resolve(__dirname, '../../'), + moduleFileExtensions: [ + 'js', + 'json', + 'vue' + ], + moduleNameMapper: { + '^@/(.*)$': '/src/$1' + }, + transform: { + '^.+\\.js$': '/node_modules/babel-jest', + '.*\\.(vue)$': '/node_modules/vue-jest' + }, + testPathIgnorePatterns: [ + '/test/e2e' + ], + snapshotSerializers: ['/node_modules/jest-serializer-vue'], + setupFiles: ['/test/unit/setup'], + mapCoverage: true, + coverageDirectory: '/test/unit/coverage', + collectCoverageFrom: [ + 'src/**/*.{js,vue}', + '!src/main.js', + '!src/router/index.js', + '!**/node_modules/**' + ] +} diff --git a/test/unit/setup.js b/test/unit/setup.js new file mode 100644 index 0000000..edbdbae --- /dev/null +++ b/test/unit/setup.js @@ -0,0 +1,3 @@ +import Vue from 'vue' + +Vue.config.productionTip = false diff --git a/test/unit/specs/HelloWorld.spec.js b/test/unit/specs/HelloWorld.spec.js new file mode 100644 index 0000000..cfb0453 --- /dev/null +++ b/test/unit/specs/HelloWorld.spec.js @@ -0,0 +1,11 @@ +import Vue from 'vue' +import HelloWorld from '@/components/HelloWorld' + +describe('HelloWorld.vue', () => { + it('should render correct contents', () => { + const Constructor = Vue.extend(HelloWorld) + const vm = new Constructor().$mount() + expect(vm.$el.querySelector('.hello h1').textContent) + .toEqual('Welcome to Your Vue.js App') + }) +}) diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..110d2eb --- /dev/null +++ b/yarn.lock @@ -0,0 +1,8373 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@babel/code-frame@7.0.0-beta.44": + version "7.0.0-beta.44" + resolved "http://registry.npm.taobao.org/@babel/code-frame/download/@babel/code-frame-7.0.0-beta.44.tgz#2a02643368de80916162be70865c97774f3adbd9" + dependencies: + "@babel/highlight" "7.0.0-beta.44" + +"@babel/code-frame@7.0.0-beta.51": + version "7.0.0-beta.51" + resolved "http://registry.npm.taobao.org/@babel/code-frame/download/@babel/code-frame-7.0.0-beta.51.tgz#bd71d9b192af978df915829d39d4094456439a0c" + dependencies: + "@babel/highlight" "7.0.0-beta.51" + +"@babel/code-frame@^7.0.0-beta.35": + version "7.0.0-beta.53" + resolved "http://registry.npm.taobao.org/@babel/code-frame/download/@babel/code-frame-7.0.0-beta.53.tgz#980d1560b863575bf5a377925037e0132ef5921e" + dependencies: + "@babel/highlight" "7.0.0-beta.53" + +"@babel/generator@7.0.0-beta.44": + version "7.0.0-beta.44" + resolved "http://registry.npm.taobao.org/@babel/generator/download/@babel/generator-7.0.0-beta.44.tgz#c7e67b9b5284afcf69b309b50d7d37f3e5033d42" + dependencies: + "@babel/types" "7.0.0-beta.44" + jsesc "^2.5.1" + lodash "^4.2.0" + source-map "^0.5.0" + trim-right "^1.0.1" + +"@babel/generator@7.0.0-beta.51": + version "7.0.0-beta.51" + resolved "http://registry.npm.taobao.org/@babel/generator/download/@babel/generator-7.0.0-beta.51.tgz#6c7575ffde761d07485e04baedc0392c6d9e30f6" + dependencies: + "@babel/types" "7.0.0-beta.51" + jsesc "^2.5.1" + lodash "^4.17.5" + source-map "^0.5.0" + trim-right "^1.0.1" + +"@babel/helper-function-name@7.0.0-beta.44": + version "7.0.0-beta.44" + resolved "http://registry.npm.taobao.org/@babel/helper-function-name/download/@babel/helper-function-name-7.0.0-beta.44.tgz#e18552aaae2231100a6e485e03854bc3532d44dd" + dependencies: + "@babel/helper-get-function-arity" "7.0.0-beta.44" + "@babel/template" "7.0.0-beta.44" + "@babel/types" "7.0.0-beta.44" + +"@babel/helper-function-name@7.0.0-beta.51": + version "7.0.0-beta.51" + resolved "http://registry.npm.taobao.org/@babel/helper-function-name/download/@babel/helper-function-name-7.0.0-beta.51.tgz#21b4874a227cf99ecafcc30a90302da5a2640561" + dependencies: + "@babel/helper-get-function-arity" "7.0.0-beta.51" + "@babel/template" "7.0.0-beta.51" + "@babel/types" "7.0.0-beta.51" + +"@babel/helper-get-function-arity@7.0.0-beta.44": + version "7.0.0-beta.44" + resolved "http://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.0.0-beta.44.tgz#d03ca6dd2b9f7b0b1e6b32c56c72836140db3a15" + dependencies: + "@babel/types" "7.0.0-beta.44" + +"@babel/helper-get-function-arity@7.0.0-beta.51": + version "7.0.0-beta.51" + resolved "http://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.0.0-beta.51.tgz#3281b2d045af95c172ce91b20825d85ea4676411" + dependencies: + "@babel/types" "7.0.0-beta.51" + +"@babel/helper-split-export-declaration@7.0.0-beta.44": + version "7.0.0-beta.44" + resolved "http://registry.npm.taobao.org/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.0.0-beta.44.tgz#c0b351735e0fbcb3822c8ad8db4e583b05ebd9dc" + dependencies: + "@babel/types" "7.0.0-beta.44" + +"@babel/helper-split-export-declaration@7.0.0-beta.51": + version "7.0.0-beta.51" + resolved "http://registry.npm.taobao.org/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.0.0-beta.51.tgz#8a6c3f66c4d265352fc077484f9f6e80a51ab978" + dependencies: + "@babel/types" "7.0.0-beta.51" + +"@babel/highlight@7.0.0-beta.44": + version "7.0.0-beta.44" + resolved "http://registry.npm.taobao.org/@babel/highlight/download/@babel/highlight-7.0.0-beta.44.tgz#18c94ce543916a80553edcdcf681890b200747d5" + dependencies: + chalk "^2.0.0" + esutils "^2.0.2" + js-tokens "^3.0.0" + +"@babel/highlight@7.0.0-beta.51": + version "7.0.0-beta.51" + resolved "http://registry.npm.taobao.org/@babel/highlight/download/@babel/highlight-7.0.0-beta.51.tgz#e8844ae25a1595ccfd42b89623b4376ca06d225d" + dependencies: + chalk "^2.0.0" + esutils "^2.0.2" + js-tokens "^3.0.0" + +"@babel/highlight@7.0.0-beta.53": + version "7.0.0-beta.53" + resolved "http://registry.npm.taobao.org/@babel/highlight/download/@babel/highlight-7.0.0-beta.53.tgz#f4e952dad1787d205e188d3e384cdce49ca368fb" + dependencies: + chalk "^2.0.0" + esutils "^2.0.2" + js-tokens "^3.0.0" + +"@babel/parser@7.0.0-beta.51": + version "7.0.0-beta.51" + resolved "http://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.0.0-beta.51.tgz#27cec2df409df60af58270ed8f6aa55409ea86f6" + +"@babel/template@7.0.0-beta.44": + version "7.0.0-beta.44" + resolved "http://registry.npm.taobao.org/@babel/template/download/@babel/template-7.0.0-beta.44.tgz#f8832f4fdcee5d59bf515e595fc5106c529b394f" + dependencies: + "@babel/code-frame" "7.0.0-beta.44" + "@babel/types" "7.0.0-beta.44" + babylon "7.0.0-beta.44" + lodash "^4.2.0" + +"@babel/template@7.0.0-beta.51": + version "7.0.0-beta.51" + resolved "http://registry.npm.taobao.org/@babel/template/download/@babel/template-7.0.0-beta.51.tgz#9602a40aebcf357ae9677e2532ef5fc810f5fbff" + dependencies: + "@babel/code-frame" "7.0.0-beta.51" + "@babel/parser" "7.0.0-beta.51" + "@babel/types" "7.0.0-beta.51" + lodash "^4.17.5" + +"@babel/traverse@7.0.0-beta.44": + version "7.0.0-beta.44" + resolved "http://registry.npm.taobao.org/@babel/traverse/download/@babel/traverse-7.0.0-beta.44.tgz#a970a2c45477ad18017e2e465a0606feee0d2966" + dependencies: + "@babel/code-frame" "7.0.0-beta.44" + "@babel/generator" "7.0.0-beta.44" + "@babel/helper-function-name" "7.0.0-beta.44" + "@babel/helper-split-export-declaration" "7.0.0-beta.44" + "@babel/types" "7.0.0-beta.44" + babylon "7.0.0-beta.44" + debug "^3.1.0" + globals "^11.1.0" + invariant "^2.2.0" + lodash "^4.2.0" + +"@babel/traverse@7.0.0-beta.51": + version "7.0.0-beta.51" + resolved "http://registry.npm.taobao.org/@babel/traverse/download/@babel/traverse-7.0.0-beta.51.tgz#981daf2cec347a6231d3aa1d9e1803b03aaaa4a8" + dependencies: + "@babel/code-frame" "7.0.0-beta.51" + "@babel/generator" "7.0.0-beta.51" + "@babel/helper-function-name" "7.0.0-beta.51" + "@babel/helper-split-export-declaration" "7.0.0-beta.51" + "@babel/parser" "7.0.0-beta.51" + "@babel/types" "7.0.0-beta.51" + debug "^3.1.0" + globals "^11.1.0" + invariant "^2.2.0" + lodash "^4.17.5" + +"@babel/types@7.0.0-beta.44": + version "7.0.0-beta.44" + resolved "http://registry.npm.taobao.org/@babel/types/download/@babel/types-7.0.0-beta.44.tgz#6b1b164591f77dec0a0342aca995f2d046b3a757" + dependencies: + esutils "^2.0.2" + lodash "^4.2.0" + to-fast-properties "^2.0.0" + +"@babel/types@7.0.0-beta.51": + version "7.0.0-beta.51" + resolved "http://registry.npm.taobao.org/@babel/types/download/@babel/types-7.0.0-beta.51.tgz#d802b7b543b5836c778aa691797abf00f3d97ea9" + dependencies: + esutils "^2.0.2" + lodash "^4.17.5" + to-fast-properties "^2.0.0" + +"@types/strip-bom@^3.0.0": + version "3.0.0" + resolved "http://registry.npm.taobao.org/@types/strip-bom/download/@types/strip-bom-3.0.0.tgz#14a8ec3956c2e81edb7520790aecf21c290aebd2" + +"@types/strip-json-comments@0.0.30": + version "0.0.30" + resolved "http://registry.npm.taobao.org/@types/strip-json-comments/download/@types/strip-json-comments-0.0.30.tgz#9aa30c04db212a9a0649d6ae6fd50accc40748a1" + +abab@^1.0.4: + version "1.0.4" + resolved "http://registry.npm.taobao.org/abab/download/abab-1.0.4.tgz#5faad9c2c07f60dd76770f71cf025b62a63cfd4e" + +abbrev@1: + version "1.1.1" + resolved "http://registry.npm.taobao.org/abbrev/download/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + +accepts@~1.3.4, accepts@~1.3.5: + version "1.3.5" + resolved "http://registry.npm.taobao.org/accepts/download/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2" + dependencies: + mime-types "~2.1.18" + negotiator "0.6.1" + +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-globals@^4.1.0: + version "4.1.0" + resolved "http://registry.npm.taobao.org/acorn-globals/download/acorn-globals-4.1.0.tgz#ab716025dbe17c54d3ef81d32ece2b2d99fe2538" + dependencies: + acorn "^5.0.0" + +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.3.0, acorn@^5.5.0: + version "5.7.1" + resolved "http://registry.npm.taobao.org/acorn/download/acorn-5.7.1.tgz#f095829297706a7c9776958c0afc8930a9b9d9d8" + +agent-base@2: + version "2.1.1" + resolved "http://registry.npm.taobao.org/agent-base/download/agent-base-2.1.1.tgz#d6de10d5af6132d5bd692427d46fc538539094c7" + dependencies: + extend "~3.0.0" + semver "~5.0.1" + +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-keywords@^3.1.0: + version "3.2.0" + resolved "http://registry.npm.taobao.org/ajv-keywords/download/ajv-keywords-3.2.0.tgz#e86b819c602cf8821ad637413698f1dec021847a" + +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.2.3, ajv@^5.3.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" + +ajv@^6.1.0: + version "6.5.2" + resolved "http://registry.npm.taobao.org/ajv/download/ajv-6.5.2.tgz#678495f9b82f7cca6be248dd92f59bff5e1f4360" + dependencies: + fast-deep-equal "^2.0.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.1" + +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-escapes@^3.0.0: + version "3.1.0" + resolved "http://registry.npm.taobao.org/ansi-escapes/download/ansi-escapes-3.1.0.tgz#f73207bb81207d75fd6c83f125af26eea378ca30" + +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@^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.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.2.0, ansi-styles@^3.2.1: + version "3.2.1" + resolved "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + dependencies: + color-convert "^1.9.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" + +append-transform@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/append-transform/download/append-transform-1.0.0.tgz#046a52ae582a228bd72f58acfbe2967c678759ab" + dependencies: + default-require-extensions "^2.0.0" + +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" + +are-we-there-yet@~1.1.2: + version "1.1.5" + resolved "http://registry.npm.taobao.org/are-we-there-yet/download/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.6" + +argparse@^1.0.7: + version "1.0.10" + resolved "http://registry.npm.taobao.org/argparse/download/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + 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-equal@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/array-equal/download/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" + +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-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" + +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" + +asn1.js@^4.0.0: + version "4.10.1" + resolved "http://registry.npm.taobao.org/asn1.js/download/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" + 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.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/assertion-error/download/assertion-error-1.0.0.tgz#c7f85438fdd466bc7ca16ab90c81513797a5d23b" + +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.x.x: + version "0.11.5" + resolved "http://registry.npm.taobao.org/ast-types/download/ast-types-0.11.5.tgz#9890825d660c03c28339f315e9fa0a360e31ec28" + +astral-regex@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/astral-regex/download/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" + +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-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-limiter@~1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/async-limiter/download/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" + +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@^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.1.2, async@^2.1.4, async@^2.4.1: + version "2.6.1" + resolved "http://registry.npm.taobao.org/async/download/async-2.6.1.tgz#b245a23ca71930044ec53fa46aa00a3e87c6a610" + dependencies: + lodash "^4.17.10" + +asynckit@^0.4.0: + version "0.4.0" + resolved "http://registry.npm.taobao.org/asynckit/download/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + +atob@^2.1.1: + version "2.1.1" + resolved "http://registry.npm.taobao.org/atob/download/atob-2.1.1.tgz#ae2d5a729477f289d60dd7f96a6314a22dd6c22a" + +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" + +autoprefixer@^7.1.2: + version "7.2.6" + resolved "http://registry.npm.taobao.org/autoprefixer/download/autoprefixer-7.2.6.tgz#256672f86f7c735da849c4f07d008abb056067dc" + dependencies: + browserslist "^2.11.3" + caniuse-lite "^1.0.30000805" + normalize-range "^0.1.2" + num2fraction "^1.2.2" + postcss "^6.0.17" + 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.7.0" + resolved "http://registry.npm.taobao.org/aws4/download/aws4-1.7.0.tgz#d4d0e9b9dbfca77bf08eeb0a8a471550fe39e289" + +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.0.0, babel-core@^6.22.1, babel-core@^6.25.0, babel-core@^6.26.0: + version "6.26.3" + resolved "http://registry.npm.taobao.org/babel-core/download/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" + dependencies: + babel-code-frame "^6.26.0" + babel-generator "^6.26.0" + babel-helpers "^6.24.1" + babel-messages "^6.23.0" + babel-register "^6.26.0" + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + convert-source-map "^1.5.1" + debug "^2.6.9" + json5 "^0.5.1" + lodash "^4.17.4" + minimatch "^3.0.4" + path-is-absolute "^1.0.1" + private "^0.1.8" + slash "^1.0.0" + source-map "^0.5.7" + +babel-eslint@^8.2.1: + version "8.2.5" + resolved "http://registry.npm.taobao.org/babel-eslint/download/babel-eslint-8.2.5.tgz#dc2331c259d36782aa189da510c43dedd5adc7a3" + dependencies: + "@babel/code-frame" "7.0.0-beta.44" + "@babel/traverse" "7.0.0-beta.44" + "@babel/types" "7.0.0-beta.44" + babylon "7.0.0-beta.44" + eslint-scope "~3.7.1" + eslint-visitor-keys "^1.0.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-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-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-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-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-vue-jsx-merge-props@^2.0.0, babel-helper-vue-jsx-merge-props@^2.0.2, babel-helper-vue-jsx-merge-props@^2.0.3: + 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-jest@^21.0.2: + version "21.2.0" + resolved "http://registry.npm.taobao.org/babel-jest/download/babel-jest-21.2.0.tgz#2ce059519a9374a2c46f2455b6fbef5ad75d863e" + dependencies: + babel-plugin-istanbul "^4.0.0" + babel-preset-jest "^21.2.0" + +babel-jest@^22.4.4: + version "22.4.4" + resolved "http://registry.npm.taobao.org/babel-jest/download/babel-jest-22.4.4.tgz#977259240420e227444ebe49e226a61e49ea659d" + dependencies: + babel-plugin-istanbul "^4.1.5" + babel-preset-jest "^22.4.4" + +babel-loader@^7.1.1: + version "7.1.5" + resolved "http://registry.npm.taobao.org/babel-loader/download/babel-loader-7.1.5.tgz#e3ee0cd7394aa557e013b02d3e492bfd07aa6d68" + 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-dynamic-import-node@^1.2.0: + version "1.2.0" + resolved "http://registry.npm.taobao.org/babel-plugin-dynamic-import-node/download/babel-plugin-dynamic-import-node-1.2.0.tgz#f91631e703e0595e47d4beafbb088576c87fbeee" + dependencies: + babel-plugin-syntax-dynamic-import "^6.18.0" + +babel-plugin-istanbul@^4.0.0, babel-plugin-istanbul@^4.1.5: + version "4.1.6" + resolved "http://registry.npm.taobao.org/babel-plugin-istanbul/download/babel-plugin-istanbul-4.1.6.tgz#36c59b2192efce81c5b378321b74175add1c9a45" + dependencies: + babel-plugin-syntax-object-rest-spread "^6.13.0" + find-up "^2.1.0" + istanbul-lib-instrument "^1.10.1" + test-exclude "^4.2.1" + +babel-plugin-jest-hoist@^21.2.0: + version "21.2.0" + resolved "http://registry.npm.taobao.org/babel-plugin-jest-hoist/download/babel-plugin-jest-hoist-21.2.0.tgz#2cef637259bd4b628a6cace039de5fcd14dbb006" + +babel-plugin-jest-hoist@^22.4.4: + version "22.4.4" + resolved "http://registry.npm.taobao.org/babel-plugin-jest-hoist/download/babel-plugin-jest-hoist-22.4.4.tgz#b9851906eab34c7bf6f8c895a2b08bea1a844c0b" + +babel-plugin-jsx-event-modifiers@^2.0.2: + version "2.0.5" + resolved "http://registry.npm.taobao.org/babel-plugin-jsx-event-modifiers/download/babel-plugin-jsx-event-modifiers-2.0.5.tgz#93e6ebb5d7553bb08f9fedbf7a0bee3af09a0472" + +babel-plugin-jsx-v-model@^2.0.1: + version "2.0.3" + resolved "http://registry.npm.taobao.org/babel-plugin-jsx-v-model/download/babel-plugin-jsx-v-model-2.0.3.tgz#c396416b99cb1af782087315ae1d3e62e070f47d" + dependencies: + babel-plugin-syntax-jsx "^6.18.0" + html-tags "^2.0.0" + svg-tags "^1.0.0" + +babel-plugin-jsx-vue-functional@^2.1.0: + version "2.1.0" + resolved "http://registry.npm.taobao.org/babel-plugin-jsx-vue-functional/download/babel-plugin-jsx-vue-functional-2.1.0.tgz#5630a0c86fe1904d28c30465e6bf1cf71235a239" + +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-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-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-jsx@^6.18.0: + version "6.18.0" + resolved "http://registry.npm.taobao.org/babel-plugin-syntax-jsx/download/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" + +babel-plugin-syntax-object-rest-spread@^6.13.0, 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-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-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, babel-plugin-transform-es2015-modules-commonjs@^6.26.0: + version "6.26.2" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-modules-commonjs/download/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz#58a793863a9e7ca870bdc5a881117ffac27db6f3" + 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-object-rest-spread@^6.22.0, babel-plugin-transform-object-rest-spread@^6.26.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-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-runtime@^6.15.0, babel-plugin-transform-runtime@^6.22.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-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-vue-jsx@^3.5.0: + version "3.7.0" + resolved "http://registry.npm.taobao.org/babel-plugin-transform-vue-jsx/download/babel-plugin-transform-vue-jsx-3.7.0.tgz#d40492e6692a36b594f7e9a1928f43e969740960" + dependencies: + esutils "^2.0.2" + +babel-preset-env@^1.3.2, babel-preset-env@^1.6.0: + version "1.7.0" + resolved "http://registry.npm.taobao.org/babel-preset-env/download/babel-preset-env-1.7.0.tgz#dea79fa4ebeb883cd35dab07e260c1c9c04df77a" + 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 "^3.2.6" + invariant "^2.2.2" + semver "^5.3.0" + +babel-preset-jest@^21.2.0: + version "21.2.0" + resolved "http://registry.npm.taobao.org/babel-preset-jest/download/babel-preset-jest-21.2.0.tgz#ff9d2bce08abd98e8a36d9a8a5189b9173b85638" + dependencies: + babel-plugin-jest-hoist "^21.2.0" + babel-plugin-syntax-object-rest-spread "^6.13.0" + +babel-preset-jest@^22.4.4: + version "22.4.4" + resolved "http://registry.npm.taobao.org/babel-preset-jest/download/babel-preset-jest-22.4.4.tgz#ec9fbd8bcd7dfd24b8b5320e0e688013235b7c39" + dependencies: + babel-plugin-jest-hoist "^22.4.4" + babel-plugin-syntax-object-rest-spread "^6.13.0" + +babel-preset-stage-2@^6.22.0: + 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-preset-vue-app@^1.3.1: + version "1.3.2" + resolved "http://registry.npm.taobao.org/babel-preset-vue-app/download/babel-preset-vue-app-1.3.2.tgz#53e98ac012a4edd3f8356cc6aafa000a6e980292" + dependencies: + babel-plugin-syntax-dynamic-import "^6.18.0" + babel-plugin-transform-object-rest-spread "^6.26.0" + babel-plugin-transform-runtime "^6.15.0" + babel-preset-env "^1.6.0" + babel-preset-vue "^1.2.1" + babel-runtime "^6.20.0" + +babel-preset-vue@^1.2.1: + version "1.2.1" + resolved "http://registry.npm.taobao.org/babel-preset-vue/download/babel-preset-vue-1.2.1.tgz#b0de8977e0ce981fc6824cf0a537917a02a6fe87" + dependencies: + babel-helper-vue-jsx-merge-props "^2.0.2" + babel-plugin-jsx-event-modifiers "^2.0.2" + babel-plugin-jsx-v-model "^2.0.1" + babel-plugin-jsx-vue-functional "^2.1.0" + babel-plugin-syntax-jsx "^6.18.0" + babel-plugin-transform-vue-jsx "^3.5.0" + +babel-register@^6.22.0, 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.x, babel-runtime@^6.18.0, babel-runtime@^6.20.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.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.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" + +babylon@7.0.0-beta.44: + version "7.0.0-beta.44" + resolved "http://registry.npm.taobao.org/babylon/download/babylon-7.0.0-beta.44.tgz#89159e15e6e30c5096e22d738d8c0af8a0e8ca1d" + +babylon@^6.18.0: + version "6.18.0" + resolved "http://registry.npm.taobao.org/babylon/download/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" + +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-js@^1.0.2: + version "1.3.0" + resolved "http://registry.npm.taobao.org/base64-js/download/base64-js-1.3.0.tgz#cab1e6118f051095e58b5281aea8c1cd22bfc0e3" + +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.2" + resolved "http://registry.npm.taobao.org/bcrypt-pbkdf/download/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + dependencies: + tweetnacl "^0.14.3" + +bfj-node4@^5.2.0: + version "5.3.1" + resolved "http://registry.npm.taobao.org/bfj-node4/download/bfj-node4-5.3.1.tgz#e23d8b27057f1d0214fc561142ad9db998f26830" + dependencies: + bluebird "^3.5.1" + check-types "^7.3.0" + tryer "^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" + +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@^3.0.5, bluebird@^3.1.1, bluebird@^3.4.7, 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: + 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" + +brace-expansion@^1.0.0, brace-expansion@^1.1.7: + version "1.1.11" + resolved "http://registry.npm.taobao.org/brace-expansion/download/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +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, braces@^2.3.1: + version "2.3.2" + resolved "http://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + dependencies: + arr-flatten "^1.1.0" + array-unique "^0.3.2" + 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-process-hrtime@^0.1.2: + version "0.1.2" + resolved "http://registry.npm.taobao.org/browser-process-hrtime/download/browser-process-hrtime-0.1.2.tgz#425d68a58d3447f02a04aa894187fce8af8b7b8e" + +browser-resolve@^1.11.2: + version "1.11.3" + resolved "http://registry.npm.taobao.org/browser-resolve/download/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6" + dependencies: + resolve "1.1.7" + +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.2.0" + resolved "http://registry.npm.taobao.org/browserify-aes/download/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + 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.1" + resolved "http://registry.npm.taobao.org/browserify-cipher/download/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + +browserify-des@^1.0.0: + version "1.0.1" + resolved "http://registry.npm.taobao.org/browserify-des/download/browserify-des-1.0.1.tgz#3343124db6d7ad53e26a8826318712bdc8450f9c" + 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.11.3: + 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" + +browserslist@^3.2.6: + version "3.2.8" + resolved "http://registry.npm.taobao.org/browserslist/download/browserslist-3.2.8.tgz#b0005361d6471f0f5952797a76fc985f1f978fc6" + dependencies: + caniuse-lite "^1.0.30000844" + electron-to-chromium "^1.3.47" + +bser@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/bser/download/bser-2.0.0.tgz#9ac78d3ed5d915804fd87acb158bc797147a1719" + dependencies: + node-int64 "^0.4.0" + +buffer-from@^1.0.0: + version "1.1.0" + resolved "http://registry.npm.taobao.org/buffer-from/download/buffer-from-1.1.0.tgz#87fcaa3a298358e0ade6e442cfce840740d1ad04" + +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" + +builtin-modules@^1.0.0: + 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.4: + version "10.0.4" + resolved "http://registry.npm.taobao.org/cacache/download/cacache-10.0.4.tgz#6452367999eff9d4188aefd9a14e9d7c6a263460" + dependencies: + bluebird "^3.5.1" + chownr "^1.0.1" + glob "^7.1.2" + graceful-fs "^4.1.11" + lru-cache "^4.1.1" + mississippi "^2.0.0" + mkdirp "^0.5.1" + move-concurrently "^1.0.1" + promise-inflight "^1.0.1" + rimraf "^2.6.2" + ssri "^5.2.4" + unique-filename "^1.1.0" + y18n "^4.0.0" + +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" + +callsites@^0.2.0: + version "0.2.0" + resolved "http://registry.npm.taobao.org/callsites/download/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" + +callsites@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/callsites/download/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" + +camel-case@3.0.x: + 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.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.30000865" + resolved "http://registry.npm.taobao.org/caniuse-db/download/caniuse-db-1.0.30000865.tgz#82ffb64d40f7567620aac02d3a632079689abc6b" + +caniuse-lite@^1.0.30000792, caniuse-lite@^1.0.30000805, caniuse-lite@^1.0.30000844: + version "1.0.30000865" + resolved "http://registry.npm.taobao.org/caniuse-lite/download/caniuse-lite-1.0.30000865.tgz#70026616e8afe6e1442f8bb4e1092987d81a2f25" + +capture-exit@^1.2.0: + version "1.2.0" + resolved "http://registry.npm.taobao.org/capture-exit/download/capture-exit-1.2.0.tgz#1c5fcc489fd0ab00d4f1ac7ae1072e3173fbab6f" + dependencies: + rsvp "^3.3.3" + +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" + +chai-nightwatch@~0.1.x: + version "0.1.1" + resolved "http://registry.npm.taobao.org/chai-nightwatch/download/chai-nightwatch-0.1.1.tgz#1ca56de768d3c0868fe7fc2f4d32c2fe894e6be9" + dependencies: + assertion-error "1.0.0" + deep-eql "0.1.3" + +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, chalk@^2.4.1: + version "2.4.1" + resolved "http://registry.npm.taobao.org/chalk/download/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e" + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chardet@^0.4.0: + version "0.4.2" + resolved "http://registry.npm.taobao.org/chardet/download/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" + +check-types@^7.3.0: + version "7.4.0" + resolved "http://registry.npm.taobao.org/check-types/download/check-types-7.4.0.tgz#0378ec1b9616ec71f774931a3c6516fad8c152f4" + +chokidar@^2.0.0, chokidar@^2.0.2: + version "2.0.4" + resolved "http://registry.npm.taobao.org/chokidar/download/chokidar-2.0.4.tgz#356ff4e2b0e8e43e322d18a372460bbcf3accd26" + 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" + lodash.debounce "^4.0.8" + normalize-path "^2.1.1" + path-is-absolute "^1.0.0" + readdirp "^2.0.0" + upath "^1.0.5" + optionalDependencies: + fsevents "^1.2.2" + +chownr@^1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/chownr/download/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181" + +ci-info@^1.0.0: + version "1.1.3" + resolved "http://registry.npm.taobao.org/ci-info/download/ci-info-1.1.3.tgz#710193264bb05c77b8c90d02f5aaf22216a667b2" + +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@4.1.x: + version "4.1.11" + resolved "http://registry.npm.taobao.org/clean-css/download/clean-css-4.1.11.tgz#2ecdf145aba38f54740f26cefd0ff3e03e125d6a" + dependencies: + source-map "0.5.x" + +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-spinners@^1.0.1: + version "1.3.1" + resolved "http://registry.npm.taobao.org/cli-spinners/download/cli-spinners-1.3.1.tgz#002c1990912d0d59580c93bd36c056de99e4259a" + +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.1.0" + resolved "http://registry.npm.taobao.org/cliui/download/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" + dependencies: + string-width "^2.1.1" + strip-ansi "^4.0.0" + wrap-ansi "^2.0.0" + +clone-deep@^2.0.1: + version "2.0.2" + resolved "http://registry.npm.taobao.org/clone-deep/download/clone-deep-2.0.2.tgz#00db3a1e173656730d1188c3d6aced6d7ea97713" + dependencies: + for-own "^1.0.0" + is-plain-object "^2.0.4" + kind-of "^6.0.0" + shallow-clone "^1.0.0" + +clone@2.x: + version "2.1.2" + resolved "http://registry.npm.taobao.org/clone/download/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" + +clone@^1.0.2: + version "1.0.4" + resolved "http://registry.npm.taobao.org/clone/download/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + +co@^4.6.0: + version "4.6.0" + resolved "http://registry.npm.taobao.org/co/download/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + +co@~3.0.6: + version "3.0.6" + resolved "http://registry.npm.taobao.org/co/download/co-3.0.6.tgz#1445f226c5eb956138e68c9ac30167ea7d2e6bda" + +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" + +codemirror@^5.32.0, codemirror@^5.39.0: + version "5.39.0" + resolved "http://registry.npm.taobao.org/codemirror/download/codemirror-5.39.0.tgz#4654f7d2f7e525e04a62e72d9482348ccb37dce5" + +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.2" + resolved "http://registry.npm.taobao.org/color-convert/download/color-convert-1.9.2.tgz#49881b8fba67df12a96bdf3f56c0aab9e7913147" + dependencies: + color-name "1.1.1" + +color-name@1.1.1: + version "1.1.1" + resolved "http://registry.npm.taobao.org/color-name/download/color-name-1.1.1.tgz#4b1415304cf50028ea81643643bd82ea05803689" + +color-name@^1.0.0: + 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.2: + version "1.1.2" + resolved "http://registry.npm.taobao.org/colors/download/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" + +combined-stream@1.0.6, combined-stream@^1.0.5, combined-stream@~1.0.5: + version "1.0.6" + resolved "http://registry.npm.taobao.org/combined-stream/download/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818" + dependencies: + delayed-stream "~1.0.0" + +commander@2.16.x, commander@^2.13.0, commander@^2.9.0, commander@~2.16.0: + version "2.16.0" + resolved "http://registry.npm.taobao.org/commander/download/commander-2.16.0.tgz#f16390593996ceb4f3eeb020b31d78528f7f8a50" + +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.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-versions@^3.1.0: + version "3.3.0" + resolved "http://registry.npm.taobao.org/compare-versions/download/compare-versions-3.3.0.tgz#af93ea705a96943f622ab309578b9b90586f39c3" + +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" + +compressible@~2.0.13: + version "2.0.14" + resolved "http://registry.npm.taobao.org/compressible/download/compressible-2.0.14.tgz#326c5f507fbb055f54116782b969a81b67a29da7" + dependencies: + mime-db ">= 1.34.0 < 2" + +compression@^1.5.2: + version "1.7.2" + resolved "http://registry.npm.taobao.org/compression/download/compression-1.7.2.tgz#aaffbcd6aaf854b44ebb280353d5ad1651f59a69" + dependencies: + accepts "~1.3.4" + bytes "3.0.0" + compressible "~2.0.13" + 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.5.0, concat-stream@^1.6.0: + version "1.6.2" + resolved "http://registry.npm.taobao.org/concat-stream/download/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +condense-newlines@^0.2.1: + version "0.2.1" + resolved "http://registry.npm.taobao.org/condense-newlines/download/condense-newlines-0.2.1.tgz#3de985553139475d32502c83b02f60684d24c55f" + dependencies: + extend-shallow "^2.0.1" + is-whitespace "^0.3.0" + kind-of "^3.0.2" + +config-chain@~1.1.5: + version "1.1.11" + resolved "http://registry.npm.taobao.org/config-chain/download/config-chain-1.1.11.tgz#aba09747dfbe4c3e70e766a6e41586e1859fc6f2" + dependencies: + ini "^1.3.4" + proto-list "~1.2.1" + +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" + +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" + +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.4.0, convert-source-map@^1.5.1: + version "1.5.1" + resolved "http://registry.npm.taobao.org/convert-source-map/download/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5" + +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.5.2" + resolved "http://registry.npm.taobao.org/copy-webpack-plugin/download/copy-webpack-plugin-4.5.2.tgz#d53444a8fea2912d806e78937390ddd7e632ee5c" + dependencies: + cacache "^10.0.4" + find-cache-dir "^1.0.0" + globby "^7.1.1" + is-glob "^4.0.0" + loader-utils "^1.1.0" + minimatch "^3.0.4" + p-limit "^1.0.0" + serialize-javascript "^1.4.0" + +core-js@^2.4.0, core-js@^2.5.0: + version "2.5.7" + resolved "http://registry.npm.taobao.org/core-js/download/core-js-2.5.7.tgz#f972608ff0cead68b841a16a932d0b183791814e" + +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" + +cosmiconfig@^4.0.0: + version "4.0.0" + resolved "http://registry.npm.taobao.org/cosmiconfig/download/cosmiconfig-4.0.0.tgz#760391549580bbd2df1e562bc177b13c290972dc" + dependencies: + is-directory "^0.3.1" + js-yaml "^3.9.0" + parse-json "^4.0.0" + require-from-string "^2.0.1" + +create-ecdh@^4.0.0: + version "4.0.3" + resolved "http://registry.npm.taobao.org/create-ecdh/download/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" + dependencies: + bn.js "^4.1.0" + elliptic "^6.0.0" + +create-hash@^1.1.0, create-hash@^1.1.2: + version "1.2.0" + resolved "http://registry.npm.taobao.org/create-hash/download/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + md5.js "^1.3.4" + ripemd160 "^2.0.1" + sha.js "^2.4.0" + +create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: + version "1.1.7" + resolved "http://registry.npm.taobao.org/create-hmac/download/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + 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-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" + +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" + +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" + +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.11: + version "0.28.11" + resolved "http://registry.npm.taobao.org/css-loader/download/css-loader-0.28.11.tgz#c3f9864a700be2711bb5a2462b2389b1a392dab7" + 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-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-what@2.1: + version "2.1.0" + resolved "http://registry.npm.taobao.org/css-what/download/css-what-2.1.0.tgz#9467d032c38cfaefb9f2d79501253062f87fa1bd" + +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, cssnano@^3.4.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" + +cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0": + version "0.3.4" + resolved "http://registry.npm.taobao.org/cssom/download/cssom-0.3.4.tgz#8cd52e8a3acfd68d3aed38ee0a640177d2f9d797" + +"cssstyle@>= 0.3.1 < 0.4.0": + version "0.3.1" + resolved "http://registry.npm.taobao.org/cssstyle/download/cssstyle-0.3.1.tgz#6da9b4cff1bc5d716e6e5fe8e04fcb1b50a49adf" + dependencies: + cssom "0.3.x" + +cuint@^0.2.2: + version "0.2.2" + resolved "http://registry.npm.taobao.org/cuint/download/cuint-0.2.2.tgz#408086d409550c2631155619e9fa7bcadc3b991b" + +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" + +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" + +data-uri-to-buffer@1: + version "1.2.0" + resolved "http://registry.npm.taobao.org/data-uri-to-buffer/download/data-uri-to-buffer-1.2.0.tgz#77163ea9c20d8641b4707e8f18abdf9a78f34835" + +data-urls@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/data-urls/download/data-urls-1.0.0.tgz#24802de4e81c298ea8a9388bb0d8e461c774684f" + dependencies: + abab "^1.0.4" + whatwg-mimetype "^2.0.0" + whatwg-url "^6.4.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" + +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, debug@2.6.9, debug@^2.1.2, 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@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@^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@0.1.3: + version "0.1.3" + resolved "http://registry.npm.taobao.org/deep-eql/download/deep-eql-0.1.3.tgz#ef558acab8de25206cd713906d74e56930eb69f2" + dependencies: + type-detect "0.1.1" + +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.6.0: + version "0.6.0" + resolved "http://registry.npm.taobao.org/deep-extend/download/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + +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" + +default-require-extensions@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/default-require-extensions/download/default-require-extensions-2.0.0.tgz#f5f8fbb18a7d6d50b21f641f649ebb522cfe24f7" + dependencies: + strip-bom "^3.0.0" + +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" + +define-property@^2.0.2: + version "2.0.2" + resolved "http://registry.npm.taobao.org/define-property/download/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + +defined@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/defined/download/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" + +degenerator@~1.0.2: + version "1.0.4" + resolved "http://registry.npm.taobao.org/degenerator/download/degenerator-1.0.4.tgz#fcf490a37ece266464d9cc431ab98c5819ced095" + dependencies: + ast-types "0.x.x" + escodegen "1.x.x" + esprima "3.x.x" + +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, depd@~1.1.2: + 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-newline@^2.1.0: + version "2.1.0" + resolved "http://registry.npm.taobao.org/detect-newline/download/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" + +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" + +diff-match-patch@^1.0.0: + version "1.0.1" + resolved "http://registry.npm.taobao.org/diff-match-patch/download/diff-match-patch-1.0.1.tgz#d5f880213d82fbc124d2b95111fb3c033dbad7fa" + +diff@1.4.0: + version "1.4.0" + resolved "http://registry.npm.taobao.org/diff/download/diff-1.4.0.tgz#7f28d2eb9ee7b15a97efd89ce63dcfdaa3ccbabf" + +diff@^3.2.0: + version "3.5.0" + resolved "http://registry.npm.taobao.org/diff/download/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" + +diffie-hellman@^5.0.0: + version "5.0.3" + resolved "http://registry.npm.taobao.org/diffie-hellman/download/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" + 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" + +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-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: + 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" + +domexception@^1.0.0: + version "1.0.1" + resolved "http://registry.npm.taobao.org/domexception/download/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" + dependencies: + webidl-conversions "^4.0.2" + +domhandler@2.1: + version "2.1.0" + resolved "http://registry.npm.taobao.org/domhandler/download/domhandler-2.1.0.tgz#d2646f5e57f6c3bab11cf6cb05d3c0acf7412594" + 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" + +duplexer@^0.1.1: + version "0.1.1" + resolved "http://registry.npm.taobao.org/duplexer/download/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" + +duplexify@^3.4.2, duplexify@^3.6.0: + version "3.6.0" + resolved "http://registry.npm.taobao.org/duplexify/download/duplexify-3.6.0.tgz#592903f5d80b38d037220541264d69a198fb3410" + 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" + +editorconfig@^0.13.2: + version "0.13.3" + resolved "http://registry.npm.taobao.org/editorconfig/download/editorconfig-0.13.3.tgz#e5219e587951d60958fd94ea9a9a008cdeff1b34" + dependencies: + bluebird "^3.0.5" + commander "^2.9.0" + lru-cache "^3.2.0" + semver "^5.1.0" + sigmund "^1.0.1" + +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: + version "2.5.7" + resolved "http://registry.npm.taobao.org/ejs/download/ejs-2.5.7.tgz#cc872c168880ae3c7189762fd5ffc00896c9518a" + +ejs@^2.5.7: + version "2.6.1" + resolved "http://registry.npm.taobao.org/ejs/download/ejs-2.6.1.tgz#498ec0d495655abc6f23cd61868d926464071aa0" + +electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.30, electron-to-chromium@^1.3.47: + version "1.3.52" + resolved "http://registry.npm.taobao.org/electron-to-chromium/download/electron-to-chromium-1.3.52.tgz#d2d9f1270ba4a3b967b831c40ef71fb4d9ab5ce0" + +element-ui@^2.4.3: + version "2.4.3" + resolved "http://registry.npm.taobao.org/element-ui/download/element-ui-2.4.3.tgz#17a09ba6332b17a90002d86070697dcdb88fe0a5" + dependencies: + async-validator "~1.8.1" + babel-helper-vue-jsx-merge-props "^2.0.0" + deepmerge "^1.2.0" + normalize-wheel "^1.0.1" + resize-observer-polyfill "^1.5.0" + 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.2: + version "1.0.2" + resolved "http://registry.npm.taobao.org/encodeurl/download/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + +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" + +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" + +entities@~1.1.1: + version "1.1.1" + resolved "http://registry.npm.taobao.org/entities/download/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" + +errno@^0.1.3, errno@~0.1.7: + version "0.1.7" + resolved "http://registry.npm.taobao.org/errno/download/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" + dependencies: + prr "~1.0.1" + +error-ex@^1.2.0, error-ex@^1.3.1: + version "1.3.2" + resolved "http://registry.npm.taobao.org/error-ex/download/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + dependencies: + is-arrayish "^0.2.1" + +error-stack-parser@^2.0.0: + version "2.0.2" + resolved "http://registry.npm.taobao.org/error-stack-parser/download/error-stack-parser-2.0.2.tgz#4ae8dbaa2bf90a8b450707b9149dcabca135520d" + dependencies: + stackframe "^1.0.4" + +es-abstract@^1.5.1, es-abstract@^1.7.0: + version "1.12.0" + resolved "http://registry.npm.taobao.org/es-abstract/download/es-abstract-1.12.0.tgz#9dbbdd27c6856f0001421ca18782d786bf8a6165" + 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.45" + resolved "http://registry.npm.taobao.org/es5-ext/download/es5-ext-0.10.45.tgz#0bfdf7b473da5919d5adf3bd25ceb754fccc3653" + dependencies: + es6-iterator "~2.0.3" + es6-symbol "~3.1.1" + next-tick "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-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-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.x.x, escodegen@^1.9.0: + version "1.10.0" + resolved "http://registry.npm.taobao.org/escodegen/download/escodegen-1.10.0.tgz#f647395de22519fbd0d928ffcf1d17e0dec2603e" + dependencies: + esprima "^3.1.3" + estraverse "^4.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + +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.7.1: + 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.2.0: + version "2.2.0" + resolved "http://registry.npm.taobao.org/eslint-module-utils/download/eslint-module-utils-2.2.0.tgz#b270362cd88b1a48ad308976ce7fa54e98411746" + dependencies: + debug "^2.6.8" + pkg-dir "^1.0.0" + +eslint-plugin-import@^2.7.0: + version "2.13.0" + resolved "http://registry.npm.taobao.org/eslint-plugin-import/download/eslint-plugin-import-2.13.0.tgz#df24f241175e312d91662dc91ca84064caec14ed" + dependencies: + contains-path "^0.1.0" + debug "^2.6.8" + doctrine "1.5.0" + eslint-import-resolver-node "^0.3.1" + eslint-module-utils "^2.2.0" + has "^1.0.1" + lodash "^4.17.4" + minimatch "^3.0.3" + read-pkg-up "^2.0.0" + resolve "^1.6.0" + +eslint-plugin-node@^5.2.0: + 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.4.0: + version "3.8.0" + resolved "http://registry.npm.taobao.org/eslint-plugin-promise/download/eslint-plugin-promise-3.8.0.tgz#65ebf27a845e3c1e9d6f6a5622ddd3801694b621" + +eslint-plugin-standard@^3.0.1: + version "3.1.0" + resolved "http://registry.npm.taobao.org/eslint-plugin-standard/download/eslint-plugin-standard-3.1.0.tgz#2a9e21259ba4c47c02d53b2d0c9135d4b1022d47" + +eslint-plugin-vue@^4.0.0: + version "4.5.0" + resolved "http://registry.npm.taobao.org/eslint-plugin-vue/download/eslint-plugin-vue-4.5.0.tgz#09d6597f4849e31a3846c2c395fccf17685b69c3" + dependencies: + vue-eslint-parser "^2.0.3" + +eslint-scope@^3.7.1, 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.15.0: + version "4.19.1" + resolved "http://registry.npm.taobao.org/eslint/download/eslint-4.19.1.tgz#32d1d653e1d90408854bfb296f076ec7e186a300" + 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.4" + 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" + regexpp "^1.0.1" + require-uncached "^1.0.3" + semver "^5.3.0" + strip-ansi "^4.0.0" + strip-json-comments "~2.0.1" + table "4.0.2" + text-table "~0.2.0" + +espree@^3.5.2, espree@^3.5.4: + version "3.5.4" + resolved "http://registry.npm.taobao.org/espree/download/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7" + dependencies: + acorn "^5.5.0" + acorn-jsx "^3.0.0" + +esprima@3.x.x, esprima@^3.1.3: + version "3.1.3" + resolved "http://registry.npm.taobao.org/esprima/download/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" + +esprima@^2.6.0: + 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" + +esquery@^1.0.0: + version "1.0.1" + resolved "http://registry.npm.taobao.org/esquery/download/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708" + dependencies: + estraverse "^4.0.0" + +esrecurse@^4.1.0: + version "4.2.1" + resolved "http://registry.npm.taobao.org/esrecurse/download/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" + dependencies: + estraverse "^4.1.0" + +estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: + 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@^3.0.0: + version "3.1.0" + resolved "http://registry.npm.taobao.org/eventemitter3/download/eventemitter3-3.1.0.tgz#090b4d6cdbd645ed10bf750d4b5407942d7ba163" + +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" + +exec-sh@^0.2.0: + version "0.2.2" + resolved "http://registry.npm.taobao.org/exec-sh/download/exec-sh-0.2.2.tgz#2a5e7ffcbd7d0ba2755bdecb16e5a427dfbdec36" + dependencies: + merge "^1.2.0" + +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@^0.1.2: + version "0.1.2" + resolved "http://registry.npm.taobao.org/exit/download/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + +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@^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" + +expect@^22.4.0: + version "22.4.3" + resolved "http://registry.npm.taobao.org/expect/download/expect-22.4.3.tgz#d5a29d0a0e1fb2153557caef2674d4547e914674" + dependencies: + ansi-styles "^3.2.0" + jest-diff "^22.4.3" + jest-get-type "^22.4.3" + jest-matcher-utils "^22.4.3" + jest-message-util "^22.4.3" + jest-regex-util "^22.4.3" + +express@^4.16.2: + version "4.16.3" + resolved "http://registry.npm.taobao.org/express/download/express-4.16.3.tgz#6af8a502350db3246ecc4becf6b5a34d22f7ed53" + dependencies: + accepts "~1.3.5" + 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.2" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "1.1.1" + 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.3" + qs "6.5.1" + range-parser "~1.2.0" + safe-buffer "5.1.1" + send "0.16.2" + serve-static "1.13.2" + setprototypeof "1.1.0" + statuses "~1.4.0" + type-is "~1.6.16" + 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, extend-shallow@^3.0.2: + 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, 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.2.0" + resolved "http://registry.npm.taobao.org/external-editor/download/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5" + 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.4: + 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" + +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.1.0" + resolved "http://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" + +fast-deep-equal@^2.0.1: + version "2.0.1" + resolved "http://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" + +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.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" + +fb-watchman@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/fb-watchman/download/fb-watchman-2.0.0.tgz#54e9abf7dfa2f26cd9b1636c588c1afc05de5d58" + dependencies: + bser "^2.0.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@^1.1.4: + version "1.1.11" + resolved "http://registry.npm.taobao.org/file-loader/download/file-loader-1.1.11.tgz#6fe886449b0f2a936e43cabaac0cdbfb369506f8" + dependencies: + loader-utils "^1.0.2" + schema-utils "^0.4.5" + +file-uri-to-path@1: + version "1.0.0" + resolved "http://registry.npm.taobao.org/file-uri-to-path/download/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" + +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" + +fileset@^2.0.2: + version "2.0.3" + resolved "http://registry.npm.taobao.org/fileset/download/fileset-2.0.3.tgz#8e7548a96d3cc2327ee5e674168723a333bba2a0" + dependencies: + glob "^7.0.3" + minimatch "^3.0.3" + +filesize@^3.5.11: + version "3.6.1" + resolved "http://registry.npm.taobao.org/filesize/download/filesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317" + +fill-range@^2.1.0: + version "2.2.4" + resolved "http://registry.npm.taobao.org/fill-range/download/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565" + dependencies: + is-number "^2.1.0" + isobject "^2.0.0" + randomatic "^3.0.0" + 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.1.1: + version "1.1.1" + resolved "http://registry.npm.taobao.org/finalhandler/download/finalhandler-1.1.1.tgz#eebf4ed840079c83f4249038c9d703008301b105" + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.2" + statuses "~1.4.0" + unpipe "~1.0.0" + +find-babel-config@^1.1.0: + version "1.1.0" + resolved "http://registry.npm.taobao.org/find-babel-config/download/find-babel-config-1.1.0.tgz#acc01043a6749fec34429be6b64f542ebb5d6355" + dependencies: + json5 "^0.5.1" + path-exists "^3.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.3" + resolved "http://registry.npm.taobao.org/flush-write-stream/download/flush-write-stream-1.0.3.tgz#c5d586ef38af6097650b49bc41b55fabb19f35bd" + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.4" + +follow-redirects@^1.0.0: + version "1.5.1" + resolved "http://registry.npm.taobao.org/follow-redirects/download/follow-redirects-1.5.1.tgz#67a8f14f5a1f67f962c2c46469c79eaec0a90291" + 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.2" + resolved "http://registry.npm.taobao.org/form-data/download/form-data-2.3.2.tgz#4970498be604c20c005d4f5c23aecd21d6b49099" + dependencies: + asynckit "^0.4.0" + combined-stream "1.0.6" + 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" + +friendly-errors-webpack-plugin@^1.6.1: + version "1.7.0" + resolved "http://registry.npm.taobao.org/friendly-errors-webpack-plugin/download/friendly-errors-webpack-plugin-1.7.0.tgz#efc86cbb816224565861a1be7a9d84d0aafea136" + dependencies: + chalk "^1.1.3" + error-stack-parser "^2.0.0" + string-width "^2.0.0" + +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" + +fs-minipass@^1.2.5: + version "1.2.5" + resolved "http://registry.npm.taobao.org/fs-minipass/download/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d" + dependencies: + minipass "^2.2.1" + +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.2.2, fsevents@^1.2.3: + version "1.2.4" + resolved "http://registry.npm.taobao.org/fsevents/download/fsevents-1.2.4.tgz#f41dcb1af2582af3692da36fc55cbd8e1041c426" + dependencies: + nan "^2.9.2" + node-pre-gyp "^0.10.0" + +fstream@^1.0.0, 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" + +ftp@~0.3.10: + version "0.3.10" + resolved "http://registry.npm.taobao.org/ftp/download/ftp-0.3.10.tgz#9197d861ad8142f3e63d5a83bfe4c59f7330885d" + dependencies: + readable-stream "1.1.x" + xregexp "2.0.0" + +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: + version "1.1.3" + resolved "http://registry.npm.taobao.org/gaze/download/gaze-1.1.3.tgz#c441733e13b927ac8c0ff0b4c3b033f28812924a" + dependencies: + globule "^1.0.0" + +get-caller-file@^1.0.1: + version "1.0.3" + resolved "http://registry.npm.taobao.org/get-caller-file/download/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" + +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-uri@2: + version "2.0.2" + resolved "http://registry.npm.taobao.org/get-uri/download/get-uri-2.0.2.tgz#5c795e71326f6ca1286f2fc82575cd2bab2af578" + dependencies: + data-uri-to-buffer "1" + debug "2" + extend "3" + file-uri-to-path "1" + ftp "~0.3.10" + readable-stream "2" + +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" + +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.0.5: + version "7.0.5" + resolved "http://registry.npm.taobao.org/glob/download/glob-7.0.5.tgz#b4202a69099bbb4d292a7c1b95b6682b67ebdc95" + 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@^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" + +globals@^11.0.1, globals@^11.1.0: + version "11.7.0" + resolved "http://registry.npm.taobao.org/globals/download/globals-11.7.0.tgz#a583faa43055b1aca771914bf68258e2fc125673" + +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.1" + resolved "http://registry.npm.taobao.org/globule/download/globule-1.2.1.tgz#5dffb1b191f22d20797a9369b49eab4e9839696d" + dependencies: + glob "~7.1.1" + lodash "~4.17.10" + minimatch "~3.0.2" + +graceful-fs@^4.1.11, graceful-fs@^4.1.2: + 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" + +growly@^1.3.0: + version "1.3.0" + resolved "http://registry.npm.taobao.org/growly/download/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" + +gzip-size@^4.1.0: + version "4.1.0" + resolved "http://registry.npm.taobao.org/gzip-size/download/gzip-size-4.1.0.tgz#8ae096257eabe7d69c45be2b67c448124ffb517c" + dependencies: + duplexer "^0.1.1" + pify "^3.0.0" + +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.11: + 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@~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@^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-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-flag@^3.0.0: + version "3.0.0" + resolved "http://registry.npm.taobao.org/has-flag/download/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + +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.3" + resolved "http://registry.npm.taobao.org/has/download/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + dependencies: + function-bind "^1.1.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.5" + resolved "http://registry.npm.taobao.org/hash.js/download/hash.js-1.1.5.tgz#e38ab4b85dfb1e0c40fe9265c0e9b54854c23812" + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + +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" + +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" + +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" + +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" + +hosted-git-info@^2.1.4: + version "2.7.1" + resolved "http://registry.npm.taobao.org/hosted-git-info/download/hosted-git-info-2.7.1.tgz#97f236977bd6e125408930ff6de3eec6281ec047" + +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-encoding-sniffer@^1.0.2: + version "1.0.2" + resolved "http://registry.npm.taobao.org/html-encoding-sniffer/download/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" + dependencies: + whatwg-encoding "^1.0.1" + +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@^3.2.3: + version "3.5.18" + resolved "http://registry.npm.taobao.org/html-minifier/download/html-minifier-3.5.18.tgz#fc8b02826cbbafc6de19a103c41c830a91cffe5a" + dependencies: + camel-case "3.0.x" + clean-css "4.1.x" + commander "2.16.x" + he "1.1.x" + param-case "2.1.x" + relateurl "0.2.x" + uglify-js "3.4.x" + +html-tags@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/html-tags/download/html-tags-2.0.0.tgz#10b30a386085f43cede353cc8fa7cb0deeea668b" + +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.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: + 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-errors@1.6.3, http-errors@~1.6.2: + version "1.6.3" + resolved "http://registry.npm.taobao.org/http-errors/download/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + +http-parser-js@>=0.4.0: + version "0.4.13" + resolved "http://registry.npm.taobao.org/http-parser-js/download/http-parser-js-0.4.13.tgz#3bd6d6fde6e3172c9334c3b33b6c193d80fe1137" + +http-proxy-agent@1: + version "1.0.0" + resolved "http://registry.npm.taobao.org/http-proxy-agent/download/http-proxy-agent-1.0.0.tgz#cc1ce38e453bf984a0f7702d2dd59c73d081284a" + dependencies: + agent-base "2" + debug "2" + extend "3" + +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.16.2: + version "1.17.0" + resolved "http://registry.npm.taobao.org/http-proxy/download/http-proxy-1.17.0.tgz#7ad38494658f84605e2f6db4436df410f4e5be9a" + dependencies: + eventemitter3 "^3.0.0" + follow-redirects "^1.0.0" + requires-port "^1.0.0" + +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" + +https-proxy-agent@1: + version "1.0.0" + resolved "http://registry.npm.taobao.org/https-proxy-agent/download/https-proxy-agent-1.0.0.tgz#35f7da6c48ce4ddbfa264891ac593ee5ff8671e6" + dependencies: + agent-base "2" + debug "2" + extend "3" + +iconv-lite@0.4.19: + version "0.4.19" + resolved "http://registry.npm.taobao.org/iconv-lite/download/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" + +iconv-lite@0.4.23, iconv-lite@^0.4.17, iconv-lite@^0.4.4: + version "0.4.23" + resolved "http://registry.npm.taobao.org/iconv-lite/download/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63" + dependencies: + safer-buffer ">= 2.1.2 < 3" + +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.12" + resolved "http://registry.npm.taobao.org/ieee754/download/ieee754-1.1.12.tgz#50bf24e5b9c8bb98af4964c941cdb0918da7b60b" + +iferr@^0.1.5: + version "0.1.5" + resolved "http://registry.npm.taobao.org/iferr/download/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" + +ignore-walk@^3.0.1: + version "3.0.1" + resolved "http://registry.npm.taobao.org/ignore-walk/download/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8" + dependencies: + minimatch "^3.0.4" + +ignore@^3.3.3, ignore@^3.3.5, ignore@^3.3.6: + version "3.3.10" + resolved "http://registry.npm.taobao.org/ignore/download/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" + +import-cwd@^2.0.0: + version "2.1.0" + resolved "http://registry.npm.taobao.org/import-cwd/download/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" + dependencies: + import-from "^2.1.0" + +import-from@^2.1.0: + version "2.1.0" + resolved "http://registry.npm.taobao.org/import-from/download/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" + dependencies: + resolve-from "^3.0.0" + +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.0: + version "1.3.5" + resolved "http://registry.npm.taobao.org/ini/download/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" + +inquirer@^3.0.6: + 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.0, invariant@^2.2.2: + version "2.2.4" + resolved "http://registry.npm.taobao.org/invariant/download/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + 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.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/ip/download/ip-1.0.1.tgz#c7e356cdea225ae71b36d70f2e71a92ba4e42590" + +ip@^1.1.0, ip@^1.1.4, 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.6.0: + version "1.6.0" + resolved "http://registry.npm.taobao.org/ipaddr.js/download/ipaddr.js-1.6.0.tgz#e3fa357b773da619f26e95f049d055c72796f86b" + +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.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.4" + resolved "http://registry.npm.taobao.org/is-callable/download/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" + +is-ci@^1.0.10: + 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, is-descriptor@^1.0.2: + 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-generator-fn@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/is-generator-fn/download/is-generator-fn-1.0.0.tgz#969d49e1bb3329f6bb7f09089be26578b2ddd46a" + +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-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-number@^4.0.0: + version "4.0.0" + resolved "http://registry.npm.taobao.org/is-number/download/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" + +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.1" + resolved "http://registry.npm.taobao.org/is-path-in-cwd/download/is-path-in-cwd-1.0.1.tgz#5ac48b345ef675339bd6c7a48a912110b241cf52" + 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-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-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-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-whitespace@^0.3.0: + version "0.3.0" + resolved "http://registry.npm.taobao.org/is-whitespace/download/is-whitespace-0.3.0.tgz#1639ecb1be036aec69a54cbb401cfbed7114ab7f" + +is-windows@^1.0.2: + version "1.0.2" + resolved "http://registry.npm.taobao.org/is-windows/download/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + +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" + +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-api@^1.1.14: + version "1.3.6" + resolved "http://registry.npm.taobao.org/istanbul-api/download/istanbul-api-1.3.6.tgz#0c695f17e533131de8c49e0657175dcfd8af8a8f" + dependencies: + async "^2.1.4" + compare-versions "^3.1.0" + fileset "^2.0.2" + istanbul-lib-coverage "^1.2.0" + istanbul-lib-hook "^1.2.0" + istanbul-lib-instrument "^2.1.0" + istanbul-lib-report "^1.1.4" + istanbul-lib-source-maps "^1.2.5" + istanbul-reports "^1.4.1" + js-yaml "^3.7.0" + mkdirp "^0.5.1" + once "^1.4.0" + +istanbul-lib-coverage@^1.1.1, istanbul-lib-coverage@^1.2.0: + version "1.2.0" + resolved "http://registry.npm.taobao.org/istanbul-lib-coverage/download/istanbul-lib-coverage-1.2.0.tgz#f7d8f2e42b97e37fe796114cb0f9d68b5e3a4341" + +istanbul-lib-coverage@^2.0.1: + version "2.0.1" + resolved "http://registry.npm.taobao.org/istanbul-lib-coverage/download/istanbul-lib-coverage-2.0.1.tgz#2aee0e073ad8c5f6a0b00e0dfbf52b4667472eda" + +istanbul-lib-hook@^1.2.0: + version "1.2.1" + resolved "http://registry.npm.taobao.org/istanbul-lib-hook/download/istanbul-lib-hook-1.2.1.tgz#f614ec45287b2a8fc4f07f5660af787575601805" + dependencies: + append-transform "^1.0.0" + +istanbul-lib-instrument@^1.10.1, istanbul-lib-instrument@^1.8.0: + version "1.10.1" + resolved "http://registry.npm.taobao.org/istanbul-lib-instrument/download/istanbul-lib-instrument-1.10.1.tgz#724b4b6caceba8692d3f1f9d0727e279c401af7b" + 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.2.0" + semver "^5.3.0" + +istanbul-lib-instrument@^2.1.0: + version "2.3.1" + resolved "http://registry.npm.taobao.org/istanbul-lib-instrument/download/istanbul-lib-instrument-2.3.1.tgz#406406730a395acb2e50f0d98137ace16bd4a970" + dependencies: + "@babel/generator" "7.0.0-beta.51" + "@babel/parser" "7.0.0-beta.51" + "@babel/template" "7.0.0-beta.51" + "@babel/traverse" "7.0.0-beta.51" + "@babel/types" "7.0.0-beta.51" + istanbul-lib-coverage "^2.0.1" + semver "^5.5.0" + +istanbul-lib-report@^1.1.4: + version "1.1.4" + resolved "http://registry.npm.taobao.org/istanbul-lib-report/download/istanbul-lib-report-1.1.4.tgz#e886cdf505c4ebbd8e099e4396a90d0a28e2acb5" + dependencies: + istanbul-lib-coverage "^1.2.0" + mkdirp "^0.5.1" + path-parse "^1.0.5" + supports-color "^3.1.2" + +istanbul-lib-source-maps@^1.2.1, istanbul-lib-source-maps@^1.2.5: + version "1.2.5" + resolved "http://registry.npm.taobao.org/istanbul-lib-source-maps/download/istanbul-lib-source-maps-1.2.5.tgz#ffe6be4e7ab86d3603e4290d54990b14506fc9b1" + dependencies: + debug "^3.1.0" + istanbul-lib-coverage "^1.2.0" + mkdirp "^0.5.1" + rimraf "^2.6.1" + source-map "^0.5.3" + +istanbul-reports@^1.4.1: + version "1.5.0" + resolved "http://registry.npm.taobao.org/istanbul-reports/download/istanbul-reports-1.5.0.tgz#c6c2867fa65f59eb7dcedb7f845dfc76aaee70f9" + dependencies: + handlebars "^4.0.11" + +jest-changed-files@^22.2.0: + version "22.4.3" + resolved "http://registry.npm.taobao.org/jest-changed-files/download/jest-changed-files-22.4.3.tgz#8882181e022c38bd46a2e4d18d44d19d90a90fb2" + dependencies: + throat "^4.0.0" + +jest-cli@^22.4.4: + version "22.4.4" + resolved "http://registry.npm.taobao.org/jest-cli/download/jest-cli-22.4.4.tgz#68cd2a2aae983adb1e6638248ca21082fd6d9e90" + dependencies: + ansi-escapes "^3.0.0" + chalk "^2.0.1" + exit "^0.1.2" + glob "^7.1.2" + graceful-fs "^4.1.11" + import-local "^1.0.0" + is-ci "^1.0.10" + istanbul-api "^1.1.14" + istanbul-lib-coverage "^1.1.1" + istanbul-lib-instrument "^1.8.0" + istanbul-lib-source-maps "^1.2.1" + jest-changed-files "^22.2.0" + jest-config "^22.4.4" + jest-environment-jsdom "^22.4.1" + jest-get-type "^22.1.0" + jest-haste-map "^22.4.2" + jest-message-util "^22.4.0" + jest-regex-util "^22.1.0" + jest-resolve-dependencies "^22.1.0" + jest-runner "^22.4.4" + jest-runtime "^22.4.4" + jest-snapshot "^22.4.0" + jest-util "^22.4.1" + jest-validate "^22.4.4" + jest-worker "^22.2.2" + micromatch "^2.3.11" + node-notifier "^5.2.1" + realpath-native "^1.0.0" + rimraf "^2.5.4" + slash "^1.0.0" + string-length "^2.0.0" + strip-ansi "^4.0.0" + which "^1.2.12" + yargs "^10.0.3" + +jest-config@^22.4.4: + version "22.4.4" + resolved "http://registry.npm.taobao.org/jest-config/download/jest-config-22.4.4.tgz#72a521188720597169cd8b4ff86934ef5752d86a" + dependencies: + chalk "^2.0.1" + glob "^7.1.1" + jest-environment-jsdom "^22.4.1" + jest-environment-node "^22.4.1" + jest-get-type "^22.1.0" + jest-jasmine2 "^22.4.4" + jest-regex-util "^22.1.0" + jest-resolve "^22.4.2" + jest-util "^22.4.1" + jest-validate "^22.4.4" + pretty-format "^22.4.0" + +jest-diff@^22.4.0, jest-diff@^22.4.3: + version "22.4.3" + resolved "http://registry.npm.taobao.org/jest-diff/download/jest-diff-22.4.3.tgz#e18cc3feff0aeef159d02310f2686d4065378030" + dependencies: + chalk "^2.0.1" + diff "^3.2.0" + jest-get-type "^22.4.3" + pretty-format "^22.4.3" + +jest-docblock@^22.4.0, jest-docblock@^22.4.3: + version "22.4.3" + resolved "http://registry.npm.taobao.org/jest-docblock/download/jest-docblock-22.4.3.tgz#50886f132b42b280c903c592373bb6e93bb68b19" + dependencies: + detect-newline "^2.1.0" + +jest-environment-jsdom@^22.4.1: + version "22.4.3" + resolved "http://registry.npm.taobao.org/jest-environment-jsdom/download/jest-environment-jsdom-22.4.3.tgz#d67daa4155e33516aecdd35afd82d4abf0fa8a1e" + dependencies: + jest-mock "^22.4.3" + jest-util "^22.4.3" + jsdom "^11.5.1" + +jest-environment-node@^22.4.1: + version "22.4.3" + resolved "http://registry.npm.taobao.org/jest-environment-node/download/jest-environment-node-22.4.3.tgz#54c4eaa374c83dd52a9da8759be14ebe1d0b9129" + dependencies: + jest-mock "^22.4.3" + jest-util "^22.4.3" + +jest-get-type@^22.1.0, jest-get-type@^22.4.3: + version "22.4.3" + resolved "http://registry.npm.taobao.org/jest-get-type/download/jest-get-type-22.4.3.tgz#e3a8504d8479342dd4420236b322869f18900ce4" + +jest-haste-map@^22.4.2: + version "22.4.3" + resolved "http://registry.npm.taobao.org/jest-haste-map/download/jest-haste-map-22.4.3.tgz#25842fa2ba350200767ac27f658d58b9d5c2e20b" + dependencies: + fb-watchman "^2.0.0" + graceful-fs "^4.1.11" + jest-docblock "^22.4.3" + jest-serializer "^22.4.3" + jest-worker "^22.4.3" + micromatch "^2.3.11" + sane "^2.0.0" + +jest-jasmine2@^22.4.4: + version "22.4.4" + resolved "http://registry.npm.taobao.org/jest-jasmine2/download/jest-jasmine2-22.4.4.tgz#c55f92c961a141f693f869f5f081a79a10d24e23" + dependencies: + chalk "^2.0.1" + co "^4.6.0" + expect "^22.4.0" + graceful-fs "^4.1.11" + is-generator-fn "^1.0.0" + jest-diff "^22.4.0" + jest-matcher-utils "^22.4.0" + jest-message-util "^22.4.0" + jest-snapshot "^22.4.0" + jest-util "^22.4.1" + source-map-support "^0.5.0" + +jest-leak-detector@^22.4.0: + version "22.4.3" + resolved "http://registry.npm.taobao.org/jest-leak-detector/download/jest-leak-detector-22.4.3.tgz#2b7b263103afae8c52b6b91241a2de40117e5b35" + dependencies: + pretty-format "^22.4.3" + +jest-matcher-utils@^22.4.0, jest-matcher-utils@^22.4.3: + version "22.4.3" + resolved "http://registry.npm.taobao.org/jest-matcher-utils/download/jest-matcher-utils-22.4.3.tgz#4632fe428ebc73ebc194d3c7b65d37b161f710ff" + dependencies: + chalk "^2.0.1" + jest-get-type "^22.4.3" + pretty-format "^22.4.3" + +jest-message-util@^22.4.0, jest-message-util@^22.4.3: + version "22.4.3" + resolved "http://registry.npm.taobao.org/jest-message-util/download/jest-message-util-22.4.3.tgz#cf3d38aafe4befddbfc455e57d65d5239e399eb7" + dependencies: + "@babel/code-frame" "^7.0.0-beta.35" + chalk "^2.0.1" + micromatch "^2.3.11" + slash "^1.0.0" + stack-utils "^1.0.1" + +jest-mock@^22.4.3: + version "22.4.3" + resolved "http://registry.npm.taobao.org/jest-mock/download/jest-mock-22.4.3.tgz#f63ba2f07a1511772cdc7979733397df770aabc7" + +jest-regex-util@^22.1.0, jest-regex-util@^22.4.3: + version "22.4.3" + resolved "http://registry.npm.taobao.org/jest-regex-util/download/jest-regex-util-22.4.3.tgz#a826eb191cdf22502198c5401a1fc04de9cef5af" + +jest-resolve-dependencies@^22.1.0: + version "22.4.3" + resolved "http://registry.npm.taobao.org/jest-resolve-dependencies/download/jest-resolve-dependencies-22.4.3.tgz#e2256a5a846732dc3969cb72f3c9ad7725a8195e" + dependencies: + jest-regex-util "^22.4.3" + +jest-resolve@^22.4.2: + version "22.4.3" + resolved "http://registry.npm.taobao.org/jest-resolve/download/jest-resolve-22.4.3.tgz#0ce9d438c8438229aa9b916968ec6b05c1abb4ea" + dependencies: + browser-resolve "^1.11.2" + chalk "^2.0.1" + +jest-runner@^22.4.4: + version "22.4.4" + resolved "http://registry.npm.taobao.org/jest-runner/download/jest-runner-22.4.4.tgz#dfca7b7553e0fa617e7b1291aeb7ce83e540a907" + dependencies: + exit "^0.1.2" + jest-config "^22.4.4" + jest-docblock "^22.4.0" + jest-haste-map "^22.4.2" + jest-jasmine2 "^22.4.4" + jest-leak-detector "^22.4.0" + jest-message-util "^22.4.0" + jest-runtime "^22.4.4" + jest-util "^22.4.1" + jest-worker "^22.2.2" + throat "^4.0.0" + +jest-runtime@^22.4.4: + version "22.4.4" + resolved "http://registry.npm.taobao.org/jest-runtime/download/jest-runtime-22.4.4.tgz#9ba7792fc75582a5be0f79af6f8fe8adea314048" + dependencies: + babel-core "^6.0.0" + babel-jest "^22.4.4" + babel-plugin-istanbul "^4.1.5" + chalk "^2.0.1" + convert-source-map "^1.4.0" + exit "^0.1.2" + graceful-fs "^4.1.11" + jest-config "^22.4.4" + jest-haste-map "^22.4.2" + jest-regex-util "^22.1.0" + jest-resolve "^22.4.2" + jest-util "^22.4.1" + jest-validate "^22.4.4" + json-stable-stringify "^1.0.1" + micromatch "^2.3.11" + realpath-native "^1.0.0" + slash "^1.0.0" + strip-bom "3.0.0" + write-file-atomic "^2.1.0" + yargs "^10.0.3" + +jest-serializer-vue@^0.3.0: + version "0.3.0" + resolved "http://registry.npm.taobao.org/jest-serializer-vue/download/jest-serializer-vue-0.3.0.tgz#2128d0c1c83c3bcb2f4fb96104402626bb75506d" + dependencies: + pretty "2.0.0" + +jest-serializer@^22.4.3: + version "22.4.3" + resolved "http://registry.npm.taobao.org/jest-serializer/download/jest-serializer-22.4.3.tgz#a679b81a7f111e4766235f4f0c46d230ee0f7436" + +jest-snapshot@^22.4.0: + version "22.4.3" + resolved "http://registry.npm.taobao.org/jest-snapshot/download/jest-snapshot-22.4.3.tgz#b5c9b42846ffb9faccb76b841315ba67887362d2" + dependencies: + chalk "^2.0.1" + jest-diff "^22.4.3" + jest-matcher-utils "^22.4.3" + mkdirp "^0.5.1" + natural-compare "^1.4.0" + pretty-format "^22.4.3" + +jest-util@^22.4.1, jest-util@^22.4.3: + version "22.4.3" + resolved "http://registry.npm.taobao.org/jest-util/download/jest-util-22.4.3.tgz#c70fec8eec487c37b10b0809dc064a7ecf6aafac" + dependencies: + callsites "^2.0.0" + chalk "^2.0.1" + graceful-fs "^4.1.11" + is-ci "^1.0.10" + jest-message-util "^22.4.3" + mkdirp "^0.5.1" + source-map "^0.6.0" + +jest-validate@^22.4.4: + version "22.4.4" + resolved "http://registry.npm.taobao.org/jest-validate/download/jest-validate-22.4.4.tgz#1dd0b616ef46c995de61810d85f57119dbbcec4d" + dependencies: + chalk "^2.0.1" + jest-config "^22.4.4" + jest-get-type "^22.1.0" + leven "^2.1.0" + pretty-format "^22.4.0" + +jest-worker@^22.2.2, jest-worker@^22.4.3: + version "22.4.3" + resolved "http://registry.npm.taobao.org/jest-worker/download/jest-worker-22.4.3.tgz#5c421417cba1c0abf64bf56bd5fb7968d79dd40b" + dependencies: + merge-stream "^1.0.1" + +jest@^22.0.4: + version "22.4.4" + resolved "http://registry.npm.taobao.org/jest/download/jest-22.4.4.tgz#ffb36c9654b339a13e10b3d4b338eb3e9d49f6eb" + dependencies: + import-local "^1.0.0" + jest-cli "^22.4.4" + +js-base64@^2.1.8, js-base64@^2.1.9: + version "2.4.6" + resolved "http://registry.npm.taobao.org/js-base64/download/js-base64-2.4.6.tgz#1d49f618bef43630cd191f4e122447acfdb947d8" + +js-beautify@^1.6.12, js-beautify@^1.6.14: + version "1.7.5" + resolved "http://registry.npm.taobao.org/js-beautify/download/js-beautify-1.7.5.tgz#69d9651ef60dbb649f65527b53674950138a7919" + dependencies: + config-chain "~1.1.5" + editorconfig "^0.13.2" + mkdirp "~0.5.0" + nopt "~3.0.1" + +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-tokens@^3.0.0 || ^4.0.0": + version "4.0.0" + resolved "http://registry.npm.taobao.org/js-tokens/download/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + +js-yaml@^3.4.3, js-yaml@^3.7.0, js-yaml@^3.9.0, js-yaml@^3.9.1: + version "3.12.0" + resolved "http://registry.npm.taobao.org/js-yaml/download/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1" + 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" + +jsdom@^11.5.1: + version "11.11.0" + resolved "http://registry.npm.taobao.org/jsdom/download/jsdom-11.11.0.tgz#df486efad41aee96c59ad7a190e2449c7eb1110e" + dependencies: + abab "^1.0.4" + acorn "^5.3.0" + acorn-globals "^4.1.0" + array-equal "^1.0.0" + cssom ">= 0.3.2 < 0.4.0" + cssstyle ">= 0.3.1 < 0.4.0" + data-urls "^1.0.0" + domexception "^1.0.0" + escodegen "^1.9.0" + html-encoding-sniffer "^1.0.2" + left-pad "^1.2.0" + nwsapi "^2.0.0" + parse5 "4.0.0" + pn "^1.1.0" + request "^2.83.0" + request-promise-native "^1.0.5" + sax "^1.2.4" + symbol-tree "^3.2.2" + tough-cookie "^2.3.3" + w3c-hr-time "^1.0.1" + webidl-conversions "^4.0.2" + whatwg-encoding "^1.0.3" + whatwg-mimetype "^2.1.0" + whatwg-url "^6.4.1" + ws "^4.0.0" + xml-name-validator "^3.0.0" + +jsesc@^1.3.0: + version "1.3.0" + resolved "http://registry.npm.taobao.org/jsesc/download/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" + +jsesc@^2.5.1: + version "2.5.1" + resolved "http://registry.npm.taobao.org/jsesc/download/jsesc-2.5.1.tgz#e421a2a8e20d6b0819df28908f782526b96dd1fe" + +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-parse-better-errors@^1.0.1: + version "1.0.2" + resolved "http://registry.npm.taobao.org/json-parse-better-errors/download/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + +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-traverse@^0.4.1: + version "0.4.1" + resolved "http://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + +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" + +jsonify@~0.0.0: + version "0.0.0" + resolved "http://registry.npm.taobao.org/jsonify/download/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" + +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" + +killable@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/killable/download/killable-1.0.0.tgz#da8b84bd47de5395878f95d64d02f2449fe05e6b" + +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: + 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: + 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" + +last-call-webpack-plugin@^2.1.2: + version "2.1.2" + resolved "http://registry.npm.taobao.org/last-call-webpack-plugin/download/last-call-webpack-plugin-2.1.2.tgz#ad80c6e310998294d2ed2180a68e9589e4768c44" + dependencies: + lodash "^4.17.4" + webpack-sources "^1.0.1" + +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" + +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" + +left-pad@^1.2.0: + version "1.3.0" + resolved "http://registry.npm.taobao.org/left-pad/download/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e" + +leven@^2.1.0: + version "2.1.0" + resolved "http://registry.npm.taobao.org/leven/download/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" + +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" + +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" + +load-json-file@^4.0.0: + version "4.0.0" + resolved "http://registry.npm.taobao.org/load-json-file/download/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" + dependencies: + graceful-fs "^4.1.2" + parse-json "^4.0.0" + pify "^3.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.16: + 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" + +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._baseclone@^4.0.0: + version "4.5.7" + resolved "http://registry.npm.taobao.org/lodash._baseclone/download/lodash._baseclone-4.5.7.tgz#ce42ade08384ef5d62fa77c30f61a46e686f8434" + +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._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._stack@^4.0.0: + version "4.1.3" + resolved "http://registry.npm.taobao.org/lodash._stack/download/lodash._stack-4.1.3.tgz#751aa76c1b964b047e76d14fc72a093fcb5e2dd0" + +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.clone@3.0.3: + version "3.0.3" + resolved "http://registry.npm.taobao.org/lodash.clone/download/lodash.clone-3.0.3.tgz#84688c73d32b5a90ca25616963f189252a997043" + dependencies: + lodash._baseclone "^3.0.0" + lodash._bindcallback "^3.0.0" + lodash._isiterateecall "^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.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.debounce@^4.0.8: + version "4.0.8" + resolved "http://registry.npm.taobao.org/lodash.debounce/download/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + +lodash.defaultsdeep@4.3.2: + version "4.3.2" + resolved "http://registry.npm.taobao.org/lodash.defaultsdeep/download/lodash.defaultsdeep-4.3.2.tgz#6c1a586e6c5647b0e64e2d798141b8836158be8a" + dependencies: + lodash._baseclone "^4.0.0" + lodash._stack "^4.0.0" + lodash.isplainobject "^4.0.0" + lodash.keysin "^4.0.0" + lodash.mergewith "^4.0.0" + lodash.rest "^4.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@^4.0.0: + version "4.0.6" + resolved "http://registry.npm.taobao.org/lodash.isplainobject/download/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + +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@^4.0.0: + version "4.2.0" + resolved "http://registry.npm.taobao.org/lodash.keysin/download/lodash.keysin-4.2.0.tgz#8cc3fb35c2d94acc443a1863e02fa40799ea6f28" + +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.mergewith@^4.0.0, 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.rest@^4.0.0: + version "4.0.5" + resolved "http://registry.npm.taobao.org/lodash.rest/download/lodash.rest-4.0.5.tgz#954ef75049262038c96d1fc98b28fdaf9f0772aa" + +lodash.sortby@^4.7.0: + version "4.7.0" + resolved "http://registry.npm.taobao.org/lodash.sortby/download/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" + +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.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@4.x, lodash@^4.0.0, lodash@^4.13.1, lodash@^4.17.10, lodash@^4.17.2, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.0, lodash@^4.3.0, lodash@~4.17.10: + version "4.17.10" + resolved "http://registry.npm.taobao.org/lodash/download/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7" + +log-symbols@^2.1.0: + version "2.2.0" + resolved "http://registry.npm.taobao.org/log-symbols/download/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" + dependencies: + chalk "^2.0.1" + +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.4.0" + resolved "http://registry.npm.taobao.org/loose-envify/download/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + dependencies: + js-tokens "^3.0.0 || ^4.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@^1.1.1: + version "1.1.4" + resolved "http://registry.npm.taobao.org/lower-case/download/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" + +lru-cache@^3.2.0: + version "3.2.0" + resolved "http://registry.npm.taobao.org/lru-cache/download/lru-cache-3.2.0.tgz#71789b3b7f5399bec8565dda38aa30d2a097efee" + dependencies: + pseudomap "^1.0.1" + +lru-cache@^4.0.1, lru-cache@^4.1.1: + version "4.1.3" + resolved "http://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.3.tgz#a1175cf3496dfc8436c156c334b4955992bce69c" + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +lru-cache@~2.6.5: + version "2.6.5" + resolved "http://registry.npm.taobao.org/lru-cache/download/lru-cache-2.6.5.tgz#e56d6354148ede8d7707b58d143220fd08df0fd5" + +make-dir@^1.0.0: + version "1.3.0" + resolved "http://registry.npm.taobao.org/make-dir/download/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" + dependencies: + pify "^3.0.0" + +makeerror@1.0.x: + version "1.0.11" + resolved "http://registry.npm.taobao.org/makeerror/download/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" + dependencies: + tmpl "1.0.x" + +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" + +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" + +math-random@^1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/math-random/download/math-random-1.0.1.tgz#8b3aac588b8a66e4975e3cdea67f7bb329601fac" + +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.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" + +merge-stream@^1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/merge-stream/download/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1" + dependencies: + readable-stream "^2.0.1" + +merge@^1.2.0: + version "1.2.0" + resolved "http://registry.npm.taobao.org/merge/download/merge-1.2.0.tgz#7531e39d4949c281a66b8c5a6e0265e8b05894da" + +methods@~1.1.2: + version "1.1.2" + resolved "http://registry.npm.taobao.org/methods/download/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + +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.10" + resolved "http://registry.npm.taobao.org/micromatch/download/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + braces "^2.3.1" + define-property "^2.0.2" + extend-shallow "^3.0.2" + extglob "^2.0.4" + fragment-cache "^0.2.1" + kind-of "^6.0.2" + nanomatch "^1.2.9" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.2" + +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.34.0 < 2": + version "1.34.0" + resolved "http://registry.npm.taobao.org/mime-db/download/mime-db-1.34.0.tgz#452d0ecff5c30346a6dc1e64b1eaee0d3719ff9a" + +mime-db@~1.33.0: + version "1.33.0" + resolved "http://registry.npm.taobao.org/mime-db/download/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db" + +mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.18, mime-types@~2.1.7: + version "2.1.18" + resolved "http://registry.npm.taobao.org/mime-types/download/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8" + dependencies: + mime-db "~1.33.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.4.1, mime@^1.5.0: + version "1.6.0" + resolved "http://registry.npm.taobao.org/mime/download/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + +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, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/minimalistic-assert/download/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + +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.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" + +minimatch@3.0.3: + version "3.0.3" + resolved "http://registry.npm.taobao.org/minimatch/download/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774" + dependencies: + brace-expansion "^1.0.0" + +minimist@0.0.8: + version "0.0.8" + resolved "http://registry.npm.taobao.org/minimist/download/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + +minimist@^1.1.1, 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" + +minipass@^2.2.1, minipass@^2.3.3: + version "2.3.3" + resolved "http://registry.npm.taobao.org/minipass/download/minipass-2.3.3.tgz#a7dcc8b7b833f5d368759cce544dccb55f50f233" + dependencies: + safe-buffer "^5.1.2" + yallist "^3.0.0" + +minizlib@^1.1.0: + version "1.1.0" + resolved "http://registry.npm.taobao.org/minizlib/download/minizlib-1.1.0.tgz#11e13658ce46bc3a70a267aac58359d1e0c29ceb" + dependencies: + minipass "^2.2.1" + +mississippi@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/mississippi/download/mississippi-2.0.0.tgz#3442a508fafc28500486feea99409676e4ee5a6f" + 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 "^2.0.1" + 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.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" + +mkpath@1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/mkpath/download/mkpath-1.0.0.tgz#ebb3a977e7af1c683ae6fda12b545a6ba6c5853d" + +mocha-nightwatch@3.2.2: + version "3.2.2" + resolved "http://registry.npm.taobao.org/mocha-nightwatch/download/mocha-nightwatch-3.2.2.tgz#91bcb9b3bde057dd7677c78125e491e58d66647c" + dependencies: + browser-stdout "1.3.0" + commander "2.9.0" + debug "2.2.0" + diff "1.4.0" + escape-string-regexp "1.0.5" + glob "7.0.5" + growl "1.9.2" + json3 "3.3.2" + lodash.create "3.1.1" + mkdirp "0.5.1" + supports-color "3.1.2" + +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@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" + +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.10.0, nan@^2.9.2: + version "2.10.0" + resolved "http://registry.npm.taobao.org/nan/download/nan-2.10.0.tgz#96d0cd610ebd58d4b4de9cc0c6828cda99c7548f" + +nanomatch@^1.2.9: + version "1.2.13" + resolved "http://registry.npm.taobao.org/nanomatch/download/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + define-property "^2.0.2" + extend-shallow "^3.0.2" + fragment-cache "^0.2.1" + is-windows "^1.0.2" + kind-of "^6.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" + +needle@^2.2.1: + version "2.2.1" + resolved "http://registry.npm.taobao.org/needle/download/needle-2.2.1.tgz#b5e325bd3aae8c2678902fa296f729455d1d3a7d" + dependencies: + debug "^2.1.2" + iconv-lite "^0.4.4" + sax "^1.2.4" + +negotiator@0.6.1: + version "0.6.1" + resolved "http://registry.npm.taobao.org/negotiator/download/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" + +neo-async@^2.5.0: + version "2.5.1" + resolved "http://registry.npm.taobao.org/neo-async/download/neo-async-2.5.1.tgz#acb909e327b1e87ec9ef15f41b8a269512ad41ee" + +netmask@~1.0.4: + version "1.0.6" + resolved "http://registry.npm.taobao.org/netmask/download/netmask-1.0.6.tgz#20297e89d86f6f6400f250d9f4f6b4c1945fcd35" + +next-tick@1: + version "1.0.0" + resolved "http://registry.npm.taobao.org/next-tick/download/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" + +nightwatch@^0.9.12: + version "0.9.21" + resolved "http://registry.npm.taobao.org/nightwatch/download/nightwatch-0.9.21.tgz#9e794a7514b4fd5f46602d368e50515232ab9e90" + dependencies: + chai-nightwatch "~0.1.x" + ejs "2.5.7" + lodash.clone "3.0.3" + lodash.defaultsdeep "4.3.2" + minimatch "3.0.3" + mkpath "1.0.0" + mocha-nightwatch "3.2.2" + optimist "0.6.1" + proxy-agent "2.0.0" + q "1.4.1" + +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-cache@^4.1.1: + version "4.2.0" + resolved "http://registry.npm.taobao.org/node-cache/download/node-cache-4.2.0.tgz#48ac796a874e762582692004a376d26dfa875811" + dependencies: + clone "2.x" + lodash "4.x" + +node-forge@0.7.5: + version "0.7.5" + resolved "http://registry.npm.taobao.org/node-forge/download/node-forge-0.7.5.tgz#6c152c345ce11c52f465c2abd957e8639cd674df" + +node-gyp@^3.3.1: + version "3.7.0" + resolved "http://registry.npm.taobao.org/node-gyp/download/node-gyp-3.7.0.tgz#789478e8f6c45e277aa014f3e28f958f286f9203" + dependencies: + fstream "^1.0.0" + glob "^7.0.3" + graceful-fs "^4.1.2" + mkdirp "^0.5.0" + nopt "2 || 3" + npmlog "0 || 1 || 2 || 3 || 4" + osenv "0" + request ">=2.9.0 <2.82.0" + rimraf "2" + semver "~5.3.0" + tar "^2.0.0" + which "1" + +node-int64@^0.4.0: + version "0.4.0" + resolved "http://registry.npm.taobao.org/node-int64/download/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" + +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-notifier@^5.1.2, node-notifier@^5.2.1: + version "5.2.1" + resolved "http://registry.npm.taobao.org/node-notifier/download/node-notifier-5.2.1.tgz#fa313dd08f5517db0e2502e5758d664ac69f9dea" + dependencies: + growly "^1.3.0" + semver "^5.4.1" + shellwords "^0.1.1" + which "^1.3.0" + +node-pre-gyp@^0.10.0: + version "0.10.3" + resolved "http://registry.npm.taobao.org/node-pre-gyp/download/node-pre-gyp-0.10.3.tgz#3070040716afdc778747b61b6887bf78880b80fc" + dependencies: + detect-libc "^1.0.2" + mkdirp "^0.5.1" + needle "^2.2.1" + nopt "^4.0.1" + npm-packlist "^1.1.6" + npmlog "^4.0.2" + rc "^1.2.7" + rimraf "^2.6.1" + semver "^5.3.0" + tar "^4" + +node-sass@^4.9.2: + version "4.9.2" + resolved "http://registry.npm.taobao.org/node-sass/download/node-sass-4.9.2.tgz#5e63fe6bd0f2ae3ac9d6c14ede8620e2b8bdb437" + 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.10.0" + node-gyp "^3.3.1" + npmlog "^4.0.0" + request "2.87.0" + sass-graph "^2.2.4" + stdout-stream "^1.4.0" + "true-case-path" "^1.0.2" + +"nopt@2 || 3", nopt@~3.0.1: + 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: + 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.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-bundled@^1.0.1: + version "1.0.3" + resolved "http://registry.npm.taobao.org/npm-bundled/download/npm-bundled-1.0.3.tgz#7e71703d973af3370a9591bafe3a63aca0be2308" + +npm-packlist@^1.1.6: + version "1.1.10" + resolved "http://registry.npm.taobao.org/npm-packlist/download/npm-packlist-1.1.10.tgz#1039db9e985727e464df066f4cf0ab6ef85c398a" + dependencies: + ignore-walk "^3.0.1" + npm-bundled "^1.0.1" + +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" + +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" + +nwsapi@^2.0.0: + version "2.0.4" + resolved "http://registry.npm.taobao.org/nwsapi/download/nwsapi-2.0.4.tgz#dc79040a5f77b97716dc79565fc7fc3ef7d50570" + +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.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-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.3.0" + resolved "http://registry.npm.taobao.org/object-hash/download/object-hash-1.3.0.tgz#76d9ba6ff113cf8efc0d996102851fe6723963e2" + +object-keys@^1.0.8: + version "1.0.12" + resolved "http://registry.npm.taobao.org/object-keys/download/object-keys-1.0.12.tgz#09c53855377575310cca62f55bb334abff7b3ed2" + +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.getownpropertydescriptors@^2.0.3: + version "2.0.3" + resolved "http://registry.npm.taobao.org/object.getownpropertydescriptors/download/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.5.1" + +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.2" + resolved "http://registry.npm.taobao.org/obuf/download/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" + +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.3.0, once@^1.3.1, 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@^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" + +opener@^1.4.3: + version "1.4.3" + resolved "http://registry.npm.taobao.org/opener/download/opener-1.4.3.tgz#5c6da2c5d7e5831e8ffa3964950f8d6674ac90b8" + +opn@^5.1.0: + version "5.3.0" + resolved "http://registry.npm.taobao.org/opn/download/opn-5.3.0.tgz#64871565c863875f052cfdf53d3e3cb5adb53b1c" + 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" + +optimize-css-assets-webpack-plugin@^3.2.0: + version "3.2.0" + resolved "http://registry.npm.taobao.org/optimize-css-assets-webpack-plugin/download/optimize-css-assets-webpack-plugin-3.2.0.tgz#09a40c4cefde1dd0142444a873c56aa29eb18e6f" + dependencies: + cssnano "^3.4.0" + last-call-webpack-plugin "^2.1.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" + +ora@^1.2.0: + version "1.4.0" + resolved "http://registry.npm.taobao.org/ora/download/ora-1.4.0.tgz#884458215b3a5d4097592285f93321bb7a79e2e5" + dependencies: + chalk "^2.1.0" + cli-cursor "^2.1.0" + cli-spinners "^1.0.1" + log-symbols "^2.1.0" + +original@>=0.0.5: + version "1.0.1" + resolved "http://registry.npm.taobao.org/original/download/original-1.0.1.tgz#b0a53ff42ba997a8c9cd1fb5daaeb42b9d693190" + dependencies: + url-parse "~1.4.0" + +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.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.5" + resolved "http://registry.npm.taobao.org/osenv/download/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" + 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.3.0" + resolved "http://registry.npm.taobao.org/p-limit/download/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + 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" + +pac-proxy-agent@1: + version "1.1.0" + resolved "http://registry.npm.taobao.org/pac-proxy-agent/download/pac-proxy-agent-1.1.0.tgz#34a385dfdf61d2f0ecace08858c745d3e791fd4d" + dependencies: + agent-base "2" + debug "2" + extend "3" + get-uri "2" + http-proxy-agent "1" + https-proxy-agent "1" + pac-resolver "~2.0.0" + raw-body "2" + socks-proxy-agent "2" + +pac-resolver@~2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/pac-resolver/download/pac-resolver-2.0.0.tgz#99b88d2f193fbdeefc1c9a529c1f3260ab5277cd" + dependencies: + co "~3.0.6" + degenerator "~1.0.2" + ip "1.0.1" + netmask "~1.0.4" + thunkify "~2.1.1" + +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: + 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.1" + resolved "http://registry.npm.taobao.org/parse-asn1/download/parse-asn1-5.1.1.tgz#f6bf293818332bd0dab54efb16087724745e6ca8" + 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-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" + +parse-json@^4.0.0: + version "4.0.0" + resolved "http://registry.npm.taobao.org/parse-json/download/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + dependencies: + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + +parse5@4.0.0: + version "4.0.0" + resolved "http://registry.npm.taobao.org/parse5/download/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608" + +parseurl@~1.3.2: + version "1.3.2" + resolved "http://registry.npm.taobao.org/parseurl/download/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3" + +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-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: + 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" + +pbkdf2@^3.0.3: + version "3.0.16" + resolved "http://registry.npm.taobao.org/pbkdf2/download/pbkdf2-3.0.16.tgz#7404208ec6b01b62d85bf83853a8064f8d9c2a5c" + 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" + +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, pify@^2.3.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" + +pluralize@^7.0.0: + version "7.0.0" + resolved "http://registry.npm.taobao.org/pluralize/download/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" + +pn@^1.1.0: + version "1.1.0" + resolved "http://registry.npm.taobao.org/pn/download/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" + +portfinder@^1.0.13, 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.3" + resolved "http://registry.npm.taobao.org/postcss-filter-plugins/download/postcss-filter-plugins-2.0.3.tgz#82245fdf82337041645e477114d8e593aa18b8ec" + dependencies: + postcss "^5.0.4" + +postcss-import@^11.0.0: + version "11.1.0" + resolved "http://registry.npm.taobao.org/postcss-import/download/postcss-import-11.1.0.tgz#55c9362c9192994ec68865d224419df1db2981f0" + dependencies: + postcss "^6.0.1" + postcss-value-parser "^3.2.3" + read-cache "^1.0.0" + resolve "^1.1.7" + +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-config@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/postcss-load-config/download/postcss-load-config-2.0.0.tgz#f1312ddbf5912cd747177083c5ef7a19d62ee484" + dependencies: + cosmiconfig "^4.0.0" + import-cwd "^2.0.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-loader@^2.0.8: + version "2.1.6" + resolved "http://registry.npm.taobao.org/postcss-loader/download/postcss-loader-2.1.6.tgz#1d7dd7b17c6ba234b9bed5af13e0bea40a42d740" + dependencies: + loader-utils "^1.1.0" + postcss "^6.0.0" + postcss-load-config "^2.0.0" + schema-utils "^0.4.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-url@^7.2.1: + version "7.3.2" + resolved "http://registry.npm.taobao.org/postcss-url/download/postcss-url-7.3.2.tgz#5fea273807fb84b38c461c3c9a9e8abd235f7120" + dependencies: + mime "^1.4.1" + minimatch "^3.0.4" + mkdirp "^0.5.0" + postcss "^6.0.1" + xxhashjs "^0.2.1" + +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.0, postcss@^6.0.1, postcss@^6.0.17, postcss@^6.0.8: + version "6.0.23" + resolved "http://registry.npm.taobao.org/postcss/download/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324" + dependencies: + chalk "^2.4.1" + source-map "^0.6.1" + supports-color "^5.4.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: + 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.13.7" + resolved "http://registry.npm.taobao.org/prettier/download/prettier-1.13.7.tgz#850f3b8af784a49a6ea2d2eaa7ed1428a34b7281" + +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" + +pretty-format@^22.4.0, pretty-format@^22.4.3: + version "22.4.3" + resolved "http://registry.npm.taobao.org/pretty-format/download/pretty-format-22.4.3.tgz#f873d780839a9c02e9664c8a082e9ee79eaac16f" + dependencies: + ansi-regex "^3.0.0" + ansi-styles "^3.2.0" + +pretty@2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/pretty/download/pretty-2.0.0.tgz#adbc7960b7bbfe289a557dc5f737619a220d06a5" + dependencies: + condense-newlines "^0.2.1" + extend-shallow "^2.0.1" + js-beautify "^1.6.12" + +private@^0.1.6, private@^0.1.8: + version "0.1.8" + resolved "http://registry.npm.taobao.org/private/download/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" + +process-nextick-args@~2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/process-nextick-args/download/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" + +process@^0.11.10: + version "0.11.10" + resolved "http://registry.npm.taobao.org/process/download/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + +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" + +proto-list@~1.2.1: + version "1.2.4" + resolved "http://registry.npm.taobao.org/proto-list/download/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" + +proxy-addr@~2.0.3: + version "2.0.3" + resolved "http://registry.npm.taobao.org/proxy-addr/download/proxy-addr-2.0.3.tgz#355f262505a621646b3130a728eb647e22055341" + dependencies: + forwarded "~0.1.2" + ipaddr.js "1.6.0" + +proxy-agent@2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/proxy-agent/download/proxy-agent-2.0.0.tgz#57eb5347aa805d74ec681cb25649dba39c933499" + dependencies: + agent-base "2" + debug "2" + extend "3" + http-proxy-agent "1" + https-proxy-agent "1" + lru-cache "~2.6.5" + pac-proxy-agent "1" + socks-proxy-agent "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.1, pseudomap@^1.0.2: + version "1.0.2" + resolved "http://registry.npm.taobao.org/pseudomap/download/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + +psl@^1.1.24: + version "1.1.28" + resolved "http://registry.npm.taobao.org/psl/download/psl-1.1.28.tgz#4fb6ceb08a1e2214d4fd4de0ca22dae13740bc7b" + +public-encrypt@^4.0.0: + version "4.0.2" + resolved "http://registry.npm.taobao.org/public-encrypt/download/public-encrypt-4.0.2.tgz#46eb9107206bf73489f8b85b69d91334c6610994" + 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@^2.0.0, pump@^2.0.1: + 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.5.1" + resolved "http://registry.npm.taobao.org/pumpify/download/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" + dependencies: + duplexify "^3.6.0" + 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" + +punycode@^2.1.0: + version "2.1.1" + resolved "http://registry.npm.taobao.org/punycode/download/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + +q@1.4.1: + version "1.4.1" + resolved "http://registry.npm.taobao.org/q/download/q-1.4.1.tgz#55705bcd93c5f3673530c2c2cbc0c2b3addc286e" + +q@^1.1.2: + version "1.5.1" + resolved "http://registry.npm.taobao.org/q/download/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" + +qs@6.5.1: + version "6.5.1" + resolved "http://registry.npm.taobao.org/qs/download/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" + +qs@~6.4.0: + version "6.4.0" + resolved "http://registry.npm.taobao.org/qs/download/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" + +qs@~6.5.1: + version "6.5.2" + resolved "http://registry.npm.taobao.org/qs/download/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + +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: + version "0.2.0" + resolved "http://registry.npm.taobao.org/querystring/download/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + +querystringify@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/querystringify/download/querystringify-2.0.0.tgz#fa3ed6e68eb15159457c89b37bc6472833195755" + +randomatic@^3.0.0: + version "3.0.0" + resolved "http://registry.npm.taobao.org/randomatic/download/randomatic-3.0.0.tgz#d35490030eb4f7578de292ce6dfb04a91a128923" + dependencies: + is-number "^4.0.0" + kind-of "^6.0.0" + math-random "^1.0.1" + +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.4" + resolved "http://registry.npm.taobao.org/randomfill/download/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" + dependencies: + randombytes "^2.0.5" + safe-buffer "^5.1.0" + +range-parser@^1.0.3, 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: + version "2.3.3" + resolved "http://registry.npm.taobao.org/raw-body/download/raw-body-2.3.3.tgz#1b324ece6b5706e153855bc1148c65bb7f6ea0c3" + dependencies: + bytes "3.0.0" + http-errors "1.6.3" + iconv-lite "0.4.23" + unpipe "1.0.0" + +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.2.7: + version "1.2.8" + resolved "http://registry.npm.taobao.org/rc/download/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +read-cache@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/read-cache/download/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" + dependencies: + pify "^2.3.0" + +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-up@^3.0.0: + version "3.0.0" + resolved "http://registry.npm.taobao.org/read-pkg-up/download/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" + dependencies: + find-up "^2.0.0" + read-pkg "^3.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" + +read-pkg@^3.0.0: + version "3.0.0" + resolved "http://registry.npm.taobao.org/read-pkg/download/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" + dependencies: + load-json-file "^4.0.0" + normalize-package-data "^2.3.2" + path-type "^3.0.0" + +"readable-stream@1 || 2", readable-stream@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.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.2.9, readable-stream@^2.3.3, readable-stream@^2.3.6: + version "2.3.6" + resolved "http://registry.npm.taobao.org/readable-stream/download/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@1.0: + 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.x: + 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" + +realpath-native@^1.0.0: + version "1.0.1" + resolved "http://registry.npm.taobao.org/realpath-native/download/realpath-native-1.0.1.tgz#07f40a0cce8f8261e2e8b7ebebf5c95965d7b633" + dependencies: + util.promisify "^1.0.0" + +rechoir@^0.6.2: + version "0.6.2" + resolved "http://registry.npm.taobao.org/rechoir/download/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + dependencies: + resolve "^1.1.6" + +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.4.0" + resolved "http://registry.npm.taobao.org/regenerate/download/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" + +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, regex-not@^1.0.2: + version "1.0.2" + resolved "http://registry.npm.taobao.org/regex-not/download/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" + +regexpp@^1.0.1: + version "1.1.0" + resolved "http://registry.npm.taobao.org/regexpp/download/regexpp-1.1.0.tgz#0e3516dd0b7904f413d2d4193dce4618c3a689ab" + +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" + +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@^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-promise-core@1.1.1: + version "1.1.1" + resolved "http://registry.npm.taobao.org/request-promise-core/download/request-promise-core-1.1.1.tgz#3eee00b2c5aa83239cfb04c5700da36f81cd08b6" + dependencies: + lodash "^4.13.1" + +request-promise-native@^1.0.5: + version "1.0.5" + resolved "http://registry.npm.taobao.org/request-promise-native/download/request-promise-native-1.0.5.tgz#5281770f68e0c9719e5163fd3fab482215f4fda5" + dependencies: + request-promise-core "1.1.1" + stealthy-require "^1.1.0" + tough-cookie ">=2.3.3" + +request@2.87.0, request@^2.83.0: + version "2.87.0" + resolved "http://registry.npm.taobao.org/request/download/request-2.87.0.tgz#32f00235cd08d482b4d0d68db93a829c0ed5756e" + 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" + 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" + tough-cookie "~2.3.3" + tunnel-agent "^0.6.0" + uuid "^3.1.0" + +"request@>=2.9.0 <2.82.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" + +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-from-string@^2.0.1: + version "2.0.2" + resolved "http://registry.npm.taobao.org/require-from-string/download/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + +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.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/requires-port/download/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + +resize-observer-polyfill@^1.5.0: + version "1.5.0" + resolved "http://registry.npm.taobao.org/resize-observer-polyfill/download/resize-observer-polyfill-1.5.0.tgz#660ff1d9712a2382baa2cad450a4716209f9ca69" + +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: + version "0.2.1" + resolved "http://registry.npm.taobao.org/resolve-url/download/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + +resolve@1.1.7: + version "1.1.7" + resolved "http://registry.npm.taobao.org/resolve/download/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" + +resolve@^1.1.6, resolve@^1.1.7, resolve@^1.3.3, resolve@^1.4.0, resolve@^1.5.0, resolve@^1.6.0: + version "1.8.1" + resolved "http://registry.npm.taobao.org/resolve/download/resolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26" + dependencies: + path-parse "^1.0.5" + +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" + +ret@~0.1.10: + version "0.1.15" + resolved "http://registry.npm.taobao.org/ret/download/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + +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.4, rimraf@^2.6.0, rimraf@^2.6.1, rimraf@^2.6.2: + 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.2" + resolved "http://registry.npm.taobao.org/ripemd160/download/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + +rsvp@^3.3.3: + version "3.6.2" + resolved "http://registry.npm.taobao.org/rsvp/download/rsvp-3.6.2.tgz#2e96491599a96cde1b515d5674a8f7a91452926a" + +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: + version "5.1.1" + resolved "http://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" + +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "http://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + +safe-regex@^1.1.0: + version "1.1.0" + resolved "http://registry.npm.taobao.org/safe-regex/download/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + dependencies: + ret "~0.1.10" + +"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2: + version "2.1.2" + resolved "http://registry.npm.taobao.org/safer-buffer/download/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + +sane@^2.0.0: + version "2.5.2" + resolved "http://registry.npm.taobao.org/sane/download/sane-2.5.2.tgz#b4dc1861c21b427e929507a3e751e2a2cb8ab3fa" + dependencies: + anymatch "^2.0.0" + capture-exit "^1.2.0" + exec-sh "^0.2.0" + fb-watchman "^2.0.0" + micromatch "^3.1.4" + minimist "^1.1.1" + walker "~1.0.5" + watch "~0.18.0" + optionalDependencies: + fsevents "^1.2.3" + +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@^7.0.3: + version "7.0.3" + resolved "http://registry.npm.taobao.org/sass-loader/download/sass-loader-7.0.3.tgz#6ca10871a1cc7549f8143db5a9958242c4e4ca2a" + dependencies: + clone-deep "^2.0.1" + loader-utils "^1.0.1" + lodash.tail "^4.1.1" + neo-async "^2.5.0" + 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" + +schema-utils@^0.4.0, schema-utils@^0.4.5: + version "0.4.5" + resolved "http://registry.npm.taobao.org/schema-utils/download/schema-utils-0.4.5.tgz#21836f0608aac17b78f9e3e24daff14a5ca13a3e" + dependencies: + ajv "^6.1.0" + ajv-keywords "^3.1.0" + +scss-loader@0.0.1: + version "0.0.1" + resolved "http://registry.npm.taobao.org/scss-loader/download/scss-loader-0.0.1.tgz#eae017b9e0f38c12a532db25c220b902fb34e671" + +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" + +selenium-server@^3.0.1: + version "3.13.0" + resolved "http://registry.npm.taobao.org/selenium-server/download/selenium-server-3.13.0.tgz#daecaa9a684d1d98e799fddd2d670fbe79818d45" + +selfsigned@^1.9.1: + version "1.10.3" + resolved "http://registry.npm.taobao.org/selfsigned/download/selfsigned-1.10.3.tgz#d628ecf9e3735f84e8bafba936b3cf85bea43823" + dependencies: + node-forge "0.7.5" + +"semver@2 || 3 || 4 || 5", 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@~5.0.1: + version "5.0.3" + resolved "http://registry.npm.taobao.org/semver/download/semver-5.0.3.tgz#77466de589cd5d3c95f138aa78bc569a3cb5d27a" + +send@0.16.2: + version "0.16.2" + resolved "http://registry.npm.taobao.org/send/download/send-0.16.2.tgz#6ecca1e0f8c156d141597559848df64730a6bbc1" + dependencies: + debug "2.6.9" + depd "~1.1.2" + destroy "~1.0.4" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "~1.6.2" + mime "1.4.1" + ms "2.0.0" + on-finished "~2.3.0" + range-parser "~1.2.0" + statuses "~1.4.0" + +serialize-javascript@^1.4.0: + version "1.5.0" + resolved "http://registry.npm.taobao.org/serialize-javascript/download/serialize-javascript-1.5.0.tgz#1aa336162c88a890ddad5384baebc93a655161fe" + +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.2: + version "1.13.2" + resolved "http://registry.npm.taobao.org/serve-static/download/serve-static-1.13.2.tgz#095e8472fd5b46237db50ce486a43f4b86c6cec1" + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.2" + send "0.16.2" + +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-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.11" + resolved "http://registry.npm.taobao.org/sha.js/download/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +shallow-clone@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/shallow-clone/download/shallow-clone-1.0.0.tgz#4480cd06e882ef68b2ad88a3ea54832e2c48b571" + dependencies: + is-extendable "^0.1.1" + kind-of "^5.0.0" + 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" + +shelljs@^0.7.6: + version "0.7.8" + resolved "http://registry.npm.taobao.org/shelljs/download/shelljs-0.7.8.tgz#decbcf874b0d1e5fb72e14b164a9683048e9acb3" + dependencies: + glob "^7.0.0" + interpret "^1.0.0" + rechoir "^0.6.2" + +shellwords@^0.1.1: + version "0.1.1" + resolved "http://registry.npm.taobao.org/shellwords/download/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" + +sigmund@^1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/sigmund/download/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" + +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" + +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" + +smart-buffer@^1.0.13: + version "1.1.15" + resolved "http://registry.npm.taobao.org/smart-buffer/download/smart-buffer-1.1.15.tgz#7f114b5b65fab3e2a35aa775bb12f0d1c649bf16" + +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.2" + resolved "http://registry.npm.taobao.org/snapdragon/download/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + 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 "^3.1.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" + +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" + +socks-proxy-agent@2: + version "2.1.1" + resolved "http://registry.npm.taobao.org/socks-proxy-agent/download/socks-proxy-agent-2.1.1.tgz#86ebb07193258637870e13b7bd99f26c663df3d3" + dependencies: + agent-base "2" + extend "3" + socks "~1.1.5" + +socks@~1.1.5: + version "1.1.10" + resolved "http://registry.npm.taobao.org/socks/download/socks-1.1.10.tgz#5b8b7fc7c8f341c53ed056e929b7bf4de8ba7b5a" + dependencies: + ip "^1.1.4" + smart-buffer "^1.0.13" + +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.5.0: + version "0.5.2" + resolved "http://registry.npm.taobao.org/source-map-resolve/download/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" + dependencies: + atob "^2.1.1" + 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.0: + version "0.5.6" + resolved "http://registry.npm.taobao.org/source-map-support/download/source-map-support-0.5.6.tgz#4435cee46b1aab62b8e8610ce60f788091c51c13" + dependencies: + buffer-from "^1.0.0" + 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@0.5.x, source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, 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.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.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" + +spdx-correct@^3.0.0: + version "3.0.0" + resolved "http://registry.npm.taobao.org/spdx-correct/download/spdx-correct-3.0.0.tgz#05a5b4d7153a195bc92c3c425b69f3b2a9524c82" + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.1.0" + resolved "http://registry.npm.taobao.org/spdx-exceptions/download/spdx-exceptions-2.1.0.tgz#2c7ae61056c714a5b9b9b2b2af7d311ef5c78fe9" + +spdx-expression-parse@^3.0.0: + version "3.0.0" + resolved "http://registry.npm.taobao.org/spdx-expression-parse/download/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.0" + resolved "http://registry.npm.taobao.org/spdx-license-ids/download/spdx-license-ids-3.0.0.tgz#7a7cd28470cc6d3a1cfe6d66886f6bc430d3ac87" + +spdy-transport@^2.0.18: + version "2.1.0" + resolved "http://registry.npm.taobao.org/spdy-transport/download/spdy-transport-2.1.0.tgz#4bbb15aaffed0beefdd56ad61dbdc8ba3e2cb7a1" + 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" + +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" + +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.14.2" + resolved "http://registry.npm.taobao.org/sshpk/download/sshpk-1.14.2.tgz#c6fc61648a3d9c4e764fd3fcdf4ea105e492ba98" + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + dashdash "^1.12.0" + getpass "^0.1.1" + safer-buffer "^2.0.2" + optionalDependencies: + bcrypt-pbkdf "^1.0.0" + ecc-jsbn "~0.1.1" + jsbn "~0.1.0" + tweetnacl "~0.14.0" + +ssri@^5.2.4: + version "5.3.0" + resolved "http://registry.npm.taobao.org/ssri/download/ssri-5.3.0.tgz#ba3872c9c6d33a0704a7d71ff045e5ec48999d06" + dependencies: + safe-buffer "^5.1.1" + +stack-utils@^1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/stack-utils/download/stack-utils-1.0.1.tgz#d4f33ab54e8e38778b0ca5cfd3b3afb12db68620" + +stackframe@^1.0.4: + version "1.0.4" + resolved "http://registry.npm.taobao.org/stackframe/download/stackframe-1.0.4.tgz#357b24a992f9427cba6b545d96a14ed2cbca187b" + +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", "statuses@>= 1.4.0 < 2": + version "1.5.0" + resolved "http://registry.npm.taobao.org/statuses/download/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + +statuses@~1.4.0: + version "1.4.0" + resolved "http://registry.npm.taobao.org/statuses/download/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087" + +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" + +stealthy-require@^1.1.0: + version "1.1.1" + resolved "http://registry.npm.taobao.org/stealthy-require/download/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" + +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.3" + resolved "http://registry.npm.taobao.org/stream-http/download/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.1" + readable-stream "^2.3.6" + 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-length@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/string-length/download/string-length-2.0.0.tgz#d40dbb686a3ace960c1cffca562bf2c45f8363ed" + dependencies: + astral-regex "^1.0.0" + strip-ansi "^4.0.0" + +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@^1.0.2 || 2", 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.1.1: + version "1.1.1" + resolved "http://registry.npm.taobao.org/string_decoder/download/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + 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: + version "0.0.6" + resolved "http://registry.npm.taobao.org/stringstream/download/stringstream-0.0.6.tgz#7880225b0d4ad10e30927d167a1d6f2fd3b33a72" + +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@3.0.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-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-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.0, 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" + +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@^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.2, 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.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, supports-color@^5.3.0, supports-color@^5.4.0: + version "5.4.0" + resolved "http://registry.npm.taobao.org/supports-color/download/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54" + dependencies: + has-flag "^3.0.0" + +svg-tags@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/svg-tags/download/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764" + +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" + +symbol-tree@^3.2.2: + version "3.2.2" + resolved "http://registry.npm.taobao.org/symbol-tree/download/symbol-tree-3.2.2.tgz#ae27db38f660a7ae2e1c3b7d1bc290819b8519e6" + +table@4.0.2: + 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@^2.0.0: + 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" + +tar@^4: + version "4.4.4" + resolved "http://registry.npm.taobao.org/tar/download/tar-4.4.4.tgz#ec8409fae9f665a4355cc3b4087d0820232bb8cd" + dependencies: + chownr "^1.0.1" + fs-minipass "^1.2.5" + minipass "^2.3.3" + minizlib "^1.1.0" + mkdirp "^0.5.0" + safe-buffer "^5.1.2" + yallist "^3.0.2" + +test-exclude@^4.2.1: + version "4.2.2" + resolved "http://registry.npm.taobao.org/test-exclude/download/test-exclude-4.2.2.tgz#8b67aa8408f84afc225b06669e25c510f8582820" + dependencies: + arrify "^1.0.1" + minimatch "^3.0.4" + read-pkg-up "^3.0.0" + 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" + +throat@^4.0.0: + version "4.1.0" + resolved "http://registry.npm.taobao.org/throat/download/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a" + +throttle-debounce@^1.0.1: + version "1.1.0" + resolved "http://registry.npm.taobao.org/throttle-debounce/download/throttle-debounce-1.1.0.tgz#51853da37be68a155cb6e827b3514a3c422e89cd" + +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" + +through@^2.3.6: + version "2.3.8" + resolved "http://registry.npm.taobao.org/through/download/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + +thunkify@~2.1.1: + version "2.1.2" + resolved "http://registry.npm.taobao.org/thunkify/download/thunkify-2.1.2.tgz#faa0e9d230c51acc95ca13a361ac05ca7e04553d" + +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" + +timers-browserify@^2.0.4: + version "2.0.10" + resolved "http://registry.npm.taobao.org/timers-browserify/download/timers-browserify-2.0.10.tgz#1d28e3d2aadf1d5a5996c4e9f95601cd053480ae" + dependencies: + setimmediate "^1.0.4" + +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" + +tmpl@1.0.x: + version "1.0.4" + resolved "http://registry.npm.taobao.org/tmpl/download/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" + +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-fast-properties@^2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/to-fast-properties/download/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + +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, to-regex@^3.0.2: + version "3.0.2" + resolved "http://registry.npm.taobao.org/to-regex/download/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + +toposort@^1.0.0: + version "1.0.7" + resolved "http://registry.npm.taobao.org/toposort/download/toposort-1.0.7.tgz#2e68442d9f64ec720b8cc89e6443ac6caa950029" + +tough-cookie@>=2.3.3, tough-cookie@^2.3.3: + version "2.4.3" + resolved "http://registry.npm.taobao.org/tough-cookie/download/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" + dependencies: + psl "^1.1.24" + punycode "^1.4.1" + +tough-cookie@~2.3.0, tough-cookie@~2.3.3: + version "2.3.4" + resolved "http://registry.npm.taobao.org/tough-cookie/download/tough-cookie-2.3.4.tgz#ec60cee38ac675063ffc97a5c18970578ee83655" + dependencies: + punycode "^1.4.1" + +tr46@^1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/tr46/download/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" + dependencies: + punycode "^2.1.0" + +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" + +tryer@^1.0.0: + version "1.0.1" + resolved "http://registry.npm.taobao.org/tryer/download/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8" + +tsconfig@^7.0.0: + version "7.0.0" + resolved "http://registry.npm.taobao.org/tsconfig/download/tsconfig-7.0.0.tgz#84538875a4dc216e5c4a5432b3a4dec3d54e91b7" + dependencies: + "@types/strip-bom" "^3.0.0" + "@types/strip-json-comments" "0.0.30" + strip-bom "^3.0.0" + strip-json-comments "^2.0.0" + +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" + +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@0.1.1: + version "0.1.1" + resolved "http://registry.npm.taobao.org/type-detect/download/type-detect-0.1.1.tgz#0ba5ec2a885640e470ea4e8505971900dac58822" + +type-is@~1.6.15, type-is@~1.6.16: + version "1.6.16" + resolved "http://registry.npm.taobao.org/type-is/download/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194" + dependencies: + media-typer "0.3.0" + mime-types "~2.1.18" + +typedarray@^0.0.6: + version "0.0.6" + resolved "http://registry.npm.taobao.org/typedarray/download/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + +uglify-es@^3.3.4: + version "3.3.10" + resolved "http://registry.npm.taobao.org/uglify-es/download/uglify-es-3.3.10.tgz#8b0b7992cebe20edc26de1bf325cef797b8f3fa5" + dependencies: + commander "~2.14.1" + source-map "~0.6.1" + +uglify-js@3.4.x: + version "3.4.4" + resolved "http://registry.npm.taobao.org/uglify-js/download/uglify-js-3.4.4.tgz#92e79532a3aeffd4b6c65755bdba8d5bad98d607" + dependencies: + commander "~2.16.0" + 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" + +uglifyjs-webpack-plugin@^1.1.1: + version "1.2.7" + resolved "http://registry.npm.taobao.org/uglifyjs-webpack-plugin/download/uglifyjs-webpack-plugin-1.2.7.tgz#57638dd99c853a1ebfe9d97b42160a8a507f9d00" + dependencies: + cacache "^10.0.4" + find-cache-dir "^1.0.0" + schema-utils "^0.4.5" + serialize-javascript "^1.4.0" + source-map "^0.6.1" + uglify-es "^3.3.4" + webpack-sources "^1.1.0" + worker-farm "^1.5.2" + +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" + +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" + +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" + +upath@^1.0.5: + version "1.1.0" + resolved "http://registry.npm.taobao.org/upath/download/upath-1.1.0.tgz#35256597e46a581db4793d0ce47fa9aebfc9fabd" + +upper-case@^1.1.1: + version "1.1.3" + resolved "http://registry.npm.taobao.org/upper-case/download/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" + +uri-js@^4.2.1: + version "4.2.2" + resolved "http://registry.npm.taobao.org/uri-js/download/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" + dependencies: + punycode "^2.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.8: + 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@^1.1.8, url-parse@~1.4.0: + version "1.4.1" + resolved "http://registry.npm.taobao.org/url-parse/download/url-parse-1.4.1.tgz#4dec9dad3dc8585f862fed461d2e19bbf623df30" + dependencies: + querystringify "^2.0.0" + requires-port "^1.0.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@^3.1.0: + version "3.1.0" + resolved "http://registry.npm.taobao.org/use/download/use-3.1.0.tgz#14716bf03fdfefd03040aef58d8b4b85f3a7c544" + dependencies: + kind-of "^6.0.2" + +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.promisify@^1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/util.promisify/download/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" + dependencies: + define-properties "^1.1.2" + object.getownpropertydescriptors "^2.0.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" + +util@^0.10.3: + version "0.10.4" + resolved "http://registry.npm.taobao.org/util/download/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901" + dependencies: + inherits "2.0.3" + +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.3.2" + resolved "http://registry.npm.taobao.org/uuid/download/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" + +validate-npm-package-license@^3.0.1: + version "3.0.3" + resolved "http://registry.npm.taobao.org/validate-npm-package-license/download/validate-npm-package-license-3.0.3.tgz#81643bcbef1bdfecd4623793dc4648948ba98338" + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +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.2" + resolved "http://registry.npm.taobao.org/vendors/download/vendors-1.0.2.tgz#7fcb5eef9f5623b156bcea89ec37d63676f21801" + +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" + +vue-codemirror@^4.0.5: + version "4.0.5" + resolved "http://registry.npm.taobao.org/vue-codemirror/download/vue-codemirror-4.0.5.tgz#3a784d454fbfb17ce769b9fc90f10e9868687ecb" + dependencies: + codemirror "^5.32.0" + diff-match-patch "^1.0.0" + +vue-eslint-parser@^2.0.3: + version "2.0.3" + resolved "http://registry.npm.taobao.org/vue-eslint-parser/download/vue-eslint-parser-2.0.3.tgz#c268c96c6d94cfe3d938a5f7593959b0ca3360d1" + dependencies: + debug "^3.1.0" + eslint-scope "^3.7.1" + eslint-visitor-keys "^1.0.0" + espree "^3.5.2" + esquery "^1.0.0" + lodash "^4.17.4" + +vue-hot-reload-api@^2.2.0: + version "2.3.0" + resolved "http://registry.npm.taobao.org/vue-hot-reload-api/download/vue-hot-reload-api-2.3.0.tgz#97976142405d13d8efae154749e88c4e358cf926" + +vue-i18n@^8.0.0: + version "8.0.0" + resolved "http://registry.npm.taobao.org/vue-i18n/download/vue-i18n-8.0.0.tgz#ae0c6e05ec8e36151bcf5f47c7b538c8af6d0282" + +vue-jest@^1.0.2: + version "1.4.0" + resolved "http://registry.npm.taobao.org/vue-jest/download/vue-jest-1.4.0.tgz#1d6b4d2774b0aec06cfe5d39789039d3381bc528" + dependencies: + babel-core "^6.25.0" + babel-preset-vue-app "^1.3.1" + chalk "^2.1.0" + find-babel-config "^1.1.0" + js-beautify "^1.6.14" + node-cache "^4.1.1" + object-assign "^4.1.1" + source-map "^0.5.6" + tsconfig "^7.0.0" + vue-template-es2015-compiler "^1.5.3" + +vue-loader@^13.3.0: + version "13.7.2" + resolved "http://registry.npm.taobao.org/vue-loader/download/vue-loader-13.7.2.tgz#f633f6393e905ffd730400f03c99353618c08fe8" + 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@^3.0.1: + version "3.0.1" + resolved "http://registry.npm.taobao.org/vue-router/download/vue-router-3.0.1.tgz#d9b05ad9c7420ba0f626d6500d693e60092cc1e9" + +vue-style-loader@^3.0.0, vue-style-loader@^3.1.2: + 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.5.2: + version "2.5.16" + resolved "http://registry.npm.taobao.org/vue-template-compiler/download/vue-template-compiler-2.5.16.tgz#93b48570e56c720cdf3f051cc15287c26fbd04cb" + dependencies: + de-indent "^1.0.2" + he "^1.1.0" + +vue-template-es2015-compiler@^1.5.3, 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.5.2: + version "2.5.16" + resolved "http://registry.npm.taobao.org/vue/download/vue-2.5.16.tgz#07edb75e8412aaeed871ebafa99f4672584a0085" + +vuex@^3.0.1: + version "3.0.1" + resolved "http://registry.npm.taobao.org/vuex/download/vuex-3.0.1.tgz#e761352ebe0af537d4bb755a9b9dc4be3df7efd2" + +w3c-hr-time@^1.0.1: + version "1.0.1" + resolved "http://registry.npm.taobao.org/w3c-hr-time/download/w3c-hr-time-1.0.1.tgz#82ac2bff63d950ea9e3189a58a65625fedf19045" + dependencies: + browser-process-hrtime "^0.1.2" + +walker@~1.0.5: + version "1.0.7" + resolved "http://registry.npm.taobao.org/walker/download/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" + dependencies: + makeerror "1.0.x" + +watch@~0.18.0: + version "0.18.0" + resolved "http://registry.npm.taobao.org/watch/download/watch-0.18.0.tgz#28095476c6df7c90c963138990c0a5423eb4b986" + dependencies: + exec-sh "^0.2.0" + minimist "^1.2.0" + +watchpack@^1.4.0: + version "1.6.0" + resolved "http://registry.npm.taobao.org/watchpack/download/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00" + dependencies: + chokidar "^2.0.2" + graceful-fs "^4.1.2" + neo-async "^2.5.0" + +wbuf@^1.1.0, wbuf@^1.7.2: + version "1.7.3" + resolved "http://registry.npm.taobao.org/wbuf/download/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" + dependencies: + minimalistic-assert "^1.0.0" + +webidl-conversions@^4.0.2: + version "4.0.2" + resolved "http://registry.npm.taobao.org/webidl-conversions/download/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" + +webpack-bundle-analyzer@^2.9.0: + version "2.13.1" + resolved "http://registry.npm.taobao.org/webpack-bundle-analyzer/download/webpack-bundle-analyzer-2.13.1.tgz#07d2176c6e86c3cdce4c23e56fae2a7b6b4ad526" + dependencies: + acorn "^5.3.0" + bfj-node4 "^5.2.0" + chalk "^2.3.0" + commander "^2.13.0" + ejs "^2.5.7" + express "^4.16.2" + filesize "^3.5.11" + gzip-size "^4.1.0" + lodash "^4.17.4" + mkdirp "^0.5.1" + opener "^1.4.3" + ws "^4.0.0" + +webpack-dev-middleware@1.12.2: + 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.9.1: + version "2.11.2" + resolved "http://registry.npm.taobao.org/webpack-dev-server/download/webpack-dev-server-2.11.2.tgz#1f4f4c78bf1895378f376815910812daf79a216f" + 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-merge@^4.1.0: + version "4.1.3" + resolved "http://registry.npm.taobao.org/webpack-merge/download/webpack-merge-4.1.3.tgz#8aaff2108a19c29849bc9ad2a7fd7fce68e87c4a" + dependencies: + lodash "^4.17.5" + +webpack-sources@^1.0.1, webpack-sources@^1.1.0: + 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.6.0: + version "3.12.0" + resolved "http://registry.npm.taobao.org/webpack/download/webpack-3.12.0.tgz#3f9e34360370602fcf639e97939db486f4ec0d74" + dependencies: + acorn "^5.0.0" + acorn-dynamic-import "^2.0.0" + ajv "^6.1.0" + ajv-keywords "^3.1.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" + +whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3: + version "1.0.3" + resolved "http://registry.npm.taobao.org/whatwg-encoding/download/whatwg-encoding-1.0.3.tgz#57c235bc8657e914d24e1a397d3c82daee0a6ba3" + dependencies: + iconv-lite "0.4.19" + +whatwg-mimetype@^2.0.0, whatwg-mimetype@^2.1.0: + version "2.1.0" + resolved "http://registry.npm.taobao.org/whatwg-mimetype/download/whatwg-mimetype-2.1.0.tgz#f0f21d76cbba72362eb609dbed2a30cd17fcc7d4" + +whatwg-url@^6.4.0, whatwg-url@^6.4.1: + version "6.5.0" + resolved "http://registry.npm.taobao.org/whatwg-url/download/whatwg-url-6.5.0.tgz#f2df02bff176fd65070df74ad5ccbb5a199965a8" + dependencies: + lodash.sortby "^4.7.0" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" + +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.2.12, which@^1.2.9, which@^1.3.0: + version "1.3.1" + resolved "http://registry.npm.taobao.org/which/download/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + dependencies: + isexe "^2.0.0" + +wide-align@^1.1.0: + version "1.1.3" + resolved "http://registry.npm.taobao.org/wide-align/download/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" + dependencies: + string-width "^1.0.2 || 2" + +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" + +wordwrap@0.0.2: + version "0.0.2" + resolved "http://registry.npm.taobao.org/wordwrap/download/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" + +wordwrap@~0.0.2: + version "0.0.3" + resolved "http://registry.npm.taobao.org/wordwrap/download/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" + +wordwrap@~1.0.0: + version "1.0.0" + resolved "http://registry.npm.taobao.org/wordwrap/download/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + +worker-farm@^1.5.2: + version "1.6.0" + resolved "http://registry.npm.taobao.org/worker-farm/download/worker-farm-1.6.0.tgz#aecc405976fab5a95526180846f0dba288f3a4a0" + dependencies: + errno "~0.1.7" + +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.1.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@^4.0.0: + version "4.1.0" + resolved "http://registry.npm.taobao.org/ws/download/ws-4.1.0.tgz#a979b5d7d4da68bf54efe0408967c324869a7289" + dependencies: + async-limiter "~1.0.0" + safe-buffer "~5.1.0" + +xml-name-validator@^3.0.0: + version "3.0.0" + resolved "http://registry.npm.taobao.org/xml-name-validator/download/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" + +xregexp@2.0.0: + version "2.0.0" + resolved "http://registry.npm.taobao.org/xregexp/download/xregexp-2.0.0.tgz#52a63e56ca0b84a7f3a5f3d61872f126ad7a5943" + +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" + +xxhashjs@^0.2.1: + version "0.2.2" + resolved "http://registry.npm.taobao.org/xxhashjs/download/xxhashjs-0.2.2.tgz#8a6251567621a1c46a5ae204da0249c7f8caa9d8" + dependencies: + cuint "^0.2.2" + +y18n@^3.2.1: + version "3.2.1" + resolved "http://registry.npm.taobao.org/y18n/download/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" + +y18n@^4.0.0: + version "4.0.0" + resolved "http://registry.npm.taobao.org/y18n/download/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" + +yallist@^2.1.2: + version "2.1.2" + resolved "http://registry.npm.taobao.org/yallist/download/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + +yallist@^3.0.0, yallist@^3.0.2: + version "3.0.2" + resolved "http://registry.npm.taobao.org/yallist/download/yallist-3.0.2.tgz#8452b4bb7e83c7c188d8041c1a837c773d6d8bb9" + +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@^8.1.0: + version "8.1.0" + resolved "http://registry.npm.taobao.org/yargs-parser/download/yargs-parser-8.1.0.tgz#f1376a33b6629a5d063782944da732631e966950" + 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@^10.0.3: + version "10.1.2" + resolved "http://registry.npm.taobao.org/yargs/download/yargs-10.1.2.tgz#454d074c2b16a51a43e2fb7807e4f9de69ccb5c5" + 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 "^8.1.0" + +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" From 704c8ec39b4040a57d7d66ef607519f43b09fbd5 Mon Sep 17 00:00:00 2001 From: vinman Date: Thu, 12 Jul 2018 19:01:00 +0800 Subject: [PATCH 2/7] update img --- backend/projects/ide/example/.config | 2 +- backend/projects/ide/test/.config | 7 ++++--- backend/projects/ide/test/hello.py | 6 ++++++ backend/projects/ide/test/main.py | 3 +-- doc/img/run.png | Bin 54176 -> 16662 bytes 5 files changed, 12 insertions(+), 6 deletions(-) create mode 100644 backend/projects/ide/test/hello.py diff --git a/backend/projects/ide/example/.config b/backend/projects/ide/example/.config index f326367..5fa4407 100644 --- a/backend/projects/ide/example/.config +++ b/backend/projects/ide/example/.config @@ -3,7 +3,7 @@ "/", "/utils" ], - "lastAccessTime":1531392576.8389764, + "lastAccessTime":1531393066.7858956, "openList":[ "/main.py", "/utils/calc.py" diff --git a/backend/projects/ide/test/.config b/backend/projects/ide/test/.config index 42c81c2..ac9c980 100644 --- a/backend/projects/ide/test/.config +++ b/backend/projects/ide/test/.config @@ -2,10 +2,11 @@ "expendKeys":[ "/" ], - "lastAccessTime":1531392570.711179, + "lastAccessTime":1531393140.700247, "openList":[ - "/main.py" + "/main.py", + "/hello.py" ], - "selectFilePath":"/main.py", + "selectFilePath":"/hello.py", "type":"python" } \ No newline at end of file diff --git a/backend/projects/ide/test/hello.py b/backend/projects/ide/test/hello.py new file mode 100644 index 0000000..bf345c7 --- /dev/null +++ b/backend/projects/ide/test/hello.py @@ -0,0 +1,6 @@ +#!/usr/bin/env python3 +import time + +while True: + print('hello', time.time()) + time.sleep(1) \ No newline at end of file diff --git a/backend/projects/ide/test/main.py b/backend/projects/ide/test/main.py index 9b5aa85..4a53ec7 100644 --- a/backend/projects/ide/test/main.py +++ b/backend/projects/ide/test/main.py @@ -1,7 +1,6 @@ #!/usr/bin/env python3 import time -from t while True: - print('===========', time.time()) + print('main', time.time()) time.sleep(1) \ No newline at end of file diff --git a/doc/img/run.png b/doc/img/run.png index 07f2fbc5d0af0f00443ba8e0bc62b3b5dace9459..7e3ff83dc736b01842ca53f674f904066a9ede4a 100644 GIT binary patch literal 16662 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 Wkpro|4Fg8k2q!grEB**C7D5a#OHehrO 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 UP2aPD|3R8OUHx3vIVCg!01e!m;{X5v From 859cc9d374471a2122bc563b8b490ffa75d959b6 Mon Sep 17 00:00:00 2001 From: vinman Date: Fri, 13 Jul 2018 09:55:45 +0800 Subject: [PATCH 3/7] repair rename folder --- src/store/core/model_ide.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/store/core/model_ide.js b/src/store/core/model_ide.js index 4486287..3f4e0bd 100644 --- a/src/store/core/model_ide.js +++ b/src/store/core/model_ide.js @@ -343,7 +343,7 @@ self.renameFile = (fileName) => { }; }; self.selectNode.path = newPath; - self.selectFilePath = self.selectNode.path; + // self.selectFilePath = self.selectNode.path; self.getFile(newPath); self.saveProject(self.getProject); }; From 58c84b32bc785dd40616a8f40d28f9d1fbbacbd4 Mon Sep 17 00:00:00 2001 From: vimior Date: Sun, 15 Jul 2018 15:51:04 +0800 Subject: [PATCH 4/7] update README.md --- README.md | 13 +- doc/img/code.png | Bin 48693 -> 0 bytes doc/img/complete.png | Bin 13719 -> 0 bytes doc/img/run.png | Bin 16662 -> 0 bytes yarn.lock | 8373 ------------------------------------------ 5 files changed, 8 insertions(+), 8378 deletions(-) delete mode 100644 doc/img/code.png delete mode 100644 doc/img/complete.png delete mode 100644 doc/img/run.png delete mode 100644 yarn.lock diff --git a/README.md b/README.md index e59cef9..154089a 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Python-Web-IDE ----------- -> 一个在线Python的IDE +> 一个简易的在线Python的IDE > 前后端分离 ## 概述 @@ -16,11 +16,11 @@ - 支持Python代码运行管理和输出 编码: -![avatar](doc/img/code.png) +![image](doc/img/ide/code.png) 补全: -![avatar](doc/img/complete.png) +![image](doc/img/ide/complete.png) 运行: -![avatar](doc/img/run.png) +![image](doc/img/ide/run.png) ## 编译与运行 ### 前端 @@ -46,7 +46,10 @@ pip install -r requirements.txt # 如果前端页面是独立运行的,不可指定后端端口(除非修改前端代码) python server.py -#访问 +#访问 (工程保存在backend/projects/ide里面) 开发运行前端的情况: localhost:8080 打包好前端的情况: localhost:10086 ``` +### 后续支持 +- 用户区分 +- 配置文件 \ No newline at end of file diff --git a/doc/img/code.png b/doc/img/code.png deleted file mode 100644 index 24f9ca2e72bb7f7f1780cfbcfda7536e24c909b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48693 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 OBQNtpx>)k{hyMbK{Dx)# diff --git a/doc/img/complete.png b/doc/img/complete.png deleted file mode 100644 index d83d35eb6fa5012f5df2885c95d18d72da93bd90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13719 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 MSf0k8bieig0Fhk*&Hw-a diff --git a/doc/img/run.png b/doc/img/run.png deleted file mode 100644 index 7e3ff83dc736b01842ca53f674f904066a9ede4a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16662 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 Wk=0.0.4: - version "1.0.1" - resolved "http://registry.npm.taobao.org/amdefine/download/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" - -ansi-escapes@^3.0.0: - version "3.1.0" - resolved "http://registry.npm.taobao.org/ansi-escapes/download/ansi-escapes-3.1.0.tgz#f73207bb81207d75fd6c83f125af26eea378ca30" - -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@^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.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.2.0, ansi-styles@^3.2.1: - version "3.2.1" - resolved "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - dependencies: - color-convert "^1.9.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" - -append-transform@^1.0.0: - version "1.0.0" - resolved "http://registry.npm.taobao.org/append-transform/download/append-transform-1.0.0.tgz#046a52ae582a228bd72f58acfbe2967c678759ab" - dependencies: - default-require-extensions "^2.0.0" - -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" - -are-we-there-yet@~1.1.2: - version "1.1.5" - resolved "http://registry.npm.taobao.org/are-we-there-yet/download/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" - dependencies: - delegates "^1.0.0" - readable-stream "^2.0.6" - -argparse@^1.0.7: - version "1.0.10" - resolved "http://registry.npm.taobao.org/argparse/download/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - 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-equal@^1.0.0: - version "1.0.0" - resolved "http://registry.npm.taobao.org/array-equal/download/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" - -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-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" - -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" - -asn1.js@^4.0.0: - version "4.10.1" - resolved "http://registry.npm.taobao.org/asn1.js/download/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" - 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.0: - version "1.0.0" - resolved "http://registry.npm.taobao.org/assertion-error/download/assertion-error-1.0.0.tgz#c7f85438fdd466bc7ca16ab90c81513797a5d23b" - -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.x.x: - version "0.11.5" - resolved "http://registry.npm.taobao.org/ast-types/download/ast-types-0.11.5.tgz#9890825d660c03c28339f315e9fa0a360e31ec28" - -astral-regex@^1.0.0: - version "1.0.0" - resolved "http://registry.npm.taobao.org/astral-regex/download/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" - -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-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-limiter@~1.0.0: - version "1.0.0" - resolved "http://registry.npm.taobao.org/async-limiter/download/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" - -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@^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.1.2, async@^2.1.4, async@^2.4.1: - version "2.6.1" - resolved "http://registry.npm.taobao.org/async/download/async-2.6.1.tgz#b245a23ca71930044ec53fa46aa00a3e87c6a610" - dependencies: - lodash "^4.17.10" - -asynckit@^0.4.0: - version "0.4.0" - resolved "http://registry.npm.taobao.org/asynckit/download/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - -atob@^2.1.1: - version "2.1.1" - resolved "http://registry.npm.taobao.org/atob/download/atob-2.1.1.tgz#ae2d5a729477f289d60dd7f96a6314a22dd6c22a" - -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" - -autoprefixer@^7.1.2: - version "7.2.6" - resolved "http://registry.npm.taobao.org/autoprefixer/download/autoprefixer-7.2.6.tgz#256672f86f7c735da849c4f07d008abb056067dc" - dependencies: - browserslist "^2.11.3" - caniuse-lite "^1.0.30000805" - normalize-range "^0.1.2" - num2fraction "^1.2.2" - postcss "^6.0.17" - 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.7.0" - resolved "http://registry.npm.taobao.org/aws4/download/aws4-1.7.0.tgz#d4d0e9b9dbfca77bf08eeb0a8a471550fe39e289" - -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.0.0, babel-core@^6.22.1, babel-core@^6.25.0, babel-core@^6.26.0: - version "6.26.3" - resolved "http://registry.npm.taobao.org/babel-core/download/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" - dependencies: - babel-code-frame "^6.26.0" - babel-generator "^6.26.0" - babel-helpers "^6.24.1" - babel-messages "^6.23.0" - babel-register "^6.26.0" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - convert-source-map "^1.5.1" - debug "^2.6.9" - json5 "^0.5.1" - lodash "^4.17.4" - minimatch "^3.0.4" - path-is-absolute "^1.0.1" - private "^0.1.8" - slash "^1.0.0" - source-map "^0.5.7" - -babel-eslint@^8.2.1: - version "8.2.5" - resolved "http://registry.npm.taobao.org/babel-eslint/download/babel-eslint-8.2.5.tgz#dc2331c259d36782aa189da510c43dedd5adc7a3" - dependencies: - "@babel/code-frame" "7.0.0-beta.44" - "@babel/traverse" "7.0.0-beta.44" - "@babel/types" "7.0.0-beta.44" - babylon "7.0.0-beta.44" - eslint-scope "~3.7.1" - eslint-visitor-keys "^1.0.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-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-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-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-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-vue-jsx-merge-props@^2.0.0, babel-helper-vue-jsx-merge-props@^2.0.2, babel-helper-vue-jsx-merge-props@^2.0.3: - 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-jest@^21.0.2: - version "21.2.0" - resolved "http://registry.npm.taobao.org/babel-jest/download/babel-jest-21.2.0.tgz#2ce059519a9374a2c46f2455b6fbef5ad75d863e" - dependencies: - babel-plugin-istanbul "^4.0.0" - babel-preset-jest "^21.2.0" - -babel-jest@^22.4.4: - version "22.4.4" - resolved "http://registry.npm.taobao.org/babel-jest/download/babel-jest-22.4.4.tgz#977259240420e227444ebe49e226a61e49ea659d" - dependencies: - babel-plugin-istanbul "^4.1.5" - babel-preset-jest "^22.4.4" - -babel-loader@^7.1.1: - version "7.1.5" - resolved "http://registry.npm.taobao.org/babel-loader/download/babel-loader-7.1.5.tgz#e3ee0cd7394aa557e013b02d3e492bfd07aa6d68" - 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-dynamic-import-node@^1.2.0: - version "1.2.0" - resolved "http://registry.npm.taobao.org/babel-plugin-dynamic-import-node/download/babel-plugin-dynamic-import-node-1.2.0.tgz#f91631e703e0595e47d4beafbb088576c87fbeee" - dependencies: - babel-plugin-syntax-dynamic-import "^6.18.0" - -babel-plugin-istanbul@^4.0.0, babel-plugin-istanbul@^4.1.5: - version "4.1.6" - resolved "http://registry.npm.taobao.org/babel-plugin-istanbul/download/babel-plugin-istanbul-4.1.6.tgz#36c59b2192efce81c5b378321b74175add1c9a45" - dependencies: - babel-plugin-syntax-object-rest-spread "^6.13.0" - find-up "^2.1.0" - istanbul-lib-instrument "^1.10.1" - test-exclude "^4.2.1" - -babel-plugin-jest-hoist@^21.2.0: - version "21.2.0" - resolved "http://registry.npm.taobao.org/babel-plugin-jest-hoist/download/babel-plugin-jest-hoist-21.2.0.tgz#2cef637259bd4b628a6cace039de5fcd14dbb006" - -babel-plugin-jest-hoist@^22.4.4: - version "22.4.4" - resolved "http://registry.npm.taobao.org/babel-plugin-jest-hoist/download/babel-plugin-jest-hoist-22.4.4.tgz#b9851906eab34c7bf6f8c895a2b08bea1a844c0b" - -babel-plugin-jsx-event-modifiers@^2.0.2: - version "2.0.5" - resolved "http://registry.npm.taobao.org/babel-plugin-jsx-event-modifiers/download/babel-plugin-jsx-event-modifiers-2.0.5.tgz#93e6ebb5d7553bb08f9fedbf7a0bee3af09a0472" - -babel-plugin-jsx-v-model@^2.0.1: - version "2.0.3" - resolved "http://registry.npm.taobao.org/babel-plugin-jsx-v-model/download/babel-plugin-jsx-v-model-2.0.3.tgz#c396416b99cb1af782087315ae1d3e62e070f47d" - dependencies: - babel-plugin-syntax-jsx "^6.18.0" - html-tags "^2.0.0" - svg-tags "^1.0.0" - -babel-plugin-jsx-vue-functional@^2.1.0: - version "2.1.0" - resolved "http://registry.npm.taobao.org/babel-plugin-jsx-vue-functional/download/babel-plugin-jsx-vue-functional-2.1.0.tgz#5630a0c86fe1904d28c30465e6bf1cf71235a239" - -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-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-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-jsx@^6.18.0: - version "6.18.0" - resolved "http://registry.npm.taobao.org/babel-plugin-syntax-jsx/download/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" - -babel-plugin-syntax-object-rest-spread@^6.13.0, 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-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-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, babel-plugin-transform-es2015-modules-commonjs@^6.26.0: - version "6.26.2" - resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-modules-commonjs/download/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz#58a793863a9e7ca870bdc5a881117ffac27db6f3" - 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-object-rest-spread@^6.22.0, babel-plugin-transform-object-rest-spread@^6.26.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-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-runtime@^6.15.0, babel-plugin-transform-runtime@^6.22.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-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-vue-jsx@^3.5.0: - version "3.7.0" - resolved "http://registry.npm.taobao.org/babel-plugin-transform-vue-jsx/download/babel-plugin-transform-vue-jsx-3.7.0.tgz#d40492e6692a36b594f7e9a1928f43e969740960" - dependencies: - esutils "^2.0.2" - -babel-preset-env@^1.3.2, babel-preset-env@^1.6.0: - version "1.7.0" - resolved "http://registry.npm.taobao.org/babel-preset-env/download/babel-preset-env-1.7.0.tgz#dea79fa4ebeb883cd35dab07e260c1c9c04df77a" - 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 "^3.2.6" - invariant "^2.2.2" - semver "^5.3.0" - -babel-preset-jest@^21.2.0: - version "21.2.0" - resolved "http://registry.npm.taobao.org/babel-preset-jest/download/babel-preset-jest-21.2.0.tgz#ff9d2bce08abd98e8a36d9a8a5189b9173b85638" - dependencies: - babel-plugin-jest-hoist "^21.2.0" - babel-plugin-syntax-object-rest-spread "^6.13.0" - -babel-preset-jest@^22.4.4: - version "22.4.4" - resolved "http://registry.npm.taobao.org/babel-preset-jest/download/babel-preset-jest-22.4.4.tgz#ec9fbd8bcd7dfd24b8b5320e0e688013235b7c39" - dependencies: - babel-plugin-jest-hoist "^22.4.4" - babel-plugin-syntax-object-rest-spread "^6.13.0" - -babel-preset-stage-2@^6.22.0: - 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-preset-vue-app@^1.3.1: - version "1.3.2" - resolved "http://registry.npm.taobao.org/babel-preset-vue-app/download/babel-preset-vue-app-1.3.2.tgz#53e98ac012a4edd3f8356cc6aafa000a6e980292" - dependencies: - babel-plugin-syntax-dynamic-import "^6.18.0" - babel-plugin-transform-object-rest-spread "^6.26.0" - babel-plugin-transform-runtime "^6.15.0" - babel-preset-env "^1.6.0" - babel-preset-vue "^1.2.1" - babel-runtime "^6.20.0" - -babel-preset-vue@^1.2.1: - version "1.2.1" - resolved "http://registry.npm.taobao.org/babel-preset-vue/download/babel-preset-vue-1.2.1.tgz#b0de8977e0ce981fc6824cf0a537917a02a6fe87" - dependencies: - babel-helper-vue-jsx-merge-props "^2.0.2" - babel-plugin-jsx-event-modifiers "^2.0.2" - babel-plugin-jsx-v-model "^2.0.1" - babel-plugin-jsx-vue-functional "^2.1.0" - babel-plugin-syntax-jsx "^6.18.0" - babel-plugin-transform-vue-jsx "^3.5.0" - -babel-register@^6.22.0, 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.x, babel-runtime@^6.18.0, babel-runtime@^6.20.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.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.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" - -babylon@7.0.0-beta.44: - version "7.0.0-beta.44" - resolved "http://registry.npm.taobao.org/babylon/download/babylon-7.0.0-beta.44.tgz#89159e15e6e30c5096e22d738d8c0af8a0e8ca1d" - -babylon@^6.18.0: - version "6.18.0" - resolved "http://registry.npm.taobao.org/babylon/download/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" - -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-js@^1.0.2: - version "1.3.0" - resolved "http://registry.npm.taobao.org/base64-js/download/base64-js-1.3.0.tgz#cab1e6118f051095e58b5281aea8c1cd22bfc0e3" - -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.2" - resolved "http://registry.npm.taobao.org/bcrypt-pbkdf/download/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - dependencies: - tweetnacl "^0.14.3" - -bfj-node4@^5.2.0: - version "5.3.1" - resolved "http://registry.npm.taobao.org/bfj-node4/download/bfj-node4-5.3.1.tgz#e23d8b27057f1d0214fc561142ad9db998f26830" - dependencies: - bluebird "^3.5.1" - check-types "^7.3.0" - tryer "^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" - -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@^3.0.5, bluebird@^3.1.1, bluebird@^3.4.7, 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: - 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" - -brace-expansion@^1.0.0, brace-expansion@^1.1.7: - version "1.1.11" - resolved "http://registry.npm.taobao.org/brace-expansion/download/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -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, braces@^2.3.1: - version "2.3.2" - resolved "http://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" - dependencies: - arr-flatten "^1.1.0" - array-unique "^0.3.2" - 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-process-hrtime@^0.1.2: - version "0.1.2" - resolved "http://registry.npm.taobao.org/browser-process-hrtime/download/browser-process-hrtime-0.1.2.tgz#425d68a58d3447f02a04aa894187fce8af8b7b8e" - -browser-resolve@^1.11.2: - version "1.11.3" - resolved "http://registry.npm.taobao.org/browser-resolve/download/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6" - dependencies: - resolve "1.1.7" - -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.2.0" - resolved "http://registry.npm.taobao.org/browserify-aes/download/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" - 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.1" - resolved "http://registry.npm.taobao.org/browserify-cipher/download/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" - dependencies: - browserify-aes "^1.0.4" - browserify-des "^1.0.0" - evp_bytestokey "^1.0.0" - -browserify-des@^1.0.0: - version "1.0.1" - resolved "http://registry.npm.taobao.org/browserify-des/download/browserify-des-1.0.1.tgz#3343124db6d7ad53e26a8826318712bdc8450f9c" - 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.11.3: - 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" - -browserslist@^3.2.6: - version "3.2.8" - resolved "http://registry.npm.taobao.org/browserslist/download/browserslist-3.2.8.tgz#b0005361d6471f0f5952797a76fc985f1f978fc6" - dependencies: - caniuse-lite "^1.0.30000844" - electron-to-chromium "^1.3.47" - -bser@^2.0.0: - version "2.0.0" - resolved "http://registry.npm.taobao.org/bser/download/bser-2.0.0.tgz#9ac78d3ed5d915804fd87acb158bc797147a1719" - dependencies: - node-int64 "^0.4.0" - -buffer-from@^1.0.0: - version "1.1.0" - resolved "http://registry.npm.taobao.org/buffer-from/download/buffer-from-1.1.0.tgz#87fcaa3a298358e0ade6e442cfce840740d1ad04" - -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" - -builtin-modules@^1.0.0: - 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.4: - version "10.0.4" - resolved "http://registry.npm.taobao.org/cacache/download/cacache-10.0.4.tgz#6452367999eff9d4188aefd9a14e9d7c6a263460" - dependencies: - bluebird "^3.5.1" - chownr "^1.0.1" - glob "^7.1.2" - graceful-fs "^4.1.11" - lru-cache "^4.1.1" - mississippi "^2.0.0" - mkdirp "^0.5.1" - move-concurrently "^1.0.1" - promise-inflight "^1.0.1" - rimraf "^2.6.2" - ssri "^5.2.4" - unique-filename "^1.1.0" - y18n "^4.0.0" - -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" - -callsites@^0.2.0: - version "0.2.0" - resolved "http://registry.npm.taobao.org/callsites/download/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" - -callsites@^2.0.0: - version "2.0.0" - resolved "http://registry.npm.taobao.org/callsites/download/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" - -camel-case@3.0.x: - 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.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.30000865" - resolved "http://registry.npm.taobao.org/caniuse-db/download/caniuse-db-1.0.30000865.tgz#82ffb64d40f7567620aac02d3a632079689abc6b" - -caniuse-lite@^1.0.30000792, caniuse-lite@^1.0.30000805, caniuse-lite@^1.0.30000844: - version "1.0.30000865" - resolved "http://registry.npm.taobao.org/caniuse-lite/download/caniuse-lite-1.0.30000865.tgz#70026616e8afe6e1442f8bb4e1092987d81a2f25" - -capture-exit@^1.2.0: - version "1.2.0" - resolved "http://registry.npm.taobao.org/capture-exit/download/capture-exit-1.2.0.tgz#1c5fcc489fd0ab00d4f1ac7ae1072e3173fbab6f" - dependencies: - rsvp "^3.3.3" - -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" - -chai-nightwatch@~0.1.x: - version "0.1.1" - resolved "http://registry.npm.taobao.org/chai-nightwatch/download/chai-nightwatch-0.1.1.tgz#1ca56de768d3c0868fe7fc2f4d32c2fe894e6be9" - dependencies: - assertion-error "1.0.0" - deep-eql "0.1.3" - -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, chalk@^2.4.1: - version "2.4.1" - resolved "http://registry.npm.taobao.org/chalk/download/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e" - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chardet@^0.4.0: - version "0.4.2" - resolved "http://registry.npm.taobao.org/chardet/download/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" - -check-types@^7.3.0: - version "7.4.0" - resolved "http://registry.npm.taobao.org/check-types/download/check-types-7.4.0.tgz#0378ec1b9616ec71f774931a3c6516fad8c152f4" - -chokidar@^2.0.0, chokidar@^2.0.2: - version "2.0.4" - resolved "http://registry.npm.taobao.org/chokidar/download/chokidar-2.0.4.tgz#356ff4e2b0e8e43e322d18a372460bbcf3accd26" - 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" - lodash.debounce "^4.0.8" - normalize-path "^2.1.1" - path-is-absolute "^1.0.0" - readdirp "^2.0.0" - upath "^1.0.5" - optionalDependencies: - fsevents "^1.2.2" - -chownr@^1.0.1: - version "1.0.1" - resolved "http://registry.npm.taobao.org/chownr/download/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181" - -ci-info@^1.0.0: - version "1.1.3" - resolved "http://registry.npm.taobao.org/ci-info/download/ci-info-1.1.3.tgz#710193264bb05c77b8c90d02f5aaf22216a667b2" - -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@4.1.x: - version "4.1.11" - resolved "http://registry.npm.taobao.org/clean-css/download/clean-css-4.1.11.tgz#2ecdf145aba38f54740f26cefd0ff3e03e125d6a" - dependencies: - source-map "0.5.x" - -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-spinners@^1.0.1: - version "1.3.1" - resolved "http://registry.npm.taobao.org/cli-spinners/download/cli-spinners-1.3.1.tgz#002c1990912d0d59580c93bd36c056de99e4259a" - -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.1.0" - resolved "http://registry.npm.taobao.org/cliui/download/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" - dependencies: - string-width "^2.1.1" - strip-ansi "^4.0.0" - wrap-ansi "^2.0.0" - -clone-deep@^2.0.1: - version "2.0.2" - resolved "http://registry.npm.taobao.org/clone-deep/download/clone-deep-2.0.2.tgz#00db3a1e173656730d1188c3d6aced6d7ea97713" - dependencies: - for-own "^1.0.0" - is-plain-object "^2.0.4" - kind-of "^6.0.0" - shallow-clone "^1.0.0" - -clone@2.x: - version "2.1.2" - resolved "http://registry.npm.taobao.org/clone/download/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" - -clone@^1.0.2: - version "1.0.4" - resolved "http://registry.npm.taobao.org/clone/download/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" - -co@^4.6.0: - version "4.6.0" - resolved "http://registry.npm.taobao.org/co/download/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - -co@~3.0.6: - version "3.0.6" - resolved "http://registry.npm.taobao.org/co/download/co-3.0.6.tgz#1445f226c5eb956138e68c9ac30167ea7d2e6bda" - -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" - -codemirror@^5.32.0, codemirror@^5.39.0: - version "5.39.0" - resolved "http://registry.npm.taobao.org/codemirror/download/codemirror-5.39.0.tgz#4654f7d2f7e525e04a62e72d9482348ccb37dce5" - -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.2" - resolved "http://registry.npm.taobao.org/color-convert/download/color-convert-1.9.2.tgz#49881b8fba67df12a96bdf3f56c0aab9e7913147" - dependencies: - color-name "1.1.1" - -color-name@1.1.1: - version "1.1.1" - resolved "http://registry.npm.taobao.org/color-name/download/color-name-1.1.1.tgz#4b1415304cf50028ea81643643bd82ea05803689" - -color-name@^1.0.0: - 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.2: - version "1.1.2" - resolved "http://registry.npm.taobao.org/colors/download/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" - -combined-stream@1.0.6, combined-stream@^1.0.5, combined-stream@~1.0.5: - version "1.0.6" - resolved "http://registry.npm.taobao.org/combined-stream/download/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818" - dependencies: - delayed-stream "~1.0.0" - -commander@2.16.x, commander@^2.13.0, commander@^2.9.0, commander@~2.16.0: - version "2.16.0" - resolved "http://registry.npm.taobao.org/commander/download/commander-2.16.0.tgz#f16390593996ceb4f3eeb020b31d78528f7f8a50" - -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.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-versions@^3.1.0: - version "3.3.0" - resolved "http://registry.npm.taobao.org/compare-versions/download/compare-versions-3.3.0.tgz#af93ea705a96943f622ab309578b9b90586f39c3" - -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" - -compressible@~2.0.13: - version "2.0.14" - resolved "http://registry.npm.taobao.org/compressible/download/compressible-2.0.14.tgz#326c5f507fbb055f54116782b969a81b67a29da7" - dependencies: - mime-db ">= 1.34.0 < 2" - -compression@^1.5.2: - version "1.7.2" - resolved "http://registry.npm.taobao.org/compression/download/compression-1.7.2.tgz#aaffbcd6aaf854b44ebb280353d5ad1651f59a69" - dependencies: - accepts "~1.3.4" - bytes "3.0.0" - compressible "~2.0.13" - 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.5.0, concat-stream@^1.6.0: - version "1.6.2" - resolved "http://registry.npm.taobao.org/concat-stream/download/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - -condense-newlines@^0.2.1: - version "0.2.1" - resolved "http://registry.npm.taobao.org/condense-newlines/download/condense-newlines-0.2.1.tgz#3de985553139475d32502c83b02f60684d24c55f" - dependencies: - extend-shallow "^2.0.1" - is-whitespace "^0.3.0" - kind-of "^3.0.2" - -config-chain@~1.1.5: - version "1.1.11" - resolved "http://registry.npm.taobao.org/config-chain/download/config-chain-1.1.11.tgz#aba09747dfbe4c3e70e766a6e41586e1859fc6f2" - dependencies: - ini "^1.3.4" - proto-list "~1.2.1" - -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" - -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" - -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.4.0, convert-source-map@^1.5.1: - version "1.5.1" - resolved "http://registry.npm.taobao.org/convert-source-map/download/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5" - -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.5.2" - resolved "http://registry.npm.taobao.org/copy-webpack-plugin/download/copy-webpack-plugin-4.5.2.tgz#d53444a8fea2912d806e78937390ddd7e632ee5c" - dependencies: - cacache "^10.0.4" - find-cache-dir "^1.0.0" - globby "^7.1.1" - is-glob "^4.0.0" - loader-utils "^1.1.0" - minimatch "^3.0.4" - p-limit "^1.0.0" - serialize-javascript "^1.4.0" - -core-js@^2.4.0, core-js@^2.5.0: - version "2.5.7" - resolved "http://registry.npm.taobao.org/core-js/download/core-js-2.5.7.tgz#f972608ff0cead68b841a16a932d0b183791814e" - -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" - -cosmiconfig@^4.0.0: - version "4.0.0" - resolved "http://registry.npm.taobao.org/cosmiconfig/download/cosmiconfig-4.0.0.tgz#760391549580bbd2df1e562bc177b13c290972dc" - dependencies: - is-directory "^0.3.1" - js-yaml "^3.9.0" - parse-json "^4.0.0" - require-from-string "^2.0.1" - -create-ecdh@^4.0.0: - version "4.0.3" - resolved "http://registry.npm.taobao.org/create-ecdh/download/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" - dependencies: - bn.js "^4.1.0" - elliptic "^6.0.0" - -create-hash@^1.1.0, create-hash@^1.1.2: - version "1.2.0" - resolved "http://registry.npm.taobao.org/create-hash/download/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - md5.js "^1.3.4" - ripemd160 "^2.0.1" - sha.js "^2.4.0" - -create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: - version "1.1.7" - resolved "http://registry.npm.taobao.org/create-hmac/download/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" - 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-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" - -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" - -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" - -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.11: - version "0.28.11" - resolved "http://registry.npm.taobao.org/css-loader/download/css-loader-0.28.11.tgz#c3f9864a700be2711bb5a2462b2389b1a392dab7" - 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-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-what@2.1: - version "2.1.0" - resolved "http://registry.npm.taobao.org/css-what/download/css-what-2.1.0.tgz#9467d032c38cfaefb9f2d79501253062f87fa1bd" - -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, cssnano@^3.4.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" - -cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0": - version "0.3.4" - resolved "http://registry.npm.taobao.org/cssom/download/cssom-0.3.4.tgz#8cd52e8a3acfd68d3aed38ee0a640177d2f9d797" - -"cssstyle@>= 0.3.1 < 0.4.0": - version "0.3.1" - resolved "http://registry.npm.taobao.org/cssstyle/download/cssstyle-0.3.1.tgz#6da9b4cff1bc5d716e6e5fe8e04fcb1b50a49adf" - dependencies: - cssom "0.3.x" - -cuint@^0.2.2: - version "0.2.2" - resolved "http://registry.npm.taobao.org/cuint/download/cuint-0.2.2.tgz#408086d409550c2631155619e9fa7bcadc3b991b" - -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" - -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" - -data-uri-to-buffer@1: - version "1.2.0" - resolved "http://registry.npm.taobao.org/data-uri-to-buffer/download/data-uri-to-buffer-1.2.0.tgz#77163ea9c20d8641b4707e8f18abdf9a78f34835" - -data-urls@^1.0.0: - version "1.0.0" - resolved "http://registry.npm.taobao.org/data-urls/download/data-urls-1.0.0.tgz#24802de4e81c298ea8a9388bb0d8e461c774684f" - dependencies: - abab "^1.0.4" - whatwg-mimetype "^2.0.0" - whatwg-url "^6.4.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" - -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, debug@2.6.9, debug@^2.1.2, 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@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@^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@0.1.3: - version "0.1.3" - resolved "http://registry.npm.taobao.org/deep-eql/download/deep-eql-0.1.3.tgz#ef558acab8de25206cd713906d74e56930eb69f2" - dependencies: - type-detect "0.1.1" - -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.6.0: - version "0.6.0" - resolved "http://registry.npm.taobao.org/deep-extend/download/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" - -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" - -default-require-extensions@^2.0.0: - version "2.0.0" - resolved "http://registry.npm.taobao.org/default-require-extensions/download/default-require-extensions-2.0.0.tgz#f5f8fbb18a7d6d50b21f641f649ebb522cfe24f7" - dependencies: - strip-bom "^3.0.0" - -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" - -define-property@^2.0.2: - version "2.0.2" - resolved "http://registry.npm.taobao.org/define-property/download/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" - dependencies: - is-descriptor "^1.0.2" - isobject "^3.0.1" - -defined@^1.0.0: - version "1.0.0" - resolved "http://registry.npm.taobao.org/defined/download/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" - -degenerator@~1.0.2: - version "1.0.4" - resolved "http://registry.npm.taobao.org/degenerator/download/degenerator-1.0.4.tgz#fcf490a37ece266464d9cc431ab98c5819ced095" - dependencies: - ast-types "0.x.x" - escodegen "1.x.x" - esprima "3.x.x" - -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, depd@~1.1.2: - 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-newline@^2.1.0: - version "2.1.0" - resolved "http://registry.npm.taobao.org/detect-newline/download/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" - -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" - -diff-match-patch@^1.0.0: - version "1.0.1" - resolved "http://registry.npm.taobao.org/diff-match-patch/download/diff-match-patch-1.0.1.tgz#d5f880213d82fbc124d2b95111fb3c033dbad7fa" - -diff@1.4.0: - version "1.4.0" - resolved "http://registry.npm.taobao.org/diff/download/diff-1.4.0.tgz#7f28d2eb9ee7b15a97efd89ce63dcfdaa3ccbabf" - -diff@^3.2.0: - version "3.5.0" - resolved "http://registry.npm.taobao.org/diff/download/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" - -diffie-hellman@^5.0.0: - version "5.0.3" - resolved "http://registry.npm.taobao.org/diffie-hellman/download/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" - 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" - -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-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: - 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" - -domexception@^1.0.0: - version "1.0.1" - resolved "http://registry.npm.taobao.org/domexception/download/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" - dependencies: - webidl-conversions "^4.0.2" - -domhandler@2.1: - version "2.1.0" - resolved "http://registry.npm.taobao.org/domhandler/download/domhandler-2.1.0.tgz#d2646f5e57f6c3bab11cf6cb05d3c0acf7412594" - 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" - -duplexer@^0.1.1: - version "0.1.1" - resolved "http://registry.npm.taobao.org/duplexer/download/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" - -duplexify@^3.4.2, duplexify@^3.6.0: - version "3.6.0" - resolved "http://registry.npm.taobao.org/duplexify/download/duplexify-3.6.0.tgz#592903f5d80b38d037220541264d69a198fb3410" - 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" - -editorconfig@^0.13.2: - version "0.13.3" - resolved "http://registry.npm.taobao.org/editorconfig/download/editorconfig-0.13.3.tgz#e5219e587951d60958fd94ea9a9a008cdeff1b34" - dependencies: - bluebird "^3.0.5" - commander "^2.9.0" - lru-cache "^3.2.0" - semver "^5.1.0" - sigmund "^1.0.1" - -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: - version "2.5.7" - resolved "http://registry.npm.taobao.org/ejs/download/ejs-2.5.7.tgz#cc872c168880ae3c7189762fd5ffc00896c9518a" - -ejs@^2.5.7: - version "2.6.1" - resolved "http://registry.npm.taobao.org/ejs/download/ejs-2.6.1.tgz#498ec0d495655abc6f23cd61868d926464071aa0" - -electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.30, electron-to-chromium@^1.3.47: - version "1.3.52" - resolved "http://registry.npm.taobao.org/electron-to-chromium/download/electron-to-chromium-1.3.52.tgz#d2d9f1270ba4a3b967b831c40ef71fb4d9ab5ce0" - -element-ui@^2.4.3: - version "2.4.3" - resolved "http://registry.npm.taobao.org/element-ui/download/element-ui-2.4.3.tgz#17a09ba6332b17a90002d86070697dcdb88fe0a5" - dependencies: - async-validator "~1.8.1" - babel-helper-vue-jsx-merge-props "^2.0.0" - deepmerge "^1.2.0" - normalize-wheel "^1.0.1" - resize-observer-polyfill "^1.5.0" - 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.2: - version "1.0.2" - resolved "http://registry.npm.taobao.org/encodeurl/download/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - -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" - -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" - -entities@~1.1.1: - version "1.1.1" - resolved "http://registry.npm.taobao.org/entities/download/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" - -errno@^0.1.3, errno@~0.1.7: - version "0.1.7" - resolved "http://registry.npm.taobao.org/errno/download/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" - dependencies: - prr "~1.0.1" - -error-ex@^1.2.0, error-ex@^1.3.1: - version "1.3.2" - resolved "http://registry.npm.taobao.org/error-ex/download/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - dependencies: - is-arrayish "^0.2.1" - -error-stack-parser@^2.0.0: - version "2.0.2" - resolved "http://registry.npm.taobao.org/error-stack-parser/download/error-stack-parser-2.0.2.tgz#4ae8dbaa2bf90a8b450707b9149dcabca135520d" - dependencies: - stackframe "^1.0.4" - -es-abstract@^1.5.1, es-abstract@^1.7.0: - version "1.12.0" - resolved "http://registry.npm.taobao.org/es-abstract/download/es-abstract-1.12.0.tgz#9dbbdd27c6856f0001421ca18782d786bf8a6165" - 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.45" - resolved "http://registry.npm.taobao.org/es5-ext/download/es5-ext-0.10.45.tgz#0bfdf7b473da5919d5adf3bd25ceb754fccc3653" - dependencies: - es6-iterator "~2.0.3" - es6-symbol "~3.1.1" - next-tick "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-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-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.x.x, escodegen@^1.9.0: - version "1.10.0" - resolved "http://registry.npm.taobao.org/escodegen/download/escodegen-1.10.0.tgz#f647395de22519fbd0d928ffcf1d17e0dec2603e" - dependencies: - esprima "^3.1.3" - estraverse "^4.2.0" - esutils "^2.0.2" - optionator "^0.8.1" - optionalDependencies: - source-map "~0.6.1" - -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.7.1: - 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.2.0: - version "2.2.0" - resolved "http://registry.npm.taobao.org/eslint-module-utils/download/eslint-module-utils-2.2.0.tgz#b270362cd88b1a48ad308976ce7fa54e98411746" - dependencies: - debug "^2.6.8" - pkg-dir "^1.0.0" - -eslint-plugin-import@^2.7.0: - version "2.13.0" - resolved "http://registry.npm.taobao.org/eslint-plugin-import/download/eslint-plugin-import-2.13.0.tgz#df24f241175e312d91662dc91ca84064caec14ed" - dependencies: - contains-path "^0.1.0" - debug "^2.6.8" - doctrine "1.5.0" - eslint-import-resolver-node "^0.3.1" - eslint-module-utils "^2.2.0" - has "^1.0.1" - lodash "^4.17.4" - minimatch "^3.0.3" - read-pkg-up "^2.0.0" - resolve "^1.6.0" - -eslint-plugin-node@^5.2.0: - 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.4.0: - version "3.8.0" - resolved "http://registry.npm.taobao.org/eslint-plugin-promise/download/eslint-plugin-promise-3.8.0.tgz#65ebf27a845e3c1e9d6f6a5622ddd3801694b621" - -eslint-plugin-standard@^3.0.1: - version "3.1.0" - resolved "http://registry.npm.taobao.org/eslint-plugin-standard/download/eslint-plugin-standard-3.1.0.tgz#2a9e21259ba4c47c02d53b2d0c9135d4b1022d47" - -eslint-plugin-vue@^4.0.0: - version "4.5.0" - resolved "http://registry.npm.taobao.org/eslint-plugin-vue/download/eslint-plugin-vue-4.5.0.tgz#09d6597f4849e31a3846c2c395fccf17685b69c3" - dependencies: - vue-eslint-parser "^2.0.3" - -eslint-scope@^3.7.1, 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.15.0: - version "4.19.1" - resolved "http://registry.npm.taobao.org/eslint/download/eslint-4.19.1.tgz#32d1d653e1d90408854bfb296f076ec7e186a300" - 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.4" - 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" - regexpp "^1.0.1" - require-uncached "^1.0.3" - semver "^5.3.0" - strip-ansi "^4.0.0" - strip-json-comments "~2.0.1" - table "4.0.2" - text-table "~0.2.0" - -espree@^3.5.2, espree@^3.5.4: - version "3.5.4" - resolved "http://registry.npm.taobao.org/espree/download/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7" - dependencies: - acorn "^5.5.0" - acorn-jsx "^3.0.0" - -esprima@3.x.x, esprima@^3.1.3: - version "3.1.3" - resolved "http://registry.npm.taobao.org/esprima/download/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" - -esprima@^2.6.0: - 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" - -esquery@^1.0.0: - version "1.0.1" - resolved "http://registry.npm.taobao.org/esquery/download/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708" - dependencies: - estraverse "^4.0.0" - -esrecurse@^4.1.0: - version "4.2.1" - resolved "http://registry.npm.taobao.org/esrecurse/download/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" - dependencies: - estraverse "^4.1.0" - -estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: - 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@^3.0.0: - version "3.1.0" - resolved "http://registry.npm.taobao.org/eventemitter3/download/eventemitter3-3.1.0.tgz#090b4d6cdbd645ed10bf750d4b5407942d7ba163" - -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" - -exec-sh@^0.2.0: - version "0.2.2" - resolved "http://registry.npm.taobao.org/exec-sh/download/exec-sh-0.2.2.tgz#2a5e7ffcbd7d0ba2755bdecb16e5a427dfbdec36" - dependencies: - merge "^1.2.0" - -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@^0.1.2: - version "0.1.2" - resolved "http://registry.npm.taobao.org/exit/download/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" - -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@^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" - -expect@^22.4.0: - version "22.4.3" - resolved "http://registry.npm.taobao.org/expect/download/expect-22.4.3.tgz#d5a29d0a0e1fb2153557caef2674d4547e914674" - dependencies: - ansi-styles "^3.2.0" - jest-diff "^22.4.3" - jest-get-type "^22.4.3" - jest-matcher-utils "^22.4.3" - jest-message-util "^22.4.3" - jest-regex-util "^22.4.3" - -express@^4.16.2: - version "4.16.3" - resolved "http://registry.npm.taobao.org/express/download/express-4.16.3.tgz#6af8a502350db3246ecc4becf6b5a34d22f7ed53" - dependencies: - accepts "~1.3.5" - 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.2" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - finalhandler "1.1.1" - 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.3" - qs "6.5.1" - range-parser "~1.2.0" - safe-buffer "5.1.1" - send "0.16.2" - serve-static "1.13.2" - setprototypeof "1.1.0" - statuses "~1.4.0" - type-is "~1.6.16" - 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, extend-shallow@^3.0.2: - 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, 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.2.0" - resolved "http://registry.npm.taobao.org/external-editor/download/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5" - 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.4: - 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" - -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.1.0" - resolved "http://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" - -fast-deep-equal@^2.0.1: - version "2.0.1" - resolved "http://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" - -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.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" - -fb-watchman@^2.0.0: - version "2.0.0" - resolved "http://registry.npm.taobao.org/fb-watchman/download/fb-watchman-2.0.0.tgz#54e9abf7dfa2f26cd9b1636c588c1afc05de5d58" - dependencies: - bser "^2.0.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@^1.1.4: - version "1.1.11" - resolved "http://registry.npm.taobao.org/file-loader/download/file-loader-1.1.11.tgz#6fe886449b0f2a936e43cabaac0cdbfb369506f8" - dependencies: - loader-utils "^1.0.2" - schema-utils "^0.4.5" - -file-uri-to-path@1: - version "1.0.0" - resolved "http://registry.npm.taobao.org/file-uri-to-path/download/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" - -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" - -fileset@^2.0.2: - version "2.0.3" - resolved "http://registry.npm.taobao.org/fileset/download/fileset-2.0.3.tgz#8e7548a96d3cc2327ee5e674168723a333bba2a0" - dependencies: - glob "^7.0.3" - minimatch "^3.0.3" - -filesize@^3.5.11: - version "3.6.1" - resolved "http://registry.npm.taobao.org/filesize/download/filesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317" - -fill-range@^2.1.0: - version "2.2.4" - resolved "http://registry.npm.taobao.org/fill-range/download/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565" - dependencies: - is-number "^2.1.0" - isobject "^2.0.0" - randomatic "^3.0.0" - 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.1.1: - version "1.1.1" - resolved "http://registry.npm.taobao.org/finalhandler/download/finalhandler-1.1.1.tgz#eebf4ed840079c83f4249038c9d703008301b105" - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "~2.3.0" - parseurl "~1.3.2" - statuses "~1.4.0" - unpipe "~1.0.0" - -find-babel-config@^1.1.0: - version "1.1.0" - resolved "http://registry.npm.taobao.org/find-babel-config/download/find-babel-config-1.1.0.tgz#acc01043a6749fec34429be6b64f542ebb5d6355" - dependencies: - json5 "^0.5.1" - path-exists "^3.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.3" - resolved "http://registry.npm.taobao.org/flush-write-stream/download/flush-write-stream-1.0.3.tgz#c5d586ef38af6097650b49bc41b55fabb19f35bd" - dependencies: - inherits "^2.0.1" - readable-stream "^2.0.4" - -follow-redirects@^1.0.0: - version "1.5.1" - resolved "http://registry.npm.taobao.org/follow-redirects/download/follow-redirects-1.5.1.tgz#67a8f14f5a1f67f962c2c46469c79eaec0a90291" - 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.2" - resolved "http://registry.npm.taobao.org/form-data/download/form-data-2.3.2.tgz#4970498be604c20c005d4f5c23aecd21d6b49099" - dependencies: - asynckit "^0.4.0" - combined-stream "1.0.6" - 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" - -friendly-errors-webpack-plugin@^1.6.1: - version "1.7.0" - resolved "http://registry.npm.taobao.org/friendly-errors-webpack-plugin/download/friendly-errors-webpack-plugin-1.7.0.tgz#efc86cbb816224565861a1be7a9d84d0aafea136" - dependencies: - chalk "^1.1.3" - error-stack-parser "^2.0.0" - string-width "^2.0.0" - -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" - -fs-minipass@^1.2.5: - version "1.2.5" - resolved "http://registry.npm.taobao.org/fs-minipass/download/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d" - dependencies: - minipass "^2.2.1" - -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.2.2, fsevents@^1.2.3: - version "1.2.4" - resolved "http://registry.npm.taobao.org/fsevents/download/fsevents-1.2.4.tgz#f41dcb1af2582af3692da36fc55cbd8e1041c426" - dependencies: - nan "^2.9.2" - node-pre-gyp "^0.10.0" - -fstream@^1.0.0, 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" - -ftp@~0.3.10: - version "0.3.10" - resolved "http://registry.npm.taobao.org/ftp/download/ftp-0.3.10.tgz#9197d861ad8142f3e63d5a83bfe4c59f7330885d" - dependencies: - readable-stream "1.1.x" - xregexp "2.0.0" - -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: - version "1.1.3" - resolved "http://registry.npm.taobao.org/gaze/download/gaze-1.1.3.tgz#c441733e13b927ac8c0ff0b4c3b033f28812924a" - dependencies: - globule "^1.0.0" - -get-caller-file@^1.0.1: - version "1.0.3" - resolved "http://registry.npm.taobao.org/get-caller-file/download/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" - -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-uri@2: - version "2.0.2" - resolved "http://registry.npm.taobao.org/get-uri/download/get-uri-2.0.2.tgz#5c795e71326f6ca1286f2fc82575cd2bab2af578" - dependencies: - data-uri-to-buffer "1" - debug "2" - extend "3" - file-uri-to-path "1" - ftp "~0.3.10" - readable-stream "2" - -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" - -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.0.5: - version "7.0.5" - resolved "http://registry.npm.taobao.org/glob/download/glob-7.0.5.tgz#b4202a69099bbb4d292a7c1b95b6682b67ebdc95" - 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@^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" - -globals@^11.0.1, globals@^11.1.0: - version "11.7.0" - resolved "http://registry.npm.taobao.org/globals/download/globals-11.7.0.tgz#a583faa43055b1aca771914bf68258e2fc125673" - -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.1" - resolved "http://registry.npm.taobao.org/globule/download/globule-1.2.1.tgz#5dffb1b191f22d20797a9369b49eab4e9839696d" - dependencies: - glob "~7.1.1" - lodash "~4.17.10" - minimatch "~3.0.2" - -graceful-fs@^4.1.11, graceful-fs@^4.1.2: - 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" - -growly@^1.3.0: - version "1.3.0" - resolved "http://registry.npm.taobao.org/growly/download/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" - -gzip-size@^4.1.0: - version "4.1.0" - resolved "http://registry.npm.taobao.org/gzip-size/download/gzip-size-4.1.0.tgz#8ae096257eabe7d69c45be2b67c448124ffb517c" - dependencies: - duplexer "^0.1.1" - pify "^3.0.0" - -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.11: - 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@~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@^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-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-flag@^3.0.0: - version "3.0.0" - resolved "http://registry.npm.taobao.org/has-flag/download/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - -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.3" - resolved "http://registry.npm.taobao.org/has/download/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - dependencies: - function-bind "^1.1.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.5" - resolved "http://registry.npm.taobao.org/hash.js/download/hash.js-1.1.5.tgz#e38ab4b85dfb1e0c40fe9265c0e9b54854c23812" - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -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" - -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" - -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" - -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" - -hosted-git-info@^2.1.4: - version "2.7.1" - resolved "http://registry.npm.taobao.org/hosted-git-info/download/hosted-git-info-2.7.1.tgz#97f236977bd6e125408930ff6de3eec6281ec047" - -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-encoding-sniffer@^1.0.2: - version "1.0.2" - resolved "http://registry.npm.taobao.org/html-encoding-sniffer/download/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" - dependencies: - whatwg-encoding "^1.0.1" - -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@^3.2.3: - version "3.5.18" - resolved "http://registry.npm.taobao.org/html-minifier/download/html-minifier-3.5.18.tgz#fc8b02826cbbafc6de19a103c41c830a91cffe5a" - dependencies: - camel-case "3.0.x" - clean-css "4.1.x" - commander "2.16.x" - he "1.1.x" - param-case "2.1.x" - relateurl "0.2.x" - uglify-js "3.4.x" - -html-tags@^2.0.0: - version "2.0.0" - resolved "http://registry.npm.taobao.org/html-tags/download/html-tags-2.0.0.tgz#10b30a386085f43cede353cc8fa7cb0deeea668b" - -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.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: - 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-errors@1.6.3, http-errors@~1.6.2: - version "1.6.3" - resolved "http://registry.npm.taobao.org/http-errors/download/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.0" - statuses ">= 1.4.0 < 2" - -http-parser-js@>=0.4.0: - version "0.4.13" - resolved "http://registry.npm.taobao.org/http-parser-js/download/http-parser-js-0.4.13.tgz#3bd6d6fde6e3172c9334c3b33b6c193d80fe1137" - -http-proxy-agent@1: - version "1.0.0" - resolved "http://registry.npm.taobao.org/http-proxy-agent/download/http-proxy-agent-1.0.0.tgz#cc1ce38e453bf984a0f7702d2dd59c73d081284a" - dependencies: - agent-base "2" - debug "2" - extend "3" - -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.16.2: - version "1.17.0" - resolved "http://registry.npm.taobao.org/http-proxy/download/http-proxy-1.17.0.tgz#7ad38494658f84605e2f6db4436df410f4e5be9a" - dependencies: - eventemitter3 "^3.0.0" - follow-redirects "^1.0.0" - requires-port "^1.0.0" - -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" - -https-proxy-agent@1: - version "1.0.0" - resolved "http://registry.npm.taobao.org/https-proxy-agent/download/https-proxy-agent-1.0.0.tgz#35f7da6c48ce4ddbfa264891ac593ee5ff8671e6" - dependencies: - agent-base "2" - debug "2" - extend "3" - -iconv-lite@0.4.19: - version "0.4.19" - resolved "http://registry.npm.taobao.org/iconv-lite/download/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" - -iconv-lite@0.4.23, iconv-lite@^0.4.17, iconv-lite@^0.4.4: - version "0.4.23" - resolved "http://registry.npm.taobao.org/iconv-lite/download/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63" - dependencies: - safer-buffer ">= 2.1.2 < 3" - -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.12" - resolved "http://registry.npm.taobao.org/ieee754/download/ieee754-1.1.12.tgz#50bf24e5b9c8bb98af4964c941cdb0918da7b60b" - -iferr@^0.1.5: - version "0.1.5" - resolved "http://registry.npm.taobao.org/iferr/download/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" - -ignore-walk@^3.0.1: - version "3.0.1" - resolved "http://registry.npm.taobao.org/ignore-walk/download/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8" - dependencies: - minimatch "^3.0.4" - -ignore@^3.3.3, ignore@^3.3.5, ignore@^3.3.6: - version "3.3.10" - resolved "http://registry.npm.taobao.org/ignore/download/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" - -import-cwd@^2.0.0: - version "2.1.0" - resolved "http://registry.npm.taobao.org/import-cwd/download/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" - dependencies: - import-from "^2.1.0" - -import-from@^2.1.0: - version "2.1.0" - resolved "http://registry.npm.taobao.org/import-from/download/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" - dependencies: - resolve-from "^3.0.0" - -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.0: - version "1.3.5" - resolved "http://registry.npm.taobao.org/ini/download/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" - -inquirer@^3.0.6: - 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.0, invariant@^2.2.2: - version "2.2.4" - resolved "http://registry.npm.taobao.org/invariant/download/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" - 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.0.1: - version "1.0.1" - resolved "http://registry.npm.taobao.org/ip/download/ip-1.0.1.tgz#c7e356cdea225ae71b36d70f2e71a92ba4e42590" - -ip@^1.1.0, ip@^1.1.4, 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.6.0: - version "1.6.0" - resolved "http://registry.npm.taobao.org/ipaddr.js/download/ipaddr.js-1.6.0.tgz#e3fa357b773da619f26e95f049d055c72796f86b" - -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.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.4" - resolved "http://registry.npm.taobao.org/is-callable/download/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" - -is-ci@^1.0.10: - 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, is-descriptor@^1.0.2: - 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-generator-fn@^1.0.0: - version "1.0.0" - resolved "http://registry.npm.taobao.org/is-generator-fn/download/is-generator-fn-1.0.0.tgz#969d49e1bb3329f6bb7f09089be26578b2ddd46a" - -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-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-number@^4.0.0: - version "4.0.0" - resolved "http://registry.npm.taobao.org/is-number/download/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" - -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.1" - resolved "http://registry.npm.taobao.org/is-path-in-cwd/download/is-path-in-cwd-1.0.1.tgz#5ac48b345ef675339bd6c7a48a912110b241cf52" - 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-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-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-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-whitespace@^0.3.0: - version "0.3.0" - resolved "http://registry.npm.taobao.org/is-whitespace/download/is-whitespace-0.3.0.tgz#1639ecb1be036aec69a54cbb401cfbed7114ab7f" - -is-windows@^1.0.2: - version "1.0.2" - resolved "http://registry.npm.taobao.org/is-windows/download/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - -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" - -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-api@^1.1.14: - version "1.3.6" - resolved "http://registry.npm.taobao.org/istanbul-api/download/istanbul-api-1.3.6.tgz#0c695f17e533131de8c49e0657175dcfd8af8a8f" - dependencies: - async "^2.1.4" - compare-versions "^3.1.0" - fileset "^2.0.2" - istanbul-lib-coverage "^1.2.0" - istanbul-lib-hook "^1.2.0" - istanbul-lib-instrument "^2.1.0" - istanbul-lib-report "^1.1.4" - istanbul-lib-source-maps "^1.2.5" - istanbul-reports "^1.4.1" - js-yaml "^3.7.0" - mkdirp "^0.5.1" - once "^1.4.0" - -istanbul-lib-coverage@^1.1.1, istanbul-lib-coverage@^1.2.0: - version "1.2.0" - resolved "http://registry.npm.taobao.org/istanbul-lib-coverage/download/istanbul-lib-coverage-1.2.0.tgz#f7d8f2e42b97e37fe796114cb0f9d68b5e3a4341" - -istanbul-lib-coverage@^2.0.1: - version "2.0.1" - resolved "http://registry.npm.taobao.org/istanbul-lib-coverage/download/istanbul-lib-coverage-2.0.1.tgz#2aee0e073ad8c5f6a0b00e0dfbf52b4667472eda" - -istanbul-lib-hook@^1.2.0: - version "1.2.1" - resolved "http://registry.npm.taobao.org/istanbul-lib-hook/download/istanbul-lib-hook-1.2.1.tgz#f614ec45287b2a8fc4f07f5660af787575601805" - dependencies: - append-transform "^1.0.0" - -istanbul-lib-instrument@^1.10.1, istanbul-lib-instrument@^1.8.0: - version "1.10.1" - resolved "http://registry.npm.taobao.org/istanbul-lib-instrument/download/istanbul-lib-instrument-1.10.1.tgz#724b4b6caceba8692d3f1f9d0727e279c401af7b" - 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.2.0" - semver "^5.3.0" - -istanbul-lib-instrument@^2.1.0: - version "2.3.1" - resolved "http://registry.npm.taobao.org/istanbul-lib-instrument/download/istanbul-lib-instrument-2.3.1.tgz#406406730a395acb2e50f0d98137ace16bd4a970" - dependencies: - "@babel/generator" "7.0.0-beta.51" - "@babel/parser" "7.0.0-beta.51" - "@babel/template" "7.0.0-beta.51" - "@babel/traverse" "7.0.0-beta.51" - "@babel/types" "7.0.0-beta.51" - istanbul-lib-coverage "^2.0.1" - semver "^5.5.0" - -istanbul-lib-report@^1.1.4: - version "1.1.4" - resolved "http://registry.npm.taobao.org/istanbul-lib-report/download/istanbul-lib-report-1.1.4.tgz#e886cdf505c4ebbd8e099e4396a90d0a28e2acb5" - dependencies: - istanbul-lib-coverage "^1.2.0" - mkdirp "^0.5.1" - path-parse "^1.0.5" - supports-color "^3.1.2" - -istanbul-lib-source-maps@^1.2.1, istanbul-lib-source-maps@^1.2.5: - version "1.2.5" - resolved "http://registry.npm.taobao.org/istanbul-lib-source-maps/download/istanbul-lib-source-maps-1.2.5.tgz#ffe6be4e7ab86d3603e4290d54990b14506fc9b1" - dependencies: - debug "^3.1.0" - istanbul-lib-coverage "^1.2.0" - mkdirp "^0.5.1" - rimraf "^2.6.1" - source-map "^0.5.3" - -istanbul-reports@^1.4.1: - version "1.5.0" - resolved "http://registry.npm.taobao.org/istanbul-reports/download/istanbul-reports-1.5.0.tgz#c6c2867fa65f59eb7dcedb7f845dfc76aaee70f9" - dependencies: - handlebars "^4.0.11" - -jest-changed-files@^22.2.0: - version "22.4.3" - resolved "http://registry.npm.taobao.org/jest-changed-files/download/jest-changed-files-22.4.3.tgz#8882181e022c38bd46a2e4d18d44d19d90a90fb2" - dependencies: - throat "^4.0.0" - -jest-cli@^22.4.4: - version "22.4.4" - resolved "http://registry.npm.taobao.org/jest-cli/download/jest-cli-22.4.4.tgz#68cd2a2aae983adb1e6638248ca21082fd6d9e90" - dependencies: - ansi-escapes "^3.0.0" - chalk "^2.0.1" - exit "^0.1.2" - glob "^7.1.2" - graceful-fs "^4.1.11" - import-local "^1.0.0" - is-ci "^1.0.10" - istanbul-api "^1.1.14" - istanbul-lib-coverage "^1.1.1" - istanbul-lib-instrument "^1.8.0" - istanbul-lib-source-maps "^1.2.1" - jest-changed-files "^22.2.0" - jest-config "^22.4.4" - jest-environment-jsdom "^22.4.1" - jest-get-type "^22.1.0" - jest-haste-map "^22.4.2" - jest-message-util "^22.4.0" - jest-regex-util "^22.1.0" - jest-resolve-dependencies "^22.1.0" - jest-runner "^22.4.4" - jest-runtime "^22.4.4" - jest-snapshot "^22.4.0" - jest-util "^22.4.1" - jest-validate "^22.4.4" - jest-worker "^22.2.2" - micromatch "^2.3.11" - node-notifier "^5.2.1" - realpath-native "^1.0.0" - rimraf "^2.5.4" - slash "^1.0.0" - string-length "^2.0.0" - strip-ansi "^4.0.0" - which "^1.2.12" - yargs "^10.0.3" - -jest-config@^22.4.4: - version "22.4.4" - resolved "http://registry.npm.taobao.org/jest-config/download/jest-config-22.4.4.tgz#72a521188720597169cd8b4ff86934ef5752d86a" - dependencies: - chalk "^2.0.1" - glob "^7.1.1" - jest-environment-jsdom "^22.4.1" - jest-environment-node "^22.4.1" - jest-get-type "^22.1.0" - jest-jasmine2 "^22.4.4" - jest-regex-util "^22.1.0" - jest-resolve "^22.4.2" - jest-util "^22.4.1" - jest-validate "^22.4.4" - pretty-format "^22.4.0" - -jest-diff@^22.4.0, jest-diff@^22.4.3: - version "22.4.3" - resolved "http://registry.npm.taobao.org/jest-diff/download/jest-diff-22.4.3.tgz#e18cc3feff0aeef159d02310f2686d4065378030" - dependencies: - chalk "^2.0.1" - diff "^3.2.0" - jest-get-type "^22.4.3" - pretty-format "^22.4.3" - -jest-docblock@^22.4.0, jest-docblock@^22.4.3: - version "22.4.3" - resolved "http://registry.npm.taobao.org/jest-docblock/download/jest-docblock-22.4.3.tgz#50886f132b42b280c903c592373bb6e93bb68b19" - dependencies: - detect-newline "^2.1.0" - -jest-environment-jsdom@^22.4.1: - version "22.4.3" - resolved "http://registry.npm.taobao.org/jest-environment-jsdom/download/jest-environment-jsdom-22.4.3.tgz#d67daa4155e33516aecdd35afd82d4abf0fa8a1e" - dependencies: - jest-mock "^22.4.3" - jest-util "^22.4.3" - jsdom "^11.5.1" - -jest-environment-node@^22.4.1: - version "22.4.3" - resolved "http://registry.npm.taobao.org/jest-environment-node/download/jest-environment-node-22.4.3.tgz#54c4eaa374c83dd52a9da8759be14ebe1d0b9129" - dependencies: - jest-mock "^22.4.3" - jest-util "^22.4.3" - -jest-get-type@^22.1.0, jest-get-type@^22.4.3: - version "22.4.3" - resolved "http://registry.npm.taobao.org/jest-get-type/download/jest-get-type-22.4.3.tgz#e3a8504d8479342dd4420236b322869f18900ce4" - -jest-haste-map@^22.4.2: - version "22.4.3" - resolved "http://registry.npm.taobao.org/jest-haste-map/download/jest-haste-map-22.4.3.tgz#25842fa2ba350200767ac27f658d58b9d5c2e20b" - dependencies: - fb-watchman "^2.0.0" - graceful-fs "^4.1.11" - jest-docblock "^22.4.3" - jest-serializer "^22.4.3" - jest-worker "^22.4.3" - micromatch "^2.3.11" - sane "^2.0.0" - -jest-jasmine2@^22.4.4: - version "22.4.4" - resolved "http://registry.npm.taobao.org/jest-jasmine2/download/jest-jasmine2-22.4.4.tgz#c55f92c961a141f693f869f5f081a79a10d24e23" - dependencies: - chalk "^2.0.1" - co "^4.6.0" - expect "^22.4.0" - graceful-fs "^4.1.11" - is-generator-fn "^1.0.0" - jest-diff "^22.4.0" - jest-matcher-utils "^22.4.0" - jest-message-util "^22.4.0" - jest-snapshot "^22.4.0" - jest-util "^22.4.1" - source-map-support "^0.5.0" - -jest-leak-detector@^22.4.0: - version "22.4.3" - resolved "http://registry.npm.taobao.org/jest-leak-detector/download/jest-leak-detector-22.4.3.tgz#2b7b263103afae8c52b6b91241a2de40117e5b35" - dependencies: - pretty-format "^22.4.3" - -jest-matcher-utils@^22.4.0, jest-matcher-utils@^22.4.3: - version "22.4.3" - resolved "http://registry.npm.taobao.org/jest-matcher-utils/download/jest-matcher-utils-22.4.3.tgz#4632fe428ebc73ebc194d3c7b65d37b161f710ff" - dependencies: - chalk "^2.0.1" - jest-get-type "^22.4.3" - pretty-format "^22.4.3" - -jest-message-util@^22.4.0, jest-message-util@^22.4.3: - version "22.4.3" - resolved "http://registry.npm.taobao.org/jest-message-util/download/jest-message-util-22.4.3.tgz#cf3d38aafe4befddbfc455e57d65d5239e399eb7" - dependencies: - "@babel/code-frame" "^7.0.0-beta.35" - chalk "^2.0.1" - micromatch "^2.3.11" - slash "^1.0.0" - stack-utils "^1.0.1" - -jest-mock@^22.4.3: - version "22.4.3" - resolved "http://registry.npm.taobao.org/jest-mock/download/jest-mock-22.4.3.tgz#f63ba2f07a1511772cdc7979733397df770aabc7" - -jest-regex-util@^22.1.0, jest-regex-util@^22.4.3: - version "22.4.3" - resolved "http://registry.npm.taobao.org/jest-regex-util/download/jest-regex-util-22.4.3.tgz#a826eb191cdf22502198c5401a1fc04de9cef5af" - -jest-resolve-dependencies@^22.1.0: - version "22.4.3" - resolved "http://registry.npm.taobao.org/jest-resolve-dependencies/download/jest-resolve-dependencies-22.4.3.tgz#e2256a5a846732dc3969cb72f3c9ad7725a8195e" - dependencies: - jest-regex-util "^22.4.3" - -jest-resolve@^22.4.2: - version "22.4.3" - resolved "http://registry.npm.taobao.org/jest-resolve/download/jest-resolve-22.4.3.tgz#0ce9d438c8438229aa9b916968ec6b05c1abb4ea" - dependencies: - browser-resolve "^1.11.2" - chalk "^2.0.1" - -jest-runner@^22.4.4: - version "22.4.4" - resolved "http://registry.npm.taobao.org/jest-runner/download/jest-runner-22.4.4.tgz#dfca7b7553e0fa617e7b1291aeb7ce83e540a907" - dependencies: - exit "^0.1.2" - jest-config "^22.4.4" - jest-docblock "^22.4.0" - jest-haste-map "^22.4.2" - jest-jasmine2 "^22.4.4" - jest-leak-detector "^22.4.0" - jest-message-util "^22.4.0" - jest-runtime "^22.4.4" - jest-util "^22.4.1" - jest-worker "^22.2.2" - throat "^4.0.0" - -jest-runtime@^22.4.4: - version "22.4.4" - resolved "http://registry.npm.taobao.org/jest-runtime/download/jest-runtime-22.4.4.tgz#9ba7792fc75582a5be0f79af6f8fe8adea314048" - dependencies: - babel-core "^6.0.0" - babel-jest "^22.4.4" - babel-plugin-istanbul "^4.1.5" - chalk "^2.0.1" - convert-source-map "^1.4.0" - exit "^0.1.2" - graceful-fs "^4.1.11" - jest-config "^22.4.4" - jest-haste-map "^22.4.2" - jest-regex-util "^22.1.0" - jest-resolve "^22.4.2" - jest-util "^22.4.1" - jest-validate "^22.4.4" - json-stable-stringify "^1.0.1" - micromatch "^2.3.11" - realpath-native "^1.0.0" - slash "^1.0.0" - strip-bom "3.0.0" - write-file-atomic "^2.1.0" - yargs "^10.0.3" - -jest-serializer-vue@^0.3.0: - version "0.3.0" - resolved "http://registry.npm.taobao.org/jest-serializer-vue/download/jest-serializer-vue-0.3.0.tgz#2128d0c1c83c3bcb2f4fb96104402626bb75506d" - dependencies: - pretty "2.0.0" - -jest-serializer@^22.4.3: - version "22.4.3" - resolved "http://registry.npm.taobao.org/jest-serializer/download/jest-serializer-22.4.3.tgz#a679b81a7f111e4766235f4f0c46d230ee0f7436" - -jest-snapshot@^22.4.0: - version "22.4.3" - resolved "http://registry.npm.taobao.org/jest-snapshot/download/jest-snapshot-22.4.3.tgz#b5c9b42846ffb9faccb76b841315ba67887362d2" - dependencies: - chalk "^2.0.1" - jest-diff "^22.4.3" - jest-matcher-utils "^22.4.3" - mkdirp "^0.5.1" - natural-compare "^1.4.0" - pretty-format "^22.4.3" - -jest-util@^22.4.1, jest-util@^22.4.3: - version "22.4.3" - resolved "http://registry.npm.taobao.org/jest-util/download/jest-util-22.4.3.tgz#c70fec8eec487c37b10b0809dc064a7ecf6aafac" - dependencies: - callsites "^2.0.0" - chalk "^2.0.1" - graceful-fs "^4.1.11" - is-ci "^1.0.10" - jest-message-util "^22.4.3" - mkdirp "^0.5.1" - source-map "^0.6.0" - -jest-validate@^22.4.4: - version "22.4.4" - resolved "http://registry.npm.taobao.org/jest-validate/download/jest-validate-22.4.4.tgz#1dd0b616ef46c995de61810d85f57119dbbcec4d" - dependencies: - chalk "^2.0.1" - jest-config "^22.4.4" - jest-get-type "^22.1.0" - leven "^2.1.0" - pretty-format "^22.4.0" - -jest-worker@^22.2.2, jest-worker@^22.4.3: - version "22.4.3" - resolved "http://registry.npm.taobao.org/jest-worker/download/jest-worker-22.4.3.tgz#5c421417cba1c0abf64bf56bd5fb7968d79dd40b" - dependencies: - merge-stream "^1.0.1" - -jest@^22.0.4: - version "22.4.4" - resolved "http://registry.npm.taobao.org/jest/download/jest-22.4.4.tgz#ffb36c9654b339a13e10b3d4b338eb3e9d49f6eb" - dependencies: - import-local "^1.0.0" - jest-cli "^22.4.4" - -js-base64@^2.1.8, js-base64@^2.1.9: - version "2.4.6" - resolved "http://registry.npm.taobao.org/js-base64/download/js-base64-2.4.6.tgz#1d49f618bef43630cd191f4e122447acfdb947d8" - -js-beautify@^1.6.12, js-beautify@^1.6.14: - version "1.7.5" - resolved "http://registry.npm.taobao.org/js-beautify/download/js-beautify-1.7.5.tgz#69d9651ef60dbb649f65527b53674950138a7919" - dependencies: - config-chain "~1.1.5" - editorconfig "^0.13.2" - mkdirp "~0.5.0" - nopt "~3.0.1" - -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-tokens@^3.0.0 || ^4.0.0": - version "4.0.0" - resolved "http://registry.npm.taobao.org/js-tokens/download/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - -js-yaml@^3.4.3, js-yaml@^3.7.0, js-yaml@^3.9.0, js-yaml@^3.9.1: - version "3.12.0" - resolved "http://registry.npm.taobao.org/js-yaml/download/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1" - 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" - -jsdom@^11.5.1: - version "11.11.0" - resolved "http://registry.npm.taobao.org/jsdom/download/jsdom-11.11.0.tgz#df486efad41aee96c59ad7a190e2449c7eb1110e" - dependencies: - abab "^1.0.4" - acorn "^5.3.0" - acorn-globals "^4.1.0" - array-equal "^1.0.0" - cssom ">= 0.3.2 < 0.4.0" - cssstyle ">= 0.3.1 < 0.4.0" - data-urls "^1.0.0" - domexception "^1.0.0" - escodegen "^1.9.0" - html-encoding-sniffer "^1.0.2" - left-pad "^1.2.0" - nwsapi "^2.0.0" - parse5 "4.0.0" - pn "^1.1.0" - request "^2.83.0" - request-promise-native "^1.0.5" - sax "^1.2.4" - symbol-tree "^3.2.2" - tough-cookie "^2.3.3" - w3c-hr-time "^1.0.1" - webidl-conversions "^4.0.2" - whatwg-encoding "^1.0.3" - whatwg-mimetype "^2.1.0" - whatwg-url "^6.4.1" - ws "^4.0.0" - xml-name-validator "^3.0.0" - -jsesc@^1.3.0: - version "1.3.0" - resolved "http://registry.npm.taobao.org/jsesc/download/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" - -jsesc@^2.5.1: - version "2.5.1" - resolved "http://registry.npm.taobao.org/jsesc/download/jsesc-2.5.1.tgz#e421a2a8e20d6b0819df28908f782526b96dd1fe" - -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-parse-better-errors@^1.0.1: - version "1.0.2" - resolved "http://registry.npm.taobao.org/json-parse-better-errors/download/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" - -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-traverse@^0.4.1: - version "0.4.1" - resolved "http://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - -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" - -jsonify@~0.0.0: - version "0.0.0" - resolved "http://registry.npm.taobao.org/jsonify/download/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" - -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" - -killable@^1.0.0: - version "1.0.0" - resolved "http://registry.npm.taobao.org/killable/download/killable-1.0.0.tgz#da8b84bd47de5395878f95d64d02f2449fe05e6b" - -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: - 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: - 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" - -last-call-webpack-plugin@^2.1.2: - version "2.1.2" - resolved "http://registry.npm.taobao.org/last-call-webpack-plugin/download/last-call-webpack-plugin-2.1.2.tgz#ad80c6e310998294d2ed2180a68e9589e4768c44" - dependencies: - lodash "^4.17.4" - webpack-sources "^1.0.1" - -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" - -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" - -left-pad@^1.2.0: - version "1.3.0" - resolved "http://registry.npm.taobao.org/left-pad/download/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e" - -leven@^2.1.0: - version "2.1.0" - resolved "http://registry.npm.taobao.org/leven/download/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" - -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" - -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" - -load-json-file@^4.0.0: - version "4.0.0" - resolved "http://registry.npm.taobao.org/load-json-file/download/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" - dependencies: - graceful-fs "^4.1.2" - parse-json "^4.0.0" - pify "^3.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.16: - 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" - -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._baseclone@^4.0.0: - version "4.5.7" - resolved "http://registry.npm.taobao.org/lodash._baseclone/download/lodash._baseclone-4.5.7.tgz#ce42ade08384ef5d62fa77c30f61a46e686f8434" - -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._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._stack@^4.0.0: - version "4.1.3" - resolved "http://registry.npm.taobao.org/lodash._stack/download/lodash._stack-4.1.3.tgz#751aa76c1b964b047e76d14fc72a093fcb5e2dd0" - -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.clone@3.0.3: - version "3.0.3" - resolved "http://registry.npm.taobao.org/lodash.clone/download/lodash.clone-3.0.3.tgz#84688c73d32b5a90ca25616963f189252a997043" - dependencies: - lodash._baseclone "^3.0.0" - lodash._bindcallback "^3.0.0" - lodash._isiterateecall "^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.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.debounce@^4.0.8: - version "4.0.8" - resolved "http://registry.npm.taobao.org/lodash.debounce/download/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" - -lodash.defaultsdeep@4.3.2: - version "4.3.2" - resolved "http://registry.npm.taobao.org/lodash.defaultsdeep/download/lodash.defaultsdeep-4.3.2.tgz#6c1a586e6c5647b0e64e2d798141b8836158be8a" - dependencies: - lodash._baseclone "^4.0.0" - lodash._stack "^4.0.0" - lodash.isplainobject "^4.0.0" - lodash.keysin "^4.0.0" - lodash.mergewith "^4.0.0" - lodash.rest "^4.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@^4.0.0: - version "4.0.6" - resolved "http://registry.npm.taobao.org/lodash.isplainobject/download/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" - -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@^4.0.0: - version "4.2.0" - resolved "http://registry.npm.taobao.org/lodash.keysin/download/lodash.keysin-4.2.0.tgz#8cc3fb35c2d94acc443a1863e02fa40799ea6f28" - -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.mergewith@^4.0.0, 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.rest@^4.0.0: - version "4.0.5" - resolved "http://registry.npm.taobao.org/lodash.rest/download/lodash.rest-4.0.5.tgz#954ef75049262038c96d1fc98b28fdaf9f0772aa" - -lodash.sortby@^4.7.0: - version "4.7.0" - resolved "http://registry.npm.taobao.org/lodash.sortby/download/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" - -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.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@4.x, lodash@^4.0.0, lodash@^4.13.1, lodash@^4.17.10, lodash@^4.17.2, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.0, lodash@^4.3.0, lodash@~4.17.10: - version "4.17.10" - resolved "http://registry.npm.taobao.org/lodash/download/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7" - -log-symbols@^2.1.0: - version "2.2.0" - resolved "http://registry.npm.taobao.org/log-symbols/download/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" - dependencies: - chalk "^2.0.1" - -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.4.0" - resolved "http://registry.npm.taobao.org/loose-envify/download/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" - dependencies: - js-tokens "^3.0.0 || ^4.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@^1.1.1: - version "1.1.4" - resolved "http://registry.npm.taobao.org/lower-case/download/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" - -lru-cache@^3.2.0: - version "3.2.0" - resolved "http://registry.npm.taobao.org/lru-cache/download/lru-cache-3.2.0.tgz#71789b3b7f5399bec8565dda38aa30d2a097efee" - dependencies: - pseudomap "^1.0.1" - -lru-cache@^4.0.1, lru-cache@^4.1.1: - version "4.1.3" - resolved "http://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.3.tgz#a1175cf3496dfc8436c156c334b4955992bce69c" - dependencies: - pseudomap "^1.0.2" - yallist "^2.1.2" - -lru-cache@~2.6.5: - version "2.6.5" - resolved "http://registry.npm.taobao.org/lru-cache/download/lru-cache-2.6.5.tgz#e56d6354148ede8d7707b58d143220fd08df0fd5" - -make-dir@^1.0.0: - version "1.3.0" - resolved "http://registry.npm.taobao.org/make-dir/download/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" - dependencies: - pify "^3.0.0" - -makeerror@1.0.x: - version "1.0.11" - resolved "http://registry.npm.taobao.org/makeerror/download/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" - dependencies: - tmpl "1.0.x" - -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" - -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" - -math-random@^1.0.1: - version "1.0.1" - resolved "http://registry.npm.taobao.org/math-random/download/math-random-1.0.1.tgz#8b3aac588b8a66e4975e3cdea67f7bb329601fac" - -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.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" - -merge-stream@^1.0.1: - version "1.0.1" - resolved "http://registry.npm.taobao.org/merge-stream/download/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1" - dependencies: - readable-stream "^2.0.1" - -merge@^1.2.0: - version "1.2.0" - resolved "http://registry.npm.taobao.org/merge/download/merge-1.2.0.tgz#7531e39d4949c281a66b8c5a6e0265e8b05894da" - -methods@~1.1.2: - version "1.1.2" - resolved "http://registry.npm.taobao.org/methods/download/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - -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.10" - resolved "http://registry.npm.taobao.org/micromatch/download/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - braces "^2.3.1" - define-property "^2.0.2" - extend-shallow "^3.0.2" - extglob "^2.0.4" - fragment-cache "^0.2.1" - kind-of "^6.0.2" - nanomatch "^1.2.9" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.2" - -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.34.0 < 2": - version "1.34.0" - resolved "http://registry.npm.taobao.org/mime-db/download/mime-db-1.34.0.tgz#452d0ecff5c30346a6dc1e64b1eaee0d3719ff9a" - -mime-db@~1.33.0: - version "1.33.0" - resolved "http://registry.npm.taobao.org/mime-db/download/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db" - -mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.18, mime-types@~2.1.7: - version "2.1.18" - resolved "http://registry.npm.taobao.org/mime-types/download/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8" - dependencies: - mime-db "~1.33.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.4.1, mime@^1.5.0: - version "1.6.0" - resolved "http://registry.npm.taobao.org/mime/download/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" - -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, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "http://registry.npm.taobao.org/minimalistic-assert/download/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - -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.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" - -minimatch@3.0.3: - version "3.0.3" - resolved "http://registry.npm.taobao.org/minimatch/download/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774" - dependencies: - brace-expansion "^1.0.0" - -minimist@0.0.8: - version "0.0.8" - resolved "http://registry.npm.taobao.org/minimist/download/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" - -minimist@^1.1.1, 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" - -minipass@^2.2.1, minipass@^2.3.3: - version "2.3.3" - resolved "http://registry.npm.taobao.org/minipass/download/minipass-2.3.3.tgz#a7dcc8b7b833f5d368759cce544dccb55f50f233" - dependencies: - safe-buffer "^5.1.2" - yallist "^3.0.0" - -minizlib@^1.1.0: - version "1.1.0" - resolved "http://registry.npm.taobao.org/minizlib/download/minizlib-1.1.0.tgz#11e13658ce46bc3a70a267aac58359d1e0c29ceb" - dependencies: - minipass "^2.2.1" - -mississippi@^2.0.0: - version "2.0.0" - resolved "http://registry.npm.taobao.org/mississippi/download/mississippi-2.0.0.tgz#3442a508fafc28500486feea99409676e4ee5a6f" - 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 "^2.0.1" - 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.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" - -mkpath@1.0.0: - version "1.0.0" - resolved "http://registry.npm.taobao.org/mkpath/download/mkpath-1.0.0.tgz#ebb3a977e7af1c683ae6fda12b545a6ba6c5853d" - -mocha-nightwatch@3.2.2: - version "3.2.2" - resolved "http://registry.npm.taobao.org/mocha-nightwatch/download/mocha-nightwatch-3.2.2.tgz#91bcb9b3bde057dd7677c78125e491e58d66647c" - dependencies: - browser-stdout "1.3.0" - commander "2.9.0" - debug "2.2.0" - diff "1.4.0" - escape-string-regexp "1.0.5" - glob "7.0.5" - growl "1.9.2" - json3 "3.3.2" - lodash.create "3.1.1" - mkdirp "0.5.1" - supports-color "3.1.2" - -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@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" - -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.10.0, nan@^2.9.2: - version "2.10.0" - resolved "http://registry.npm.taobao.org/nan/download/nan-2.10.0.tgz#96d0cd610ebd58d4b4de9cc0c6828cda99c7548f" - -nanomatch@^1.2.9: - version "1.2.13" - resolved "http://registry.npm.taobao.org/nanomatch/download/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - define-property "^2.0.2" - extend-shallow "^3.0.2" - fragment-cache "^0.2.1" - is-windows "^1.0.2" - kind-of "^6.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" - -needle@^2.2.1: - version "2.2.1" - resolved "http://registry.npm.taobao.org/needle/download/needle-2.2.1.tgz#b5e325bd3aae8c2678902fa296f729455d1d3a7d" - dependencies: - debug "^2.1.2" - iconv-lite "^0.4.4" - sax "^1.2.4" - -negotiator@0.6.1: - version "0.6.1" - resolved "http://registry.npm.taobao.org/negotiator/download/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" - -neo-async@^2.5.0: - version "2.5.1" - resolved "http://registry.npm.taobao.org/neo-async/download/neo-async-2.5.1.tgz#acb909e327b1e87ec9ef15f41b8a269512ad41ee" - -netmask@~1.0.4: - version "1.0.6" - resolved "http://registry.npm.taobao.org/netmask/download/netmask-1.0.6.tgz#20297e89d86f6f6400f250d9f4f6b4c1945fcd35" - -next-tick@1: - version "1.0.0" - resolved "http://registry.npm.taobao.org/next-tick/download/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" - -nightwatch@^0.9.12: - version "0.9.21" - resolved "http://registry.npm.taobao.org/nightwatch/download/nightwatch-0.9.21.tgz#9e794a7514b4fd5f46602d368e50515232ab9e90" - dependencies: - chai-nightwatch "~0.1.x" - ejs "2.5.7" - lodash.clone "3.0.3" - lodash.defaultsdeep "4.3.2" - minimatch "3.0.3" - mkpath "1.0.0" - mocha-nightwatch "3.2.2" - optimist "0.6.1" - proxy-agent "2.0.0" - q "1.4.1" - -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-cache@^4.1.1: - version "4.2.0" - resolved "http://registry.npm.taobao.org/node-cache/download/node-cache-4.2.0.tgz#48ac796a874e762582692004a376d26dfa875811" - dependencies: - clone "2.x" - lodash "4.x" - -node-forge@0.7.5: - version "0.7.5" - resolved "http://registry.npm.taobao.org/node-forge/download/node-forge-0.7.5.tgz#6c152c345ce11c52f465c2abd957e8639cd674df" - -node-gyp@^3.3.1: - version "3.7.0" - resolved "http://registry.npm.taobao.org/node-gyp/download/node-gyp-3.7.0.tgz#789478e8f6c45e277aa014f3e28f958f286f9203" - dependencies: - fstream "^1.0.0" - glob "^7.0.3" - graceful-fs "^4.1.2" - mkdirp "^0.5.0" - nopt "2 || 3" - npmlog "0 || 1 || 2 || 3 || 4" - osenv "0" - request ">=2.9.0 <2.82.0" - rimraf "2" - semver "~5.3.0" - tar "^2.0.0" - which "1" - -node-int64@^0.4.0: - version "0.4.0" - resolved "http://registry.npm.taobao.org/node-int64/download/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" - -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-notifier@^5.1.2, node-notifier@^5.2.1: - version "5.2.1" - resolved "http://registry.npm.taobao.org/node-notifier/download/node-notifier-5.2.1.tgz#fa313dd08f5517db0e2502e5758d664ac69f9dea" - dependencies: - growly "^1.3.0" - semver "^5.4.1" - shellwords "^0.1.1" - which "^1.3.0" - -node-pre-gyp@^0.10.0: - version "0.10.3" - resolved "http://registry.npm.taobao.org/node-pre-gyp/download/node-pre-gyp-0.10.3.tgz#3070040716afdc778747b61b6887bf78880b80fc" - dependencies: - detect-libc "^1.0.2" - mkdirp "^0.5.1" - needle "^2.2.1" - nopt "^4.0.1" - npm-packlist "^1.1.6" - npmlog "^4.0.2" - rc "^1.2.7" - rimraf "^2.6.1" - semver "^5.3.0" - tar "^4" - -node-sass@^4.9.2: - version "4.9.2" - resolved "http://registry.npm.taobao.org/node-sass/download/node-sass-4.9.2.tgz#5e63fe6bd0f2ae3ac9d6c14ede8620e2b8bdb437" - 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.10.0" - node-gyp "^3.3.1" - npmlog "^4.0.0" - request "2.87.0" - sass-graph "^2.2.4" - stdout-stream "^1.4.0" - "true-case-path" "^1.0.2" - -"nopt@2 || 3", nopt@~3.0.1: - 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: - 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.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-bundled@^1.0.1: - version "1.0.3" - resolved "http://registry.npm.taobao.org/npm-bundled/download/npm-bundled-1.0.3.tgz#7e71703d973af3370a9591bafe3a63aca0be2308" - -npm-packlist@^1.1.6: - version "1.1.10" - resolved "http://registry.npm.taobao.org/npm-packlist/download/npm-packlist-1.1.10.tgz#1039db9e985727e464df066f4cf0ab6ef85c398a" - dependencies: - ignore-walk "^3.0.1" - npm-bundled "^1.0.1" - -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" - -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" - -nwsapi@^2.0.0: - version "2.0.4" - resolved "http://registry.npm.taobao.org/nwsapi/download/nwsapi-2.0.4.tgz#dc79040a5f77b97716dc79565fc7fc3ef7d50570" - -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.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-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.3.0" - resolved "http://registry.npm.taobao.org/object-hash/download/object-hash-1.3.0.tgz#76d9ba6ff113cf8efc0d996102851fe6723963e2" - -object-keys@^1.0.8: - version "1.0.12" - resolved "http://registry.npm.taobao.org/object-keys/download/object-keys-1.0.12.tgz#09c53855377575310cca62f55bb334abff7b3ed2" - -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.getownpropertydescriptors@^2.0.3: - version "2.0.3" - resolved "http://registry.npm.taobao.org/object.getownpropertydescriptors/download/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16" - dependencies: - define-properties "^1.1.2" - es-abstract "^1.5.1" - -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.2" - resolved "http://registry.npm.taobao.org/obuf/download/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" - -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.3.0, once@^1.3.1, 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@^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" - -opener@^1.4.3: - version "1.4.3" - resolved "http://registry.npm.taobao.org/opener/download/opener-1.4.3.tgz#5c6da2c5d7e5831e8ffa3964950f8d6674ac90b8" - -opn@^5.1.0: - version "5.3.0" - resolved "http://registry.npm.taobao.org/opn/download/opn-5.3.0.tgz#64871565c863875f052cfdf53d3e3cb5adb53b1c" - 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" - -optimize-css-assets-webpack-plugin@^3.2.0: - version "3.2.0" - resolved "http://registry.npm.taobao.org/optimize-css-assets-webpack-plugin/download/optimize-css-assets-webpack-plugin-3.2.0.tgz#09a40c4cefde1dd0142444a873c56aa29eb18e6f" - dependencies: - cssnano "^3.4.0" - last-call-webpack-plugin "^2.1.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" - -ora@^1.2.0: - version "1.4.0" - resolved "http://registry.npm.taobao.org/ora/download/ora-1.4.0.tgz#884458215b3a5d4097592285f93321bb7a79e2e5" - dependencies: - chalk "^2.1.0" - cli-cursor "^2.1.0" - cli-spinners "^1.0.1" - log-symbols "^2.1.0" - -original@>=0.0.5: - version "1.0.1" - resolved "http://registry.npm.taobao.org/original/download/original-1.0.1.tgz#b0a53ff42ba997a8c9cd1fb5daaeb42b9d693190" - dependencies: - url-parse "~1.4.0" - -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.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.5" - resolved "http://registry.npm.taobao.org/osenv/download/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" - 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.3.0" - resolved "http://registry.npm.taobao.org/p-limit/download/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" - 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" - -pac-proxy-agent@1: - version "1.1.0" - resolved "http://registry.npm.taobao.org/pac-proxy-agent/download/pac-proxy-agent-1.1.0.tgz#34a385dfdf61d2f0ecace08858c745d3e791fd4d" - dependencies: - agent-base "2" - debug "2" - extend "3" - get-uri "2" - http-proxy-agent "1" - https-proxy-agent "1" - pac-resolver "~2.0.0" - raw-body "2" - socks-proxy-agent "2" - -pac-resolver@~2.0.0: - version "2.0.0" - resolved "http://registry.npm.taobao.org/pac-resolver/download/pac-resolver-2.0.0.tgz#99b88d2f193fbdeefc1c9a529c1f3260ab5277cd" - dependencies: - co "~3.0.6" - degenerator "~1.0.2" - ip "1.0.1" - netmask "~1.0.4" - thunkify "~2.1.1" - -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: - 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.1" - resolved "http://registry.npm.taobao.org/parse-asn1/download/parse-asn1-5.1.1.tgz#f6bf293818332bd0dab54efb16087724745e6ca8" - 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-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" - -parse-json@^4.0.0: - version "4.0.0" - resolved "http://registry.npm.taobao.org/parse-json/download/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" - dependencies: - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" - -parse5@4.0.0: - version "4.0.0" - resolved "http://registry.npm.taobao.org/parse5/download/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608" - -parseurl@~1.3.2: - version "1.3.2" - resolved "http://registry.npm.taobao.org/parseurl/download/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3" - -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-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: - 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" - -pbkdf2@^3.0.3: - version "3.0.16" - resolved "http://registry.npm.taobao.org/pbkdf2/download/pbkdf2-3.0.16.tgz#7404208ec6b01b62d85bf83853a8064f8d9c2a5c" - 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" - -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, pify@^2.3.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" - -pluralize@^7.0.0: - version "7.0.0" - resolved "http://registry.npm.taobao.org/pluralize/download/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" - -pn@^1.1.0: - version "1.1.0" - resolved "http://registry.npm.taobao.org/pn/download/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" - -portfinder@^1.0.13, 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.3" - resolved "http://registry.npm.taobao.org/postcss-filter-plugins/download/postcss-filter-plugins-2.0.3.tgz#82245fdf82337041645e477114d8e593aa18b8ec" - dependencies: - postcss "^5.0.4" - -postcss-import@^11.0.0: - version "11.1.0" - resolved "http://registry.npm.taobao.org/postcss-import/download/postcss-import-11.1.0.tgz#55c9362c9192994ec68865d224419df1db2981f0" - dependencies: - postcss "^6.0.1" - postcss-value-parser "^3.2.3" - read-cache "^1.0.0" - resolve "^1.1.7" - -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-config@^2.0.0: - version "2.0.0" - resolved "http://registry.npm.taobao.org/postcss-load-config/download/postcss-load-config-2.0.0.tgz#f1312ddbf5912cd747177083c5ef7a19d62ee484" - dependencies: - cosmiconfig "^4.0.0" - import-cwd "^2.0.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-loader@^2.0.8: - version "2.1.6" - resolved "http://registry.npm.taobao.org/postcss-loader/download/postcss-loader-2.1.6.tgz#1d7dd7b17c6ba234b9bed5af13e0bea40a42d740" - dependencies: - loader-utils "^1.1.0" - postcss "^6.0.0" - postcss-load-config "^2.0.0" - schema-utils "^0.4.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-url@^7.2.1: - version "7.3.2" - resolved "http://registry.npm.taobao.org/postcss-url/download/postcss-url-7.3.2.tgz#5fea273807fb84b38c461c3c9a9e8abd235f7120" - dependencies: - mime "^1.4.1" - minimatch "^3.0.4" - mkdirp "^0.5.0" - postcss "^6.0.1" - xxhashjs "^0.2.1" - -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.0, postcss@^6.0.1, postcss@^6.0.17, postcss@^6.0.8: - version "6.0.23" - resolved "http://registry.npm.taobao.org/postcss/download/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324" - dependencies: - chalk "^2.4.1" - source-map "^0.6.1" - supports-color "^5.4.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: - 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.13.7" - resolved "http://registry.npm.taobao.org/prettier/download/prettier-1.13.7.tgz#850f3b8af784a49a6ea2d2eaa7ed1428a34b7281" - -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" - -pretty-format@^22.4.0, pretty-format@^22.4.3: - version "22.4.3" - resolved "http://registry.npm.taobao.org/pretty-format/download/pretty-format-22.4.3.tgz#f873d780839a9c02e9664c8a082e9ee79eaac16f" - dependencies: - ansi-regex "^3.0.0" - ansi-styles "^3.2.0" - -pretty@2.0.0: - version "2.0.0" - resolved "http://registry.npm.taobao.org/pretty/download/pretty-2.0.0.tgz#adbc7960b7bbfe289a557dc5f737619a220d06a5" - dependencies: - condense-newlines "^0.2.1" - extend-shallow "^2.0.1" - js-beautify "^1.6.12" - -private@^0.1.6, private@^0.1.8: - version "0.1.8" - resolved "http://registry.npm.taobao.org/private/download/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" - -process-nextick-args@~2.0.0: - version "2.0.0" - resolved "http://registry.npm.taobao.org/process-nextick-args/download/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" - -process@^0.11.10: - version "0.11.10" - resolved "http://registry.npm.taobao.org/process/download/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - -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" - -proto-list@~1.2.1: - version "1.2.4" - resolved "http://registry.npm.taobao.org/proto-list/download/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" - -proxy-addr@~2.0.3: - version "2.0.3" - resolved "http://registry.npm.taobao.org/proxy-addr/download/proxy-addr-2.0.3.tgz#355f262505a621646b3130a728eb647e22055341" - dependencies: - forwarded "~0.1.2" - ipaddr.js "1.6.0" - -proxy-agent@2.0.0: - version "2.0.0" - resolved "http://registry.npm.taobao.org/proxy-agent/download/proxy-agent-2.0.0.tgz#57eb5347aa805d74ec681cb25649dba39c933499" - dependencies: - agent-base "2" - debug "2" - extend "3" - http-proxy-agent "1" - https-proxy-agent "1" - lru-cache "~2.6.5" - pac-proxy-agent "1" - socks-proxy-agent "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.1, pseudomap@^1.0.2: - version "1.0.2" - resolved "http://registry.npm.taobao.org/pseudomap/download/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - -psl@^1.1.24: - version "1.1.28" - resolved "http://registry.npm.taobao.org/psl/download/psl-1.1.28.tgz#4fb6ceb08a1e2214d4fd4de0ca22dae13740bc7b" - -public-encrypt@^4.0.0: - version "4.0.2" - resolved "http://registry.npm.taobao.org/public-encrypt/download/public-encrypt-4.0.2.tgz#46eb9107206bf73489f8b85b69d91334c6610994" - 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@^2.0.0, pump@^2.0.1: - 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.5.1" - resolved "http://registry.npm.taobao.org/pumpify/download/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" - dependencies: - duplexify "^3.6.0" - 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" - -punycode@^2.1.0: - version "2.1.1" - resolved "http://registry.npm.taobao.org/punycode/download/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - -q@1.4.1: - version "1.4.1" - resolved "http://registry.npm.taobao.org/q/download/q-1.4.1.tgz#55705bcd93c5f3673530c2c2cbc0c2b3addc286e" - -q@^1.1.2: - version "1.5.1" - resolved "http://registry.npm.taobao.org/q/download/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" - -qs@6.5.1: - version "6.5.1" - resolved "http://registry.npm.taobao.org/qs/download/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" - -qs@~6.4.0: - version "6.4.0" - resolved "http://registry.npm.taobao.org/qs/download/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" - -qs@~6.5.1: - version "6.5.2" - resolved "http://registry.npm.taobao.org/qs/download/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" - -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: - version "0.2.0" - resolved "http://registry.npm.taobao.org/querystring/download/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - -querystringify@^2.0.0: - version "2.0.0" - resolved "http://registry.npm.taobao.org/querystringify/download/querystringify-2.0.0.tgz#fa3ed6e68eb15159457c89b37bc6472833195755" - -randomatic@^3.0.0: - version "3.0.0" - resolved "http://registry.npm.taobao.org/randomatic/download/randomatic-3.0.0.tgz#d35490030eb4f7578de292ce6dfb04a91a128923" - dependencies: - is-number "^4.0.0" - kind-of "^6.0.0" - math-random "^1.0.1" - -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.4" - resolved "http://registry.npm.taobao.org/randomfill/download/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" - dependencies: - randombytes "^2.0.5" - safe-buffer "^5.1.0" - -range-parser@^1.0.3, 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: - version "2.3.3" - resolved "http://registry.npm.taobao.org/raw-body/download/raw-body-2.3.3.tgz#1b324ece6b5706e153855bc1148c65bb7f6ea0c3" - dependencies: - bytes "3.0.0" - http-errors "1.6.3" - iconv-lite "0.4.23" - unpipe "1.0.0" - -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.2.7: - version "1.2.8" - resolved "http://registry.npm.taobao.org/rc/download/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" - dependencies: - deep-extend "^0.6.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - -read-cache@^1.0.0: - version "1.0.0" - resolved "http://registry.npm.taobao.org/read-cache/download/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" - dependencies: - pify "^2.3.0" - -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-up@^3.0.0: - version "3.0.0" - resolved "http://registry.npm.taobao.org/read-pkg-up/download/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" - dependencies: - find-up "^2.0.0" - read-pkg "^3.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" - -read-pkg@^3.0.0: - version "3.0.0" - resolved "http://registry.npm.taobao.org/read-pkg/download/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" - dependencies: - load-json-file "^4.0.0" - normalize-package-data "^2.3.2" - path-type "^3.0.0" - -"readable-stream@1 || 2", readable-stream@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.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.2.9, readable-stream@^2.3.3, readable-stream@^2.3.6: - version "2.3.6" - resolved "http://registry.npm.taobao.org/readable-stream/download/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -readable-stream@1.0: - 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.x: - 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" - -realpath-native@^1.0.0: - version "1.0.1" - resolved "http://registry.npm.taobao.org/realpath-native/download/realpath-native-1.0.1.tgz#07f40a0cce8f8261e2e8b7ebebf5c95965d7b633" - dependencies: - util.promisify "^1.0.0" - -rechoir@^0.6.2: - version "0.6.2" - resolved "http://registry.npm.taobao.org/rechoir/download/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" - dependencies: - resolve "^1.1.6" - -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.4.0" - resolved "http://registry.npm.taobao.org/regenerate/download/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" - -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, regex-not@^1.0.2: - version "1.0.2" - resolved "http://registry.npm.taobao.org/regex-not/download/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" - dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" - -regexpp@^1.0.1: - version "1.1.0" - resolved "http://registry.npm.taobao.org/regexpp/download/regexpp-1.1.0.tgz#0e3516dd0b7904f413d2d4193dce4618c3a689ab" - -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" - -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@^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-promise-core@1.1.1: - version "1.1.1" - resolved "http://registry.npm.taobao.org/request-promise-core/download/request-promise-core-1.1.1.tgz#3eee00b2c5aa83239cfb04c5700da36f81cd08b6" - dependencies: - lodash "^4.13.1" - -request-promise-native@^1.0.5: - version "1.0.5" - resolved "http://registry.npm.taobao.org/request-promise-native/download/request-promise-native-1.0.5.tgz#5281770f68e0c9719e5163fd3fab482215f4fda5" - dependencies: - request-promise-core "1.1.1" - stealthy-require "^1.1.0" - tough-cookie ">=2.3.3" - -request@2.87.0, request@^2.83.0: - version "2.87.0" - resolved "http://registry.npm.taobao.org/request/download/request-2.87.0.tgz#32f00235cd08d482b4d0d68db93a829c0ed5756e" - 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" - 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" - tough-cookie "~2.3.3" - tunnel-agent "^0.6.0" - uuid "^3.1.0" - -"request@>=2.9.0 <2.82.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" - -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-from-string@^2.0.1: - version "2.0.2" - resolved "http://registry.npm.taobao.org/require-from-string/download/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" - -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.0: - version "1.0.0" - resolved "http://registry.npm.taobao.org/requires-port/download/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - -resize-observer-polyfill@^1.5.0: - version "1.5.0" - resolved "http://registry.npm.taobao.org/resize-observer-polyfill/download/resize-observer-polyfill-1.5.0.tgz#660ff1d9712a2382baa2cad450a4716209f9ca69" - -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: - version "0.2.1" - resolved "http://registry.npm.taobao.org/resolve-url/download/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - -resolve@1.1.7: - version "1.1.7" - resolved "http://registry.npm.taobao.org/resolve/download/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" - -resolve@^1.1.6, resolve@^1.1.7, resolve@^1.3.3, resolve@^1.4.0, resolve@^1.5.0, resolve@^1.6.0: - version "1.8.1" - resolved "http://registry.npm.taobao.org/resolve/download/resolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26" - dependencies: - path-parse "^1.0.5" - -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" - -ret@~0.1.10: - version "0.1.15" - resolved "http://registry.npm.taobao.org/ret/download/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - -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.4, rimraf@^2.6.0, rimraf@^2.6.1, rimraf@^2.6.2: - 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.2" - resolved "http://registry.npm.taobao.org/ripemd160/download/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - -rsvp@^3.3.3: - version "3.6.2" - resolved "http://registry.npm.taobao.org/rsvp/download/rsvp-3.6.2.tgz#2e96491599a96cde1b515d5674a8f7a91452926a" - -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: - version "5.1.1" - resolved "http://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" - -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "http://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - -safe-regex@^1.1.0: - version "1.1.0" - resolved "http://registry.npm.taobao.org/safe-regex/download/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - dependencies: - ret "~0.1.10" - -"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2: - version "2.1.2" - resolved "http://registry.npm.taobao.org/safer-buffer/download/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - -sane@^2.0.0: - version "2.5.2" - resolved "http://registry.npm.taobao.org/sane/download/sane-2.5.2.tgz#b4dc1861c21b427e929507a3e751e2a2cb8ab3fa" - dependencies: - anymatch "^2.0.0" - capture-exit "^1.2.0" - exec-sh "^0.2.0" - fb-watchman "^2.0.0" - micromatch "^3.1.4" - minimist "^1.1.1" - walker "~1.0.5" - watch "~0.18.0" - optionalDependencies: - fsevents "^1.2.3" - -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@^7.0.3: - version "7.0.3" - resolved "http://registry.npm.taobao.org/sass-loader/download/sass-loader-7.0.3.tgz#6ca10871a1cc7549f8143db5a9958242c4e4ca2a" - dependencies: - clone-deep "^2.0.1" - loader-utils "^1.0.1" - lodash.tail "^4.1.1" - neo-async "^2.5.0" - 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" - -schema-utils@^0.4.0, schema-utils@^0.4.5: - version "0.4.5" - resolved "http://registry.npm.taobao.org/schema-utils/download/schema-utils-0.4.5.tgz#21836f0608aac17b78f9e3e24daff14a5ca13a3e" - dependencies: - ajv "^6.1.0" - ajv-keywords "^3.1.0" - -scss-loader@0.0.1: - version "0.0.1" - resolved "http://registry.npm.taobao.org/scss-loader/download/scss-loader-0.0.1.tgz#eae017b9e0f38c12a532db25c220b902fb34e671" - -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" - -selenium-server@^3.0.1: - version "3.13.0" - resolved "http://registry.npm.taobao.org/selenium-server/download/selenium-server-3.13.0.tgz#daecaa9a684d1d98e799fddd2d670fbe79818d45" - -selfsigned@^1.9.1: - version "1.10.3" - resolved "http://registry.npm.taobao.org/selfsigned/download/selfsigned-1.10.3.tgz#d628ecf9e3735f84e8bafba936b3cf85bea43823" - dependencies: - node-forge "0.7.5" - -"semver@2 || 3 || 4 || 5", 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@~5.0.1: - version "5.0.3" - resolved "http://registry.npm.taobao.org/semver/download/semver-5.0.3.tgz#77466de589cd5d3c95f138aa78bc569a3cb5d27a" - -send@0.16.2: - version "0.16.2" - resolved "http://registry.npm.taobao.org/send/download/send-0.16.2.tgz#6ecca1e0f8c156d141597559848df64730a6bbc1" - dependencies: - debug "2.6.9" - depd "~1.1.2" - destroy "~1.0.4" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "~1.6.2" - mime "1.4.1" - ms "2.0.0" - on-finished "~2.3.0" - range-parser "~1.2.0" - statuses "~1.4.0" - -serialize-javascript@^1.4.0: - version "1.5.0" - resolved "http://registry.npm.taobao.org/serialize-javascript/download/serialize-javascript-1.5.0.tgz#1aa336162c88a890ddad5384baebc93a655161fe" - -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.2: - version "1.13.2" - resolved "http://registry.npm.taobao.org/serve-static/download/serve-static-1.13.2.tgz#095e8472fd5b46237db50ce486a43f4b86c6cec1" - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.2" - send "0.16.2" - -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-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.11" - resolved "http://registry.npm.taobao.org/sha.js/download/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -shallow-clone@^1.0.0: - version "1.0.0" - resolved "http://registry.npm.taobao.org/shallow-clone/download/shallow-clone-1.0.0.tgz#4480cd06e882ef68b2ad88a3ea54832e2c48b571" - dependencies: - is-extendable "^0.1.1" - kind-of "^5.0.0" - 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" - -shelljs@^0.7.6: - version "0.7.8" - resolved "http://registry.npm.taobao.org/shelljs/download/shelljs-0.7.8.tgz#decbcf874b0d1e5fb72e14b164a9683048e9acb3" - dependencies: - glob "^7.0.0" - interpret "^1.0.0" - rechoir "^0.6.2" - -shellwords@^0.1.1: - version "0.1.1" - resolved "http://registry.npm.taobao.org/shellwords/download/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" - -sigmund@^1.0.1: - version "1.0.1" - resolved "http://registry.npm.taobao.org/sigmund/download/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" - -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" - -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" - -smart-buffer@^1.0.13: - version "1.1.15" - resolved "http://registry.npm.taobao.org/smart-buffer/download/smart-buffer-1.1.15.tgz#7f114b5b65fab3e2a35aa775bb12f0d1c649bf16" - -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.2" - resolved "http://registry.npm.taobao.org/snapdragon/download/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" - 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 "^3.1.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" - -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" - -socks-proxy-agent@2: - version "2.1.1" - resolved "http://registry.npm.taobao.org/socks-proxy-agent/download/socks-proxy-agent-2.1.1.tgz#86ebb07193258637870e13b7bd99f26c663df3d3" - dependencies: - agent-base "2" - extend "3" - socks "~1.1.5" - -socks@~1.1.5: - version "1.1.10" - resolved "http://registry.npm.taobao.org/socks/download/socks-1.1.10.tgz#5b8b7fc7c8f341c53ed056e929b7bf4de8ba7b5a" - dependencies: - ip "^1.1.4" - smart-buffer "^1.0.13" - -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.5.0: - version "0.5.2" - resolved "http://registry.npm.taobao.org/source-map-resolve/download/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" - dependencies: - atob "^2.1.1" - 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.0: - version "0.5.6" - resolved "http://registry.npm.taobao.org/source-map-support/download/source-map-support-0.5.6.tgz#4435cee46b1aab62b8e8610ce60f788091c51c13" - dependencies: - buffer-from "^1.0.0" - 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@0.5.x, source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, 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.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.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" - -spdx-correct@^3.0.0: - version "3.0.0" - resolved "http://registry.npm.taobao.org/spdx-correct/download/spdx-correct-3.0.0.tgz#05a5b4d7153a195bc92c3c425b69f3b2a9524c82" - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.1.0" - resolved "http://registry.npm.taobao.org/spdx-exceptions/download/spdx-exceptions-2.1.0.tgz#2c7ae61056c714a5b9b9b2b2af7d311ef5c78fe9" - -spdx-expression-parse@^3.0.0: - version "3.0.0" - resolved "http://registry.npm.taobao.org/spdx-expression-parse/download/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.0" - resolved "http://registry.npm.taobao.org/spdx-license-ids/download/spdx-license-ids-3.0.0.tgz#7a7cd28470cc6d3a1cfe6d66886f6bc430d3ac87" - -spdy-transport@^2.0.18: - version "2.1.0" - resolved "http://registry.npm.taobao.org/spdy-transport/download/spdy-transport-2.1.0.tgz#4bbb15aaffed0beefdd56ad61dbdc8ba3e2cb7a1" - 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" - -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" - -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.14.2" - resolved "http://registry.npm.taobao.org/sshpk/download/sshpk-1.14.2.tgz#c6fc61648a3d9c4e764fd3fcdf4ea105e492ba98" - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - dashdash "^1.12.0" - getpass "^0.1.1" - safer-buffer "^2.0.2" - optionalDependencies: - bcrypt-pbkdf "^1.0.0" - ecc-jsbn "~0.1.1" - jsbn "~0.1.0" - tweetnacl "~0.14.0" - -ssri@^5.2.4: - version "5.3.0" - resolved "http://registry.npm.taobao.org/ssri/download/ssri-5.3.0.tgz#ba3872c9c6d33a0704a7d71ff045e5ec48999d06" - dependencies: - safe-buffer "^5.1.1" - -stack-utils@^1.0.1: - version "1.0.1" - resolved "http://registry.npm.taobao.org/stack-utils/download/stack-utils-1.0.1.tgz#d4f33ab54e8e38778b0ca5cfd3b3afb12db68620" - -stackframe@^1.0.4: - version "1.0.4" - resolved "http://registry.npm.taobao.org/stackframe/download/stackframe-1.0.4.tgz#357b24a992f9427cba6b545d96a14ed2cbca187b" - -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", "statuses@>= 1.4.0 < 2": - version "1.5.0" - resolved "http://registry.npm.taobao.org/statuses/download/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - -statuses@~1.4.0: - version "1.4.0" - resolved "http://registry.npm.taobao.org/statuses/download/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087" - -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" - -stealthy-require@^1.1.0: - version "1.1.1" - resolved "http://registry.npm.taobao.org/stealthy-require/download/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" - -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.3" - resolved "http://registry.npm.taobao.org/stream-http/download/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.1" - readable-stream "^2.3.6" - 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-length@^2.0.0: - version "2.0.0" - resolved "http://registry.npm.taobao.org/string-length/download/string-length-2.0.0.tgz#d40dbb686a3ace960c1cffca562bf2c45f8363ed" - dependencies: - astral-regex "^1.0.0" - strip-ansi "^4.0.0" - -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@^1.0.2 || 2", 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.1.1: - version "1.1.1" - resolved "http://registry.npm.taobao.org/string_decoder/download/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - 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: - version "0.0.6" - resolved "http://registry.npm.taobao.org/stringstream/download/stringstream-0.0.6.tgz#7880225b0d4ad10e30927d167a1d6f2fd3b33a72" - -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@3.0.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-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-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.0, 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" - -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@^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.2, 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.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, supports-color@^5.3.0, supports-color@^5.4.0: - version "5.4.0" - resolved "http://registry.npm.taobao.org/supports-color/download/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54" - dependencies: - has-flag "^3.0.0" - -svg-tags@^1.0.0: - version "1.0.0" - resolved "http://registry.npm.taobao.org/svg-tags/download/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764" - -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" - -symbol-tree@^3.2.2: - version "3.2.2" - resolved "http://registry.npm.taobao.org/symbol-tree/download/symbol-tree-3.2.2.tgz#ae27db38f660a7ae2e1c3b7d1bc290819b8519e6" - -table@4.0.2: - 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@^2.0.0: - 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" - -tar@^4: - version "4.4.4" - resolved "http://registry.npm.taobao.org/tar/download/tar-4.4.4.tgz#ec8409fae9f665a4355cc3b4087d0820232bb8cd" - dependencies: - chownr "^1.0.1" - fs-minipass "^1.2.5" - minipass "^2.3.3" - minizlib "^1.1.0" - mkdirp "^0.5.0" - safe-buffer "^5.1.2" - yallist "^3.0.2" - -test-exclude@^4.2.1: - version "4.2.2" - resolved "http://registry.npm.taobao.org/test-exclude/download/test-exclude-4.2.2.tgz#8b67aa8408f84afc225b06669e25c510f8582820" - dependencies: - arrify "^1.0.1" - minimatch "^3.0.4" - read-pkg-up "^3.0.0" - 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" - -throat@^4.0.0: - version "4.1.0" - resolved "http://registry.npm.taobao.org/throat/download/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a" - -throttle-debounce@^1.0.1: - version "1.1.0" - resolved "http://registry.npm.taobao.org/throttle-debounce/download/throttle-debounce-1.1.0.tgz#51853da37be68a155cb6e827b3514a3c422e89cd" - -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" - -through@^2.3.6: - version "2.3.8" - resolved "http://registry.npm.taobao.org/through/download/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - -thunkify@~2.1.1: - version "2.1.2" - resolved "http://registry.npm.taobao.org/thunkify/download/thunkify-2.1.2.tgz#faa0e9d230c51acc95ca13a361ac05ca7e04553d" - -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" - -timers-browserify@^2.0.4: - version "2.0.10" - resolved "http://registry.npm.taobao.org/timers-browserify/download/timers-browserify-2.0.10.tgz#1d28e3d2aadf1d5a5996c4e9f95601cd053480ae" - dependencies: - setimmediate "^1.0.4" - -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" - -tmpl@1.0.x: - version "1.0.4" - resolved "http://registry.npm.taobao.org/tmpl/download/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" - -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-fast-properties@^2.0.0: - version "2.0.0" - resolved "http://registry.npm.taobao.org/to-fast-properties/download/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - -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, to-regex@^3.0.2: - version "3.0.2" - resolved "http://registry.npm.taobao.org/to-regex/download/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" - dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" - -toposort@^1.0.0: - version "1.0.7" - resolved "http://registry.npm.taobao.org/toposort/download/toposort-1.0.7.tgz#2e68442d9f64ec720b8cc89e6443ac6caa950029" - -tough-cookie@>=2.3.3, tough-cookie@^2.3.3: - version "2.4.3" - resolved "http://registry.npm.taobao.org/tough-cookie/download/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" - dependencies: - psl "^1.1.24" - punycode "^1.4.1" - -tough-cookie@~2.3.0, tough-cookie@~2.3.3: - version "2.3.4" - resolved "http://registry.npm.taobao.org/tough-cookie/download/tough-cookie-2.3.4.tgz#ec60cee38ac675063ffc97a5c18970578ee83655" - dependencies: - punycode "^1.4.1" - -tr46@^1.0.1: - version "1.0.1" - resolved "http://registry.npm.taobao.org/tr46/download/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" - dependencies: - punycode "^2.1.0" - -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" - -tryer@^1.0.0: - version "1.0.1" - resolved "http://registry.npm.taobao.org/tryer/download/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8" - -tsconfig@^7.0.0: - version "7.0.0" - resolved "http://registry.npm.taobao.org/tsconfig/download/tsconfig-7.0.0.tgz#84538875a4dc216e5c4a5432b3a4dec3d54e91b7" - dependencies: - "@types/strip-bom" "^3.0.0" - "@types/strip-json-comments" "0.0.30" - strip-bom "^3.0.0" - strip-json-comments "^2.0.0" - -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" - -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@0.1.1: - version "0.1.1" - resolved "http://registry.npm.taobao.org/type-detect/download/type-detect-0.1.1.tgz#0ba5ec2a885640e470ea4e8505971900dac58822" - -type-is@~1.6.15, type-is@~1.6.16: - version "1.6.16" - resolved "http://registry.npm.taobao.org/type-is/download/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194" - dependencies: - media-typer "0.3.0" - mime-types "~2.1.18" - -typedarray@^0.0.6: - version "0.0.6" - resolved "http://registry.npm.taobao.org/typedarray/download/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - -uglify-es@^3.3.4: - version "3.3.10" - resolved "http://registry.npm.taobao.org/uglify-es/download/uglify-es-3.3.10.tgz#8b0b7992cebe20edc26de1bf325cef797b8f3fa5" - dependencies: - commander "~2.14.1" - source-map "~0.6.1" - -uglify-js@3.4.x: - version "3.4.4" - resolved "http://registry.npm.taobao.org/uglify-js/download/uglify-js-3.4.4.tgz#92e79532a3aeffd4b6c65755bdba8d5bad98d607" - dependencies: - commander "~2.16.0" - 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" - -uglifyjs-webpack-plugin@^1.1.1: - version "1.2.7" - resolved "http://registry.npm.taobao.org/uglifyjs-webpack-plugin/download/uglifyjs-webpack-plugin-1.2.7.tgz#57638dd99c853a1ebfe9d97b42160a8a507f9d00" - dependencies: - cacache "^10.0.4" - find-cache-dir "^1.0.0" - schema-utils "^0.4.5" - serialize-javascript "^1.4.0" - source-map "^0.6.1" - uglify-es "^3.3.4" - webpack-sources "^1.1.0" - worker-farm "^1.5.2" - -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" - -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" - -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" - -upath@^1.0.5: - version "1.1.0" - resolved "http://registry.npm.taobao.org/upath/download/upath-1.1.0.tgz#35256597e46a581db4793d0ce47fa9aebfc9fabd" - -upper-case@^1.1.1: - version "1.1.3" - resolved "http://registry.npm.taobao.org/upper-case/download/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" - -uri-js@^4.2.1: - version "4.2.2" - resolved "http://registry.npm.taobao.org/uri-js/download/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" - dependencies: - punycode "^2.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.8: - 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@^1.1.8, url-parse@~1.4.0: - version "1.4.1" - resolved "http://registry.npm.taobao.org/url-parse/download/url-parse-1.4.1.tgz#4dec9dad3dc8585f862fed461d2e19bbf623df30" - dependencies: - querystringify "^2.0.0" - requires-port "^1.0.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@^3.1.0: - version "3.1.0" - resolved "http://registry.npm.taobao.org/use/download/use-3.1.0.tgz#14716bf03fdfefd03040aef58d8b4b85f3a7c544" - dependencies: - kind-of "^6.0.2" - -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.promisify@^1.0.0: - version "1.0.0" - resolved "http://registry.npm.taobao.org/util.promisify/download/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" - dependencies: - define-properties "^1.1.2" - object.getownpropertydescriptors "^2.0.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" - -util@^0.10.3: - version "0.10.4" - resolved "http://registry.npm.taobao.org/util/download/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901" - dependencies: - inherits "2.0.3" - -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.3.2" - resolved "http://registry.npm.taobao.org/uuid/download/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" - -validate-npm-package-license@^3.0.1: - version "3.0.3" - resolved "http://registry.npm.taobao.org/validate-npm-package-license/download/validate-npm-package-license-3.0.3.tgz#81643bcbef1bdfecd4623793dc4648948ba98338" - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" - -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.2" - resolved "http://registry.npm.taobao.org/vendors/download/vendors-1.0.2.tgz#7fcb5eef9f5623b156bcea89ec37d63676f21801" - -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" - -vue-codemirror@^4.0.5: - version "4.0.5" - resolved "http://registry.npm.taobao.org/vue-codemirror/download/vue-codemirror-4.0.5.tgz#3a784d454fbfb17ce769b9fc90f10e9868687ecb" - dependencies: - codemirror "^5.32.0" - diff-match-patch "^1.0.0" - -vue-eslint-parser@^2.0.3: - version "2.0.3" - resolved "http://registry.npm.taobao.org/vue-eslint-parser/download/vue-eslint-parser-2.0.3.tgz#c268c96c6d94cfe3d938a5f7593959b0ca3360d1" - dependencies: - debug "^3.1.0" - eslint-scope "^3.7.1" - eslint-visitor-keys "^1.0.0" - espree "^3.5.2" - esquery "^1.0.0" - lodash "^4.17.4" - -vue-hot-reload-api@^2.2.0: - version "2.3.0" - resolved "http://registry.npm.taobao.org/vue-hot-reload-api/download/vue-hot-reload-api-2.3.0.tgz#97976142405d13d8efae154749e88c4e358cf926" - -vue-i18n@^8.0.0: - version "8.0.0" - resolved "http://registry.npm.taobao.org/vue-i18n/download/vue-i18n-8.0.0.tgz#ae0c6e05ec8e36151bcf5f47c7b538c8af6d0282" - -vue-jest@^1.0.2: - version "1.4.0" - resolved "http://registry.npm.taobao.org/vue-jest/download/vue-jest-1.4.0.tgz#1d6b4d2774b0aec06cfe5d39789039d3381bc528" - dependencies: - babel-core "^6.25.0" - babel-preset-vue-app "^1.3.1" - chalk "^2.1.0" - find-babel-config "^1.1.0" - js-beautify "^1.6.14" - node-cache "^4.1.1" - object-assign "^4.1.1" - source-map "^0.5.6" - tsconfig "^7.0.0" - vue-template-es2015-compiler "^1.5.3" - -vue-loader@^13.3.0: - version "13.7.2" - resolved "http://registry.npm.taobao.org/vue-loader/download/vue-loader-13.7.2.tgz#f633f6393e905ffd730400f03c99353618c08fe8" - 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@^3.0.1: - version "3.0.1" - resolved "http://registry.npm.taobao.org/vue-router/download/vue-router-3.0.1.tgz#d9b05ad9c7420ba0f626d6500d693e60092cc1e9" - -vue-style-loader@^3.0.0, vue-style-loader@^3.1.2: - 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.5.2: - version "2.5.16" - resolved "http://registry.npm.taobao.org/vue-template-compiler/download/vue-template-compiler-2.5.16.tgz#93b48570e56c720cdf3f051cc15287c26fbd04cb" - dependencies: - de-indent "^1.0.2" - he "^1.1.0" - -vue-template-es2015-compiler@^1.5.3, 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.5.2: - version "2.5.16" - resolved "http://registry.npm.taobao.org/vue/download/vue-2.5.16.tgz#07edb75e8412aaeed871ebafa99f4672584a0085" - -vuex@^3.0.1: - version "3.0.1" - resolved "http://registry.npm.taobao.org/vuex/download/vuex-3.0.1.tgz#e761352ebe0af537d4bb755a9b9dc4be3df7efd2" - -w3c-hr-time@^1.0.1: - version "1.0.1" - resolved "http://registry.npm.taobao.org/w3c-hr-time/download/w3c-hr-time-1.0.1.tgz#82ac2bff63d950ea9e3189a58a65625fedf19045" - dependencies: - browser-process-hrtime "^0.1.2" - -walker@~1.0.5: - version "1.0.7" - resolved "http://registry.npm.taobao.org/walker/download/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" - dependencies: - makeerror "1.0.x" - -watch@~0.18.0: - version "0.18.0" - resolved "http://registry.npm.taobao.org/watch/download/watch-0.18.0.tgz#28095476c6df7c90c963138990c0a5423eb4b986" - dependencies: - exec-sh "^0.2.0" - minimist "^1.2.0" - -watchpack@^1.4.0: - version "1.6.0" - resolved "http://registry.npm.taobao.org/watchpack/download/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00" - dependencies: - chokidar "^2.0.2" - graceful-fs "^4.1.2" - neo-async "^2.5.0" - -wbuf@^1.1.0, wbuf@^1.7.2: - version "1.7.3" - resolved "http://registry.npm.taobao.org/wbuf/download/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" - dependencies: - minimalistic-assert "^1.0.0" - -webidl-conversions@^4.0.2: - version "4.0.2" - resolved "http://registry.npm.taobao.org/webidl-conversions/download/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" - -webpack-bundle-analyzer@^2.9.0: - version "2.13.1" - resolved "http://registry.npm.taobao.org/webpack-bundle-analyzer/download/webpack-bundle-analyzer-2.13.1.tgz#07d2176c6e86c3cdce4c23e56fae2a7b6b4ad526" - dependencies: - acorn "^5.3.0" - bfj-node4 "^5.2.0" - chalk "^2.3.0" - commander "^2.13.0" - ejs "^2.5.7" - express "^4.16.2" - filesize "^3.5.11" - gzip-size "^4.1.0" - lodash "^4.17.4" - mkdirp "^0.5.1" - opener "^1.4.3" - ws "^4.0.0" - -webpack-dev-middleware@1.12.2: - 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.9.1: - version "2.11.2" - resolved "http://registry.npm.taobao.org/webpack-dev-server/download/webpack-dev-server-2.11.2.tgz#1f4f4c78bf1895378f376815910812daf79a216f" - 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-merge@^4.1.0: - version "4.1.3" - resolved "http://registry.npm.taobao.org/webpack-merge/download/webpack-merge-4.1.3.tgz#8aaff2108a19c29849bc9ad2a7fd7fce68e87c4a" - dependencies: - lodash "^4.17.5" - -webpack-sources@^1.0.1, webpack-sources@^1.1.0: - 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.6.0: - version "3.12.0" - resolved "http://registry.npm.taobao.org/webpack/download/webpack-3.12.0.tgz#3f9e34360370602fcf639e97939db486f4ec0d74" - dependencies: - acorn "^5.0.0" - acorn-dynamic-import "^2.0.0" - ajv "^6.1.0" - ajv-keywords "^3.1.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" - -whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3: - version "1.0.3" - resolved "http://registry.npm.taobao.org/whatwg-encoding/download/whatwg-encoding-1.0.3.tgz#57c235bc8657e914d24e1a397d3c82daee0a6ba3" - dependencies: - iconv-lite "0.4.19" - -whatwg-mimetype@^2.0.0, whatwg-mimetype@^2.1.0: - version "2.1.0" - resolved "http://registry.npm.taobao.org/whatwg-mimetype/download/whatwg-mimetype-2.1.0.tgz#f0f21d76cbba72362eb609dbed2a30cd17fcc7d4" - -whatwg-url@^6.4.0, whatwg-url@^6.4.1: - version "6.5.0" - resolved "http://registry.npm.taobao.org/whatwg-url/download/whatwg-url-6.5.0.tgz#f2df02bff176fd65070df74ad5ccbb5a199965a8" - dependencies: - lodash.sortby "^4.7.0" - tr46 "^1.0.1" - webidl-conversions "^4.0.2" - -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.2.12, which@^1.2.9, which@^1.3.0: - version "1.3.1" - resolved "http://registry.npm.taobao.org/which/download/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - dependencies: - isexe "^2.0.0" - -wide-align@^1.1.0: - version "1.1.3" - resolved "http://registry.npm.taobao.org/wide-align/download/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" - dependencies: - string-width "^1.0.2 || 2" - -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" - -wordwrap@0.0.2: - version "0.0.2" - resolved "http://registry.npm.taobao.org/wordwrap/download/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" - -wordwrap@~0.0.2: - version "0.0.3" - resolved "http://registry.npm.taobao.org/wordwrap/download/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" - -wordwrap@~1.0.0: - version "1.0.0" - resolved "http://registry.npm.taobao.org/wordwrap/download/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" - -worker-farm@^1.5.2: - version "1.6.0" - resolved "http://registry.npm.taobao.org/worker-farm/download/worker-farm-1.6.0.tgz#aecc405976fab5a95526180846f0dba288f3a4a0" - dependencies: - errno "~0.1.7" - -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.1.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@^4.0.0: - version "4.1.0" - resolved "http://registry.npm.taobao.org/ws/download/ws-4.1.0.tgz#a979b5d7d4da68bf54efe0408967c324869a7289" - dependencies: - async-limiter "~1.0.0" - safe-buffer "~5.1.0" - -xml-name-validator@^3.0.0: - version "3.0.0" - resolved "http://registry.npm.taobao.org/xml-name-validator/download/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" - -xregexp@2.0.0: - version "2.0.0" - resolved "http://registry.npm.taobao.org/xregexp/download/xregexp-2.0.0.tgz#52a63e56ca0b84a7f3a5f3d61872f126ad7a5943" - -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" - -xxhashjs@^0.2.1: - version "0.2.2" - resolved "http://registry.npm.taobao.org/xxhashjs/download/xxhashjs-0.2.2.tgz#8a6251567621a1c46a5ae204da0249c7f8caa9d8" - dependencies: - cuint "^0.2.2" - -y18n@^3.2.1: - version "3.2.1" - resolved "http://registry.npm.taobao.org/y18n/download/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" - -y18n@^4.0.0: - version "4.0.0" - resolved "http://registry.npm.taobao.org/y18n/download/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" - -yallist@^2.1.2: - version "2.1.2" - resolved "http://registry.npm.taobao.org/yallist/download/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" - -yallist@^3.0.0, yallist@^3.0.2: - version "3.0.2" - resolved "http://registry.npm.taobao.org/yallist/download/yallist-3.0.2.tgz#8452b4bb7e83c7c188d8041c1a837c773d6d8bb9" - -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@^8.1.0: - version "8.1.0" - resolved "http://registry.npm.taobao.org/yargs-parser/download/yargs-parser-8.1.0.tgz#f1376a33b6629a5d063782944da732631e966950" - 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@^10.0.3: - version "10.1.2" - resolved "http://registry.npm.taobao.org/yargs/download/yargs-10.1.2.tgz#454d074c2b16a51a43e2fb7807e4f9de69ccb5c5" - 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 "^8.1.0" - -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" From 22e3ed7144b94289294d7cae3261053c650d4298 Mon Sep 17 00:00:00 2001 From: vimior Date: Sun, 15 Jul 2018 15:53:34 +0800 Subject: [PATCH 5/7] update image --- doc/img/ide/code.png | Bin 0 -> 48693 bytes doc/img/ide/complete.png | Bin 0 -> 13719 bytes doc/img/ide/run.png | Bin 0 -> 16662 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 doc/img/ide/code.png create mode 100644 doc/img/ide/complete.png create mode 100644 doc/img/ide/run.png diff --git a/doc/img/ide/code.png b/doc/img/ide/code.png new file mode 100644 index 0000000000000000000000000000000000000000..24f9ca2e72bb7f7f1780cfbcfda7536e24c909b4 GIT binary patch literal 48693 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 OBQNtpx>)k{hyMbK{Dx)# literal 0 HcmV?d00001 diff --git a/doc/img/ide/complete.png b/doc/img/ide/complete.png new file mode 100644 index 0000000000000000000000000000000000000000..d83d35eb6fa5012f5df2885c95d18d72da93bd90 GIT binary patch literal 13719 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 MSf0k8bieig0Fhk*&Hw-a literal 0 HcmV?d00001 diff --git a/doc/img/ide/run.png b/doc/img/ide/run.png new file mode 100644 index 0000000000000000000000000000000000000000..7e3ff83dc736b01842ca53f674f904066a9ede4a GIT binary patch literal 16662 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 Wk Date: Sun, 20 Jan 2019 14:51:03 +0800 Subject: [PATCH 6/7] add pip cmd and fix some bugs --- backend/command/ide_cmd.py | 79 +- backend/projects/ide/test/.config | 22 +- .../cc/dd/ee/ff/gg/hh/ii/jj/kk/fdddddddf.py | 0 backend/projects/ide/test/hello.py | 4 +- backend/projects/ide/test/main.py | 4 +- backend/projects/ide/test/readme.md | 0 backend/projects/ide/test/test.txt | 0 src/components/Editor.vue | 82 +- src/components/editor/CmdRun.vue | 181 + src/components/editor/CodeEditor.vue | 49 +- src/components/editor/CodeTab.vue | 22 +- src/components/editor/Console.vue | 12 +- src/components/editor/ConsoleTab.vue | 25 +- src/components/editor/ElTree.vue | 100 +- src/components/editor/ResultRun.vue | 3 - src/components/editor/TopMenu.vue | 152 +- src/components/editor/dialog/DialogDelete.vue | 1 + src/components/editor/dialog/DialogProjs.vue | 70 +- src/components/editor/dialog/DialogText.vue | 32 +- src/router/index.js | 10 +- src/store/core/model_ide.js | 144 +- yarn.lock | 9422 +++++++++++++++++ 22 files changed, 10258 insertions(+), 156 deletions(-) create mode 100644 backend/projects/ide/test/aa/bb/cc/dd/ee/ff/gg/hh/ii/jj/kk/fdddddddf.py create mode 100644 backend/projects/ide/test/readme.md create mode 100644 backend/projects/ide/test/test.txt create mode 100644 src/components/editor/CmdRun.vue delete mode 100644 src/components/editor/ResultRun.vue create mode 100644 yarn.lock diff --git a/backend/command/ide_cmd.py b/backend/command/ide_cmd.py index c1b2f9b..ffff461 100644 --- a/backend/command/ide_cmd.py +++ b/backend/command/ide_cmd.py @@ -184,19 +184,51 @@ def autocomplete_python(self, client, cmd_id, data): @gen.coroutine def run_pip_command(self, client, cmd_id, data): - pass + command = data.get('command') + if not isinstance(command, str) or not command: + return response(client, cmd_id, 1111, 'pip command: {} error'.format(command)) + else: + options = data.get('options', []) + if not command.startswith('pip'): + List = command.split(' ') + if len(List) == 1: + cmd = [define.PYTHON, '-u', '-m', 'pip', List[0], ' '.join(options)] + elif len(List) > 1: + cmd = [define.PYTHON, '-u', '-m', 'pip', List[0]] + for op in List[1:]: + cmd.append(op) + if List[1] == 'uninstall' and '-y' not in cmd: + cmd.append('-y') + # cmd = [define.PYTHON, '-u', '-m', 'pip', List[0], '{} {}'.format(' '.join(List[1:]), ' '.join(options))] + else: + return response(client, cmd_id, 1111, 'cmd error') + else: + List = command.split(' ') + if len(List) == 2: + cmd = [define.PYTHON, '-u', '-m', List[0], List[1], ' '.join(options)] + elif len(List) > 2: + cmd = [define.PYTHON, '-u', '-m', List[0], List[1]] + for op in List[2:]: + cmd.append(op) + if List[1] == 'uninstall' and '-y' not in cmd: + cmd.append('-y') + # cmd = [define.PYTHON, '-u', '-m', List[0], List[1], '{} {}'.format(' '.join(List[2:]), ' '.join(options))] + else: + return response(client, cmd_id, 1111, 'cmd error') + define.subprograms[cmd_id] = SubProgramThread(cmd, cmd_id, client) + define.subprograms[cmd_id].start() + response(client, cmd_id, 0, None) @gen.coroutine def run_python_program(self, client, cmd_id, data): # define.PYTHON - print(data) prj_name = data.get('projectName') prj_path = os.path.join(define.PROJECTS, 'ide', prj_name) file_path = os.path.join(prj_path, convert_path(data.get('filePath'))) - print(file_path) + # print(file_path) if os.path.exists(file_path) and os.path.isfile(file_path) and file_path.endswith('.py'): cmd = [define.PYTHON, '-u', file_path] - print(cmd) + # print(cmd) define.subprograms[cmd_id] = SubProgramThread(cmd, cmd_id, client) define.subprograms[cmd_id].start() response(client, cmd_id, 0, None) @@ -224,24 +256,23 @@ def __init__(self, cmd, cmd_id, client): def response_to_client(self, code, stdout): if stdout: - data = { - 'stdout': stdout - } - res = { - 'type': 'response', - 'id': self.cmd_id, - 'code': code, - 'data': data - } - if self.client.connected: - try: - self.client.write_message(json.dumps(res, ensure_ascii=False)) - except: - pass + response(self.client, self.cmd_id, code, {'stdout': stdout}) + # res = { + # 'type': 'response', + # 'id': self.cmd_id, + # 'code': code, + # 'data': {'stdout': stdout} + # } + # if self.client.connected: + # try: + # self.client.write_message(json.dumps(res, ensure_ascii=False)) + # except: + # pass def run_python_program(self): start_time = time.time() - print('run_python_program:', self.cmd_id) + p = None + print('[Program {} is start]'.format(self.cmd_id)) try: p = subprocess.Popen(self.cmd, shell=False, universal_newlines=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) @@ -250,7 +281,7 @@ def run_python_program(self): self.alive = False p.kill() define.subprograms.pop(self.cmd_id) - print('client is disconnect, kill program') + print('[Program {} is kill][client is disconnect]'.format(self.cmd_id)) return stdout = p.stdout.readline() stdout = stdout.strip() @@ -260,7 +291,7 @@ def run_python_program(self): self.response_to_client(1111, '[program is terminate]') p.kill() define.subprograms.pop(self.cmd_id) - print('[program {} is terminate]'.format(self.cmd_id)) + print('[Program {} is terminate]'.format(self.cmd_id)) return try: stdout = p.stdout.read() @@ -274,15 +305,15 @@ def run_python_program(self): self.response_to_client(1111, stdout) define.subprograms.pop(self.cmd_id) if p.returncode == 0: - print('subprogram {} success'.format(self.cmd_id)) + print('Program {} success'.format(self.cmd_id)) p.kill() return 'ok' else: - print('subprogram {} failed'.format(self.cmd_id)) + print('Program {} failed'.format(self.cmd_id)) p.kill() return 'failed' except Exception as e: - print(e) + print('[Program {} is exception], {}'.format(self.cmd_id, e)) finally: try: p.kill() diff --git a/backend/projects/ide/test/.config b/backend/projects/ide/test/.config index ac9c980..fe74e31 100644 --- a/backend/projects/ide/test/.config +++ b/backend/projects/ide/test/.config @@ -1,12 +1,24 @@ { "expendKeys":[ - "/" + "/aa/bb/cc/dd/ee", + "/aa/bb/cc/dd/ee/ff", + "/aa/bb", + "/", + "/aa/bb/cc", + "/aa/bb/cc/dd/ee/ff/gg/hh/ii/jj", + "/aa/bb/cc/dd/ee/ff/gg/hh/ii/jj/kk", + "/aa/bb/cc/dd", + "/aa/bb/cc/dd/ee/ff/gg/hh", + "/aa/bb/cc/dd/ee/ff/gg", + "/aa/bb/cc/dd/ee/ff/gg/hh/ii" ], - "lastAccessTime":1531393140.700247, + "lastAccessTime":1547966992.5833294, "openList":[ - "/main.py", - "/hello.py" + "/hello.py", + "/aa/bb/cc/dd/ee/ff/gg/hh/ii/jj/kk/fdddddddf.py", + "/readme.md", + "/main.py" ], - "selectFilePath":"/hello.py", + "selectFilePath":"/main.py", "type":"python" } \ No newline at end of file diff --git a/backend/projects/ide/test/aa/bb/cc/dd/ee/ff/gg/hh/ii/jj/kk/fdddddddf.py b/backend/projects/ide/test/aa/bb/cc/dd/ee/ff/gg/hh/ii/jj/kk/fdddddddf.py new file mode 100644 index 0000000..e69de29 diff --git a/backend/projects/ide/test/hello.py b/backend/projects/ide/test/hello.py index bf345c7..fec27a9 100644 --- a/backend/projects/ide/test/hello.py +++ b/backend/projects/ide/test/hello.py @@ -2,5 +2,5 @@ import time while True: - print('hello', time.time()) - time.sleep(1) \ No newline at end of file + print('hello', time.time()) + time.sleep(1) \ No newline at end of file diff --git a/backend/projects/ide/test/main.py b/backend/projects/ide/test/main.py index 4a53ec7..d9046c8 100644 --- a/backend/projects/ide/test/main.py +++ b/backend/projects/ide/test/main.py @@ -2,5 +2,5 @@ import time while True: - print('main', time.time()) - time.sleep(1) \ No newline at end of file + print('main', time.time()) + time.sleep(0.1) diff --git a/backend/projects/ide/test/readme.md b/backend/projects/ide/test/readme.md new file mode 100644 index 0000000..e69de29 diff --git a/backend/projects/ide/test/test.txt b/backend/projects/ide/test/test.txt new file mode 100644 index 0000000..e69de29 diff --git a/src/components/Editor.vue b/src/components/Editor.vue index 19fecd9..659b1b7 100644 --- a/src/components/Editor.vue +++ b/src/components/Editor.vue @@ -10,9 +10,9 @@
-