• R/O
  • HTTP
  • SSH
  • HTTPS

bytom-electron: 提交

Bytom Desktop Electron App


Commit MetaInfo

修订版30d398d932d1932f7a91bd8a9c32556a334b6433 (tree)
时间2019-10-24 17:14:00
作者Zhiting Lin <zlin035@uott...>
CommiterZhiting Lin

Log Message

merge dashboard into dev

更改概述

差异

--- a/modules/interface/locales/en/translation.json
+++ b/modules/interface/locales/en/translation.json
@@ -271,7 +271,10 @@
271271 "selectFee":"Select Fee",
272272 "feeDescription":"This is the money that might be used to process this transaction. Your transaction will be mined usually within 2.5 minutes.",
273273 "confirmation":"Confirm Transaction",
274- "total": "Total"
274+ "total": "Total",
275+ "submitType":"Transactions Submitted Type",
276+ "chainTx":"Chain Transactions",
277+ "chainTxNote":"Chain Transactions will generate multiple transactions, cost an extra fee and improve UTXO amount limit in a single transaction."
275278 },
276279 "advance":{
277280 "generateJson":"Generate transaction JSON",
--- a/modules/interface/locales/zh/translation.json
+++ b/modules/interface/locales/zh/translation.json
@@ -270,7 +270,10 @@
270270 "selectFee":"选择手续费",
271271 "feeDescription":"交易所需手续费, 你的交易将会在2.5分钟之后完成。",
272272 "confirmation":"确认交易",
273- "total": "交易总数"
273+ "total": "交易总数",
274+ "submitType":"交易提交类型",
275+ "chainTx":"链式交易",
276+ "chainTxNote":"解决单笔交易UTXO个数限制,链式交易会生成多笔交易以及额外手续费。"
274277 },
275278 "advance":{
276279 "generateJson":"生成交易JSON",
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
11 {
22 "name": "bytom-wallet",
3- "version": "1.0.7",
3+ "version": "1.0.9",
44 "lockfileVersion": 1,
55 "requires": true,
66 "dependencies": {
@@ -33,8 +33,8 @@
3333 },
3434 "abbrev": {
3535 "version": "1.1.1",
36- "resolved": "http://registry.npm.taobao.org/abbrev/download/abbrev-1.1.1.tgz",
37- "integrity": "sha1-+PLIh60Qv2f2NPAFtph/7TF5qsg=",
36+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
37+ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
3838 "dev": true
3939 },
4040 "accepts": {
@@ -48,9 +48,9 @@
4848 }
4949 },
5050 "acorn": {
51- "version": "5.5.3",
52- "resolved": "http://registry.npm.taobao.org/acorn/download/acorn-5.5.3.tgz",
53- "integrity": "sha1-9HPdR+AnegjijpvsWu6wR1HwuMk=",
51+ "version": "5.7.3",
52+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz",
53+ "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==",
5454 "dev": true
5555 },
5656 "acorn-jsx": {
@@ -99,6 +99,12 @@
9999 "repeat-string": "1.6.1"
100100 }
101101 },
102+ "alphanum-sort": {
103+ "version": "1.0.2",
104+ "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz",
105+ "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=",
106+ "dev": true
107+ },
102108 "amdefine": {
103109 "version": "1.0.1",
104110 "resolved": "http://registry.npm.taobao.org/amdefine/download/amdefine-1.0.1.tgz",
@@ -148,9 +154,9 @@
148154 }
149155 },
150156 "ansi-escapes": {
151- "version": "1.4.0",
152- "resolved": "http://registry.npm.taobao.org/ansi-escapes/download/ansi-escapes-1.4.0.tgz",
153- "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=",
157+ "version": "3.2.0",
158+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz",
159+ "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==",
154160 "dev": true
155161 },
156162 "ansi-html": {
@@ -187,14 +193,14 @@
187193 },
188194 "aproba": {
189195 "version": "1.2.0",
190- "resolved": "http://registry.npm.taobao.org/aproba/download/aproba-1.2.0.tgz",
191- "integrity": "sha1-aALmJk79GMeQobDVF/DyYnvyyUo=",
196+ "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
197+ "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
192198 "dev": true
193199 },
194200 "are-we-there-yet": {
195201 "version": "1.1.5",
196- "resolved": "http://registry.npm.taobao.org/are-we-there-yet/download/are-we-there-yet-1.1.5.tgz",
197- "integrity": "sha1-SzXClE8GKov82mZBB2A1D+nd/CE=",
202+ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz",
203+ "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
198204 "dev": true,
199205 "requires": {
200206 "delegates": "1.0.0",
@@ -207,16 +213,10 @@
207213 "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
208214 "dev": true
209215 },
210- "process-nextick-args": {
211- "version": "2.0.0",
212- "resolved": "http://registry.npm.taobao.org/process-nextick-args/download/process-nextick-args-2.0.0.tgz",
213- "integrity": "sha1-o31zL0JxtKsa0HDTVQjoKQeI/6o=",
214- "dev": true
215- },
216216 "readable-stream": {
217217 "version": "2.3.6",
218- "resolved": "http://registry.npm.taobao.org/readable-stream/download/readable-stream-2.3.6.tgz",
219- "integrity": "sha1-sRwn2IuP8fvgcGQ8+UsMea4bCq8=",
218+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
219+ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
220220 "dev": true,
221221 "requires": {
222222 "core-util-is": "1.0.2",
@@ -230,8 +230,8 @@
230230 },
231231 "string_decoder": {
232232 "version": "1.1.1",
233- "resolved": "http://registry.npm.taobao.org/string_decoder/download/string_decoder-1.1.1.tgz",
234- "integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=",
233+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
234+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
235235 "dev": true,
236236 "requires": {
237237 "safe-buffer": "5.1.2"
@@ -241,8 +241,8 @@
241241 },
242242 "argparse": {
243243 "version": "1.0.10",
244- "resolved": "http://registry.npm.taobao.org/argparse/download/argparse-1.0.10.tgz",
245- "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=",
244+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
245+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
246246 "dev": true,
247247 "requires": {
248248 "sprintf-js": "1.0.3"
@@ -290,6 +290,16 @@
290290 "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=",
291291 "dev": true
292292 },
293+ "array-includes": {
294+ "version": "3.0.3",
295+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz",
296+ "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=",
297+ "dev": true,
298+ "requires": {
299+ "define-properties": "1.1.2",
300+ "es-abstract": "1.11.0"
301+ }
302+ },
293303 "array-map": {
294304 "version": "0.0.0",
295305 "resolved": "http://registry.npm.taobao.org/array-map/download/array-map-0.0.0.tgz",
@@ -302,33 +312,12 @@
302312 "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=",
303313 "dev": true
304314 },
305- "array-union": {
306- "version": "1.0.2",
307- "resolved": "http://registry.npm.taobao.org/array-union/download/array-union-1.0.2.tgz",
308- "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
309- "dev": true,
310- "requires": {
311- "array-uniq": "1.0.3"
312- }
313- },
314- "array-uniq": {
315- "version": "1.0.3",
316- "resolved": "http://registry.npm.taobao.org/array-uniq/download/array-uniq-1.0.3.tgz",
317- "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
318- "dev": true
319- },
320315 "array-unique": {
321316 "version": "0.2.1",
322317 "resolved": "http://registry.npm.taobao.org/array-unique/download/array-unique-0.2.1.tgz",
323318 "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=",
324319 "dev": true
325320 },
326- "arrify": {
327- "version": "1.0.1",
328- "resolved": "http://registry.npm.taobao.org/arrify/download/arrify-1.0.1.tgz",
329- "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
330- "dev": true
331- },
332321 "asap": {
333322 "version": "2.0.6",
334323 "resolved": "http://registry.npm.taobao.org/asap/download/asap-2.0.6.tgz",
@@ -361,15 +350,6 @@
361350 "integrity": "sha1-5gtrDo8wG9l+U3UhW9pAbIURjAs=",
362351 "dev": true
363352 },
364- "async": {
365- "version": "2.6.1",
366- "resolved": "http://registry.npm.taobao.org/async/download/async-2.6.1.tgz",
367- "integrity": "sha1-skWiPKcZMAROxT+kaqAKPofGphA=",
368- "dev": true,
369- "requires": {
370- "lodash": "4.17.11"
371- }
372- },
373353 "async-each": {
374354 "version": "1.0.1",
375355 "resolved": "http://registry.npm.taobao.org/async-each/download/async-each-1.0.1.tgz",
@@ -441,7 +421,7 @@
441421 "convert-source-map": "1.5.1",
442422 "fs-readdir-recursive": "1.1.0",
443423 "glob": "7.1.2",
444- "lodash": "4.17.11",
424+ "lodash": "4.17.14",
445425 "output-file-sync": "1.1.2",
446426 "path-is-absolute": "1.0.1",
447427 "slash": "1.0.0",
@@ -468,7 +448,7 @@
468448 "convert-source-map": "1.5.1",
469449 "debug": "2.6.9",
470450 "json5": "0.5.1",
471- "lodash": "4.17.11",
451+ "lodash": "4.17.14",
472452 "minimatch": "3.0.4",
473453 "path-is-absolute": "1.0.1",
474454 "private": "0.1.8",
@@ -497,7 +477,7 @@
497477 "babel-runtime": "6.26.0",
498478 "core-js": "2.5.7",
499479 "home-or-tmp": "2.0.0",
500- "lodash": "4.17.11",
480+ "lodash": "4.17.14",
501481 "mkdirp": "0.5.1",
502482 "source-map-support": "0.4.18"
503483 }
@@ -554,7 +534,7 @@
554534 "convert-source-map": "1.5.1",
555535 "debug": "2.6.9",
556536 "json5": "0.4.0",
557- "lodash": "4.17.11",
537+ "lodash": "4.17.14",
558538 "minimatch": "3.0.4",
559539 "path-exists": "1.0.0",
560540 "path-is-absolute": "1.0.1",
@@ -609,7 +589,7 @@
609589 "babel-types": "6.26.0",
610590 "detect-indent": "4.0.0",
611591 "jsesc": "1.3.0",
612- "lodash": "4.17.11",
592+ "lodash": "4.17.14",
613593 "source-map": "0.5.7",
614594 "trim-right": "1.0.1"
615595 },
@@ -653,7 +633,7 @@
653633 "babel-helper-function-name": "6.24.1",
654634 "babel-runtime": "6.26.0",
655635 "babel-types": "6.26.0",
656- "lodash": "4.17.11"
636+ "lodash": "4.17.14"
657637 }
658638 },
659639 "babel-helper-function-name": {
@@ -707,7 +687,7 @@
707687 "requires": {
708688 "babel-runtime": "6.26.0",
709689 "babel-types": "6.26.0",
710- "lodash": "4.17.11"
690+ "lodash": "4.17.14"
711691 }
712692 },
713693 "babel-helper-replace-supers": {
@@ -768,7 +748,7 @@
768748 "integrity": "sha1-UVu/qZaJOYEULZCx+bFjXeKZUQk=",
769749 "dev": true,
770750 "requires": {
771- "lodash": "4.17.11"
751+ "lodash": "4.17.14"
772752 }
773753 },
774754 "babel-plugin-syntax-flow": {
@@ -817,7 +797,7 @@
817797 "babel-template": "6.26.0",
818798 "babel-traverse": "6.26.0",
819799 "babel-types": "6.26.0",
820- "lodash": "4.17.11"
800+ "lodash": "4.17.14"
821801 }
822802 },
823803 "babel-plugin-transform-es2015-classes": {
@@ -1133,7 +1113,7 @@
11331113 "babel-runtime": "6.26.0",
11341114 "core-js": "2.5.7",
11351115 "home-or-tmp": "2.0.0",
1136- "lodash": "4.17.11",
1116+ "lodash": "4.17.14",
11371117 "mkdirp": "0.5.1",
11381118 "source-map-support": "0.4.18"
11391119 },
@@ -1156,7 +1136,7 @@
11561136 "convert-source-map": "1.5.1",
11571137 "debug": "2.6.9",
11581138 "json5": "0.5.1",
1159- "lodash": "4.17.11",
1139+ "lodash": "4.17.14",
11601140 "minimatch": "3.0.4",
11611141 "path-is-absolute": "1.0.1",
11621142 "private": "0.1.8",
@@ -1173,7 +1153,7 @@
11731153 "babel-runtime": "6.26.0",
11741154 "core-js": "2.5.7",
11751155 "home-or-tmp": "2.0.0",
1176- "lodash": "4.17.11",
1156+ "lodash": "4.17.14",
11771157 "mkdirp": "0.5.1",
11781158 "source-map-support": "0.4.18"
11791159 }
@@ -1189,7 +1169,7 @@
11891169 "babel-runtime": "6.26.0",
11901170 "core-js": "2.5.7",
11911171 "home-or-tmp": "2.0.0",
1192- "lodash": "4.17.11",
1172+ "lodash": "4.17.14",
11931173 "mkdirp": "0.5.1",
11941174 "source-map-support": "0.4.18"
11951175 }
@@ -1234,7 +1214,7 @@
12341214 "babel-traverse": "6.26.0",
12351215 "babel-types": "6.26.0",
12361216 "babylon": "6.18.0",
1237- "lodash": "4.17.11"
1217+ "lodash": "4.17.14"
12381218 }
12391219 },
12401220 "babel-traverse": {
@@ -1250,7 +1230,7 @@
12501230 "debug": "2.6.9",
12511231 "globals": "9.18.0",
12521232 "invariant": "2.2.4",
1253- "lodash": "4.17.11"
1233+ "lodash": "4.17.14"
12541234 },
12551235 "dependencies": {
12561236 "debug": {
@@ -1270,7 +1250,7 @@
12701250 "requires": {
12711251 "babel-runtime": "6.26.0",
12721252 "esutils": "2.0.2",
1273- "lodash": "4.17.11",
1253+ "lodash": "4.17.14",
12741254 "to-fast-properties": "1.0.3"
12751255 }
12761256 },
@@ -1428,7 +1408,7 @@
14281408 "requires": {
14291409 "chalk": "1.1.3",
14301410 "escape-regexp": "0.0.1",
1431- "js-yaml": "3.11.0",
1411+ "js-yaml": "3.13.1",
14321412 "loader-utils": "0.2.17",
14331413 "resolve": "1.7.1",
14341414 "semver": "5.5.0",
@@ -1544,14 +1524,23 @@
15441524 }
15451525 },
15461526 "braces": {
1547- "version": "1.8.5",
1548- "resolved": "http://registry.npm.taobao.org/braces/download/braces-1.8.5.tgz",
1549- "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
1527+ "version": "3.0.2",
1528+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
1529+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
15501530 "dev": true,
15511531 "requires": {
1552- "expand-range": "1.8.2",
1553- "preserve": "0.2.0",
1554- "repeat-element": "1.1.2"
1532+ "fill-range": "7.0.1"
1533+ },
1534+ "dependencies": {
1535+ "fill-range": {
1536+ "version": "7.0.1",
1537+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
1538+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
1539+ "dev": true,
1540+ "requires": {
1541+ "to-regex-range": "5.0.1"
1542+ }
1543+ }
15551544 }
15561545 },
15571546 "browserify-aes": {
@@ -1626,7 +1615,7 @@
16261615 "debug": "3.1.0",
16271616 "fs-extra-p": "4.6.0",
16281617 "is-ci": "1.1.0",
1629- "js-yaml": "3.11.0",
1618+ "js-yaml": "3.13.1",
16301619 "lazy-val": "1.0.3",
16311620 "semver": "5.5.0",
16321621 "source-map-support": "0.5.6",
@@ -1750,6 +1739,18 @@
17501739 "window-or-global": "1.0.1"
17511740 }
17521741 },
1742+ "caniuse-api": {
1743+ "version": "1.6.1",
1744+ "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.6.1.tgz",
1745+ "integrity": "sha1-tTTnxzTE+B7F++isoq0kNUuWLGw=",
1746+ "dev": true,
1747+ "requires": {
1748+ "browserslist": "1.7.7",
1749+ "caniuse-db": "1.0.30000846",
1750+ "lodash.memoize": "4.1.2",
1751+ "lodash.uniq": "4.5.0"
1752+ }
1753+ },
17531754 "caniuse-db": {
17541755 "version": "1.0.30000846",
17551756 "resolved": "http://registry.npm.taobao.org/caniuse-db/download/caniuse-db-1.0.30000846.tgz",
@@ -1810,6 +1811,12 @@
18101811 "supports-color": "2.0.0"
18111812 }
18121813 },
1814+ "chardet": {
1815+ "version": "0.4.2",
1816+ "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz",
1817+ "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=",
1818+ "dev": true
1819+ },
18131820 "check-error": {
18141821 "version": "1.0.2",
18151822 "resolved": "http://registry.npm.taobao.org/check-error/download/check-error-1.0.2.tgz",
@@ -1850,41 +1857,20 @@
18501857 "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.5.9.tgz",
18511858 "integrity": "sha512-4ivwqHpIFJZBuhN3g/pEcdbnGUywkBblloGbkglyloVjjR3uT6tieI89MVOfbP2tHX5sgb01FuLgAOzebNlJNQ=="
18521859 },
1860+ "clap": {
1861+ "version": "1.2.3",
1862+ "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.3.tgz",
1863+ "integrity": "sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA==",
1864+ "dev": true,
1865+ "requires": {
1866+ "chalk": "1.1.3"
1867+ }
1868+ },
18531869 "classnames": {
18541870 "version": "2.2.5",
18551871 "resolved": "http://registry.npm.taobao.org/classnames/download/classnames-2.2.5.tgz",
18561872 "integrity": "sha1-+zgB1FNGdknvNgPH1hoCvRKb3m0="
18571873 },
1858- "clean-css": {
1859- "version": "3.4.28",
1860- "resolved": "http://registry.npm.taobao.org/clean-css/download/clean-css-3.4.28.tgz",
1861- "integrity": "sha1-vxlF6C/ICPVWlebd6uwBQA79A/8=",
1862- "dev": true,
1863- "requires": {
1864- "commander": "2.8.1",
1865- "source-map": "0.4.4"
1866- },
1867- "dependencies": {
1868- "commander": {
1869- "version": "2.8.1",
1870- "resolved": "http://registry.npm.taobao.org/commander/download/commander-2.8.1.tgz",
1871- "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=",
1872- "dev": true,
1873- "requires": {
1874- "graceful-readlink": "1.0.1"
1875- }
1876- },
1877- "source-map": {
1878- "version": "0.4.4",
1879- "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.4.4.tgz",
1880- "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
1881- "dev": true,
1882- "requires": {
1883- "amdefine": "1.0.1"
1884- }
1885- }
1886- }
1887- },
18881874 "cli-boxes": {
18891875 "version": "1.0.0",
18901876 "resolved": "http://registry.npm.taobao.org/cli-boxes/download/cli-boxes-1.0.0.tgz",
@@ -1892,12 +1878,12 @@
18921878 "dev": true
18931879 },
18941880 "cli-cursor": {
1895- "version": "1.0.2",
1896- "resolved": "http://registry.npm.taobao.org/cli-cursor/download/cli-cursor-1.0.2.tgz",
1897- "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=",
1881+ "version": "2.1.0",
1882+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
1883+ "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
18981884 "dev": true,
18991885 "requires": {
1900- "restore-cursor": "1.0.1"
1886+ "restore-cursor": "2.0.0"
19011887 }
19021888 },
19031889 "cli-width": {
@@ -1950,17 +1936,74 @@
19501936 "resolved": "http://registry.npm.taobao.org/clone/download/clone-2.1.1.tgz",
19511937 "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs="
19521938 },
1939+ "clone-deep": {
1940+ "version": "2.0.2",
1941+ "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-2.0.2.tgz",
1942+ "integrity": "sha512-SZegPTKjCgpQH63E+eN6mVEEPdQBOUzjyJm5Pora4lrwWRFS8I0QAxV/KD6vV/i0WuijHZWQC1fMsPEdxfdVCQ==",
1943+ "dev": true,
1944+ "requires": {
1945+ "for-own": "1.0.0",
1946+ "is-plain-object": "2.0.4",
1947+ "kind-of": "6.0.2",
1948+ "shallow-clone": "1.0.0"
1949+ },
1950+ "dependencies": {
1951+ "for-own": {
1952+ "version": "1.0.0",
1953+ "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz",
1954+ "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=",
1955+ "dev": true,
1956+ "requires": {
1957+ "for-in": "1.0.2"
1958+ }
1959+ },
1960+ "kind-of": {
1961+ "version": "6.0.2",
1962+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
1963+ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
1964+ "dev": true
1965+ }
1966+ }
1967+ },
19531968 "co": {
19541969 "version": "4.6.0",
19551970 "resolved": "http://registry.npm.taobao.org/co/download/co-4.6.0.tgz",
19561971 "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=",
19571972 "dev": true
19581973 },
1974+ "coa": {
1975+ "version": "1.0.4",
1976+ "resolved": "https://registry.npmjs.org/coa/-/coa-1.0.4.tgz",
1977+ "integrity": "sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0=",
1978+ "dev": true,
1979+ "requires": {
1980+ "q": "1.5.1"
1981+ }
1982+ },
19591983 "code-point-at": {
19601984 "version": "1.1.0",
19611985 "resolved": "http://registry.npm.taobao.org/code-point-at/download/code-point-at-1.1.0.tgz",
19621986 "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="
19631987 },
1988+ "color": {
1989+ "version": "0.11.4",
1990+ "resolved": "https://registry.npmjs.org/color/-/color-0.11.4.tgz",
1991+ "integrity": "sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q=",
1992+ "dev": true,
1993+ "requires": {
1994+ "clone": "1.0.4",
1995+ "color-convert": "1.9.1",
1996+ "color-string": "0.3.0"
1997+ },
1998+ "dependencies": {
1999+ "clone": {
2000+ "version": "1.0.4",
2001+ "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
2002+ "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=",
2003+ "dev": true
2004+ }
2005+ }
2006+ },
19642007 "color-convert": {
19652008 "version": "1.9.1",
19662009 "resolved": "http://registry.npm.taobao.org/color-convert/download/color-convert-1.9.1.tgz",
@@ -1976,6 +2019,32 @@
19762019 "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
19772020 "dev": true
19782021 },
2022+ "color-string": {
2023+ "version": "0.3.0",
2024+ "resolved": "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz",
2025+ "integrity": "sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE=",
2026+ "dev": true,
2027+ "requires": {
2028+ "color-name": "1.1.3"
2029+ }
2030+ },
2031+ "colormin": {
2032+ "version": "1.1.2",
2033+ "resolved": "https://registry.npmjs.org/colormin/-/colormin-1.1.2.tgz",
2034+ "integrity": "sha1-6i90IKcrlogaOKrlnsEkpvcpgTM=",
2035+ "dev": true,
2036+ "requires": {
2037+ "color": "0.11.4",
2038+ "css-color-names": "0.0.4",
2039+ "has": "1.0.1"
2040+ }
2041+ },
2042+ "colors": {
2043+ "version": "1.1.2",
2044+ "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz",
2045+ "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=",
2046+ "dev": true
2047+ },
19792048 "combined-stream": {
19802049 "version": "1.0.6",
19812050 "resolved": "http://registry.npm.taobao.org/combined-stream/download/combined-stream-1.0.6.tgz",
@@ -2235,7 +2304,7 @@
22352304 "dev": true,
22362305 "requires": {
22372306 "is-directory": "0.3.1",
2238- "js-yaml": "3.11.0",
2307+ "js-yaml": "3.13.1",
22392308 "minimist": "1.2.0",
22402309 "object-assign": "4.1.1",
22412310 "os-homedir": "1.0.2",
@@ -2339,18 +2408,120 @@
23392408 }
23402409 }
23412410 },
2411+ "css-color-names": {
2412+ "version": "0.0.4",
2413+ "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz",
2414+ "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=",
2415+ "dev": true
2416+ },
23422417 "css-loader": {
2343- "version": "0.14.5",
2344- "resolved": "http://registry.npm.taobao.org/css-loader/download/css-loader-0.14.5.tgz",
2345- "integrity": "sha1-1lY1tyrcSHrIGKLni1u5/spTUq0=",
2418+ "version": "0.26.1",
2419+ "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.26.1.tgz",
2420+ "integrity": "sha1-K6fyATG5NZdJaz6btQB4WknNKeo=",
23462421 "dev": true,
23472422 "requires": {
2348- "clean-css": "3.4.28",
2349- "fastparse": "1.1.1",
2423+ "babel-code-frame": "6.26.0",
2424+ "css-selector-tokenizer": "0.7.1",
2425+ "cssnano": "3.10.0",
23502426 "loader-utils": "0.2.17",
2427+ "lodash.camelcase": "4.3.0",
2428+ "object-assign": "4.1.1",
2429+ "postcss": "5.2.18",
2430+ "postcss-modules-extract-imports": "1.2.1",
2431+ "postcss-modules-local-by-default": "1.2.0",
2432+ "postcss-modules-scope": "1.1.0",
2433+ "postcss-modules-values": "1.3.0",
23512434 "source-list-map": "0.1.8"
23522435 }
23532436 },
2437+ "css-selector-tokenizer": {
2438+ "version": "0.7.1",
2439+ "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.1.tgz",
2440+ "integrity": "sha512-xYL0AMZJ4gFzJQsHUKa5jiWWi2vH77WVNg7JYRyewwj6oPh4yb/y6Y9ZCw9dsj/9UauMhtuxR+ogQd//EdEVNA==",
2441+ "dev": true,
2442+ "requires": {
2443+ "cssesc": "0.1.0",
2444+ "fastparse": "1.1.2",
2445+ "regexpu-core": "1.0.0"
2446+ },
2447+ "dependencies": {
2448+ "regexpu-core": {
2449+ "version": "1.0.0",
2450+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz",
2451+ "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=",
2452+ "dev": true,
2453+ "requires": {
2454+ "regenerate": "1.4.0",
2455+ "regjsgen": "0.2.0",
2456+ "regjsparser": "0.1.5"
2457+ }
2458+ }
2459+ }
2460+ },
2461+ "cssesc": {
2462+ "version": "0.1.0",
2463+ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz",
2464+ "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=",
2465+ "dev": true
2466+ },
2467+ "cssnano": {
2468+ "version": "3.10.0",
2469+ "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-3.10.0.tgz",
2470+ "integrity": "sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg=",
2471+ "dev": true,
2472+ "requires": {
2473+ "autoprefixer": "6.7.7",
2474+ "decamelize": "1.2.0",
2475+ "defined": "1.0.0",
2476+ "has": "1.0.1",
2477+ "object-assign": "4.1.1",
2478+ "postcss": "5.2.18",
2479+ "postcss-calc": "5.3.1",
2480+ "postcss-colormin": "2.2.2",
2481+ "postcss-convert-values": "2.6.1",
2482+ "postcss-discard-comments": "2.0.4",
2483+ "postcss-discard-duplicates": "2.1.0",
2484+ "postcss-discard-empty": "2.1.0",
2485+ "postcss-discard-overridden": "0.1.1",
2486+ "postcss-discard-unused": "2.2.3",
2487+ "postcss-filter-plugins": "2.0.3",
2488+ "postcss-merge-idents": "2.1.7",
2489+ "postcss-merge-longhand": "2.0.2",
2490+ "postcss-merge-rules": "2.1.2",
2491+ "postcss-minify-font-values": "1.0.5",
2492+ "postcss-minify-gradients": "1.0.5",
2493+ "postcss-minify-params": "1.2.2",
2494+ "postcss-minify-selectors": "2.1.1",
2495+ "postcss-normalize-charset": "1.1.1",
2496+ "postcss-normalize-url": "3.0.8",
2497+ "postcss-ordered-values": "2.2.3",
2498+ "postcss-reduce-idents": "2.4.0",
2499+ "postcss-reduce-initial": "1.0.1",
2500+ "postcss-reduce-transforms": "1.0.4",
2501+ "postcss-svgo": "2.1.6",
2502+ "postcss-unique-selectors": "2.0.2",
2503+ "postcss-value-parser": "3.3.0",
2504+ "postcss-zindex": "2.2.0"
2505+ }
2506+ },
2507+ "csso": {
2508+ "version": "2.3.2",
2509+ "resolved": "https://registry.npmjs.org/csso/-/csso-2.3.2.tgz",
2510+ "integrity": "sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U=",
2511+ "dev": true,
2512+ "requires": {
2513+ "clap": "1.2.3",
2514+ "source-map": "0.5.7"
2515+ },
2516+ "dependencies": {
2517+ "source-map": {
2518+ "version": "0.5.7",
2519+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
2520+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
2521+ "dev": true
2522+ }
2523+ }
2524+ },
23542525 "currently-unhandled": {
23552526 "version": "0.4.1",
23562527 "resolved": "http://registry.npm.taobao.org/currently-unhandled/download/currently-unhandled-0.4.1.tgz",
@@ -2360,15 +2531,6 @@
23602531 "array-find-index": "1.0.2"
23612532 }
23622533 },
2363- "d": {
2364- "version": "1.0.0",
2365- "resolved": "http://registry.npm.taobao.org/d/download/d-1.0.0.tgz",
2366- "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=",
2367- "dev": true,
2368- "requires": {
2369- "es5-ext": "0.10.42"
2370- }
2371- },
23722534 "dashdash": {
23732535 "version": "1.14.1",
23742536 "resolved": "http://registry.npm.taobao.org/dashdash/download/dashdash-1.14.1.tgz",
@@ -2380,7 +2542,7 @@
23802542 },
23812543 "date-format": {
23822544 "version": "1.2.0",
2383- "resolved": "https://registry.npmjs.org/date-format/-/date-format-1.2.0.tgz",
2545+ "resolved": "http://registry.npm.taobao.org/date-format/download/date-format-1.2.0.tgz",
23842546 "integrity": "sha1-YV6CjiM90aubua4JUODOzPpuytg="
23852547 },
23862548 "date-now": {
@@ -2460,20 +2622,11 @@
24602622 }
24612623 }
24622624 },
2463- "del": {
2464- "version": "2.2.2",
2465- "resolved": "http://registry.npm.taobao.org/del/download/del-2.2.2.tgz",
2466- "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=",
2467- "dev": true,
2468- "requires": {
2469- "globby": "5.0.0",
2470- "is-path-cwd": "1.0.0",
2471- "is-path-in-cwd": "1.0.1",
2472- "object-assign": "4.1.1",
2473- "pify": "2.3.0",
2474- "pinkie-promise": "2.0.1",
2475- "rimraf": "2.6.2"
2476- }
2625+ "defined": {
2626+ "version": "1.0.0",
2627+ "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
2628+ "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=",
2629+ "dev": true
24772630 },
24782631 "delayed-stream": {
24792632 "version": "1.0.0",
@@ -2528,7 +2681,7 @@
25282681 "electron-builder-lib": "20.14.7",
25292682 "fs-extra-p": "4.6.0",
25302683 "iconv-lite": "0.4.23",
2531- "js-yaml": "3.11.0",
2684+ "js-yaml": "3.13.1",
25322685 "parse-color": "1.0.0",
25332686 "sanitize-filename": "1.6.1"
25342687 },
@@ -2580,7 +2733,7 @@
25802733 "hosted-git-info": "2.6.0",
25812734 "is-ci": "1.1.0",
25822735 "isbinaryfile": "3.0.2",
2583- "js-yaml": "3.11.0",
2736+ "js-yaml": "3.13.1",
25842737 "lazy-val": "1.0.3",
25852738 "minimatch": "3.0.4",
25862739 "normalize-package-data": "2.4.0",
@@ -2606,7 +2759,7 @@
26062759 "debug": "3.1.0",
26072760 "fs-extra-p": "4.6.0",
26082761 "is-ci": "1.1.0",
2609- "js-yaml": "3.11.0",
2762+ "js-yaml": "3.13.1",
26102763 "lazy-val": "1.0.3",
26112764 "semver": "5.5.0",
26122765 "source-map-support": "0.5.6",
@@ -2644,21 +2797,12 @@
26442797 }
26452798 },
26462799 "doctrine": {
2647- "version": "1.5.0",
2648- "resolved": "http://registry.npm.taobao.org/doctrine/download/doctrine-1.5.0.tgz",
2649- "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=",
2800+ "version": "2.1.0",
2801+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
2802+ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
26502803 "dev": true,
26512804 "requires": {
2652- "esutils": "2.0.2",
2653- "isarray": "1.0.0"
2654- },
2655- "dependencies": {
2656- "isarray": {
2657- "version": "1.0.0",
2658- "resolved": "http://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz",
2659- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
2660- "dev": true
2661- }
2805+ "esutils": "2.0.2"
26622806 }
26632807 },
26642808 "dom-helpers": {
@@ -2884,7 +3028,7 @@
28843028 "hosted-git-info": "2.6.0",
28853029 "is-ci": "1.1.0",
28863030 "isbinaryfile": "3.0.2",
2887- "js-yaml": "3.11.0",
3031+ "js-yaml": "3.13.1",
28883032 "lazy-val": "1.0.3",
28893033 "minimatch": "3.0.4",
28903034 "normalize-package-data": "2.4.0",
@@ -3209,83 +3353,12 @@
32093353 "is-symbol": "1.0.1"
32103354 }
32113355 },
3212- "es5-ext": {
3213- "version": "0.10.42",
3214- "resolved": "http://registry.npm.taobao.org/es5-ext/download/es5-ext-0.10.42.tgz",
3215- "integrity": "sha1-jAfdM68E1dzRMQtc7xO+pjqJuo0=",
3216- "dev": true,
3217- "requires": {
3218- "es6-iterator": "2.0.3",
3219- "es6-symbol": "3.1.1",
3220- "next-tick": "1.0.0"
3221- }
3222- },
3223- "es6-iterator": {
3224- "version": "2.0.3",
3225- "resolved": "http://registry.npm.taobao.org/es6-iterator/download/es6-iterator-2.0.3.tgz",
3226- "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=",
3227- "dev": true,
3228- "requires": {
3229- "d": "1.0.0",
3230- "es5-ext": "0.10.42",
3231- "es6-symbol": "3.1.1"
3232- }
3233- },
3234- "es6-map": {
3235- "version": "0.1.5",
3236- "resolved": "http://registry.npm.taobao.org/es6-map/download/es6-map-0.1.5.tgz",
3237- "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=",
3238- "dev": true,
3239- "requires": {
3240- "d": "1.0.0",
3241- "es5-ext": "0.10.42",
3242- "es6-iterator": "2.0.3",
3243- "es6-set": "0.1.5",
3244- "es6-symbol": "3.1.1",
3245- "event-emitter": "0.3.5"
3246- }
3247- },
32483356 "es6-promise": {
32493357 "version": "4.2.4",
32503358 "resolved": "http://registry.npm.taobao.org/es6-promise/download/es6-promise-4.2.4.tgz",
32513359 "integrity": "sha1-3EIhwrFlGHYL2MOaUtjzVvwA7Sk=",
32523360 "dev": true
32533361 },
3254- "es6-set": {
3255- "version": "0.1.5",
3256- "resolved": "http://registry.npm.taobao.org/es6-set/download/es6-set-0.1.5.tgz",
3257- "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=",
3258- "dev": true,
3259- "requires": {
3260- "d": "1.0.0",
3261- "es5-ext": "0.10.42",
3262- "es6-iterator": "2.0.3",
3263- "es6-symbol": "3.1.1",
3264- "event-emitter": "0.3.5"
3265- }
3266- },
3267- "es6-symbol": {
3268- "version": "3.1.1",
3269- "resolved": "http://registry.npm.taobao.org/es6-symbol/download/es6-symbol-3.1.1.tgz",
3270- "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=",
3271- "dev": true,
3272- "requires": {
3273- "d": "1.0.0",
3274- "es5-ext": "0.10.42"
3275- }
3276- },
3277- "es6-weak-map": {
3278- "version": "2.0.2",
3279- "resolved": "http://registry.npm.taobao.org/es6-weak-map/download/es6-weak-map-2.0.2.tgz",
3280- "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=",
3281- "dev": true,
3282- "requires": {
3283- "d": "1.0.0",
3284- "es5-ext": "0.10.42",
3285- "es6-iterator": "2.0.3",
3286- "es6-symbol": "3.1.1"
3287- }
3288- },
32893362 "escape-html": {
32903363 "version": "1.0.3",
32913364 "resolved": "http://registry.npm.taobao.org/escape-html/download/escape-html-1.0.3.tgz",
@@ -3303,121 +3376,235 @@
33033376 "resolved": "http://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz",
33043377 "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
33053378 },
3306- "escope": {
3307- "version": "3.6.0",
3308- "resolved": "http://registry.npm.taobao.org/escope/download/escope-3.6.0.tgz",
3309- "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=",
3310- "dev": true,
3311- "requires": {
3312- "es6-map": "0.1.5",
3313- "es6-weak-map": "2.0.2",
3314- "esrecurse": "4.2.1",
3315- "estraverse": "4.2.0"
3316- }
3317- },
33183379 "eslint": {
3319- "version": "3.7.1",
3320- "resolved": "http://registry.npm.taobao.org/eslint/download/eslint-3.7.1.tgz",
3321- "integrity": "sha1-f6qEWZ4P6kIvBLwy20kFQFGj8Ro=",
3380+ "version": "4.18.2",
3381+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.18.2.tgz",
3382+ "integrity": "sha512-qy4i3wODqKMYfz9LUI8N2qYDkHkoieTbiHpMrYUI/WbjhXJQr7lI4VngixTgaG+yHX+NBCv7nW4hA0ShbvaNKw==",
33223383 "dev": true,
33233384 "requires": {
3324- "chalk": "1.1.3",
3385+ "ajv": "5.5.2",
3386+ "babel-code-frame": "6.26.0",
3387+ "chalk": "2.4.2",
33253388 "concat-stream": "1.6.2",
3326- "debug": "2.6.9",
3327- "doctrine": "1.5.0",
3328- "escope": "3.6.0",
3389+ "cross-spawn": "5.1.0",
3390+ "debug": "3.1.0",
3391+ "doctrine": "2.1.0",
3392+ "eslint-scope": "3.7.3",
3393+ "eslint-visitor-keys": "1.0.0",
33293394 "espree": "3.5.4",
3330- "estraverse": "4.2.0",
3395+ "esquery": "1.0.1",
33313396 "esutils": "2.0.2",
33323397 "file-entry-cache": "2.0.0",
3398+ "functional-red-black-tree": "1.0.1",
33333399 "glob": "7.1.2",
3334- "globals": "9.18.0",
3335- "ignore": "3.3.8",
3400+ "globals": "11.12.0",
3401+ "ignore": "3.3.10",
33363402 "imurmurhash": "0.1.4",
3337- "inquirer": "0.12.0",
3338- "is-my-json-valid": "2.17.2",
3403+ "inquirer": "3.3.0",
33393404 "is-resolvable": "1.1.0",
3340- "js-yaml": "3.11.0",
3341- "json-stable-stringify": "1.0.1",
3405+ "js-yaml": "3.13.1",
3406+ "json-stable-stringify-without-jsonify": "1.0.1",
33423407 "levn": "0.3.0",
3343- "lodash": "4.17.11",
3408+ "lodash": "4.17.14",
3409+ "minimatch": "3.0.4",
33443410 "mkdirp": "0.5.1",
33453411 "natural-compare": "1.4.0",
33463412 "optionator": "0.8.2",
33473413 "path-is-inside": "1.0.2",
3348- "pluralize": "1.2.1",
3349- "progress": "1.1.8",
3414+ "pluralize": "7.0.0",
3415+ "progress": "2.0.3",
33503416 "require-uncached": "1.0.3",
3351- "shelljs": "0.6.1",
3352- "strip-bom": "3.0.0",
3353- "strip-json-comments": "1.0.4",
3354- "table": "3.8.3",
3355- "text-table": "0.2.0",
3356- "user-home": "2.0.0"
3417+ "semver": "5.5.0",
3418+ "strip-ansi": "4.0.0",
3419+ "strip-json-comments": "2.0.1",
3420+ "table": "4.0.2",
3421+ "text-table": "0.2.0"
33573422 },
33583423 "dependencies": {
3359- "debug": {
3360- "version": "2.6.9",
3361- "resolved": "http://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz",
3362- "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
3363- "dev": true,
3364- "requires": {
3365- "ms": "2.0.0"
3366- }
3367- },
3368- "pluralize": {
3369- "version": "1.2.1",
3370- "resolved": "http://registry.npm.taobao.org/pluralize/download/pluralize-1.2.1.tgz",
3371- "integrity": "sha1-0aIUg/0iu0HlihL6NCGCMUCJfEU=",
3424+ "ansi-regex": {
3425+ "version": "3.0.0",
3426+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
3427+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
33723428 "dev": true
33733429 },
3374- "shelljs": {
3375- "version": "0.6.1",
3376- "resolved": "http://registry.npm.taobao.org/shelljs/download/shelljs-0.6.1.tgz",
3377- "integrity": "sha1-7GIRvtGSBEIIj+D3Cyg3Iy7SyKg=",
3430+ "ansi-styles": {
3431+ "version": "3.2.1",
3432+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
3433+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
3434+ "dev": true,
3435+ "requires": {
3436+ "color-convert": "1.9.1"
3437+ }
3438+ },
3439+ "chalk": {
3440+ "version": "2.4.2",
3441+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
3442+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
3443+ "dev": true,
3444+ "requires": {
3445+ "ansi-styles": "3.2.1",
3446+ "escape-string-regexp": "1.0.5",
3447+ "supports-color": "5.5.0"
3448+ }
3449+ },
3450+ "globals": {
3451+ "version": "11.12.0",
3452+ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
3453+ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
33783454 "dev": true
33793455 },
3380- "strip-bom": {
3456+ "has-flag": {
33813457 "version": "3.0.0",
3382- "resolved": "http://registry.npm.taobao.org/strip-bom/download/strip-bom-3.0.0.tgz",
3383- "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
3458+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
3459+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
33843460 "dev": true
33853461 },
3386- "user-home": {
3387- "version": "2.0.0",
3388- "resolved": "http://registry.npm.taobao.org/user-home/download/user-home-2.0.0.tgz",
3389- "integrity": "sha1-nHC/2Babwdy/SGBODwS4tJzenp8=",
3462+ "pluralize": {
3463+ "version": "7.0.0",
3464+ "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz",
3465+ "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
3466+ "dev": true
3467+ },
3468+ "strip-ansi": {
3469+ "version": "4.0.0",
3470+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
3471+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
3472+ "dev": true,
3473+ "requires": {
3474+ "ansi-regex": "3.0.0"
3475+ }
3476+ },
3477+ "strip-json-comments": {
3478+ "version": "2.0.1",
3479+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
3480+ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
3481+ "dev": true
3482+ },
3483+ "supports-color": {
3484+ "version": "5.5.0",
3485+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
3486+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
33903487 "dev": true,
33913488 "requires": {
3392- "os-homedir": "1.0.2"
3489+ "has-flag": "3.0.0"
33933490 }
33943491 }
33953492 }
33963493 },
33973494 "eslint-plugin-react": {
3398- "version": "6.4.1",
3399- "resolved": "http://registry.npm.taobao.org/eslint-plugin-react/download/eslint-plugin-react-6.4.1.tgz",
3400- "integrity": "sha1-fRqt50fbFYkvce7h/qSt35e8+is=",
3495+ "version": "7.14.2",
3496+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.14.2.tgz",
3497+ "integrity": "sha512-jZdnKe3ip7FQOdjxks9XPN0pjUKZYq48OggNMd16Sk+8VXx6JOvXmlElxROCgp7tiUsTsze3jd78s/9AFJP2mA==",
3498+ "dev": true,
3499+ "requires": {
3500+ "array-includes": "3.0.3",
3501+ "doctrine": "2.1.0",
3502+ "has": "1.0.3",
3503+ "jsx-ast-utils": "2.2.1",
3504+ "object.entries": "1.1.0",
3505+ "object.fromentries": "2.0.0",
3506+ "object.values": "1.1.0",
3507+ "prop-types": "15.7.2",
3508+ "resolve": "1.11.1"
3509+ },
3510+ "dependencies": {
3511+ "has": {
3512+ "version": "1.0.3",
3513+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
3514+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
3515+ "dev": true,
3516+ "requires": {
3517+ "function-bind": "1.1.1"
3518+ }
3519+ },
3520+ "loose-envify": {
3521+ "version": "1.4.0",
3522+ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
3523+ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
3524+ "dev": true,
3525+ "requires": {
3526+ "js-tokens": "3.0.2"
3527+ }
3528+ },
3529+ "path-parse": {
3530+ "version": "1.0.6",
3531+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
3532+ "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
3533+ "dev": true
3534+ },
3535+ "prop-types": {
3536+ "version": "15.7.2",
3537+ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz",
3538+ "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==",
3539+ "dev": true,
3540+ "requires": {
3541+ "loose-envify": "1.4.0",
3542+ "object-assign": "4.1.1",
3543+ "react-is": "16.8.6"
3544+ }
3545+ },
3546+ "react-is": {
3547+ "version": "16.8.6",
3548+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.8.6.tgz",
3549+ "integrity": "sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA==",
3550+ "dev": true
3551+ },
3552+ "resolve": {
3553+ "version": "1.11.1",
3554+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz",
3555+ "integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==",
3556+ "dev": true,
3557+ "requires": {
3558+ "path-parse": "1.0.6"
3559+ }
3560+ }
3561+ }
3562+ },
3563+ "eslint-scope": {
3564+ "version": "3.7.3",
3565+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz",
3566+ "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==",
34013567 "dev": true,
34023568 "requires": {
3403- "doctrine": "1.5.0",
3404- "jsx-ast-utils": "1.4.1"
3569+ "esrecurse": "4.2.1",
3570+ "estraverse": "4.2.0"
34053571 }
34063572 },
3573+ "eslint-visitor-keys": {
3574+ "version": "1.0.0",
3575+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz",
3576+ "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==",
3577+ "dev": true
3578+ },
34073579 "espree": {
34083580 "version": "3.5.4",
3409- "resolved": "http://registry.npm.taobao.org/espree/download/espree-3.5.4.tgz",
3410- "integrity": "sha1-sPRHGHyKi+2US4FaZgvd9d610ac=",
3581+ "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz",
3582+ "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==",
34113583 "dev": true,
34123584 "requires": {
3413- "acorn": "5.5.3",
3585+ "acorn": "5.7.3",
34143586 "acorn-jsx": "3.0.1"
34153587 }
34163588 },
3589+ "esprima": {
3590+ "version": "4.0.1",
3591+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
3592+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
3593+ "dev": true
3594+ },
3595+ "esquery": {
3596+ "version": "1.0.1",
3597+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz",
3598+ "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==",
3599+ "dev": true,
3600+ "requires": {
3601+ "estraverse": "4.2.0"
3602+ }
3603+ },
34173604 "esrecurse": {
34183605 "version": "4.2.1",
3419- "resolved": "http://registry.npm.taobao.org/esrecurse/download/esrecurse-4.2.1.tgz",
3420- "integrity": "sha1-AHo7n9vCs7uH5IeeoZyS/b05Qs8=",
3606+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz",
3607+ "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==",
34213608 "dev": true,
34223609 "requires": {
34233610 "estraverse": "4.2.0"
@@ -3440,16 +3627,6 @@
34403627 "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=",
34413628 "dev": true
34423629 },
3443- "event-emitter": {
3444- "version": "0.3.5",
3445- "resolved": "http://registry.npm.taobao.org/event-emitter/download/event-emitter-0.3.5.tgz",
3446- "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=",
3447- "dev": true,
3448- "requires": {
3449- "d": "1.0.0",
3450- "es5-ext": "0.10.42"
3451- }
3452- },
34533630 "event-stream": {
34543631 "version": "3.3.4",
34553632 "resolved": "http://registry.npm.taobao.org/event-stream/download/event-stream-3.3.4.tgz",
@@ -3492,12 +3669,6 @@
34923669 "strip-eof": "1.0.0"
34933670 }
34943671 },
3495- "exit-hook": {
3496- "version": "1.1.1",
3497- "resolved": "http://registry.npm.taobao.org/exit-hook/download/exit-hook-1.1.1.tgz",
3498- "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=",
3499- "dev": true
3500- },
35013672 "expand-brackets": {
35023673 "version": "0.1.5",
35033674 "resolved": "http://registry.npm.taobao.org/expand-brackets/download/expand-brackets-0.1.5.tgz",
@@ -3589,6 +3760,17 @@
35893760 "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
35903761 "dev": true
35913762 },
3763+ "external-editor": {
3764+ "version": "2.2.0",
3765+ "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz",
3766+ "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==",
3767+ "dev": true,
3768+ "requires": {
3769+ "chardet": "0.4.2",
3770+ "iconv-lite": "0.4.23",
3771+ "tmp": "0.0.33"
3772+ }
3773+ },
35923774 "extglob": {
35933775 "version": "0.3.2",
35943776 "resolved": "http://registry.npm.taobao.org/extglob/download/extglob-0.3.2.tgz",
@@ -3665,9 +3847,9 @@
36653847 "dev": true
36663848 },
36673849 "fastparse": {
3668- "version": "1.1.1",
3669- "resolved": "http://registry.npm.taobao.org/fastparse/download/fastparse-1.1.1.tgz",
3670- "integrity": "sha1-0eJkOzipTXWDtHkGDmxK/8lAcfg=",
3850+ "version": "1.1.2",
3851+ "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz",
3852+ "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==",
36713853 "dev": true
36723854 },
36733855 "fbjs": {
@@ -3718,13 +3900,12 @@
37183900 }
37193901 },
37203902 "figures": {
3721- "version": "1.7.0",
3722- "resolved": "http://registry.npm.taobao.org/figures/download/figures-1.7.0.tgz",
3723- "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=",
3903+ "version": "2.0.0",
3904+ "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
3905+ "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
37243906 "dev": true,
37253907 "requires": {
3726- "escape-string-regexp": "1.0.5",
3727- "object-assign": "4.1.1"
3908+ "escape-string-regexp": "1.0.5"
37283909 }
37293910 },
37303911 "file-entry-cache": {
@@ -3733,7 +3914,7 @@
37333914 "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=",
37343915 "dev": true,
37353916 "requires": {
3736- "flat-cache": "1.3.0",
3917+ "flat-cache": "1.3.4",
37373918 "object-assign": "4.1.1"
37383919 }
37393920 },
@@ -3754,14 +3935,14 @@
37543935 },
37553936 "fill-range": {
37563937 "version": "2.2.4",
3757- "resolved": "http://registry.npm.taobao.org/fill-range/download/fill-range-2.2.4.tgz",
3758- "integrity": "sha1-6x53OrsFbc2N8r/favWbizqTZWU=",
3938+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz",
3939+ "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==",
37593940 "dev": true,
37603941 "requires": {
37613942 "is-number": "2.1.0",
37623943 "isobject": "2.1.0",
3763- "randomatic": "3.0.0",
3764- "repeat-element": "1.1.2",
3944+ "randomatic": "3.1.1",
3945+ "repeat-element": "1.1.3",
37653946 "repeat-string": "1.6.1"
37663947 }
37673948 },
@@ -3846,25 +4027,31 @@
38464027 }
38474028 },
38484029 "flat-cache": {
3849- "version": "1.3.0",
3850- "resolved": "http://registry.npm.taobao.org/flat-cache/download/flat-cache-1.3.0.tgz",
3851- "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=",
4030+ "version": "1.3.4",
4031+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.4.tgz",
4032+ "integrity": "sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==",
38524033 "dev": true,
38534034 "requires": {
38544035 "circular-json": "0.3.3",
3855- "del": "2.2.2",
38564036 "graceful-fs": "4.1.11",
4037+ "rimraf": "2.6.2",
38574038 "write": "0.2.1"
38584039 },
38594040 "dependencies": {
38604041 "circular-json": {
38614042 "version": "0.3.3",
3862- "resolved": "http://registry.npm.taobao.org/circular-json/download/circular-json-0.3.3.tgz",
3863- "integrity": "sha1-gVyZ6oT2gJUp0vRXkb34JxE1LWY=",
4043+ "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz",
4044+ "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==",
38644045 "dev": true
38654046 }
38664047 }
38674048 },
4049+ "flatten": {
4050+ "version": "1.0.2",
4051+ "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz",
4052+ "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=",
4053+ "dev": true
4054+ },
38684055 "follow-redirects": {
38694056 "version": "1.0.0",
38704057 "resolved": "http://registry.npm.taobao.org/follow-redirects/download/follow-redirects-1.0.0.tgz",
@@ -4595,9 +4782,9 @@
45954782 }
45964783 },
45974784 "fstream": {
4598- "version": "1.0.11",
4599- "resolved": "http://registry.npm.taobao.org/fstream/download/fstream-1.0.11.tgz",
4600- "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=",
4785+ "version": "1.0.12",
4786+ "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz",
4787+ "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==",
46014788 "dev": true,
46024789 "requires": {
46034790 "graceful-fs": "4.1.11",
@@ -4612,6 +4799,12 @@
46124799 "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=",
46134800 "dev": true
46144801 },
4802+ "functional-red-black-tree": {
4803+ "version": "1.0.1",
4804+ "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
4805+ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
4806+ "dev": true
4807+ },
46154808 "gauge": {
46164809 "version": "2.7.4",
46174810 "resolved": "http://registry.npm.taobao.org/gauge/download/gauge-2.7.4.tgz",
@@ -4630,26 +4823,11 @@
46304823 },
46314824 "gaze": {
46324825 "version": "1.1.3",
4633- "resolved": "http://registry.npm.taobao.org/gaze/download/gaze-1.1.3.tgz",
4634- "integrity": "sha1-xEFzPhO5J6yMD/C0w7Az8ogSkko=",
4635- "dev": true,
4636- "requires": {
4637- "globule": "1.2.0"
4638- }
4639- },
4640- "generate-function": {
4641- "version": "2.0.0",
4642- "resolved": "http://registry.npm.taobao.org/generate-function/download/generate-function-2.0.0.tgz",
4643- "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=",
4644- "dev": true
4645- },
4646- "generate-object-property": {
4647- "version": "1.2.0",
4648- "resolved": "http://registry.npm.taobao.org/generate-object-property/download/generate-object-property-1.2.0.tgz",
4649- "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=",
4826+ "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz",
4827+ "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==",
46504828 "dev": true,
46514829 "requires": {
4652- "is-property": "1.0.2"
4830+ "globule": "1.2.1"
46534831 }
46544832 },
46554833 "get-caller-file": {
@@ -4734,28 +4912,14 @@
47344912 "resolved": "http://registry.npm.taobao.org/globals/download/globals-9.18.0.tgz",
47354913 "integrity": "sha1-qjiWs+abSH8X4x7SFD1pqOMMLYo="
47364914 },
4737- "globby": {
4738- "version": "5.0.0",
4739- "resolved": "http://registry.npm.taobao.org/globby/download/globby-5.0.0.tgz",
4740- "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=",
4741- "dev": true,
4742- "requires": {
4743- "array-union": "1.0.2",
4744- "arrify": "1.0.1",
4745- "glob": "7.1.2",
4746- "object-assign": "4.1.1",
4747- "pify": "2.3.0",
4748- "pinkie-promise": "2.0.1"
4749- }
4750- },
47514915 "globule": {
4752- "version": "1.2.0",
4753- "resolved": "http://registry.npm.taobao.org/globule/download/globule-1.2.0.tgz",
4754- "integrity": "sha1-HcScaCLdnoovoAuiopUAboZkvQk=",
4916+ "version": "1.2.1",
4917+ "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz",
4918+ "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==",
47554919 "dev": true,
47564920 "requires": {
47574921 "glob": "7.1.2",
4758- "lodash": "4.17.11",
4922+ "lodash": "4.17.14",
47594923 "minimatch": "3.0.4"
47604924 }
47614925 },
@@ -4783,12 +4947,6 @@
47834947 "resolved": "http://registry.npm.taobao.org/graceful-fs/download/graceful-fs-4.1.11.tgz",
47844948 "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg="
47854949 },
4786- "graceful-readlink": {
4787- "version": "1.0.1",
4788- "resolved": "http://registry.npm.taobao.org/graceful-readlink/download/graceful-readlink-1.0.1.tgz",
4789- "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=",
4790- "dev": true
4791- },
47924950 "gud": {
47934951 "version": "1.0.0",
47944952 "resolved": "https://registry.npmjs.org/gud/-/gud-1.0.0.tgz",
@@ -4833,6 +4991,12 @@
48334991 "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
48344992 "dev": true
48354993 },
4994+ "has-symbols": {
4995+ "version": "1.0.0",
4996+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz",
4997+ "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=",
4998+ "dev": true
4999+ },
48365000 "has-unicode": {
48375001 "version": "2.0.1",
48385002 "resolved": "http://registry.npm.taobao.org/has-unicode/download/has-unicode-2.0.1.tgz",
@@ -4908,6 +5072,12 @@
49085072 "integrity": "sha1-IyNbKasjDFdqqw1PE/wEawsDgiI=",
49095073 "dev": true
49105074 },
5075+ "html-comment-regex": {
5076+ "version": "1.1.2",
5077+ "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz",
5078+ "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==",
5079+ "dev": true
5080+ },
49115081 "html-entities": {
49125082 "version": "1.2.1",
49135083 "resolved": "http://registry.npm.taobao.org/html-entities/download/html-entities-1.2.1.tgz",
@@ -4953,7 +5123,7 @@
49535123 "requires": {
49545124 "http-proxy": "1.17.0",
49555125 "is-glob": "3.1.0",
4956- "lodash": "4.17.11",
5126+ "lodash": "4.17.14",
49575127 "micromatch": "2.3.11"
49585128 },
49595129 "dependencies": {
@@ -5009,6 +5179,12 @@
50095179 "safer-buffer": "2.1.2"
50105180 }
50115181 },
5182+ "icss-replace-symbols": {
5183+ "version": "1.1.0",
5184+ "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz",
5185+ "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=",
5186+ "dev": true
5187+ },
50125188 "ieee754": {
50135189 "version": "1.1.11",
50145190 "resolved": "http://registry.npm.taobao.org/ieee754/download/ieee754-1.1.11.tgz",
@@ -5016,9 +5192,9 @@
50165192 "dev": true
50175193 },
50185194 "ignore": {
5019- "version": "3.3.8",
5020- "resolved": "http://registry.npm.taobao.org/ignore/download/ignore-3.3.8.tgz",
5021- "integrity": "sha1-P46cNdOHCKOn4Omrtsc+fudweys=",
5195+ "version": "3.3.10",
5196+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz",
5197+ "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==",
50225198 "dev": true
50235199 },
50245200 "import-lazy": {
@@ -5048,6 +5224,12 @@
50485224 "repeating": "2.0.1"
50495225 }
50505226 },
5227+ "indexes-of": {
5228+ "version": "1.0.1",
5229+ "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz",
5230+ "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=",
5231+ "dev": true
5232+ },
50515233 "indexof": {
50525234 "version": "0.0.1",
50535235 "resolved": "http://registry.npm.taobao.org/indexof/download/indexof-0.0.1.tgz",
@@ -5075,24 +5257,93 @@
50755257 "dev": true
50765258 },
50775259 "inquirer": {
5078- "version": "0.12.0",
5079- "resolved": "http://registry.npm.taobao.org/inquirer/download/inquirer-0.12.0.tgz",
5080- "integrity": "sha1-HvK/1jUE3wvHV4X/+MLEHfEvB34=",
5260+ "version": "3.3.0",
5261+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz",
5262+ "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==",
50815263 "dev": true,
50825264 "requires": {
5083- "ansi-escapes": "1.4.0",
5084- "ansi-regex": "2.1.1",
5085- "chalk": "1.1.3",
5086- "cli-cursor": "1.0.2",
5265+ "ansi-escapes": "3.2.0",
5266+ "chalk": "2.4.2",
5267+ "cli-cursor": "2.1.0",
50875268 "cli-width": "2.2.0",
5088- "figures": "1.7.0",
5089- "lodash": "4.17.11",
5090- "readline2": "1.0.1",
5091- "run-async": "0.1.0",
5092- "rx-lite": "3.1.2",
5093- "string-width": "1.0.2",
5094- "strip-ansi": "3.0.1",
5269+ "external-editor": "2.2.0",
5270+ "figures": "2.0.0",
5271+ "lodash": "4.17.14",
5272+ "mute-stream": "0.0.7",
5273+ "run-async": "2.3.0",
5274+ "rx-lite": "4.0.8",
5275+ "rx-lite-aggregates": "4.0.8",
5276+ "string-width": "2.1.1",
5277+ "strip-ansi": "4.0.0",
50955278 "through": "2.3.8"
5279+ },
5280+ "dependencies": {
5281+ "ansi-regex": {
5282+ "version": "3.0.0",
5283+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
5284+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
5285+ "dev": true
5286+ },
5287+ "ansi-styles": {
5288+ "version": "3.2.1",
5289+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
5290+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
5291+ "dev": true,
5292+ "requires": {
5293+ "color-convert": "1.9.1"
5294+ }
5295+ },
5296+ "chalk": {
5297+ "version": "2.4.2",
5298+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
5299+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
5300+ "dev": true,
5301+ "requires": {
5302+ "ansi-styles": "3.2.1",
5303+ "escape-string-regexp": "1.0.5",
5304+ "supports-color": "5.5.0"
5305+ }
5306+ },
5307+ "has-flag": {
5308+ "version": "3.0.0",
5309+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
5310+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
5311+ "dev": true
5312+ },
5313+ "is-fullwidth-code-point": {
5314+ "version": "2.0.0",
5315+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
5316+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
5317+ "dev": true
5318+ },
5319+ "string-width": {
5320+ "version": "2.1.1",
5321+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
5322+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
5323+ "dev": true,
5324+ "requires": {
5325+ "is-fullwidth-code-point": "2.0.0",
5326+ "strip-ansi": "4.0.0"
5327+ }
5328+ },
5329+ "strip-ansi": {
5330+ "version": "4.0.0",
5331+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
5332+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
5333+ "dev": true,
5334+ "requires": {
5335+ "ansi-regex": "3.0.0"
5336+ }
5337+ },
5338+ "supports-color": {
5339+ "version": "5.5.0",
5340+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
5341+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
5342+ "dev": true,
5343+ "requires": {
5344+ "has-flag": "3.0.0"
5345+ }
5346+ }
50965347 }
50975348 },
50985349 "interpret": {
@@ -5121,6 +5372,12 @@
51215372 "integrity": "sha1-4/o1e3c9phnybpXwSdBVxyeW+Gs=",
51225373 "dev": true
51235374 },
5375+ "is-absolute-url": {
5376+ "version": "2.1.0",
5377+ "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz",
5378+ "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=",
5379+ "dev": true
5380+ },
51245381 "is-arrayish": {
51255382 "version": "0.2.1",
51265383 "resolved": "http://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.2.1.tgz",
@@ -5240,25 +5497,6 @@
52405497 "is-path-inside": "1.0.1"
52415498 }
52425499 },
5243- "is-my-ip-valid": {
5244- "version": "1.0.0",
5245- "resolved": "http://registry.npm.taobao.org/is-my-ip-valid/download/is-my-ip-valid-1.0.0.tgz",
5246- "integrity": "sha1-ezUbjo7dTTmV1NBmaA5mTZRpaCQ=",
5247- "dev": true
5248- },
5249- "is-my-json-valid": {
5250- "version": "2.17.2",
5251- "resolved": "http://registry.npm.taobao.org/is-my-json-valid/download/is-my-json-valid-2.17.2.tgz",
5252- "integrity": "sha1-ayEDoojpTvPeXPFdKd2F/Et41lw=",
5253- "dev": true,
5254- "requires": {
5255- "generate-function": "2.0.0",
5256- "generate-object-property": "1.2.0",
5257- "is-my-ip-valid": "1.0.0",
5258- "jsonpointer": "4.0.1",
5259- "xtend": "4.0.1"
5260- }
5261- },
52625500 "is-npm": {
52635501 "version": "1.0.0",
52645502 "resolved": "http://registry.npm.taobao.org/is-npm/download/is-npm-1.0.0.tgz",
@@ -5280,21 +5518,6 @@
52805518 "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=",
52815519 "dev": true
52825520 },
5283- "is-path-cwd": {
5284- "version": "1.0.0",
5285- "resolved": "http://registry.npm.taobao.org/is-path-cwd/download/is-path-cwd-1.0.0.tgz",
5286- "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=",
5287- "dev": true
5288- },
5289- "is-path-in-cwd": {
5290- "version": "1.0.1",
5291- "resolved": "http://registry.npm.taobao.org/is-path-in-cwd/download/is-path-in-cwd-1.0.1.tgz",
5292- "integrity": "sha1-WsSLNF72dTOb1sekipEhELJBz1I=",
5293- "dev": true,
5294- "requires": {
5295- "is-path-inside": "1.0.1"
5296- }
5297- },
52985521 "is-path-inside": {
52995522 "version": "1.0.1",
53005523 "resolved": "http://registry.npm.taobao.org/is-path-inside/download/is-path-inside-1.0.1.tgz",
@@ -5304,29 +5527,46 @@
53045527 "path-is-inside": "1.0.2"
53055528 }
53065529 },
5307- "is-posix-bracket": {
5308- "version": "0.1.1",
5309- "resolved": "http://registry.npm.taobao.org/is-posix-bracket/download/is-posix-bracket-0.1.1.tgz",
5310- "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=",
5311- "dev": true
5312- },
5313- "is-primitive": {
5314- "version": "2.0.0",
5315- "resolved": "http://registry.npm.taobao.org/is-primitive/download/is-primitive-2.0.0.tgz",
5316- "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=",
5530+ "is-plain-obj": {
5531+ "version": "1.1.0",
5532+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
5533+ "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=",
53175534 "dev": true
53185535 },
5319- "is-promise": {
5536+ "is-plain-object": {
5537+ "version": "2.0.4",
5538+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
5539+ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
5540+ "dev": true,
5541+ "requires": {
5542+ "isobject": "3.0.1"
5543+ },
5544+ "dependencies": {
5545+ "isobject": {
5546+ "version": "3.0.1",
5547+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
5548+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
5549+ "dev": true
5550+ }
5551+ }
5552+ },
5553+ "is-posix-bracket": {
5554+ "version": "0.1.1",
5555+ "resolved": "http://registry.npm.taobao.org/is-posix-bracket/download/is-posix-bracket-0.1.1.tgz",
5556+ "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=",
5557+ "dev": true
5558+ },
5559+ "is-primitive": {
5560+ "version": "2.0.0",
5561+ "resolved": "http://registry.npm.taobao.org/is-primitive/download/is-primitive-2.0.0.tgz",
5562+ "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=",
5563+ "dev": true
5564+ },
5565+ "is-promise": {
53205566 "version": "2.1.0",
53215567 "resolved": "http://registry.npm.taobao.org/is-promise/download/is-promise-2.1.0.tgz",
53225568 "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o="
53235569 },
5324- "is-property": {
5325- "version": "1.0.2",
5326- "resolved": "http://registry.npm.taobao.org/is-property/download/is-property-1.0.2.tgz",
5327- "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=",
5328- "dev": true
5329- },
53305570 "is-redirect": {
53315571 "version": "1.0.0",
53325572 "resolved": "http://registry.npm.taobao.org/is-redirect/download/is-redirect-1.0.0.tgz",
@@ -5344,8 +5584,8 @@
53445584 },
53455585 "is-resolvable": {
53465586 "version": "1.1.0",
5347- "resolved": "http://registry.npm.taobao.org/is-resolvable/download/is-resolvable-1.1.0.tgz",
5348- "integrity": "sha1-+xj4fOH+uSUWnJpAfBkxijIG7Yg=",
5587+ "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz",
5588+ "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==",
53495589 "dev": true
53505590 },
53515591 "is-retry-allowed": {
@@ -5359,6 +5599,15 @@
53595599 "resolved": "http://registry.npm.taobao.org/is-stream/download/is-stream-1.1.0.tgz",
53605600 "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ="
53615601 },
5602+ "is-svg": {
5603+ "version": "2.1.0",
5604+ "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-2.1.0.tgz",
5605+ "integrity": "sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk=",
5606+ "dev": true,
5607+ "requires": {
5608+ "html-comment-regex": "1.1.2"
5609+ }
5610+ },
53625611 "is-symbol": {
53635612 "version": "1.0.1",
53645613 "resolved": "http://registry.npm.taobao.org/is-symbol/download/is-symbol-1.0.1.tgz",
@@ -5438,21 +5687,13 @@
54385687 "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls="
54395688 },
54405689 "js-yaml": {
5441- "version": "3.11.0",
5442- "resolved": "http://registry.npm.taobao.org/js-yaml/download/js-yaml-3.11.0.tgz",
5443- "integrity": "sha1-WXwai9VxUvJtYizkEXhRpR9euu8=",
5690+ "version": "3.13.1",
5691+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
5692+ "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
54445693 "dev": true,
54455694 "requires": {
54465695 "argparse": "1.0.10",
5447- "esprima": "4.0.0"
5448- },
5449- "dependencies": {
5450- "esprima": {
5451- "version": "4.0.0",
5452- "resolved": "http://registry.npm.taobao.org/esprima/download/esprima-4.0.0.tgz",
5453- "integrity": "sha1-RJnt3NERDgshi6zy+n9/WfVcqAQ=",
5454- "dev": true
5455- }
5696+ "esprima": "4.0.1"
54565697 }
54575698 },
54585699 "jsbn": {
@@ -5491,14 +5732,11 @@
54915732 "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=",
54925733 "dev": true
54935734 },
5494- "json-stable-stringify": {
5735+ "json-stable-stringify-without-jsonify": {
54955736 "version": "1.0.1",
5496- "resolved": "http://registry.npm.taobao.org/json-stable-stringify/download/json-stable-stringify-1.0.1.tgz",
5497- "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=",
5498- "dev": true,
5499- "requires": {
5500- "jsonify": "0.0.0"
5501- }
5737+ "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
5738+ "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=",
5739+ "dev": true
55025740 },
55035741 "json-stringify-safe": {
55045742 "version": "5.0.1",
@@ -5525,12 +5763,6 @@
55255763 "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=",
55265764 "dev": true
55275765 },
5528- "jsonpointer": {
5529- "version": "4.0.1",
5530- "resolved": "http://registry.npm.taobao.org/jsonpointer/download/jsonpointer-4.0.1.tgz",
5531- "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=",
5532- "dev": true
5533- },
55345766 "jsprim": {
55355767 "version": "1.4.1",
55365768 "resolved": "http://registry.npm.taobao.org/jsprim/download/jsprim-1.4.1.tgz",
@@ -5544,10 +5776,14 @@
55445776 }
55455777 },
55465778 "jsx-ast-utils": {
5547- "version": "1.4.1",
5548- "resolved": "http://registry.npm.taobao.org/jsx-ast-utils/download/jsx-ast-utils-1.4.1.tgz",
5549- "integrity": "sha1-OGchPo3Xm/Ho8jAMDPwe+xgsDfE=",
5550- "dev": true
5779+ "version": "2.2.1",
5780+ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.2.1.tgz",
5781+ "integrity": "sha512-v3FxCcAf20DayI+uxnCuw795+oOIkVu6EnJ1+kSzhqqTZHNkTZ7B66ZgLp4oLJ/gbA64cI0B7WRoHZMSRdyVRQ==",
5782+ "dev": true,
5783+ "requires": {
5784+ "array-includes": "3.0.3",
5785+ "object.assign": "4.1.0"
5786+ }
55515787 },
55525788 "keycode": {
55535789 "version": "2.2.0",
@@ -5656,14 +5892,9 @@
56565892 }
56575893 },
56585894 "lodash": {
5659- "version": "4.17.11",
5660- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
5661- "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg=="
5662- },
5663- "lodash-es": {
5664- "version": "4.17.10",
5665- "resolved": "http://registry.npm.taobao.org/lodash-es/download/lodash-es-4.17.10.tgz",
5666- "integrity": "sha1-Ys1xBM313YfyNag38O3g6OURfgU="
5895+ "version": "4.17.14",
5896+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.14.tgz",
5897+ "integrity": "sha512-mmKYbW3GLuJeX+iGP+Y7Gp1AiGHGbXHCOh/jZmrawMmsE7MS4znI3RL2FsjbqOyMayHInjOeykW7PEajUk1/xw=="
56675898 },
56685899 "lodash._baseassign": {
56695900 "version": "3.2.0",
@@ -5715,10 +5946,10 @@
57155946 "resolved": "http://registry.npm.taobao.org/lodash.assign/download/lodash.assign-4.2.0.tgz",
57165947 "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc="
57175948 },
5718- "lodash.clonedeep": {
5719- "version": "4.5.0",
5720- "resolved": "http://registry.npm.taobao.org/lodash.clonedeep/download/lodash.clonedeep-4.5.0.tgz",
5721- "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=",
5949+ "lodash.camelcase": {
5950+ "version": "4.3.0",
5951+ "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
5952+ "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=",
57225953 "dev": true
57235954 },
57245955 "lodash.defaults": {
@@ -5765,6 +5996,12 @@
57655996 "lodash.isarray": "3.0.4"
57665997 }
57675998 },
5999+ "lodash.memoize": {
6000+ "version": "4.1.2",
6001+ "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
6002+ "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=",
6003+ "dev": true
6004+ },
57686005 "lodash.pick": {
57696006 "version": "4.4.0",
57706007 "resolved": "http://registry.npm.taobao.org/lodash.pick/download/lodash.pick-4.4.0.tgz",
@@ -5783,6 +6020,18 @@
57836020 "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=",
57846021 "dev": true
57856022 },
6023+ "lodash.tail": {
6024+ "version": "4.1.1",
6025+ "resolved": "https://registry.npmjs.org/lodash.tail/-/lodash.tail-4.1.1.tgz",
6026+ "integrity": "sha1-0jM6NtnncXyK0vfKyv7HwytERmQ=",
6027+ "dev": true
6028+ },
6029+ "lodash.uniq": {
6030+ "version": "4.5.0",
6031+ "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
6032+ "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=",
6033+ "dev": true
6034+ },
57866035 "log4js": {
57876036 "version": "3.0.6",
57886037 "resolved": "https://registry.npmjs.org/log4js/-/log4js-3.0.6.tgz",
@@ -5872,10 +6121,16 @@
58726121 "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=",
58736122 "dev": true
58746123 },
6124+ "math-expression-evaluator": {
6125+ "version": "1.2.17",
6126+ "resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz",
6127+ "integrity": "sha1-3oGf282E3M2PrlnGrreWFbnSZqw=",
6128+ "dev": true
6129+ },
58756130 "math-random": {
5876- "version": "1.0.1",
5877- "resolved": "http://registry.npm.taobao.org/math-random/download/math-random-1.0.1.tgz",
5878- "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=",
6131+ "version": "1.0.4",
6132+ "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz",
6133+ "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==",
58796134 "dev": true
58806135 },
58816136 "mdurl": {
@@ -6009,6 +6264,19 @@
60096264 "object.omit": "2.0.1",
60106265 "parse-glob": "3.0.4",
60116266 "regex-cache": "0.4.4"
6267+ },
6268+ "dependencies": {
6269+ "braces": {
6270+ "version": "1.8.5",
6271+ "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
6272+ "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
6273+ "dev": true,
6274+ "requires": {
6275+ "expand-range": "1.8.2",
6276+ "preserve": "0.2.0",
6277+ "repeat-element": "1.1.3"
6278+ }
6279+ }
60126280 }
60136281 },
60146282 "mime": {
@@ -6059,6 +6327,24 @@
60596327 "resolved": "http://registry.npm.taobao.org/minimist/download/minimist-0.0.8.tgz",
60606328 "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
60616329 },
6330+ "mixin-object": {
6331+ "version": "2.0.1",
6332+ "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz",
6333+ "integrity": "sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=",
6334+ "dev": true,
6335+ "requires": {
6336+ "for-in": "0.1.8",
6337+ "is-extendable": "0.1.1"
6338+ },
6339+ "dependencies": {
6340+ "for-in": {
6341+ "version": "0.1.8",
6342+ "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz",
6343+ "integrity": "sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE=",
6344+ "dev": true
6345+ }
6346+ }
6347+ },
60626348 "mkdirp": {
60636349 "version": "0.5.1",
60646350 "resolved": "http://registry.npm.taobao.org/mkdirp/download/mkdirp-0.5.1.tgz",
@@ -6086,16 +6372,17 @@
60866372 "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
60876373 },
60886374 "mute-stream": {
6089- "version": "0.0.5",
6090- "resolved": "http://registry.npm.taobao.org/mute-stream/download/mute-stream-0.0.5.tgz",
6091- "integrity": "sha1-j7+rsKmKJT0xhDMfno3rc3L6xsA=",
6375+ "version": "0.0.7",
6376+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
6377+ "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=",
60926378 "dev": true
60936379 },
60946380 "nan": {
60956381 "version": "2.10.0",
60966382 "resolved": "http://registry.npm.taobao.org/nan/download/nan-2.10.0.tgz",
60976383 "integrity": "sha1-ltDNYQ69WNS03pzAxoKM2pnHVI8=",
6098- "dev": true
6384+ "dev": true,
6385+ "optional": true
60996386 },
61006387 "natural-compare": {
61016388 "version": "1.4.0",
@@ -6109,10 +6396,10 @@
61096396 "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=",
61106397 "dev": true
61116398 },
6112- "next-tick": {
6113- "version": "1.0.0",
6114- "resolved": "http://registry.npm.taobao.org/next-tick/download/next-tick-1.0.0.tgz",
6115- "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=",
6399+ "neo-async": {
6400+ "version": "2.6.1",
6401+ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz",
6402+ "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==",
61166403 "dev": true
61176404 },
61186405 "nice-try": {
@@ -6162,15 +6449,14 @@
61626449 }
61636450 },
61646451 "node-gyp": {
6165- "version": "3.6.2",
6166- "resolved": "http://registry.npm.taobao.org/node-gyp/download/node-gyp-3.6.2.tgz",
6167- "integrity": "sha1-m/vlRWIoYoSDjnUOrAUpWFP6HGA=",
6452+ "version": "3.8.0",
6453+ "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz",
6454+ "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==",
61686455 "dev": true,
61696456 "requires": {
6170- "fstream": "1.0.11",
6457+ "fstream": "1.0.12",
61716458 "glob": "7.1.2",
61726459 "graceful-fs": "4.1.11",
6173- "minimatch": "3.0.4",
61746460 "mkdirp": "0.5.1",
61756461 "nopt": "3.0.6",
61766462 "npmlog": "4.1.2",
@@ -6178,7 +6464,7 @@
61786464 "request": "2.87.0",
61796465 "rimraf": "2.6.2",
61806466 "semver": "5.3.0",
6181- "tar": "2.2.1",
6467+ "tar": "2.2.2",
61826468 "which": "1.3.1"
61836469 },
61846470 "dependencies": {
@@ -6268,9 +6554,9 @@
62686554 }
62696555 },
62706556 "node-sass": {
6271- "version": "3.8.0",
6272- "resolved": "http://registry.npm.taobao.org/node-sass/download/node-sass-3.8.0.tgz",
6273- "integrity": "sha1-7A+JrmYl4dmQ3H/3E7J16hXf7gU=",
6557+ "version": "4.12.0",
6558+ "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.12.0.tgz",
6559+ "integrity": "sha512-A1Iv4oN+Iel6EPv77/HddXErL2a+gZ4uBeZUy+a8O35CFYTXhgA8MgLCWBtwpGZdCvTvQ9d+bQxX/QC36GDPpQ==",
62746560 "dev": true,
62756561 "requires": {
62766562 "async-foreach": "0.1.3",
@@ -6280,15 +6566,36 @@
62806566 "get-stdin": "4.0.1",
62816567 "glob": "7.1.2",
62826568 "in-publish": "2.0.0",
6283- "lodash.clonedeep": "4.5.0",
6569+ "lodash": "4.17.14",
62846570 "meow": "3.7.0",
62856571 "mkdirp": "0.5.1",
6286- "nan": "2.10.0",
6287- "node-gyp": "3.6.2",
6288- "request": "2.87.0",
6289- "sass-graph": "2.2.4"
6572+ "nan": "2.14.0",
6573+ "node-gyp": "3.8.0",
6574+ "npmlog": "4.1.2",
6575+ "request": "2.88.0",
6576+ "sass-graph": "2.2.4",
6577+ "stdout-stream": "1.4.1",
6578+ "true-case-path": "1.0.3"
62906579 },
62916580 "dependencies": {
6581+ "ajv": {
6582+ "version": "6.10.2",
6583+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz",
6584+ "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==",
6585+ "dev": true,
6586+ "requires": {
6587+ "fast-deep-equal": "2.0.1",
6588+ "fast-json-stable-stringify": "2.0.0",
6589+ "json-schema-traverse": "0.4.1",
6590+ "uri-js": "4.2.2"
6591+ }
6592+ },
6593+ "aws4": {
6594+ "version": "1.8.0",
6595+ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
6596+ "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==",
6597+ "dev": true
6598+ },
62926599 "cross-spawn": {
62936600 "version": "3.0.1",
62946601 "resolved": "http://registry.npm.taobao.org/cross-spawn/download/cross-spawn-3.0.1.tgz",
@@ -6298,6 +6605,99 @@
62986605 "lru-cache": "4.1.3",
62996606 "which": "1.3.1"
63006607 }
6608+ },
6609+ "fast-deep-equal": {
6610+ "version": "2.0.1",
6611+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
6612+ "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
6613+ "dev": true
6614+ },
6615+ "har-validator": {
6616+ "version": "5.1.3",
6617+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
6618+ "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
6619+ "dev": true,
6620+ "requires": {
6621+ "ajv": "6.10.2",
6622+ "har-schema": "2.0.0"
6623+ }
6624+ },
6625+ "json-schema-traverse": {
6626+ "version": "0.4.1",
6627+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
6628+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
6629+ "dev": true
6630+ },
6631+ "mime-db": {
6632+ "version": "1.40.0",
6633+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz",
6634+ "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==",
6635+ "dev": true
6636+ },
6637+ "mime-types": {
6638+ "version": "2.1.24",
6639+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz",
6640+ "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==",
6641+ "dev": true,
6642+ "requires": {
6643+ "mime-db": "1.40.0"
6644+ }
6645+ },
6646+ "nan": {
6647+ "version": "2.14.0",
6648+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz",
6649+ "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==",
6650+ "dev": true
6651+ },
6652+ "oauth-sign": {
6653+ "version": "0.9.0",
6654+ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
6655+ "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
6656+ "dev": true
6657+ },
6658+ "request": {
6659+ "version": "2.88.0",
6660+ "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
6661+ "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
6662+ "dev": true,
6663+ "requires": {
6664+ "aws-sign2": "0.7.0",
6665+ "aws4": "1.8.0",
6666+ "caseless": "0.12.0",
6667+ "combined-stream": "1.0.6",
6668+ "extend": "3.0.2",
6669+ "forever-agent": "0.6.1",
6670+ "form-data": "2.3.2",
6671+ "har-validator": "5.1.3",
6672+ "http-signature": "1.2.0",
6673+ "is-typedarray": "1.0.0",
6674+ "isstream": "0.1.2",
6675+ "json-stringify-safe": "5.0.1",
6676+ "mime-types": "2.1.24",
6677+ "oauth-sign": "0.9.0",
6678+ "performance-now": "2.1.0",
6679+ "qs": "6.5.2",
6680+ "safe-buffer": "5.1.2",
6681+ "tough-cookie": "2.4.3",
6682+ "tunnel-agent": "0.6.0",
6683+ "uuid": "3.3.2"
6684+ }
6685+ },
6686+ "tough-cookie": {
6687+ "version": "2.4.3",
6688+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
6689+ "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
6690+ "dev": true,
6691+ "requires": {
6692+ "psl": "1.2.0",
6693+ "punycode": "1.4.1"
6694+ }
6695+ },
6696+ "uuid": {
6697+ "version": "3.3.2",
6698+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
6699+ "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==",
6700+ "dev": true
63016701 }
63026702 }
63036703 },
@@ -6337,6 +6737,30 @@
63376737 "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=",
63386738 "dev": true
63396739 },
6740+ "normalize-url": {
6741+ "version": "1.9.1",
6742+ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz",
6743+ "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=",
6744+ "dev": true,
6745+ "requires": {
6746+ "object-assign": "4.1.1",
6747+ "prepend-http": "1.0.4",
6748+ "query-string": "4.3.4",
6749+ "sort-keys": "1.1.2"
6750+ },
6751+ "dependencies": {
6752+ "query-string": {
6753+ "version": "4.3.4",
6754+ "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz",
6755+ "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=",
6756+ "dev": true,
6757+ "requires": {
6758+ "object-assign": "4.1.1",
6759+ "strict-uri-encode": "1.1.0"
6760+ }
6761+ }
6762+ }
6763+ },
63406764 "npm-run-all": {
63416765 "version": "4.1.3",
63426766 "resolved": "http://registry.npm.taobao.org/npm-run-all/download/npm-run-all-4.1.3.tgz",
@@ -6468,8 +6892,8 @@
64686892 },
64696893 "npmlog": {
64706894 "version": "4.1.2",
6471- "resolved": "http://registry.npm.taobao.org/npmlog/download/npmlog-4.1.2.tgz",
6472- "integrity": "sha1-CKfyqL9zRgR3mp76StXMcXq7lUs=",
6895+ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
6896+ "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
64736897 "dev": true,
64746898 "requires": {
64756899 "are-we-there-yet": "1.1.5",
@@ -6538,6 +6962,116 @@
65386962 "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=",
65396963 "dev": true
65406964 },
6965+ "object.assign": {
6966+ "version": "4.1.0",
6967+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
6968+ "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==",
6969+ "dev": true,
6970+ "requires": {
6971+ "define-properties": "1.1.2",
6972+ "function-bind": "1.1.1",
6973+ "has-symbols": "1.0.0",
6974+ "object-keys": "1.1.1"
6975+ },
6976+ "dependencies": {
6977+ "object-keys": {
6978+ "version": "1.1.1",
6979+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
6980+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
6981+ "dev": true
6982+ }
6983+ }
6984+ },
6985+ "object.entries": {
6986+ "version": "1.1.0",
6987+ "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.0.tgz",
6988+ "integrity": "sha512-l+H6EQ8qzGRxbkHOd5I/aHRhHDKoQXQ8g0BYt4uSweQU1/J6dZUOyWh9a2Vky35YCKjzmgxOzta2hH6kf9HuXA==",
6989+ "dev": true,
6990+ "requires": {
6991+ "define-properties": "1.1.3",
6992+ "es-abstract": "1.13.0",
6993+ "function-bind": "1.1.1",
6994+ "has": "1.0.3"
6995+ },
6996+ "dependencies": {
6997+ "define-properties": {
6998+ "version": "1.1.3",
6999+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
7000+ "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
7001+ "dev": true,
7002+ "requires": {
7003+ "object-keys": "1.1.1"
7004+ }
7005+ },
7006+ "es-abstract": {
7007+ "version": "1.13.0",
7008+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz",
7009+ "integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==",
7010+ "dev": true,
7011+ "requires": {
7012+ "es-to-primitive": "1.2.0",
7013+ "function-bind": "1.1.1",
7014+ "has": "1.0.3",
7015+ "is-callable": "1.1.4",
7016+ "is-regex": "1.0.4",
7017+ "object-keys": "1.1.1"
7018+ }
7019+ },
7020+ "es-to-primitive": {
7021+ "version": "1.2.0",
7022+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz",
7023+ "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==",
7024+ "dev": true,
7025+ "requires": {
7026+ "is-callable": "1.1.4",
7027+ "is-date-object": "1.0.1",
7028+ "is-symbol": "1.0.2"
7029+ }
7030+ },
7031+ "has": {
7032+ "version": "1.0.3",
7033+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
7034+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
7035+ "dev": true,
7036+ "requires": {
7037+ "function-bind": "1.1.1"
7038+ }
7039+ },
7040+ "is-callable": {
7041+ "version": "1.1.4",
7042+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz",
7043+ "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==",
7044+ "dev": true
7045+ },
7046+ "is-symbol": {
7047+ "version": "1.0.2",
7048+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz",
7049+ "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==",
7050+ "dev": true,
7051+ "requires": {
7052+ "has-symbols": "1.0.0"
7053+ }
7054+ },
7055+ "object-keys": {
7056+ "version": "1.1.1",
7057+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
7058+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
7059+ "dev": true
7060+ }
7061+ }
7062+ },
7063+ "object.fromentries": {
7064+ "version": "2.0.0",
7065+ "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.0.tgz",
7066+ "integrity": "sha512-9iLiI6H083uiqUuvzyY6qrlmc/Gz8hLQFOcb/Ri/0xXFkSNS3ctV+CbE6yM2+AnkYfOB3dGjdzC0wrMLIhQICA==",
7067+ "dev": true,
7068+ "requires": {
7069+ "define-properties": "1.1.2",
7070+ "es-abstract": "1.11.0",
7071+ "function-bind": "1.1.1",
7072+ "has": "1.0.1"
7073+ }
7074+ },
65417075 "object.omit": {
65427076 "version": "2.0.1",
65437077 "resolved": "http://registry.npm.taobao.org/object.omit/download/object.omit-2.0.1.tgz",
@@ -6548,6 +7082,84 @@
65487082 "is-extendable": "0.1.1"
65497083 }
65507084 },
7085+ "object.values": {
7086+ "version": "1.1.0",
7087+ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.0.tgz",
7088+ "integrity": "sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg==",
7089+ "dev": true,
7090+ "requires": {
7091+ "define-properties": "1.1.3",
7092+ "es-abstract": "1.13.0",
7093+ "function-bind": "1.1.1",
7094+ "has": "1.0.3"
7095+ },
7096+ "dependencies": {
7097+ "define-properties": {
7098+ "version": "1.1.3",
7099+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
7100+ "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
7101+ "dev": true,
7102+ "requires": {
7103+ "object-keys": "1.1.1"
7104+ }
7105+ },
7106+ "es-abstract": {
7107+ "version": "1.13.0",
7108+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz",
7109+ "integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==",
7110+ "dev": true,
7111+ "requires": {
7112+ "es-to-primitive": "1.2.0",
7113+ "function-bind": "1.1.1",
7114+ "has": "1.0.3",
7115+ "is-callable": "1.1.4",
7116+ "is-regex": "1.0.4",
7117+ "object-keys": "1.1.1"
7118+ }
7119+ },
7120+ "es-to-primitive": {
7121+ "version": "1.2.0",
7122+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz",
7123+ "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==",
7124+ "dev": true,
7125+ "requires": {
7126+ "is-callable": "1.1.4",
7127+ "is-date-object": "1.0.1",
7128+ "is-symbol": "1.0.2"
7129+ }
7130+ },
7131+ "has": {
7132+ "version": "1.0.3",
7133+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
7134+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
7135+ "dev": true,
7136+ "requires": {
7137+ "function-bind": "1.1.1"
7138+ }
7139+ },
7140+ "is-callable": {
7141+ "version": "1.1.4",
7142+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz",
7143+ "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==",
7144+ "dev": true
7145+ },
7146+ "is-symbol": {
7147+ "version": "1.0.2",
7148+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz",
7149+ "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==",
7150+ "dev": true,
7151+ "requires": {
7152+ "has-symbols": "1.0.0"
7153+ }
7154+ },
7155+ "object-keys": {
7156+ "version": "1.1.1",
7157+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
7158+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
7159+ "dev": true
7160+ }
7161+ }
7162+ },
65517163 "on-finished": {
65527164 "version": "2.3.0",
65537165 "resolved": "http://registry.npm.taobao.org/on-finished/download/on-finished-2.3.0.tgz",
@@ -6572,10 +7184,13 @@
65727184 }
65737185 },
65747186 "onetime": {
6575- "version": "1.1.0",
6576- "resolved": "http://registry.npm.taobao.org/onetime/download/onetime-1.1.0.tgz",
6577- "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=",
6578- "dev": true
7187+ "version": "2.0.1",
7188+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
7189+ "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
7190+ "dev": true,
7191+ "requires": {
7192+ "mimic-fn": "1.2.0"
7193+ }
65797194 },
65807195 "optimist": {
65817196 "version": "0.6.1",
@@ -6638,8 +7253,8 @@
66387253 },
66397254 "osenv": {
66407255 "version": "0.1.5",
6641- "resolved": "http://registry.npm.taobao.org/osenv/download/osenv-0.1.5.tgz",
6642- "integrity": "sha1-hc36+uso6Gd/QW4odZK18/SepBA=",
7256+ "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz",
7257+ "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
66437258 "dev": true,
66447259 "requires": {
66457260 "os-homedir": "1.0.2",
@@ -6941,6 +7556,93 @@
69417556 }
69427557 }
69437558 },
7559+ "postcss-calc": {
7560+ "version": "5.3.1",
7561+ "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-5.3.1.tgz",
7562+ "integrity": "sha1-d7rnypKK2FcW4v2kLyYb98HWW14=",
7563+ "dev": true,
7564+ "requires": {
7565+ "postcss": "5.2.18",
7566+ "postcss-message-helpers": "2.0.0",
7567+ "reduce-css-calc": "1.3.0"
7568+ }
7569+ },
7570+ "postcss-colormin": {
7571+ "version": "2.2.2",
7572+ "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-2.2.2.tgz",
7573+ "integrity": "sha1-ZjFBfV8OkJo9fsJrJMio0eT5bks=",
7574+ "dev": true,
7575+ "requires": {
7576+ "colormin": "1.1.2",
7577+ "postcss": "5.2.18",
7578+ "postcss-value-parser": "3.3.0"
7579+ }
7580+ },
7581+ "postcss-convert-values": {
7582+ "version": "2.6.1",
7583+ "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz",
7584+ "integrity": "sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0=",
7585+ "dev": true,
7586+ "requires": {
7587+ "postcss": "5.2.18",
7588+ "postcss-value-parser": "3.3.0"
7589+ }
7590+ },
7591+ "postcss-discard-comments": {
7592+ "version": "2.0.4",
7593+ "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz",
7594+ "integrity": "sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0=",
7595+ "dev": true,
7596+ "requires": {
7597+ "postcss": "5.2.18"
7598+ }
7599+ },
7600+ "postcss-discard-duplicates": {
7601+ "version": "2.1.0",
7602+ "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz",
7603+ "integrity": "sha1-uavye4isGIFYpesSq8riAmO5GTI=",
7604+ "dev": true,
7605+ "requires": {
7606+ "postcss": "5.2.18"
7607+ }
7608+ },
7609+ "postcss-discard-empty": {
7610+ "version": "2.1.0",
7611+ "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz",
7612+ "integrity": "sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU=",
7613+ "dev": true,
7614+ "requires": {
7615+ "postcss": "5.2.18"
7616+ }
7617+ },
7618+ "postcss-discard-overridden": {
7619+ "version": "0.1.1",
7620+ "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz",
7621+ "integrity": "sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg=",
7622+ "dev": true,
7623+ "requires": {
7624+ "postcss": "5.2.18"
7625+ }
7626+ },
7627+ "postcss-discard-unused": {
7628+ "version": "2.2.3",
7629+ "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz",
7630+ "integrity": "sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM=",
7631+ "dev": true,
7632+ "requires": {
7633+ "postcss": "5.2.18",
7634+ "uniqs": "2.0.0"
7635+ }
7636+ },
7637+ "postcss-filter-plugins": {
7638+ "version": "2.0.3",
7639+ "resolved": "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.3.tgz",
7640+ "integrity": "sha512-T53GVFsdinJhgwm7rg1BzbeBRomOg9y5MBVhGcsV0CxurUdVj1UlPdKtn7aqYA/c/QVkzKMjq2bSV5dKG5+AwQ==",
7641+ "dev": true,
7642+ "requires": {
7643+ "postcss": "5.2.18"
7644+ }
7645+ },
69447646 "postcss-load-config": {
69457647 "version": "1.2.0",
69467648 "resolved": "http://registry.npm.taobao.org/postcss-load-config/download/postcss-load-config-1.2.0.tgz",
@@ -6985,12 +7687,433 @@
69857687 "postcss-load-config": "1.2.0"
69867688 }
69877689 },
7690+ "postcss-merge-idents": {
7691+ "version": "2.1.7",
7692+ "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz",
7693+ "integrity": "sha1-TFUwMTwI4dWzu/PSu8dH4njuonA=",
7694+ "dev": true,
7695+ "requires": {
7696+ "has": "1.0.1",
7697+ "postcss": "5.2.18",
7698+ "postcss-value-parser": "3.3.0"
7699+ }
7700+ },
7701+ "postcss-merge-longhand": {
7702+ "version": "2.0.2",
7703+ "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz",
7704+ "integrity": "sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg=",
7705+ "dev": true,
7706+ "requires": {
7707+ "postcss": "5.2.18"
7708+ }
7709+ },
7710+ "postcss-merge-rules": {
7711+ "version": "2.1.2",
7712+ "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz",
7713+ "integrity": "sha1-0d9d+qexrMO+VT8OnhDofGG19yE=",
7714+ "dev": true,
7715+ "requires": {
7716+ "browserslist": "1.7.7",
7717+ "caniuse-api": "1.6.1",
7718+ "postcss": "5.2.18",
7719+ "postcss-selector-parser": "2.2.3",
7720+ "vendors": "1.0.3"
7721+ }
7722+ },
7723+ "postcss-message-helpers": {
7724+ "version": "2.0.0",
7725+ "resolved": "https://registry.npmjs.org/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz",
7726+ "integrity": "sha1-pPL0+rbk/gAvCu0ABHjN9S+bpg4=",
7727+ "dev": true
7728+ },
7729+ "postcss-minify-font-values": {
7730+ "version": "1.0.5",
7731+ "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz",
7732+ "integrity": "sha1-S1jttWZB66fIR0qzUmyv17vey2k=",
7733+ "dev": true,
7734+ "requires": {
7735+ "object-assign": "4.1.1",
7736+ "postcss": "5.2.18",
7737+ "postcss-value-parser": "3.3.0"
7738+ }
7739+ },
7740+ "postcss-minify-gradients": {
7741+ "version": "1.0.5",
7742+ "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz",
7743+ "integrity": "sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE=",
7744+ "dev": true,
7745+ "requires": {
7746+ "postcss": "5.2.18",
7747+ "postcss-value-parser": "3.3.0"
7748+ }
7749+ },
7750+ "postcss-minify-params": {
7751+ "version": "1.2.2",
7752+ "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz",
7753+ "integrity": "sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM=",
7754+ "dev": true,
7755+ "requires": {
7756+ "alphanum-sort": "1.0.2",
7757+ "postcss": "5.2.18",
7758+ "postcss-value-parser": "3.3.0",
7759+ "uniqs": "2.0.0"
7760+ }
7761+ },
7762+ "postcss-minify-selectors": {
7763+ "version": "2.1.1",
7764+ "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz",
7765+ "integrity": "sha1-ssapjAByz5G5MtGkllCBFDEXNb8=",
7766+ "dev": true,
7767+ "requires": {
7768+ "alphanum-sort": "1.0.2",
7769+ "has": "1.0.1",
7770+ "postcss": "5.2.18",
7771+ "postcss-selector-parser": "2.2.3"
7772+ }
7773+ },
7774+ "postcss-modules-extract-imports": {
7775+ "version": "1.2.1",
7776+ "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.1.tgz",
7777+ "integrity": "sha512-6jt9XZwUhwmRUhb/CkyJY020PYaPJsCyt3UjbaWo6XEbH/94Hmv6MP7fG2C5NDU/BcHzyGYxNtHvM+LTf9HrYw==",
7778+ "dev": true,
7779+ "requires": {
7780+ "postcss": "6.0.23"
7781+ },
7782+ "dependencies": {
7783+ "ansi-styles": {
7784+ "version": "3.2.1",
7785+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
7786+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
7787+ "dev": true,
7788+ "requires": {
7789+ "color-convert": "1.9.1"
7790+ }
7791+ },
7792+ "chalk": {
7793+ "version": "2.4.2",
7794+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
7795+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
7796+ "dev": true,
7797+ "requires": {
7798+ "ansi-styles": "3.2.1",
7799+ "escape-string-regexp": "1.0.5",
7800+ "supports-color": "5.5.0"
7801+ }
7802+ },
7803+ "has-flag": {
7804+ "version": "3.0.0",
7805+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
7806+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
7807+ "dev": true
7808+ },
7809+ "postcss": {
7810+ "version": "6.0.23",
7811+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
7812+ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
7813+ "dev": true,
7814+ "requires": {
7815+ "chalk": "2.4.2",
7816+ "source-map": "0.6.1",
7817+ "supports-color": "5.5.0"
7818+ }
7819+ },
7820+ "supports-color": {
7821+ "version": "5.5.0",
7822+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
7823+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
7824+ "dev": true,
7825+ "requires": {
7826+ "has-flag": "3.0.0"
7827+ }
7828+ }
7829+ }
7830+ },
7831+ "postcss-modules-local-by-default": {
7832+ "version": "1.2.0",
7833+ "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz",
7834+ "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=",
7835+ "dev": true,
7836+ "requires": {
7837+ "css-selector-tokenizer": "0.7.1",
7838+ "postcss": "6.0.23"
7839+ },
7840+ "dependencies": {
7841+ "ansi-styles": {
7842+ "version": "3.2.1",
7843+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
7844+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
7845+ "dev": true,
7846+ "requires": {
7847+ "color-convert": "1.9.1"
7848+ }
7849+ },
7850+ "chalk": {
7851+ "version": "2.4.2",
7852+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
7853+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
7854+ "dev": true,
7855+ "requires": {
7856+ "ansi-styles": "3.2.1",
7857+ "escape-string-regexp": "1.0.5",
7858+ "supports-color": "5.5.0"
7859+ }
7860+ },
7861+ "has-flag": {
7862+ "version": "3.0.0",
7863+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
7864+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
7865+ "dev": true
7866+ },
7867+ "postcss": {
7868+ "version": "6.0.23",
7869+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
7870+ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
7871+ "dev": true,
7872+ "requires": {
7873+ "chalk": "2.4.2",
7874+ "source-map": "0.6.1",
7875+ "supports-color": "5.5.0"
7876+ }
7877+ },
7878+ "supports-color": {
7879+ "version": "5.5.0",
7880+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
7881+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
7882+ "dev": true,
7883+ "requires": {
7884+ "has-flag": "3.0.0"
7885+ }
7886+ }
7887+ }
7888+ },
7889+ "postcss-modules-scope": {
7890+ "version": "1.1.0",
7891+ "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz",
7892+ "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=",
7893+ "dev": true,
7894+ "requires": {
7895+ "css-selector-tokenizer": "0.7.1",
7896+ "postcss": "6.0.23"
7897+ },
7898+ "dependencies": {
7899+ "ansi-styles": {
7900+ "version": "3.2.1",
7901+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
7902+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
7903+ "dev": true,
7904+ "requires": {
7905+ "color-convert": "1.9.1"
7906+ }
7907+ },
7908+ "chalk": {
7909+ "version": "2.4.2",
7910+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
7911+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
7912+ "dev": true,
7913+ "requires": {
7914+ "ansi-styles": "3.2.1",
7915+ "escape-string-regexp": "1.0.5",
7916+ "supports-color": "5.5.0"
7917+ }
7918+ },
7919+ "has-flag": {
7920+ "version": "3.0.0",
7921+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
7922+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
7923+ "dev": true
7924+ },
7925+ "postcss": {
7926+ "version": "6.0.23",
7927+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
7928+ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
7929+ "dev": true,
7930+ "requires": {
7931+ "chalk": "2.4.2",
7932+ "source-map": "0.6.1",
7933+ "supports-color": "5.5.0"
7934+ }
7935+ },
7936+ "supports-color": {
7937+ "version": "5.5.0",
7938+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
7939+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
7940+ "dev": true,
7941+ "requires": {
7942+ "has-flag": "3.0.0"
7943+ }
7944+ }
7945+ }
7946+ },
7947+ "postcss-modules-values": {
7948+ "version": "1.3.0",
7949+ "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz",
7950+ "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=",
7951+ "dev": true,
7952+ "requires": {
7953+ "icss-replace-symbols": "1.1.0",
7954+ "postcss": "6.0.23"
7955+ },
7956+ "dependencies": {
7957+ "ansi-styles": {
7958+ "version": "3.2.1",
7959+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
7960+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
7961+ "dev": true,
7962+ "requires": {
7963+ "color-convert": "1.9.1"
7964+ }
7965+ },
7966+ "chalk": {
7967+ "version": "2.4.2",
7968+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
7969+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
7970+ "dev": true,
7971+ "requires": {
7972+ "ansi-styles": "3.2.1",
7973+ "escape-string-regexp": "1.0.5",
7974+ "supports-color": "5.5.0"
7975+ }
7976+ },
7977+ "has-flag": {
7978+ "version": "3.0.0",
7979+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
7980+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
7981+ "dev": true
7982+ },
7983+ "postcss": {
7984+ "version": "6.0.23",
7985+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
7986+ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
7987+ "dev": true,
7988+ "requires": {
7989+ "chalk": "2.4.2",
7990+ "source-map": "0.6.1",
7991+ "supports-color": "5.5.0"
7992+ }
7993+ },
7994+ "supports-color": {
7995+ "version": "5.5.0",
7996+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
7997+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
7998+ "dev": true,
7999+ "requires": {
8000+ "has-flag": "3.0.0"
8001+ }
8002+ }
8003+ }
8004+ },
8005+ "postcss-normalize-charset": {
8006+ "version": "1.1.1",
8007+ "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz",
8008+ "integrity": "sha1-757nEhLX/nWceO0WL2HtYrXLk/E=",
8009+ "dev": true,
8010+ "requires": {
8011+ "postcss": "5.2.18"
8012+ }
8013+ },
8014+ "postcss-normalize-url": {
8015+ "version": "3.0.8",
8016+ "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz",
8017+ "integrity": "sha1-EI90s/L82viRov+j6kWSJ5/HgiI=",
8018+ "dev": true,
8019+ "requires": {
8020+ "is-absolute-url": "2.1.0",
8021+ "normalize-url": "1.9.1",
8022+ "postcss": "5.2.18",
8023+ "postcss-value-parser": "3.3.0"
8024+ }
8025+ },
8026+ "postcss-ordered-values": {
8027+ "version": "2.2.3",
8028+ "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz",
8029+ "integrity": "sha1-7sbCpntsQSqNsgQud/6NpD+VwR0=",
8030+ "dev": true,
8031+ "requires": {
8032+ "postcss": "5.2.18",
8033+ "postcss-value-parser": "3.3.0"
8034+ }
8035+ },
8036+ "postcss-reduce-idents": {
8037+ "version": "2.4.0",
8038+ "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz",
8039+ "integrity": "sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM=",
8040+ "dev": true,
8041+ "requires": {
8042+ "postcss": "5.2.18",
8043+ "postcss-value-parser": "3.3.0"
8044+ }
8045+ },
8046+ "postcss-reduce-initial": {
8047+ "version": "1.0.1",
8048+ "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz",
8049+ "integrity": "sha1-aPgGlfBF0IJjqHmtJA343WT2ROo=",
8050+ "dev": true,
8051+ "requires": {
8052+ "postcss": "5.2.18"
8053+ }
8054+ },
8055+ "postcss-reduce-transforms": {
8056+ "version": "1.0.4",
8057+ "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz",
8058+ "integrity": "sha1-/3b02CEkN7McKYpC0uFEQCV3GuE=",
8059+ "dev": true,
8060+ "requires": {
8061+ "has": "1.0.1",
8062+ "postcss": "5.2.18",
8063+ "postcss-value-parser": "3.3.0"
8064+ }
8065+ },
8066+ "postcss-selector-parser": {
8067+ "version": "2.2.3",
8068+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz",
8069+ "integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=",
8070+ "dev": true,
8071+ "requires": {
8072+ "flatten": "1.0.2",
8073+ "indexes-of": "1.0.1",
8074+ "uniq": "1.0.1"
8075+ }
8076+ },
8077+ "postcss-svgo": {
8078+ "version": "2.1.6",
8079+ "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-2.1.6.tgz",
8080+ "integrity": "sha1-tt8YqmE7Zm4TPwittSGcJoSsEI0=",
8081+ "dev": true,
8082+ "requires": {
8083+ "is-svg": "2.1.0",
8084+ "postcss": "5.2.18",
8085+ "postcss-value-parser": "3.3.0",
8086+ "svgo": "0.7.2"
8087+ }
8088+ },
8089+ "postcss-unique-selectors": {
8090+ "version": "2.0.2",
8091+ "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz",
8092+ "integrity": "sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0=",
8093+ "dev": true,
8094+ "requires": {
8095+ "alphanum-sort": "1.0.2",
8096+ "postcss": "5.2.18",
8097+ "uniqs": "2.0.0"
8098+ }
8099+ },
69888100 "postcss-value-parser": {
69898101 "version": "3.3.0",
69908102 "resolved": "http://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.0.tgz",
69918103 "integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=",
69928104 "dev": true
69938105 },
8106+ "postcss-zindex": {
8107+ "version": "2.2.0",
8108+ "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-2.2.0.tgz",
8109+ "integrity": "sha1-0hCd3AVbka9n/EyzsCWUZjnSryI=",
8110+ "dev": true,
8111+ "requires": {
8112+ "has": "1.0.1",
8113+ "postcss": "5.2.18",
8114+ "uniqs": "2.0.0"
8115+ }
8116+ },
69948117 "prelude-ls": {
69958118 "version": "1.1.2",
69968119 "resolved": "http://registry.npm.taobao.org/prelude-ls/download/prelude-ls-1.1.2.tgz",
@@ -7036,9 +8159,9 @@
70368159 "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
70378160 },
70388161 "progress": {
7039- "version": "1.1.8",
7040- "resolved": "http://registry.npm.taobao.org/progress/download/progress-1.1.8.tgz",
7041- "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=",
8162+ "version": "2.0.3",
8163+ "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
8164+ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
70428165 "dev": true
70438166 },
70448167 "progress-stream": {
@@ -7114,6 +8237,12 @@
71148237 "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
71158238 "dev": true
71168239 },
8240+ "psl": {
8241+ "version": "1.2.0",
8242+ "resolved": "https://registry.npmjs.org/psl/-/psl-1.2.0.tgz",
8243+ "integrity": "sha512-GEn74ZffufCmkDDLNcl3uuyF/aSD6exEyh1v/ZSdAomB82t6G9hzJVRx0jBmLDW+VfZqks3aScmMw9DszwUalA==",
8244+ "dev": true
8245+ },
71178246 "pump": {
71188247 "version": "3.0.0",
71198248 "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
@@ -7129,6 +8258,12 @@
71298258 "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
71308259 "dev": true
71318260 },
8261+ "q": {
8262+ "version": "1.5.1",
8263+ "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz",
8264+ "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=",
8265+ "dev": true
8266+ },
71328267 "qrcode": {
71338268 "version": "1.3.3",
71348269 "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.3.3.tgz",
@@ -7345,26 +8480,26 @@
73458480 "dev": true
73468481 },
73478482 "randomatic": {
7348- "version": "3.0.0",
7349- "resolved": "http://registry.npm.taobao.org/randomatic/download/randomatic-3.0.0.tgz",
7350- "integrity": "sha1-01SQAw6091eN4pLObfsEqRoSiSM=",
8483+ "version": "3.1.1",
8484+ "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz",
8485+ "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==",
73518486 "dev": true,
73528487 "requires": {
73538488 "is-number": "4.0.0",
73548489 "kind-of": "6.0.2",
7355- "math-random": "1.0.1"
8490+ "math-random": "1.0.4"
73568491 },
73578492 "dependencies": {
73588493 "is-number": {
73598494 "version": "4.0.0",
7360- "resolved": "http://registry.npm.taobao.org/is-number/download/is-number-4.0.0.tgz",
7361- "integrity": "sha1-ACbjf1RU1z41bf5lZGmYZ8an8P8=",
8495+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz",
8496+ "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==",
73628497 "dev": true
73638498 },
73648499 "kind-of": {
73658500 "version": "6.0.2",
7366- "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-6.0.2.tgz",
7367- "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=",
8501+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
8502+ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
73688503 "dev": true
73698504 }
73708505 }
@@ -7600,7 +8735,7 @@
76008735 "integrity": "sha1-nb/Z2SdSjDqp9ETkVYw3gwq4wmo=",
76018736 "dev": true,
76028737 "requires": {
7603- "lodash": "4.17.11",
8738+ "lodash": "4.17.14",
76048739 "react-deep-force-update": "1.1.1"
76058740 }
76068741 },
@@ -7612,7 +8747,7 @@
76128747 "create-react-class": "15.6.3",
76138748 "hoist-non-react-statics": "2.5.0",
76148749 "invariant": "2.2.4",
7615- "lodash": "4.17.11",
8750+ "lodash": "4.17.14",
76168751 "loose-envify": "1.3.1",
76178752 "prop-types": "15.6.2"
76188753 }
@@ -7704,7 +8839,7 @@
77048839 "dotenv": "5.0.1",
77058840 "dotenv-expand": "4.2.0",
77068841 "fs-extra-p": "4.6.0",
7707- "js-yaml": "3.11.0",
8842+ "js-yaml": "3.13.1",
77088843 "json5": "1.0.1",
77098844 "lazy-val": "1.0.3"
77108845 },
@@ -7827,17 +8962,6 @@
78278962 }
78288963 }
78298964 },
7830- "readline2": {
7831- "version": "1.0.1",
7832- "resolved": "http://registry.npm.taobao.org/readline2/download/readline2-1.0.1.tgz",
7833- "integrity": "sha1-QQWWCP/BVHV7cV2ZidGZ/783LjU=",
7834- "dev": true,
7835- "requires": {
7836- "code-point-at": "1.1.0",
7837- "is-fullwidth-code-point": "1.0.0",
7838- "mute-stream": "0.0.5"
7839- }
7840- },
78418965 "rechoir": {
78428966 "version": "0.6.2",
78438967 "resolved": "http://registry.npm.taobao.org/rechoir/download/rechoir-0.6.2.tgz",
@@ -7869,15 +8993,59 @@
78698993 "strip-indent": "1.0.1"
78708994 }
78718995 },
8996+ "reduce-css-calc": {
8997+ "version": "1.3.0",
8998+ "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz",
8999+ "integrity": "sha1-dHyRTgSWFKTJz7umKYca0dKSdxY=",
9000+ "dev": true,
9001+ "requires": {
9002+ "balanced-match": "0.4.2",
9003+ "math-expression-evaluator": "1.2.17",
9004+ "reduce-function-call": "1.0.2"
9005+ },
9006+ "dependencies": {
9007+ "balanced-match": {
9008+ "version": "0.4.2",
9009+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz",
9010+ "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=",
9011+ "dev": true
9012+ }
9013+ }
9014+ },
9015+ "reduce-function-call": {
9016+ "version": "1.0.2",
9017+ "resolved": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.2.tgz",
9018+ "integrity": "sha1-WiAL+S4ON3UXUv5FsKszD9S2vpk=",
9019+ "dev": true,
9020+ "requires": {
9021+ "balanced-match": "0.4.2"
9022+ },
9023+ "dependencies": {
9024+ "balanced-match": {
9025+ "version": "0.4.2",
9026+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz",
9027+ "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=",
9028+ "dev": true
9029+ }
9030+ }
9031+ },
78729032 "redux": {
7873- "version": "3.5.2",
7874- "resolved": "http://registry.npm.taobao.org/redux/download/redux-3.5.2.tgz",
7875- "integrity": "sha1-RTN0XpcLZH7CYGaoOqMOnib6+EM=",
9033+ "version": "4.0.4",
9034+ "resolved": "https://registry.npmjs.org/redux/-/redux-4.0.4.tgz",
9035+ "integrity": "sha512-vKv4WdiJxOWKxK0yRoaK3Y4pxxB0ilzVx6dszU2W8wLxlb2yikRph4iV/ymtdJ6ZxpBLFbyrxklnT5yBbQSl3Q==",
78769036 "requires": {
7877- "lodash": "4.17.11",
7878- "lodash-es": "4.17.10",
7879- "loose-envify": "1.3.1",
7880- "symbol-observable": "0.2.4"
9037+ "loose-envify": "1.4.0",
9038+ "symbol-observable": "1.2.0"
9039+ },
9040+ "dependencies": {
9041+ "loose-envify": {
9042+ "version": "1.4.0",
9043+ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
9044+ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
9045+ "requires": {
9046+ "js-tokens": "3.0.2"
9047+ }
9048+ }
78819049 }
78829050 },
78839051 "redux-form": {
@@ -7996,9 +9164,9 @@
79969164 "dev": true
79979165 },
79989166 "repeat-element": {
7999- "version": "1.1.2",
8000- "resolved": "http://registry.npm.taobao.org/repeat-element/download/repeat-element-1.1.2.tgz",
8001- "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=",
9167+ "version": "1.1.3",
9168+ "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz",
9169+ "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==",
80029170 "dev": true
80039171 },
80049172 "repeat-string": {
@@ -8164,13 +9332,13 @@
81649332 }
81659333 },
81669334 "restore-cursor": {
8167- "version": "1.0.1",
8168- "resolved": "http://registry.npm.taobao.org/restore-cursor/download/restore-cursor-1.0.1.tgz",
8169- "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=",
9335+ "version": "2.0.0",
9336+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
9337+ "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
81709338 "dev": true,
81719339 "requires": {
8172- "exit-hook": "1.1.1",
8173- "onetime": "1.1.0"
9340+ "onetime": "2.0.1",
9341+ "signal-exit": "3.0.2"
81749342 }
81759343 },
81769344 "rework": {
@@ -8227,20 +9395,29 @@
82279395 "dev": true
82289396 },
82299397 "run-async": {
8230- "version": "0.1.0",
8231- "resolved": "http://registry.npm.taobao.org/run-async/download/run-async-0.1.0.tgz",
8232- "integrity": "sha1-yK1KXhEGYeQCp9IbUw4AnyX444k=",
9398+ "version": "2.3.0",
9399+ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
9400+ "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
82339401 "dev": true,
82349402 "requires": {
8235- "once": "1.4.0"
9403+ "is-promise": "2.1.0"
82369404 }
82379405 },
82389406 "rx-lite": {
8239- "version": "3.1.2",
8240- "resolved": "http://registry.npm.taobao.org/rx-lite/download/rx-lite-3.1.2.tgz",
8241- "integrity": "sha1-Gc5QLKVyZl87ZHsQk5+X/RYV8QI=",
9407+ "version": "4.0.8",
9408+ "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz",
9409+ "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=",
82429410 "dev": true
82439411 },
9412+ "rx-lite-aggregates": {
9413+ "version": "4.0.8",
9414+ "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz",
9415+ "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=",
9416+ "dev": true,
9417+ "requires": {
9418+ "rx-lite": "4.0.8"
9419+ }
9420+ },
82449421 "safe-buffer": {
82459422 "version": "5.1.2",
82469423 "resolved": "http://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.2.tgz",
@@ -8267,7 +9444,7 @@
82679444 "dev": true,
82689445 "requires": {
82699446 "glob": "7.1.2",
8270- "lodash": "4.17.11",
9447+ "lodash": "4.17.14",
82719448 "scss-tokenizer": "0.2.3",
82729449 "yargs": "7.1.0"
82739450 },
@@ -8337,14 +9514,57 @@
83379514 }
83389515 },
83399516 "sass-loader": {
8340- "version": "4.0.2",
8341- "resolved": "http://registry.npm.taobao.org/sass-loader/download/sass-loader-4.0.2.tgz",
8342- "integrity": "sha1-phbrdwNmVD5k9UfIYw85xNp18V0=",
9517+ "version": "7.1.0",
9518+ "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-7.1.0.tgz",
9519+ "integrity": "sha512-+G+BKGglmZM2GUSfT9TLuEp6tzehHPjAMoRRItOojWIqIGPloVCMhNIQuG639eJ+y033PaGTSjLaTHts8Kw79w==",
83439520 "dev": true,
83449521 "requires": {
8345- "async": "2.6.1",
8346- "loader-utils": "0.2.17",
8347- "object-assign": "4.1.1"
9522+ "clone-deep": "2.0.2",
9523+ "loader-utils": "1.2.3",
9524+ "lodash.tail": "4.1.1",
9525+ "neo-async": "2.6.1",
9526+ "pify": "3.0.0",
9527+ "semver": "5.5.0"
9528+ },
9529+ "dependencies": {
9530+ "big.js": {
9531+ "version": "5.2.2",
9532+ "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
9533+ "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==",
9534+ "dev": true
9535+ },
9536+ "json5": {
9537+ "version": "1.0.1",
9538+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
9539+ "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
9540+ "dev": true,
9541+ "requires": {
9542+ "minimist": "1.2.0"
9543+ }
9544+ },
9545+ "loader-utils": {
9546+ "version": "1.2.3",
9547+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz",
9548+ "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==",
9549+ "dev": true,
9550+ "requires": {
9551+ "big.js": "5.2.2",
9552+ "emojis-list": "2.1.0",
9553+ "json5": "1.0.1"
9554+ }
9555+ },
9556+ "minimist": {
9557+ "version": "1.2.0",
9558+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
9559+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
9560+ "dev": true
9561+ },
9562+ "pify": {
9563+ "version": "3.0.0",
9564+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
9565+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
9566+ "dev": true
9567+ }
83489568 }
83499569 },
83509570 "sass-resources-loader": {
@@ -8515,6 +9735,25 @@
85159735 "safe-buffer": "5.1.2"
85169736 }
85179737 },
9738+ "shallow-clone": {
9739+ "version": "1.0.0",
9740+ "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-1.0.0.tgz",
9741+ "integrity": "sha512-oeXreoKR/SyNJtRJMAKPDSvd28OqEwG4eR/xc856cRGBII7gX9lvAqDxusPm0846z/w/hWYjI1NpKwJ00NHzRA==",
9742+ "dev": true,
9743+ "requires": {
9744+ "is-extendable": "0.1.1",
9745+ "kind-of": "5.1.0",
9746+ "mixin-object": "2.0.1"
9747+ },
9748+ "dependencies": {
9749+ "kind-of": {
9750+ "version": "5.1.0",
9751+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
9752+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
9753+ "dev": true
9754+ }
9755+ }
9756+ },
85189757 "shallow-equal": {
85199758 "version": "1.0.0",
85209759 "resolved": "http://registry.npm.taobao.org/shallow-equal/download/shallow-equal-1.0.0.tgz",
@@ -8584,10 +9823,30 @@
85849823 "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU="
85859824 },
85869825 "slice-ansi": {
8587- "version": "0.0.4",
8588- "resolved": "http://registry.npm.taobao.org/slice-ansi/download/slice-ansi-0.0.4.tgz",
8589- "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=",
8590- "dev": true
9826+ "version": "1.0.0",
9827+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz",
9828+ "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==",
9829+ "dev": true,
9830+ "requires": {
9831+ "is-fullwidth-code-point": "2.0.0"
9832+ },
9833+ "dependencies": {
9834+ "is-fullwidth-code-point": {
9835+ "version": "2.0.0",
9836+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
9837+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
9838+ "dev": true
9839+ }
9840+ }
9841+ },
9842+ "sort-keys": {
9843+ "version": "1.1.2",
9844+ "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz",
9845+ "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=",
9846+ "dev": true,
9847+ "requires": {
9848+ "is-plain-obj": "1.1.0"
9849+ }
85919850 },
85929851 "source-list-map": {
85939852 "version": "0.1.8",
@@ -8739,6 +9998,47 @@
87399998 "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=",
87409999 "dev": true
874110000 },
10001+ "stdout-stream": {
10002+ "version": "1.4.1",
10003+ "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz",
10004+ "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==",
10005+ "dev": true,
10006+ "requires": {
10007+ "readable-stream": "2.3.6"
10008+ },
10009+ "dependencies": {
10010+ "isarray": {
10011+ "version": "1.0.0",
10012+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
10013+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
10014+ "dev": true
10015+ },
10016+ "readable-stream": {
10017+ "version": "2.3.6",
10018+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
10019+ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
10020+ "dev": true,
10021+ "requires": {
10022+ "core-util-is": "1.0.2",
10023+ "inherits": "2.0.3",
10024+ "isarray": "1.0.0",
10025+ "process-nextick-args": "2.0.0",
10026+ "safe-buffer": "5.1.2",
10027+ "string_decoder": "1.1.1",
10028+ "util-deprecate": "1.0.2"
10029+ }
10030+ },
10031+ "string_decoder": {
10032+ "version": "1.1.1",
10033+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
10034+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
10035+ "dev": true,
10036+ "requires": {
10037+ "safe-buffer": "5.1.2"
10038+ }
10039+ }
10040+ }
10041+ },
874210042 "stream-browserify": {
874310043 "version": "2.0.1",
874410044 "resolved": "http://registry.npm.taobao.org/stream-browserify/download/stream-browserify-2.0.1.tgz",
@@ -8869,12 +10169,12 @@
886910169 "dependencies": {
887010170 "isarray": {
887110171 "version": "1.0.0",
8872- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
10172+ "resolved": "http://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz",
887310173 "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
887410174 },
887510175 "readable-stream": {
887610176 "version": "2.3.6",
8877- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
10177+ "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
887810178 "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
887910179 "requires": {
888010180 "core-util-is": "1.0.2",
@@ -9018,39 +10318,62 @@
901810318 "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz",
901910319 "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="
902010320 },
10321+ "svgo": {
10322+ "version": "0.7.2",
10323+ "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.7.2.tgz",
10324+ "integrity": "sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U=",
10325+ "dev": true,
10326+ "requires": {
10327+ "coa": "1.0.4",
10328+ "colors": "1.1.2",
10329+ "csso": "2.3.2",
10330+ "js-yaml": "3.7.0",
10331+ "mkdirp": "0.5.1",
10332+ "sax": "1.2.4",
10333+ "whet.extend": "0.9.9"
10334+ },
10335+ "dependencies": {
10336+ "esprima": {
10337+ "version": "2.7.3",
10338+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
10339+ "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=",
10340+ "dev": true
10341+ },
10342+ "js-yaml": {
10343+ "version": "3.7.0",
10344+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz",
10345+ "integrity": "sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=",
10346+ "dev": true,
10347+ "requires": {
10348+ "argparse": "1.0.10",
10349+ "esprima": "2.7.3"
10350+ }
10351+ }
10352+ }
10353+ },
902110354 "symbol-observable": {
9022- "version": "0.2.4",
9023- "resolved": "http://registry.npm.taobao.org/symbol-observable/download/symbol-observable-0.2.4.tgz",
9024- "integrity": "sha1-lag9smGG1q9+ehjb2XYKL4bQj0A="
10355+ "version": "1.2.0",
10356+ "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz",
10357+ "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ=="
902510358 },
902610359 "table": {
9027- "version": "3.8.3",
9028- "resolved": "http://registry.npm.taobao.org/table/download/table-3.8.3.tgz",
9029- "integrity": "sha1-K7xULw/amGGnVdOUf+/Ys/UThV8=",
10360+ "version": "4.0.2",
10361+ "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz",
10362+ "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==",
903010363 "dev": true,
903110364 "requires": {
9032- "ajv": "4.11.8",
9033- "ajv-keywords": "1.5.1",
9034- "chalk": "1.1.3",
9035- "lodash": "4.17.11",
9036- "slice-ansi": "0.0.4",
10365+ "ajv": "5.5.2",
10366+ "ajv-keywords": "2.1.1",
10367+ "chalk": "2.4.2",
10368+ "lodash": "4.17.14",
10369+ "slice-ansi": "1.0.0",
903710370 "string-width": "2.1.1"
903810371 },
903910372 "dependencies": {
9040- "ajv": {
9041- "version": "4.11.8",
9042- "resolved": "http://registry.npm.taobao.org/ajv/download/ajv-4.11.8.tgz",
9043- "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=",
9044- "dev": true,
9045- "requires": {
9046- "co": "4.6.0",
9047- "json-stable-stringify": "1.0.1"
9048- }
9049- },
905010373 "ajv-keywords": {
9051- "version": "1.5.1",
9052- "resolved": "http://registry.npm.taobao.org/ajv-keywords/download/ajv-keywords-1.5.1.tgz",
9053- "integrity": "sha1-MU3QpLM2j609/NxU7eYXG4htrzw=",
10374+ "version": "2.1.1",
10375+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz",
10376+ "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=",
905410377 "dev": true
905510378 },
905610379 "ansi-regex": {
@@ -9059,6 +10382,32 @@
905910382 "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
906010383 "dev": true
906110384 },
10385+ "ansi-styles": {
10386+ "version": "3.2.1",
10387+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
10388+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
10389+ "dev": true,
10390+ "requires": {
10391+ "color-convert": "1.9.1"
10392+ }
10393+ },
10394+ "chalk": {
10395+ "version": "2.4.2",
10396+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
10397+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
10398+ "dev": true,
10399+ "requires": {
10400+ "ansi-styles": "3.2.1",
10401+ "escape-string-regexp": "1.0.5",
10402+ "supports-color": "5.5.0"
10403+ }
10404+ },
10405+ "has-flag": {
10406+ "version": "3.0.0",
10407+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
10408+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
10409+ "dev": true
10410+ },
906210411 "is-fullwidth-code-point": {
906310412 "version": "2.0.0",
906410413 "resolved": "http://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz",
@@ -9067,8 +10416,8 @@
906710416 },
906810417 "string-width": {
906910418 "version": "2.1.1",
9070- "resolved": "http://registry.npm.taobao.org/string-width/download/string-width-2.1.1.tgz",
9071- "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=",
10419+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
10420+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
907210421 "dev": true,
907310422 "requires": {
907410423 "is-fullwidth-code-point": "2.0.0",
@@ -9083,6 +10432,15 @@
908310432 "requires": {
908410433 "ansi-regex": "3.0.0"
908510434 }
10435+ },
10436+ "supports-color": {
10437+ "version": "5.5.0",
10438+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
10439+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
10440+ "dev": true,
10441+ "requires": {
10442+ "has-flag": "3.0.0"
10443+ }
908610444 }
908710445 }
908810446 },
@@ -9093,13 +10451,13 @@
909310451 "dev": true
909410452 },
909510453 "tar": {
9096- "version": "2.2.1",
9097- "resolved": "http://registry.npm.taobao.org/tar/download/tar-2.2.1.tgz",
9098- "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=",
10454+ "version": "2.2.2",
10455+ "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz",
10456+ "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==",
909910457 "dev": true,
910010458 "requires": {
910110459 "block-stream": "0.0.9",
9102- "fstream": "1.0.11",
10460+ "fstream": "1.0.12",
910310461 "inherits": "2.0.3"
910410462 }
910510463 },
@@ -9194,6 +10552,15 @@
919410552 "setimmediate": "1.0.5"
919510553 }
919610554 },
10555+ "tmp": {
10556+ "version": "0.0.33",
10557+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
10558+ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
10559+ "dev": true,
10560+ "requires": {
10561+ "os-tmpdir": "1.0.2"
10562+ }
10563+ },
919710564 "to-arraybuffer": {
919810565 "version": "1.0.1",
919910566 "resolved": "http://registry.npm.taobao.org/to-arraybuffer/download/to-arraybuffer-1.0.1.tgz",
@@ -9205,6 +10572,23 @@
920510572 "resolved": "http://registry.npm.taobao.org/to-fast-properties/download/to-fast-properties-1.0.3.tgz",
920610573 "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc="
920710574 },
10575+ "to-regex-range": {
10576+ "version": "5.0.1",
10577+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
10578+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
10579+ "dev": true,
10580+ "requires": {
10581+ "is-number": "7.0.0"
10582+ },
10583+ "dependencies": {
10584+ "is-number": {
10585+ "version": "7.0.0",
10586+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
10587+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
10588+ "dev": true
10589+ }
10590+ }
10591+ },
920810592 "toml": {
920910593 "version": "2.3.3",
921010594 "resolved": "http://registry.npm.taobao.org/toml/download/toml-2.3.3.tgz",
@@ -9230,6 +10614,15 @@
923010614 "resolved": "http://registry.npm.taobao.org/trim-right/download/trim-right-1.0.1.tgz",
923110615 "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM="
923210616 },
10617+ "true-case-path": {
10618+ "version": "1.0.3",
10619+ "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz",
10620+ "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==",
10621+ "dev": true,
10622+ "requires": {
10623+ "glob": "7.1.2"
10624+ }
10625+ },
923310626 "truncate-utf8-bytes": {
923410627 "version": "1.0.2",
923510628 "resolved": "http://registry.npm.taobao.org/truncate-utf8-bytes/download/truncate-utf8-bytes-1.0.2.tgz",
@@ -9378,6 +10771,18 @@
937810771 "invariant": "2.2.4"
937910772 }
938010773 },
10774+ "uniq": {
10775+ "version": "1.0.1",
10776+ "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz",
10777+ "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=",
10778+ "dev": true
10779+ },
10780+ "uniqs": {
10781+ "version": "2.0.0",
10782+ "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz",
10783+ "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=",
10784+ "dev": true
10785+ },
938110786 "unique-string": {
938210787 "version": "1.0.0",
938310788 "resolved": "http://registry.npm.taobao.org/unique-string/download/unique-string-1.0.0.tgz",
@@ -9609,6 +11014,12 @@
960911014 "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=",
961011015 "dev": true
961111016 },
11017+ "vendors": {
11018+ "version": "1.0.3",
11019+ "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.3.tgz",
11020+ "integrity": "sha512-fOi47nsJP5Wqefa43kyWSg80qF+Q3XA6MUkgi7Hp1HQaKDQW4cQrK2D0P7mmbFtsV1N89am55Yru/nyEwRubcw==",
11021+ "dev": true
11022+ },
961211023 "verror": {
961311024 "version": "1.10.0",
961411025 "resolved": "http://registry.npm.taobao.org/verror/download/verror-1.10.0.tgz",
@@ -9836,6 +11247,12 @@
983611247 "resolved": "http://registry.npm.taobao.org/whatwg-fetch/download/whatwg-fetch-2.0.4.tgz",
983711248 "integrity": "sha1-3eal3zFfnTmZGqF2IYU9cguFVm8="
983811249 },
11250+ "whet.extend": {
11251+ "version": "0.9.9",
11252+ "resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz",
11253+ "integrity": "sha1-+HfVv2SMl+WqVC+twW1qJZucEaE=",
11254+ "dev": true
11255+ },
983911256 "which": {
984011257 "version": "1.3.1",
984111258 "resolved": "http://registry.npm.taobao.org/which/download/which-1.3.1.tgz",
@@ -9851,8 +11268,8 @@
985111268 },
985211269 "wide-align": {
985311270 "version": "1.1.3",
9854- "resolved": "http://registry.npm.taobao.org/wide-align/download/wide-align-1.1.3.tgz",
9855- "integrity": "sha1-rgdOa9wMFKQx6ATmJFScYzsABFc=",
11271+ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
11272+ "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
985611273 "dev": true,
985711274 "requires": {
985811275 "string-width": "1.0.2"
--- a/package.json
+++ b/package.json
@@ -97,8 +97,8 @@
9797 "glob": "~7.1.2",
9898 "i18next": "^11.9.1",
9999 "i18next-browser-languagedetector": "^2.2.3",
100- "lodash": "~4.17.11",
101100 "log4js": "^3.0.5",
101+ "lodash": "~4.17.14",
102102 "moment": "^2.22.1",
103103 "moment-timezone": "^0.5.17",
104104 "pluralize": "~3.0.0",
@@ -116,7 +116,7 @@
116116 "react-router": "~2.6.0",
117117 "react-router-redux": "~4.0.5",
118118 "react-router-scroll": "~0.3.2",
119- "redux": "~3.5.2",
119+ "redux": "~4.0.4",
120120 "redux-form": "~5.3.6",
121121 "redux-thunk": "~2.1.0",
122122 "reselect": "^3.0.0",
@@ -135,26 +135,28 @@
135135 "babel-preset-react": "~6.5.0",
136136 "babel-preset-react-hmre": "~1.1.1",
137137 "bootstrap-loader": "~1.0.10",
138- "extend": "~3.0.2",
138+ "braces": "^3.0.2",
139139 "chai": "~3.5.0",
140140 "chai-as-promised": "~6.0.0",
141141 "command-line-args": "~3.0.1",
142142 "command-line-commands": "~1.0.4",
143- "css-loader": "0.14.5",
143+ "css-loader": "0.26.1",
144144 "electron": "~1.8.8",
145145 "electron-builder": "^20.10.0",
146- "eslint": "~3.7.0",
147- "eslint-plugin-react": "~6.4.0",
146+ "eslint": "~4.18.2",
147+ "eslint-plugin-react": "~7.14.2",
148+ "extend": "~3.0.2",
148149 "file-loader": "~0.9.0",
149- "hjs-webpack": "~8.4.0",
150+ "hjs-webpack": "~8.4.3",
151+ "js-yaml": "^3.13.1",
150152 "json-loader": "~0.5.4",
151153 "nock": "~4.0.0",
152- "node-sass": "~3.8.0",
153154 "npm-run-all": "^4.1.2",
155+ "node-sass": "~4.12.0",
154156 "postcss-loader": "~1.1.0",
155157 "react-hot-loader": "~1.3.0",
156158 "resolve-url-loader": "~1.6.0",
157- "sass-loader": "~4.0.0",
159+ "sass-loader": "~7.1.0",
158160 "sass-resources-loader": "~1.1.0",
159161 "shelljs": "~0.7.4",
160162 "style-loader": "~0.13.1",
--- a/src/features/accounts/actions.js
+++ b/src/features/accounts/actions.js
@@ -24,7 +24,7 @@ let actions = {
2424 return chainClient().accounts.createAddress(data)
2525 },
2626 listAddresses: (accountId) => {
27- return chainClient().accounts.listAddresses(accountId)
27+ return chainClient().accounts.listAddresses({accountId})
2828 }
2929 }
3030
--- a/src/features/shared/components/GasField/GasField.jsx
+++ b/src/features/shared/components/GasField/GasField.jsx
@@ -20,21 +20,20 @@ class GasField extends React.Component {
2020 render() {
2121 const fieldProps = pick(this.props.fieldProps, TEXT_FIELD_PROPS)
2222 const {touched, error} = this.props.fieldProps
23+ const chainGas = this.props.chainGas || 0
2324
24- return(
25- <div className={`form-group ${styles.slider}`}>
26- <span>{normalizeBTMAmountUnit(btmID, fieldProps.value* this.props.gas, this.props.btmAmountUnit)}</span>
27- <input
28- type='range'
29- min={0}
30- max={3}
31- step='1'
32- {...fieldProps} />
25+ return <div className={`form-group ${styles.slider}`}>
26+ <span>{normalizeBTMAmountUnit(btmID, ( chainGas + fieldProps.value * this.props.gas ), this.props.btmAmountUnit)}</span>
27+ <input
28+ type='range'
29+ min={0}
30+ max={3}
31+ step='1'
32+ {...fieldProps} />
3333
34- {touched && error && <span className='text-danger'><strong>{error}</strong></span>}
35- {this.props.hint && <span className='help-block'>{this.props.hint}</span>}
36- </div>
37- )
34+ {touched && error && <span className='text-danger'><strong>{error}</strong></span>}
35+ {this.props.hint && <span className='help-block'>{this.props.hint}</span>}
36+ </div>
3837 }
3938 }
4039
--- a/src/features/shared/components/GasField/GasField.scss
+++ b/src/features/shared/components/GasField/GasField.scss
@@ -1,3 +1,3 @@
11 .slider{
2- width: 340px;
2+ min-width: 340px;
33 }
--- a/src/features/shared/components/ObjectSelectorField/ObjectSelectorField.jsx
+++ b/src/features/shared/components/ObjectSelectorField/ObjectSelectorField.jsx
@@ -43,27 +43,33 @@ class ObjectSelectorField extends React.Component {
4343 }
4444
4545 render() {
46+ const {
47+ fieldProps: { id, alias },
48+ t,
49+ title,
50+ hint
51+ } = this.props
52+
4653 const idOnChange = (event) => {
47- this.props.fieldProps.id.onChange(event.target.value)
48- this.props.fieldProps.alias.onChange('')
54+ id.onChange(event.target.value)
55+ alias.onChange('')
4956 }
5057
5158 const aliasOnChange = value => {
52- this.props.fieldProps.alias.onChange(value)
53- this.props.fieldProps.id.onChange('')
59+ alias.onChange(value)
60+ id.onChange('')
5461 }
5562
56- const t = this.props.t
5763 const alias_title = t('form.alias')
5864
59- const idProps = Object.assign({...this.props.fieldProps.id}, {onChange: idOnChange})
60- const aliasProps = Object.assign({...this.props.fieldProps.alias}, {onChange: aliasOnChange})
65+ const idProps = Object.assign({...id}, {onChange: idOnChange})
66+ const aliasProps = Object.assign({...alias}, {onChange: aliasOnChange})
6167
6268
6369
6470 return(
6571 <div className='form-group'>
66- {this.props.title && <FieldLabel>{this.props.title}</FieldLabel>}
72+ {title && <FieldLabel>{title}</FieldLabel>}
6773 <div className='input-group'>
6874 <div className={`input-group-btn ${this.state.showDropdown && 'open'}`}>
6975 <DropdownButton
@@ -88,11 +94,11 @@ class ObjectSelectorField extends React.Component {
8894 <this.props.aliasField
8995 className={styles.aliasFieldGroupItem}
9096 disabled={this.props.disabled}
91- placeholder={ t('form.objectField.aliasPlaceholder' , {title: this.props.title.toLowerCase()}) }
97+ placeholder={ t('form.objectField.aliasPlaceholder' , {title: title.toLowerCase()}) }
9298 fieldProps={aliasProps} />}
9399
94100 </div>
95- {this.props.hint && <span className='help-block'>{this.props.hint}</span>}
101+ {hint && <span className='help-block'>{hint}</span>}
96102 </div>
97103 )
98104 }
--- a/src/features/transactions/actions.js
+++ b/src/features/transactions/actions.js
@@ -1,5 +1,5 @@
11 import uuid from 'uuid'
2-import {chainClient} from 'utility/environment'
2+import {chainClient, btmID} from 'utility/environment'
33 import {parseNonblankJSON} from 'utility/string'
44 import {push} from 'react-router-redux'
55 import {baseCreateActions, baseListActions} from 'features/shared/actions'
@@ -98,6 +98,9 @@ form.submitForm = (formParams) => function (dispatch) {
9898 const accountAlias = formParams.accountAlias
9999 const accountInfo = Object.assign({}, accountAlias!== ''? {alias: accountAlias}: {id: accountId})
100100
101+ const isChainTx = formParams.isChainTx
102+ const isBTM = (formParams.assetId === btmID) || (formParams.assetAlias === 'BTM')
103+
101104 return client.accounts.query(accountInfo)
102105 .then( resp => {
103106 if(resp.data[0].xpubs.length > 1){
@@ -110,17 +113,32 @@ form.submitForm = (formParams) => function (dispatch) {
110113 if(!result.data.checkResult){
111114 throw new Error('PasswordWrong')
112115 }
113- return client.transactions.build(builderFunction)
116+ if(isChainTx && isBTM)
117+ return client.transactions.buildChain(builderFunction)
118+ else
119+ return client.transactions.build(builderFunction)
114120 })
115121 .then( tpl => {
116- const body = Object.assign({}, {password: formParams.password, transaction: tpl.data})
117- return client.transactions.sign(body)
122+ if(isChainTx && isBTM){
123+ const body = Object.assign({}, {password: formParams.password, transactions: tpl.data})
124+ return client.transactions.signBatch(body)
125+ }
126+ else{
127+ const body = Object.assign({}, {password: formParams.password, transaction: tpl.data})
128+ return client.transactions.sign(body)
129+ }
118130 })
119131 .then(signed => {
120132 if(!signed.data.signComplete){
121133 throw {code: 'F_BTM100'}
122134 }
123- return client.transactions.submit(signed.data.transaction.rawTransaction)
135+ if(isChainTx && isBTM){
136+ const rawTransactions = signed.data.transaction.map(tx => tx.rawTransaction)
137+ return client.transactions.submitBatch(rawTransactions)
138+ }
139+ else{
140+ return client.transactions.submit(signed.data.transaction.rawTransaction)
141+ }
124142 })
125143 .then(submitSucceeded)
126144 }
--- a/src/features/transactions/components/New/ConfirmModal/ConfirmModal.jsx
+++ b/src/features/transactions/components/New/ConfirmModal/ConfirmModal.jsx
@@ -26,12 +26,13 @@ class ConfirmModal extends Component {
2626 cancel,
2727 error,
2828 gas,
29+ chainGas,
2930 t,
3031 btmAmountUnit,
3132 assetDecimal
3233 } = this.props
3334
34- const fee = Number(gasLevel.value * gas)
35+ const fee = Number( (chainGas||0 ) + gasLevel.value * gas )
3536
3637 const totalAmount = sum(receivers, 'amount.value')
3738
@@ -156,6 +157,7 @@ export default withNamespaces('translations') (reduxForm({
156157 'receivers[].amount',
157158 'receivers[].address',
158159 'gasLevel',
160+ 'isChainTx',
159161 'password'
160162 ],
161163 destroyOnUnmount: false,
--- a/src/features/transactions/components/New/IssueAssets.jsx
+++ b/src/features/transactions/components/New/IssueAssets.jsx
@@ -118,14 +118,14 @@ class IssueAssets extends React.Component {
118118 }
119119
120120 estimateNormalTransactionGas() {
121- const transaction = this.props.fields
122- const accountAlias = transaction.accountAlias.value
123- const accountId = transaction.accountId.value
124- const assetAlias = transaction.assetAlias.value
125- const assetId = transaction.assetId.value
121+ const transaction = this.props.values
122+ const accountAlias = transaction.accountAlias
123+ const accountId = transaction.accountId
124+ const assetAlias = transaction.assetAlias
125+ const assetId = transaction.assetId
126126 const receivers = transaction.receivers
127- const addresses = receivers.map(x => x.address.value)
128- const amounts = receivers.map(x => Number(x.amount.value))
127+ const addresses = receivers.map(x => x.address)
128+ const amounts = receivers.map(x => Number(x.amount))
129129
130130 const {t, i18n} = this.props
131131
@@ -137,28 +137,21 @@ class IssueAssets extends React.Component {
137137 return
138138 }
139139
140- const actions = issueAssetTxActionBuilder(transaction, Math.pow(10, 7), 'amount.value' )
140+ const actions = issueAssetTxActionBuilder(transaction, Math.pow(10, 7), 'amount' )
141141
142142 const body = {actions, ttl: 1}
143143 this.connection.request('/build-transaction', body).then(resp => {
144- if (resp.status === 'fail') {
145- this.setState({estimateGas: null})
146- const errorMsg = resp.code && i18n.exists(`btmError.${resp.code}`) && t(`btmError.${resp.code}`) || resp.msg
147- this.props.showError(new Error(errorMsg))
148- return
149- }
150-
151144 return this.connection.request('/estimate-transaction-gas', {
152145 transactionTemplate: resp.data
153146 }).then(resp => {
154- if (resp.status === 'fail') {
155- this.setState({estimateGas: null})
156- const errorMsg = resp.code && i18n.exists(`btmError.${resp.code}`) && t(`btmError.${resp.code}`) || resp.msg
157- this.props.showError(new Error(errorMsg))
158- return
159- }
160147 this.setState({estimateGas: Math.ceil(resp.data.totalNeu/100000)*100000})
148+ }).catch(err =>{
149+ throw err
161150 })
151+ }).catch(err=>{
152+ this.setState({estimateGas: null, address: null})
153+ const errorMsg = err.code && i18n.exists(`btmError.${err.code}`) && t(`btmError.${err.code}`) || err.msg
154+ this.props.showError(new Error(errorMsg))
162155 })
163156 }
164157
--- a/src/features/transactions/components/New/New.scss
+++ b/src/features/transactions/components/New/New.scss
@@ -188,3 +188,71 @@
188188 .borderBottom{
189189 border-bottom: 1px solid $border-color;
190190 }
191+
192+.switch {
193+ margin-top: 5px;
194+ position: relative;
195+ display: inline-block;
196+ width: 44px;
197+ height: 22px;
198+
199+ /* Hide default HTML checkbox */
200+ input {display:none;}
201+
202+ input:checked + .slider {
203+ background-color: $highlight-default;
204+ }
205+
206+ input:focus + .slider {
207+ box-shadow: 0 0 1px $highlight-default;
208+ }
209+
210+ input:checked + .slider:before {
211+ -webkit-transform: translateX(22px);
212+ -ms-transform: translateX(22px);
213+ transform: translateX(22px);
214+ }
215+}
216+
217+/* The slider */
218+.slider {
219+ position: absolute;
220+ cursor: pointer;
221+ top: 0;
222+ left: 0;
223+ right: 0;
224+ bottom: 0;
225+ background-color: #ccc;
226+ -webkit-transition: .4s;
227+ transition: .4s;
228+ border-radius: 34px;
229+}
230+
231+.slider:before {
232+ position: absolute;
233+ content: "";
234+ height: 18px;
235+ width: 18px;
236+ left: 2px;
237+ bottom: 2px;
238+ background-color: white;
239+ -webkit-transition: .4s;
240+ transition: .4s;
241+ border-radius: 50%;
242+}
243+
244+.submitSwitch{
245+ display: flex;
246+ min-width: 370px;
247+ align-items: center;
248+}
249+
250+.label{
251+ margin-right: $grid-gutter-width/4;
252+}
253+
254+.submitSwitchSet{
255+ display: flex;
256+ margin-bottom: $grid-gutter-width;
257+ align-items: center;
258+}
\ No newline at end of file
--- a/src/features/transactions/components/New/NormalTransactionForm.jsx
+++ b/src/features/transactions/components/New/NormalTransactionForm.jsx
@@ -14,7 +14,7 @@ import TxContainer from './NewTransactionsContainer/TxContainer'
1414 import { btmID } from 'utility/environment'
1515 import actions from 'actions'
1616 import ConfirmModal from './ConfirmModal/ConfirmModal'
17-import { balance , getAssetDecimal, normalTxActionBuilder} from '../../transactions'
17+import { balance , getAssetDecimal, normalTxActionBuilder, normalChainTxActionBuilder} from '../../transactions'
1818 import {withNamespaces} from 'react-i18next'
1919
2020 class NormalTxForm extends React.Component {
@@ -23,6 +23,7 @@ class NormalTxForm extends React.Component {
2323 this.connection = chainClient().connection
2424 this.state = {
2525 estimateGas:null,
26+ chainGas: 0,
2627 counter: 1
2728 }
2829
@@ -58,6 +59,7 @@ class NormalTxForm extends React.Component {
5859 cancel={this.props.closeModal}
5960 onSubmit={this.submitWithValidation}
6061 gas={this.state.estimateGas}
62+ chainGas={this.state.chainGas}
6163 btmAmountUnit={this.props.btmAmountUnit}
6264 assetDecimal={assetDecimal}
6365 asset={this.props.asset}
@@ -72,7 +74,8 @@ class NormalTxForm extends React.Component {
7274 })
7375 this.setState({
7476 counter: counter+1,
75- estimateGas: null
77+ estimateGas: null,
78+ chainGas:0
7679 })
7780 }
7881
@@ -90,54 +93,76 @@ class NormalTxForm extends React.Component {
9093 promise.then(() => this.estimateNormalTransactionGas())
9194 }
9295
93- estimateNormalTransactionGas() {
94- const transaction = this.props.fields
95- const accountAlias = transaction.accountAlias.value
96- const accountId = transaction.accountId.value
97- const assetAlias = transaction.assetAlias.value
98- const assetId = transaction.assetId.value
96+ estimateNormalTransactionGas(type) {
97+ const transaction = this.props.values
98+ const accountAlias = transaction.accountAlias
99+ const accountId = transaction.accountId
100+ const assetAlias = transaction.assetAlias
101+ const assetId = transaction.assetId
99102 const receivers = transaction.receivers
100- const addresses = receivers.map(x => x.address.value)
101- const amounts = receivers.map(x => Number(x.amount.value))
103+ const addresses = receivers.map(x => x.address)
104+ const amounts = receivers.map(x => Number(x.amount))
105+
106+ const isChainTx = type==='check'? !transaction.isChainTx: transaction.isChainTx
102107
103108 const {t, i18n} = this.props
104109
105110 const noAccount = !accountAlias && !accountId
106111 const noAsset = !assetAlias && !assetId
107112
108- if ( addresses.includes('') || amounts.includes(0)|| noAccount || noAsset) {
109- this.setState({estimateGas: null})
113+ if ( addresses.includes('') || amounts.includes(NaN)|| amounts.includes(0)|| noAccount || noAsset) {
114+ this.setState({estimateGas: null, chainGas:0})
110115 return
111116 }
112117
113- const actions = normalTxActionBuilder(transaction, Math.pow(10, 7), 'amount.value' )
114-
115- const body = {actions, ttl: 1}
116- this.connection.request('/build-transaction', body).then(resp => {
117- if (resp.status === 'fail') {
118- this.setState({estimateGas: null})
119- const errorMsg = resp.code && i18n.exists(`btmError.${resp.code}`) && t(`btmError.${resp.code}`) || resp.msg
118+ const isBTM = (assetAlias==='BTM') || (assetId === btmID)
119+
120+ if(isBTM && isChainTx){
121+ const actions = normalChainTxActionBuilder(transaction, 'amount' )
122+ const body = {actions, ttl: 1}
123+
124+ this.connection.request('/build-chain-transactions', body).then(resp => {
125+ return this.connection.request('/estimate-chain-transaction-gas', {
126+ transactionTemplates: resp.data
127+ }).then(resp => {
128+ this.setState({
129+ estimateGas: Math.ceil(resp.data.totalNeu/100000)*100000,
130+ chainGas: Math.ceil(resp.data.chainTxNeu/100000)*100000
131+ })
132+ }).catch(err =>{
133+ throw err
134+ })
135+ }).catch(err=>{
136+ this.setState({estimateGas: null, chainGas:0, address: null})
137+ const errorMsg = err.code && i18n.exists(`btmError.${err.code}`) && t(`btmError.${err.code}`) || err.msg
120138 this.props.showError(new Error(errorMsg))
121- return
122- }
123-
124- return this.connection.request('/estimate-transaction-gas', {
125- transactionTemplate: resp.data
126- }).then(resp => {
127- if (resp.status === 'fail') {
128- this.setState({estimateGas: null})
129- const errorMsg = resp.code && i18n.exists(`btmError.${resp.code}`) && t(`btmError.${resp.code}`) || resp.msg
130- this.props.showError(new Error(errorMsg))
131- return
132- }
133- this.setState({estimateGas: Math.ceil(resp.data.totalNeu/100000)*100000})
134139 })
135- })
140+ }else{
141+ const actions = normalTxActionBuilder(transaction, Math.pow(10, 7), 'amount' )
142+ const body = {actions, ttl: 1}
143+
144+ this.connection.request('/build-transaction', body).then(resp => {
145+ return this.connection.request('/estimate-transaction-gas', {
146+ transactionTemplate: resp.data
147+ }).then(resp => {
148+ this.setState({
149+ estimateGas: Math.ceil(resp.data.totalNeu/100000)*100000,
150+ chainGas:0
151+ })
152+ }).catch(err =>{
153+ throw err
154+ })
155+ }).catch(err=>{
156+ this.setState({estimateGas: null,chainGas:0, address: null})
157+ const errorMsg = err.code && i18n.exists(`btmError.${err.code}`) && t(`btmError.${err.code}`) || err.msg
158+ this.props.showError(new Error(errorMsg))
159+ })
160+ }
136161 }
137162
138163 render() {
139164 const {
140- fields: {accountId, accountAlias, assetId, assetAlias, receivers, gasLevel},
165+ fields: {accountId, accountAlias, assetId, assetAlias, receivers, isChainTx ,gasLevel},
141166 error,
142167 submitting
143168 } = this.props
@@ -156,101 +181,119 @@ class NormalTxForm extends React.Component {
156181 const showAvailableBalance = (accountAlias.value || accountId.value) &&
157182 (assetAlias.value || assetId.value)
158183
159- const availableBalance = balance(this.props.fields, assetDecimal, this.props.balances, this.props.btmAmountUnit)
184+ const availableBalance = balance(this.props.values, assetDecimal, this.props.balances, this.props.btmAmountUnit)
160185
161186 const showBtmAmountUnit = (assetAlias.value === 'BTM' || assetId.value === btmID)
162187
163- return (
164- <TxContainer
165- error={error}
166- onSubmit={e => this.confirmedTransaction(e, assetDecimal)}
167- submitting={submitting}
168- submitLabel= {submitLabel}
169- disabled={this.disableSubmit()}
170- className={styles.container}
171- >
172- <div className={styles.borderBottom}>
173- <label className={styles.title}>{t('transaction.normal.from')}</label>
174- <div className={`${styles.mainBox} `}>
175- <ObjectSelectorField
176- key='account-selector-field'
177- keyIndex='normaltx-account'
178- title={t('form.account')}
179- aliasField={Autocomplete.AccountAlias}
180- fieldProps={{
181- id: accountId,
182- alias: accountAlias
183- }}
188+ return <TxContainer
189+ error={error}
190+ onSubmit={e => this.confirmedTransaction(e, assetDecimal)}
191+ submitting={submitting}
192+ submitLabel={submitLabel}
193+ disabled={this.disableSubmit()}
194+ className={styles.container}
195+ >
196+ <div className={styles.borderBottom}>
197+ <label className={styles.title}>{t('transaction.normal.from')}</label>
198+ <div className={`${styles.mainBox} `}>
199+ <ObjectSelectorField
200+ key='account-selector-field'
201+ keyIndex='normaltx-account'
202+ title={t('form.account')}
203+ aliasField={Autocomplete.AccountAlias}
204+ fieldProps={{
205+ id: accountId,
206+ alias: accountAlias
207+ }}
208+ />
209+ <div>
210+ <ObjectSelectorField
211+ key='asset-selector-field'
212+ keyIndex='normaltx-asset'
213+ title={t('form.asset')}
214+ aliasField={Autocomplete.AssetAlias}
215+ fieldProps={{
216+ id: assetId,
217+ alias: assetAlias
218+ }}
219+ />
220+ {showAvailableBalance && availableBalance &&
221+ <small className={styles.balanceHint}>{t('transaction.normal.availableBalance')} {availableBalance}</small>}
222+ </div>
223+ </div>
224+
225+ <label className={styles.title}>{t('transaction.normal.to')}</label>
226+
227+ <div className={styles.mainBox}>
228+ {receivers.map((receiver, index) =>
229+ <div
230+ className={this.props.tutorialVisible ? styles.tutorialItem : styles.subjectField}
231+ key={receiver.id.value}>
232+ <TextField title={t('form.address')} fieldProps={{
233+ ...receiver.address,
234+ onBlur: (e) => {
235+ receiver.address.onBlur(e)
236+ this.estimateNormalTransactionGas()
237+ },
238+ }}/>
239+
240+ <AmountField
241+ isBTM={showBtmAmountUnit}
242+ title={t('form.amount')}
243+ fieldProps={receiver.amount}
244+ decimal={assetDecimal}
184245 />
185- <div>
186- <ObjectSelectorField
187- key='asset-selector-field'
188- keyIndex='normaltx-asset'
189- title={ t('form.asset')}
190- aliasField={Autocomplete.AssetAlias}
191- fieldProps={{
192- id: assetId,
193- alias: assetAlias
194- }}
195- />
196- {showAvailableBalance && availableBalance &&
197- <small className={styles.balanceHint}>{t('transaction.normal.availableBalance')} {availableBalance}</small>}
198- </div>
199- </div>
200246
201- <label className={styles.title}>{t('transaction.normal.to')}</label>
202-
203- <div className={styles.mainBox}>
204- {receivers.map((receiver, index) =>
205- <div
206- className={this.props.tutorialVisible? styles.tutorialItem: styles.subjectField}
207- key={receiver.id.value}>
208- <TextField title={t('form.address')} fieldProps={{
209- ...receiver.address,
210- onBlur: (e) => {
211- receiver.address.onBlur(e)
212- this.estimateNormalTransactionGas()
213- },
214- }}/>
215-
216- <AmountField
217- isBTM={showBtmAmountUnit}
218- title={t('form.amount')}
219- fieldProps={receiver.amount}
220- decimal={assetDecimal}
221- />
222-
223- <button
224- className={`btn btn-danger btn-xs ${styles.deleteButton}`}
225- tabIndex='-1'
226- type='button'
227- onClick={() => this.removeReceiverItem(index)}
228- >
229- {t('commonWords.remove')}
230- </button>
231- </div>
232- )}
233247 <button
248+ className={`btn btn-danger btn-xs ${styles.deleteButton}`}
249+ tabIndex='-1'
234250 type='button'
235- className='btn btn-default'
236- onClick={this.addReceiverItem}
251+ onClick={() => this.removeReceiverItem(index)}
237252 >
238- {t('commonWords.addField')}
253+ {t('commonWords.remove')}
239254 </button>
240255 </div>
241-
242- <label className={styles.title}>{t('transaction.normal.selectFee')}</label>
243- <div className={styles.txFeeBox}>
244- <GasField
245- gas={this.state.estimateGas}
246- fieldProps={gasLevel}
247- btmAmountUnit={this.props.btmAmountUnit}
248- />
249- <span className={styles.feeDescription}> {t('transaction.normal.feeDescription')}</span>
256+ )}
257+ <button
258+ type='button'
259+ className='btn btn-default'
260+ onClick={this.addReceiverItem}
261+ >
262+ {t('commonWords.addField')}
263+ </button>
264+ </div>
265+
266+ {showBtmAmountUnit && [<label className={styles.title}>{t('transaction.normal.submitType')}</label>,
267+ <div className={styles.submitSwitchSet}>
268+ <div className={styles.submitSwitch}>
269+ <div className={styles.label}>{t('transaction.normal.chainTx')}</div>
270+ <label className={styles.switch}>
271+ <input
272+ type='checkbox'
273+ {...isChainTx}
274+ onChange={(e) => {
275+ this.estimateNormalTransactionGas('check')
276+ isChainTx.onChange(e)
277+ }}
278+ />
279+ <span className={styles.slider}></span>
280+ </label>
250281 </div>
251- </div>
252- </TxContainer>
253- )
282+ <div>{t('transaction.normal.chainTxNote')}</div>
283+ </div>]}
284+
285+ <label className={styles.title}>{t('transaction.normal.selectFee')}</label>
286+ <div className={styles.txFeeBox}>
287+ <GasField
288+ gas={this.state.estimateGas}
289+ chainGas={this.state.chainGas}
290+ fieldProps={gasLevel}
291+ btmAmountUnit={this.props.btmAmountUnit}
292+ />
293+ <span className={styles.feeDescription}> {t('transaction.normal.feeDescription')}</span>
294+ </div>
295+ </div>
296+ </TxContainer>
254297 }
255298 }
256299
@@ -324,6 +367,7 @@ export default withNamespaces('translations') (BaseNew.connect(
324367 'receivers[].amount',
325368 'receivers[].address',
326369 'gasLevel',
370+ 'isChainTx'
327371 ],
328372 asyncValidate,
329373 asyncBlurFields: ['receivers[].address'],
@@ -331,6 +375,7 @@ export default withNamespaces('translations') (BaseNew.connect(
331375 touchOnChange: true,
332376 initialValues: {
333377 gasLevel: '1',
378+ isChainTx:false,
334379 receivers:[{
335380 id: 0,
336381 amount:'',
--- a/src/features/transactions/transactions.js
+++ b/src/features/transactions/transactions.js
@@ -4,17 +4,17 @@ import { sum } from 'utility/math'
44
55 export const balance = (values, assetDecimal, balances, btmAmountUnit) => {
66 let filteredBalances = balances
7- if (values.accountAlias.value) {
8- filteredBalances = filteredBalances.filter(balance => balance.accountAlias === values.accountAlias.value)
7+ if (values.accountAlias) {
8+ filteredBalances = filteredBalances.filter(balance => balance.accountAlias === values.accountAlias)
99 }
10- if (values.accountId.value) {
11- filteredBalances = filteredBalances.filter(balance => balance.accountId === values.accountId.value)
10+ if (values.accountId) {
11+ filteredBalances = filteredBalances.filter(balance => balance.accountId === values.accountId)
1212 }
13- if (values.assetAlias.value) {
14- filteredBalances = filteredBalances.filter(balance => balance.assetAlias === values.assetAlias.value)
13+ if (values.assetAlias) {
14+ filteredBalances = filteredBalances.filter(balance => balance.assetAlias === values.assetAlias)
1515 }
16- if (values.assetId.value) {
17- filteredBalances = filteredBalances.filter(balance => balance.assetId === values.assetId.value)
16+ if (values.assetId) {
17+ filteredBalances = filteredBalances.filter(balance => balance.assetId === values.assetId)
1818 }
1919
2020 if(filteredBalances.length === 1){
@@ -44,10 +44,10 @@ export const getAssetDecimal = (values, asset) => {
4444 }
4545
4646 export const normalTxActionBuilder = (transaction, gas, prop) =>{
47- const accountAlias = transaction.accountAlias.value || transaction.accountAlias
48- const accountId = transaction.accountId.value || transaction.accountId
49- const assetAlias = transaction.assetAlias.value || transaction.assetAlias
50- const assetId = transaction.assetId.value || transaction.assetId
47+ const accountAlias = transaction.accountAlias
48+ const accountId = transaction.accountId
49+ const assetAlias = transaction.assetAlias
50+ const assetId = transaction.assetId
5151 const receivers = transaction.receivers
5252
5353 const totalAmount = sum(receivers, prop )
@@ -73,10 +73,44 @@ export const normalTxActionBuilder = (transaction, gas, prop) =>{
7373 receivers.forEach((receiver)=>{
7474 actions.push(
7575 {
76- address: receiver.address.value || receiver.address,
76+ address: receiver.address,
77+ assetAlias,
78+ assetId,
79+ amount: Number(receiver.amount),
80+ type: 'control_address'
81+ }
82+ )
83+ })
84+
85+ return actions
86+}
87+
88+export const normalChainTxActionBuilder = (transaction, prop) =>{
89+ const accountAlias = transaction.accountAlias
90+ const accountId = transaction.accountId
91+ const assetAlias = transaction.assetAlias
92+ const assetId = transaction.assetId
93+ const receivers = transaction.receivers
94+
95+ const totalAmount = sum(receivers, prop )
96+
97+ const spendAction = {
98+ accountAlias,
99+ accountId,
100+ assetAlias,
101+ assetId,
102+ amount: totalAmount,
103+ type: 'spend_account'
104+ }
105+
106+ const actions = [spendAction]
107+ receivers.forEach((receiver)=>{
108+ actions.push(
109+ {
110+ address: receiver.address,
77111 assetAlias,
78112 assetId,
79- amount: Number(receiver.amount.value || receiver.amount),
113+ amount: Number(receiver.amount),
80114 type: 'control_address'
81115 }
82116 )
@@ -86,10 +120,10 @@ export const normalTxActionBuilder = (transaction, gas, prop) =>{
86120 }
87121
88122 export const issueAssetTxActionBuilder = (transaction, gas,prop) =>{
89- const accountAlias = transaction.accountAlias.value || transaction.accountAlias
90- const accountId = transaction.accountId.value || transaction.accountId
91- const assetAlias = transaction.assetAlias.value || transaction.assetAlias
92- const assetId = transaction.assetId.value || transaction.assetId
123+ const accountAlias = transaction.accountAlias
124+ const accountId = transaction.accountId
125+ const assetAlias = transaction.assetAlias
126+ const assetId = transaction.assetId
93127 const receivers = transaction.receivers
94128
95129 const totalAmount = sum(receivers, prop )
@@ -113,10 +147,10 @@ export const issueAssetTxActionBuilder = (transaction, gas,prop) =>{
113147 receivers.forEach((receiver)=>{
114148 actions.push(
115149 {
116- address: receiver.address.value || receiver.address,
150+ address: receiver.address,
117151 assetAlias,
118152 assetId,
119- amount: Number(receiver.amount.value || receiver.amount),
153+ amount: Number(receiver.amount),
120154 type: 'control_address'
121155 }
122156 )
--- a/src/sdk/api/accounts.js
+++ b/src/sdk/api/accounts.js
@@ -33,7 +33,7 @@ const accountsAPI = (client) => {
3333
3434 createReceiverBatch: (params, cb) => shared.createBatch(client, '/create-account-receiver', params, {cb}),
3535
36- listAddresses: (accountId) => shared.query(client, 'accounts', '/list-addresses', {account_id: accountId}),
36+ listAddresses: (params) => shared.query(client, 'accounts', '/list-addresses', params),
3737
3838 validateAddresses: (address, cb) => shared.query(client, 'accounts', '/validate-address', {'address': address}, {cb})
3939 }
--- a/src/sdk/api/transactions.js
+++ b/src/sdk/api/transactions.js
@@ -88,6 +88,21 @@ const transactionsAPI = (client) => {
8888 ).then(resp => checkForError(resp))
8989 },
9090
91+ buildChain: (builderBlock, cb) => {
92+ const builder = new TransactionBuilder()
93+
94+ try {
95+ builderBlock(builder)
96+ } catch (err) {
97+ return Promise.reject(err)
98+ }
99+
100+ return shared.tryCallback(
101+ client.request('/build-chain-transactions', builder),
102+ cb
103+ ).then(resp => checkForError(resp)).catch(errors => {throw checkForError(errors)})
104+ },
105+
91106 buildBatch: (builderBlocks, cb) => {
92107 const builders = []
93108 for (let i in builderBlocks) {
@@ -113,9 +128,10 @@ const transactionsAPI = (client) => {
113128 cb
114129 ),
115130
116- signBatch: (templates, cb) => finalizeBatch(templates)
117- // TODO: merge batch errors from finalizeBatch
118- .then(finalized => client.signer.signBatch(finalized.successes, cb)),
131+ signBatch: (template, cb) => finalize(template)
132+ .then(finalized => client.request('/sign-transactions', finalized ).then(resp => checkForError(resp)).catch(errors => {throw checkForError(errors)}),
133+ cb
134+ ),
119135
120136 submit: (signed, cb) => shared.tryCallback(
121137 client.request('/submit-transaction', {'raw_transaction': signed}).then(resp => checkForError(resp)),
@@ -123,10 +139,15 @@ const transactionsAPI = (client) => {
123139 ),
124140
125141 submitBatch: (signed, cb) => shared.tryCallback(
126- client.request('/submit-transaction', {transactions: signed})
127- .then(resp => new shared.BatchResponse(resp)),
142+ client.request('/submit-transactions', {'raw_transactions': signed}).then(resp => checkForError(resp))
143+ .catch(errors => {throw checkForError(errors)}),
128144 cb
129145 ),
146+
147+ estimateGas: (template, cb) => shared.tryCallback(
148+ client.request('/estimate-transaction-gas', {'transactionTemplate': template}).then(resp => checkForError(resp)),
149+ cb
150+ )
130151 }
131152 }
132153
--- a/src/sdk/connection.js
+++ b/src/sdk/connection.js
@@ -165,6 +165,9 @@ class Connection {
165165 }
166166 )
167167 }).then((body) => {
168+ if(body.status === 'fail'){
169+ throw body
170+ }
168171 // After processing the response, convert snakecased field names to
169172 // camelcase to match language conventions.
170173 return skipSnakeize? body : camelize(body)
Show on old repository browser