├── .editorconfig ├── .eslintrc ├── .gitignore ├── .jshintrc ├── .npmignore ├── .prettierrc ├── README.md ├── index.js ├── libs ├── decode.js ├── encode.js ├── exception.js ├── register.js ├── service.js └── socket.js ├── package-lock.json ├── package.json ├── utils.js └── yarn.lock /.editorconfig: -------------------------------------------------------------------------------- 1 | # http://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | end_of_line = lf 7 | indent_size = 2 8 | indent_style = space 9 | insert_final_newline = true 10 | max_line_length = 80 11 | trim_trailing_whitespace = true 12 | 13 | [*.md] 14 | max_line_length = 0 15 | trim_trailing_whitespace = false 16 | 17 | [COMMIT_EDITMSG] 18 | max_line_length = 0 19 | -------------------------------------------------------------------------------- /.eslintrc: -------------------------------------------------------------------------------- 1 | env: 2 | node: true 3 | es6: true 4 | 5 | parserOptions: 6 | ecmaVersion: 8 7 | ecmaFeatures: 8 | jsx: true 9 | 10 | rules: 11 | # Possible Errors 12 | # http://eslint.org/docs/rules/#possible-errors 13 | comma-dangle: [2, "only-multiline"] 14 | no-control-regex: 2 15 | no-debugger: 2 16 | no-dupe-args: 2 17 | no-dupe-keys: 2 18 | no-duplicate-case: 2 19 | no-empty-character-class: 2 20 | no-ex-assign: 2 21 | no-extra-boolean-cast: 2 22 | no-extra-parens: [2, "functions"] 23 | no-extra-semi: 2 24 | no-func-assign: 2 25 | no-invalid-regexp: 2 26 | no-irregular-whitespace: 2 27 | no-negated-in-lhs: 2 28 | no-obj-calls: 2 29 | no-proto: 2 30 | no-unexpected-multiline: 2 31 | no-unreachable: 2 32 | use-isnan: 2 33 | valid-typeof: 2 34 | 35 | # Best Practices 36 | # http://eslint.org/docs/rules/#best-practices 37 | no-fallthrough: 2 38 | no-octal: 2 39 | no-redeclare: 2 40 | no-self-assign: 2 41 | no-unused-labels: 2 42 | 43 | # Strict Mode 44 | # http://eslint.org/docs/rules/#strict-mode 45 | strict: [2, "global"] 46 | 47 | # Variables 48 | # http://eslint.org/docs/rules/#variables 49 | no-delete-var: 2 50 | no-undef: 2 51 | no-unused-vars: [2, {"args": "none"}] 52 | 53 | # Node.js and CommonJS 54 | # http://eslint.org/docs/rules/#nodejs-and-commonjs 55 | no-mixed-requires: 2 56 | no-new-require: 2 57 | no-path-concat: 2 58 | no-restricted-modules: [2, "sys", "_linklist"] 59 | 60 | # Stylistic Issues 61 | # http://eslint.org/docs/rules/#stylistic-issues 62 | comma-spacing: 2 63 | eol-last: 2 64 | indent: [2, 2, {SwitchCase: 1}] 65 | keyword-spacing: 2 66 | max-len: [2, 200, 2] 67 | new-parens: 2 68 | no-mixed-spaces-and-tabs: 2 69 | no-multiple-empty-lines: [2, {max: 2}] 70 | no-trailing-spaces: 2 71 | space-before-blocks: [2, "always"] 72 | space-in-parens: [2, "never"] 73 | space-infix-ops: 2 74 | space-unary-ops: 2 75 | 76 | # ECMAScript 6 77 | # http://eslint.org/docs/rules/#ecmascript-6 78 | arrow-spacing: [2, {"before": true, "after": true}] 79 | constructor-super: 2 80 | no-class-assign: 2 81 | no-confusing-arrow: 2 82 | no-const-assign: 2 83 | no-dupe-class-members: 2 84 | no-new-symbol: 2 85 | no-this-before-super: 2 86 | prefer-const: 2 87 | 88 | # Global scoped method and vars 89 | globals: 90 | DTRACE_HTTP_CLIENT_REQUEST : false 91 | LTTNG_HTTP_CLIENT_REQUEST : false 92 | COUNTER_HTTP_CLIENT_REQUEST : false 93 | DTRACE_HTTP_CLIENT_RESPONSE : false 94 | LTTNG_HTTP_CLIENT_RESPONSE : false 95 | COUNTER_HTTP_CLIENT_RESPONSE : false 96 | DTRACE_HTTP_SERVER_REQUEST : false 97 | LTTNG_HTTP_SERVER_REQUEST : false 98 | COUNTER_HTTP_SERVER_REQUEST : false 99 | DTRACE_HTTP_SERVER_RESPONSE : false 100 | LTTNG_HTTP_SERVER_RESPONSE : false 101 | COUNTER_HTTP_SERVER_RESPONSE : false 102 | DTRACE_NET_STREAM_END : false 103 | LTTNG_NET_STREAM_END : false 104 | COUNTER_NET_SERVER_CONNECTION_CLOSE : false 105 | DTRACE_NET_SERVER_CONNECTION : false 106 | LTTNG_NET_SERVER_CONNECTION : false 107 | COUNTER_NET_SERVER_CONNECTION : false 108 | test : true -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ### Eclipse template 2 | *.pydevproject 3 | .metadata 4 | .gradle 5 | bin/ 6 | tmp/ 7 | *.tmp 8 | *.bak 9 | *.swp 10 | *~.nib 11 | local.properties 12 | .settings/ 13 | .loadpath 14 | 15 | # Eclipse Core 16 | .project 17 | 18 | # External tool builders 19 | .externalToolBuilders/ 20 | 21 | # Locally stored "Eclipse launch configurations" 22 | *.launch 23 | 24 | # CDT-specific 25 | .cproject 26 | 27 | # JDT-specific (Eclipse Java Development Tools) 28 | .classpath 29 | 30 | # Java annotation processor (APT) 31 | .factorypath 32 | 33 | # PDT-specific 34 | .buildpath 35 | 36 | # sbteclipse plugin 37 | .target 38 | 39 | # TeXlipse plugin 40 | .texlipse 41 | ### JetBrains template 42 | # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio 43 | 44 | *.iml 45 | 46 | ## Directory-based project format: 47 | .idea/ 48 | # if you remove the above rule, at least ignore the following: 49 | 50 | # User-specific stuff: 51 | # .idea/workspace.xml 52 | # .idea/tasks.xml 53 | # .idea/dictionaries 54 | 55 | # Sensitive or high-churn files: 56 | # .idea/dataSources.ids 57 | # .idea/dataSources.xml 58 | # .idea/sqlDataSources.xml 59 | # .idea/dynamic.xml 60 | # .idea/uiDesigner.xml 61 | 62 | # Gradle: 63 | # .idea/gradle.xml 64 | # .idea/libraries 65 | 66 | # Mongo Explorer plugin: 67 | # .idea/mongoSettings.xml 68 | 69 | ## File-based project format: 70 | *.ipr 71 | *.iws 72 | 73 | ## Plugin-specific files: 74 | 75 | # IntelliJ 76 | /out/ 77 | 78 | # mpeltonen/sbt-idea plugin 79 | .idea_modules/ 80 | 81 | # JIRA plugin 82 | atlassian-ide-plugin.xml 83 | 84 | # Crashlytics plugin (for Android Studio and IntelliJ) 85 | com_crashlytics_export_strings.xml 86 | crashlytics.properties 87 | crashlytics-build.properties 88 | ### NetBeans template 89 | nbproject/private/ 90 | build/ 91 | nbbuild/ 92 | dist/ 93 | nbdist/ 94 | nbactions.xml 95 | nb-configuration.xml 96 | .nb-gradle/ 97 | ### Windows template 98 | # Windows image file caches 99 | Thumbs.db 100 | ehthumbs.db 101 | 102 | # Folder config file 103 | Desktop.ini 104 | 105 | # Recycle Bin used on file shares 106 | $RECYCLE.BIN/ 107 | 108 | # Windows Installer files 109 | *.cab 110 | *.msi 111 | *.msm 112 | *.msp 113 | 114 | # Windows shortcuts 115 | *.lnk 116 | ### Node template 117 | # Logs 118 | logs 119 | *.log 120 | npm-debug.log* 121 | 122 | # Runtime data 123 | pids 124 | *.pid 125 | *.seed 126 | 127 | # Directory for instrumented libs generated by jscoverage/JSCover 128 | lib-cov 129 | 130 | # Coverage directory used by tools like istanbul 131 | coverage 132 | 133 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 134 | .grunt 135 | 136 | # node-waf configuration 137 | .lock-wscript 138 | 139 | # Compiled binary addons (http://nodejs.org/api/addons.html) 140 | build/Release 141 | 142 | # Dependency directory 143 | # https://docs.npmjs.com/misc/faq#should-i-check-my-node-modules-folder-into-git 144 | node_modules 145 | ### Java template 146 | *.class 147 | 148 | # Mobile Tools for Java (J2ME) 149 | .mtj.tmp/ 150 | 151 | # Package Files # 152 | *.jar 153 | *.war 154 | *.ear 155 | 156 | # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml 157 | hs_err_pid* 158 | ### CVS template 159 | /CVS/* 160 | */CVS/* 161 | .cvsignore 162 | */.cvsignore 163 | ### OSX template 164 | .DS_Store 165 | .AppleDouble 166 | .LSOverride 167 | 168 | # Icon must end with two \r 169 | Icon 170 | 171 | # Thumbnails 172 | ._* 173 | 174 | # Files that might appear in the root of a volume 175 | .DocumentRevisions-V100 176 | .fseventsd 177 | .Spotlight-V100 178 | .TemporaryItems 179 | .Trashes 180 | .VolumeIcon.icns 181 | 182 | # Directories potentially created on remote AFP share 183 | .AppleDB 184 | .AppleDesktop 185 | Network Trash Folder 186 | Temporary Items 187 | .apdisk 188 | ### SVN template 189 | .svn/ 190 | test 191 | 192 | # Created by .ignore support plugin (hsz.mobi) 193 | .vscode/ -------------------------------------------------------------------------------- /.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "camelcase": true, 3 | "curly": true, 4 | "eqeqeq": true, 5 | "freeze": true, 6 | "indent": 2, 7 | "newcap": true, 8 | "quotmark": "single", 9 | "maxdepth": 3, 10 | "maxstatements": 15, 11 | "maxlen": 80, 12 | "eqnull": true, 13 | "funcscope": true, 14 | "node": true 15 | } 16 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | ### Eclipse template 2 | *.pydevproject 3 | .metadata 4 | .gradle 5 | bin/ 6 | tmp/ 7 | *.tmp 8 | *.bak 9 | *.swp 10 | *~.nib 11 | local.properties 12 | .settings/ 13 | .loadpath 14 | 15 | # Eclipse Core 16 | .project 17 | 18 | # External tool builders 19 | .externalToolBuilders/ 20 | 21 | # Locally stored "Eclipse launch configurations" 22 | *.launch 23 | 24 | # CDT-specific 25 | .cproject 26 | 27 | # JDT-specific (Eclipse Java Development Tools) 28 | .classpath 29 | 30 | # Java annotation processor (APT) 31 | .factorypath 32 | 33 | # PDT-specific 34 | .buildpath 35 | 36 | # sbteclipse plugin 37 | .target 38 | 39 | # TeXlipse plugin 40 | .texlipse 41 | ### JetBrains template 42 | # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio 43 | 44 | *.iml 45 | 46 | ## Directory-based project format: 47 | .idea/ 48 | # if you remove the above rule, at least ignore the following: 49 | 50 | # User-specific stuff: 51 | # .idea/workspace.xml 52 | # .idea/tasks.xml 53 | # .idea/dictionaries 54 | 55 | # Sensitive or high-churn files: 56 | # .idea/dataSources.ids 57 | # .idea/dataSources.xml 58 | # .idea/sqlDataSources.xml 59 | # .idea/dynamic.xml 60 | # .idea/uiDesigner.xml 61 | 62 | # Gradle: 63 | # .idea/gradle.xml 64 | # .idea/libraries 65 | 66 | # Mongo Explorer plugin: 67 | # .idea/mongoSettings.xml 68 | 69 | ## File-based project format: 70 | *.ipr 71 | *.iws 72 | 73 | ## Plugin-specific files: 74 | 75 | # IntelliJ 76 | /out/ 77 | 78 | # mpeltonen/sbt-idea plugin 79 | .idea_modules/ 80 | 81 | # JIRA plugin 82 | atlassian-ide-plugin.xml 83 | 84 | # Crashlytics plugin (for Android Studio and IntelliJ) 85 | com_crashlytics_export_strings.xml 86 | crashlytics.properties 87 | crashlytics-build.properties 88 | ### NetBeans template 89 | nbproject/private/ 90 | build/ 91 | nbbuild/ 92 | dist/ 93 | nbdist/ 94 | nbactions.xml 95 | nb-configuration.xml 96 | .nb-gradle/ 97 | ### Windows template 98 | # Windows image file caches 99 | Thumbs.db 100 | ehthumbs.db 101 | 102 | # Folder config file 103 | Desktop.ini 104 | 105 | # Recycle Bin used on file shares 106 | $RECYCLE.BIN/ 107 | 108 | # Windows Installer files 109 | *.cab 110 | *.msi 111 | *.msm 112 | *.msp 113 | 114 | # Windows shortcuts 115 | *.lnk 116 | ### Node template 117 | # Logs 118 | logs 119 | *.log 120 | npm-debug.log* 121 | 122 | # Runtime data 123 | pids 124 | *.pid 125 | *.seed 126 | 127 | # Directory for instrumented libs generated by jscoverage/JSCover 128 | lib-cov 129 | 130 | # Coverage directory used by tools like istanbul 131 | coverage 132 | 133 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 134 | .grunt 135 | 136 | # node-waf configuration 137 | .lock-wscript 138 | 139 | # Compiled binary addons (http://nodejs.org/api/addons.html) 140 | build/Release 141 | 142 | # Dependency directory 143 | # https://docs.npmjs.com/misc/faq#should-i-check-my-node-modules-folder-into-git 144 | node_modules 145 | ### Java template 146 | *.class 147 | 148 | # Mobile Tools for Java (J2ME) 149 | .mtj.tmp/ 150 | 151 | # Package Files # 152 | *.jar 153 | *.war 154 | *.ear 155 | 156 | # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml 157 | hs_err_pid* 158 | ### CVS template 159 | /CVS/* 160 | */CVS/* 161 | .cvsignore 162 | */.cvsignore 163 | ### OSX template 164 | .DS_Store 165 | .AppleDouble 166 | .LSOverride 167 | 168 | # Icon must end with two \r 169 | Icon 170 | 171 | # Thumbnails 172 | ._* 173 | 174 | # Files that might appear in the root of a volume 175 | .DocumentRevisions-V100 176 | .fseventsd 177 | .Spotlight-V100 178 | .TemporaryItems 179 | .Trashes 180 | .VolumeIcon.icns 181 | 182 | # Directories potentially created on remote AFP share 183 | .AppleDB 184 | .AppleDesktop 185 | Network Trash Folder 186 | Temporary Items 187 | .apdisk 188 | ### SVN template 189 | .svn/ 190 | test/ 191 | indexx.js 192 | 193 | # Created by .ignore support plugin (hsz.mobi) 194 | .vscode/ -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | printWidth: 100 2 | parser: flow -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # node-zookeeper-dubbo 2 | nodejs通过dubbo默认协议通信 3 | 4 | **3.0版本发布,使用长连接进行通信,同时重构了大量代码,性能几乎翻倍。** 5 | 6 | 7 | ### 用法 8 | 9 | ```javascript 10 | const nzd=require('node-zookeeper-dubbo'); 11 | const app=require('express')(); 12 | const opt={ 13 | application:{name:'fxxk'}, 14 | register:'www.cctv.com:2181', 15 | dubboVer:'2.5.3.6', 16 | root:'dubbo', 17 | dependencies:{ 18 | Foo:{ 19 | interface:'com.service.Foo', 20 | version:'LATEST', 21 | timeout:6000, 22 | group:'isis', 23 | methodSignature: { // optional 24 | findById : (id) => [ {'$class': 'java.lang.Long', '$': id} ], 25 | findByName : (name) => [ java.String(name) ], 26 | } 27 | }, 28 | Bar:{ 29 | interface:'com.service.Bar', 30 | version:'LATEST', 31 | timeout:6000, 32 | group:'gcd' 33 | } 34 | } 35 | } 36 | 37 | const Dubbo=new nzd(opt); 38 | 39 | Dubbo.on("service:changed", (event)=>console.log(event)) 40 | 41 | const customerObj = { 42 | $class: 'com.xxx.XXXDTO', 43 | $: { 44 | a: 1, 45 | b: 'test', 46 | c: {$class: 'java.lang.Long', $: 123} 47 | } 48 | }; 49 | 50 | app.get('/foo',(req,res)=>{ 51 | Dubbo.Foo 52 | .xxMethod({'$class': 'java.lang.Long', '$': '10000000'},customerObj) 53 | .then(data=>res.send(data)) 54 | .catch(err=>res.send(err)) 55 | }) 56 | 57 | app.get('/foo/findById',(req,res)=>{ 58 | Dubbo.Foo 59 | .findById(10000) 60 | .then(data=>res.send(data)) 61 | .catch(err=>res.send(err)) 62 | }) 63 | 64 | app.listen(9090) 65 | 66 | ``` 67 | ### 注意 68 | 69 | 须等待初始化完毕才能正常使用,标志:**Dubbo service init done** 70 | 71 | ### 参数配置说明 72 | - **application** 73 | * name - 项目名称,必填 74 | - **register** - zookeeper服务地址,必填 75 | - **dubboVer** - dubbo版本,必填 76 | - **root** - 注册到zookeeper上的根节点名称 77 | - **dependencies** - 依赖的服务集,必填 78 | * Foo - 自定义名称,这里方便起见用Foo作为示例,必填 79 | * interface - 服务地址,必填 80 | * version - 注册的服务版本 81 | * timeout - 超时时间,默认6000 82 | * group - 分组 83 | * methodSignature - 方法签名 84 | 85 | 可以选择使用 [js-to-java](https://github.com/node-modules/js-to-java), 能极大提高效率。 86 | ```javascript 87 | const java = require('js-to-java'); 88 | const arg = {$class:'int',$:123}; 89 | //等同于 90 | const arg = java('int',123); 91 | ``` 92 | 93 | 感谢为这个项目作出过贡献的每个人,感谢为我提供思路和指导的 [@caomu](https://github.com/caomu),感谢 [js-to-java](https://github.com/node-modules/js-to-java), [hessian.js](https://github.com/node-modules/hessian.js) 的作者们。 94 | 95 | [npm-image]:http://img.shields.io/npm/v/node-zookeeper-dubbo.svg?style=flat-square 96 | [npm-url]:https://npmjs.org/package/node-zookeeper-dubbo?style=flat-square 97 | [downloads-image]:http://img.shields.io/npm/dm/node-zookeeper-dubbo.svg?style=flat-square 98 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by panzhichao on 16/8/2. 3 | */ 4 | "use strict"; 5 | const debug = require("debug")("yoke"); 6 | const url = require("url"); 7 | const zookeeper = require("node-zookeeper-client"); 8 | const qs = require("querystring"); 9 | const reg = require("./libs/register"); 10 | const { Service } = require("./libs/service"); 11 | const EventEmitter = require("events"); 12 | const { print } = require("./utils"); 13 | 14 | class Yoke extends EventEmitter { 15 | constructor(opt) { 16 | super(); 17 | this.name = opt.application.name; 18 | this.group = opt.group; 19 | this.timeout = opt.timeout || 6000; 20 | this.root = opt.root || "dubbo"; 21 | this.dependencies = opt.dependencies || {}; 22 | this.zkIsConnect = false; 23 | this.dver = opt.dubboVer; 24 | if (opt.register) { 25 | print.warn( 26 | `WARNING: The attribute 'register' is deprecated and will be removed in the future version. Use registry instead.` 27 | ); 28 | } 29 | this.registry = opt.registry || opt.register; 30 | 31 | this.initClient(); 32 | } 33 | 34 | initClient() { 35 | this.client = zookeeper.createClient(this.registry, { 36 | sessionTimeout: 30000, 37 | spinDelay: 1000, 38 | retries: 5 39 | }); 40 | 41 | this.client.connect(); 42 | this.client.once("connected", this.onOnceConnected.bind(this)); 43 | 44 | this.checkConnection(); 45 | } 46 | 47 | checkConnection() { 48 | const err = `FATAL: It seems that zookeeper cannot be connected, please check registry address or try later.`; 49 | this.zkConnectTimeout = setTimeout(() => { 50 | !this.zkIsConnect && print.err(err); 51 | clearTimeout(this.zkConnectTimeout); 52 | }, 10000); 53 | } 54 | 55 | onOnceConnected() { 56 | debug("zookeeper connect successfully"); 57 | print.info("Dubbo service init done"); 58 | this.zkIsConnect = true; 59 | this.retrieveServices(); 60 | this.regConsumer(); 61 | } 62 | 63 | retrieveServices() { 64 | for (const [key, val] of Object.entries(this.dependencies)) { 65 | const path = `/${this.root}/${val.interface}/providers`; 66 | this.client.getChildren( 67 | path, 68 | this.watchService.bind(this), 69 | this.resolveService(path, key, val) 70 | ); 71 | } 72 | } 73 | 74 | watchService(event) { 75 | debug(event, "watch event"); 76 | this.retrieveServices(); 77 | this.emit("service:changed", event); 78 | } 79 | 80 | resolveService(path, depKey, depVal) { 81 | return (error, children, stat) => { 82 | if (error) { 83 | print.err(error); 84 | return; 85 | } 86 | if (children && !children.length) { 87 | const errMsg = `WARNING: Can\'t find the service: ${path}, please check!`; 88 | print.warn(errMsg); 89 | return; 90 | } 91 | const size = children.length; 92 | const providers = []; 93 | 94 | for (let i = 0; i < size; i++) { 95 | const provider = url.parse(decodeURIComponent(children[i])); 96 | const queryObj = qs.parse(provider.query); 97 | if ( 98 | queryObj.version === depVal.version && 99 | queryObj.group === depVal.group && 100 | provider.protocol === "dubbo:" 101 | ) { 102 | providers.push(provider); 103 | } 104 | } 105 | if (!providers.length) { 106 | print.warn( 107 | `WARNING: Please check the version、 group、 protocol(must dubbo) of dependency (${depKey}),`, 108 | `due to they are not matched with any provider service found in zookeeper.` 109 | ); 110 | 111 | return; 112 | } 113 | 114 | this.determineService(depKey, depVal, providers); 115 | }; 116 | } 117 | 118 | determineService(depKey, depVal, providers) { 119 | this[depKey] = new Service(depVal, providers, this.dver); 120 | } 121 | 122 | regConsumer() { 123 | reg.consumer.call(this); 124 | } 125 | } 126 | 127 | module.exports = Yoke; 128 | -------------------------------------------------------------------------------- /libs/decode.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by panzhichao on 16/8/18. 3 | */ 4 | "use strict"; 5 | const decoder = require("hessian.js").DecoderV2; 6 | const Response = { 7 | OK: 20, 8 | CLIENT_TIMEOUT: 30, 9 | SERVER_TIMEOUT: 31, 10 | BAD_REQUEST: 40, 11 | BAD_RESPONSE: 50, 12 | SERVICE_NOT_FOUND: 60, 13 | SERVICE_ERROR: 70, 14 | SERVER_ERROR: 80, 15 | CLIENT_ERROR: 90 16 | }; 17 | 18 | const RESPONSE_WITH_EXCEPTION = 0; 19 | const RESPONSE_VALUE = 1; 20 | const RESPONSE_NULL_VALUE = 2; 21 | 22 | function decode(heap, cb) { 23 | const result = new decoder(heap.slice(16, heap.length)); 24 | if (heap[3] !== Response.OK) { 25 | return cb(result.readString()); 26 | } 27 | try { 28 | const flag = result.readInt(); 29 | 30 | switch (flag) { 31 | case RESPONSE_NULL_VALUE: 32 | cb(null, null); 33 | break; 34 | case RESPONSE_VALUE: 35 | cb(null, result.read()); 36 | break; 37 | case RESPONSE_WITH_EXCEPTION: 38 | let excep = result.read(); 39 | !(excep instanceof Error) && (excep = new Error(excep)); 40 | cb(excep); 41 | break; 42 | default: 43 | cb(new Error(`Unknown result flag, expect '0' '1' '2', get ${flag}`)); 44 | } 45 | } catch (err) { 46 | cb(err); 47 | } 48 | } 49 | 50 | module.exports = decode; 51 | -------------------------------------------------------------------------------- /libs/encode.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by panzhichao on 16/8/18. 3 | */ 4 | "use strict"; 5 | const Encoder = require("hessian.js").EncoderV2; 6 | const MAX_LEN = 8388608; // 8 * 1024 * 1024, default maximum length of body 7 | 8 | function Encode(opt) { 9 | this._opt = opt; 10 | const body = this._body(opt._method, opt._args); 11 | const head = this._head(body.length); 12 | return Buffer.concat([head, body]); 13 | } 14 | 15 | Encode.prototype._head = function(len) { 16 | const head = Buffer([0xda, 0xbb, 0xc2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]); 17 | if (len > MAX_LEN) { 18 | throw new Error(`Data length too large: ${len}, maximum payload: ${MAX_LEN}`); 19 | } 20 | head.writeInt32BE(len, 12); 21 | return head; 22 | }; 23 | 24 | Encode.prototype._body = function(method, args) { 25 | const body = new Encoder(); 26 | const ver = this._opt._dver || "2.5.3.6"; 27 | body.write(ver); 28 | body.write(this._opt._interface); 29 | body.write(this._opt._version); 30 | body.write(this._opt._method); 31 | 32 | if (ver.startsWith("2.8")) { 33 | body.write(-1); //for dubbox 2.8.X 34 | } 35 | body.write(this._argsType(args)); 36 | if (args && args.length) { 37 | for (let i = 0, len = args.length; i < len; ++i) { 38 | body.write(args[i]); 39 | } 40 | } 41 | body.write(this._attachments()); 42 | return body.byteBuffer._bytes.slice(0, body.byteBuffer._offset); 43 | }; 44 | 45 | Encode.prototype._argsType = function(args) { 46 | if (!(args && args.length)) { 47 | return ""; 48 | } 49 | 50 | const typeRef = { 51 | boolean: "Z", 52 | int: "I", 53 | short: "S", 54 | long: "J", 55 | double: "D", 56 | float: "F" 57 | }; 58 | 59 | let parameterTypes = ""; 60 | let type; 61 | 62 | for (var i = 0, l = args.length; i < l; i++) { 63 | type = args[i]["$class"]; 64 | 65 | if (type.charAt(0) === "[") { 66 | parameterTypes += ~type.indexOf(".") 67 | ? "[L" + type.slice(1).replace(/\./gi, "/") + ";" 68 | : "[" + typeRef[type.slice(1)]; 69 | } else { 70 | parameterTypes += 71 | type && ~type.indexOf(".") ? "L" + type.replace(/\./gi, "/") + ";" : typeRef[type]; 72 | } 73 | } 74 | 75 | return parameterTypes; 76 | }; 77 | 78 | Encode.prototype._attachments = function() { 79 | const implicitArgs = { 80 | interface: this._opt._interface, 81 | path: this._opt._interface, 82 | timeout: this._opt._timeout 83 | }; 84 | this._opt._version && (implicitArgs.version = this._opt._version); 85 | this._opt._group && (implicitArgs.group = this._opt._group); 86 | 87 | return { 88 | $class: "java.util.HashMap", 89 | $: implicitArgs 90 | }; 91 | }; 92 | 93 | module.exports = Encode; 94 | -------------------------------------------------------------------------------- /libs/exception.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Different codes match different error type 3 | * 1xx ConnectionPoolError 4 | */ 5 | "use strict"; 6 | 7 | const EXCEPTIONS = { 8 | NO_AVAILABLE_WORKER: "NO_AVAILABLE_WORKER" 9 | }; 10 | 11 | const EXCEPTIONS_MAP = { 12 | NO_AVAILABLE_WORKER: { code: "100", message: "no available connection" } 13 | }; 14 | 15 | class ConnectionPoolError extends Error { 16 | constructor(key, code, message, name) { 17 | super(); 18 | const exception = EXCEPTIONS_MAP[key]; 19 | 20 | if (!exception) { 21 | this.name = "Unknown error"; 22 | } else { 23 | this.code = code || exception.code; 24 | this.message = message || exception.message; 25 | this.name = "ConnectionPoolError"; 26 | } 27 | } 28 | } 29 | 30 | module.exports = { EXCEPTIONS, ConnectionPoolError }; 31 | -------------------------------------------------------------------------------- /libs/register.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | const url = require("url"); 4 | const os = require("os"); 5 | const Path = require("path"); 6 | 7 | const CREATE_MODES = { 8 | /** 9 | * The znode will not be automatically deleted upon client's disconnect. 10 | */ 11 | PERSISTENT: 0, 12 | 13 | /** 14 | * The znode will not be automatically deleted upon client's disconnect, 15 | * and its name will be appended with a monotonically increasing number. 16 | */ 17 | PERSISTENT_SEQUENTIAL: 2, 18 | 19 | /** 20 | * The znode will be deleted upon the client's disconnect. 21 | */ 22 | EPHEMERAL: 1, 23 | 24 | /** 25 | * The znode will be deleted upon the client's disconnect, and its name 26 | * will be appended with a monotonically increasing number. 27 | */ 28 | EPHEMERAL_SEQUENTIAL: 3 29 | }; 30 | 31 | function isLoopback(addr) { 32 | return ( 33 | /^(::f{4}:)?127\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})/.test(addr) || 34 | /^fe80::1$/.test(addr) || 35 | /^::1$/.test(addr) || 36 | /^::$/.test(addr) 37 | ); 38 | } 39 | 40 | function ip() { 41 | const interfaces = os.networkInterfaces(); 42 | return Object.keys(interfaces) 43 | .map(function(nic) { 44 | const addresses = interfaces[nic].filter(function(details) { 45 | return details.family.toLowerCase() === "ipv4" && !isLoopback(details.address); 46 | }); 47 | return addresses.length ? addresses[0].address : undefined; 48 | }) 49 | .filter(Boolean)[0]; 50 | } 51 | 52 | //检查consumer目录是否存在 53 | function createConsumers(client, path) { 54 | return new Promise(function(resolve, reject) { 55 | const cpath = Path.dirname(path); 56 | client.exists(cpath, function(err, stat) { 57 | if (err) { 58 | reject(err); 59 | return; 60 | } 61 | if (stat) { 62 | //存在直接返回 63 | resolve(); 64 | return; 65 | } 66 | //创建consumers目录节点 67 | client.create(cpath, CREATE_MODES.PERSISTENT, function(err, node) { 68 | if (err) { 69 | reject(err); 70 | return; 71 | } 72 | resolve(); 73 | }); 74 | }); 75 | }); 76 | } 77 | function consumer() { 78 | const self = this; 79 | const paths = []; 80 | const host = ip(); 81 | 82 | const dependencies = self.dependencies; 83 | let serv; //临时存储服务 84 | 85 | const info = { 86 | protocol: "consumer", 87 | slashes: "true", 88 | host: "", 89 | query: { 90 | application: self.name, 91 | category: "consumers", 92 | check: "false", 93 | dubbo: self.dver, 94 | interface: "", 95 | revision: "", 96 | version: "", 97 | side: "consumer", 98 | timestamp: new Date().getTime() 99 | } 100 | }; 101 | 102 | for (const s in dependencies) { 103 | if (dependencies.hasOwnProperty(s)) { 104 | serv = dependencies[s]; 105 | } 106 | info.host = `${host}/${serv.interface}`; 107 | 108 | info.query.interface = serv.interface; 109 | info.query.revision = serv.version; 110 | info.query.version = serv.version; 111 | info.query.group = serv.group; 112 | paths.push(`/${self.root}/${serv.interface}/consumers/${encodeURIComponent(url.format(info))}`); 113 | } 114 | 115 | for (let i = 0, l = paths.length; i < l; i++) { 116 | (function(path) { 117 | //检查consumers目录状态,确保存在之后再创建consumers目录下面的节点 118 | createConsumers(self.client, path) 119 | .then(function() { 120 | self.client.exists(path, function(err, stat) { 121 | if (err) { 122 | console.error("Reg consumer failed:" + err.stack); 123 | return; 124 | } 125 | 126 | if (stat) { 127 | console.log("Node exists."); 128 | return; 129 | } 130 | self.client.create(path, CREATE_MODES.EPHEMERAL, function(err, node) { 131 | if (err) { 132 | console.error("Failed to register consumer node:" + err.stack); 133 | } 134 | }); 135 | }); 136 | }) 137 | .catch(function(err) { 138 | //创建consumers失败 139 | console.error("failed to create consumer node: " + err.stack); 140 | }); 141 | })(paths[i]); 142 | } 143 | } 144 | 145 | exports.consumer = consumer; 146 | -------------------------------------------------------------------------------- /libs/service.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | const qs = require("querystring"); 4 | const { Dispatcher, Socket } = require("./socket"); 5 | const debug = require("debug")("yoke"); 6 | const execute = Symbol("execute"); 7 | class Service { 8 | constructor(dependency, providers, dver) { 9 | let methods = null; 10 | this.mdsig = Object.assign({}, dependency.methodSignature); 11 | this.dispatcher = new Dispatcher(); 12 | for (let i = 0, l = providers.length; i < l; i++) { 13 | const provider = providers[i]; 14 | const queryObj = qs.parse(provider.query); 15 | methods = queryObj.methods.split(","); 16 | this.initSockets(provider.hostname, provider.port); 17 | } 18 | debug(`The ${dependency.interface} method list: ${methods.join(", ")}`); 19 | this.injectMethods(methods); 20 | 21 | this.encodeParam = { 22 | _dver: dver || "2.5.3.6", 23 | _interface: dependency.interface, 24 | _version: dependency.version, 25 | _group: dependency.group, 26 | _timeout: dependency.timeout 27 | }; 28 | } 29 | 30 | initSockets(host, port) { 31 | this.dispatcher.insert(new Socket(port, host)); 32 | this.dispatcher.insert(new Socket(port, host)); 33 | this.dispatcher.insert(new Socket(port, host)); 34 | } 35 | 36 | injectMethods(methods) { 37 | for (let i = 0, l = methods.length; i < l; i++) { 38 | const method = methods[i]; 39 | 40 | this[method] = (...args) => { 41 | if (this.mdsig[method]) { 42 | args = this.mdsig[method](...args); 43 | } 44 | return new Promise((resolve, reject) => this[execute](method, args, resolve, reject)); 45 | }; 46 | } 47 | } 48 | 49 | [execute](method, args, resolve, reject) { 50 | const attach = Object.assign({}, this.encodeParam, { 51 | _method: method, 52 | _args: args 53 | }); 54 | const el = { attach, resolve, reject }; 55 | 56 | this.dispatcher.gain((err, conn) => { 57 | if (err) { 58 | return reject(err); 59 | } 60 | 61 | conn.invoke(el, err => { 62 | if (err) { 63 | reject(err); 64 | } 65 | this.dispatcher.release(conn); 66 | 67 | if (conn.isConnect === false) { 68 | this.dispatcher.purgeConn(conn); 69 | } 70 | }); 71 | }); 72 | } 73 | } 74 | 75 | module.exports = { Service }; 76 | -------------------------------------------------------------------------------- /libs/socket.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | const debug = require("debug")("yoke"); 3 | const net = require("net"); 4 | const decode = require("./decode"); 5 | const Encode = require("./encode"); 6 | const { ConnectionPoolError, EXCEPTIONS } = require("./exception"); 7 | 8 | const HEADER_LENGTH = 16; 9 | const FLAG_EVENT = 0x20; 10 | 11 | const Socket = function(port, host) { 12 | this.socket = null; 13 | this.transmiting = false; 14 | this.error = null; 15 | this.isConnect = false; 16 | 17 | this.heartBeatLock = false; 18 | this.heartBeatInter = null; 19 | 20 | this.resolve = null; 21 | this.reject = null; 22 | this.cb = null; 23 | 24 | this.chunks = []; 25 | this.bl = HEADER_LENGTH; 26 | 27 | this.socket = net.connect(port, host); 28 | 29 | // this.socket.setTimeout(6000); 30 | 31 | this.socket.on("timeout", this.onTimeout.bind(this)); 32 | this.socket.on("connect", this.onConnect.bind(this)); 33 | this.socket.on("data", this.onData.bind(this)); 34 | this.socket.on("error", this.onError.bind(this)); 35 | 36 | return this; 37 | }; 38 | 39 | Socket.prototype.onTimeout = function() { 40 | debug("socket timeout"); 41 | if (this.reject) { 42 | this.reject("socket timeout"); 43 | } 44 | this.socket.end(); 45 | }; 46 | 47 | Socket.prototype.invoke = function({ attach, resolve, reject }, cb) { 48 | this.resolve = resolve; 49 | this.reject = reject; 50 | this.cb = cb; 51 | this.transmiting = true; 52 | this.heartBeatLock = true; 53 | 54 | // TODO:if invoke fail 55 | const buffer = new Encode(attach); 56 | this.socket.write(buffer); 57 | }; 58 | 59 | Socket.prototype.onConnect = function() { 60 | this.isConnect = true; 61 | this.heartBeatInter = setInterval(() => { 62 | if (!this.heartBeatLock) { 63 | // prettier-ignore 64 | this.socket.write(Buffer([0xda, 0xbb, 0xe2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x01, 0x4e])); 65 | } 66 | }, 5000); 67 | }; 68 | 69 | Socket.prototype.destroy = function(msg) { 70 | this.isConnect = false; 71 | this.reject && this.reject(msg); 72 | clearInterval(this.heartBeatInter); 73 | this.socket.destroy(); 74 | }; 75 | 76 | Socket.prototype.onError = function(err) { 77 | this.error = err; 78 | 79 | if (this.cb) { 80 | this.cb(err); 81 | } 82 | 83 | if (this.reject) { 84 | switch (err.code) { 85 | case "EADDRINUSE": 86 | this.reject("Address already in use"); 87 | break; 88 | case "ECONNREFUSED": 89 | this.reject("Connection refused"); 90 | break; 91 | case "ECONNRESET": 92 | this.destroy("Connection reset by peer"); 93 | break; 94 | case "EPIPE": 95 | this.destroy("Broken pipe"); 96 | break; 97 | case "ETIMEDOUT": 98 | this.reject("Operation timed out"); 99 | break; 100 | } 101 | } 102 | }; 103 | 104 | Socket.prototype.onData = function(data) { 105 | if (!this.chunks.length) { 106 | this.bl += data.readInt32BE(12); 107 | } 108 | this.chunks.push(data); 109 | const heap = Buffer.concat(this.chunks); 110 | if (heap.length === this.bl) { 111 | this.bl = HEADER_LENGTH; 112 | this.chunks = []; 113 | this.deSerialize(heap); 114 | } 115 | }; 116 | 117 | Socket.prototype.deSerialize = function(heap) { 118 | // Decoding it if it's not a heartbeat event 119 | if (!((heap[2] & FLAG_EVENT) !== 0)) { 120 | decode(heap, (err, result) => { 121 | this.transmiting = false; 122 | this.heartBeatLock = false; 123 | 124 | err ? this.reject(err) : this.resolve(result); 125 | 126 | this.resolve = null; 127 | this.reject = null; 128 | this.cb(null, true); 129 | }); 130 | } 131 | }; 132 | 133 | const Dispatcher = function() { 134 | this.queue = []; 135 | this.waitingTasks = []; 136 | this.busyQueue = []; 137 | }; 138 | 139 | Dispatcher.prototype.insert = function(socket) { 140 | this.queue.push(socket); 141 | }; 142 | 143 | Dispatcher.prototype.remove = function(connection) { 144 | removeConn(this.queue, connection); 145 | }; 146 | 147 | Dispatcher.prototype.purgeConn = function(connection) { 148 | removeConn(this.queue, connection); 149 | removeConn(this.busyQueue, connection); 150 | }; 151 | 152 | Dispatcher.prototype.get = function(uid) { 153 | this.queue.get(uid); 154 | }; 155 | 156 | Dispatcher.prototype.gain = function(cb) { 157 | let socket = null; 158 | 159 | if (!this.queue.length && !this.busyQueue.length) { 160 | return cb(new ConnectionPoolError(EXCEPTIONS.NO_AVAILABLE_WORKER)); 161 | } 162 | if (this.queue.length) { 163 | socket = this.queue.shift(); 164 | if (socket.isConnect === false) { 165 | this.purgeConn(socket); 166 | return this.gain(cb); 167 | } 168 | this.busyQueue.push(socket); 169 | cb(null, socket); 170 | } else { 171 | this.waitingTasks.push(cb); 172 | } 173 | }; 174 | 175 | Dispatcher.prototype.release = function(conn) { 176 | removeConn(this.busyQueue, conn); 177 | this.queue.push(conn); 178 | if (this.waitingTasks.length) { 179 | this.gain(this.waitingTasks.shift()); 180 | } 181 | }; 182 | 183 | function removeConn(arr, conn) { 184 | const index = arr.indexOf(conn); 185 | if (index !== -1) { 186 | arr.splice(index, 1); 187 | } 188 | } 189 | 190 | module.exports = { 191 | Dispatcher, 192 | Socket 193 | }; 194 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "node-zookeeper-dubbo", 3 | "version": "3.0.15", 4 | "description": "node connect dubbo by default protocol in zookeeper", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "ava", 8 | "debug": "DEBUG=yoke nodemon test/index.js" 9 | }, 10 | "keywords": [ 11 | "zookeeper", 12 | "node", 13 | "dubbo", 14 | "javascript" 15 | ], 16 | "repository": { 17 | "type": "git", 18 | "url": "https://github.com/p412726700/node-zookeeper-dubbo" 19 | }, 20 | "author": "pzc <412726700@qq.com>", 21 | "license": "ISC", 22 | "dependencies": { 23 | "chalk": "^2.4.1", 24 | "debug": "^4.1.1", 25 | "hessian.js": "^2.1.8", 26 | "node-zookeeper-client": "0.2.3", 27 | "supports-color": "^6.1.0" 28 | }, 29 | "jscsConfig": { 30 | "preset": "node-style-guide", 31 | "validateQuoteMarks": null 32 | }, 33 | "devDependencies": { 34 | "ava": "1.2.1", 35 | "chai": "^4.2.0", 36 | "eslint": "^5.13.0", 37 | "js-to-java": "^2.6.0", 38 | "mocha": "^5.2.0" 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /utils.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | const chalk = require("chalk"); 3 | 4 | let nextTick; 5 | if (typeof setImmediate === "function") { 6 | nextTick = setImmediate; 7 | } else if (typeof process === "object" && process && process.nextTick) { 8 | nextTick = process.nextTick; 9 | } else { 10 | nextTick = cb => { 11 | setTimeout(cb, 0); 12 | }; 13 | } 14 | 15 | function nodeify(promise, cb) { 16 | if (typeof cb !== "function") { 17 | return promise; 18 | } 19 | 20 | return promise 21 | .then(res => { 22 | nextTick(() => { 23 | cb(null, res); 24 | }); 25 | }) 26 | .catch(err => { 27 | cb(err); 28 | }); 29 | } 30 | function nodeifySelf(cb) { 31 | return nodeify(this, cb); 32 | } 33 | 34 | Object.assign(Promise.prototype, { 35 | nodeify: nodeifySelf 36 | }); 37 | 38 | const co = genfun => { 39 | const gen = genfun(); 40 | const next = value => { 41 | const ret = gen.next(value); 42 | if (ret.done) return; 43 | ret.value((err, val) => { 44 | if (err) { 45 | return console.error(err); 46 | } 47 | return next(val); 48 | }); 49 | }; 50 | next(); 51 | }; 52 | 53 | const log = (color, args) => console.log(chalk[color](args)); 54 | const print = Object.create(null); 55 | print.warn = (...args) => log("yellow", args); 56 | print.err = (...args) => log("red", args); 57 | print.info = (...args) => log("green", args); 58 | 59 | const noop = () => {}; 60 | module.exports = { 61 | nodeify, 62 | co, 63 | print, 64 | noop 65 | }; 66 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@ava/babel-plugin-throws-helper@^2.0.0": 6 | version "2.0.0" 7 | resolved "http://registry.npm.taobao.org/@ava/babel-plugin-throws-helper/download/@ava/babel-plugin-throws-helper-2.0.0.tgz#2fc1fe3c211a71071a4eca7b8f7af5842cd1ae7c" 8 | 9 | "@ava/babel-preset-stage-4@^1.1.0": 10 | version "1.1.0" 11 | resolved "http://registry.npm.taobao.org/@ava/babel-preset-stage-4/download/@ava/babel-preset-stage-4-1.1.0.tgz#ae60be881a0babf7d35f52aba770d1f6194f76bd" 12 | dependencies: 13 | babel-plugin-check-es2015-constants "^6.8.0" 14 | babel-plugin-syntax-trailing-function-commas "^6.20.0" 15 | babel-plugin-transform-async-to-generator "^6.16.0" 16 | babel-plugin-transform-es2015-destructuring "^6.19.0" 17 | babel-plugin-transform-es2015-function-name "^6.9.0" 18 | babel-plugin-transform-es2015-modules-commonjs "^6.18.0" 19 | babel-plugin-transform-es2015-parameters "^6.21.0" 20 | babel-plugin-transform-es2015-spread "^6.8.0" 21 | babel-plugin-transform-es2015-sticky-regex "^6.8.0" 22 | babel-plugin-transform-es2015-unicode-regex "^6.11.0" 23 | babel-plugin-transform-exponentiation-operator "^6.8.0" 24 | package-hash "^1.2.0" 25 | 26 | "@ava/babel-preset-transform-test-files@^3.0.0": 27 | version "3.0.0" 28 | resolved "http://registry.npm.taobao.org/@ava/babel-preset-transform-test-files/download/@ava/babel-preset-transform-test-files-3.0.0.tgz#cded1196a8d8d9381a509240ab92e91a5ec069f7" 29 | dependencies: 30 | "@ava/babel-plugin-throws-helper" "^2.0.0" 31 | babel-plugin-espower "^2.3.2" 32 | 33 | "@ava/write-file-atomic@^2.2.0": 34 | version "2.2.0" 35 | resolved "http://registry.npm.taobao.org/@ava/write-file-atomic/download/@ava/write-file-atomic-2.2.0.tgz#d625046f3495f1f5e372135f473909684b429247" 36 | dependencies: 37 | graceful-fs "^4.1.11" 38 | imurmurhash "^0.1.4" 39 | slide "^1.1.5" 40 | 41 | "@concordance/react@^1.0.0": 42 | version "1.0.0" 43 | resolved "http://registry.npm.taobao.org/@concordance/react/download/@concordance/react-1.0.0.tgz#fcf3cad020e5121bfd1c61d05bc3516aac25f734" 44 | dependencies: 45 | arrify "^1.0.1" 46 | 47 | abbrev@1: 48 | version "1.1.1" 49 | resolved "http://registry.npm.taobao.org/abbrev/download/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" 50 | 51 | accepts@^1.2.2, accepts@~1.3.5: 52 | version "1.3.5" 53 | resolved "http://registry.npm.taobao.org/accepts/download/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2" 54 | dependencies: 55 | mime-types "~2.1.18" 56 | negotiator "0.6.1" 57 | 58 | acorn-jsx@^3.0.0: 59 | version "3.0.1" 60 | resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" 61 | dependencies: 62 | acorn "^3.0.4" 63 | 64 | acorn@^3.0.4: 65 | version "3.3.0" 66 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" 67 | 68 | acorn@^5.5.0: 69 | version "5.5.3" 70 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.5.3.tgz#f473dd47e0277a08e28e9bec5aeeb04751f0b8c9" 71 | 72 | ajv-keywords@^2.1.0: 73 | version "2.1.1" 74 | resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762" 75 | 76 | ajv@^4.9.1: 77 | version "4.11.8" 78 | resolved "http://registry.npm.taobao.org/ajv/download/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" 79 | dependencies: 80 | co "^4.6.0" 81 | json-stable-stringify "^1.0.1" 82 | 83 | ajv@^5.2.3, ajv@^5.3.0: 84 | version "5.5.2" 85 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" 86 | dependencies: 87 | co "^4.6.0" 88 | fast-deep-equal "^1.0.0" 89 | fast-json-stable-stringify "^2.0.0" 90 | json-schema-traverse "^0.3.0" 91 | 92 | ansi-align@^2.0.0: 93 | version "2.0.0" 94 | resolved "http://registry.npm.taobao.org/ansi-align/download/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f" 95 | dependencies: 96 | string-width "^2.0.0" 97 | 98 | ansi-escapes@^3.0.0: 99 | version "3.1.0" 100 | resolved "http://registry.npm.taobao.org/ansi-escapes/download/ansi-escapes-3.1.0.tgz#f73207bb81207d75fd6c83f125af26eea378ca30" 101 | 102 | ansi-regex@^2.0.0: 103 | version "2.1.1" 104 | resolved "http://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" 105 | 106 | ansi-regex@^3.0.0: 107 | version "3.0.0" 108 | resolved "http://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" 109 | 110 | ansi-styles@^2.2.1: 111 | version "2.2.1" 112 | resolved "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" 113 | 114 | ansi-styles@^3.1.0, ansi-styles@^3.2.1: 115 | version "3.2.1" 116 | resolved "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 117 | dependencies: 118 | color-convert "^1.9.0" 119 | 120 | ansi-styles@~1.0.0: 121 | version "1.0.0" 122 | resolved "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-1.0.0.tgz#cb102df1c56f5123eab8b67cd7b98027a0279178" 123 | 124 | any-promise@^1.0.0, any-promise@^1.1.0: 125 | version "1.3.0" 126 | resolved "http://registry.npm.taobao.org/any-promise/download/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" 127 | 128 | anymatch@^1.3.0: 129 | version "1.3.2" 130 | resolved "http://registry.npm.taobao.org/anymatch/download/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" 131 | dependencies: 132 | micromatch "^2.1.5" 133 | normalize-path "^2.0.0" 134 | 135 | aproba@^1.0.3: 136 | version "1.2.0" 137 | resolved "http://registry.npm.taobao.org/aproba/download/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" 138 | 139 | are-we-there-yet@~1.1.2: 140 | version "1.1.4" 141 | resolved "http://registry.npm.taobao.org/are-we-there-yet/download/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d" 142 | dependencies: 143 | delegates "^1.0.0" 144 | readable-stream "^2.0.6" 145 | 146 | argparse@^1.0.7: 147 | version "1.0.10" 148 | resolved "http://registry.npm.taobao.org/argparse/download/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" 149 | dependencies: 150 | sprintf-js "~1.0.2" 151 | 152 | arr-diff@^2.0.0: 153 | version "2.0.0" 154 | resolved "http://registry.npm.taobao.org/arr-diff/download/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" 155 | dependencies: 156 | arr-flatten "^1.0.1" 157 | 158 | arr-exclude@^1.0.0: 159 | version "1.0.0" 160 | resolved "http://registry.npm.taobao.org/arr-exclude/download/arr-exclude-1.0.0.tgz#dfc7c2e552a270723ccda04cf3128c8cbfe5c631" 161 | 162 | arr-flatten@^1.0.1: 163 | version "1.1.0" 164 | resolved "http://registry.npm.taobao.org/arr-flatten/download/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" 165 | 166 | array-differ@^1.0.0: 167 | version "1.0.0" 168 | resolved "http://registry.npm.taobao.org/array-differ/download/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031" 169 | 170 | array-find-index@^1.0.1: 171 | version "1.0.2" 172 | resolved "http://registry.npm.taobao.org/array-find-index/download/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" 173 | 174 | array-flatten@1.1.1: 175 | version "1.1.1" 176 | resolved "http://registry.npm.taobao.org/array-flatten/download/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" 177 | 178 | array-union@^1.0.1: 179 | version "1.0.2" 180 | resolved "http://registry.npm.taobao.org/array-union/download/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" 181 | dependencies: 182 | array-uniq "^1.0.1" 183 | 184 | array-uniq@^1.0.1, array-uniq@^1.0.2: 185 | version "1.0.3" 186 | resolved "http://registry.npm.taobao.org/array-uniq/download/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" 187 | 188 | array-unique@^0.2.1: 189 | version "0.2.1" 190 | resolved "http://registry.npm.taobao.org/array-unique/download/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" 191 | 192 | arrify@^1.0.0, arrify@^1.0.1: 193 | version "1.0.1" 194 | resolved "http://registry.npm.taobao.org/arrify/download/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" 195 | 196 | asn1@~0.2.3: 197 | version "0.2.3" 198 | resolved "http://registry.npm.taobao.org/asn1/download/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" 199 | 200 | assert-plus@1.0.0, assert-plus@^1.0.0: 201 | version "1.0.0" 202 | resolved "http://registry.npm.taobao.org/assert-plus/download/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" 203 | 204 | assert-plus@^0.2.0: 205 | version "0.2.0" 206 | resolved "http://registry.npm.taobao.org/assert-plus/download/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" 207 | 208 | assertion-error@^1.0.1: 209 | version "1.1.0" 210 | resolved "http://registry.npm.taobao.org/assertion-error/download/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" 211 | 212 | async-each@^1.0.0: 213 | version "1.0.1" 214 | resolved "http://registry.npm.taobao.org/async-each/download/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" 215 | 216 | async@~0.2.7: 217 | version "0.2.10" 218 | resolved "http://registry.npm.taobao.org/async/download/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1" 219 | 220 | asynckit@^0.4.0: 221 | version "0.4.0" 222 | resolved "http://registry.npm.taobao.org/asynckit/download/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" 223 | 224 | auto-bind@^1.1.0: 225 | version "1.2.0" 226 | resolved "http://registry.npm.taobao.org/auto-bind/download/auto-bind-1.2.0.tgz#8b7e318aad53d43ba8a8ecaf0066d85d5f798cd6" 227 | 228 | ava-init@^0.2.0: 229 | version "0.2.1" 230 | resolved "http://registry.npm.taobao.org/ava-init/download/ava-init-0.2.1.tgz#75ac4c8553326290d2866e63b62fa7035684bd58" 231 | dependencies: 232 | arr-exclude "^1.0.0" 233 | execa "^0.7.0" 234 | has-yarn "^1.0.0" 235 | read-pkg-up "^2.0.0" 236 | write-pkg "^3.1.0" 237 | 238 | ava@^0.24.0: 239 | version "0.24.0" 240 | resolved "http://registry.npm.taobao.org/ava/download/ava-0.24.0.tgz#dd0ab33a0b3ad2ac582f55e9a61caf8bcf7a9af1" 241 | dependencies: 242 | "@ava/babel-preset-stage-4" "^1.1.0" 243 | "@ava/babel-preset-transform-test-files" "^3.0.0" 244 | "@ava/write-file-atomic" "^2.2.0" 245 | "@concordance/react" "^1.0.0" 246 | ansi-escapes "^3.0.0" 247 | ansi-styles "^3.1.0" 248 | arr-flatten "^1.0.1" 249 | array-union "^1.0.1" 250 | array-uniq "^1.0.2" 251 | arrify "^1.0.0" 252 | auto-bind "^1.1.0" 253 | ava-init "^0.2.0" 254 | babel-core "^6.17.0" 255 | babel-generator "^6.26.0" 256 | babel-plugin-syntax-object-rest-spread "^6.13.0" 257 | bluebird "^3.0.0" 258 | caching-transform "^1.0.0" 259 | chalk "^2.0.1" 260 | chokidar "^1.4.2" 261 | clean-stack "^1.1.1" 262 | clean-yaml-object "^0.1.0" 263 | cli-cursor "^2.1.0" 264 | cli-spinners "^1.0.0" 265 | cli-truncate "^1.0.0" 266 | co-with-promise "^4.6.0" 267 | code-excerpt "^2.1.0" 268 | common-path-prefix "^1.0.0" 269 | concordance "^3.0.0" 270 | convert-source-map "^1.2.0" 271 | core-assert "^0.2.0" 272 | currently-unhandled "^0.4.1" 273 | debug "^3.0.1" 274 | dot-prop "^4.1.0" 275 | empower-core "^0.6.1" 276 | equal-length "^1.0.0" 277 | figures "^2.0.0" 278 | find-cache-dir "^1.0.0" 279 | fn-name "^2.0.0" 280 | get-port "^3.0.0" 281 | globby "^6.0.0" 282 | has-flag "^2.0.0" 283 | hullabaloo-config-manager "^1.1.0" 284 | ignore-by-default "^1.0.0" 285 | import-local "^0.1.1" 286 | indent-string "^3.0.0" 287 | is-ci "^1.0.7" 288 | is-generator-fn "^1.0.0" 289 | is-obj "^1.0.0" 290 | is-observable "^1.0.0" 291 | is-promise "^2.1.0" 292 | js-yaml "^3.8.2" 293 | last-line-stream "^1.0.0" 294 | lodash.clonedeepwith "^4.5.0" 295 | lodash.debounce "^4.0.3" 296 | lodash.difference "^4.3.0" 297 | lodash.flatten "^4.2.0" 298 | loud-rejection "^1.2.0" 299 | make-dir "^1.0.0" 300 | matcher "^1.0.0" 301 | md5-hex "^2.0.0" 302 | meow "^3.7.0" 303 | ms "^2.0.0" 304 | multimatch "^2.1.0" 305 | observable-to-promise "^0.5.0" 306 | option-chain "^1.0.0" 307 | package-hash "^2.0.0" 308 | pkg-conf "^2.0.0" 309 | plur "^2.0.0" 310 | pretty-ms "^3.0.0" 311 | require-precompiled "^0.1.0" 312 | resolve-cwd "^2.0.0" 313 | safe-buffer "^5.1.1" 314 | semver "^5.4.1" 315 | slash "^1.0.0" 316 | source-map-support "^0.5.0" 317 | stack-utils "^1.0.1" 318 | strip-ansi "^4.0.0" 319 | strip-bom-buf "^1.0.0" 320 | supports-color "^5.0.0" 321 | time-require "^0.1.2" 322 | trim-off-newlines "^1.0.1" 323 | unique-temp-dir "^1.0.0" 324 | update-notifier "^2.3.0" 325 | 326 | aws-sign2@~0.6.0: 327 | version "0.6.0" 328 | resolved "http://registry.npm.taobao.org/aws-sign2/download/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" 329 | 330 | aws4@^1.2.1: 331 | version "1.7.0" 332 | resolved "http://registry.npm.taobao.org/aws4/download/aws4-1.7.0.tgz#d4d0e9b9dbfca77bf08eeb0a8a471550fe39e289" 333 | 334 | babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: 335 | version "6.26.0" 336 | resolved "http://registry.npm.taobao.org/babel-code-frame/download/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" 337 | dependencies: 338 | chalk "^1.1.3" 339 | esutils "^2.0.2" 340 | js-tokens "^3.0.2" 341 | 342 | babel-core@^6.17.0, babel-core@^6.26.0: 343 | version "6.26.0" 344 | resolved "http://registry.npm.taobao.org/babel-core/download/babel-core-6.26.0.tgz#af32f78b31a6fcef119c87b0fd8d9753f03a0bb8" 345 | dependencies: 346 | babel-code-frame "^6.26.0" 347 | babel-generator "^6.26.0" 348 | babel-helpers "^6.24.1" 349 | babel-messages "^6.23.0" 350 | babel-register "^6.26.0" 351 | babel-runtime "^6.26.0" 352 | babel-template "^6.26.0" 353 | babel-traverse "^6.26.0" 354 | babel-types "^6.26.0" 355 | babylon "^6.18.0" 356 | convert-source-map "^1.5.0" 357 | debug "^2.6.8" 358 | json5 "^0.5.1" 359 | lodash "^4.17.4" 360 | minimatch "^3.0.4" 361 | path-is-absolute "^1.0.1" 362 | private "^0.1.7" 363 | slash "^1.0.0" 364 | source-map "^0.5.6" 365 | 366 | babel-generator@^6.1.0, babel-generator@^6.26.0: 367 | version "6.26.1" 368 | resolved "http://registry.npm.taobao.org/babel-generator/download/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" 369 | dependencies: 370 | babel-messages "^6.23.0" 371 | babel-runtime "^6.26.0" 372 | babel-types "^6.26.0" 373 | detect-indent "^4.0.0" 374 | jsesc "^1.3.0" 375 | lodash "^4.17.4" 376 | source-map "^0.5.7" 377 | trim-right "^1.0.1" 378 | 379 | babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: 380 | version "6.24.1" 381 | 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" 382 | dependencies: 383 | babel-helper-explode-assignable-expression "^6.24.1" 384 | babel-runtime "^6.22.0" 385 | babel-types "^6.24.1" 386 | 387 | babel-helper-call-delegate@^6.24.1: 388 | version "6.24.1" 389 | resolved "http://registry.npm.taobao.org/babel-helper-call-delegate/download/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" 390 | dependencies: 391 | babel-helper-hoist-variables "^6.24.1" 392 | babel-runtime "^6.22.0" 393 | babel-traverse "^6.24.1" 394 | babel-types "^6.24.1" 395 | 396 | babel-helper-explode-assignable-expression@^6.24.1: 397 | version "6.24.1" 398 | resolved "http://registry.npm.taobao.org/babel-helper-explode-assignable-expression/download/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa" 399 | dependencies: 400 | babel-runtime "^6.22.0" 401 | babel-traverse "^6.24.1" 402 | babel-types "^6.24.1" 403 | 404 | babel-helper-function-name@^6.24.1: 405 | version "6.24.1" 406 | resolved "http://registry.npm.taobao.org/babel-helper-function-name/download/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" 407 | dependencies: 408 | babel-helper-get-function-arity "^6.24.1" 409 | babel-runtime "^6.22.0" 410 | babel-template "^6.24.1" 411 | babel-traverse "^6.24.1" 412 | babel-types "^6.24.1" 413 | 414 | babel-helper-get-function-arity@^6.24.1: 415 | version "6.24.1" 416 | resolved "http://registry.npm.taobao.org/babel-helper-get-function-arity/download/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" 417 | dependencies: 418 | babel-runtime "^6.22.0" 419 | babel-types "^6.24.1" 420 | 421 | babel-helper-hoist-variables@^6.24.1: 422 | version "6.24.1" 423 | resolved "http://registry.npm.taobao.org/babel-helper-hoist-variables/download/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" 424 | dependencies: 425 | babel-runtime "^6.22.0" 426 | babel-types "^6.24.1" 427 | 428 | babel-helper-regex@^6.24.1: 429 | version "6.26.0" 430 | resolved "http://registry.npm.taobao.org/babel-helper-regex/download/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72" 431 | dependencies: 432 | babel-runtime "^6.26.0" 433 | babel-types "^6.26.0" 434 | lodash "^4.17.4" 435 | 436 | babel-helper-remap-async-to-generator@^6.24.1: 437 | version "6.24.1" 438 | resolved "http://registry.npm.taobao.org/babel-helper-remap-async-to-generator/download/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b" 439 | dependencies: 440 | babel-helper-function-name "^6.24.1" 441 | babel-runtime "^6.22.0" 442 | babel-template "^6.24.1" 443 | babel-traverse "^6.24.1" 444 | babel-types "^6.24.1" 445 | 446 | babel-helpers@^6.24.1: 447 | version "6.24.1" 448 | resolved "http://registry.npm.taobao.org/babel-helpers/download/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" 449 | dependencies: 450 | babel-runtime "^6.22.0" 451 | babel-template "^6.24.1" 452 | 453 | babel-messages@^6.23.0: 454 | version "6.23.0" 455 | resolved "http://registry.npm.taobao.org/babel-messages/download/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" 456 | dependencies: 457 | babel-runtime "^6.22.0" 458 | 459 | babel-plugin-check-es2015-constants@^6.8.0: 460 | version "6.22.0" 461 | resolved "http://registry.npm.taobao.org/babel-plugin-check-es2015-constants/download/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" 462 | dependencies: 463 | babel-runtime "^6.22.0" 464 | 465 | babel-plugin-espower@^2.3.2: 466 | version "2.4.0" 467 | resolved "http://registry.npm.taobao.org/babel-plugin-espower/download/babel-plugin-espower-2.4.0.tgz#9f92c080e9adfe73f69baed7ab3e24f649009373" 468 | dependencies: 469 | babel-generator "^6.1.0" 470 | babylon "^6.1.0" 471 | call-matcher "^1.0.0" 472 | core-js "^2.0.0" 473 | espower-location-detector "^1.0.0" 474 | espurify "^1.6.0" 475 | estraverse "^4.1.1" 476 | 477 | babel-plugin-syntax-async-functions@^6.8.0: 478 | version "6.13.0" 479 | resolved "http://registry.npm.taobao.org/babel-plugin-syntax-async-functions/download/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" 480 | 481 | babel-plugin-syntax-exponentiation-operator@^6.8.0: 482 | version "6.13.0" 483 | resolved "http://registry.npm.taobao.org/babel-plugin-syntax-exponentiation-operator/download/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" 484 | 485 | babel-plugin-syntax-object-rest-spread@^6.13.0: 486 | version "6.13.0" 487 | resolved "http://registry.npm.taobao.org/babel-plugin-syntax-object-rest-spread/download/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" 488 | 489 | babel-plugin-syntax-trailing-function-commas@^6.20.0: 490 | version "6.22.0" 491 | resolved "http://registry.npm.taobao.org/babel-plugin-syntax-trailing-function-commas/download/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" 492 | 493 | babel-plugin-transform-async-to-generator@^6.16.0: 494 | version "6.24.1" 495 | resolved "http://registry.npm.taobao.org/babel-plugin-transform-async-to-generator/download/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" 496 | dependencies: 497 | babel-helper-remap-async-to-generator "^6.24.1" 498 | babel-plugin-syntax-async-functions "^6.8.0" 499 | babel-runtime "^6.22.0" 500 | 501 | babel-plugin-transform-es2015-destructuring@^6.19.0: 502 | version "6.23.0" 503 | resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-destructuring/download/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" 504 | dependencies: 505 | babel-runtime "^6.22.0" 506 | 507 | babel-plugin-transform-es2015-function-name@^6.9.0: 508 | version "6.24.1" 509 | resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-function-name/download/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" 510 | dependencies: 511 | babel-helper-function-name "^6.24.1" 512 | babel-runtime "^6.22.0" 513 | babel-types "^6.24.1" 514 | 515 | babel-plugin-transform-es2015-modules-commonjs@^6.18.0: 516 | version "6.26.0" 517 | resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-modules-commonjs/download/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz#0d8394029b7dc6abe1a97ef181e00758dd2e5d8a" 518 | dependencies: 519 | babel-plugin-transform-strict-mode "^6.24.1" 520 | babel-runtime "^6.26.0" 521 | babel-template "^6.26.0" 522 | babel-types "^6.26.0" 523 | 524 | babel-plugin-transform-es2015-parameters@^6.21.0: 525 | version "6.24.1" 526 | resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-parameters/download/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" 527 | dependencies: 528 | babel-helper-call-delegate "^6.24.1" 529 | babel-helper-get-function-arity "^6.24.1" 530 | babel-runtime "^6.22.0" 531 | babel-template "^6.24.1" 532 | babel-traverse "^6.24.1" 533 | babel-types "^6.24.1" 534 | 535 | babel-plugin-transform-es2015-spread@^6.8.0: 536 | version "6.22.0" 537 | resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-spread/download/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" 538 | dependencies: 539 | babel-runtime "^6.22.0" 540 | 541 | babel-plugin-transform-es2015-sticky-regex@^6.8.0: 542 | version "6.24.1" 543 | resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-sticky-regex/download/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" 544 | dependencies: 545 | babel-helper-regex "^6.24.1" 546 | babel-runtime "^6.22.0" 547 | babel-types "^6.24.1" 548 | 549 | babel-plugin-transform-es2015-unicode-regex@^6.11.0: 550 | version "6.24.1" 551 | resolved "http://registry.npm.taobao.org/babel-plugin-transform-es2015-unicode-regex/download/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" 552 | dependencies: 553 | babel-helper-regex "^6.24.1" 554 | babel-runtime "^6.22.0" 555 | regexpu-core "^2.0.0" 556 | 557 | babel-plugin-transform-exponentiation-operator@^6.8.0: 558 | version "6.24.1" 559 | resolved "http://registry.npm.taobao.org/babel-plugin-transform-exponentiation-operator/download/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" 560 | dependencies: 561 | babel-helper-builder-binary-assignment-operator-visitor "^6.24.1" 562 | babel-plugin-syntax-exponentiation-operator "^6.8.0" 563 | babel-runtime "^6.22.0" 564 | 565 | babel-plugin-transform-strict-mode@^6.24.1: 566 | version "6.24.1" 567 | resolved "http://registry.npm.taobao.org/babel-plugin-transform-strict-mode/download/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" 568 | dependencies: 569 | babel-runtime "^6.22.0" 570 | babel-types "^6.24.1" 571 | 572 | babel-register@^6.26.0: 573 | version "6.26.0" 574 | resolved "http://registry.npm.taobao.org/babel-register/download/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" 575 | dependencies: 576 | babel-core "^6.26.0" 577 | babel-runtime "^6.26.0" 578 | core-js "^2.5.0" 579 | home-or-tmp "^2.0.0" 580 | lodash "^4.17.4" 581 | mkdirp "^0.5.1" 582 | source-map-support "^0.4.15" 583 | 584 | babel-runtime@^6.22.0, babel-runtime@^6.26.0: 585 | version "6.26.0" 586 | resolved "http://registry.npm.taobao.org/babel-runtime/download/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" 587 | dependencies: 588 | core-js "^2.4.0" 589 | regenerator-runtime "^0.11.0" 590 | 591 | babel-template@^6.24.1, babel-template@^6.26.0: 592 | version "6.26.0" 593 | resolved "http://registry.npm.taobao.org/babel-template/download/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" 594 | dependencies: 595 | babel-runtime "^6.26.0" 596 | babel-traverse "^6.26.0" 597 | babel-types "^6.26.0" 598 | babylon "^6.18.0" 599 | lodash "^4.17.4" 600 | 601 | babel-traverse@^6.24.1, babel-traverse@^6.26.0: 602 | version "6.26.0" 603 | resolved "http://registry.npm.taobao.org/babel-traverse/download/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" 604 | dependencies: 605 | babel-code-frame "^6.26.0" 606 | babel-messages "^6.23.0" 607 | babel-runtime "^6.26.0" 608 | babel-types "^6.26.0" 609 | babylon "^6.18.0" 610 | debug "^2.6.8" 611 | globals "^9.18.0" 612 | invariant "^2.2.2" 613 | lodash "^4.17.4" 614 | 615 | babel-types@^6.24.1, babel-types@^6.26.0: 616 | version "6.26.0" 617 | resolved "http://registry.npm.taobao.org/babel-types/download/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" 618 | dependencies: 619 | babel-runtime "^6.26.0" 620 | esutils "^2.0.2" 621 | lodash "^4.17.4" 622 | to-fast-properties "^1.0.3" 623 | 624 | babylon@^6.1.0, babylon@^6.18.0: 625 | version "6.18.0" 626 | resolved "http://registry.npm.taobao.org/babylon/download/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" 627 | 628 | balanced-match@^1.0.0: 629 | version "1.0.0" 630 | resolved "http://registry.npm.taobao.org/balanced-match/download/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 631 | 632 | bcrypt-pbkdf@^1.0.0: 633 | version "1.0.1" 634 | resolved "http://registry.npm.taobao.org/bcrypt-pbkdf/download/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" 635 | dependencies: 636 | tweetnacl "^0.14.3" 637 | 638 | binary-extensions@^1.0.0: 639 | version "1.11.0" 640 | resolved "http://registry.npm.taobao.org/binary-extensions/download/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205" 641 | 642 | block-stream@*: 643 | version "0.0.9" 644 | resolved "http://registry.npm.taobao.org/block-stream/download/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" 645 | dependencies: 646 | inherits "~2.0.0" 647 | 648 | bluebird@^3.0.0: 649 | version "3.5.1" 650 | resolved "http://registry.npm.taobao.org/bluebird/download/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9" 651 | 652 | body-parser@1.18.2: 653 | version "1.18.2" 654 | resolved "http://registry.npm.taobao.org/body-parser/download/body-parser-1.18.2.tgz#87678a19d84b47d859b83199bd59bce222b10454" 655 | dependencies: 656 | bytes "3.0.0" 657 | content-type "~1.0.4" 658 | debug "2.6.9" 659 | depd "~1.1.1" 660 | http-errors "~1.6.2" 661 | iconv-lite "0.4.19" 662 | on-finished "~2.3.0" 663 | qs "6.5.1" 664 | raw-body "2.3.2" 665 | type-is "~1.6.15" 666 | 667 | boom@2.x.x: 668 | version "2.10.1" 669 | resolved "http://registry.npm.taobao.org/boom/download/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" 670 | dependencies: 671 | hoek "2.x.x" 672 | 673 | boxen@^1.2.1: 674 | version "1.3.0" 675 | resolved "http://registry.npm.taobao.org/boxen/download/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b" 676 | dependencies: 677 | ansi-align "^2.0.0" 678 | camelcase "^4.0.0" 679 | chalk "^2.0.1" 680 | cli-boxes "^1.0.0" 681 | string-width "^2.0.0" 682 | term-size "^1.2.0" 683 | widest-line "^2.0.0" 684 | 685 | brace-expansion@^1.1.7: 686 | version "1.1.11" 687 | resolved "http://registry.npm.taobao.org/brace-expansion/download/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 688 | dependencies: 689 | balanced-match "^1.0.0" 690 | concat-map "0.0.1" 691 | 692 | braces@^1.8.2: 693 | version "1.8.5" 694 | resolved "http://registry.npm.taobao.org/braces/download/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" 695 | dependencies: 696 | expand-range "^1.8.1" 697 | preserve "^0.2.0" 698 | repeat-element "^1.1.2" 699 | 700 | browser-stdout@1.3.1: 701 | version "1.3.1" 702 | resolved "http://registry.npm.taobao.org/browser-stdout/download/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" 703 | 704 | buf-compare@^1.0.0: 705 | version "1.0.1" 706 | resolved "http://registry.npm.taobao.org/buf-compare/download/buf-compare-1.0.1.tgz#fef28da8b8113a0a0db4430b0b6467b69730b34a" 707 | 708 | buffer-from@^1.0.0: 709 | version "1.0.0" 710 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.0.0.tgz#4cb8832d23612589b0406e9e2956c17f06fdf531" 711 | 712 | builtin-modules@^1.0.0: 713 | version "1.1.1" 714 | resolved "http://registry.npm.taobao.org/builtin-modules/download/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" 715 | 716 | byte@^1.3.0: 717 | version "1.4.0" 718 | resolved "http://registry.npm.taobao.org/byte/download/byte-1.4.0.tgz#67568b31aa684612acad038c8dd1715b99049757" 719 | dependencies: 720 | debug "^2.6.6" 721 | long "^3.2.0" 722 | utility "^1.12.0" 723 | 724 | bytes@3.0.0: 725 | version "3.0.0" 726 | resolved "http://registry.npm.taobao.org/bytes/download/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" 727 | 728 | caching-transform@^1.0.0: 729 | version "1.0.1" 730 | resolved "http://registry.npm.taobao.org/caching-transform/download/caching-transform-1.0.1.tgz#6dbdb2f20f8d8fbce79f3e94e9d1742dcdf5c0a1" 731 | dependencies: 732 | md5-hex "^1.2.0" 733 | mkdirp "^0.5.1" 734 | write-file-atomic "^1.1.4" 735 | 736 | call-matcher@^1.0.0: 737 | version "1.0.1" 738 | resolved "http://registry.npm.taobao.org/call-matcher/download/call-matcher-1.0.1.tgz#5134d077984f712a54dad3cbf62de28dce416ca8" 739 | dependencies: 740 | core-js "^2.0.0" 741 | deep-equal "^1.0.0" 742 | espurify "^1.6.0" 743 | estraverse "^4.0.0" 744 | 745 | call-signature@0.0.2: 746 | version "0.0.2" 747 | resolved "http://registry.npm.taobao.org/call-signature/download/call-signature-0.0.2.tgz#a84abc825a55ef4cb2b028bd74e205a65b9a4996" 748 | 749 | caller-path@^0.1.0: 750 | version "0.1.0" 751 | resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" 752 | dependencies: 753 | callsites "^0.2.0" 754 | 755 | callsites@^0.2.0: 756 | version "0.2.0" 757 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" 758 | 759 | camelcase-keys@^2.0.0: 760 | version "2.1.0" 761 | resolved "http://registry.npm.taobao.org/camelcase-keys/download/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" 762 | dependencies: 763 | camelcase "^2.0.0" 764 | map-obj "^1.0.0" 765 | 766 | camelcase@^2.0.0: 767 | version "2.1.1" 768 | resolved "http://registry.npm.taobao.org/camelcase/download/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" 769 | 770 | camelcase@^4.0.0: 771 | version "4.1.0" 772 | resolved "http://registry.npm.taobao.org/camelcase/download/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" 773 | 774 | capture-stack-trace@^1.0.0: 775 | version "1.0.0" 776 | resolved "http://registry.npm.taobao.org/capture-stack-trace/download/capture-stack-trace-1.0.0.tgz#4a6fa07399c26bba47f0b2496b4d0fb408c5550d" 777 | 778 | caseless@~0.12.0: 779 | version "0.12.0" 780 | resolved "http://registry.npm.taobao.org/caseless/download/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" 781 | 782 | chai@^4.1.2: 783 | version "4.1.2" 784 | resolved "http://registry.npm.taobao.org/chai/download/chai-4.1.2.tgz#0f64584ba642f0f2ace2806279f4f06ca23ad73c" 785 | dependencies: 786 | assertion-error "^1.0.1" 787 | check-error "^1.0.1" 788 | deep-eql "^3.0.0" 789 | get-func-name "^2.0.0" 790 | pathval "^1.0.0" 791 | type-detect "^4.0.0" 792 | 793 | chalk@^0.4.0: 794 | version "0.4.0" 795 | resolved "http://registry.npm.taobao.org/chalk/download/chalk-0.4.0.tgz#5199a3ddcd0c1efe23bc08c1b027b06176e0c64f" 796 | dependencies: 797 | ansi-styles "~1.0.0" 798 | has-color "~0.1.0" 799 | strip-ansi "~0.1.0" 800 | 801 | chalk@^1.1.3: 802 | version "1.1.3" 803 | resolved "http://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" 804 | dependencies: 805 | ansi-styles "^2.2.1" 806 | escape-string-regexp "^1.0.2" 807 | has-ansi "^2.0.0" 808 | strip-ansi "^3.0.0" 809 | supports-color "^2.0.0" 810 | 811 | chalk@^2.0.0, chalk@^2.1.0, chalk@^2.4.1: 812 | version "2.4.1" 813 | resolved "http://registry.npm.taobao.org/chalk/download/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e" 814 | dependencies: 815 | ansi-styles "^3.2.1" 816 | escape-string-regexp "^1.0.5" 817 | supports-color "^5.3.0" 818 | 819 | chalk@^2.0.1: 820 | version "2.3.2" 821 | resolved "http://registry.npm.taobao.org/chalk/download/chalk-2.3.2.tgz#250dc96b07491bfd601e648d66ddf5f60c7a5c65" 822 | dependencies: 823 | ansi-styles "^3.2.1" 824 | escape-string-regexp "^1.0.5" 825 | supports-color "^5.3.0" 826 | 827 | chardet@^0.4.0: 828 | version "0.4.2" 829 | resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" 830 | 831 | check-error@^1.0.1: 832 | version "1.0.2" 833 | resolved "http://registry.npm.taobao.org/check-error/download/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" 834 | 835 | chokidar@^1.4.2: 836 | version "1.7.0" 837 | resolved "http://registry.npm.taobao.org/chokidar/download/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" 838 | dependencies: 839 | anymatch "^1.3.0" 840 | async-each "^1.0.0" 841 | glob-parent "^2.0.0" 842 | inherits "^2.0.1" 843 | is-binary-path "^1.0.0" 844 | is-glob "^2.0.0" 845 | path-is-absolute "^1.0.0" 846 | readdirp "^2.0.0" 847 | optionalDependencies: 848 | fsevents "^1.0.0" 849 | 850 | ci-info@^1.0.0: 851 | version "1.1.3" 852 | resolved "http://registry.npm.taobao.org/ci-info/download/ci-info-1.1.3.tgz#710193264bb05c77b8c90d02f5aaf22216a667b2" 853 | 854 | circular-json@^0.3.1: 855 | version "0.3.3" 856 | resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" 857 | 858 | clean-stack@^1.1.1: 859 | version "1.3.0" 860 | resolved "http://registry.npm.taobao.org/clean-stack/download/clean-stack-1.3.0.tgz#9e821501ae979986c46b1d66d2d432db2fd4ae31" 861 | 862 | clean-yaml-object@^0.1.0: 863 | version "0.1.0" 864 | resolved "http://registry.npm.taobao.org/clean-yaml-object/download/clean-yaml-object-0.1.0.tgz#63fb110dc2ce1a84dc21f6d9334876d010ae8b68" 865 | 866 | cli-boxes@^1.0.0: 867 | version "1.0.0" 868 | resolved "http://registry.npm.taobao.org/cli-boxes/download/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" 869 | 870 | cli-cursor@^2.1.0: 871 | version "2.1.0" 872 | resolved "http://registry.npm.taobao.org/cli-cursor/download/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" 873 | dependencies: 874 | restore-cursor "^2.0.0" 875 | 876 | cli-spinners@^1.0.0: 877 | version "1.3.1" 878 | resolved "http://registry.npm.taobao.org/cli-spinners/download/cli-spinners-1.3.1.tgz#002c1990912d0d59580c93bd36c056de99e4259a" 879 | 880 | cli-truncate@^1.0.0: 881 | version "1.1.0" 882 | resolved "http://registry.npm.taobao.org/cli-truncate/download/cli-truncate-1.1.0.tgz#2b2dfd83c53cfd3572b87fc4d430a808afb04086" 883 | dependencies: 884 | slice-ansi "^1.0.0" 885 | string-width "^2.0.0" 886 | 887 | cli-width@^2.0.0: 888 | version "2.2.0" 889 | resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" 890 | 891 | co-with-promise@^4.6.0: 892 | version "4.6.0" 893 | resolved "http://registry.npm.taobao.org/co-with-promise/download/co-with-promise-4.6.0.tgz#413e7db6f5893a60b942cf492c4bec93db415ab7" 894 | dependencies: 895 | pinkie-promise "^1.0.0" 896 | 897 | co@^4.6.0: 898 | version "4.6.0" 899 | resolved "http://registry.npm.taobao.org/co/download/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" 900 | 901 | code-excerpt@^2.1.0: 902 | version "2.1.1" 903 | resolved "http://registry.npm.taobao.org/code-excerpt/download/code-excerpt-2.1.1.tgz#5fe3057bfbb71a5f300f659ef2cc0a47651ba77c" 904 | dependencies: 905 | convert-to-spaces "^1.0.1" 906 | 907 | code-point-at@^1.0.0: 908 | version "1.1.0" 909 | resolved "http://registry.npm.taobao.org/code-point-at/download/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" 910 | 911 | color-convert@^1.9.0: 912 | version "1.9.1" 913 | resolved "http://registry.npm.taobao.org/color-convert/download/color-convert-1.9.1.tgz#c1261107aeb2f294ebffec9ed9ecad529a6097ed" 914 | dependencies: 915 | color-name "^1.1.1" 916 | 917 | color-name@^1.1.1: 918 | version "1.1.3" 919 | resolved "http://registry.npm.taobao.org/color-name/download/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 920 | 921 | combined-stream@^1.0.5, combined-stream@~1.0.5: 922 | version "1.0.6" 923 | resolved "http://registry.npm.taobao.org/combined-stream/download/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818" 924 | dependencies: 925 | delayed-stream "~1.0.0" 926 | 927 | commander@2.11.0: 928 | version "2.11.0" 929 | resolved "http://registry.npm.taobao.org/commander/download/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563" 930 | 931 | common-path-prefix@^1.0.0: 932 | version "1.0.0" 933 | resolved "http://registry.npm.taobao.org/common-path-prefix/download/common-path-prefix-1.0.0.tgz#cd52f6f0712e0baab97d6f9732874f22f47752c0" 934 | 935 | commondir@^1.0.1: 936 | version "1.0.1" 937 | resolved "http://registry.npm.taobao.org/commondir/download/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" 938 | 939 | concat-map@0.0.1: 940 | version "0.0.1" 941 | resolved "http://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 942 | 943 | concat-stream@^1.6.0: 944 | version "1.6.2" 945 | resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" 946 | dependencies: 947 | buffer-from "^1.0.0" 948 | inherits "^2.0.3" 949 | readable-stream "^2.2.2" 950 | typedarray "^0.0.6" 951 | 952 | concordance@^3.0.0: 953 | version "3.0.0" 954 | resolved "http://registry.npm.taobao.org/concordance/download/concordance-3.0.0.tgz#b2286af54405fc995fc7345b0b106d8dd073cb29" 955 | dependencies: 956 | date-time "^2.1.0" 957 | esutils "^2.0.2" 958 | fast-diff "^1.1.1" 959 | function-name-support "^0.2.0" 960 | js-string-escape "^1.0.1" 961 | lodash.clonedeep "^4.5.0" 962 | lodash.flattendeep "^4.4.0" 963 | lodash.merge "^4.6.0" 964 | md5-hex "^2.0.0" 965 | semver "^5.3.0" 966 | well-known-symbols "^1.0.0" 967 | 968 | configstore@^3.0.0: 969 | version "3.1.2" 970 | resolved "http://registry.npm.taobao.org/configstore/download/configstore-3.1.2.tgz#c6f25defaeef26df12dd33414b001fe81a543f8f" 971 | dependencies: 972 | dot-prop "^4.1.0" 973 | graceful-fs "^4.1.2" 974 | make-dir "^1.0.0" 975 | unique-string "^1.0.0" 976 | write-file-atomic "^2.0.0" 977 | xdg-basedir "^3.0.0" 978 | 979 | console-control-strings@^1.0.0, console-control-strings@~1.1.0: 980 | version "1.1.0" 981 | resolved "http://registry.npm.taobao.org/console-control-strings/download/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" 982 | 983 | content-disposition@0.5.2, content-disposition@~0.5.0: 984 | version "0.5.2" 985 | resolved "http://registry.npm.taobao.org/content-disposition/download/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" 986 | 987 | content-type@^1.0.0, content-type@~1.0.4: 988 | version "1.0.4" 989 | resolved "http://registry.npm.taobao.org/content-type/download/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" 990 | 991 | convert-source-map@^1.2.0, convert-source-map@^1.5.0: 992 | version "1.5.1" 993 | resolved "http://registry.npm.taobao.org/convert-source-map/download/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5" 994 | 995 | convert-to-spaces@^1.0.1: 996 | version "1.0.2" 997 | resolved "http://registry.npm.taobao.org/convert-to-spaces/download/convert-to-spaces-1.0.2.tgz#7e3e48bbe6d997b1417ddca2868204b4d3d85715" 998 | 999 | cookie-signature@1.0.6: 1000 | version "1.0.6" 1001 | resolved "http://registry.npm.taobao.org/cookie-signature/download/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" 1002 | 1003 | cookie@0.3.1: 1004 | version "0.3.1" 1005 | resolved "http://registry.npm.taobao.org/cookie/download/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" 1006 | 1007 | cookies@~0.7.0: 1008 | version "0.7.1" 1009 | resolved "http://registry.npm.taobao.org/cookies/download/cookies-0.7.1.tgz#7c8a615f5481c61ab9f16c833731bcb8f663b99b" 1010 | dependencies: 1011 | depd "~1.1.1" 1012 | keygrip "~1.0.2" 1013 | 1014 | copy-to@~2.0.1: 1015 | version "2.0.1" 1016 | resolved "http://registry.npm.taobao.org/copy-to/download/copy-to-2.0.1.tgz#2680fbb8068a48d08656b6098092bdafc906f4a5" 1017 | 1018 | core-assert@^0.2.0: 1019 | version "0.2.1" 1020 | resolved "http://registry.npm.taobao.org/core-assert/download/core-assert-0.2.1.tgz#f85e2cf9bfed28f773cc8b3fa5c5b69bdc02fe3f" 1021 | dependencies: 1022 | buf-compare "^1.0.0" 1023 | is-error "^2.2.0" 1024 | 1025 | core-js@^2.0.0, core-js@^2.4.0, core-js@^2.5.0: 1026 | version "2.5.5" 1027 | resolved "http://registry.npm.taobao.org/core-js/download/core-js-2.5.5.tgz#b14dde936c640c0579a6b50cabcc132dd6127e3b" 1028 | 1029 | core-util-is@1.0.2, core-util-is@^1.0.2, core-util-is@~1.0.0: 1030 | version "1.0.2" 1031 | resolved "http://registry.npm.taobao.org/core-util-is/download/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 1032 | 1033 | create-error-class@^3.0.0: 1034 | version "3.0.2" 1035 | resolved "http://registry.npm.taobao.org/create-error-class/download/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" 1036 | dependencies: 1037 | capture-stack-trace "^1.0.0" 1038 | 1039 | cross-spawn@^5.0.1, cross-spawn@^5.1.0: 1040 | version "5.1.0" 1041 | resolved "http://registry.npm.taobao.org/cross-spawn/download/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" 1042 | dependencies: 1043 | lru-cache "^4.0.1" 1044 | shebang-command "^1.2.0" 1045 | which "^1.2.9" 1046 | 1047 | cryptiles@2.x.x: 1048 | version "2.0.5" 1049 | resolved "http://registry.npm.taobao.org/cryptiles/download/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" 1050 | dependencies: 1051 | boom "2.x.x" 1052 | 1053 | crypto-random-string@^1.0.0: 1054 | version "1.0.0" 1055 | resolved "http://registry.npm.taobao.org/crypto-random-string/download/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" 1056 | 1057 | currently-unhandled@^0.4.1: 1058 | version "0.4.1" 1059 | resolved "http://registry.npm.taobao.org/currently-unhandled/download/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" 1060 | dependencies: 1061 | array-find-index "^1.0.1" 1062 | 1063 | dashdash@^1.12.0: 1064 | version "1.14.1" 1065 | resolved "http://registry.npm.taobao.org/dashdash/download/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" 1066 | dependencies: 1067 | assert-plus "^1.0.0" 1068 | 1069 | date-time@^0.1.1: 1070 | version "0.1.1" 1071 | resolved "http://registry.npm.taobao.org/date-time/download/date-time-0.1.1.tgz#ed2f6d93d9790ce2fd66d5b5ff3edd5bbcbf3b07" 1072 | 1073 | date-time@^2.1.0: 1074 | version "2.1.0" 1075 | resolved "http://registry.npm.taobao.org/date-time/download/date-time-2.1.0.tgz#0286d1b4c769633b3ca13e1e62558d2dbdc2eba2" 1076 | dependencies: 1077 | time-zone "^1.0.0" 1078 | 1079 | debug@*, debug@3.1.0, debug@^3.0.1, debug@^3.1.0: 1080 | version "3.1.0" 1081 | resolved "http://registry.npm.taobao.org/debug/download/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" 1082 | dependencies: 1083 | ms "2.0.0" 1084 | 1085 | debug@2.6.9, debug@^2.2.0, debug@^2.6.6, debug@^2.6.8: 1086 | version "2.6.9" 1087 | resolved "http://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 1088 | dependencies: 1089 | ms "2.0.0" 1090 | 1091 | decamelize@^1.1.2: 1092 | version "1.2.0" 1093 | resolved "http://registry.npm.taobao.org/decamelize/download/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" 1094 | 1095 | deep-eql@^3.0.0: 1096 | version "3.0.1" 1097 | resolved "http://registry.npm.taobao.org/deep-eql/download/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" 1098 | dependencies: 1099 | type-detect "^4.0.0" 1100 | 1101 | deep-equal@^1.0.0, deep-equal@~1.0.1: 1102 | version "1.0.1" 1103 | resolved "http://registry.npm.taobao.org/deep-equal/download/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" 1104 | 1105 | deep-extend@~0.4.0: 1106 | version "0.4.2" 1107 | resolved "http://registry.npm.taobao.org/deep-extend/download/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f" 1108 | 1109 | deep-is@~0.1.3: 1110 | version "0.1.3" 1111 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" 1112 | 1113 | del@^2.0.2: 1114 | version "2.2.2" 1115 | resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" 1116 | dependencies: 1117 | globby "^5.0.0" 1118 | is-path-cwd "^1.0.0" 1119 | is-path-in-cwd "^1.0.0" 1120 | object-assign "^4.0.1" 1121 | pify "^2.0.0" 1122 | pinkie-promise "^2.0.0" 1123 | rimraf "^2.2.8" 1124 | 1125 | delayed-stream@~1.0.0: 1126 | version "1.0.0" 1127 | resolved "http://registry.npm.taobao.org/delayed-stream/download/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" 1128 | 1129 | delegates@^1.0.0: 1130 | version "1.0.0" 1131 | resolved "http://registry.npm.taobao.org/delegates/download/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" 1132 | 1133 | depd@1.1.1: 1134 | version "1.1.1" 1135 | resolved "http://registry.npm.taobao.org/depd/download/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359" 1136 | 1137 | depd@^1.1.0, depd@~1.1.1, depd@~1.1.2: 1138 | version "1.1.2" 1139 | resolved "http://registry.npm.taobao.org/depd/download/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" 1140 | 1141 | destroy@^1.0.3, destroy@~1.0.4: 1142 | version "1.0.4" 1143 | resolved "http://registry.npm.taobao.org/destroy/download/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" 1144 | 1145 | detect-indent@^4.0.0: 1146 | version "4.0.0" 1147 | resolved "http://registry.npm.taobao.org/detect-indent/download/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" 1148 | dependencies: 1149 | repeating "^2.0.0" 1150 | 1151 | detect-indent@^5.0.0: 1152 | version "5.0.0" 1153 | resolved "http://registry.npm.taobao.org/detect-indent/download/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" 1154 | 1155 | detect-libc@^1.0.2: 1156 | version "1.0.3" 1157 | resolved "http://registry.npm.taobao.org/detect-libc/download/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" 1158 | 1159 | diff@3.5.0: 1160 | version "3.5.0" 1161 | resolved "http://registry.npm.taobao.org/diff/download/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" 1162 | 1163 | doctrine@^2.1.0: 1164 | version "2.1.0" 1165 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" 1166 | dependencies: 1167 | esutils "^2.0.2" 1168 | 1169 | dot-prop@^4.1.0: 1170 | version "4.2.0" 1171 | resolved "http://registry.npm.taobao.org/dot-prop/download/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" 1172 | dependencies: 1173 | is-obj "^1.0.0" 1174 | 1175 | duplexer3@^0.1.4: 1176 | version "0.1.4" 1177 | resolved "http://registry.npm.taobao.org/duplexer3/download/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" 1178 | 1179 | ecc-jsbn@~0.1.1: 1180 | version "0.1.1" 1181 | resolved "http://registry.npm.taobao.org/ecc-jsbn/download/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" 1182 | dependencies: 1183 | jsbn "~0.1.0" 1184 | 1185 | ee-first@1.1.1: 1186 | version "1.1.1" 1187 | resolved "http://registry.npm.taobao.org/ee-first/download/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" 1188 | 1189 | empower-core@^0.6.1: 1190 | version "0.6.2" 1191 | resolved "http://registry.npm.taobao.org/empower-core/download/empower-core-0.6.2.tgz#5adef566088e31fba80ba0a36df47d7094169144" 1192 | dependencies: 1193 | call-signature "0.0.2" 1194 | core-js "^2.0.0" 1195 | 1196 | encodeurl@~1.0.2: 1197 | version "1.0.2" 1198 | resolved "http://registry.npm.taobao.org/encodeurl/download/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" 1199 | 1200 | equal-length@^1.0.0: 1201 | version "1.0.1" 1202 | resolved "http://registry.npm.taobao.org/equal-length/download/equal-length-1.0.1.tgz#21ca112d48ab24b4e1e7ffc0e5339d31fdfc274c" 1203 | 1204 | error-ex@^1.2.0, error-ex@^1.3.1: 1205 | version "1.3.1" 1206 | resolved "http://registry.npm.taobao.org/error-ex/download/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc" 1207 | dependencies: 1208 | is-arrayish "^0.2.1" 1209 | 1210 | error-inject@~1.0.0: 1211 | version "1.0.0" 1212 | resolved "http://registry.npm.taobao.org/error-inject/download/error-inject-1.0.0.tgz#e2b3d91b54aed672f309d950d154850fa11d4f37" 1213 | 1214 | es6-error@^4.0.1, es6-error@^4.0.2: 1215 | version "4.1.1" 1216 | resolved "http://registry.npm.taobao.org/es6-error/download/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" 1217 | 1218 | escape-html@~1.0.1, escape-html@~1.0.3: 1219 | version "1.0.3" 1220 | resolved "http://registry.npm.taobao.org/escape-html/download/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" 1221 | 1222 | escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.4, escape-string-regexp@^1.0.5: 1223 | version "1.0.5" 1224 | resolved "http://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 1225 | 1226 | eslint-scope@^3.7.1: 1227 | version "3.7.1" 1228 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8" 1229 | dependencies: 1230 | esrecurse "^4.1.0" 1231 | estraverse "^4.1.1" 1232 | 1233 | eslint-visitor-keys@^1.0.0: 1234 | version "1.0.0" 1235 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" 1236 | 1237 | eslint@^4.19.1: 1238 | version "4.19.1" 1239 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.19.1.tgz#32d1d653e1d90408854bfb296f076ec7e186a300" 1240 | dependencies: 1241 | ajv "^5.3.0" 1242 | babel-code-frame "^6.22.0" 1243 | chalk "^2.1.0" 1244 | concat-stream "^1.6.0" 1245 | cross-spawn "^5.1.0" 1246 | debug "^3.1.0" 1247 | doctrine "^2.1.0" 1248 | eslint-scope "^3.7.1" 1249 | eslint-visitor-keys "^1.0.0" 1250 | espree "^3.5.4" 1251 | esquery "^1.0.0" 1252 | esutils "^2.0.2" 1253 | file-entry-cache "^2.0.0" 1254 | functional-red-black-tree "^1.0.1" 1255 | glob "^7.1.2" 1256 | globals "^11.0.1" 1257 | ignore "^3.3.3" 1258 | imurmurhash "^0.1.4" 1259 | inquirer "^3.0.6" 1260 | is-resolvable "^1.0.0" 1261 | js-yaml "^3.9.1" 1262 | json-stable-stringify-without-jsonify "^1.0.1" 1263 | levn "^0.3.0" 1264 | lodash "^4.17.4" 1265 | minimatch "^3.0.2" 1266 | mkdirp "^0.5.1" 1267 | natural-compare "^1.4.0" 1268 | optionator "^0.8.2" 1269 | path-is-inside "^1.0.2" 1270 | pluralize "^7.0.0" 1271 | progress "^2.0.0" 1272 | regexpp "^1.0.1" 1273 | require-uncached "^1.0.3" 1274 | semver "^5.3.0" 1275 | strip-ansi "^4.0.0" 1276 | strip-json-comments "~2.0.1" 1277 | table "4.0.2" 1278 | text-table "~0.2.0" 1279 | 1280 | espower-location-detector@^1.0.0: 1281 | version "1.0.0" 1282 | resolved "http://registry.npm.taobao.org/espower-location-detector/download/espower-location-detector-1.0.0.tgz#a17b7ecc59d30e179e2bef73fb4137704cb331b5" 1283 | dependencies: 1284 | is-url "^1.2.1" 1285 | path-is-absolute "^1.0.0" 1286 | source-map "^0.5.0" 1287 | xtend "^4.0.0" 1288 | 1289 | espree@^3.5.4: 1290 | version "3.5.4" 1291 | resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7" 1292 | dependencies: 1293 | acorn "^5.5.0" 1294 | acorn-jsx "^3.0.0" 1295 | 1296 | esprima@^4.0.0: 1297 | version "4.0.0" 1298 | resolved "http://registry.npm.taobao.org/esprima/download/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" 1299 | 1300 | espurify@^1.6.0: 1301 | version "1.7.0" 1302 | resolved "http://registry.npm.taobao.org/espurify/download/espurify-1.7.0.tgz#1c5cf6cbccc32e6f639380bd4f991fab9ba9d226" 1303 | dependencies: 1304 | core-js "^2.0.0" 1305 | 1306 | esquery@^1.0.0: 1307 | version "1.0.1" 1308 | resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708" 1309 | dependencies: 1310 | estraverse "^4.0.0" 1311 | 1312 | esrecurse@^4.1.0: 1313 | version "4.2.1" 1314 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" 1315 | dependencies: 1316 | estraverse "^4.1.0" 1317 | 1318 | estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1: 1319 | version "4.2.0" 1320 | resolved "http://registry.npm.taobao.org/estraverse/download/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" 1321 | 1322 | esutils@^2.0.2: 1323 | version "2.0.2" 1324 | resolved "http://registry.npm.taobao.org/esutils/download/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" 1325 | 1326 | etag@~1.8.1: 1327 | version "1.8.1" 1328 | resolved "http://registry.npm.taobao.org/etag/download/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" 1329 | 1330 | execa@^0.7.0: 1331 | version "0.7.0" 1332 | resolved "http://registry.npm.taobao.org/execa/download/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" 1333 | dependencies: 1334 | cross-spawn "^5.0.1" 1335 | get-stream "^3.0.0" 1336 | is-stream "^1.1.0" 1337 | npm-run-path "^2.0.0" 1338 | p-finally "^1.0.0" 1339 | signal-exit "^3.0.0" 1340 | strip-eof "^1.0.0" 1341 | 1342 | expand-brackets@^0.1.4: 1343 | version "0.1.5" 1344 | resolved "http://registry.npm.taobao.org/expand-brackets/download/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" 1345 | dependencies: 1346 | is-posix-bracket "^0.1.0" 1347 | 1348 | expand-range@^1.8.1: 1349 | version "1.8.2" 1350 | resolved "http://registry.npm.taobao.org/expand-range/download/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" 1351 | dependencies: 1352 | fill-range "^2.1.0" 1353 | 1354 | express@^4.16.2: 1355 | version "4.16.3" 1356 | resolved "http://registry.npm.taobao.org/express/download/express-4.16.3.tgz#6af8a502350db3246ecc4becf6b5a34d22f7ed53" 1357 | dependencies: 1358 | accepts "~1.3.5" 1359 | array-flatten "1.1.1" 1360 | body-parser "1.18.2" 1361 | content-disposition "0.5.2" 1362 | content-type "~1.0.4" 1363 | cookie "0.3.1" 1364 | cookie-signature "1.0.6" 1365 | debug "2.6.9" 1366 | depd "~1.1.2" 1367 | encodeurl "~1.0.2" 1368 | escape-html "~1.0.3" 1369 | etag "~1.8.1" 1370 | finalhandler "1.1.1" 1371 | fresh "0.5.2" 1372 | merge-descriptors "1.0.1" 1373 | methods "~1.1.2" 1374 | on-finished "~2.3.0" 1375 | parseurl "~1.3.2" 1376 | path-to-regexp "0.1.7" 1377 | proxy-addr "~2.0.3" 1378 | qs "6.5.1" 1379 | range-parser "~1.2.0" 1380 | safe-buffer "5.1.1" 1381 | send "0.16.2" 1382 | serve-static "1.13.2" 1383 | setprototypeof "1.1.0" 1384 | statuses "~1.4.0" 1385 | type-is "~1.6.16" 1386 | utils-merge "1.0.1" 1387 | vary "~1.1.2" 1388 | 1389 | extend@~3.0.0: 1390 | version "3.0.1" 1391 | resolved "http://registry.npm.taobao.org/extend/download/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" 1392 | 1393 | external-editor@^2.0.4: 1394 | version "2.2.0" 1395 | resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5" 1396 | dependencies: 1397 | chardet "^0.4.0" 1398 | iconv-lite "^0.4.17" 1399 | tmp "^0.0.33" 1400 | 1401 | extglob@^0.3.1: 1402 | version "0.3.2" 1403 | resolved "http://registry.npm.taobao.org/extglob/download/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" 1404 | dependencies: 1405 | is-extglob "^1.0.0" 1406 | 1407 | extsprintf@1.3.0: 1408 | version "1.3.0" 1409 | resolved "http://registry.npm.taobao.org/extsprintf/download/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" 1410 | 1411 | extsprintf@^1.2.0: 1412 | version "1.4.0" 1413 | resolved "http://registry.npm.taobao.org/extsprintf/download/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" 1414 | 1415 | fast-deep-equal@^1.0.0: 1416 | version "1.1.0" 1417 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" 1418 | 1419 | fast-diff@^1.1.1: 1420 | version "1.1.2" 1421 | resolved "http://registry.npm.taobao.org/fast-diff/download/fast-diff-1.1.2.tgz#4b62c42b8e03de3f848460b639079920695d0154" 1422 | 1423 | fast-json-stable-stringify@^2.0.0: 1424 | version "2.0.0" 1425 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" 1426 | 1427 | fast-levenshtein@~2.0.4: 1428 | version "2.0.6" 1429 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" 1430 | 1431 | figures@^2.0.0: 1432 | version "2.0.0" 1433 | resolved "http://registry.npm.taobao.org/figures/download/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" 1434 | dependencies: 1435 | escape-string-regexp "^1.0.5" 1436 | 1437 | file-entry-cache@^2.0.0: 1438 | version "2.0.0" 1439 | resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" 1440 | dependencies: 1441 | flat-cache "^1.2.1" 1442 | object-assign "^4.0.1" 1443 | 1444 | filename-regex@^2.0.0: 1445 | version "2.0.1" 1446 | resolved "http://registry.npm.taobao.org/filename-regex/download/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" 1447 | 1448 | fill-range@^2.1.0: 1449 | version "2.2.3" 1450 | resolved "http://registry.npm.taobao.org/fill-range/download/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" 1451 | dependencies: 1452 | is-number "^2.1.0" 1453 | isobject "^2.0.0" 1454 | randomatic "^1.1.3" 1455 | repeat-element "^1.1.2" 1456 | repeat-string "^1.5.2" 1457 | 1458 | finalhandler@1.1.1: 1459 | version "1.1.1" 1460 | resolved "http://registry.npm.taobao.org/finalhandler/download/finalhandler-1.1.1.tgz#eebf4ed840079c83f4249038c9d703008301b105" 1461 | dependencies: 1462 | debug "2.6.9" 1463 | encodeurl "~1.0.2" 1464 | escape-html "~1.0.3" 1465 | on-finished "~2.3.0" 1466 | parseurl "~1.3.2" 1467 | statuses "~1.4.0" 1468 | unpipe "~1.0.0" 1469 | 1470 | find-cache-dir@^1.0.0: 1471 | version "1.0.0" 1472 | resolved "http://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-1.0.0.tgz#9288e3e9e3cc3748717d39eade17cf71fc30ee6f" 1473 | dependencies: 1474 | commondir "^1.0.1" 1475 | make-dir "^1.0.0" 1476 | pkg-dir "^2.0.0" 1477 | 1478 | find-up@^1.0.0: 1479 | version "1.1.2" 1480 | resolved "http://registry.npm.taobao.org/find-up/download/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" 1481 | dependencies: 1482 | path-exists "^2.0.0" 1483 | pinkie-promise "^2.0.0" 1484 | 1485 | find-up@^2.0.0, find-up@^2.1.0: 1486 | version "2.1.0" 1487 | resolved "http://registry.npm.taobao.org/find-up/download/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" 1488 | dependencies: 1489 | locate-path "^2.0.0" 1490 | 1491 | flat-cache@^1.2.1: 1492 | version "1.3.0" 1493 | resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.0.tgz#d3030b32b38154f4e3b7e9c709f490f7ef97c481" 1494 | dependencies: 1495 | circular-json "^0.3.1" 1496 | del "^2.0.2" 1497 | graceful-fs "^4.1.2" 1498 | write "^0.2.1" 1499 | 1500 | fn-name@^2.0.0: 1501 | version "2.0.1" 1502 | resolved "http://registry.npm.taobao.org/fn-name/download/fn-name-2.0.1.tgz#5214d7537a4d06a4a301c0cc262feb84188002e7" 1503 | 1504 | for-in@^1.0.1: 1505 | version "1.0.2" 1506 | resolved "http://registry.npm.taobao.org/for-in/download/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" 1507 | 1508 | for-own@^0.1.4: 1509 | version "0.1.5" 1510 | resolved "http://registry.npm.taobao.org/for-own/download/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" 1511 | dependencies: 1512 | for-in "^1.0.1" 1513 | 1514 | forever-agent@~0.6.1: 1515 | version "0.6.1" 1516 | resolved "http://registry.npm.taobao.org/forever-agent/download/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" 1517 | 1518 | form-data@~2.1.1: 1519 | version "2.1.4" 1520 | resolved "http://registry.npm.taobao.org/form-data/download/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1" 1521 | dependencies: 1522 | asynckit "^0.4.0" 1523 | combined-stream "^1.0.5" 1524 | mime-types "^2.1.12" 1525 | 1526 | forwarded@~0.1.2: 1527 | version "0.1.2" 1528 | resolved "http://registry.npm.taobao.org/forwarded/download/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" 1529 | 1530 | fresh@0.5.2, fresh@^0.5.2: 1531 | version "0.5.2" 1532 | resolved "http://registry.npm.taobao.org/fresh/download/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" 1533 | 1534 | fs.realpath@^1.0.0: 1535 | version "1.0.0" 1536 | resolved "http://registry.npm.taobao.org/fs.realpath/download/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 1537 | 1538 | fsevents@^1.0.0: 1539 | version "1.1.3" 1540 | resolved "http://registry.npm.taobao.org/fsevents/download/fsevents-1.1.3.tgz#11f82318f5fe7bb2cd22965a108e9306208216d8" 1541 | dependencies: 1542 | nan "^2.3.0" 1543 | node-pre-gyp "^0.6.39" 1544 | 1545 | fstream-ignore@^1.0.5: 1546 | version "1.0.5" 1547 | resolved "http://registry.npm.taobao.org/fstream-ignore/download/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" 1548 | dependencies: 1549 | fstream "^1.0.0" 1550 | inherits "2" 1551 | minimatch "^3.0.0" 1552 | 1553 | fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2: 1554 | version "1.0.11" 1555 | resolved "http://registry.npm.taobao.org/fstream/download/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" 1556 | dependencies: 1557 | graceful-fs "^4.1.2" 1558 | inherits "~2.0.0" 1559 | mkdirp ">=0.5 0" 1560 | rimraf "2" 1561 | 1562 | function-name-support@^0.2.0: 1563 | version "0.2.0" 1564 | resolved "http://registry.npm.taobao.org/function-name-support/download/function-name-support-0.2.0.tgz#55d3bfaa6eafd505a50f9bc81fdf57564a0bb071" 1565 | 1566 | functional-red-black-tree@^1.0.1: 1567 | version "1.0.1" 1568 | resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" 1569 | 1570 | gauge@~2.7.3: 1571 | version "2.7.4" 1572 | resolved "http://registry.npm.taobao.org/gauge/download/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" 1573 | dependencies: 1574 | aproba "^1.0.3" 1575 | console-control-strings "^1.0.0" 1576 | has-unicode "^2.0.0" 1577 | object-assign "^4.1.0" 1578 | signal-exit "^3.0.0" 1579 | string-width "^1.0.1" 1580 | strip-ansi "^3.0.1" 1581 | wide-align "^1.1.0" 1582 | 1583 | get-func-name@^2.0.0: 1584 | version "2.0.0" 1585 | resolved "http://registry.npm.taobao.org/get-func-name/download/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" 1586 | 1587 | get-port@^3.0.0: 1588 | version "3.2.0" 1589 | resolved "http://registry.npm.taobao.org/get-port/download/get-port-3.2.0.tgz#dd7ce7de187c06c8bf353796ac71e099f0980ebc" 1590 | 1591 | get-stdin@^4.0.1: 1592 | version "4.0.1" 1593 | resolved "http://registry.npm.taobao.org/get-stdin/download/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" 1594 | 1595 | get-stream@^3.0.0: 1596 | version "3.0.0" 1597 | resolved "http://registry.npm.taobao.org/get-stream/download/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" 1598 | 1599 | getpass@^0.1.1: 1600 | version "0.1.7" 1601 | resolved "http://registry.npm.taobao.org/getpass/download/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" 1602 | dependencies: 1603 | assert-plus "^1.0.0" 1604 | 1605 | glob-base@^0.3.0: 1606 | version "0.3.0" 1607 | resolved "http://registry.npm.taobao.org/glob-base/download/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" 1608 | dependencies: 1609 | glob-parent "^2.0.0" 1610 | is-glob "^2.0.0" 1611 | 1612 | glob-parent@^2.0.0: 1613 | version "2.0.0" 1614 | resolved "http://registry.npm.taobao.org/glob-parent/download/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" 1615 | dependencies: 1616 | is-glob "^2.0.0" 1617 | 1618 | glob@7.1.2, glob@^7.0.3, glob@^7.0.5, glob@^7.1.2: 1619 | version "7.1.2" 1620 | resolved "http://registry.npm.taobao.org/glob/download/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" 1621 | dependencies: 1622 | fs.realpath "^1.0.0" 1623 | inflight "^1.0.4" 1624 | inherits "2" 1625 | minimatch "^3.0.4" 1626 | once "^1.3.0" 1627 | path-is-absolute "^1.0.0" 1628 | 1629 | global-dirs@^0.1.0: 1630 | version "0.1.1" 1631 | resolved "http://registry.npm.taobao.org/global-dirs/download/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" 1632 | dependencies: 1633 | ini "^1.3.4" 1634 | 1635 | globals@^11.0.1: 1636 | version "11.5.0" 1637 | resolved "https://registry.yarnpkg.com/globals/-/globals-11.5.0.tgz#6bc840de6771173b191f13d3a9c94d441ee92642" 1638 | 1639 | globals@^9.18.0: 1640 | version "9.18.0" 1641 | resolved "http://registry.npm.taobao.org/globals/download/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" 1642 | 1643 | globby@^5.0.0: 1644 | version "5.0.0" 1645 | resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" 1646 | dependencies: 1647 | array-union "^1.0.1" 1648 | arrify "^1.0.0" 1649 | glob "^7.0.3" 1650 | object-assign "^4.0.1" 1651 | pify "^2.0.0" 1652 | pinkie-promise "^2.0.0" 1653 | 1654 | globby@^6.0.0: 1655 | version "6.1.0" 1656 | resolved "http://registry.npm.taobao.org/globby/download/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" 1657 | dependencies: 1658 | array-union "^1.0.1" 1659 | glob "^7.0.3" 1660 | object-assign "^4.0.1" 1661 | pify "^2.0.0" 1662 | pinkie-promise "^2.0.0" 1663 | 1664 | got@^6.7.1: 1665 | version "6.7.1" 1666 | resolved "http://registry.npm.taobao.org/got/download/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" 1667 | dependencies: 1668 | create-error-class "^3.0.0" 1669 | duplexer3 "^0.1.4" 1670 | get-stream "^3.0.0" 1671 | is-redirect "^1.0.0" 1672 | is-retry-allowed "^1.0.0" 1673 | is-stream "^1.0.0" 1674 | lowercase-keys "^1.0.0" 1675 | safe-buffer "^5.0.1" 1676 | timed-out "^4.0.0" 1677 | unzip-response "^2.0.1" 1678 | url-parse-lax "^1.0.0" 1679 | 1680 | graceful-fs@^4.1.11, graceful-fs@^4.1.2: 1681 | version "4.1.11" 1682 | resolved "http://registry.npm.taobao.org/graceful-fs/download/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" 1683 | 1684 | growl@1.10.3: 1685 | version "1.10.3" 1686 | resolved "http://registry.npm.taobao.org/growl/download/growl-1.10.3.tgz#1926ba90cf3edfe2adb4927f5880bc22c66c790f" 1687 | 1688 | har-schema@^1.0.5: 1689 | version "1.0.5" 1690 | resolved "http://registry.npm.taobao.org/har-schema/download/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" 1691 | 1692 | har-validator@~4.2.1: 1693 | version "4.2.1" 1694 | resolved "http://registry.npm.taobao.org/har-validator/download/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a" 1695 | dependencies: 1696 | ajv "^4.9.1" 1697 | har-schema "^1.0.5" 1698 | 1699 | has-ansi@^2.0.0: 1700 | version "2.0.0" 1701 | resolved "http://registry.npm.taobao.org/has-ansi/download/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" 1702 | dependencies: 1703 | ansi-regex "^2.0.0" 1704 | 1705 | has-color@~0.1.0: 1706 | version "0.1.7" 1707 | resolved "http://registry.npm.taobao.org/has-color/download/has-color-0.1.7.tgz#67144a5260c34fc3cca677d041daf52fe7b78b2f" 1708 | 1709 | has-flag@^2.0.0: 1710 | version "2.0.0" 1711 | resolved "http://registry.npm.taobao.org/has-flag/download/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" 1712 | 1713 | has-flag@^3.0.0: 1714 | version "3.0.0" 1715 | resolved "http://registry.npm.taobao.org/has-flag/download/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 1716 | 1717 | has-unicode@^2.0.0: 1718 | version "2.0.1" 1719 | resolved "http://registry.npm.taobao.org/has-unicode/download/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" 1720 | 1721 | has-yarn@^1.0.0: 1722 | version "1.0.0" 1723 | resolved "http://registry.npm.taobao.org/has-yarn/download/has-yarn-1.0.0.tgz#89e25db604b725c8f5976fff0addc921b828a5a7" 1724 | 1725 | hawk@3.1.3, hawk@~3.1.3: 1726 | version "3.1.3" 1727 | resolved "http://registry.npm.taobao.org/hawk/download/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" 1728 | dependencies: 1729 | boom "2.x.x" 1730 | cryptiles "2.x.x" 1731 | hoek "2.x.x" 1732 | sntp "1.x.x" 1733 | 1734 | he@1.1.1: 1735 | version "1.1.1" 1736 | resolved "http://registry.npm.taobao.org/he/download/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" 1737 | 1738 | hessian.js@^2.1.8: 1739 | version "2.8.1" 1740 | resolved "http://registry.npm.taobao.org/hessian.js/download/hessian.js-2.8.1.tgz#16fcebf2f3abb830fe73376d3389a56e0eadb3c6" 1741 | dependencies: 1742 | byte "^1.3.0" 1743 | debug "^3.1.0" 1744 | is-type-of "^1.2.0" 1745 | long "^3.2.0" 1746 | utility "^1.13.1" 1747 | 1748 | hoek@2.x.x: 1749 | version "2.16.3" 1750 | resolved "http://registry.npm.taobao.org/hoek/download/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" 1751 | 1752 | home-or-tmp@^2.0.0: 1753 | version "2.0.0" 1754 | resolved "http://registry.npm.taobao.org/home-or-tmp/download/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" 1755 | dependencies: 1756 | os-homedir "^1.0.0" 1757 | os-tmpdir "^1.0.1" 1758 | 1759 | hosted-git-info@^2.1.4: 1760 | version "2.6.0" 1761 | resolved "http://registry.npm.taobao.org/hosted-git-info/download/hosted-git-info-2.6.0.tgz#23235b29ab230c576aab0d4f13fc046b0b038222" 1762 | 1763 | http-assert@^1.1.0: 1764 | version "1.3.0" 1765 | resolved "http://registry.npm.taobao.org/http-assert/download/http-assert-1.3.0.tgz#a31a5cf88c873ecbb5796907d4d6f132e8c01e4a" 1766 | dependencies: 1767 | deep-equal "~1.0.1" 1768 | http-errors "~1.6.1" 1769 | 1770 | http-errors@1.6.2: 1771 | version "1.6.2" 1772 | resolved "http://registry.npm.taobao.org/http-errors/download/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736" 1773 | dependencies: 1774 | depd "1.1.1" 1775 | inherits "2.0.3" 1776 | setprototypeof "1.0.3" 1777 | statuses ">= 1.3.1 < 2" 1778 | 1779 | http-errors@^1.2.8, http-errors@^1.3.1, http-errors@~1.6.1, http-errors@~1.6.2: 1780 | version "1.6.3" 1781 | resolved "http://registry.npm.taobao.org/http-errors/download/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" 1782 | dependencies: 1783 | depd "~1.1.2" 1784 | inherits "2.0.3" 1785 | setprototypeof "1.1.0" 1786 | statuses ">= 1.4.0 < 2" 1787 | 1788 | http-signature@~1.1.0: 1789 | version "1.1.1" 1790 | resolved "http://registry.npm.taobao.org/http-signature/download/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" 1791 | dependencies: 1792 | assert-plus "^0.2.0" 1793 | jsprim "^1.2.2" 1794 | sshpk "^1.7.0" 1795 | 1796 | hullabaloo-config-manager@^1.1.0: 1797 | version "1.1.1" 1798 | resolved "http://registry.npm.taobao.org/hullabaloo-config-manager/download/hullabaloo-config-manager-1.1.1.tgz#1d9117813129ad035fd9e8477eaf066911269fe3" 1799 | dependencies: 1800 | dot-prop "^4.1.0" 1801 | es6-error "^4.0.2" 1802 | graceful-fs "^4.1.11" 1803 | indent-string "^3.1.0" 1804 | json5 "^0.5.1" 1805 | lodash.clonedeep "^4.5.0" 1806 | lodash.clonedeepwith "^4.5.0" 1807 | lodash.isequal "^4.5.0" 1808 | lodash.merge "^4.6.0" 1809 | md5-hex "^2.0.0" 1810 | package-hash "^2.0.0" 1811 | pkg-dir "^2.0.0" 1812 | resolve-from "^3.0.0" 1813 | safe-buffer "^5.0.1" 1814 | 1815 | iconv-lite@0.4.19: 1816 | version "0.4.19" 1817 | resolved "http://registry.npm.taobao.org/iconv-lite/download/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" 1818 | 1819 | iconv-lite@^0.4.17: 1820 | version "0.4.23" 1821 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63" 1822 | dependencies: 1823 | safer-buffer ">= 2.1.2 < 3" 1824 | 1825 | ignore-by-default@^1.0.0: 1826 | version "1.0.1" 1827 | resolved "http://registry.npm.taobao.org/ignore-by-default/download/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" 1828 | 1829 | ignore@^3.3.3: 1830 | version "3.3.8" 1831 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.8.tgz#3f8e9c35d38708a3a7e0e9abb6c73e7ee7707b2b" 1832 | 1833 | import-lazy@^2.1.0: 1834 | version "2.1.0" 1835 | resolved "http://registry.npm.taobao.org/import-lazy/download/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" 1836 | 1837 | import-local@^0.1.1: 1838 | version "0.1.1" 1839 | resolved "http://registry.npm.taobao.org/import-local/download/import-local-0.1.1.tgz#b1179572aacdc11c6a91009fb430dbcab5f668a8" 1840 | dependencies: 1841 | pkg-dir "^2.0.0" 1842 | resolve-cwd "^2.0.0" 1843 | 1844 | imurmurhash@^0.1.4: 1845 | version "0.1.4" 1846 | resolved "http://registry.npm.taobao.org/imurmurhash/download/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 1847 | 1848 | indent-string@^2.1.0: 1849 | version "2.1.0" 1850 | resolved "http://registry.npm.taobao.org/indent-string/download/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" 1851 | dependencies: 1852 | repeating "^2.0.0" 1853 | 1854 | indent-string@^3.0.0, indent-string@^3.1.0: 1855 | version "3.2.0" 1856 | resolved "http://registry.npm.taobao.org/indent-string/download/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" 1857 | 1858 | inflight@^1.0.4: 1859 | version "1.0.6" 1860 | resolved "http://registry.npm.taobao.org/inflight/download/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 1861 | dependencies: 1862 | once "^1.3.0" 1863 | wrappy "1" 1864 | 1865 | inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.3: 1866 | version "2.0.3" 1867 | resolved "http://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 1868 | 1869 | ini@^1.3.4, ini@~1.3.0: 1870 | version "1.3.5" 1871 | resolved "http://registry.npm.taobao.org/ini/download/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" 1872 | 1873 | inquirer@^3.0.6: 1874 | version "3.3.0" 1875 | resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" 1876 | dependencies: 1877 | ansi-escapes "^3.0.0" 1878 | chalk "^2.0.0" 1879 | cli-cursor "^2.1.0" 1880 | cli-width "^2.0.0" 1881 | external-editor "^2.0.4" 1882 | figures "^2.0.0" 1883 | lodash "^4.3.0" 1884 | mute-stream "0.0.7" 1885 | run-async "^2.2.0" 1886 | rx-lite "^4.0.8" 1887 | rx-lite-aggregates "^4.0.8" 1888 | string-width "^2.1.0" 1889 | strip-ansi "^4.0.0" 1890 | through "^2.3.6" 1891 | 1892 | invariant@^2.2.2: 1893 | version "2.2.4" 1894 | resolved "http://registry.npm.taobao.org/invariant/download/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" 1895 | dependencies: 1896 | loose-envify "^1.0.0" 1897 | 1898 | ipaddr.js@1.6.0: 1899 | version "1.6.0" 1900 | resolved "http://registry.npm.taobao.org/ipaddr.js/download/ipaddr.js-1.6.0.tgz#e3fa357b773da619f26e95f049d055c72796f86b" 1901 | 1902 | irregular-plurals@^1.0.0: 1903 | version "1.4.0" 1904 | resolved "http://registry.npm.taobao.org/irregular-plurals/download/irregular-plurals-1.4.0.tgz#2ca9b033651111855412f16be5d77c62a458a766" 1905 | 1906 | is-arrayish@^0.2.1: 1907 | version "0.2.1" 1908 | resolved "http://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" 1909 | 1910 | is-binary-path@^1.0.0: 1911 | version "1.0.1" 1912 | resolved "http://registry.npm.taobao.org/is-binary-path/download/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" 1913 | dependencies: 1914 | binary-extensions "^1.0.0" 1915 | 1916 | is-buffer@^1.1.5: 1917 | version "1.1.6" 1918 | resolved "http://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" 1919 | 1920 | is-builtin-module@^1.0.0: 1921 | version "1.0.0" 1922 | resolved "http://registry.npm.taobao.org/is-builtin-module/download/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" 1923 | dependencies: 1924 | builtin-modules "^1.0.0" 1925 | 1926 | is-ci@^1.0.10, is-ci@^1.0.7: 1927 | version "1.1.0" 1928 | resolved "http://registry.npm.taobao.org/is-ci/download/is-ci-1.1.0.tgz#247e4162e7860cebbdaf30b774d6b0ac7dcfe7a5" 1929 | dependencies: 1930 | ci-info "^1.0.0" 1931 | 1932 | is-class@~0.0.4: 1933 | version "0.0.4" 1934 | resolved "http://registry.npm.taobao.org/is-class/download/is-class-0.0.4.tgz#e057451705bb34e39e3e33598c93a9837296b736" 1935 | 1936 | is-dotfile@^1.0.0: 1937 | version "1.0.3" 1938 | resolved "http://registry.npm.taobao.org/is-dotfile/download/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" 1939 | 1940 | is-equal-shallow@^0.1.3: 1941 | version "0.1.3" 1942 | resolved "http://registry.npm.taobao.org/is-equal-shallow/download/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" 1943 | dependencies: 1944 | is-primitive "^2.0.0" 1945 | 1946 | is-error@^2.2.0: 1947 | version "2.2.1" 1948 | resolved "http://registry.npm.taobao.org/is-error/download/is-error-2.2.1.tgz#684a96d84076577c98f4cdb40c6d26a5123bf19c" 1949 | 1950 | is-extendable@^0.1.1: 1951 | version "0.1.1" 1952 | resolved "http://registry.npm.taobao.org/is-extendable/download/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" 1953 | 1954 | is-extglob@^1.0.0: 1955 | version "1.0.0" 1956 | resolved "http://registry.npm.taobao.org/is-extglob/download/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" 1957 | 1958 | is-finite@^1.0.0: 1959 | version "1.0.2" 1960 | resolved "http://registry.npm.taobao.org/is-finite/download/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" 1961 | dependencies: 1962 | number-is-nan "^1.0.0" 1963 | 1964 | is-fullwidth-code-point@^1.0.0: 1965 | version "1.0.0" 1966 | resolved "http://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" 1967 | dependencies: 1968 | number-is-nan "^1.0.0" 1969 | 1970 | is-fullwidth-code-point@^2.0.0: 1971 | version "2.0.0" 1972 | resolved "http://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" 1973 | 1974 | is-generator-fn@^1.0.0: 1975 | version "1.0.0" 1976 | resolved "http://registry.npm.taobao.org/is-generator-fn/download/is-generator-fn-1.0.0.tgz#969d49e1bb3329f6bb7f09089be26578b2ddd46a" 1977 | 1978 | is-generator-function@^1.0.3: 1979 | version "1.0.7" 1980 | resolved "http://registry.npm.taobao.org/is-generator-function/download/is-generator-function-1.0.7.tgz#d2132e529bb0000a7f80794d4bdf5cd5e5813522" 1981 | 1982 | is-glob@^2.0.0, is-glob@^2.0.1: 1983 | version "2.0.1" 1984 | resolved "http://registry.npm.taobao.org/is-glob/download/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" 1985 | dependencies: 1986 | is-extglob "^1.0.0" 1987 | 1988 | is-installed-globally@^0.1.0: 1989 | version "0.1.0" 1990 | resolved "http://registry.npm.taobao.org/is-installed-globally/download/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80" 1991 | dependencies: 1992 | global-dirs "^0.1.0" 1993 | is-path-inside "^1.0.0" 1994 | 1995 | is-npm@^1.0.0: 1996 | version "1.0.0" 1997 | resolved "http://registry.npm.taobao.org/is-npm/download/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" 1998 | 1999 | is-number@^2.1.0: 2000 | version "2.1.0" 2001 | resolved "http://registry.npm.taobao.org/is-number/download/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" 2002 | dependencies: 2003 | kind-of "^3.0.2" 2004 | 2005 | is-number@^3.0.0: 2006 | version "3.0.0" 2007 | resolved "http://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" 2008 | dependencies: 2009 | kind-of "^3.0.2" 2010 | 2011 | is-obj@^1.0.0: 2012 | version "1.0.1" 2013 | resolved "http://registry.npm.taobao.org/is-obj/download/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" 2014 | 2015 | is-observable@^0.2.0: 2016 | version "0.2.0" 2017 | resolved "http://registry.npm.taobao.org/is-observable/download/is-observable-0.2.0.tgz#b361311d83c6e5d726cabf5e250b0237106f5ae2" 2018 | dependencies: 2019 | symbol-observable "^0.2.2" 2020 | 2021 | is-observable@^1.0.0: 2022 | version "1.1.0" 2023 | resolved "http://registry.npm.taobao.org/is-observable/download/is-observable-1.1.0.tgz#b3e986c8f44de950867cab5403f5a3465005975e" 2024 | dependencies: 2025 | symbol-observable "^1.1.0" 2026 | 2027 | is-path-cwd@^1.0.0: 2028 | version "1.0.0" 2029 | resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" 2030 | 2031 | is-path-in-cwd@^1.0.0: 2032 | version "1.0.1" 2033 | resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz#5ac48b345ef675339bd6c7a48a912110b241cf52" 2034 | dependencies: 2035 | is-path-inside "^1.0.0" 2036 | 2037 | is-path-inside@^1.0.0: 2038 | version "1.0.1" 2039 | resolved "http://registry.npm.taobao.org/is-path-inside/download/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" 2040 | dependencies: 2041 | path-is-inside "^1.0.1" 2042 | 2043 | is-plain-obj@^1.0.0: 2044 | version "1.1.0" 2045 | resolved "http://registry.npm.taobao.org/is-plain-obj/download/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" 2046 | 2047 | is-posix-bracket@^0.1.0: 2048 | version "0.1.1" 2049 | resolved "http://registry.npm.taobao.org/is-posix-bracket/download/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" 2050 | 2051 | is-primitive@^2.0.0: 2052 | version "2.0.0" 2053 | resolved "http://registry.npm.taobao.org/is-primitive/download/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" 2054 | 2055 | is-promise@^2.1.0: 2056 | version "2.1.0" 2057 | resolved "http://registry.npm.taobao.org/is-promise/download/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" 2058 | 2059 | is-redirect@^1.0.0: 2060 | version "1.0.0" 2061 | resolved "http://registry.npm.taobao.org/is-redirect/download/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" 2062 | 2063 | is-resolvable@^1.0.0: 2064 | version "1.1.0" 2065 | resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" 2066 | 2067 | is-retry-allowed@^1.0.0: 2068 | version "1.1.0" 2069 | resolved "http://registry.npm.taobao.org/is-retry-allowed/download/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" 2070 | 2071 | is-stream@^1.0.0, is-stream@^1.1.0: 2072 | version "1.1.0" 2073 | resolved "http://registry.npm.taobao.org/is-stream/download/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" 2074 | 2075 | is-type-of@^1.2.0: 2076 | version "1.2.0" 2077 | resolved "http://registry.npm.taobao.org/is-type-of/download/is-type-of-1.2.0.tgz#b553cbb4621adf5b4171e8883f370e7a6ec38995" 2078 | dependencies: 2079 | core-util-is "^1.0.2" 2080 | is-class "~0.0.4" 2081 | isstream "~0.1.2" 2082 | 2083 | is-typedarray@~1.0.0: 2084 | version "1.0.0" 2085 | resolved "http://registry.npm.taobao.org/is-typedarray/download/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" 2086 | 2087 | is-url@^1.2.1: 2088 | version "1.2.4" 2089 | resolved "http://registry.npm.taobao.org/is-url/download/is-url-1.2.4.tgz#04a4df46d28c4cff3d73d01ff06abeb318a1aa52" 2090 | 2091 | is-utf8@^0.2.0, is-utf8@^0.2.1: 2092 | version "0.2.1" 2093 | resolved "http://registry.npm.taobao.org/is-utf8/download/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" 2094 | 2095 | isarray@0.0.1: 2096 | version "0.0.1" 2097 | resolved "http://registry.npm.taobao.org/isarray/download/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" 2098 | 2099 | isarray@1.0.0, isarray@~1.0.0: 2100 | version "1.0.0" 2101 | resolved "http://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 2102 | 2103 | isexe@^2.0.0: 2104 | version "2.0.0" 2105 | resolved "http://registry.npm.taobao.org/isexe/download/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 2106 | 2107 | isobject@^2.0.0: 2108 | version "2.1.0" 2109 | resolved "http://registry.npm.taobao.org/isobject/download/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" 2110 | dependencies: 2111 | isarray "1.0.0" 2112 | 2113 | isstream@~0.1.2: 2114 | version "0.1.2" 2115 | resolved "http://registry.npm.taobao.org/isstream/download/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" 2116 | 2117 | js-string-escape@^1.0.1: 2118 | version "1.0.1" 2119 | resolved "http://registry.npm.taobao.org/js-string-escape/download/js-string-escape-1.0.1.tgz#e2625badbc0d67c7533e9edc1068c587ae4137ef" 2120 | 2121 | js-tokens@^3.0.0, js-tokens@^3.0.2: 2122 | version "3.0.2" 2123 | resolved "http://registry.npm.taobao.org/js-tokens/download/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" 2124 | 2125 | js-yaml@^3.8.2, js-yaml@^3.9.1: 2126 | version "3.11.0" 2127 | resolved "http://registry.npm.taobao.org/js-yaml/download/js-yaml-3.11.0.tgz#597c1a8bd57152f26d622ce4117851a51f5ebaef" 2128 | dependencies: 2129 | argparse "^1.0.7" 2130 | esprima "^4.0.0" 2131 | 2132 | jsbn@~0.1.0: 2133 | version "0.1.1" 2134 | resolved "http://registry.npm.taobao.org/jsbn/download/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" 2135 | 2136 | jsesc@^1.3.0: 2137 | version "1.3.0" 2138 | resolved "http://registry.npm.taobao.org/jsesc/download/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" 2139 | 2140 | jsesc@~0.5.0: 2141 | version "0.5.0" 2142 | resolved "http://registry.npm.taobao.org/jsesc/download/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" 2143 | 2144 | json-parse-better-errors@^1.0.1: 2145 | version "1.0.2" 2146 | resolved "http://registry.npm.taobao.org/json-parse-better-errors/download/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" 2147 | 2148 | json-schema-traverse@^0.3.0: 2149 | version "0.3.1" 2150 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" 2151 | 2152 | json-schema@0.2.3: 2153 | version "0.2.3" 2154 | resolved "http://registry.npm.taobao.org/json-schema/download/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" 2155 | 2156 | json-stable-stringify-without-jsonify@^1.0.1: 2157 | version "1.0.1" 2158 | resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" 2159 | 2160 | json-stable-stringify@^1.0.1: 2161 | version "1.0.1" 2162 | resolved "http://registry.npm.taobao.org/json-stable-stringify/download/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" 2163 | dependencies: 2164 | jsonify "~0.0.0" 2165 | 2166 | json-stringify-safe@~5.0.1: 2167 | version "5.0.1" 2168 | resolved "http://registry.npm.taobao.org/json-stringify-safe/download/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" 2169 | 2170 | json5@^0.5.1: 2171 | version "0.5.1" 2172 | resolved "http://registry.npm.taobao.org/json5/download/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" 2173 | 2174 | jsonify@~0.0.0: 2175 | version "0.0.0" 2176 | resolved "http://registry.npm.taobao.org/jsonify/download/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" 2177 | 2178 | jsprim@^1.2.2: 2179 | version "1.4.1" 2180 | resolved "http://registry.npm.taobao.org/jsprim/download/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" 2181 | dependencies: 2182 | assert-plus "1.0.0" 2183 | extsprintf "1.3.0" 2184 | json-schema "0.2.3" 2185 | verror "1.10.0" 2186 | 2187 | keygrip@~1.0.2: 2188 | version "1.0.2" 2189 | resolved "http://registry.npm.taobao.org/keygrip/download/keygrip-1.0.2.tgz#ad3297c557069dea8bcfe7a4fa491b75c5ddeb91" 2190 | 2191 | kind-of@^3.0.2: 2192 | version "3.2.2" 2193 | resolved "http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" 2194 | dependencies: 2195 | is-buffer "^1.1.5" 2196 | 2197 | kind-of@^4.0.0: 2198 | version "4.0.0" 2199 | resolved "http://registry.npm.taobao.org/kind-of/download/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" 2200 | dependencies: 2201 | is-buffer "^1.1.5" 2202 | 2203 | koa-compose@^3.0.0: 2204 | version "3.2.1" 2205 | resolved "http://registry.npm.taobao.org/koa-compose/download/koa-compose-3.2.1.tgz#a85ccb40b7d986d8e5a345b3a1ace8eabcf54de7" 2206 | dependencies: 2207 | any-promise "^1.1.0" 2208 | 2209 | koa-compose@^4.0.0: 2210 | version "4.0.0" 2211 | resolved "http://registry.npm.taobao.org/koa-compose/download/koa-compose-4.0.0.tgz#2800a513d9c361ef0d63852b038e4f6f2d5a773c" 2212 | 2213 | koa-convert@^1.2.0: 2214 | version "1.2.0" 2215 | resolved "http://registry.npm.taobao.org/koa-convert/download/koa-convert-1.2.0.tgz#da40875df49de0539098d1700b50820cebcd21d0" 2216 | dependencies: 2217 | co "^4.6.0" 2218 | koa-compose "^3.0.0" 2219 | 2220 | koa-is-json@^1.0.0: 2221 | version "1.0.0" 2222 | resolved "http://registry.npm.taobao.org/koa-is-json/download/koa-is-json-1.0.0.tgz#273c07edcdcb8df6a2c1ab7d59ee76491451ec14" 2223 | 2224 | koa-router@^7.4.0: 2225 | version "7.4.0" 2226 | resolved "http://registry.npm.taobao.org/koa-router/download/koa-router-7.4.0.tgz#aee1f7adc02d5cb31d7d67465c9eacc825e8c5e0" 2227 | dependencies: 2228 | debug "^3.1.0" 2229 | http-errors "^1.3.1" 2230 | koa-compose "^3.0.0" 2231 | methods "^1.0.1" 2232 | path-to-regexp "^1.1.1" 2233 | urijs "^1.19.0" 2234 | 2235 | koa@^2.5.1: 2236 | version "2.5.1" 2237 | resolved "http://registry.npm.taobao.org/koa/download/koa-2.5.1.tgz#79f8b95f8d72d04fe9a58a8da5ebd6d341103f9c" 2238 | dependencies: 2239 | accepts "^1.2.2" 2240 | content-disposition "~0.5.0" 2241 | content-type "^1.0.0" 2242 | cookies "~0.7.0" 2243 | debug "*" 2244 | delegates "^1.0.0" 2245 | depd "^1.1.0" 2246 | destroy "^1.0.3" 2247 | error-inject "~1.0.0" 2248 | escape-html "~1.0.1" 2249 | fresh "^0.5.2" 2250 | http-assert "^1.1.0" 2251 | http-errors "^1.2.8" 2252 | is-generator-function "^1.0.3" 2253 | koa-compose "^4.0.0" 2254 | koa-convert "^1.2.0" 2255 | koa-is-json "^1.0.0" 2256 | mime-types "^2.0.7" 2257 | on-finished "^2.1.0" 2258 | only "0.0.2" 2259 | parseurl "^1.3.0" 2260 | statuses "^1.2.0" 2261 | type-is "^1.5.5" 2262 | vary "^1.0.0" 2263 | 2264 | last-line-stream@^1.0.0: 2265 | version "1.0.0" 2266 | resolved "http://registry.npm.taobao.org/last-line-stream/download/last-line-stream-1.0.0.tgz#d1b64d69f86ff24af2d04883a2ceee14520a5600" 2267 | dependencies: 2268 | through2 "^2.0.0" 2269 | 2270 | latest-version@^3.0.0: 2271 | version "3.1.0" 2272 | resolved "http://registry.npm.taobao.org/latest-version/download/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15" 2273 | dependencies: 2274 | package-json "^4.0.0" 2275 | 2276 | levn@^0.3.0, levn@~0.3.0: 2277 | version "0.3.0" 2278 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" 2279 | dependencies: 2280 | prelude-ls "~1.1.2" 2281 | type-check "~0.3.2" 2282 | 2283 | load-json-file@^1.0.0: 2284 | version "1.1.0" 2285 | resolved "http://registry.npm.taobao.org/load-json-file/download/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" 2286 | dependencies: 2287 | graceful-fs "^4.1.2" 2288 | parse-json "^2.2.0" 2289 | pify "^2.0.0" 2290 | pinkie-promise "^2.0.0" 2291 | strip-bom "^2.0.0" 2292 | 2293 | load-json-file@^2.0.0: 2294 | version "2.0.0" 2295 | resolved "http://registry.npm.taobao.org/load-json-file/download/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" 2296 | dependencies: 2297 | graceful-fs "^4.1.2" 2298 | parse-json "^2.2.0" 2299 | pify "^2.0.0" 2300 | strip-bom "^3.0.0" 2301 | 2302 | load-json-file@^4.0.0: 2303 | version "4.0.0" 2304 | resolved "http://registry.npm.taobao.org/load-json-file/download/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" 2305 | dependencies: 2306 | graceful-fs "^4.1.2" 2307 | parse-json "^4.0.0" 2308 | pify "^3.0.0" 2309 | strip-bom "^3.0.0" 2310 | 2311 | locate-path@^2.0.0: 2312 | version "2.0.0" 2313 | resolved "http://registry.npm.taobao.org/locate-path/download/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" 2314 | dependencies: 2315 | p-locate "^2.0.0" 2316 | path-exists "^3.0.0" 2317 | 2318 | lodash.clonedeep@^4.5.0: 2319 | version "4.5.0" 2320 | resolved "http://registry.npm.taobao.org/lodash.clonedeep/download/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" 2321 | 2322 | lodash.clonedeepwith@^4.5.0: 2323 | version "4.5.0" 2324 | resolved "http://registry.npm.taobao.org/lodash.clonedeepwith/download/lodash.clonedeepwith-4.5.0.tgz#6ee30573a03a1a60d670a62ef33c10cf1afdbdd4" 2325 | 2326 | lodash.debounce@^4.0.3: 2327 | version "4.0.8" 2328 | resolved "http://registry.npm.taobao.org/lodash.debounce/download/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" 2329 | 2330 | lodash.difference@^4.3.0: 2331 | version "4.5.0" 2332 | resolved "http://registry.npm.taobao.org/lodash.difference/download/lodash.difference-4.5.0.tgz#9ccb4e505d486b91651345772885a2df27fd017c" 2333 | 2334 | lodash.flatten@^4.2.0: 2335 | version "4.4.0" 2336 | resolved "http://registry.npm.taobao.org/lodash.flatten/download/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" 2337 | 2338 | lodash.flattendeep@^4.4.0: 2339 | version "4.4.0" 2340 | resolved "http://registry.npm.taobao.org/lodash.flattendeep/download/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2" 2341 | 2342 | lodash.isequal@^4.5.0: 2343 | version "4.5.0" 2344 | resolved "http://registry.npm.taobao.org/lodash.isequal/download/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" 2345 | 2346 | lodash.merge@^4.6.0: 2347 | version "4.6.1" 2348 | resolved "http://registry.npm.taobao.org/lodash.merge/download/lodash.merge-4.6.1.tgz#adc25d9cb99b9391c59624f379fbba60d7111d54" 2349 | 2350 | lodash@^4.17.4: 2351 | version "4.17.5" 2352 | resolved "http://registry.npm.taobao.org/lodash/download/lodash-4.17.5.tgz#99a92d65c0272debe8c96b6057bc8fbfa3bed511" 2353 | 2354 | lodash@^4.3.0: 2355 | version "4.17.10" 2356 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7" 2357 | 2358 | long@^3.2.0: 2359 | version "3.2.0" 2360 | resolved "http://registry.npm.taobao.org/long/download/long-3.2.0.tgz#d821b7138ca1cb581c172990ef14db200b5c474b" 2361 | 2362 | loose-envify@^1.0.0: 2363 | version "1.3.1" 2364 | resolved "http://registry.npm.taobao.org/loose-envify/download/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" 2365 | dependencies: 2366 | js-tokens "^3.0.0" 2367 | 2368 | loud-rejection@^1.0.0, loud-rejection@^1.2.0: 2369 | version "1.6.0" 2370 | resolved "http://registry.npm.taobao.org/loud-rejection/download/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" 2371 | dependencies: 2372 | currently-unhandled "^0.4.1" 2373 | signal-exit "^3.0.0" 2374 | 2375 | lowercase-keys@^1.0.0: 2376 | version "1.0.1" 2377 | resolved "http://registry.npm.taobao.org/lowercase-keys/download/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" 2378 | 2379 | lru-cache@^4.0.1: 2380 | version "4.1.2" 2381 | resolved "http://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.2.tgz#45234b2e6e2f2b33da125624c4664929a0224c3f" 2382 | dependencies: 2383 | pseudomap "^1.0.2" 2384 | yallist "^2.1.2" 2385 | 2386 | make-dir@^1.0.0: 2387 | version "1.2.0" 2388 | resolved "http://registry.npm.taobao.org/make-dir/download/make-dir-1.2.0.tgz#6d6a49eead4aae296c53bbf3a1a008bd6c89469b" 2389 | dependencies: 2390 | pify "^3.0.0" 2391 | 2392 | map-obj@^1.0.0, map-obj@^1.0.1: 2393 | version "1.0.1" 2394 | resolved "http://registry.npm.taobao.org/map-obj/download/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" 2395 | 2396 | matcher@^1.0.0: 2397 | version "1.1.0" 2398 | resolved "http://registry.npm.taobao.org/matcher/download/matcher-1.1.0.tgz#4ad3a9cb6585186dc95cb8a08c7de936caed17ee" 2399 | dependencies: 2400 | escape-string-regexp "^1.0.4" 2401 | 2402 | md5-hex@^1.2.0, md5-hex@^1.3.0: 2403 | version "1.3.0" 2404 | resolved "http://registry.npm.taobao.org/md5-hex/download/md5-hex-1.3.0.tgz#d2c4afe983c4370662179b8cad145219135046c4" 2405 | dependencies: 2406 | md5-o-matic "^0.1.1" 2407 | 2408 | md5-hex@^2.0.0: 2409 | version "2.0.0" 2410 | resolved "http://registry.npm.taobao.org/md5-hex/download/md5-hex-2.0.0.tgz#d0588e9f1c74954492ecd24ac0ac6ce997d92e33" 2411 | dependencies: 2412 | md5-o-matic "^0.1.1" 2413 | 2414 | md5-o-matic@^0.1.1: 2415 | version "0.1.1" 2416 | resolved "http://registry.npm.taobao.org/md5-o-matic/download/md5-o-matic-0.1.1.tgz#822bccd65e117c514fab176b25945d54100a03c3" 2417 | 2418 | media-typer@0.3.0: 2419 | version "0.3.0" 2420 | resolved "http://registry.npm.taobao.org/media-typer/download/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" 2421 | 2422 | meow@^3.7.0: 2423 | version "3.7.0" 2424 | resolved "http://registry.npm.taobao.org/meow/download/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" 2425 | dependencies: 2426 | camelcase-keys "^2.0.0" 2427 | decamelize "^1.1.2" 2428 | loud-rejection "^1.0.0" 2429 | map-obj "^1.0.1" 2430 | minimist "^1.1.3" 2431 | normalize-package-data "^2.3.4" 2432 | object-assign "^4.0.1" 2433 | read-pkg-up "^1.0.1" 2434 | redent "^1.0.0" 2435 | trim-newlines "^1.0.0" 2436 | 2437 | merge-descriptors@1.0.1: 2438 | version "1.0.1" 2439 | resolved "http://registry.npm.taobao.org/merge-descriptors/download/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" 2440 | 2441 | methods@^1.0.1, methods@~1.1.2: 2442 | version "1.1.2" 2443 | resolved "http://registry.npm.taobao.org/methods/download/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" 2444 | 2445 | micromatch@^2.1.5: 2446 | version "2.3.11" 2447 | resolved "http://registry.npm.taobao.org/micromatch/download/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" 2448 | dependencies: 2449 | arr-diff "^2.0.0" 2450 | array-unique "^0.2.1" 2451 | braces "^1.8.2" 2452 | expand-brackets "^0.1.4" 2453 | extglob "^0.3.1" 2454 | filename-regex "^2.0.0" 2455 | is-extglob "^1.0.0" 2456 | is-glob "^2.0.1" 2457 | kind-of "^3.0.2" 2458 | normalize-path "^2.0.1" 2459 | object.omit "^2.0.0" 2460 | parse-glob "^3.0.4" 2461 | regex-cache "^0.4.2" 2462 | 2463 | mime-db@~1.33.0: 2464 | version "1.33.0" 2465 | resolved "http://registry.npm.taobao.org/mime-db/download/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db" 2466 | 2467 | mime-types@^2.0.7, mime-types@^2.1.12, mime-types@~2.1.18, mime-types@~2.1.7: 2468 | version "2.1.18" 2469 | resolved "http://registry.npm.taobao.org/mime-types/download/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8" 2470 | dependencies: 2471 | mime-db "~1.33.0" 2472 | 2473 | mime@1.4.1: 2474 | version "1.4.1" 2475 | resolved "http://registry.npm.taobao.org/mime/download/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" 2476 | 2477 | mimic-fn@^1.0.0: 2478 | version "1.2.0" 2479 | resolved "http://registry.npm.taobao.org/mimic-fn/download/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" 2480 | 2481 | minimatch@3.0.4, minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4: 2482 | version "3.0.4" 2483 | resolved "http://registry.npm.taobao.org/minimatch/download/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 2484 | dependencies: 2485 | brace-expansion "^1.1.7" 2486 | 2487 | minimist@0.0.8: 2488 | version "0.0.8" 2489 | resolved "http://registry.npm.taobao.org/minimist/download/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" 2490 | 2491 | minimist@^1.1.3, minimist@^1.2.0: 2492 | version "1.2.0" 2493 | resolved "http://registry.npm.taobao.org/minimist/download/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" 2494 | 2495 | mkdirp@0.5.1, "mkdirp@>=0.5 0", mkdirp@^0.5.1, mkdirp@~0.5.1: 2496 | version "0.5.1" 2497 | resolved "http://registry.npm.taobao.org/mkdirp/download/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" 2498 | dependencies: 2499 | minimist "0.0.8" 2500 | 2501 | mocha@^5.0.0: 2502 | version "5.1.0" 2503 | resolved "http://registry.npm.taobao.org/mocha/download/mocha-5.1.0.tgz#5ff11cc39c0bb65330ac6c41f9086634e3e3f686" 2504 | dependencies: 2505 | browser-stdout "1.3.1" 2506 | commander "2.11.0" 2507 | debug "3.1.0" 2508 | diff "3.5.0" 2509 | escape-string-regexp "1.0.5" 2510 | glob "7.1.2" 2511 | growl "1.10.3" 2512 | he "1.1.1" 2513 | minimatch "3.0.4" 2514 | mkdirp "0.5.1" 2515 | supports-color "4.4.0" 2516 | 2517 | ms@2.0.0: 2518 | version "2.0.0" 2519 | resolved "http://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 2520 | 2521 | ms@^2.0.0: 2522 | version "2.1.1" 2523 | resolved "http://registry.npm.taobao.org/ms/download/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" 2524 | 2525 | multimatch@^2.1.0: 2526 | version "2.1.0" 2527 | resolved "http://registry.npm.taobao.org/multimatch/download/multimatch-2.1.0.tgz#9c7906a22fb4c02919e2f5f75161b4cdbd4b2a2b" 2528 | dependencies: 2529 | array-differ "^1.0.0" 2530 | array-union "^1.0.1" 2531 | arrify "^1.0.0" 2532 | minimatch "^3.0.0" 2533 | 2534 | mute-stream@0.0.7: 2535 | version "0.0.7" 2536 | resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" 2537 | 2538 | mz@~2.7.0: 2539 | version "2.7.0" 2540 | resolved "http://registry.npm.taobao.org/mz/download/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" 2541 | dependencies: 2542 | any-promise "^1.0.0" 2543 | object-assign "^4.0.1" 2544 | thenify-all "^1.0.0" 2545 | 2546 | nan@^2.3.0: 2547 | version "2.10.0" 2548 | resolved "http://registry.npm.taobao.org/nan/download/nan-2.10.0.tgz#96d0cd610ebd58d4b4de9cc0c6828cda99c7548f" 2549 | 2550 | natural-compare@^1.4.0: 2551 | version "1.4.0" 2552 | resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" 2553 | 2554 | negotiator@0.6.1: 2555 | version "0.6.1" 2556 | resolved "http://registry.npm.taobao.org/negotiator/download/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" 2557 | 2558 | node-pre-gyp@^0.6.39: 2559 | version "0.6.39" 2560 | resolved "http://registry.npm.taobao.org/node-pre-gyp/download/node-pre-gyp-0.6.39.tgz#c00e96860b23c0e1420ac7befc5044e1d78d8649" 2561 | dependencies: 2562 | detect-libc "^1.0.2" 2563 | hawk "3.1.3" 2564 | mkdirp "^0.5.1" 2565 | nopt "^4.0.1" 2566 | npmlog "^4.0.2" 2567 | rc "^1.1.7" 2568 | request "2.81.0" 2569 | rimraf "^2.6.1" 2570 | semver "^5.3.0" 2571 | tar "^2.2.1" 2572 | tar-pack "^3.4.0" 2573 | 2574 | node-zookeeper-client@0.2.2: 2575 | version "0.2.2" 2576 | resolved "http://registry.npm.taobao.org/node-zookeeper-client/download/node-zookeeper-client-0.2.2.tgz#097bda01999eef8f602ce068b632600069dbf685" 2577 | dependencies: 2578 | async "~0.2.7" 2579 | underscore "~1.4.4" 2580 | 2581 | nopt@^4.0.1: 2582 | version "4.0.1" 2583 | resolved "http://registry.npm.taobao.org/nopt/download/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" 2584 | dependencies: 2585 | abbrev "1" 2586 | osenv "^0.1.4" 2587 | 2588 | normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: 2589 | version "2.4.0" 2590 | resolved "http://registry.npm.taobao.org/normalize-package-data/download/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" 2591 | dependencies: 2592 | hosted-git-info "^2.1.4" 2593 | is-builtin-module "^1.0.0" 2594 | semver "2 || 3 || 4 || 5" 2595 | validate-npm-package-license "^3.0.1" 2596 | 2597 | normalize-path@^2.0.0, normalize-path@^2.0.1: 2598 | version "2.1.1" 2599 | resolved "http://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" 2600 | dependencies: 2601 | remove-trailing-separator "^1.0.1" 2602 | 2603 | npm-run-path@^2.0.0: 2604 | version "2.0.2" 2605 | resolved "http://registry.npm.taobao.org/npm-run-path/download/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" 2606 | dependencies: 2607 | path-key "^2.0.0" 2608 | 2609 | npmlog@^4.0.2: 2610 | version "4.1.2" 2611 | resolved "http://registry.npm.taobao.org/npmlog/download/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" 2612 | dependencies: 2613 | are-we-there-yet "~1.1.2" 2614 | console-control-strings "~1.1.0" 2615 | gauge "~2.7.3" 2616 | set-blocking "~2.0.0" 2617 | 2618 | number-is-nan@^1.0.0: 2619 | version "1.0.1" 2620 | resolved "http://registry.npm.taobao.org/number-is-nan/download/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" 2621 | 2622 | oauth-sign@~0.8.1: 2623 | version "0.8.2" 2624 | resolved "http://registry.npm.taobao.org/oauth-sign/download/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" 2625 | 2626 | object-assign@^4.0.1, object-assign@^4.1.0: 2627 | version "4.1.1" 2628 | resolved "http://registry.npm.taobao.org/object-assign/download/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 2629 | 2630 | object.omit@^2.0.0: 2631 | version "2.0.1" 2632 | resolved "http://registry.npm.taobao.org/object.omit/download/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" 2633 | dependencies: 2634 | for-own "^0.1.4" 2635 | is-extendable "^0.1.1" 2636 | 2637 | observable-to-promise@^0.5.0: 2638 | version "0.5.0" 2639 | resolved "http://registry.npm.taobao.org/observable-to-promise/download/observable-to-promise-0.5.0.tgz#c828f0f0dc47e9f86af8a4977c5d55076ce7a91f" 2640 | dependencies: 2641 | is-observable "^0.2.0" 2642 | symbol-observable "^1.0.4" 2643 | 2644 | on-finished@^2.1.0, on-finished@~2.3.0: 2645 | version "2.3.0" 2646 | resolved "http://registry.npm.taobao.org/on-finished/download/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" 2647 | dependencies: 2648 | ee-first "1.1.1" 2649 | 2650 | once@^1.3.0, once@^1.3.3: 2651 | version "1.4.0" 2652 | resolved "http://registry.npm.taobao.org/once/download/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 2653 | dependencies: 2654 | wrappy "1" 2655 | 2656 | onetime@^2.0.0: 2657 | version "2.0.1" 2658 | resolved "http://registry.npm.taobao.org/onetime/download/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" 2659 | dependencies: 2660 | mimic-fn "^1.0.0" 2661 | 2662 | only@0.0.2: 2663 | version "0.0.2" 2664 | resolved "http://registry.npm.taobao.org/only/download/only-0.0.2.tgz#2afde84d03e50b9a8edc444e30610a70295edfb4" 2665 | 2666 | option-chain@^1.0.0: 2667 | version "1.0.0" 2668 | resolved "http://registry.npm.taobao.org/option-chain/download/option-chain-1.0.0.tgz#938d73bd4e1783f948d34023644ada23669e30f2" 2669 | 2670 | optionator@^0.8.2: 2671 | version "0.8.2" 2672 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" 2673 | dependencies: 2674 | deep-is "~0.1.3" 2675 | fast-levenshtein "~2.0.4" 2676 | levn "~0.3.0" 2677 | prelude-ls "~1.1.2" 2678 | type-check "~0.3.2" 2679 | wordwrap "~1.0.0" 2680 | 2681 | os-homedir@^1.0.0: 2682 | version "1.0.2" 2683 | resolved "http://registry.npm.taobao.org/os-homedir/download/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" 2684 | 2685 | os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: 2686 | version "1.0.2" 2687 | resolved "http://registry.npm.taobao.org/os-tmpdir/download/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" 2688 | 2689 | osenv@^0.1.4: 2690 | version "0.1.5" 2691 | resolved "http://registry.npm.taobao.org/osenv/download/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" 2692 | dependencies: 2693 | os-homedir "^1.0.0" 2694 | os-tmpdir "^1.0.0" 2695 | 2696 | p-finally@^1.0.0: 2697 | version "1.0.0" 2698 | resolved "http://registry.npm.taobao.org/p-finally/download/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" 2699 | 2700 | p-limit@^1.1.0: 2701 | version "1.2.0" 2702 | resolved "http://registry.npm.taobao.org/p-limit/download/p-limit-1.2.0.tgz#0e92b6bedcb59f022c13d0f1949dc82d15909f1c" 2703 | dependencies: 2704 | p-try "^1.0.0" 2705 | 2706 | p-locate@^2.0.0: 2707 | version "2.0.0" 2708 | resolved "http://registry.npm.taobao.org/p-locate/download/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" 2709 | dependencies: 2710 | p-limit "^1.1.0" 2711 | 2712 | p-try@^1.0.0: 2713 | version "1.0.0" 2714 | resolved "http://registry.npm.taobao.org/p-try/download/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" 2715 | 2716 | package-hash@^1.2.0: 2717 | version "1.2.0" 2718 | resolved "http://registry.npm.taobao.org/package-hash/download/package-hash-1.2.0.tgz#003e56cd57b736a6ed6114cc2b81542672770e44" 2719 | dependencies: 2720 | md5-hex "^1.3.0" 2721 | 2722 | package-hash@^2.0.0: 2723 | version "2.0.0" 2724 | resolved "http://registry.npm.taobao.org/package-hash/download/package-hash-2.0.0.tgz#78ae326c89e05a4d813b68601977af05c00d2a0d" 2725 | dependencies: 2726 | graceful-fs "^4.1.11" 2727 | lodash.flattendeep "^4.4.0" 2728 | md5-hex "^2.0.0" 2729 | release-zalgo "^1.0.0" 2730 | 2731 | package-json@^4.0.0: 2732 | version "4.0.1" 2733 | resolved "http://registry.npm.taobao.org/package-json/download/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed" 2734 | dependencies: 2735 | got "^6.7.1" 2736 | registry-auth-token "^3.0.1" 2737 | registry-url "^3.0.3" 2738 | semver "^5.1.0" 2739 | 2740 | parse-glob@^3.0.4: 2741 | version "3.0.4" 2742 | resolved "http://registry.npm.taobao.org/parse-glob/download/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" 2743 | dependencies: 2744 | glob-base "^0.3.0" 2745 | is-dotfile "^1.0.0" 2746 | is-extglob "^1.0.0" 2747 | is-glob "^2.0.0" 2748 | 2749 | parse-json@^2.2.0: 2750 | version "2.2.0" 2751 | resolved "http://registry.npm.taobao.org/parse-json/download/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" 2752 | dependencies: 2753 | error-ex "^1.2.0" 2754 | 2755 | parse-json@^4.0.0: 2756 | version "4.0.0" 2757 | resolved "http://registry.npm.taobao.org/parse-json/download/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" 2758 | dependencies: 2759 | error-ex "^1.3.1" 2760 | json-parse-better-errors "^1.0.1" 2761 | 2762 | parse-ms@^0.1.0: 2763 | version "0.1.2" 2764 | resolved "http://registry.npm.taobao.org/parse-ms/download/parse-ms-0.1.2.tgz#dd3fa25ed6c2efc7bdde12ad9b46c163aa29224e" 2765 | 2766 | parse-ms@^1.0.0: 2767 | version "1.0.1" 2768 | resolved "http://registry.npm.taobao.org/parse-ms/download/parse-ms-1.0.1.tgz#56346d4749d78f23430ca0c713850aef91aa361d" 2769 | 2770 | parseurl@^1.3.0, parseurl@~1.3.2: 2771 | version "1.3.2" 2772 | resolved "http://registry.npm.taobao.org/parseurl/download/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3" 2773 | 2774 | path-exists@^2.0.0: 2775 | version "2.1.0" 2776 | resolved "http://registry.npm.taobao.org/path-exists/download/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" 2777 | dependencies: 2778 | pinkie-promise "^2.0.0" 2779 | 2780 | path-exists@^3.0.0: 2781 | version "3.0.0" 2782 | resolved "http://registry.npm.taobao.org/path-exists/download/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" 2783 | 2784 | path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: 2785 | version "1.0.1" 2786 | resolved "http://registry.npm.taobao.org/path-is-absolute/download/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 2787 | 2788 | path-is-inside@^1.0.1, path-is-inside@^1.0.2: 2789 | version "1.0.2" 2790 | resolved "http://registry.npm.taobao.org/path-is-inside/download/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" 2791 | 2792 | path-key@^2.0.0: 2793 | version "2.0.1" 2794 | resolved "http://registry.npm.taobao.org/path-key/download/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" 2795 | 2796 | path-to-regexp@0.1.7: 2797 | version "0.1.7" 2798 | resolved "http://registry.npm.taobao.org/path-to-regexp/download/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" 2799 | 2800 | path-to-regexp@^1.1.1: 2801 | version "1.7.0" 2802 | resolved "http://registry.npm.taobao.org/path-to-regexp/download/path-to-regexp-1.7.0.tgz#59fde0f435badacba103a84e9d3bc64e96b9937d" 2803 | dependencies: 2804 | isarray "0.0.1" 2805 | 2806 | path-type@^1.0.0: 2807 | version "1.1.0" 2808 | resolved "http://registry.npm.taobao.org/path-type/download/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" 2809 | dependencies: 2810 | graceful-fs "^4.1.2" 2811 | pify "^2.0.0" 2812 | pinkie-promise "^2.0.0" 2813 | 2814 | path-type@^2.0.0: 2815 | version "2.0.0" 2816 | resolved "http://registry.npm.taobao.org/path-type/download/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" 2817 | dependencies: 2818 | pify "^2.0.0" 2819 | 2820 | pathval@^1.0.0: 2821 | version "1.1.0" 2822 | resolved "http://registry.npm.taobao.org/pathval/download/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0" 2823 | 2824 | performance-now@^0.2.0: 2825 | version "0.2.0" 2826 | resolved "http://registry.npm.taobao.org/performance-now/download/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" 2827 | 2828 | pify@^2.0.0: 2829 | version "2.3.0" 2830 | resolved "http://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" 2831 | 2832 | pify@^3.0.0: 2833 | version "3.0.0" 2834 | resolved "http://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" 2835 | 2836 | pinkie-promise@^1.0.0: 2837 | version "1.0.0" 2838 | resolved "http://registry.npm.taobao.org/pinkie-promise/download/pinkie-promise-1.0.0.tgz#d1da67f5482563bb7cf57f286ae2822ecfbf3670" 2839 | dependencies: 2840 | pinkie "^1.0.0" 2841 | 2842 | pinkie-promise@^2.0.0: 2843 | version "2.0.1" 2844 | resolved "http://registry.npm.taobao.org/pinkie-promise/download/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" 2845 | dependencies: 2846 | pinkie "^2.0.0" 2847 | 2848 | pinkie@^1.0.0: 2849 | version "1.0.0" 2850 | resolved "http://registry.npm.taobao.org/pinkie/download/pinkie-1.0.0.tgz#5a47f28ba1015d0201bda7bf0f358e47bec8c7e4" 2851 | 2852 | pinkie@^2.0.0: 2853 | version "2.0.4" 2854 | resolved "http://registry.npm.taobao.org/pinkie/download/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" 2855 | 2856 | pkg-conf@^2.0.0: 2857 | version "2.1.0" 2858 | resolved "http://registry.npm.taobao.org/pkg-conf/download/pkg-conf-2.1.0.tgz#2126514ca6f2abfebd168596df18ba57867f0058" 2859 | dependencies: 2860 | find-up "^2.0.0" 2861 | load-json-file "^4.0.0" 2862 | 2863 | pkg-dir@^2.0.0: 2864 | version "2.0.0" 2865 | resolved "http://registry.npm.taobao.org/pkg-dir/download/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" 2866 | dependencies: 2867 | find-up "^2.1.0" 2868 | 2869 | plur@^2.0.0, plur@^2.1.2: 2870 | version "2.1.2" 2871 | resolved "http://registry.npm.taobao.org/plur/download/plur-2.1.2.tgz#7482452c1a0f508e3e344eaec312c91c29dc655a" 2872 | dependencies: 2873 | irregular-plurals "^1.0.0" 2874 | 2875 | pluralize@^7.0.0: 2876 | version "7.0.0" 2877 | resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" 2878 | 2879 | prelude-ls@~1.1.2: 2880 | version "1.1.2" 2881 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" 2882 | 2883 | prepend-http@^1.0.1: 2884 | version "1.0.4" 2885 | resolved "http://registry.npm.taobao.org/prepend-http/download/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" 2886 | 2887 | preserve@^0.2.0: 2888 | version "0.2.0" 2889 | resolved "http://registry.npm.taobao.org/preserve/download/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" 2890 | 2891 | pretty-ms@^0.2.1: 2892 | version "0.2.2" 2893 | resolved "http://registry.npm.taobao.org/pretty-ms/download/pretty-ms-0.2.2.tgz#da879a682ff33a37011046f13d627f67c73b84f6" 2894 | dependencies: 2895 | parse-ms "^0.1.0" 2896 | 2897 | pretty-ms@^3.0.0: 2898 | version "3.1.0" 2899 | resolved "http://registry.npm.taobao.org/pretty-ms/download/pretty-ms-3.1.0.tgz#e9cac9c76bf6ee52fe942dd9c6c4213153b12881" 2900 | dependencies: 2901 | parse-ms "^1.0.0" 2902 | plur "^2.1.2" 2903 | 2904 | private@^0.1.7: 2905 | version "0.1.8" 2906 | resolved "http://registry.npm.taobao.org/private/download/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" 2907 | 2908 | process-nextick-args@~2.0.0: 2909 | version "2.0.0" 2910 | resolved "http://registry.npm.taobao.org/process-nextick-args/download/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" 2911 | 2912 | progress@^2.0.0: 2913 | version "2.0.0" 2914 | resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f" 2915 | 2916 | proxy-addr@~2.0.3: 2917 | version "2.0.3" 2918 | resolved "http://registry.npm.taobao.org/proxy-addr/download/proxy-addr-2.0.3.tgz#355f262505a621646b3130a728eb647e22055341" 2919 | dependencies: 2920 | forwarded "~0.1.2" 2921 | ipaddr.js "1.6.0" 2922 | 2923 | pseudomap@^1.0.2: 2924 | version "1.0.2" 2925 | resolved "http://registry.npm.taobao.org/pseudomap/download/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" 2926 | 2927 | punycode@^1.4.1: 2928 | version "1.4.1" 2929 | resolved "http://registry.npm.taobao.org/punycode/download/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" 2930 | 2931 | qs@6.5.1: 2932 | version "6.5.1" 2933 | resolved "http://registry.npm.taobao.org/qs/download/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" 2934 | 2935 | qs@~6.4.0: 2936 | version "6.4.0" 2937 | resolved "http://registry.npm.taobao.org/qs/download/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" 2938 | 2939 | randomatic@^1.1.3: 2940 | version "1.1.7" 2941 | resolved "http://registry.npm.taobao.org/randomatic/download/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c" 2942 | dependencies: 2943 | is-number "^3.0.0" 2944 | kind-of "^4.0.0" 2945 | 2946 | range-parser@~1.2.0: 2947 | version "1.2.0" 2948 | resolved "http://registry.npm.taobao.org/range-parser/download/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" 2949 | 2950 | raw-body@2.3.2: 2951 | version "2.3.2" 2952 | resolved "http://registry.npm.taobao.org/raw-body/download/raw-body-2.3.2.tgz#bcd60c77d3eb93cde0050295c3f379389bc88f89" 2953 | dependencies: 2954 | bytes "3.0.0" 2955 | http-errors "1.6.2" 2956 | iconv-lite "0.4.19" 2957 | unpipe "1.0.0" 2958 | 2959 | rc@^1.0.1, rc@^1.1.6, rc@^1.1.7: 2960 | version "1.2.6" 2961 | resolved "http://registry.npm.taobao.org/rc/download/rc-1.2.6.tgz#eb18989c6d4f4f162c399f79ddd29f3835568092" 2962 | dependencies: 2963 | deep-extend "~0.4.0" 2964 | ini "~1.3.0" 2965 | minimist "^1.2.0" 2966 | strip-json-comments "~2.0.1" 2967 | 2968 | read-pkg-up@^1.0.1: 2969 | version "1.0.1" 2970 | resolved "http://registry.npm.taobao.org/read-pkg-up/download/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" 2971 | dependencies: 2972 | find-up "^1.0.0" 2973 | read-pkg "^1.0.0" 2974 | 2975 | read-pkg-up@^2.0.0: 2976 | version "2.0.0" 2977 | resolved "http://registry.npm.taobao.org/read-pkg-up/download/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" 2978 | dependencies: 2979 | find-up "^2.0.0" 2980 | read-pkg "^2.0.0" 2981 | 2982 | read-pkg@^1.0.0: 2983 | version "1.1.0" 2984 | resolved "http://registry.npm.taobao.org/read-pkg/download/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" 2985 | dependencies: 2986 | load-json-file "^1.0.0" 2987 | normalize-package-data "^2.3.2" 2988 | path-type "^1.0.0" 2989 | 2990 | read-pkg@^2.0.0: 2991 | version "2.0.0" 2992 | resolved "http://registry.npm.taobao.org/read-pkg/download/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" 2993 | dependencies: 2994 | load-json-file "^2.0.0" 2995 | normalize-package-data "^2.3.2" 2996 | path-type "^2.0.0" 2997 | 2998 | readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.1.5, readable-stream@^2.2.2: 2999 | version "2.3.6" 3000 | resolved "http://registry.npm.taobao.org/readable-stream/download/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" 3001 | dependencies: 3002 | core-util-is "~1.0.0" 3003 | inherits "~2.0.3" 3004 | isarray "~1.0.0" 3005 | process-nextick-args "~2.0.0" 3006 | safe-buffer "~5.1.1" 3007 | string_decoder "~1.1.1" 3008 | util-deprecate "~1.0.1" 3009 | 3010 | readdirp@^2.0.0: 3011 | version "2.1.0" 3012 | resolved "http://registry.npm.taobao.org/readdirp/download/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" 3013 | dependencies: 3014 | graceful-fs "^4.1.2" 3015 | minimatch "^3.0.2" 3016 | readable-stream "^2.0.2" 3017 | set-immediate-shim "^1.0.1" 3018 | 3019 | redent@^1.0.0: 3020 | version "1.0.0" 3021 | resolved "http://registry.npm.taobao.org/redent/download/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" 3022 | dependencies: 3023 | indent-string "^2.1.0" 3024 | strip-indent "^1.0.1" 3025 | 3026 | regenerate@^1.2.1: 3027 | version "1.3.3" 3028 | resolved "http://registry.npm.taobao.org/regenerate/download/regenerate-1.3.3.tgz#0c336d3980553d755c39b586ae3b20aa49c82b7f" 3029 | 3030 | regenerator-runtime@^0.11.0: 3031 | version "0.11.1" 3032 | resolved "http://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" 3033 | 3034 | regex-cache@^0.4.2: 3035 | version "0.4.4" 3036 | resolved "http://registry.npm.taobao.org/regex-cache/download/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" 3037 | dependencies: 3038 | is-equal-shallow "^0.1.3" 3039 | 3040 | regexpp@^1.0.1: 3041 | version "1.1.0" 3042 | resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-1.1.0.tgz#0e3516dd0b7904f413d2d4193dce4618c3a689ab" 3043 | 3044 | regexpu-core@^2.0.0: 3045 | version "2.0.0" 3046 | resolved "http://registry.npm.taobao.org/regexpu-core/download/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" 3047 | dependencies: 3048 | regenerate "^1.2.1" 3049 | regjsgen "^0.2.0" 3050 | regjsparser "^0.1.4" 3051 | 3052 | registry-auth-token@^3.0.1: 3053 | version "3.3.2" 3054 | resolved "http://registry.npm.taobao.org/registry-auth-token/download/registry-auth-token-3.3.2.tgz#851fd49038eecb586911115af845260eec983f20" 3055 | dependencies: 3056 | rc "^1.1.6" 3057 | safe-buffer "^5.0.1" 3058 | 3059 | registry-url@^3.0.3: 3060 | version "3.1.0" 3061 | resolved "http://registry.npm.taobao.org/registry-url/download/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" 3062 | dependencies: 3063 | rc "^1.0.1" 3064 | 3065 | regjsgen@^0.2.0: 3066 | version "0.2.0" 3067 | resolved "http://registry.npm.taobao.org/regjsgen/download/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" 3068 | 3069 | regjsparser@^0.1.4: 3070 | version "0.1.5" 3071 | resolved "http://registry.npm.taobao.org/regjsparser/download/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" 3072 | dependencies: 3073 | jsesc "~0.5.0" 3074 | 3075 | release-zalgo@^1.0.0: 3076 | version "1.0.0" 3077 | resolved "http://registry.npm.taobao.org/release-zalgo/download/release-zalgo-1.0.0.tgz#09700b7e5074329739330e535c5a90fb67851730" 3078 | dependencies: 3079 | es6-error "^4.0.1" 3080 | 3081 | remove-trailing-separator@^1.0.1: 3082 | version "1.1.0" 3083 | resolved "http://registry.npm.taobao.org/remove-trailing-separator/download/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" 3084 | 3085 | repeat-element@^1.1.2: 3086 | version "1.1.2" 3087 | resolved "http://registry.npm.taobao.org/repeat-element/download/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" 3088 | 3089 | repeat-string@^1.5.2: 3090 | version "1.6.1" 3091 | resolved "http://registry.npm.taobao.org/repeat-string/download/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" 3092 | 3093 | repeating@^2.0.0: 3094 | version "2.0.1" 3095 | resolved "http://registry.npm.taobao.org/repeating/download/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" 3096 | dependencies: 3097 | is-finite "^1.0.0" 3098 | 3099 | request@2.81.0: 3100 | version "2.81.0" 3101 | resolved "http://registry.npm.taobao.org/request/download/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" 3102 | dependencies: 3103 | aws-sign2 "~0.6.0" 3104 | aws4 "^1.2.1" 3105 | caseless "~0.12.0" 3106 | combined-stream "~1.0.5" 3107 | extend "~3.0.0" 3108 | forever-agent "~0.6.1" 3109 | form-data "~2.1.1" 3110 | har-validator "~4.2.1" 3111 | hawk "~3.1.3" 3112 | http-signature "~1.1.0" 3113 | is-typedarray "~1.0.0" 3114 | isstream "~0.1.2" 3115 | json-stringify-safe "~5.0.1" 3116 | mime-types "~2.1.7" 3117 | oauth-sign "~0.8.1" 3118 | performance-now "^0.2.0" 3119 | qs "~6.4.0" 3120 | safe-buffer "^5.0.1" 3121 | stringstream "~0.0.4" 3122 | tough-cookie "~2.3.0" 3123 | tunnel-agent "^0.6.0" 3124 | uuid "^3.0.0" 3125 | 3126 | require-precompiled@^0.1.0: 3127 | version "0.1.0" 3128 | resolved "http://registry.npm.taobao.org/require-precompiled/download/require-precompiled-0.1.0.tgz#5a1b52eb70ebed43eb982e974c85ab59571e56fa" 3129 | 3130 | require-uncached@^1.0.3: 3131 | version "1.0.3" 3132 | resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" 3133 | dependencies: 3134 | caller-path "^0.1.0" 3135 | resolve-from "^1.0.0" 3136 | 3137 | resolve-cwd@^2.0.0: 3138 | version "2.0.0" 3139 | resolved "http://registry.npm.taobao.org/resolve-cwd/download/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" 3140 | dependencies: 3141 | resolve-from "^3.0.0" 3142 | 3143 | resolve-from@^1.0.0: 3144 | version "1.0.1" 3145 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" 3146 | 3147 | resolve-from@^3.0.0: 3148 | version "3.0.0" 3149 | resolved "http://registry.npm.taobao.org/resolve-from/download/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" 3150 | 3151 | restore-cursor@^2.0.0: 3152 | version "2.0.0" 3153 | resolved "http://registry.npm.taobao.org/restore-cursor/download/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" 3154 | dependencies: 3155 | onetime "^2.0.0" 3156 | signal-exit "^3.0.2" 3157 | 3158 | rimraf@2, rimraf@^2.2.8, rimraf@^2.5.1, rimraf@^2.6.1: 3159 | version "2.6.2" 3160 | resolved "http://registry.npm.taobao.org/rimraf/download/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" 3161 | dependencies: 3162 | glob "^7.0.5" 3163 | 3164 | run-async@^2.2.0: 3165 | version "2.3.0" 3166 | resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" 3167 | dependencies: 3168 | is-promise "^2.1.0" 3169 | 3170 | rx-lite-aggregates@^4.0.8: 3171 | version "4.0.8" 3172 | resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" 3173 | dependencies: 3174 | rx-lite "*" 3175 | 3176 | rx-lite@*, rx-lite@^4.0.8: 3177 | version "4.0.8" 3178 | resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" 3179 | 3180 | safe-buffer@5.1.1, safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1: 3181 | version "5.1.1" 3182 | resolved "http://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" 3183 | 3184 | "safer-buffer@>= 2.1.2 < 3": 3185 | version "2.1.2" 3186 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 3187 | 3188 | semver-diff@^2.0.0: 3189 | version "2.1.0" 3190 | resolved "http://registry.npm.taobao.org/semver-diff/download/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" 3191 | dependencies: 3192 | semver "^5.0.3" 3193 | 3194 | "semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1: 3195 | version "5.5.0" 3196 | resolved "http://registry.npm.taobao.org/semver/download/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" 3197 | 3198 | send@0.16.2: 3199 | version "0.16.2" 3200 | resolved "http://registry.npm.taobao.org/send/download/send-0.16.2.tgz#6ecca1e0f8c156d141597559848df64730a6bbc1" 3201 | dependencies: 3202 | debug "2.6.9" 3203 | depd "~1.1.2" 3204 | destroy "~1.0.4" 3205 | encodeurl "~1.0.2" 3206 | escape-html "~1.0.3" 3207 | etag "~1.8.1" 3208 | fresh "0.5.2" 3209 | http-errors "~1.6.2" 3210 | mime "1.4.1" 3211 | ms "2.0.0" 3212 | on-finished "~2.3.0" 3213 | range-parser "~1.2.0" 3214 | statuses "~1.4.0" 3215 | 3216 | serve-static@1.13.2: 3217 | version "1.13.2" 3218 | resolved "http://registry.npm.taobao.org/serve-static/download/serve-static-1.13.2.tgz#095e8472fd5b46237db50ce486a43f4b86c6cec1" 3219 | dependencies: 3220 | encodeurl "~1.0.2" 3221 | escape-html "~1.0.3" 3222 | parseurl "~1.3.2" 3223 | send "0.16.2" 3224 | 3225 | set-blocking@~2.0.0: 3226 | version "2.0.0" 3227 | resolved "http://registry.npm.taobao.org/set-blocking/download/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" 3228 | 3229 | set-immediate-shim@^1.0.1: 3230 | version "1.0.1" 3231 | resolved "http://registry.npm.taobao.org/set-immediate-shim/download/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" 3232 | 3233 | setprototypeof@1.0.3: 3234 | version "1.0.3" 3235 | resolved "http://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04" 3236 | 3237 | setprototypeof@1.1.0: 3238 | version "1.1.0" 3239 | resolved "http://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" 3240 | 3241 | shebang-command@^1.2.0: 3242 | version "1.2.0" 3243 | resolved "http://registry.npm.taobao.org/shebang-command/download/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" 3244 | dependencies: 3245 | shebang-regex "^1.0.0" 3246 | 3247 | shebang-regex@^1.0.0: 3248 | version "1.0.0" 3249 | resolved "http://registry.npm.taobao.org/shebang-regex/download/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" 3250 | 3251 | signal-exit@^3.0.0, signal-exit@^3.0.2: 3252 | version "3.0.2" 3253 | resolved "http://registry.npm.taobao.org/signal-exit/download/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" 3254 | 3255 | slash@^1.0.0: 3256 | version "1.0.0" 3257 | resolved "http://registry.npm.taobao.org/slash/download/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" 3258 | 3259 | slice-ansi@1.0.0, slice-ansi@^1.0.0: 3260 | version "1.0.0" 3261 | resolved "http://registry.npm.taobao.org/slice-ansi/download/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d" 3262 | dependencies: 3263 | is-fullwidth-code-point "^2.0.0" 3264 | 3265 | slide@^1.1.5: 3266 | version "1.1.6" 3267 | resolved "http://registry.npm.taobao.org/slide/download/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" 3268 | 3269 | sntp@1.x.x: 3270 | version "1.0.9" 3271 | resolved "http://registry.npm.taobao.org/sntp/download/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" 3272 | dependencies: 3273 | hoek "2.x.x" 3274 | 3275 | sort-keys@^2.0.0: 3276 | version "2.0.0" 3277 | resolved "http://registry.npm.taobao.org/sort-keys/download/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128" 3278 | dependencies: 3279 | is-plain-obj "^1.0.0" 3280 | 3281 | source-map-support@^0.4.15: 3282 | version "0.4.18" 3283 | resolved "http://registry.npm.taobao.org/source-map-support/download/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" 3284 | dependencies: 3285 | source-map "^0.5.6" 3286 | 3287 | source-map-support@^0.5.0: 3288 | version "0.5.4" 3289 | resolved "http://registry.npm.taobao.org/source-map-support/download/source-map-support-0.5.4.tgz#54456efa89caa9270af7cd624cc2f123e51fbae8" 3290 | dependencies: 3291 | source-map "^0.6.0" 3292 | 3293 | source-map@^0.5.0, source-map@^0.5.6, source-map@^0.5.7: 3294 | version "0.5.7" 3295 | resolved "http://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" 3296 | 3297 | source-map@^0.6.0: 3298 | version "0.6.1" 3299 | resolved "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 3300 | 3301 | spdx-correct@^3.0.0: 3302 | version "3.0.0" 3303 | resolved "http://registry.npm.taobao.org/spdx-correct/download/spdx-correct-3.0.0.tgz#05a5b4d7153a195bc92c3c425b69f3b2a9524c82" 3304 | dependencies: 3305 | spdx-expression-parse "^3.0.0" 3306 | spdx-license-ids "^3.0.0" 3307 | 3308 | spdx-exceptions@^2.1.0: 3309 | version "2.1.0" 3310 | resolved "http://registry.npm.taobao.org/spdx-exceptions/download/spdx-exceptions-2.1.0.tgz#2c7ae61056c714a5b9b9b2b2af7d311ef5c78fe9" 3311 | 3312 | spdx-expression-parse@^3.0.0: 3313 | version "3.0.0" 3314 | resolved "http://registry.npm.taobao.org/spdx-expression-parse/download/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" 3315 | dependencies: 3316 | spdx-exceptions "^2.1.0" 3317 | spdx-license-ids "^3.0.0" 3318 | 3319 | spdx-license-ids@^3.0.0: 3320 | version "3.0.0" 3321 | resolved "http://registry.npm.taobao.org/spdx-license-ids/download/spdx-license-ids-3.0.0.tgz#7a7cd28470cc6d3a1cfe6d66886f6bc430d3ac87" 3322 | 3323 | sprintf-js@~1.0.2: 3324 | version "1.0.3" 3325 | resolved "http://registry.npm.taobao.org/sprintf-js/download/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" 3326 | 3327 | sshpk@^1.7.0: 3328 | version "1.14.1" 3329 | resolved "http://registry.npm.taobao.org/sshpk/download/sshpk-1.14.1.tgz#130f5975eddad963f1d56f92b9ac6c51fa9f83eb" 3330 | dependencies: 3331 | asn1 "~0.2.3" 3332 | assert-plus "^1.0.0" 3333 | dashdash "^1.12.0" 3334 | getpass "^0.1.1" 3335 | optionalDependencies: 3336 | bcrypt-pbkdf "^1.0.0" 3337 | ecc-jsbn "~0.1.1" 3338 | jsbn "~0.1.0" 3339 | tweetnacl "~0.14.0" 3340 | 3341 | stack-utils@^1.0.1: 3342 | version "1.0.1" 3343 | resolved "http://registry.npm.taobao.org/stack-utils/download/stack-utils-1.0.1.tgz#d4f33ab54e8e38778b0ca5cfd3b3afb12db68620" 3344 | 3345 | "statuses@>= 1.3.1 < 2", "statuses@>= 1.4.0 < 2", statuses@^1.2.0: 3346 | version "1.5.0" 3347 | resolved "http://registry.npm.taobao.org/statuses/download/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" 3348 | 3349 | statuses@~1.4.0: 3350 | version "1.4.0" 3351 | resolved "http://registry.npm.taobao.org/statuses/download/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087" 3352 | 3353 | string-width@^1.0.1, string-width@^1.0.2: 3354 | version "1.0.2" 3355 | resolved "http://registry.npm.taobao.org/string-width/download/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" 3356 | dependencies: 3357 | code-point-at "^1.0.0" 3358 | is-fullwidth-code-point "^1.0.0" 3359 | strip-ansi "^3.0.0" 3360 | 3361 | string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: 3362 | version "2.1.1" 3363 | resolved "http://registry.npm.taobao.org/string-width/download/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" 3364 | dependencies: 3365 | is-fullwidth-code-point "^2.0.0" 3366 | strip-ansi "^4.0.0" 3367 | 3368 | string_decoder@~1.1.1: 3369 | version "1.1.1" 3370 | resolved "http://registry.npm.taobao.org/string_decoder/download/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" 3371 | dependencies: 3372 | safe-buffer "~5.1.0" 3373 | 3374 | stringstream@~0.0.4: 3375 | version "0.0.5" 3376 | resolved "http://registry.npm.taobao.org/stringstream/download/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" 3377 | 3378 | strip-ansi@^3.0.0, strip-ansi@^3.0.1: 3379 | version "3.0.1" 3380 | resolved "http://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" 3381 | dependencies: 3382 | ansi-regex "^2.0.0" 3383 | 3384 | strip-ansi@^4.0.0: 3385 | version "4.0.0" 3386 | resolved "http://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" 3387 | dependencies: 3388 | ansi-regex "^3.0.0" 3389 | 3390 | strip-ansi@~0.1.0: 3391 | version "0.1.1" 3392 | resolved "http://registry.npm.taobao.org/strip-ansi/download/strip-ansi-0.1.1.tgz#39e8a98d044d150660abe4a6808acf70bb7bc991" 3393 | 3394 | strip-bom-buf@^1.0.0: 3395 | version "1.0.0" 3396 | resolved "http://registry.npm.taobao.org/strip-bom-buf/download/strip-bom-buf-1.0.0.tgz#1cb45aaf57530f4caf86c7f75179d2c9a51dd572" 3397 | dependencies: 3398 | is-utf8 "^0.2.1" 3399 | 3400 | strip-bom@^2.0.0: 3401 | version "2.0.0" 3402 | resolved "http://registry.npm.taobao.org/strip-bom/download/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" 3403 | dependencies: 3404 | is-utf8 "^0.2.0" 3405 | 3406 | strip-bom@^3.0.0: 3407 | version "3.0.0" 3408 | resolved "http://registry.npm.taobao.org/strip-bom/download/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" 3409 | 3410 | strip-eof@^1.0.0: 3411 | version "1.0.0" 3412 | resolved "http://registry.npm.taobao.org/strip-eof/download/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" 3413 | 3414 | strip-indent@^1.0.1: 3415 | version "1.0.1" 3416 | resolved "http://registry.npm.taobao.org/strip-indent/download/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" 3417 | dependencies: 3418 | get-stdin "^4.0.1" 3419 | 3420 | strip-json-comments@~2.0.1: 3421 | version "2.0.1" 3422 | resolved "http://registry.npm.taobao.org/strip-json-comments/download/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" 3423 | 3424 | supports-color@4.4.0: 3425 | version "4.4.0" 3426 | resolved "http://registry.npm.taobao.org/supports-color/download/supports-color-4.4.0.tgz#883f7ddabc165142b2a61427f3352ded195d1a3e" 3427 | dependencies: 3428 | has-flag "^2.0.0" 3429 | 3430 | supports-color@^2.0.0: 3431 | version "2.0.0" 3432 | resolved "http://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" 3433 | 3434 | supports-color@^5.0.0, supports-color@^5.1.0, supports-color@^5.3.0: 3435 | version "5.3.0" 3436 | resolved "http://registry.npm.taobao.org/supports-color/download/supports-color-5.3.0.tgz#5b24ac15db80fa927cf5227a4a33fd3c4c7676c0" 3437 | dependencies: 3438 | has-flag "^3.0.0" 3439 | 3440 | symbol-observable@^0.2.2: 3441 | version "0.2.4" 3442 | resolved "http://registry.npm.taobao.org/symbol-observable/download/symbol-observable-0.2.4.tgz#95a83db26186d6af7e7a18dbd9760a2f86d08f40" 3443 | 3444 | symbol-observable@^1.0.4, symbol-observable@^1.1.0: 3445 | version "1.2.0" 3446 | resolved "http://registry.npm.taobao.org/symbol-observable/download/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" 3447 | 3448 | table@4.0.2: 3449 | version "4.0.2" 3450 | resolved "https://registry.yarnpkg.com/table/-/table-4.0.2.tgz#a33447375391e766ad34d3486e6e2aedc84d2e36" 3451 | dependencies: 3452 | ajv "^5.2.3" 3453 | ajv-keywords "^2.1.0" 3454 | chalk "^2.1.0" 3455 | lodash "^4.17.4" 3456 | slice-ansi "1.0.0" 3457 | string-width "^2.1.1" 3458 | 3459 | tar-pack@^3.4.0: 3460 | version "3.4.1" 3461 | resolved "http://registry.npm.taobao.org/tar-pack/download/tar-pack-3.4.1.tgz#e1dbc03a9b9d3ba07e896ad027317eb679a10a1f" 3462 | dependencies: 3463 | debug "^2.2.0" 3464 | fstream "^1.0.10" 3465 | fstream-ignore "^1.0.5" 3466 | once "^1.3.3" 3467 | readable-stream "^2.1.4" 3468 | rimraf "^2.5.1" 3469 | tar "^2.2.1" 3470 | uid-number "^0.0.6" 3471 | 3472 | tar@^2.2.1: 3473 | version "2.2.1" 3474 | resolved "http://registry.npm.taobao.org/tar/download/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" 3475 | dependencies: 3476 | block-stream "*" 3477 | fstream "^1.0.2" 3478 | inherits "2" 3479 | 3480 | term-size@^1.2.0: 3481 | version "1.2.0" 3482 | resolved "http://registry.npm.taobao.org/term-size/download/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" 3483 | dependencies: 3484 | execa "^0.7.0" 3485 | 3486 | text-table@^0.2.0, text-table@~0.2.0: 3487 | version "0.2.0" 3488 | resolved "http://registry.npm.taobao.org/text-table/download/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" 3489 | 3490 | thenify-all@^1.0.0: 3491 | version "1.6.0" 3492 | resolved "http://registry.npm.taobao.org/thenify-all/download/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" 3493 | dependencies: 3494 | thenify ">= 3.1.0 < 4" 3495 | 3496 | "thenify@>= 3.1.0 < 4": 3497 | version "3.3.0" 3498 | resolved "http://registry.npm.taobao.org/thenify/download/thenify-3.3.0.tgz#e69e38a1babe969b0108207978b9f62b88604839" 3499 | dependencies: 3500 | any-promise "^1.0.0" 3501 | 3502 | through2@^2.0.0: 3503 | version "2.0.3" 3504 | resolved "http://registry.npm.taobao.org/through2/download/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" 3505 | dependencies: 3506 | readable-stream "^2.1.5" 3507 | xtend "~4.0.1" 3508 | 3509 | through@^2.3.6: 3510 | version "2.3.8" 3511 | resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" 3512 | 3513 | time-require@^0.1.2: 3514 | version "0.1.2" 3515 | resolved "http://registry.npm.taobao.org/time-require/download/time-require-0.1.2.tgz#f9e12cb370fc2605e11404582ba54ef5ca2b2d98" 3516 | dependencies: 3517 | chalk "^0.4.0" 3518 | date-time "^0.1.1" 3519 | pretty-ms "^0.2.1" 3520 | text-table "^0.2.0" 3521 | 3522 | time-zone@^1.0.0: 3523 | version "1.0.0" 3524 | resolved "http://registry.npm.taobao.org/time-zone/download/time-zone-1.0.0.tgz#99c5bf55958966af6d06d83bdf3800dc82faec5d" 3525 | 3526 | timed-out@^4.0.0: 3527 | version "4.0.1" 3528 | resolved "http://registry.npm.taobao.org/timed-out/download/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" 3529 | 3530 | tmp@^0.0.33: 3531 | version "0.0.33" 3532 | resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" 3533 | dependencies: 3534 | os-tmpdir "~1.0.2" 3535 | 3536 | to-fast-properties@^1.0.3: 3537 | version "1.0.3" 3538 | resolved "http://registry.npm.taobao.org/to-fast-properties/download/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" 3539 | 3540 | tough-cookie@~2.3.0: 3541 | version "2.3.4" 3542 | resolved "http://registry.npm.taobao.org/tough-cookie/download/tough-cookie-2.3.4.tgz#ec60cee38ac675063ffc97a5c18970578ee83655" 3543 | dependencies: 3544 | punycode "^1.4.1" 3545 | 3546 | trim-newlines@^1.0.0: 3547 | version "1.0.0" 3548 | resolved "http://registry.npm.taobao.org/trim-newlines/download/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" 3549 | 3550 | trim-off-newlines@^1.0.1: 3551 | version "1.0.1" 3552 | resolved "http://registry.npm.taobao.org/trim-off-newlines/download/trim-off-newlines-1.0.1.tgz#9f9ba9d9efa8764c387698bcbfeb2c848f11adb3" 3553 | 3554 | trim-right@^1.0.1: 3555 | version "1.0.1" 3556 | resolved "http://registry.npm.taobao.org/trim-right/download/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" 3557 | 3558 | tunnel-agent@^0.6.0: 3559 | version "0.6.0" 3560 | resolved "http://registry.npm.taobao.org/tunnel-agent/download/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" 3561 | dependencies: 3562 | safe-buffer "^5.0.1" 3563 | 3564 | tweetnacl@^0.14.3, tweetnacl@~0.14.0: 3565 | version "0.14.5" 3566 | resolved "http://registry.npm.taobao.org/tweetnacl/download/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" 3567 | 3568 | type-check@~0.3.2: 3569 | version "0.3.2" 3570 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" 3571 | dependencies: 3572 | prelude-ls "~1.1.2" 3573 | 3574 | type-detect@^4.0.0: 3575 | version "4.0.8" 3576 | resolved "http://registry.npm.taobao.org/type-detect/download/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" 3577 | 3578 | type-is@^1.5.5, type-is@~1.6.15, type-is@~1.6.16: 3579 | version "1.6.16" 3580 | resolved "http://registry.npm.taobao.org/type-is/download/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194" 3581 | dependencies: 3582 | media-typer "0.3.0" 3583 | mime-types "~2.1.18" 3584 | 3585 | typedarray@^0.0.6: 3586 | version "0.0.6" 3587 | resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" 3588 | 3589 | uid-number@^0.0.6: 3590 | version "0.0.6" 3591 | resolved "http://registry.npm.taobao.org/uid-number/download/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" 3592 | 3593 | uid2@0.0.3: 3594 | version "0.0.3" 3595 | resolved "http://registry.npm.taobao.org/uid2/download/uid2-0.0.3.tgz#483126e11774df2f71b8b639dcd799c376162b82" 3596 | 3597 | underscore@~1.4.4: 3598 | version "1.4.4" 3599 | resolved "http://registry.npm.taobao.org/underscore/download/underscore-1.4.4.tgz#61a6a32010622afa07963bf325203cf12239d604" 3600 | 3601 | unique-string@^1.0.0: 3602 | version "1.0.0" 3603 | resolved "http://registry.npm.taobao.org/unique-string/download/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" 3604 | dependencies: 3605 | crypto-random-string "^1.0.0" 3606 | 3607 | unique-temp-dir@^1.0.0: 3608 | version "1.0.0" 3609 | resolved "http://registry.npm.taobao.org/unique-temp-dir/download/unique-temp-dir-1.0.0.tgz#6dce95b2681ca003eebfb304a415f9cbabcc5385" 3610 | dependencies: 3611 | mkdirp "^0.5.1" 3612 | os-tmpdir "^1.0.1" 3613 | uid2 "0.0.3" 3614 | 3615 | unpipe@1.0.0, unpipe@~1.0.0: 3616 | version "1.0.0" 3617 | resolved "http://registry.npm.taobao.org/unpipe/download/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" 3618 | 3619 | unzip-response@^2.0.1: 3620 | version "2.0.1" 3621 | resolved "http://registry.npm.taobao.org/unzip-response/download/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" 3622 | 3623 | update-notifier@^2.3.0: 3624 | version "2.5.0" 3625 | resolved "http://registry.npm.taobao.org/update-notifier/download/update-notifier-2.5.0.tgz#d0744593e13f161e406acb1d9408b72cad08aff6" 3626 | dependencies: 3627 | boxen "^1.2.1" 3628 | chalk "^2.0.1" 3629 | configstore "^3.0.0" 3630 | import-lazy "^2.1.0" 3631 | is-ci "^1.0.10" 3632 | is-installed-globally "^0.1.0" 3633 | is-npm "^1.0.0" 3634 | latest-version "^3.0.0" 3635 | semver-diff "^2.0.0" 3636 | xdg-basedir "^3.0.0" 3637 | 3638 | urijs@^1.19.0: 3639 | version "1.19.1" 3640 | resolved "http://registry.npm.taobao.org/urijs/download/urijs-1.19.1.tgz#5b0ff530c0cbde8386f6342235ba5ca6e995d25a" 3641 | 3642 | url-parse-lax@^1.0.0: 3643 | version "1.0.0" 3644 | resolved "http://registry.npm.taobao.org/url-parse-lax/download/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" 3645 | dependencies: 3646 | prepend-http "^1.0.1" 3647 | 3648 | util-deprecate@~1.0.1: 3649 | version "1.0.2" 3650 | resolved "http://registry.npm.taobao.org/util-deprecate/download/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 3651 | 3652 | utility@^1.12.0, utility@^1.13.1: 3653 | version "1.13.1" 3654 | resolved "http://registry.npm.taobao.org/utility/download/utility-1.13.1.tgz#9d72e145e49e4c5a21f2c307b0baf575235023f4" 3655 | dependencies: 3656 | copy-to "~2.0.1" 3657 | escape-html "~1.0.3" 3658 | mkdirp "~0.5.1" 3659 | mz "~2.7.0" 3660 | 3661 | utils-merge@1.0.1: 3662 | version "1.0.1" 3663 | resolved "http://registry.npm.taobao.org/utils-merge/download/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" 3664 | 3665 | uuid@^3.0.0: 3666 | version "3.2.1" 3667 | resolved "http://registry.npm.taobao.org/uuid/download/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14" 3668 | 3669 | validate-npm-package-license@^3.0.1: 3670 | version "3.0.3" 3671 | resolved "http://registry.npm.taobao.org/validate-npm-package-license/download/validate-npm-package-license-3.0.3.tgz#81643bcbef1bdfecd4623793dc4648948ba98338" 3672 | dependencies: 3673 | spdx-correct "^3.0.0" 3674 | spdx-expression-parse "^3.0.0" 3675 | 3676 | vary@^1.0.0, vary@~1.1.2: 3677 | version "1.1.2" 3678 | resolved "http://registry.npm.taobao.org/vary/download/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" 3679 | 3680 | verror@1.10.0: 3681 | version "1.10.0" 3682 | resolved "http://registry.npm.taobao.org/verror/download/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" 3683 | dependencies: 3684 | assert-plus "^1.0.0" 3685 | core-util-is "1.0.2" 3686 | extsprintf "^1.2.0" 3687 | 3688 | well-known-symbols@^1.0.0: 3689 | version "1.0.0" 3690 | resolved "http://registry.npm.taobao.org/well-known-symbols/download/well-known-symbols-1.0.0.tgz#73c78ae81a7726a8fa598e2880801c8b16225518" 3691 | 3692 | which@^1.2.9: 3693 | version "1.3.0" 3694 | resolved "http://registry.npm.taobao.org/which/download/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a" 3695 | dependencies: 3696 | isexe "^2.0.0" 3697 | 3698 | wide-align@^1.1.0: 3699 | version "1.1.2" 3700 | resolved "http://registry.npm.taobao.org/wide-align/download/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710" 3701 | dependencies: 3702 | string-width "^1.0.2" 3703 | 3704 | widest-line@^2.0.0: 3705 | version "2.0.0" 3706 | resolved "http://registry.npm.taobao.org/widest-line/download/widest-line-2.0.0.tgz#0142a4e8a243f8882c0233aa0e0281aa76152273" 3707 | dependencies: 3708 | string-width "^2.1.1" 3709 | 3710 | wordwrap@~1.0.0: 3711 | version "1.0.0" 3712 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" 3713 | 3714 | wrappy@1: 3715 | version "1.0.2" 3716 | resolved "http://registry.npm.taobao.org/wrappy/download/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 3717 | 3718 | write-file-atomic@^1.1.4: 3719 | version "1.3.4" 3720 | resolved "http://registry.npm.taobao.org/write-file-atomic/download/write-file-atomic-1.3.4.tgz#f807a4f0b1d9e913ae7a48112e6cc3af1991b45f" 3721 | dependencies: 3722 | graceful-fs "^4.1.11" 3723 | imurmurhash "^0.1.4" 3724 | slide "^1.1.5" 3725 | 3726 | write-file-atomic@^2.0.0: 3727 | version "2.3.0" 3728 | resolved "http://registry.npm.taobao.org/write-file-atomic/download/write-file-atomic-2.3.0.tgz#1ff61575c2e2a4e8e510d6fa4e243cce183999ab" 3729 | dependencies: 3730 | graceful-fs "^4.1.11" 3731 | imurmurhash "^0.1.4" 3732 | signal-exit "^3.0.2" 3733 | 3734 | write-json-file@^2.2.0: 3735 | version "2.3.0" 3736 | resolved "http://registry.npm.taobao.org/write-json-file/download/write-json-file-2.3.0.tgz#2b64c8a33004d54b8698c76d585a77ceb61da32f" 3737 | dependencies: 3738 | detect-indent "^5.0.0" 3739 | graceful-fs "^4.1.2" 3740 | make-dir "^1.0.0" 3741 | pify "^3.0.0" 3742 | sort-keys "^2.0.0" 3743 | write-file-atomic "^2.0.0" 3744 | 3745 | write-pkg@^3.1.0: 3746 | version "3.1.0" 3747 | resolved "http://registry.npm.taobao.org/write-pkg/download/write-pkg-3.1.0.tgz#030a9994cc9993d25b4e75a9f1a1923607291ce9" 3748 | dependencies: 3749 | sort-keys "^2.0.0" 3750 | write-json-file "^2.2.0" 3751 | 3752 | write@^0.2.1: 3753 | version "0.2.1" 3754 | resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" 3755 | dependencies: 3756 | mkdirp "^0.5.1" 3757 | 3758 | xdg-basedir@^3.0.0: 3759 | version "3.0.0" 3760 | resolved "http://registry.npm.taobao.org/xdg-basedir/download/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" 3761 | 3762 | xtend@^4.0.0, xtend@~4.0.1: 3763 | version "4.0.1" 3764 | resolved "http://registry.npm.taobao.org/xtend/download/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" 3765 | 3766 | yallist@^2.1.2: 3767 | version "2.1.2" 3768 | resolved "http://registry.npm.taobao.org/yallist/download/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" 3769 | --------------------------------------------------------------------------------