Paul 5 lat temu
rodzic
commit
76d47744dd
4 zmienionych plików z 393 dodań i 42 usunięć
  1. 14
    0
      .eslintrc.js
  2. 4
    0
      package.json
  3. 34
    26
      src/client.ts
  4. 341
    16
      yarn.lock

+ 14
- 0
.eslintrc.js Wyświetl plik

@@ -0,0 +1,14 @@
1
+module.exports = {
2
+    "parser": "@typescript-eslint/parser",
3
+    "plugins": ["@typescript-eslint"],
4
+    "env": {
5
+        "browser": true,
6
+        "es6": true
7
+    },
8
+    "extends": [
9
+      "plugin:@typescript-eslint/recommended",
10
+      "prettier",
11
+      "prettier/@typescript-eslint"
12
+    ],
13
+    "rules": {}
14
+};

+ 4
- 0
package.json Wyświetl plik

@@ -32,9 +32,13 @@
32 32
     "@types/crypto-js": "^3.1.43",
33 33
     "@types/jest": "^24.0.11",
34 34
     "@types/node-int64": "^0.4.29",
35
+    "@typescript-eslint/eslint-plugin": "^1.7.0",
36
+    "@typescript-eslint/parser": "^1.7.0",
35 37
     "babel-core": "^6.26.3",
36 38
     "babel-loader": "^8.0.5",
37 39
     "babel-preset-env": "^1.7.0",
40
+    "eslint": "^5.16.0",
41
+    "eslint-config-prettier": "^4.2.0",
38 42
     "html-webpack-plugin": "^3.2.0",
39 43
     "jest": "^24.5.0",
40 44
     "ts-jest": "^24.0.0",

+ 34
- 26
src/client.ts Wyświetl plik

@@ -21,7 +21,7 @@ class Client {
21 21
    * @param url websocket链接地址
22 22
    * @param readyStateCallback 链接状态回调,可以处理onOpen、onClose、onError
23 23
    */
24
-  constructor(url: string, readyStateCallback: ReadyStateCallback) {
24
+  public constructor(url: string, readyStateCallback: ReadyStateCallback) {
25 25
     this.listeners = new Map<number, (data: string) => void>();
26 26
     this.requestHeader = '';
27 27
     this.requestHeader = '';
@@ -37,7 +37,7 @@ class Client {
37 37
    * @param param 请求参数,比如{"hello":"world"}
38 38
    * @param requestCallback 请求状态回调
39 39
    */
40
-  public ping(param: any, requestCallback: RequestCallback) {
40
+  public ping(param: any, requestCallback: RequestCallback): void {
41 41
     if (this.socket.readyState !== this.socket.OPEN) {
42 42
       throw new Error('asyncSend: connection refuse');
43 43
     }
@@ -71,7 +71,11 @@ class Client {
71 71
    * @param param 请求参数,比如{"hello":"world"}
72 72
    * @param callback 请求状态回调处理
73 73
    */
74
-  public asyncSend(operator: string, param: any, callback: RequestCallback) {
74
+  public asyncSend(
75
+    operator: string,
76
+    param: any,
77
+    callback: RequestCallback,
78
+  ): void {
75 79
     console.info('websocket send data', operator, this.requestHeader, param);
76 80
 
77 81
     if (this.socket.readyState !== this.socket.OPEN) {
@@ -82,19 +86,22 @@ class Client {
82 86
 
83 87
     const sequence = new Date().getTime();
84 88
     const listener = Utils.crc32(operator) + sequence;
85
-    this.listeners.set(listener, (data: string) => {
86
-      const code = this.getResponseProperty('code');
87
-      if (code !== '') {
88
-        const message = this.getResponseProperty('message');
89
-        callback.onError(Number(code), message);
90
-      } else {
91
-        callback.onSuccess(data);
92
-      }
89
+    this.listeners.set(
90
+      listener,
91
+      (data: string): void => {
92
+        const code = this.getResponseProperty('code');
93
+        if (code !== '') {
94
+          const message = this.getResponseProperty('message');
95
+          callback.onError(Number(code), message);
96
+        } else {
97
+          callback.onSuccess(data);
98
+        }
93 99
 
94
-      callback.onEnd();
100
+        callback.onEnd();
95 101
 
96
-      delete this.listeners[listener];
97
-    });
102
+        delete this.listeners[listener];
103
+      },
104
+    );
98 105
 
99 106
     const p = new Packet();
100 107
     this.send(
@@ -117,7 +124,7 @@ class Client {
117 124
     operator: string,
118 125
     param: any,
119 126
     callback: RequestCallback,
120
-  ) {
127
+  ): Promise<void> {
121 128
     await this.asyncSend(operator, param, callback);
122 129
   }
123 130
 
@@ -170,7 +177,7 @@ class Client {
170 177
    * @param key 属性名
171 178
    * @param value 属性值
172 179
    */
173
-  public setRequestProperty(key: string, value: string) {
180
+  public setRequestProperty(key: string, value: string): void {
174 181
     let v = this.getRequestProperty(key);
175 182
 
176 183
     this.requestHeader = this.requestHeader.replace(key + '=' + v + ';', '');
@@ -200,7 +207,7 @@ class Client {
200 207
    * @param key 属性名
201 208
    * @param value 属性值
202 209
    */
203
-  public setResponseProperty(key: string, value: string) {
210
+  public setResponseProperty(key: string, value: string): void {
204 211
     let v = this.getResponseProperty(key);
205 212
 
206 213
     this.responseHeader = this.responseHeader.replace(key + '=' + v + ';', '');
@@ -234,29 +241,29 @@ class Client {
234 241
 
235 242
     ws.binaryType = 'blob';
236 243
 
237
-    ws.onopen = (ev) => {
244
+    ws.onopen = (ev): void => {
238 245
       this.reconnectTimes = 0;
239 246
 
240 247
       readyStateCallback.onOpen(ev);
241 248
     };
242 249
 
243
-    ws.onclose = (ev) => {
250
+    ws.onclose = (ev): void => {
244 251
       this.reconnect();
245 252
 
246 253
       readyStateCallback.onClose(ev);
247 254
     };
248 255
 
249
-    ws.onerror = (ev) => {
256
+    ws.onerror = (ev): void => {
250 257
       this.reconnect();
251 258
 
252 259
       readyStateCallback.onError(ev);
253 260
     };
254 261
 
255
-    ws.onmessage = (ev) => {
262
+    ws.onmessage = (ev): void => {
256 263
       if (ev.data instanceof Blob) {
257 264
         let reader = new FileReader();
258 265
         reader.readAsArrayBuffer(ev.data);
259
-        reader.onload = () => {
266
+        reader.onload = (): void => {
260 267
           try {
261 268
             let packet = new Packet().unPack(reader.result);
262 269
             let packetLength = packet.headerLength + packet.bodyLength + 20;
@@ -271,7 +278,8 @@ class Client {
271 278
               }
272 279
 
273 280
               this.responseHeader = packet.header;
274
-              (<(data: string) => void>this.listeners.get(operator))(
281
+
282
+              (this.listeners.get(operator) as (data: string) => void)(
275 283
                 JSON.parse(packet.body),
276 284
               );
277 285
             }
@@ -294,12 +302,12 @@ class Client {
294 302
   /**
295 303
    * 断线重连
296 304
    */
297
-  private reconnect() {
305
+  private reconnect(): void {
298 306
     if (!this.reconnectLock) {
299 307
       this.reconnectLock = true;
300 308
       console.info('websocket reconnect in ' + this.reconnectTimes + 's');
301 309
       // 尝试重连
302
-      setTimeout(() => {
310
+      setTimeout((): void => {
303 311
         this.reconnectTimes++;
304 312
         this.socket = this.connect();
305 313
         this.reconnectLock = false;
@@ -311,7 +319,7 @@ class Client {
311 319
    * 向服务端发送数据请求
312 320
    * @param data 向服务端传送的数据
313 321
    */
314
-  private send(data: ArrayBuffer) {
322
+  private send(data: ArrayBuffer): void {
315 323
     if (this.socket.readyState !== this.socket.OPEN) {
316 324
       console.error('WebSocket is already in CLOSING or CLOSED state.');
317 325
       return;

+ 341
- 16
yarn.lock Wyświetl plik

@@ -911,6 +911,32 @@
911 911
   version "12.0.10"
912 912
   resolved "http://registry.npm.taobao.org/@types/yargs/download/@types/yargs-12.0.10.tgz#17a8ec65cd8e88f51b418ceb271af18d3137df67"
913 913
 
914
+"@typescript-eslint/eslint-plugin@^1.7.0":
915
+  version "1.7.0"
916
+  resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-1.7.0.tgz#570e45dc84fb97852e363f1e00f47e604a0b8bcc"
917
+  dependencies:
918
+    "@typescript-eslint/parser" "1.7.0"
919
+    "@typescript-eslint/typescript-estree" "1.7.0"
920
+    eslint-utils "^1.3.1"
921
+    regexpp "^2.0.1"
922
+    requireindex "^1.2.0"
923
+    tsutils "^3.7.0"
924
+
925
+"@typescript-eslint/parser@1.7.0", "@typescript-eslint/parser@^1.7.0":
926
+  version "1.7.0"
927
+  resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-1.7.0.tgz#c3ea0d158349ceefbb6da95b5b09924b75357851"
928
+  dependencies:
929
+    "@typescript-eslint/typescript-estree" "1.7.0"
930
+    eslint-scope "^4.0.0"
931
+    eslint-visitor-keys "^1.0.0"
932
+
933
+"@typescript-eslint/typescript-estree@1.7.0":
934
+  version "1.7.0"
935
+  resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-1.7.0.tgz#59ec02f5371964da1cc679dba7b878a417bc8c60"
936
+  dependencies:
937
+    lodash.unescape "4.0.1"
938
+    semver "5.5.0"
939
+
914 940
 "@webassemblyjs/ast@1.8.5":
915 941
   version "1.8.5"
916 942
   resolved "https://registry.npm.taobao.org/@webassemblyjs/ast/download/@webassemblyjs/ast-1.8.5.tgz#51b1c5fe6576a34953bf4b253df9f0d490d9e359"
@@ -1073,6 +1099,10 @@ acorn-globals@^4.1.0:
1073 1099
     acorn "^6.0.1"
1074 1100
     acorn-walk "^6.0.1"
1075 1101
 
1102
+acorn-jsx@^5.0.0:
1103
+  version "5.0.1"
1104
+  resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.0.1.tgz#32a064fd925429216a09b141102bfdd185fae40e"
1105
+
1076 1106
 acorn-walk@^6.0.1:
1077 1107
   version "6.1.1"
1078 1108
   resolved "http://registry.npm.taobao.org/acorn-walk/download/acorn-walk-6.1.1.tgz#d363b66f5fac5f018ff9c3a1e7b6f8e310cc3913"
@@ -1081,7 +1111,7 @@ acorn@^5.5.3:
1081 1111
   version "5.7.3"
1082 1112
   resolved "http://registry.npm.taobao.org/acorn/download/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279"
1083 1113
 
1084
-acorn@^6.0.1, acorn@^6.0.5:
1114
+acorn@^6.0.1, acorn@^6.0.5, acorn@^6.0.7:
1085 1115
   version "6.1.1"
1086 1116
   resolved "http://registry.npm.taobao.org/acorn/download/acorn-6.1.1.tgz#7d25ae05bb8ad1f9b699108e1094ecd7884adc1f"
1087 1117
 
@@ -1093,7 +1123,7 @@ ajv-keywords@^3.1.0:
1093 1123
   version "3.4.0"
1094 1124
   resolved "https://registry.npm.taobao.org/ajv-keywords/download/ajv-keywords-3.4.0.tgz#4b831e7b531415a7cc518cd404e73f6193c6349d"
1095 1125
 
1096
-ajv@^6.1.0, ajv@^6.5.5:
1126
+ajv@^6.1.0, ajv@^6.5.5, ajv@^6.9.1:
1097 1127
   version "6.10.0"
1098 1128
   resolved "http://registry.npm.taobao.org/ajv/download/ajv-6.10.0.tgz#90d0d54439da587cd7e843bfb7045f50bd22bdf1"
1099 1129
   dependencies:
@@ -1106,7 +1136,7 @@ ansi-colors@^3.0.0:
1106 1136
   version "3.2.4"
1107 1137
   resolved "https://registry.npm.taobao.org/ansi-colors/download/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf"
1108 1138
 
1109
-ansi-escapes@^3.0.0:
1139
+ansi-escapes@^3.0.0, ansi-escapes@^3.2.0:
1110 1140
   version "3.2.0"
1111 1141
   resolved "http://registry.npm.taobao.org/ansi-escapes/download/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b"
1112 1142
 
@@ -2074,7 +2104,7 @@ chalk@^1.1.3:
2074 2104
     strip-ansi "^3.0.0"
2075 2105
     supports-color "^2.0.0"
2076 2106
 
2077
-chalk@^2.0.0, chalk@^2.0.1, chalk@^2.4.1, chalk@^2.4.2:
2107
+chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.4.1, chalk@^2.4.2:
2078 2108
   version "2.4.2"
2079 2109
   resolved "http://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
2080 2110
   dependencies:
@@ -2082,6 +2112,10 @@ chalk@^2.0.0, chalk@^2.0.1, chalk@^2.4.1, chalk@^2.4.2:
2082 2112
     escape-string-regexp "^1.0.5"
2083 2113
     supports-color "^5.3.0"
2084 2114
 
2115
+chardet@^0.7.0:
2116
+  version "0.7.0"
2117
+  resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e"
2118
+
2085 2119
 chokidar@^2.0.2, chokidar@^2.0.4, chokidar@^2.1.5:
2086 2120
   version "2.1.5"
2087 2121
   resolved "https://registry.npm.taobao.org/chokidar/download/chokidar-2.1.5.tgz#0ae8434d962281a5f56c72869e79cb6d9d86ad4d"
@@ -2136,6 +2170,16 @@ clean-css@4.2.x:
2136 2170
   dependencies:
2137 2171
     source-map "~0.6.0"
2138 2172
 
2173
+cli-cursor@^2.1.0:
2174
+  version "2.1.0"
2175
+  resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5"
2176
+  dependencies:
2177
+    restore-cursor "^2.0.0"
2178
+
2179
+cli-width@^2.0.0:
2180
+  version "2.2.0"
2181
+  resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639"
2182
+
2139 2183
 cliui@^4.0.0:
2140 2184
   version "4.1.0"
2141 2185
   resolved "http://registry.npm.taobao.org/cliui/download/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49"
@@ -2425,7 +2469,7 @@ debug@^3.2.5, debug@^3.2.6:
2425 2469
   dependencies:
2426 2470
     ms "^2.1.1"
2427 2471
 
2428
-debug@^4.1.0, debug@^4.1.1:
2472
+debug@^4.0.1, debug@^4.1.0, debug@^4.1.1:
2429 2473
   version "4.1.1"
2430 2474
   resolved "http://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791"
2431 2475
   dependencies:
@@ -2575,6 +2619,12 @@ dns-txt@^2.0.2:
2575 2619
   dependencies:
2576 2620
     buffer-indexof "^1.0.0"
2577 2621
 
2622
+doctrine@^3.0.0:
2623
+  version "3.0.0"
2624
+  resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961"
2625
+  dependencies:
2626
+    esutils "^2.0.2"
2627
+
2578 2628
 dom-converter@^0.2:
2579 2629
   version "0.2.0"
2580 2630
   resolved "https://registry.npm.taobao.org/dom-converter/download/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768"
@@ -2658,6 +2708,10 @@ elliptic@^6.0.0:
2658 2708
     minimalistic-assert "^1.0.0"
2659 2709
     minimalistic-crypto-utils "^1.0.0"
2660 2710
 
2711
+emoji-regex@^7.0.1:
2712
+  version "7.0.3"
2713
+  resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156"
2714
+
2661 2715
 emojis-list@^2.0.0:
2662 2716
   version "2.1.0"
2663 2717
   resolved "https://registry.npm.taobao.org/emojis-list/download/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389"
@@ -2734,13 +2788,76 @@ escodegen@^1.9.1:
2734 2788
   optionalDependencies:
2735 2789
     source-map "~0.6.1"
2736 2790
 
2737
-eslint-scope@^4.0.0:
2791
+eslint-config-prettier@^4.2.0:
2792
+  version "4.2.0"
2793
+  resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-4.2.0.tgz#70b946b629cd0e3e98233fd9ecde4cb9778de96c"
2794
+  dependencies:
2795
+    get-stdin "^6.0.0"
2796
+
2797
+eslint-scope@^4.0.0, eslint-scope@^4.0.3:
2738 2798
   version "4.0.3"
2739 2799
   resolved "https://registry.npm.taobao.org/eslint-scope/download/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848"
2740 2800
   dependencies:
2741 2801
     esrecurse "^4.1.0"
2742 2802
     estraverse "^4.1.1"
2743 2803
 
2804
+eslint-utils@^1.3.1:
2805
+  version "1.3.1"
2806
+  resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.3.1.tgz#9a851ba89ee7c460346f97cf8939c7298827e512"
2807
+
2808
+eslint-visitor-keys@^1.0.0:
2809
+  version "1.0.0"
2810
+  resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d"
2811
+
2812
+eslint@^5.16.0:
2813
+  version "5.16.0"
2814
+  resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.16.0.tgz#a1e3ac1aae4a3fbd8296fcf8f7ab7314cbb6abea"
2815
+  dependencies:
2816
+    "@babel/code-frame" "^7.0.0"
2817
+    ajv "^6.9.1"
2818
+    chalk "^2.1.0"
2819
+    cross-spawn "^6.0.5"
2820
+    debug "^4.0.1"
2821
+    doctrine "^3.0.0"
2822
+    eslint-scope "^4.0.3"
2823
+    eslint-utils "^1.3.1"
2824
+    eslint-visitor-keys "^1.0.0"
2825
+    espree "^5.0.1"
2826
+    esquery "^1.0.1"
2827
+    esutils "^2.0.2"
2828
+    file-entry-cache "^5.0.1"
2829
+    functional-red-black-tree "^1.0.1"
2830
+    glob "^7.1.2"
2831
+    globals "^11.7.0"
2832
+    ignore "^4.0.6"
2833
+    import-fresh "^3.0.0"
2834
+    imurmurhash "^0.1.4"
2835
+    inquirer "^6.2.2"
2836
+    js-yaml "^3.13.0"
2837
+    json-stable-stringify-without-jsonify "^1.0.1"
2838
+    levn "^0.3.0"
2839
+    lodash "^4.17.11"
2840
+    minimatch "^3.0.4"
2841
+    mkdirp "^0.5.1"
2842
+    natural-compare "^1.4.0"
2843
+    optionator "^0.8.2"
2844
+    path-is-inside "^1.0.2"
2845
+    progress "^2.0.0"
2846
+    regexpp "^2.0.1"
2847
+    semver "^5.5.1"
2848
+    strip-ansi "^4.0.0"
2849
+    strip-json-comments "^2.0.1"
2850
+    table "^5.2.3"
2851
+    text-table "^0.2.0"
2852
+
2853
+espree@^5.0.1:
2854
+  version "5.0.1"
2855
+  resolved "https://registry.yarnpkg.com/espree/-/espree-5.0.1.tgz#5d6526fa4fc7f0788a5cf75b15f30323e2f81f7a"
2856
+  dependencies:
2857
+    acorn "^6.0.7"
2858
+    acorn-jsx "^5.0.0"
2859
+    eslint-visitor-keys "^1.0.0"
2860
+
2744 2861
 esprima@^3.1.3:
2745 2862
   version "3.1.3"
2746 2863
   resolved "http://registry.npm.taobao.org/esprima/download/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633"
@@ -2749,13 +2866,19 @@ esprima@^4.0.0:
2749 2866
   version "4.0.1"
2750 2867
   resolved "http://registry.npm.taobao.org/esprima/download/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
2751 2868
 
2869
+esquery@^1.0.1:
2870
+  version "1.0.1"
2871
+  resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708"
2872
+  dependencies:
2873
+    estraverse "^4.0.0"
2874
+
2752 2875
 esrecurse@^4.1.0:
2753 2876
   version "4.2.1"
2754 2877
   resolved "https://registry.npm.taobao.org/esrecurse/download/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf"
2755 2878
   dependencies:
2756 2879
     estraverse "^4.1.0"
2757 2880
 
2758
-estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0:
2881
+estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0:
2759 2882
   version "4.2.0"
2760 2883
   resolved "http://registry.npm.taobao.org/estraverse/download/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13"
2761 2884
 
@@ -2889,6 +3012,14 @@ extend@~3.0.2:
2889 3012
   version "3.0.2"
2890 3013
   resolved "http://registry.npm.taobao.org/extend/download/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
2891 3014
 
3015
+external-editor@^3.0.3:
3016
+  version "3.0.3"
3017
+  resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.0.3.tgz#5866db29a97826dbe4bf3afd24070ead9ea43a27"
3018
+  dependencies:
3019
+    chardet "^0.7.0"
3020
+    iconv-lite "^0.4.24"
3021
+    tmp "^0.0.33"
3022
+
2892 3023
 extglob@^2.0.4:
2893 3024
   version "2.0.4"
2894 3025
   resolved "http://registry.npm.taobao.org/extglob/download/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543"
@@ -2944,6 +3075,18 @@ figgy-pudding@^3.5.1:
2944 3075
   version "3.5.1"
2945 3076
   resolved "https://registry.npm.taobao.org/figgy-pudding/download/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790"
2946 3077
 
3078
+figures@^2.0.0:
3079
+  version "2.0.0"
3080
+  resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962"
3081
+  dependencies:
3082
+    escape-string-regexp "^1.0.5"
3083
+
3084
+file-entry-cache@^5.0.1:
3085
+  version "5.0.1"
3086
+  resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c"
3087
+  dependencies:
3088
+    flat-cache "^2.0.1"
3089
+
2947 3090
 fileset@^2.0.3:
2948 3091
   version "2.0.3"
2949 3092
   resolved "http://registry.npm.taobao.org/fileset/download/fileset-2.0.3.tgz#8e7548a96d3cc2327ee5e674168723a333bba2a0"
@@ -2995,6 +3138,18 @@ findup-sync@^2.0.0:
2995 3138
     micromatch "^3.0.4"
2996 3139
     resolve-dir "^1.0.1"
2997 3140
 
3141
+flat-cache@^2.0.1:
3142
+  version "2.0.1"
3143
+  resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0"
3144
+  dependencies:
3145
+    flatted "^2.0.0"
3146
+    rimraf "2.6.3"
3147
+    write "1.0.3"
3148
+
3149
+flatted@^2.0.0:
3150
+  version "2.0.0"
3151
+  resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.0.tgz#55122b6536ea496b4b44893ee2608141d10d9916"
3152
+
2998 3153
 flush-write-stream@^1.0.0:
2999 3154
   version "1.1.1"
3000 3155
   resolved "https://registry.npm.taobao.org/flush-write-stream/download/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8"
@@ -3079,6 +3234,10 @@ function-bind@^1.1.1:
3079 3234
   version "1.1.1"
3080 3235
   resolved "http://registry.npm.taobao.org/function-bind/download/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
3081 3236
 
3237
+functional-red-black-tree@^1.0.1:
3238
+  version "1.0.1"
3239
+  resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
3240
+
3082 3241
 gauge@~2.7.3:
3083 3242
   version "2.7.4"
3084 3243
   resolved "https://registry.npm.taobao.org/gauge/download/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7"
@@ -3096,6 +3255,10 @@ get-caller-file@^1.0.1:
3096 3255
   version "1.0.3"
3097 3256
   resolved "http://registry.npm.taobao.org/get-caller-file/download/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a"
3098 3257
 
3258
+get-stdin@^6.0.0:
3259
+  version "6.0.0"
3260
+  resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b"
3261
+
3099 3262
 get-stream@^4.0.0:
3100 3263
   version "4.1.0"
3101 3264
   resolved "http://registry.npm.taobao.org/get-stream/download/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5"
@@ -3163,6 +3326,10 @@ globals@^11.1.0:
3163 3326
   version "11.11.0"
3164 3327
   resolved "http://registry.npm.taobao.org/globals/download/globals-11.11.0.tgz#dcf93757fa2de5486fbeed7118538adf789e9c2e"
3165 3328
 
3329
+globals@^11.7.0:
3330
+  version "11.12.0"
3331
+  resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
3332
+
3166 3333
 globals@^9.18.0:
3167 3334
   version "9.18.0"
3168 3335
   resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a"
@@ -3410,7 +3577,7 @@ iconv-lite@0.4.23:
3410 3577
   dependencies:
3411 3578
     safer-buffer ">= 2.1.2 < 3"
3412 3579
 
3413
-iconv-lite@0.4.24, iconv-lite@^0.4.4:
3580
+iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4:
3414 3581
   version "0.4.24"
3415 3582
   resolved "http://registry.npm.taobao.org/iconv-lite/download/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
3416 3583
   dependencies:
@@ -3430,6 +3597,17 @@ ignore-walk@^3.0.1:
3430 3597
   dependencies:
3431 3598
     minimatch "^3.0.4"
3432 3599
 
3600
+ignore@^4.0.6:
3601
+  version "4.0.6"
3602
+  resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"
3603
+
3604
+import-fresh@^3.0.0:
3605
+  version "3.0.0"
3606
+  resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.0.0.tgz#a3d897f420cab0e671236897f75bc14b4885c390"
3607
+  dependencies:
3608
+    parent-module "^1.0.0"
3609
+    resolve-from "^4.0.0"
3610
+
3433 3611
 import-local@^2.0.0:
3434 3612
   version "2.0.0"
3435 3613
   resolved "http://registry.npm.taobao.org/import-local/download/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d"
@@ -3464,6 +3642,24 @@ ini@^1.3.4, ini@~1.3.0:
3464 3642
   version "1.3.5"
3465 3643
   resolved "https://registry.npm.taobao.org/ini/download/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
3466 3644
 
3645
+inquirer@^6.2.2:
3646
+  version "6.3.1"
3647
+  resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.3.1.tgz#7a413b5e7950811013a3db491c61d1f3b776e8e7"
3648
+  dependencies:
3649
+    ansi-escapes "^3.2.0"
3650
+    chalk "^2.4.2"
3651
+    cli-cursor "^2.1.0"
3652
+    cli-width "^2.0.0"
3653
+    external-editor "^3.0.3"
3654
+    figures "^2.0.0"
3655
+    lodash "^4.17.11"
3656
+    mute-stream "0.0.7"
3657
+    run-async "^2.2.0"
3658
+    rxjs "^6.4.0"
3659
+    string-width "^2.1.0"
3660
+    strip-ansi "^5.1.0"
3661
+    through "^2.3.6"
3662
+
3467 3663
 internal-ip@^4.2.0:
3468 3664
   version "4.3.0"
3469 3665
   resolved "https://registry.npm.taobao.org/internal-ip/download/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907"
@@ -3643,6 +3839,10 @@ is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4:
3643 3839
   dependencies:
3644 3840
     isobject "^3.0.1"
3645 3841
 
3842
+is-promise@^2.1.0:
3843
+  version "2.1.0"
3844
+  resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa"
3845
+
3646 3846
 is-regex@^1.0.4:
3647 3847
   version "1.0.4"
3648 3848
   resolved "http://registry.npm.taobao.org/is-regex/download/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491"
@@ -4098,6 +4298,13 @@ js-yaml@^3.12.0:
4098 4298
     argparse "^1.0.7"
4099 4299
     esprima "^4.0.0"
4100 4300
 
4301
+js-yaml@^3.13.0:
4302
+  version "3.13.1"
4303
+  resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847"
4304
+  dependencies:
4305
+    argparse "^1.0.7"
4306
+    esprima "^4.0.0"
4307
+
4101 4308
 jsbn@~0.1.0:
4102 4309
   version "0.1.1"
4103 4310
   resolved "http://registry.npm.taobao.org/jsbn/download/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
@@ -4157,6 +4364,10 @@ json-schema@0.2.3:
4157 4364
   version "0.2.3"
4158 4365
   resolved "http://registry.npm.taobao.org/json-schema/download/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
4159 4366
 
4367
+json-stable-stringify-without-jsonify@^1.0.1:
4368
+  version "1.0.1"
4369
+  resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
4370
+
4160 4371
 json-stringify-safe@~5.0.1:
4161 4372
   version "5.0.1"
4162 4373
   resolved "http://registry.npm.taobao.org/json-stringify-safe/download/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
@@ -4232,7 +4443,7 @@ leven@^2.1.0:
4232 4443
   version "2.1.0"
4233 4444
   resolved "http://registry.npm.taobao.org/leven/download/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580"
4234 4445
 
4235
-levn@~0.3.0:
4446
+levn@^0.3.0, levn@~0.3.0:
4236 4447
   version "0.3.0"
4237 4448
   resolved "http://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
4238 4449
   dependencies:
@@ -4280,6 +4491,10 @@ lodash.sortby@^4.7.0:
4280 4491
   version "4.7.0"
4281 4492
   resolved "http://registry.npm.taobao.org/lodash.sortby/download/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438"
4282 4493
 
4494
+lodash.unescape@4.0.1:
4495
+  version "4.0.1"
4496
+  resolved "https://registry.yarnpkg.com/lodash.unescape/-/lodash.unescape-4.0.1.tgz#bf2249886ce514cda112fae9218cdc065211fc9c"
4497
+
4283 4498
 lodash@^4.17.11, lodash@^4.17.3, lodash@^4.17.4:
4284 4499
   version "4.17.11"
4285 4500
   resolved "http://registry.npm.taobao.org/lodash/download/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d"
@@ -4441,6 +4656,10 @@ mime@^2.3.1:
4441 4656
   version "2.4.2"
4442 4657
   resolved "https://registry.npm.taobao.org/mime/download/mime-2.4.2.tgz#ce5229a5e99ffc313abac806b482c10e7ba6ac78"
4443 4658
 
4659
+mimic-fn@^1.0.0:
4660
+  version "1.2.0"
4661
+  resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022"
4662
+
4444 4663
 mimic-fn@^2.0.0:
4445 4664
   version "2.0.0"
4446 4665
   resolved "http://registry.npm.taobao.org/mimic-fn/download/mimic-fn-2.0.0.tgz#0913ff0b121db44ef5848242c38bbb35d44cabde"
@@ -4542,6 +4761,10 @@ multicast-dns@^6.0.1:
4542 4761
     dns-packet "^1.3.1"
4543 4762
     thunky "^1.0.2"
4544 4763
 
4764
+mute-stream@0.0.7:
4765
+  version "0.0.7"
4766
+  resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
4767
+
4545 4768
 nan@^2.12.1:
4546 4769
   version "2.13.2"
4547 4770
   resolved "https://registry.npm.taobao.org/nan/download/nan-2.13.2.tgz#f51dc7ae66ba7d5d55e1e6d4d8092e802c9aefe7"
@@ -4788,6 +5011,12 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0:
4788 5011
   dependencies:
4789 5012
     wrappy "1"
4790 5013
 
5014
+onetime@^2.0.0:
5015
+  version "2.0.1"
5016
+  resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4"
5017
+  dependencies:
5018
+    mimic-fn "^1.0.0"
5019
+
4791 5020
 opn@^5.5.0:
4792 5021
   version "5.5.0"
4793 5022
   resolved "https://registry.npm.taobao.org/opn/download/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc"
@@ -4801,7 +5030,7 @@ optimist@^0.6.1:
4801 5030
     minimist "~0.0.1"
4802 5031
     wordwrap "~0.0.2"
4803 5032
 
4804
-optionator@^0.8.1:
5033
+optionator@^0.8.1, optionator@^0.8.2:
4805 5034
   version "0.8.2"
4806 5035
   resolved "http://registry.npm.taobao.org/optionator/download/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64"
4807 5036
   dependencies:
@@ -4834,7 +5063,7 @@ os-locale@^3.0.0:
4834 5063
     lcid "^2.0.0"
4835 5064
     mem "^4.0.0"
4836 5065
 
4837
-os-tmpdir@^1.0.0, os-tmpdir@^1.0.1:
5066
+os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.2:
4838 5067
   version "1.0.2"
4839 5068
   resolved "https://registry.npm.taobao.org/os-tmpdir/download/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
4840 5069
 
@@ -4913,6 +5142,12 @@ param-case@2.1.x:
4913 5142
   dependencies:
4914 5143
     no-case "^2.2.0"
4915 5144
 
5145
+parent-module@^1.0.0:
5146
+  version "1.0.1"
5147
+  resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
5148
+  dependencies:
5149
+    callsites "^3.0.0"
5150
+
4916 5151
 parse-asn1@^5.0.0:
4917 5152
   version "5.1.4"
4918 5153
   resolved "https://registry.npm.taobao.org/parse-asn1/download/parse-asn1-5.1.4.tgz#37f6628f823fbdeb2273b4d540434a22f3ef1fcc"
@@ -5081,6 +5316,10 @@ process@^0.11.10:
5081 5316
   version "0.11.10"
5082 5317
   resolved "https://registry.npm.taobao.org/process/download/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
5083 5318
 
5319
+progress@^2.0.0:
5320
+  version "2.0.3"
5321
+  resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
5322
+
5084 5323
 promise-inflight@^1.0.1:
5085 5324
   version "1.0.1"
5086 5325
   resolved "https://registry.npm.taobao.org/promise-inflight/download/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3"
@@ -5299,6 +5538,10 @@ regexp-tree@^0.1.0:
5299 5538
   version "0.1.6"
5300 5539
   resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.6.tgz#84900fa12fdf428a2ac25f04300382a7c0148479"
5301 5540
 
5541
+regexpp@^2.0.1:
5542
+  version "2.0.1"
5543
+  resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f"
5544
+
5302 5545
 regexpu-core@^2.0.0:
5303 5546
   version "2.0.0"
5304 5547
   resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240"
@@ -5417,6 +5660,10 @@ require-main-filename@^1.0.1:
5417 5660
   version "1.0.1"
5418 5661
   resolved "http://registry.npm.taobao.org/require-main-filename/download/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1"
5419 5662
 
5663
+requireindex@^1.2.0:
5664
+  version "1.2.0"
5665
+  resolved "https://registry.yarnpkg.com/requireindex/-/requireindex-1.2.0.tgz#3463cdb22ee151902635aa6c9535d4de9c2ef1ef"
5666
+
5420 5667
 requires-port@^1.0.0:
5421 5668
   version "1.0.0"
5422 5669
   resolved "https://registry.npm.taobao.org/requires-port/download/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"
@@ -5438,6 +5685,10 @@ resolve-from@^3.0.0:
5438 5685
   version "3.0.0"
5439 5686
   resolved "http://registry.npm.taobao.org/resolve-from/download/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748"
5440 5687
 
5688
+resolve-from@^4.0.0:
5689
+  version "4.0.0"
5690
+  resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
5691
+
5441 5692
 resolve-url@^0.2.1:
5442 5693
   version "0.2.1"
5443 5694
   resolved "http://registry.npm.taobao.org/resolve-url/download/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
@@ -5458,11 +5709,18 @@ resolve@^1.8.1:
5458 5709
   dependencies:
5459 5710
     path-parse "^1.0.6"
5460 5711
 
5712
+restore-cursor@^2.0.0:
5713
+  version "2.0.0"
5714
+  resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf"
5715
+  dependencies:
5716
+    onetime "^2.0.0"
5717
+    signal-exit "^3.0.2"
5718
+
5461 5719
 ret@~0.1.10:
5462 5720
   version "0.1.15"
5463 5721
   resolved "http://registry.npm.taobao.org/ret/download/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc"
5464 5722
 
5465
-rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3:
5723
+rimraf@2.6.3, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3:
5466 5724
   version "2.6.3"
5467 5725
   resolved "http://registry.npm.taobao.org/rimraf/download/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab"
5468 5726
   dependencies:
@@ -5479,12 +5737,24 @@ rsvp@^4.8.4:
5479 5737
   version "4.8.4"
5480 5738
   resolved "http://registry.npm.taobao.org/rsvp/download/rsvp-4.8.4.tgz#b50e6b34583f3dd89329a2f23a8a2be072845911"
5481 5739
 
5740
+run-async@^2.2.0:
5741
+  version "2.3.0"
5742
+  resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0"
5743
+  dependencies:
5744
+    is-promise "^2.1.0"
5745
+
5482 5746
 run-queue@^1.0.0, run-queue@^1.0.3:
5483 5747
   version "1.0.3"
5484 5748
   resolved "https://registry.npm.taobao.org/run-queue/download/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47"
5485 5749
   dependencies:
5486 5750
     aproba "^1.1.1"
5487 5751
 
5752
+rxjs@^6.4.0:
5753
+  version "6.5.2"
5754
+  resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.2.tgz#2e35ce815cd46d84d02a209fb4e5921e051dbec7"
5755
+  dependencies:
5756
+    tslib "^1.9.0"
5757
+
5488 5758
 safe-buffer@5.1.2, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
5489 5759
   version "5.1.2"
5490 5760
   resolved "http://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
@@ -5539,6 +5809,10 @@ selfsigned@^1.10.4:
5539 5809
   version "5.6.0"
5540 5810
   resolved "http://registry.npm.taobao.org/semver/download/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004"
5541 5811
 
5812
+semver@5.5.0:
5813
+  version "5.5.0"
5814
+  resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab"
5815
+
5542 5816
 semver@^5.3.0, semver@^5.5.1, semver@^5.6.0:
5543 5817
   version "5.7.0"
5544 5818
   resolved "https://registry.npm.taobao.org/semver/download/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b"
@@ -5657,6 +5931,14 @@ slash@^2.0.0:
5657 5931
   version "2.0.0"
5658 5932
   resolved "http://registry.npm.taobao.org/slash/download/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44"
5659 5933
 
5934
+slice-ansi@^2.1.0:
5935
+  version "2.1.0"
5936
+  resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636"
5937
+  dependencies:
5938
+    ansi-styles "^3.2.0"
5939
+    astral-regex "^1.0.0"
5940
+    is-fullwidth-code-point "^2.0.0"
5941
+
5660 5942
 snapdragon-node@^2.0.1:
5661 5943
   version "2.1.1"
5662 5944
   resolved "http://registry.npm.taobao.org/snapdragon-node/download/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b"
@@ -5887,13 +6169,21 @@ string-width@^1.0.1:
5887 6169
     is-fullwidth-code-point "^1.0.0"
5888 6170
     strip-ansi "^3.0.0"
5889 6171
 
5890
-"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.1:
6172
+"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1:
5891 6173
   version "2.1.1"
5892 6174
   resolved "http://registry.npm.taobao.org/string-width/download/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
5893 6175
   dependencies:
5894 6176
     is-fullwidth-code-point "^2.0.0"
5895 6177
     strip-ansi "^4.0.0"
5896 6178
 
6179
+string-width@^3.0.0:
6180
+  version "3.1.0"
6181
+  resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961"
6182
+  dependencies:
6183
+    emoji-regex "^7.0.1"
6184
+    is-fullwidth-code-point "^2.0.0"
6185
+    strip-ansi "^5.1.0"
6186
+
5897 6187
 string_decoder@^1.0.0, string_decoder@^1.1.1:
5898 6188
   version "1.2.0"
5899 6189
   resolved "https://registry.npm.taobao.org/string_decoder/download/string_decoder-1.2.0.tgz#fe86e738b19544afe70469243b2a1ee9240eae8d"
@@ -5918,7 +6208,7 @@ strip-ansi@^4.0.0:
5918 6208
   dependencies:
5919 6209
     ansi-regex "^3.0.0"
5920 6210
 
5921
-strip-ansi@^5.0.0:
6211
+strip-ansi@^5.0.0, strip-ansi@^5.1.0:
5922 6212
   version "5.2.0"
5923 6213
   resolved "http://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae"
5924 6214
   dependencies:
@@ -5932,7 +6222,7 @@ strip-eof@^1.0.0:
5932 6222
   version "1.0.0"
5933 6223
   resolved "http://registry.npm.taobao.org/strip-eof/download/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
5934 6224
 
5935
-strip-json-comments@~2.0.1:
6225
+strip-json-comments@^2.0.1, strip-json-comments@~2.0.1:
5936 6226
   version "2.0.1"
5937 6227
   resolved "https://registry.npm.taobao.org/strip-json-comments/download/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
5938 6228
 
@@ -5956,6 +6246,15 @@ symbol-tree@^3.2.2:
5956 6246
   version "3.2.2"
5957 6247
   resolved "http://registry.npm.taobao.org/symbol-tree/download/symbol-tree-3.2.2.tgz#ae27db38f660a7ae2e1c3b7d1bc290819b8519e6"
5958 6248
 
6249
+table@^5.2.3:
6250
+  version "5.3.2"
6251
+  resolved "https://registry.yarnpkg.com/table/-/table-5.3.2.tgz#3aab56a41b2905bf66a6a006bd716fa1e78d4702"
6252
+  dependencies:
6253
+    ajv "^6.9.1"
6254
+    lodash "^4.17.11"
6255
+    slice-ansi "^2.1.0"
6256
+    string-width "^3.0.0"
6257
+
5959 6258
 tapable@^1.0.0, tapable@^1.1.0:
5960 6259
   version "1.1.3"
5961 6260
   resolved "https://registry.npm.taobao.org/tapable/download/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2"
@@ -6002,6 +6301,10 @@ test-exclude@^5.0.0:
6002 6301
     read-pkg-up "^4.0.0"
6003 6302
     require-main-filename "^1.0.1"
6004 6303
 
6304
+text-table@^0.2.0:
6305
+  version "0.2.0"
6306
+  resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
6307
+
6005 6308
 throat@^4.0.0:
6006 6309
   version "4.1.0"
6007 6310
   resolved "http://registry.npm.taobao.org/throat/download/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a"
@@ -6013,6 +6316,10 @@ through2@^2.0.0:
6013 6316
     readable-stream "~2.3.6"
6014 6317
     xtend "~4.0.1"
6015 6318
 
6319
+through@^2.3.6:
6320
+  version "2.3.8"
6321
+  resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
6322
+
6016 6323
 thunky@^1.0.2:
6017 6324
   version "1.0.3"
6018 6325
   resolved "https://registry.npm.taobao.org/thunky/download/thunky-1.0.3.tgz#f5df732453407b09191dae73e2a8cc73f381a826"
@@ -6023,6 +6330,12 @@ timers-browserify@^2.0.4:
6023 6330
   dependencies:
6024 6331
     setimmediate "^1.0.4"
6025 6332
 
6333
+tmp@^0.0.33:
6334
+  version "0.0.33"
6335
+  resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
6336
+  dependencies:
6337
+    os-tmpdir "~1.0.2"
6338
+
6026 6339
 tmpl@1.0.x:
6027 6340
   version "1.0.4"
6028 6341
   resolved "http://registry.npm.taobao.org/tmpl/download/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1"
@@ -6103,10 +6416,16 @@ ts-jest@^24.0.0:
6103 6416
     semver "^5.5"
6104 6417
     yargs-parser "10.x"
6105 6418
 
6106
-tslib@^1.9.0:
6419
+tslib@^1.8.1, tslib@^1.9.0:
6107 6420
   version "1.9.3"
6108 6421
   resolved "https://registry.npm.taobao.org/tslib/download/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286"
6109 6422
 
6423
+tsutils@^3.7.0:
6424
+  version "3.10.0"
6425
+  resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.10.0.tgz#6f1c95c94606e098592b0dff06590cf9659227d6"
6426
+  dependencies:
6427
+    tslib "^1.8.1"
6428
+
6110 6429
 tty-browserify@0.0.0:
6111 6430
   version "0.0.0"
6112 6431
   resolved "https://registry.npm.taobao.org/tty-browserify/download/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6"
@@ -6526,6 +6845,12 @@ write-file-atomic@2.4.1:
6526 6845
     imurmurhash "^0.1.4"
6527 6846
     signal-exit "^3.0.2"
6528 6847
 
6848
+write@1.0.3:
6849
+  version "1.0.3"
6850
+  resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3"
6851
+  dependencies:
6852
+    mkdirp "^0.5.1"
6853
+
6529 6854
 ws@^5.2.0:
6530 6855
   version "5.2.2"
6531 6856
   resolved "http://registry.npm.taobao.org/ws/download/ws-5.2.2.tgz#dffef14866b8e8dc9133582514d1befaf96e980f"