OSDN Git Service

merge dashboard into dev
authorZhiting Lin <zlin035@uottawa.ca>
Thu, 24 Oct 2019 08:14:00 +0000 (16:14 +0800)
committerZhiting Lin <zlin035@uottawa.ca>
Thu, 24 Oct 2019 08:14:00 +0000 (16:14 +0800)
1  2 
modules/interface/locales/en/translation.json
modules/interface/locales/zh/translation.json
package-lock.json
package.json

@@@ -1,6 -1,6 +1,6 @@@
  {
    "name": "bytom-wallet",
-   "version": "1.0.7",
 -  "version": "1.0.2",
++  "version": "1.0.9",
    "lockfileVersion": 1,
    "requires": true,
    "dependencies": {
@@@ -33,8 -32,8 +33,8 @@@
      },
      "abbrev": {
        "version": "1.1.1",
--      "resolved": "http://registry.npm.taobao.org/abbrev/download/abbrev-1.1.1.tgz",
--      "integrity": "sha1-+PLIh60Qv2f2NPAFtph/7TF5qsg=",
++      "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
++      "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
        "dev": true
      },
      "accepts": {
@@@ -48,9 -64,8 +48,9 @@@
        }
      },
      "acorn": {
-       "version": "5.5.3",
-       "resolved": "http://registry.npm.taobao.org/acorn/download/acorn-5.5.3.tgz",
-       "integrity": "sha1-9HPdR+AnegjijpvsWu6wR1HwuMk=",
+       "version": "5.7.3",
+       "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz",
++      "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==",
        "dev": true
      },
      "acorn-jsx": {
      },
      "aproba": {
        "version": "1.2.0",
--      "resolved": "http://registry.npm.taobao.org/aproba/download/aproba-1.2.0.tgz",
--      "integrity": "sha1-aALmJk79GMeQobDVF/DyYnvyyUo=",
++      "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
++      "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
        "dev": true
      },
      "are-we-there-yet": {
        "version": "1.1.5",
--      "resolved": "http://registry.npm.taobao.org/are-we-there-yet/download/are-we-there-yet-1.1.5.tgz",
--      "integrity": "sha1-SzXClE8GKov82mZBB2A1D+nd/CE=",
++      "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz",
++      "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
        "dev": true,
        "requires": {
          "delegates": "1.0.0",
            "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
            "dev": true
          },
--        "process-nextick-args": {
--          "version": "2.0.0",
--          "resolved": "http://registry.npm.taobao.org/process-nextick-args/download/process-nextick-args-2.0.0.tgz",
--          "integrity": "sha1-o31zL0JxtKsa0HDTVQjoKQeI/6o=",
--          "dev": true
--        },
          "readable-stream": {
            "version": "2.3.6",
--          "resolved": "http://registry.npm.taobao.org/readable-stream/download/readable-stream-2.3.6.tgz",
--          "integrity": "sha1-sRwn2IuP8fvgcGQ8+UsMea4bCq8=",
++          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
++          "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
            "dev": true,
            "requires": {
              "core-util-is": "1.0.2",
          },
          "string_decoder": {
            "version": "1.1.1",
--          "resolved": "http://registry.npm.taobao.org/string_decoder/download/string_decoder-1.1.1.tgz",
--          "integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=",
++          "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
++          "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
            "dev": true,
            "requires": {
              "safe-buffer": "5.1.2"
      },
      "argparse": {
        "version": "1.0.10",
--      "resolved": "http://registry.npm.taobao.org/argparse/download/argparse-1.0.10.tgz",
--      "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=",
++      "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
++      "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
        "dev": true,
        "requires": {
          "sprintf-js": "1.0.3"
        "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=",
        "dev": true
      },
++    "array-includes": {
++      "version": "3.0.3",
++      "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz",
++      "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=",
++      "dev": true,
++      "requires": {
++        "define-properties": "1.1.2",
++        "es-abstract": "1.11.0"
++      }
++    },
      "array-map": {
        "version": "0.0.0",
        "resolved": "http://registry.npm.taobao.org/array-map/download/array-map-0.0.0.tgz",
        "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=",
        "dev": true
      },
--    "array-union": {
--      "version": "1.0.2",
--      "resolved": "http://registry.npm.taobao.org/array-union/download/array-union-1.0.2.tgz",
--      "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
--      "dev": true,
--      "requires": {
-         "array-uniq": "1.0.3"
 -        "define-properties": "1.1.3",
 -        "es-abstract": "1.13.0"
--      }
--    },
--    "array-uniq": {
--      "version": "1.0.3",
--      "resolved": "http://registry.npm.taobao.org/array-uniq/download/array-uniq-1.0.3.tgz",
--      "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
--      "dev": true
--    },
      "array-unique": {
        "version": "0.2.1",
        "resolved": "http://registry.npm.taobao.org/array-unique/download/array-unique-0.2.1.tgz",
        "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=",
        "dev": true
      },
--    "arrify": {
--      "version": "1.0.1",
--      "resolved": "http://registry.npm.taobao.org/arrify/download/arrify-1.0.1.tgz",
--      "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
--      "dev": true
--    },
      "asap": {
        "version": "2.0.6",
        "resolved": "http://registry.npm.taobao.org/asap/download/asap-2.0.6.tgz",
        "integrity": "sha1-5gtrDo8wG9l+U3UhW9pAbIURjAs=",
        "dev": true
      },
 -    "ast-types": {
 -      "version": "0.12.2",
 -      "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.12.2.tgz",
 -      "integrity": "sha512-8c83xDLJM/dLDyXNLiR6afRRm4dPKN6KAnKqytRK3DBJul9lA+atxdQkNDkSVPdTqea5HiRq3lnnOIZ0MBpvdg==",
 -      "optional": true
 -    },
--    "async": {
--      "version": "2.6.1",
--      "resolved": "http://registry.npm.taobao.org/async/download/async-2.6.1.tgz",
--      "integrity": "sha1-skWiPKcZMAROxT+kaqAKPofGphA=",
-       "dev": true,
--      "requires": {
--        "lodash": "4.17.11"
--      }
--    },
      "async-each": {
        "version": "1.0.1",
        "resolved": "http://registry.npm.taobao.org/async-each/download/async-each-1.0.1.tgz",
          "commander": "2.15.1",
          "convert-source-map": "1.5.1",
          "fs-readdir-recursive": "1.1.0",
 -        "glob": "7.1.3",
 +        "glob": "7.1.2",
-         "lodash": "4.17.11",
+         "lodash": "4.17.14",
          "output-file-sync": "1.1.2",
          "path-is-absolute": "1.0.1",
          "slash": "1.0.0",
          "debug": "2.6.9",
          "globals": "9.18.0",
          "invariant": "2.2.4",
-         "lodash": "4.17.11"
+         "lodash": "4.17.14"
 +      },
 +      "dependencies": {
 +        "debug": {
 +          "version": "2.6.9",
 +          "resolved": "http://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz",
 +          "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
 +          "requires": {
 +            "ms": "2.0.0"
 +          }
 +        }
        }
      },
      "babel-types": {
        }
      },
      "braces": {
--      "version": "1.8.5",
--      "resolved": "http://registry.npm.taobao.org/braces/download/braces-1.8.5.tgz",
--      "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
++      "version": "3.0.2",
++      "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
++      "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
        "dev": true,
        "requires": {
--        "expand-range": "1.8.2",
--        "preserve": "0.2.0",
--        "repeat-element": "1.1.2"
++        "fill-range": "7.0.1"
++      },
++      "dependencies": {
++        "fill-range": {
++          "version": "7.0.1",
++          "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
++          "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
++          "dev": true,
++          "requires": {
++            "to-regex-range": "5.0.1"
++          }
++        }
        }
      },
      "browserify-aes": {
          "debug": "3.1.0",
          "fs-extra-p": "4.6.0",
          "is-ci": "1.1.0",
--        "js-yaml": "3.11.0",
++        "js-yaml": "3.13.1",
          "lazy-val": "1.0.3",
          "semver": "5.5.0",
          "source-map-support": "0.5.6",
          "window-or-global": "1.0.1"
        }
      },
 -        "caniuse-db": "1.0.30000844",
+     "caniuse-api": {
+       "version": "1.6.1",
+       "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.6.1.tgz",
+       "integrity": "sha1-tTTnxzTE+B7F++isoq0kNUuWLGw=",
+       "dev": true,
+       "requires": {
+         "browserslist": "1.7.7",
++        "caniuse-db": "1.0.30000846",
+         "lodash.memoize": "4.1.2",
+         "lodash.uniq": "4.5.0"
+       }
+     },
      "caniuse-db": {
        "version": "1.0.30000846",
        "resolved": "http://registry.npm.taobao.org/caniuse-db/download/caniuse-db-1.0.30000846.tgz",
        "integrity": "sha1-cQGTJkuwXHe4yQ0C9aryIhamZ7I=",
        "dev": true
      },
 +    "circular-json": {
 +      "version": "0.5.9",
 +      "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.5.9.tgz",
 +      "integrity": "sha512-4ivwqHpIFJZBuhN3g/pEcdbnGUywkBblloGbkglyloVjjR3uT6tieI89MVOfbP2tHX5sgb01FuLgAOzebNlJNQ=="
 +    },
+     "clap": {
+       "version": "1.2.3",
+       "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.3.tgz",
+       "integrity": "sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA==",
+       "dev": true,
+       "requires": {
+         "chalk": "1.1.3"
+       }
+     },
      "classnames": {
        "version": "2.2.5",
        "resolved": "http://registry.npm.taobao.org/classnames/download/classnames-2.2.5.tgz",
        "integrity": "sha1-+zgB1FNGdknvNgPH1hoCvRKb3m0="
      },
-     "clean-css": {
-       "version": "3.4.28",
-       "resolved": "http://registry.npm.taobao.org/clean-css/download/clean-css-3.4.28.tgz",
-       "integrity": "sha1-vxlF6C/ICPVWlebd6uwBQA79A/8=",
-       "dev": true,
-       "requires": {
-         "commander": "2.8.1",
-         "source-map": "0.4.4"
-       },
-       "dependencies": {
-         "commander": {
-           "version": "2.8.1",
-           "resolved": "http://registry.npm.taobao.org/commander/download/commander-2.8.1.tgz",
-           "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=",
-           "dev": true,
-           "requires": {
-             "graceful-readlink": "1.0.1"
-           }
-         },
-         "source-map": {
-           "version": "0.4.4",
-           "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.4.4.tgz",
-           "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
-           "dev": true,
-           "requires": {
-             "amdefine": "1.0.1"
-           }
-         }
-       }
-     },
 +    "cli-boxes": {
 +      "version": "1.0.0",
 +      "resolved": "http://registry.npm.taobao.org/cli-boxes/download/cli-boxes-1.0.0.tgz",
 +      "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=",
 +      "dev": true
 +    },
      "cli-cursor": {
-       "version": "1.0.2",
-       "resolved": "http://registry.npm.taobao.org/cli-cursor/download/cli-cursor-1.0.2.tgz",
-       "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=",
+       "version": "2.1.0",
+       "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
+       "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
        "dev": true,
        "requires": {
-         "restore-cursor": "1.0.1"
+         "restore-cursor": "2.0.0"
        }
      },
      "cli-width": {
      "co": {
        "version": "4.6.0",
        "resolved": "http://registry.npm.taobao.org/co/download/co-4.6.0.tgz",
 -      "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ="
 +      "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=",
 +      "dev": true
      },
+     "coa": {
+       "version": "1.0.4",
+       "resolved": "https://registry.npmjs.org/coa/-/coa-1.0.4.tgz",
+       "integrity": "sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0=",
+       "dev": true,
+       "requires": {
+         "q": "1.5.1"
+       }
+     },
      "code-point-at": {
        "version": "1.1.0",
        "resolved": "http://registry.npm.taobao.org/code-point-at/download/code-point-at-1.1.0.tgz",
        "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="
      },
++    "color": {
++      "version": "0.11.4",
++      "resolved": "https://registry.npmjs.org/color/-/color-0.11.4.tgz",
++      "integrity": "sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q=",
++      "dev": true,
++      "requires": {
++        "clone": "1.0.4",
++        "color-convert": "1.9.1",
++        "color-string": "0.3.0"
++      },
++      "dependencies": {
++        "clone": {
++          "version": "1.0.4",
++          "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
++          "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=",
++          "dev": true
++        }
++      }
++    },
      "color-convert": {
        "version": "1.9.1",
        "resolved": "http://registry.npm.taobao.org/color-convert/download/color-convert-1.9.1.tgz",
        "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
        "dev": true
      },
 -        "has": "1.0.3"
+     "color-string": {
+       "version": "0.3.0",
+       "resolved": "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz",
+       "integrity": "sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE=",
+       "dev": true,
+       "requires": {
+         "color-name": "1.1.3"
+       }
+     },
+     "colormin": {
+       "version": "1.1.2",
+       "resolved": "https://registry.npmjs.org/colormin/-/colormin-1.1.2.tgz",
+       "integrity": "sha1-6i90IKcrlogaOKrlnsEkpvcpgTM=",
+       "dev": true,
+       "requires": {
+         "color": "0.11.4",
+         "css-color-names": "0.0.4",
++        "has": "1.0.1"
+       }
+     },
+     "colors": {
+       "version": "1.1.2",
+       "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz",
+       "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=",
+       "dev": true
+     },
      "combined-stream": {
 -      "version": "1.0.8",
 -      "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
 -      "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
 +      "version": "1.0.6",
 +      "resolved": "http://registry.npm.taobao.org/combined-stream/download/combined-stream-1.0.6.tgz",
 +      "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=",
        "dev": true,
        "requires": {
          "delayed-stream": "1.0.0"
          "source-list-map": "0.1.8"
        }
      },
 -        "has": "1.0.3",
+     "css-selector-tokenizer": {
+       "version": "0.7.1",
+       "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.1.tgz",
+       "integrity": "sha512-xYL0AMZJ4gFzJQsHUKa5jiWWi2vH77WVNg7JYRyewwj6oPh4yb/y6Y9ZCw9dsj/9UauMhtuxR+ogQd//EdEVNA==",
+       "dev": true,
+       "requires": {
+         "cssesc": "0.1.0",
+         "fastparse": "1.1.2",
+         "regexpu-core": "1.0.0"
+       },
+       "dependencies": {
+         "regexpu-core": {
+           "version": "1.0.0",
+           "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz",
+           "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=",
+           "dev": true,
+           "requires": {
+             "regenerate": "1.4.0",
+             "regjsgen": "0.2.0",
+             "regjsparser": "0.1.5"
+           }
+         }
+       }
+     },
+     "cssesc": {
+       "version": "0.1.0",
+       "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz",
+       "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=",
+       "dev": true
+     },
+     "cssnano": {
+       "version": "3.10.0",
+       "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-3.10.0.tgz",
+       "integrity": "sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg=",
+       "dev": true,
+       "requires": {
+         "autoprefixer": "6.7.7",
+         "decamelize": "1.2.0",
+         "defined": "1.0.0",
 -      }
 -    },
++        "has": "1.0.1",
+         "object-assign": "4.1.1",
+         "postcss": "5.2.18",
+         "postcss-calc": "5.3.1",
+         "postcss-colormin": "2.2.2",
+         "postcss-convert-values": "2.6.1",
+         "postcss-discard-comments": "2.0.4",
+         "postcss-discard-duplicates": "2.1.0",
+         "postcss-discard-empty": "2.1.0",
+         "postcss-discard-overridden": "0.1.1",
+         "postcss-discard-unused": "2.2.3",
+         "postcss-filter-plugins": "2.0.3",
+         "postcss-merge-idents": "2.1.7",
+         "postcss-merge-longhand": "2.0.2",
+         "postcss-merge-rules": "2.1.2",
+         "postcss-minify-font-values": "1.0.5",
+         "postcss-minify-gradients": "1.0.5",
+         "postcss-minify-params": "1.2.2",
+         "postcss-minify-selectors": "2.1.1",
+         "postcss-normalize-charset": "1.1.1",
+         "postcss-normalize-url": "3.0.8",
+         "postcss-ordered-values": "2.2.3",
+         "postcss-reduce-idents": "2.4.0",
+         "postcss-reduce-initial": "1.0.1",
+         "postcss-reduce-transforms": "1.0.4",
+         "postcss-svgo": "2.1.6",
+         "postcss-unique-selectors": "2.0.2",
+         "postcss-value-parser": "3.3.0",
+         "postcss-zindex": "2.2.0"
+       }
+     },
+     "csso": {
+       "version": "2.3.2",
+       "resolved": "https://registry.npmjs.org/csso/-/csso-2.3.2.tgz",
+       "integrity": "sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U=",
+       "dev": true,
+       "requires": {
+         "clap": "1.2.3",
+         "source-map": "0.5.7"
++      },
++      "dependencies": {
++        "source-map": {
++          "version": "0.5.7",
++          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
++          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
++          "dev": true
++        }
++      }
++    },
      "currently-unhandled": {
        "version": "0.4.1",
        "resolved": "http://registry.npm.taobao.org/currently-unhandled/download/currently-unhandled-0.4.1.tgz",
          "assert-plus": "1.0.0"
        }
      },
 -    "data-uri-to-buffer": {
 -      "version": "2.0.0",
 -      "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-2.0.0.tgz",
 -      "integrity": "sha512-YbKCNLPPP4inc0E5If4OaalBc7gpaM2MRv77Pv2VThVComLKfbGYtJcdDCViDyp1Wd4SebhHLz94vp91zbK6bw==",
 -      "optional": true,
 -      "requires": {
 -        "@types/node": "8.10.29"
 -      }
 -    },
      "date-format": {
        "version": "1.2.0",
--      "resolved": "https://registry.npmjs.org/date-format/-/date-format-1.2.0.tgz",
++      "resolved": "http://registry.npm.taobao.org/date-format/download/date-format-1.2.0.tgz",
        "integrity": "sha1-YV6CjiM90aubua4JUODOzPpuytg="
      },
      "date-now": {
          }
        }
      },
-     "del": {
-       "version": "2.2.2",
-       "resolved": "http://registry.npm.taobao.org/del/download/del-2.2.2.tgz",
-       "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=",
 -    "degenerator": {
 -      "version": "1.0.4",
 -      "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-1.0.4.tgz",
 -      "integrity": "sha1-/PSQo37OJmRk2cxDGrmMWBnO0JU=",
 -      "optional": true,
 -      "requires": {
 -        "ast-types": "0.12.2",
 -        "escodegen": "1.11.1",
 -        "esprima": "3.1.3"
 -      }
 -    },
 -    "define-properties": {
 -      "version": "1.1.3",
 -      "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
 -      "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
--      "dev": true,
--      "requires": {
-         "globby": "5.0.0",
-         "is-path-cwd": "1.0.0",
-         "is-path-in-cwd": "1.0.1",
-         "object-assign": "4.1.1",
-         "pify": "2.3.0",
-         "pinkie-promise": "2.0.1",
-         "rimraf": "2.6.2"
 -        "object-keys": "1.1.1"
--      }
 -    },
+     "defined": {
+       "version": "1.0.0",
+       "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
+       "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=",
+       "dev": true
      },
      "delayed-stream": {
        "version": "1.0.0",
          "electron-builder-lib": "20.14.7",
          "fs-extra-p": "4.6.0",
          "iconv-lite": "0.4.23",
--        "js-yaml": "3.11.0",
++        "js-yaml": "3.13.1",
          "parse-color": "1.0.0",
          "sanitize-filename": "1.6.1"
        },
              "hosted-git-info": "2.6.0",
              "is-ci": "1.1.0",
              "isbinaryfile": "3.0.2",
--            "js-yaml": "3.11.0",
++            "js-yaml": "3.13.1",
              "lazy-val": "1.0.3",
              "minimatch": "3.0.4",
              "normalize-package-data": "2.4.0",
                  "debug": "3.1.0",
                  "fs-extra-p": "4.6.0",
                  "is-ci": "1.1.0",
--                "js-yaml": "3.11.0",
++                "js-yaml": "3.13.1",
                  "lazy-val": "1.0.3",
                  "semver": "5.5.0",
                  "source-map-support": "0.5.6",
          "hosted-git-info": "2.6.0",
          "is-ci": "1.1.0",
          "isbinaryfile": "3.0.2",
--        "js-yaml": "3.11.0",
++        "js-yaml": "3.13.1",
          "lazy-val": "1.0.3",
          "minimatch": "3.0.4",
          "normalize-package-data": "2.4.0",
        }
      },
      "es-to-primitive": {
 -      "version": "1.2.0",
 -      "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz",
 -      "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==",
 +      "version": "1.1.1",
 +      "resolved": "http://registry.npm.taobao.org/es-to-primitive/download/es-to-primitive-1.1.1.tgz",
 +      "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=",
        "dev": true,
        "requires": {
 -        "is-callable": "1.1.4",
 +        "is-callable": "1.1.3",
          "is-date-object": "1.0.1",
 -        "is-symbol": "1.0.2"
 +        "is-symbol": "1.0.1"
        }
      },
-     "es5-ext": {
-       "version": "0.10.42",
-       "resolved": "http://registry.npm.taobao.org/es5-ext/download/es5-ext-0.10.42.tgz",
-       "integrity": "sha1-jAfdM68E1dzRMQtc7xO+pjqJuo0=",
-       "dev": true,
-       "requires": {
-         "es6-iterator": "2.0.3",
-         "es6-symbol": "3.1.1",
-         "next-tick": "1.0.0"
-       }
-     },
-     "es6-iterator": {
-       "version": "2.0.3",
-       "resolved": "http://registry.npm.taobao.org/es6-iterator/download/es6-iterator-2.0.3.tgz",
-       "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=",
-       "dev": true,
-       "requires": {
-         "d": "1.0.0",
-         "es5-ext": "0.10.42",
-         "es6-symbol": "3.1.1"
-       }
-     },
-     "es6-map": {
-       "version": "0.1.5",
-       "resolved": "http://registry.npm.taobao.org/es6-map/download/es6-map-0.1.5.tgz",
-       "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=",
-       "dev": true,
-       "requires": {
-         "d": "1.0.0",
-         "es5-ext": "0.10.42",
-         "es6-iterator": "2.0.3",
-         "es6-set": "0.1.5",
-         "es6-symbol": "3.1.1",
-         "event-emitter": "0.3.5"
-       }
-     },
 +    "es6-promise": {
 +      "version": "4.2.4",
 +      "resolved": "http://registry.npm.taobao.org/es6-promise/download/es6-promise-4.2.4.tgz",
 +      "integrity": "sha1-3EIhwrFlGHYL2MOaUtjzVvwA7Sk=",
 +      "dev": true
 +    },
-     "es6-set": {
-       "version": "0.1.5",
-       "resolved": "http://registry.npm.taobao.org/es6-set/download/es6-set-0.1.5.tgz",
-       "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=",
-       "dev": true,
-       "requires": {
-         "d": "1.0.0",
-         "es5-ext": "0.10.42",
-         "es6-iterator": "2.0.3",
-         "es6-symbol": "3.1.1",
-         "event-emitter": "0.3.5"
-       }
-     },
-     "es6-symbol": {
-       "version": "3.1.1",
-       "resolved": "http://registry.npm.taobao.org/es6-symbol/download/es6-symbol-3.1.1.tgz",
-       "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=",
-       "dev": true,
-       "requires": {
-         "d": "1.0.0",
-         "es5-ext": "0.10.42"
-       }
-     },
-     "es6-weak-map": {
-       "version": "2.0.2",
-       "resolved": "http://registry.npm.taobao.org/es6-weak-map/download/es6-weak-map-2.0.2.tgz",
-       "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=",
-       "dev": true,
-       "requires": {
-         "d": "1.0.0",
-         "es5-ext": "0.10.42",
-         "es6-iterator": "2.0.3",
-         "es6-symbol": "3.1.1"
-       }
-     },
      "escape-html": {
        "version": "1.0.3",
        "resolved": "http://registry.npm.taobao.org/escape-html/download/escape-html-1.0.3.tgz",
        "resolved": "http://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz",
        "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
      },
-     "escope": {
-       "version": "3.6.0",
-       "resolved": "http://registry.npm.taobao.org/escope/download/escope-3.6.0.tgz",
-       "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=",
-       "dev": true,
-       "requires": {
-         "es6-map": "0.1.5",
-         "es6-weak-map": "2.0.2",
-         "esrecurse": "4.2.1",
-         "estraverse": "4.2.0"
-       }
-     },
      "eslint": {
-       "version": "3.7.1",
-       "resolved": "http://registry.npm.taobao.org/eslint/download/eslint-3.7.1.tgz",
-       "integrity": "sha1-f6qEWZ4P6kIvBLwy20kFQFGj8Ro=",
+       "version": "4.18.2",
+       "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.18.2.tgz",
+       "integrity": "sha512-qy4i3wODqKMYfz9LUI8N2qYDkHkoieTbiHpMrYUI/WbjhXJQr7lI4VngixTgaG+yHX+NBCv7nW4hA0ShbvaNKw==",
        "dev": true,
        "requires": {
-         "chalk": "1.1.3",
+         "ajv": "5.5.2",
+         "babel-code-frame": "6.26.0",
+         "chalk": "2.4.2",
          "concat-stream": "1.6.2",
-         "debug": "2.6.9",
-         "doctrine": "1.5.0",
-         "escope": "3.6.0",
+         "cross-spawn": "5.1.0",
 -        "debug": "3.2.6",
++        "debug": "3.1.0",
+         "doctrine": "2.1.0",
+         "eslint-scope": "3.7.3",
+         "eslint-visitor-keys": "1.0.0",
          "espree": "3.5.4",
-         "estraverse": "4.2.0",
+         "esquery": "1.0.1",
          "esutils": "2.0.2",
          "file-entry-cache": "2.0.0",
 -        "glob": "7.1.3",
+         "functional-red-black-tree": "1.0.1",
-         "globals": "9.18.0",
-         "ignore": "3.3.8",
 +        "glob": "7.1.2",
+         "globals": "11.12.0",
+         "ignore": "3.3.10",
          "imurmurhash": "0.1.4",
-         "inquirer": "0.12.0",
-         "is-my-json-valid": "2.17.2",
+         "inquirer": "3.3.0",
          "is-resolvable": "1.1.0",
-         "js-yaml": "3.11.0",
-         "json-stable-stringify": "1.0.1",
+         "js-yaml": "3.13.1",
+         "json-stable-stringify-without-jsonify": "1.0.1",
          "levn": "0.3.0",
-         "lodash": "4.17.11",
+         "lodash": "4.17.14",
+         "minimatch": "3.0.4",
          "mkdirp": "0.5.1",
          "natural-compare": "1.4.0",
          "optionator": "0.8.2",
          "path-is-inside": "1.0.2",
-         "pluralize": "1.2.1",
-         "progress": "1.1.8",
+         "pluralize": "7.0.0",
+         "progress": "2.0.3",
          "require-uncached": "1.0.3",
-         "shelljs": "0.6.1",
-         "strip-bom": "3.0.0",
-         "strip-json-comments": "1.0.4",
-         "table": "3.8.3",
-         "text-table": "0.2.0",
-         "user-home": "2.0.0"
 -        "semver": "5.7.0",
++        "semver": "5.5.0",
+         "strip-ansi": "4.0.0",
+         "strip-json-comments": "2.0.1",
+         "table": "4.0.2",
+         "text-table": "0.2.0"
        },
        "dependencies": {
-         "debug": {
-           "version": "2.6.9",
-           "resolved": "http://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz",
-           "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
 -        "ajv": {
 -          "version": "5.5.2",
 -          "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
 -          "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
--          "dev": true,
--          "requires": {
-             "ms": "2.0.0"
 -            "co": "4.6.0",
 -            "fast-deep-equal": "1.1.0",
 -            "fast-json-stable-stringify": "2.0.0",
 -            "json-schema-traverse": "0.3.1"
--          }
--        },
-         "pluralize": {
-           "version": "1.2.1",
-           "resolved": "http://registry.npm.taobao.org/pluralize/download/pluralize-1.2.1.tgz",
-           "integrity": "sha1-0aIUg/0iu0HlihL6NCGCMUCJfEU=",
+         "ansi-regex": {
+           "version": "3.0.0",
+           "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+           "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
            "dev": true
          },
-         "shelljs": {
-           "version": "0.6.1",
-           "resolved": "http://registry.npm.taobao.org/shelljs/download/shelljs-0.6.1.tgz",
-           "integrity": "sha1-7GIRvtGSBEIIj+D3Cyg3Iy7SyKg=",
+         "ansi-styles": {
+           "version": "3.2.1",
+           "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+           "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+           "dev": true,
+           "requires": {
 -            "color-convert": "1.9.3"
++            "color-convert": "1.9.1"
+           }
+         },
+         "chalk": {
+           "version": "2.4.2",
+           "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+           "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+           "dev": true,
+           "requires": {
+             "ansi-styles": "3.2.1",
+             "escape-string-regexp": "1.0.5",
+             "supports-color": "5.5.0"
+           }
+         },
 -        "cross-spawn": {
 -          "version": "5.1.0",
 -          "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
 -          "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
 -          "dev": true,
 -          "requires": {
 -            "lru-cache": "4.1.5",
 -            "shebang-command": "1.2.0",
 -            "which": "1.3.0"
 -          }
 -        },
 -        "debug": {
 -          "version": "3.2.6",
 -          "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
 -          "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
 -          "dev": true,
 -          "requires": {
 -            "ms": "2.1.2"
 -          }
 -        },
 -        "doctrine": {
 -          "version": "2.1.0",
 -          "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
 -          "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
 -          "dev": true,
 -          "requires": {
 -            "esutils": "2.0.2"
 -          }
 -        },
 -        "fast-deep-equal": {
 -          "version": "1.1.0",
 -          "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz",
 -          "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=",
 -          "dev": true
 -        },
+         "globals": {
+           "version": "11.12.0",
+           "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
+           "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
            "dev": true
          },
-         "strip-bom": {
+         "has-flag": {
            "version": "3.0.0",
-           "resolved": "http://registry.npm.taobao.org/strip-bom/download/strip-bom-3.0.0.tgz",
-           "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+           "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+           "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
            "dev": true
          },
-         "user-home": {
-           "version": "2.0.0",
-           "resolved": "http://registry.npm.taobao.org/user-home/download/user-home-2.0.0.tgz",
-           "integrity": "sha1-nHC/2Babwdy/SGBODwS4tJzenp8=",
 -        "json-schema-traverse": {
 -          "version": "0.3.1",
 -          "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
 -          "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=",
 -          "dev": true
 -        },
 -        "ms": {
 -          "version": "2.1.2",
 -          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
 -          "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
 -          "dev": true
 -        },
+         "pluralize": {
+           "version": "7.0.0",
+           "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz",
+           "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
+           "dev": true
+         },
+         "strip-ansi": {
+           "version": "4.0.0",
+           "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+           "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+           "dev": true,
+           "requires": {
+             "ansi-regex": "3.0.0"
+           }
+         },
+         "strip-json-comments": {
+           "version": "2.0.1",
+           "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+           "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
+           "dev": true
+         },
+         "supports-color": {
+           "version": "5.5.0",
+           "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+           "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
            "dev": true,
            "requires": {
-             "os-homedir": "1.0.2"
+             "has-flag": "3.0.0"
            }
          }
        }
      },
      "eslint-plugin-react": {
-       "version": "6.4.1",
-       "resolved": "http://registry.npm.taobao.org/eslint-plugin-react/download/eslint-plugin-react-6.4.1.tgz",
-       "integrity": "sha1-fRqt50fbFYkvce7h/qSt35e8+is=",
+       "version": "7.14.2",
+       "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.14.2.tgz",
+       "integrity": "sha512-jZdnKe3ip7FQOdjxks9XPN0pjUKZYq48OggNMd16Sk+8VXx6JOvXmlElxROCgp7tiUsTsze3jd78s/9AFJP2mA==",
+       "dev": true,
+       "requires": {
+         "array-includes": "3.0.3",
+         "doctrine": "2.1.0",
+         "has": "1.0.3",
+         "jsx-ast-utils": "2.2.1",
+         "object.entries": "1.1.0",
+         "object.fromentries": "2.0.0",
+         "object.values": "1.1.0",
+         "prop-types": "15.7.2",
+         "resolve": "1.11.1"
+       },
+       "dependencies": {
++        "has": {
++          "version": "1.0.3",
++          "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
++          "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
++          "dev": true,
++          "requires": {
++            "function-bind": "1.1.1"
++          }
++        },
+         "loose-envify": {
+           "version": "1.4.0",
+           "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
+           "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
+           "dev": true,
+           "requires": {
+             "js-tokens": "3.0.2"
+           }
+         },
+         "path-parse": {
+           "version": "1.0.6",
+           "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
+           "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
+           "dev": true
+         },
+         "prop-types": {
+           "version": "15.7.2",
+           "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz",
+           "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==",
+           "dev": true,
+           "requires": {
+             "loose-envify": "1.4.0",
+             "object-assign": "4.1.1",
+             "react-is": "16.8.6"
+           }
+         },
+         "react-is": {
+           "version": "16.8.6",
+           "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.8.6.tgz",
+           "integrity": "sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA==",
+           "dev": true
+         },
+         "resolve": {
+           "version": "1.11.1",
+           "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz",
+           "integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==",
+           "dev": true,
+           "requires": {
+             "path-parse": "1.0.6"
+           }
+         }
+       }
+     },
+     "eslint-scope": {
+       "version": "3.7.3",
+       "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz",
+       "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==",
        "dev": true,
        "requires": {
-         "doctrine": "1.5.0",
-         "jsx-ast-utils": "1.4.1"
+         "esrecurse": "4.2.1",
+         "estraverse": "4.2.0"
        }
      },
+     "eslint-visitor-keys": {
+       "version": "1.0.0",
+       "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz",
+       "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==",
+       "dev": true
+     },
      "espree": {
        "version": "3.5.4",
--      "resolved": "http://registry.npm.taobao.org/espree/download/espree-3.5.4.tgz",
--      "integrity": "sha1-sPRHGHyKi+2US4FaZgvd9d610ac=",
++      "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz",
++      "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==",
        "dev": true,
        "requires": {
-         "acorn": "5.5.3",
+         "acorn": "5.7.3",
          "acorn-jsx": "3.0.1"
        }
      },
+     "esprima": {
+       "version": "4.0.1",
+       "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+       "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+       "dev": true
+     },
+     "esquery": {
+       "version": "1.0.1",
+       "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz",
+       "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==",
+       "dev": true,
+       "requires": {
+         "estraverse": "4.2.0"
+       }
+     },
      "esrecurse": {
        "version": "4.2.1",
--      "resolved": "http://registry.npm.taobao.org/esrecurse/download/esrecurse-4.2.1.tgz",
--      "integrity": "sha1-AHo7n9vCs7uH5IeeoZyS/b05Qs8=",
++      "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz",
++      "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==",
        "dev": true,
        "requires": {
          "estraverse": "4.2.0"
        "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=",
        "dev": true
      },
-     "event-emitter": {
-       "version": "0.3.5",
-       "resolved": "http://registry.npm.taobao.org/event-emitter/download/event-emitter-0.3.5.tgz",
-       "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=",
-       "dev": true,
-       "requires": {
-         "d": "1.0.0",
-         "es5-ext": "0.10.42"
-       }
-     },
 +    "event-stream": {
 +      "version": "3.3.4",
 +      "resolved": "http://registry.npm.taobao.org/event-stream/download/event-stream-3.3.4.tgz",
 +      "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=",
 +      "dev": true,
 +      "requires": {
 +        "duplexer": "0.1.1",
 +        "from": "0.1.7",
 +        "map-stream": "0.1.0",
 +        "pause-stream": "0.0.11",
 +        "split": "0.3.3",
 +        "stream-combiner": "0.0.4",
 +        "through": "2.3.8"
 +      }
 +    },
      "eventemitter3": {
 -      "version": "3.1.2",
 -      "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz",
 -      "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==",
 +      "version": "3.1.0",
 +      "resolved": "http://registry.npm.taobao.org/eventemitter3/download/eventemitter3-3.1.0.tgz",
 +      "integrity": "sha1-CQtNbNvWRe0Qv3UNS1QHlC17oWM=",
        "dev": true
      },
      "events": {
      "extend": {
        "version": "3.0.2",
        "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
 -      "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
 +      "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
 +      "dev": true
      },
+     "external-editor": {
+       "version": "2.2.0",
+       "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz",
+       "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==",
+       "dev": true,
+       "requires": {
+         "chardet": "0.4.2",
+         "iconv-lite": "0.4.23",
+         "tmp": "0.0.33"
+       }
+     },
      "extglob": {
        "version": "0.3.2",
        "resolved": "http://registry.npm.taobao.org/extglob/download/extglob-0.3.2.tgz",
      "fast-levenshtein": {
        "version": "2.0.6",
        "resolved": "http://registry.npm.taobao.org/fast-levenshtein/download/fast-levenshtein-2.0.6.tgz",
 -      "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc="
 +      "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
 +      "dev": true
      },
      "fastparse": {
-       "version": "1.1.1",
-       "resolved": "http://registry.npm.taobao.org/fastparse/download/fastparse-1.1.1.tgz",
-       "integrity": "sha1-0eJkOzipTXWDtHkGDmxK/8lAcfg=",
+       "version": "1.1.2",
+       "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz",
+       "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==",
        "dev": true
      },
      "fbjs": {
        "dev": true
      },
      "fill-range": {
 -      "version": "7.0.1",
 -      "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
 -      "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
 +      "version": "2.2.4",
-       "resolved": "http://registry.npm.taobao.org/fill-range/download/fill-range-2.2.4.tgz",
-       "integrity": "sha1-6x53OrsFbc2N8r/favWbizqTZWU=",
++      "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz",
++      "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==",
        "dev": true,
        "requires": {
 -        "to-regex-range": "5.0.1"
 +        "is-number": "2.1.0",
 +        "isobject": "2.1.0",
-         "randomatic": "3.0.0",
-         "repeat-element": "1.1.2",
++        "randomatic": "3.1.1",
++        "repeat-element": "1.1.3",
 +        "repeat-string": "1.6.1"
        }
      },
      "finalhandler": {
        "dependencies": {
          "circular-json": {
            "version": "0.3.3",
--          "resolved": "http://registry.npm.taobao.org/circular-json/download/circular-json-0.3.3.tgz",
--          "integrity": "sha1-gVyZ6oT2gJUp0vRXkb34JxE1LWY=",
++          "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz",
++          "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==",
            "dev": true
          }
        }
      },
+     "flatten": {
+       "version": "1.0.2",
+       "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz",
+       "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=",
+       "dev": true
+     },
      "follow-redirects": {
 -      "version": "1.7.0",
 -      "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.7.0.tgz",
 -      "integrity": "sha512-m/pZQy4Gj287eNy94nivy5wchN3Kp+Q5WgUPNy5lJSZ3sgkVKSYV/ZChMAQVIgx1SqfZ2zBZtPA2YlXIWxxJOQ==",
 +      "version": "1.0.0",
 +      "resolved": "http://registry.npm.taobao.org/follow-redirects/download/follow-redirects-1.0.0.tgz",
 +      "integrity": "sha1-jjQpjL0uF28lTv/sdaHHjMhJ/Tc=",
        "dev": true,
        "requires": {
 -        "debug": "3.2.6"
 +        "debug": "2.6.9"
        },
        "dependencies": {
          "debug": {
      },
      "function-bind": {
        "version": "1.1.1",
 -      "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
 -      "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
 +      "resolved": "http://registry.npm.taobao.org/function-bind/download/function-bind-1.1.1.tgz",
 +      "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=",
        "dev": true
      },
+     "functional-red-black-tree": {
+       "version": "1.0.1",
+       "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
+       "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
+       "dev": true
+     },
      "gauge": {
        "version": "2.7.4",
        "resolved": "http://registry.npm.taobao.org/gauge/download/gauge-2.7.4.tgz",
      },
      "gaze": {
        "version": "1.1.3",
--      "resolved": "http://registry.npm.taobao.org/gaze/download/gaze-1.1.3.tgz",
--      "integrity": "sha1-xEFzPhO5J6yMD/C0w7Az8ogSkko=",
-       "dev": true,
-       "requires": {
-         "globule": "1.2.0"
-       }
-     },
-     "generate-function": {
-       "version": "2.0.0",
-       "resolved": "http://registry.npm.taobao.org/generate-function/download/generate-function-2.0.0.tgz",
-       "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=",
-       "dev": true
-     },
-     "generate-object-property": {
-       "version": "1.2.0",
-       "resolved": "http://registry.npm.taobao.org/generate-object-property/download/generate-object-property-1.2.0.tgz",
-       "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=",
++      "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz",
++      "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==",
        "dev": true,
        "requires": {
-         "is-property": "1.0.2"
+         "globule": "1.2.1"
        }
      },
      "get-caller-file": {
        "resolved": "http://registry.npm.taobao.org/globals/download/globals-9.18.0.tgz",
        "integrity": "sha1-qjiWs+abSH8X4x7SFD1pqOMMLYo="
      },
-     "globby": {
-       "version": "5.0.0",
-       "resolved": "http://registry.npm.taobao.org/globby/download/globby-5.0.0.tgz",
-       "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=",
-       "dev": true,
-       "requires": {
-         "array-union": "1.0.2",
-         "arrify": "1.0.1",
-         "glob": "7.1.2",
-         "object-assign": "4.1.1",
-         "pify": "2.3.0",
-         "pinkie-promise": "2.0.1"
-       }
-     },
      "globule": {
-       "version": "1.2.0",
-       "resolved": "http://registry.npm.taobao.org/globule/download/globule-1.2.0.tgz",
-       "integrity": "sha1-HcScaCLdnoovoAuiopUAboZkvQk=",
+       "version": "1.2.1",
+       "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz",
+       "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==",
        "dev": true,
        "requires": {
 -        "glob": "7.1.3",
 +        "glob": "7.1.2",
-         "lodash": "4.17.11",
+         "lodash": "4.17.14",
          "minimatch": "3.0.4"
        }
      },
        "dev": true
      },
      "hosted-git-info": {
 -      "version": "2.7.1",
 -      "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz",
 -      "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==",
 +      "version": "2.6.0",
 +      "resolved": "http://registry.npm.taobao.org/hosted-git-info/download/hosted-git-info-2.6.0.tgz",
 +      "integrity": "sha1-IyNbKasjDFdqqw1PE/wEawsDgiI=",
        "dev": true
      },
+     "html-comment-regex": {
+       "version": "1.1.2",
+       "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz",
+       "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==",
+       "dev": true
+     },
      "html-entities": {
        "version": "1.2.1",
        "resolved": "http://registry.npm.taobao.org/html-entities/download/html-entities-1.2.1.tgz",
          "safer-buffer": "2.1.2"
        }
      },
+     "icss-replace-symbols": {
+       "version": "1.1.0",
+       "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz",
+       "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=",
+       "dev": true
+     },
      "ieee754": {
 -      "version": "1.1.13",
 -      "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz",
 -      "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==",
 +      "version": "1.1.11",
 +      "resolved": "http://registry.npm.taobao.org/ieee754/download/ieee754-1.1.11.tgz",
 +      "integrity": "sha1-wWOE/+APW3g1gk5ntvK9RKUilFU=",
        "dev": true
      },
      "ignore": {
-       "version": "3.3.8",
-       "resolved": "http://registry.npm.taobao.org/ignore/download/ignore-3.3.8.tgz",
-       "integrity": "sha1-P46cNdOHCKOn4Omrtsc+fudweys=",
+       "version": "3.3.10",
+       "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz",
+       "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==",
        "dev": true
      },
 +    "import-lazy": {
 +      "version": "2.1.0",
 +      "resolved": "http://registry.npm.taobao.org/import-lazy/download/import-lazy-2.1.0.tgz",
 +      "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=",
 +      "dev": true
 +    },
      "imurmurhash": {
        "version": "0.1.4",
        "resolved": "http://registry.npm.taobao.org/imurmurhash/download/imurmurhash-0.1.4.tgz",
        "dev": true
      },
      "inquirer": {
-       "version": "0.12.0",
-       "resolved": "http://registry.npm.taobao.org/inquirer/download/inquirer-0.12.0.tgz",
-       "integrity": "sha1-HvK/1jUE3wvHV4X/+MLEHfEvB34=",
+       "version": "3.3.0",
+       "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz",
+       "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==",
        "dev": true,
        "requires": {
-         "ansi-escapes": "1.4.0",
-         "ansi-regex": "2.1.1",
-         "chalk": "1.1.3",
-         "cli-cursor": "1.0.2",
+         "ansi-escapes": "3.2.0",
+         "chalk": "2.4.2",
+         "cli-cursor": "2.1.0",
          "cli-width": "2.2.0",
-         "figures": "1.7.0",
-         "lodash": "4.17.11",
-         "readline2": "1.0.1",
-         "run-async": "0.1.0",
-         "rx-lite": "3.1.2",
-         "string-width": "1.0.2",
-         "strip-ansi": "3.0.1",
+         "external-editor": "2.2.0",
+         "figures": "2.0.0",
+         "lodash": "4.17.14",
+         "mute-stream": "0.0.7",
+         "run-async": "2.3.0",
+         "rx-lite": "4.0.8",
+         "rx-lite-aggregates": "4.0.8",
+         "string-width": "2.1.1",
+         "strip-ansi": "4.0.0",
          "through": "2.3.8"
 -            "color-convert": "1.9.3"
+       },
+       "dependencies": {
+         "ansi-regex": {
+           "version": "3.0.0",
+           "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+           "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+           "dev": true
+         },
+         "ansi-styles": {
+           "version": "3.2.1",
+           "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+           "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+           "dev": true,
+           "requires": {
++            "color-convert": "1.9.1"
+           }
+         },
+         "chalk": {
+           "version": "2.4.2",
+           "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+           "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+           "dev": true,
+           "requires": {
+             "ansi-styles": "3.2.1",
+             "escape-string-regexp": "1.0.5",
+             "supports-color": "5.5.0"
+           }
+         },
+         "has-flag": {
+           "version": "3.0.0",
+           "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+           "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+           "dev": true
+         },
+         "is-fullwidth-code-point": {
+           "version": "2.0.0",
+           "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+           "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+           "dev": true
+         },
+         "string-width": {
+           "version": "2.1.1",
+           "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+           "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+           "dev": true,
+           "requires": {
+             "is-fullwidth-code-point": "2.0.0",
+             "strip-ansi": "4.0.0"
+           }
+         },
+         "strip-ansi": {
+           "version": "4.0.0",
+           "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+           "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+           "dev": true,
+           "requires": {
+             "ansi-regex": "3.0.0"
+           }
+         },
+         "supports-color": {
+           "version": "5.5.0",
+           "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+           "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+           "dev": true,
+           "requires": {
+             "has-flag": "3.0.0"
+           }
+         }
        }
      },
      "interpret": {
        "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=",
        "dev": true
      },
 -    "ip": {
 -      "version": "1.1.5",
 -      "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz",
 -      "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo="
 -    },
      "ipaddr.js": {
 -      "version": "1.9.0",
 -      "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz",
 -      "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==",
 +      "version": "1.6.0",
 +      "resolved": "http://registry.npm.taobao.org/ipaddr.js/download/ipaddr.js-1.6.0.tgz",
 +      "integrity": "sha1-4/o1e3c9phnybpXwSdBVxyeW+Gs=",
        "dev": true
      },
+     "is-absolute-url": {
+       "version": "2.1.0",
+       "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz",
+       "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=",
+       "dev": true
+     },
      "is-arrayish": {
        "version": "0.2.1",
        "resolved": "http://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.2.1.tgz",
          "is-extglob": "1.0.0"
        }
      },
 -    "is-number": {
 -      "version": "7.0.0",
 -      "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
 -      "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
 -      "dev": true
 -    },
 -    "is-plain-obj": {
 -      "version": "1.1.0",
 +    "is-installed-globally": {
 +      "version": "0.1.0",
 +      "resolved": "http://registry.npm.taobao.org/is-installed-globally/download/is-installed-globally-0.1.0.tgz",
 +      "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=",
 +      "dev": true,
 +      "requires": {
 +        "global-dirs": "0.1.1",
 +        "is-path-inside": "1.0.1"
 +      }
 +    },
-     "is-my-ip-valid": {
-       "version": "1.0.0",
-       "resolved": "http://registry.npm.taobao.org/is-my-ip-valid/download/is-my-ip-valid-1.0.0.tgz",
-       "integrity": "sha1-ezUbjo7dTTmV1NBmaA5mTZRpaCQ=",
-       "dev": true
-     },
-     "is-my-json-valid": {
-       "version": "2.17.2",
-       "resolved": "http://registry.npm.taobao.org/is-my-json-valid/download/is-my-json-valid-2.17.2.tgz",
-       "integrity": "sha1-ayEDoojpTvPeXPFdKd2F/Et41lw=",
-       "dev": true,
-       "requires": {
-         "generate-function": "2.0.0",
-         "generate-object-property": "1.2.0",
-         "is-my-ip-valid": "1.0.0",
-         "jsonpointer": "4.0.1",
-         "xtend": "4.0.1"
-       }
-     },
 +    "is-npm": {
 +      "version": "1.0.0",
 +      "resolved": "http://registry.npm.taobao.org/is-npm/download/is-npm-1.0.0.tgz",
 +      "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=",
 +      "dev": true
 +    },
 +    "is-number": {
 +      "version": "2.1.0",
 +      "resolved": "http://registry.npm.taobao.org/is-number/download/is-number-2.1.0.tgz",
 +      "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=",
 +      "dev": true,
 +      "requires": {
 +        "kind-of": "3.2.2"
 +      }
 +    },
 +    "is-obj": {
 +      "version": "1.0.1",
 +      "resolved": "http://registry.npm.taobao.org/is-obj/download/is-obj-1.0.1.tgz",
 +      "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=",
 +      "dev": true
 +    },
-     "is-path-cwd": {
-       "version": "1.0.0",
-       "resolved": "http://registry.npm.taobao.org/is-path-cwd/download/is-path-cwd-1.0.0.tgz",
-       "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=",
-       "dev": true
-     },
-     "is-path-in-cwd": {
-       "version": "1.0.1",
-       "resolved": "http://registry.npm.taobao.org/is-path-in-cwd/download/is-path-in-cwd-1.0.1.tgz",
-       "integrity": "sha1-WsSLNF72dTOb1sekipEhELJBz1I=",
-       "dev": true,
-       "requires": {
-         "is-path-inside": "1.0.1"
-       }
-     },
 +    "is-path-inside": {
 +      "version": "1.0.1",
 +      "resolved": "http://registry.npm.taobao.org/is-path-inside/download/is-path-inside-1.0.1.tgz",
 +      "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=",
 +      "dev": true,
 +      "requires": {
 +        "path-is-inside": "1.0.2"
 +      }
 +    },
-     "is-posix-bracket": {
-       "version": "0.1.1",
-       "resolved": "http://registry.npm.taobao.org/is-posix-bracket/download/is-posix-bracket-0.1.1.tgz",
-       "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=",
-       "dev": true
-     },
-     "is-primitive": {
-       "version": "2.0.0",
-       "resolved": "http://registry.npm.taobao.org/is-primitive/download/is-primitive-2.0.0.tgz",
-       "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=",
++    "is-plain-obj": {
++      "version": "1.1.0",
+       "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
+       "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=",
        "dev": true
      },
-     "is-promise": {
+     "is-plain-object": {
+       "version": "2.0.4",
+       "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
+       "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+       "dev": true,
+       "requires": {
+         "isobject": "3.0.1"
+       },
+       "dependencies": {
+         "isobject": {
+           "version": "3.0.1",
+           "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+           "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+           "dev": true
+         }
+       }
+     },
+     "is-posix-bracket": {
+       "version": "0.1.1",
+       "resolved": "http://registry.npm.taobao.org/is-posix-bracket/download/is-posix-bracket-0.1.1.tgz",
+       "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=",
+       "dev": true
+     },
+     "is-primitive": {
+       "version": "2.0.0",
+       "resolved": "http://registry.npm.taobao.org/is-primitive/download/is-primitive-2.0.0.tgz",
+       "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=",
+       "dev": true
+     },
+     "is-promise": {
        "version": "2.1.0",
        "resolved": "http://registry.npm.taobao.org/is-promise/download/is-promise-2.1.0.tgz",
        "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o="
      },
-     "is-property": {
-       "version": "1.0.2",
-       "resolved": "http://registry.npm.taobao.org/is-property/download/is-property-1.0.2.tgz",
-       "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=",
-       "dev": true
-     },
 -    "is-regex": {
 -      "version": "1.0.4",
 -      "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz",
 -      "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=",
 -      "dev": true,
 -      "requires": {
 -        "has": "1.0.3"
 -      }
 +    "is-redirect": {
 +      "version": "1.0.0",
 +      "resolved": "http://registry.npm.taobao.org/is-redirect/download/is-redirect-1.0.0.tgz",
 +      "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=",
 +      "dev": true
      },
      "is-regex": {
        "version": "1.0.4",
      },
      "is-resolvable": {
        "version": "1.1.0",
--      "resolved": "http://registry.npm.taobao.org/is-resolvable/download/is-resolvable-1.1.0.tgz",
--      "integrity": "sha1-+xj4fOH+uSUWnJpAfBkxijIG7Yg=",
++      "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz",
++      "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==",
        "dev": true
      },
      "is-retry-allowed": {
        "resolved": "http://registry.npm.taobao.org/is-stream/download/is-stream-1.1.0.tgz",
        "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ="
      },
+     "is-svg": {
+       "version": "2.1.0",
+       "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-2.1.0.tgz",
+       "integrity": "sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk=",
+       "dev": true,
+       "requires": {
+         "html-comment-regex": "1.1.2"
+       }
+     },
      "is-symbol": {
 -      "version": "1.0.2",
 -      "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz",
 -      "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==",
 -      "dev": true,
 -      "requires": {
 -        "has-symbols": "1.0.0"
 -      }
 +      "version": "1.0.1",
 +      "resolved": "http://registry.npm.taobao.org/is-symbol/download/is-symbol-1.0.1.tgz",
 +      "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=",
 +      "dev": true
      },
      "is-typedarray": {
        "version": "1.0.0",
      "json-schema": {
        "version": "0.2.3",
        "resolved": "http://registry.npm.taobao.org/json-schema/download/json-schema-0.2.3.tgz",
 -      "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
 +      "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
 +      "dev": true
      },
      "json-schema-traverse": {
 -      "version": "0.4.1",
 -      "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
 -      "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
 +      "version": "0.3.1",
 +      "resolved": "http://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.3.1.tgz",
 +      "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=",
        "dev": true
      },
-     "json-stable-stringify": {
+     "json-stable-stringify-without-jsonify": {
        "version": "1.0.1",
-       "resolved": "http://registry.npm.taobao.org/json-stable-stringify/download/json-stable-stringify-1.0.1.tgz",
-       "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=",
-       "dev": true,
-       "requires": {
-         "jsonify": "0.0.0"
-       }
+       "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+       "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=",
+       "dev": true
      },
      "json-stringify-safe": {
        "version": "5.0.1",
        "resolved": "http://registry.npm.taobao.org/json5/download/json5-0.5.1.tgz",
        "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE="
      },
-     "jsonpointer": {
-       "version": "4.0.1",
-       "resolved": "http://registry.npm.taobao.org/jsonpointer/download/jsonpointer-4.0.1.tgz",
-       "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=",
-       "dev": true
-     },
 +    "jsonfile": {
 +      "version": "4.0.0",
 +      "resolved": "http://registry.npm.taobao.org/jsonfile/download/jsonfile-4.0.0.tgz",
 +      "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
 +      "requires": {
 +        "graceful-fs": "4.1.11"
 +      }
 +    },
 +    "jsonify": {
 +      "version": "0.0.0",
 +      "resolved": "http://registry.npm.taobao.org/jsonify/download/jsonify-0.0.0.tgz",
 +      "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=",
 +      "dev": true
 +    },
      "jsprim": {
        "version": "1.4.1",
        "resolved": "http://registry.npm.taobao.org/jsprim/download/jsprim-1.4.1.tgz",
        "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=",
        "dev": true
      },
+     "lodash.tail": {
+       "version": "4.1.1",
+       "resolved": "https://registry.npmjs.org/lodash.tail/-/lodash.tail-4.1.1.tgz",
+       "integrity": "sha1-0jM6NtnncXyK0vfKyv7HwytERmQ=",
+       "dev": true
+     },
+     "lodash.uniq": {
+       "version": "4.5.0",
+       "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
+       "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=",
+       "dev": true
+     },
 +    "log4js": {
 +      "version": "3.0.6",
 +      "resolved": "https://registry.npmjs.org/log4js/-/log4js-3.0.6.tgz",
 +      "integrity": "sha512-ezXZk6oPJCWL483zj64pNkMuY/NcRX5MPiB0zE6tjZM137aeusrOnW1ecxgF9cmwMWkBMhjteQxBPoZBh9FDxQ==",
 +      "requires": {
 +        "circular-json": "0.5.9",
 +        "date-format": "1.2.0",
 +        "debug": "3.1.0",
 +        "rfdc": "1.1.2",
 +        "streamroller": "0.7.0"
 +      }
 +    },
      "longest": {
        "version": "1.0.1",
        "resolved": "http://registry.npm.taobao.org/longest/download/longest-1.0.1.tgz",
        "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
        "dev": true
      },
 +    "map-stream": {
 +      "version": "0.1.0",
 +      "resolved": "http://registry.npm.taobao.org/map-stream/download/map-stream-0.1.0.tgz",
 +      "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=",
 +      "dev": true
 +    },
+     "math-expression-evaluator": {
+       "version": "1.2.17",
+       "resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz",
+       "integrity": "sha1-3oGf282E3M2PrlnGrreWFbnSZqw=",
+       "dev": true
+     },
      "math-random": {
-       "version": "1.0.1",
-       "resolved": "http://registry.npm.taobao.org/math-random/download/math-random-1.0.1.tgz",
-       "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=",
+       "version": "1.0.4",
+       "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz",
+       "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==",
        "dev": true
      },
      "mdurl": {
      },
      "nan": {
        "version": "2.10.0",
 -      "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz",
 -      "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==",
 +      "resolved": "http://registry.npm.taobao.org/nan/download/nan-2.10.0.tgz",
 +      "integrity": "sha1-ltDNYQ69WNS03pzAxoKM2pnHVI8=",
-       "dev": true
+       "dev": true,
+       "optional": true
      },
      "natural-compare": {
        "version": "1.4.0",
        "dev": true
      },
      "negotiator": {
 -      "version": "0.6.2",
 -      "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
 -      "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==",
 +      "version": "0.6.1",
 +      "resolved": "http://registry.npm.taobao.org/negotiator/download/negotiator-0.6.1.tgz",
 +      "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=",
        "dev": true
      },
-     "next-tick": {
-       "version": "1.0.0",
-       "resolved": "http://registry.npm.taobao.org/next-tick/download/next-tick-1.0.0.tgz",
-       "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=",
+     "neo-async": {
+       "version": "2.6.1",
+       "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz",
+       "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==",
        "dev": true
      },
      "nice-try": {
        }
      },
      "node-gyp": {
-       "version": "3.6.2",
-       "resolved": "http://registry.npm.taobao.org/node-gyp/download/node-gyp-3.6.2.tgz",
-       "integrity": "sha1-m/vlRWIoYoSDjnUOrAUpWFP6HGA=",
+       "version": "3.8.0",
+       "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz",
+       "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==",
        "dev": true,
        "requires": {
-         "fstream": "1.0.11",
+         "fstream": "1.0.12",
 -        "glob": "7.1.3",
 +        "glob": "7.1.2",
          "graceful-fs": "4.1.11",
-         "minimatch": "3.0.4",
          "mkdirp": "0.5.1",
          "nopt": "3.0.6",
          "npmlog": "4.1.2",
          "osenv": "0.1.5",
 -        "request": "2.88.0",
 +        "request": "2.87.0",
          "rimraf": "2.6.2",
          "semver": "5.3.0",
-         "tar": "2.2.1",
+         "tar": "2.2.2",
 -        "which": "1.3.0"
 +        "which": "1.3.1"
        },
        "dependencies": {
          "semver": {
          "cross-spawn": "3.0.1",
          "gaze": "1.1.3",
          "get-stdin": "4.0.1",
 -        "glob": "7.1.3",
 +        "glob": "7.1.2",
          "in-publish": "2.0.0",
-         "lodash.clonedeep": "4.5.0",
+         "lodash": "4.17.14",
          "meow": "3.7.0",
          "mkdirp": "0.5.1",
-         "nan": "2.10.0",
-         "node-gyp": "3.6.2",
-         "request": "2.87.0",
-         "sass-graph": "2.2.4"
+         "nan": "2.14.0",
+         "node-gyp": "3.8.0",
+         "npmlog": "4.1.2",
+         "request": "2.88.0",
+         "sass-graph": "2.2.4",
+         "stdout-stream": "1.4.1",
+         "true-case-path": "1.0.3"
        },
        "dependencies": {
++        "ajv": {
++          "version": "6.10.2",
++          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz",
++          "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==",
++          "dev": true,
++          "requires": {
++            "fast-deep-equal": "2.0.1",
++            "fast-json-stable-stringify": "2.0.0",
++            "json-schema-traverse": "0.4.1",
++            "uri-js": "4.2.2"
++          }
++        },
++        "aws4": {
++          "version": "1.8.0",
++          "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
++          "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==",
++          "dev": true
++        },
 +        "cross-spawn": {
 +          "version": "3.0.1",
 +          "resolved": "http://registry.npm.taobao.org/cross-spawn/download/cross-spawn-3.0.1.tgz",
 +          "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=",
 +          "dev": true,
 +          "requires": {
 +            "lru-cache": "4.1.3",
 +            "which": "1.3.1"
 +          }
++        },
++        "fast-deep-equal": {
++          "version": "2.0.1",
++          "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
++          "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
++          "dev": true
++        },
++        "har-validator": {
++          "version": "5.1.3",
++          "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
++          "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
++          "dev": true,
++          "requires": {
++            "ajv": "6.10.2",
++            "har-schema": "2.0.0"
++          }
++        },
++        "json-schema-traverse": {
++          "version": "0.4.1",
++          "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
++          "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
++          "dev": true
++        },
++        "mime-db": {
++          "version": "1.40.0",
++          "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz",
++          "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==",
++          "dev": true
++        },
++        "mime-types": {
++          "version": "2.1.24",
++          "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz",
++          "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==",
++          "dev": true,
++          "requires": {
++            "mime-db": "1.40.0"
++          }
++        },
+         "nan": {
+           "version": "2.14.0",
+           "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz",
+           "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==",
+           "dev": true
++        },
++        "oauth-sign": {
++          "version": "0.9.0",
++          "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
++          "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
++          "dev": true
++        },
++        "request": {
++          "version": "2.88.0",
++          "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
++          "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
++          "dev": true,
++          "requires": {
++            "aws-sign2": "0.7.0",
++            "aws4": "1.8.0",
++            "caseless": "0.12.0",
++            "combined-stream": "1.0.6",
++            "extend": "3.0.2",
++            "forever-agent": "0.6.1",
++            "form-data": "2.3.2",
++            "har-validator": "5.1.3",
++            "http-signature": "1.2.0",
++            "is-typedarray": "1.0.0",
++            "isstream": "0.1.2",
++            "json-stringify-safe": "5.0.1",
++            "mime-types": "2.1.24",
++            "oauth-sign": "0.9.0",
++            "performance-now": "2.1.0",
++            "qs": "6.5.2",
++            "safe-buffer": "5.1.2",
++            "tough-cookie": "2.4.3",
++            "tunnel-agent": "0.6.0",
++            "uuid": "3.3.2"
++          }
++        },
++        "tough-cookie": {
++          "version": "2.4.3",
++          "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
++          "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
++          "dev": true,
++          "requires": {
++            "psl": "1.2.0",
++            "punycode": "1.4.1"
++          }
++        },
++        "uuid": {
++          "version": "3.3.2",
++          "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
++          "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==",
++          "dev": true
          }
        }
      },
        "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=",
        "dev": true
      },
+     "normalize-url": {
+       "version": "1.9.1",
+       "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz",
+       "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=",
+       "dev": true,
+       "requires": {
+         "object-assign": "4.1.1",
+         "prepend-http": "1.0.4",
+         "query-string": "4.3.4",
+         "sort-keys": "1.1.2"
+       },
+       "dependencies": {
+         "query-string": {
+           "version": "4.3.4",
+           "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz",
+           "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=",
+           "dev": true,
+           "requires": {
+             "object-assign": "4.1.1",
+             "strict-uri-encode": "1.1.0"
+           }
+         }
+       }
+     },
 +    "npm-run-all": {
 +      "version": "4.1.3",
 +      "resolved": "http://registry.npm.taobao.org/npm-run-all/download/npm-run-all-4.1.3.tgz",
 +      "integrity": "sha1-SfFbVaZrtBAWZM4nDLGOcQP48YU=",
 +      "dev": true,
 +      "requires": {
 +        "ansi-styles": "3.2.1",
 +        "chalk": "2.4.1",
 +        "cross-spawn": "6.0.5",
 +        "memorystream": "0.3.1",
 +        "minimatch": "3.0.4",
 +        "ps-tree": "1.1.0",
 +        "read-pkg": "3.0.0",
 +        "shell-quote": "1.6.1",
 +        "string.prototype.padend": "3.0.0"
 +      },
 +      "dependencies": {
 +        "ansi-styles": {
 +          "version": "3.2.1",
 +          "resolved": "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz",
 +          "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=",
 +          "dev": true,
 +          "requires": {
 +            "color-convert": "1.9.1"
 +          }
 +        },
 +        "chalk": {
 +          "version": "2.4.1",
 +          "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-2.4.1.tgz",
 +          "integrity": "sha1-GMSasWoDe26wFSzIPjRxM4IVtm4=",
 +          "dev": true,
 +          "requires": {
 +            "ansi-styles": "3.2.1",
 +            "escape-string-regexp": "1.0.5",
 +            "supports-color": "5.4.0"
 +          }
 +        },
 +        "cross-spawn": {
 +          "version": "6.0.5",
 +          "resolved": "http://registry.npm.taobao.org/cross-spawn/download/cross-spawn-6.0.5.tgz",
 +          "integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=",
 +          "dev": true,
 +          "requires": {
 +            "nice-try": "1.0.4",
 +            "path-key": "2.0.1",
 +            "semver": "5.5.0",
 +            "shebang-command": "1.2.0",
 +            "which": "1.3.1"
 +          }
 +        },
 +        "has-flag": {
 +          "version": "3.0.0",
 +          "resolved": "http://registry.npm.taobao.org/has-flag/download/has-flag-3.0.0.tgz",
 +          "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
 +          "dev": true
 +        },
 +        "load-json-file": {
 +          "version": "4.0.0",
 +          "resolved": "http://registry.npm.taobao.org/load-json-file/download/load-json-file-4.0.0.tgz",
 +          "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=",
 +          "dev": true,
 +          "requires": {
 +            "graceful-fs": "4.1.11",
 +            "parse-json": "4.0.0",
 +            "pify": "3.0.0",
 +            "strip-bom": "3.0.0"
 +          }
 +        },
 +        "parse-json": {
 +          "version": "4.0.0",
 +          "resolved": "http://registry.npm.taobao.org/parse-json/download/parse-json-4.0.0.tgz",
 +          "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
 +          "dev": true,
 +          "requires": {
 +            "error-ex": "1.3.1",
 +            "json-parse-better-errors": "1.0.2"
 +          }
 +        },
 +        "path-type": {
 +          "version": "3.0.0",
 +          "resolved": "http://registry.npm.taobao.org/path-type/download/path-type-3.0.0.tgz",
 +          "integrity": "sha1-zvMdyOCho7sNEFwM2Xzzv0f0428=",
 +          "dev": true,
 +          "requires": {
 +            "pify": "3.0.0"
 +          }
 +        },
 +        "pify": {
 +          "version": "3.0.0",
 +          "resolved": "http://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz",
 +          "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
 +          "dev": true
 +        },
 +        "read-pkg": {
 +          "version": "3.0.0",
 +          "resolved": "http://registry.npm.taobao.org/read-pkg/download/read-pkg-3.0.0.tgz",
 +          "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=",
 +          "dev": true,
 +          "requires": {
 +            "load-json-file": "4.0.0",
 +            "normalize-package-data": "2.4.0",
 +            "path-type": "3.0.0"
 +          }
 +        },
 +        "strip-bom": {
 +          "version": "3.0.0",
 +          "resolved": "http://registry.npm.taobao.org/strip-bom/download/strip-bom-3.0.0.tgz",
 +          "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
 +          "dev": true
 +        },
 +        "supports-color": {
 +          "version": "5.4.0",
 +          "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-5.4.0.tgz",
 +          "integrity": "sha1-HGszdALCE3YF7+GfEP7DkPb6q1Q=",
 +          "dev": true,
 +          "requires": {
 +            "has-flag": "3.0.0"
 +          }
 +        }
 +      }
 +    },
      "npm-run-path": {
        "version": "2.0.2",
        "resolved": "http://registry.npm.taobao.org/npm-run-path/download/npm-run-path-2.0.2.tgz",
      },
      "npmlog": {
        "version": "4.1.2",
--      "resolved": "http://registry.npm.taobao.org/npmlog/download/npmlog-4.1.2.tgz",
--      "integrity": "sha1-CKfyqL9zRgR3mp76StXMcXq7lUs=",
++      "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
++      "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
        "dev": true,
        "requires": {
          "are-we-there-yet": "1.1.5",
        "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
      },
      "object-keys": {
 -      "version": "1.1.1",
 -      "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
 -      "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
 +      "version": "0.4.0",
 +      "resolved": "http://registry.npm.taobao.org/object-keys/download/object-keys-0.4.0.tgz",
 +      "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=",
        "dev": true
      },
 -        "define-properties": "1.1.3",
+     "object.assign": {
+       "version": "4.1.0",
+       "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
+       "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==",
+       "dev": true,
+       "requires": {
 -        "define-properties": "1.1.3",
 -        "es-abstract": "1.13.0",
++        "define-properties": "1.1.2",
+         "function-bind": "1.1.1",
+         "has-symbols": "1.0.0",
+         "object-keys": "1.1.1"
++      },
++      "dependencies": {
++        "object-keys": {
++          "version": "1.1.1",
++          "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
++          "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
++          "dev": true
++        }
+       }
+     },
+     "object.entries": {
+       "version": "1.1.0",
+       "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.0.tgz",
+       "integrity": "sha512-l+H6EQ8qzGRxbkHOd5I/aHRhHDKoQXQ8g0BYt4uSweQU1/J6dZUOyWh9a2Vky35YCKjzmgxOzta2hH6kf9HuXA==",
+       "dev": true,
+       "requires": {
+         "define-properties": "1.1.3",
+         "es-abstract": "1.13.0",
+         "function-bind": "1.1.1",
+         "has": "1.0.3"
++      },
++      "dependencies": {
++        "define-properties": {
++          "version": "1.1.3",
++          "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
++          "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
++          "dev": true,
++          "requires": {
++            "object-keys": "1.1.1"
++          }
++        },
++        "es-abstract": {
++          "version": "1.13.0",
++          "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz",
++          "integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==",
++          "dev": true,
++          "requires": {
++            "es-to-primitive": "1.2.0",
++            "function-bind": "1.1.1",
++            "has": "1.0.3",
++            "is-callable": "1.1.4",
++            "is-regex": "1.0.4",
++            "object-keys": "1.1.1"
++          }
++        },
++        "es-to-primitive": {
++          "version": "1.2.0",
++          "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz",
++          "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==",
++          "dev": true,
++          "requires": {
++            "is-callable": "1.1.4",
++            "is-date-object": "1.0.1",
++            "is-symbol": "1.0.2"
++          }
++        },
++        "has": {
++          "version": "1.0.3",
++          "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
++          "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
++          "dev": true,
++          "requires": {
++            "function-bind": "1.1.1"
++          }
++        },
++        "is-callable": {
++          "version": "1.1.4",
++          "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz",
++          "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==",
++          "dev": true
++        },
++        "is-symbol": {
++          "version": "1.0.2",
++          "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz",
++          "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==",
++          "dev": true,
++          "requires": {
++            "has-symbols": "1.0.0"
++          }
++        },
++        "object-keys": {
++          "version": "1.1.1",
++          "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
++          "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
++          "dev": true
++        }
+       }
+     },
+     "object.fromentries": {
+       "version": "2.0.0",
+       "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.0.tgz",
+       "integrity": "sha512-9iLiI6H083uiqUuvzyY6qrlmc/Gz8hLQFOcb/Ri/0xXFkSNS3ctV+CbE6yM2+AnkYfOB3dGjdzC0wrMLIhQICA==",
+       "dev": true,
+       "requires": {
 -        "has": "1.0.3"
++        "define-properties": "1.1.2",
++        "es-abstract": "1.11.0",
+         "function-bind": "1.1.1",
++        "has": "1.0.1"
+       }
+     },
      "object.omit": {
        "version": "2.0.1",
 -      "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz",
 +      "resolved": "http://registry.npm.taobao.org/object.omit/download/object.omit-2.0.1.tgz",
        "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=",
        "dev": true,
        "requires": {
          "is-extendable": "0.1.1"
        }
      },
+     "object.values": {
+       "version": "1.1.0",
+       "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.0.tgz",
+       "integrity": "sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg==",
+       "dev": true,
+       "requires": {
+         "define-properties": "1.1.3",
+         "es-abstract": "1.13.0",
+         "function-bind": "1.1.1",
+         "has": "1.0.3"
++      },
++      "dependencies": {
++        "define-properties": {
++          "version": "1.1.3",
++          "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
++          "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
++          "dev": true,
++          "requires": {
++            "object-keys": "1.1.1"
++          }
++        },
++        "es-abstract": {
++          "version": "1.13.0",
++          "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz",
++          "integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==",
++          "dev": true,
++          "requires": {
++            "es-to-primitive": "1.2.0",
++            "function-bind": "1.1.1",
++            "has": "1.0.3",
++            "is-callable": "1.1.4",
++            "is-regex": "1.0.4",
++            "object-keys": "1.1.1"
++          }
++        },
++        "es-to-primitive": {
++          "version": "1.2.0",
++          "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz",
++          "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==",
++          "dev": true,
++          "requires": {
++            "is-callable": "1.1.4",
++            "is-date-object": "1.0.1",
++            "is-symbol": "1.0.2"
++          }
++        },
++        "has": {
++          "version": "1.0.3",
++          "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
++          "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
++          "dev": true,
++          "requires": {
++            "function-bind": "1.1.1"
++          }
++        },
++        "is-callable": {
++          "version": "1.1.4",
++          "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz",
++          "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==",
++          "dev": true
++        },
++        "is-symbol": {
++          "version": "1.0.2",
++          "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz",
++          "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==",
++          "dev": true,
++          "requires": {
++            "has-symbols": "1.0.0"
++          }
++        },
++        "object-keys": {
++          "version": "1.1.1",
++          "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
++          "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
++          "dev": true
++        }
+       }
+     },
      "on-finished": {
        "version": "2.3.0",
        "resolved": "http://registry.npm.taobao.org/on-finished/download/on-finished-2.3.0.tgz",
      },
      "osenv": {
        "version": "0.1.5",
--      "resolved": "http://registry.npm.taobao.org/osenv/download/osenv-0.1.5.tgz",
--      "integrity": "sha1-hc36+uso6Gd/QW4odZK18/SepBA=",
++      "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz",
++      "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
        "dev": true,
        "requires": {
          "os-homedir": "1.0.2",
          "postcss-load-config": "1.2.0"
        }
      },
 -        "has": "1.0.3",
+     "postcss-merge-idents": {
+       "version": "2.1.7",
+       "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz",
+       "integrity": "sha1-TFUwMTwI4dWzu/PSu8dH4njuonA=",
+       "dev": true,
+       "requires": {
 -        "has": "1.0.3",
++        "has": "1.0.1",
+         "postcss": "5.2.18",
+         "postcss-value-parser": "3.3.0"
+       }
+     },
+     "postcss-merge-longhand": {
+       "version": "2.0.2",
+       "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz",
+       "integrity": "sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg=",
+       "dev": true,
+       "requires": {
+         "postcss": "5.2.18"
+       }
+     },
+     "postcss-merge-rules": {
+       "version": "2.1.2",
+       "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz",
+       "integrity": "sha1-0d9d+qexrMO+VT8OnhDofGG19yE=",
+       "dev": true,
+       "requires": {
+         "browserslist": "1.7.7",
+         "caniuse-api": "1.6.1",
+         "postcss": "5.2.18",
+         "postcss-selector-parser": "2.2.3",
+         "vendors": "1.0.3"
+       }
+     },
+     "postcss-message-helpers": {
+       "version": "2.0.0",
+       "resolved": "https://registry.npmjs.org/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz",
+       "integrity": "sha1-pPL0+rbk/gAvCu0ABHjN9S+bpg4=",
+       "dev": true
+     },
+     "postcss-minify-font-values": {
+       "version": "1.0.5",
+       "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz",
+       "integrity": "sha1-S1jttWZB66fIR0qzUmyv17vey2k=",
+       "dev": true,
+       "requires": {
+         "object-assign": "4.1.1",
+         "postcss": "5.2.18",
+         "postcss-value-parser": "3.3.0"
+       }
+     },
+     "postcss-minify-gradients": {
+       "version": "1.0.5",
+       "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz",
+       "integrity": "sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE=",
+       "dev": true,
+       "requires": {
+         "postcss": "5.2.18",
+         "postcss-value-parser": "3.3.0"
+       }
+     },
+     "postcss-minify-params": {
+       "version": "1.2.2",
+       "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz",
+       "integrity": "sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM=",
+       "dev": true,
+       "requires": {
+         "alphanum-sort": "1.0.2",
+         "postcss": "5.2.18",
+         "postcss-value-parser": "3.3.0",
+         "uniqs": "2.0.0"
+       }
+     },
+     "postcss-minify-selectors": {
+       "version": "2.1.1",
+       "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz",
+       "integrity": "sha1-ssapjAByz5G5MtGkllCBFDEXNb8=",
+       "dev": true,
+       "requires": {
+         "alphanum-sort": "1.0.2",
 -            "color-convert": "1.9.3"
++        "has": "1.0.1",
+         "postcss": "5.2.18",
+         "postcss-selector-parser": "2.2.3"
+       }
+     },
+     "postcss-modules-extract-imports": {
+       "version": "1.2.1",
+       "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.1.tgz",
+       "integrity": "sha512-6jt9XZwUhwmRUhb/CkyJY020PYaPJsCyt3UjbaWo6XEbH/94Hmv6MP7fG2C5NDU/BcHzyGYxNtHvM+LTf9HrYw==",
+       "dev": true,
+       "requires": {
+         "postcss": "6.0.23"
+       },
+       "dependencies": {
+         "ansi-styles": {
+           "version": "3.2.1",
+           "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+           "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+           "dev": true,
+           "requires": {
 -        "source-map": {
 -          "version": "0.6.1",
 -          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
 -          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
 -          "dev": true
 -        },
++            "color-convert": "1.9.1"
+           }
+         },
+         "chalk": {
+           "version": "2.4.2",
+           "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+           "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+           "dev": true,
+           "requires": {
+             "ansi-styles": "3.2.1",
+             "escape-string-regexp": "1.0.5",
+             "supports-color": "5.5.0"
+           }
+         },
+         "has-flag": {
+           "version": "3.0.0",
+           "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+           "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+           "dev": true
+         },
+         "postcss": {
+           "version": "6.0.23",
+           "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
+           "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
+           "dev": true,
+           "requires": {
+             "chalk": "2.4.2",
+             "source-map": "0.6.1",
+             "supports-color": "5.5.0"
+           }
+         },
 -            "color-convert": "1.9.3"
+         "supports-color": {
+           "version": "5.5.0",
+           "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+           "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+           "dev": true,
+           "requires": {
+             "has-flag": "3.0.0"
+           }
+         }
+       }
+     },
+     "postcss-modules-local-by-default": {
+       "version": "1.2.0",
+       "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz",
+       "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=",
+       "dev": true,
+       "requires": {
+         "css-selector-tokenizer": "0.7.1",
+         "postcss": "6.0.23"
+       },
+       "dependencies": {
+         "ansi-styles": {
+           "version": "3.2.1",
+           "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+           "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+           "dev": true,
+           "requires": {
 -        "source-map": {
 -          "version": "0.6.1",
 -          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
 -          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
 -          "dev": true
 -        },
++            "color-convert": "1.9.1"
+           }
+         },
+         "chalk": {
+           "version": "2.4.2",
+           "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+           "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+           "dev": true,
+           "requires": {
+             "ansi-styles": "3.2.1",
+             "escape-string-regexp": "1.0.5",
+             "supports-color": "5.5.0"
+           }
+         },
+         "has-flag": {
+           "version": "3.0.0",
+           "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+           "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+           "dev": true
+         },
+         "postcss": {
+           "version": "6.0.23",
+           "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
+           "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
+           "dev": true,
+           "requires": {
+             "chalk": "2.4.2",
+             "source-map": "0.6.1",
+             "supports-color": "5.5.0"
+           }
+         },
 -            "color-convert": "1.9.3"
+         "supports-color": {
+           "version": "5.5.0",
+           "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+           "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+           "dev": true,
+           "requires": {
+             "has-flag": "3.0.0"
+           }
+         }
+       }
+     },
+     "postcss-modules-scope": {
+       "version": "1.1.0",
+       "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz",
+       "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=",
+       "dev": true,
+       "requires": {
+         "css-selector-tokenizer": "0.7.1",
+         "postcss": "6.0.23"
+       },
+       "dependencies": {
+         "ansi-styles": {
+           "version": "3.2.1",
+           "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+           "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+           "dev": true,
+           "requires": {
 -        "source-map": {
 -          "version": "0.6.1",
 -          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
 -          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
 -          "dev": true
 -        },
++            "color-convert": "1.9.1"
+           }
+         },
+         "chalk": {
+           "version": "2.4.2",
+           "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+           "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+           "dev": true,
+           "requires": {
+             "ansi-styles": "3.2.1",
+             "escape-string-regexp": "1.0.5",
+             "supports-color": "5.5.0"
+           }
+         },
+         "has-flag": {
+           "version": "3.0.0",
+           "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+           "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+           "dev": true
+         },
+         "postcss": {
+           "version": "6.0.23",
+           "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
+           "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
+           "dev": true,
+           "requires": {
+             "chalk": "2.4.2",
+             "source-map": "0.6.1",
+             "supports-color": "5.5.0"
+           }
+         },
 -            "color-convert": "1.9.3"
+         "supports-color": {
+           "version": "5.5.0",
+           "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+           "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+           "dev": true,
+           "requires": {
+             "has-flag": "3.0.0"
+           }
+         }
+       }
+     },
+     "postcss-modules-values": {
+       "version": "1.3.0",
+       "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz",
+       "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=",
+       "dev": true,
+       "requires": {
+         "icss-replace-symbols": "1.1.0",
+         "postcss": "6.0.23"
+       },
+       "dependencies": {
+         "ansi-styles": {
+           "version": "3.2.1",
+           "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+           "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+           "dev": true,
+           "requires": {
 -        "source-map": {
 -          "version": "0.6.1",
 -          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
 -          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
 -          "dev": true
 -        },
++            "color-convert": "1.9.1"
+           }
+         },
+         "chalk": {
+           "version": "2.4.2",
+           "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+           "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+           "dev": true,
+           "requires": {
+             "ansi-styles": "3.2.1",
+             "escape-string-regexp": "1.0.5",
+             "supports-color": "5.5.0"
+           }
+         },
+         "has-flag": {
+           "version": "3.0.0",
+           "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+           "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+           "dev": true
+         },
+         "postcss": {
+           "version": "6.0.23",
+           "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
+           "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
+           "dev": true,
+           "requires": {
+             "chalk": "2.4.2",
+             "source-map": "0.6.1",
+             "supports-color": "5.5.0"
+           }
+         },
 -        "has": "1.0.3",
+         "supports-color": {
+           "version": "5.5.0",
+           "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+           "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+           "dev": true,
+           "requires": {
+             "has-flag": "3.0.0"
+           }
+         }
+       }
+     },
+     "postcss-normalize-charset": {
+       "version": "1.1.1",
+       "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz",
+       "integrity": "sha1-757nEhLX/nWceO0WL2HtYrXLk/E=",
+       "dev": true,
+       "requires": {
+         "postcss": "5.2.18"
+       }
+     },
+     "postcss-normalize-url": {
+       "version": "3.0.8",
+       "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz",
+       "integrity": "sha1-EI90s/L82viRov+j6kWSJ5/HgiI=",
+       "dev": true,
+       "requires": {
+         "is-absolute-url": "2.1.0",
+         "normalize-url": "1.9.1",
+         "postcss": "5.2.18",
+         "postcss-value-parser": "3.3.0"
+       }
+     },
+     "postcss-ordered-values": {
+       "version": "2.2.3",
+       "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz",
+       "integrity": "sha1-7sbCpntsQSqNsgQud/6NpD+VwR0=",
+       "dev": true,
+       "requires": {
+         "postcss": "5.2.18",
+         "postcss-value-parser": "3.3.0"
+       }
+     },
+     "postcss-reduce-idents": {
+       "version": "2.4.0",
+       "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz",
+       "integrity": "sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM=",
+       "dev": true,
+       "requires": {
+         "postcss": "5.2.18",
+         "postcss-value-parser": "3.3.0"
+       }
+     },
+     "postcss-reduce-initial": {
+       "version": "1.0.1",
+       "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz",
+       "integrity": "sha1-aPgGlfBF0IJjqHmtJA343WT2ROo=",
+       "dev": true,
+       "requires": {
+         "postcss": "5.2.18"
+       }
+     },
+     "postcss-reduce-transforms": {
+       "version": "1.0.4",
+       "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz",
+       "integrity": "sha1-/3b02CEkN7McKYpC0uFEQCV3GuE=",
+       "dev": true,
+       "requires": {
++        "has": "1.0.1",
+         "postcss": "5.2.18",
+         "postcss-value-parser": "3.3.0"
+       }
+     },
+     "postcss-selector-parser": {
+       "version": "2.2.3",
+       "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz",
+       "integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=",
+       "dev": true,
+       "requires": {
+         "flatten": "1.0.2",
+         "indexes-of": "1.0.1",
+         "uniq": "1.0.1"
+       }
+     },
+     "postcss-svgo": {
+       "version": "2.1.6",
+       "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-2.1.6.tgz",
+       "integrity": "sha1-tt8YqmE7Zm4TPwittSGcJoSsEI0=",
+       "dev": true,
+       "requires": {
+         "is-svg": "2.1.0",
+         "postcss": "5.2.18",
+         "postcss-value-parser": "3.3.0",
+         "svgo": "0.7.2"
+       }
+     },
+     "postcss-unique-selectors": {
+       "version": "2.0.2",
+       "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz",
+       "integrity": "sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0=",
+       "dev": true,
+       "requires": {
+         "alphanum-sort": "1.0.2",
+         "postcss": "5.2.18",
+         "uniqs": "2.0.0"
+       }
+     },
      "postcss-value-parser": {
        "version": "3.3.0",
        "resolved": "http://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.0.tgz",
        "integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=",
        "dev": true
      },
 -        "has": "1.0.3",
+     "postcss-zindex": {
+       "version": "2.2.0",
+       "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-2.2.0.tgz",
+       "integrity": "sha1-0hCd3AVbka9n/EyzsCWUZjnSryI=",
+       "dev": true,
+       "requires": {
++        "has": "1.0.1",
+         "postcss": "5.2.18",
+         "uniqs": "2.0.0"
+       }
+     },
      "prelude-ls": {
        "version": "1.1.2",
        "resolved": "http://registry.npm.taobao.org/prelude-ls/download/prelude-ls-1.1.2.tgz",
        "dev": true
      },
      "process-nextick-args": {
 -      "version": "1.0.7",
 -      "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
 -      "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=",
 -      "optional": true
 +      "version": "2.0.0",
 +      "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
 +      "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
      },
      "progress": {
-       "version": "1.1.8",
-       "resolved": "http://registry.npm.taobao.org/progress/download/progress-1.1.8.tgz",
-       "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=",
+       "version": "2.0.3",
+       "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
+       "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
        "dev": true
      },
      "progress-stream": {
      "pseudomap": {
        "version": "1.0.2",
        "resolved": "http://registry.npm.taobao.org/pseudomap/download/pseudomap-1.0.2.tgz",
 -      "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM="
 +      "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
 +      "dev": true
      },
 -      "version": "1.1.32",
 -      "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.32.tgz",
 -      "integrity": "sha512-MHACAkHpihU/REGGPLj4sEfc/XKW2bheigvHO1dUqjaKigMp1C8+WLQYRGgeKFMsw5PMfegZcaN8IDXK/cD0+g==",
+     "psl": {
++      "version": "1.2.0",
++      "resolved": "https://registry.npmjs.org/psl/-/psl-1.2.0.tgz",
++      "integrity": "sha512-GEn74ZffufCmkDDLNcl3uuyF/aSD6exEyh1v/ZSdAomB82t6G9hzJVRx0jBmLDW+VfZqks3aScmMw9DszwUalA==",
+       "dev": true
+     },
      "pump": {
        "version": "3.0.0",
        "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
      "punycode": {
        "version": "1.4.1",
        "resolved": "http://registry.npm.taobao.org/punycode/download/punycode-1.4.1.tgz",
 -      "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
 +      "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
 +      "dev": true
      },
+     "q": {
+       "version": "1.5.1",
+       "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz",
+       "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=",
+       "dev": true
+     },
      "qrcode": {
        "version": "1.3.3",
        "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.3.3.tgz",
        "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=",
        "dev": true
      },
 -    "querystringify": {
 -      "version": "2.1.0",
 -      "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.0.tgz",
 -      "integrity": "sha512-sluvZZ1YiTLD5jsqZcDmFyV2EwToyXZBfpoVOmktMmW+VEnhgakFHnasVph65fOjGPTWN0Nw3+XQaSeMayr0kg==",
 -      "optional": true
 -    },
      "randomatic": {
-       "version": "3.0.0",
-       "resolved": "http://registry.npm.taobao.org/randomatic/download/randomatic-3.0.0.tgz",
-       "integrity": "sha1-01SQAw6091eN4pLObfsEqRoSiSM=",
+       "version": "3.1.1",
+       "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz",
+       "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==",
        "dev": true,
        "requires": {
          "is-number": "4.0.0",
        "dependencies": {
          "is-number": {
            "version": "4.0.0",
--          "resolved": "http://registry.npm.taobao.org/is-number/download/is-number-4.0.0.tgz",
--          "integrity": "sha1-ACbjf1RU1z41bf5lZGmYZ8an8P8=",
++          "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz",
++          "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==",
            "dev": true
          },
          "kind-of": {
            "version": "6.0.2",
--          "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-6.0.2.tgz",
--          "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=",
++          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
++          "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
            "dev": true
          }
        }
          "dotenv": "5.0.1",
          "dotenv-expand": "4.2.0",
          "fs-extra-p": "4.6.0",
--        "js-yaml": "3.11.0",
++        "js-yaml": "3.13.1",
          "json5": "1.0.1",
          "lazy-val": "1.0.3"
        },
          "strip-indent": "1.0.1"
        }
      },
 -    "redis": {
 -      "version": "2.8.0",
 -      "resolved": "https://registry.npmjs.org/redis/-/redis-2.8.0.tgz",
 -      "integrity": "sha512-M1OkonEQwtRmZv4tEWF2VgpG0JWJ8Fv1PhlgT5+B+uNq2cA3Rt1Yt/ryoR+vQNOQcIEgdCdfH0jr3bDpihAw1A==",
 -      "optional": true,
 -      "requires": {
 -        "double-ended-queue": "2.1.0-0",
 -        "redis-commands": "1.4.0",
 -        "redis-parser": "2.6.0"
 -      }
 -    },
 -    "redis-commands": {
 -      "version": "1.4.0",
 -      "resolved": "https://registry.npmjs.org/redis-commands/-/redis-commands-1.4.0.tgz",
 -      "integrity": "sha512-cu8EF+MtkwI4DLIT0x9P8qNTLFhQD4jLfxLR0cCNkeGzs87FN6879JOJwNQR/1zD7aSYNbU0hgsV9zGY71Itvw==",
 -      "optional": true
 -    },
 -    "redis-parser": {
 -      "version": "2.6.0",
 -      "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-2.6.0.tgz",
 -      "integrity": "sha1-Uu0J2srBCPGmMcB+m2mUHnoZUEs=",
 -      "optional": true
 -    },
+     "reduce-css-calc": {
+       "version": "1.3.0",
+       "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz",
+       "integrity": "sha1-dHyRTgSWFKTJz7umKYca0dKSdxY=",
+       "dev": true,
+       "requires": {
+         "balanced-match": "0.4.2",
+         "math-expression-evaluator": "1.2.17",
+         "reduce-function-call": "1.0.2"
+       },
+       "dependencies": {
+         "balanced-match": {
+           "version": "0.4.2",
+           "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz",
+           "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=",
+           "dev": true
+         }
+       }
+     },
+     "reduce-function-call": {
+       "version": "1.0.2",
+       "resolved": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.2.tgz",
+       "integrity": "sha1-WiAL+S4ON3UXUv5FsKszD9S2vpk=",
+       "dev": true,
+       "requires": {
+         "balanced-match": "0.4.2"
+       },
+       "dependencies": {
+         "balanced-match": {
+           "version": "0.4.2",
+           "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz",
+           "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=",
+           "dev": true
+         }
+       }
+     },
      "redux": {
-       "version": "3.5.2",
-       "resolved": "http://registry.npm.taobao.org/redux/download/redux-3.5.2.tgz",
-       "integrity": "sha1-RTN0XpcLZH7CYGaoOqMOnib6+EM=",
+       "version": "4.0.4",
+       "resolved": "https://registry.npmjs.org/redux/-/redux-4.0.4.tgz",
+       "integrity": "sha512-vKv4WdiJxOWKxK0yRoaK3Y4pxxB0ilzVx6dszU2W8wLxlb2yikRph4iV/ymtdJ6ZxpBLFbyrxklnT5yBbQSl3Q==",
        "requires": {
-         "lodash": "4.17.11",
-         "lodash-es": "4.17.10",
-         "loose-envify": "1.3.1",
-         "symbol-observable": "0.2.4"
+         "loose-envify": "1.4.0",
+         "symbol-observable": "1.2.0"
+       },
+       "dependencies": {
+         "loose-envify": {
+           "version": "1.4.0",
+           "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
+           "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
+           "requires": {
+             "js-tokens": "3.0.2"
+           }
+         }
        }
      },
      "redux-form": {
        "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=",
        "dev": true,
        "requires": {
 -        "glob": "7.1.3",
 +        "glob": "7.1.2",
-         "lodash": "4.17.11",
+         "lodash": "4.17.14",
          "scss-tokenizer": "0.2.3",
          "yargs": "7.1.0"
        },
        }
      },
      "sass-loader": {
-       "version": "4.0.2",
-       "resolved": "http://registry.npm.taobao.org/sass-loader/download/sass-loader-4.0.2.tgz",
-       "integrity": "sha1-phbrdwNmVD5k9UfIYw85xNp18V0=",
+       "version": "7.1.0",
+       "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-7.1.0.tgz",
+       "integrity": "sha512-+G+BKGglmZM2GUSfT9TLuEp6tzehHPjAMoRRItOojWIqIGPloVCMhNIQuG639eJ+y033PaGTSjLaTHts8Kw79w==",
        "dev": true,
        "requires": {
-         "async": "2.6.1",
-         "loader-utils": "0.2.17",
-         "object-assign": "4.1.1"
+         "clone-deep": "2.0.2",
+         "loader-utils": "1.2.3",
+         "lodash.tail": "4.1.1",
+         "neo-async": "2.6.1",
+         "pify": "3.0.0",
 -        "semver": "5.7.0"
++        "semver": "5.5.0"
+       },
+       "dependencies": {
+         "big.js": {
+           "version": "5.2.2",
+           "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
+           "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==",
+           "dev": true
+         },
+         "json5": {
+           "version": "1.0.1",
+           "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
+           "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+           "dev": true,
+           "requires": {
+             "minimist": "1.2.0"
+           }
+         },
+         "loader-utils": {
+           "version": "1.2.3",
+           "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz",
+           "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==",
+           "dev": true,
+           "requires": {
+             "big.js": "5.2.2",
+             "emojis-list": "2.1.0",
+             "json5": "1.0.1"
+           }
+         },
+         "minimist": {
+           "version": "1.2.0",
+           "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+           "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+           "dev": true
+         },
+         "pify": {
+           "version": "3.0.0",
+           "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+           "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+           "dev": true
+         }
        }
      },
      "sass-resources-loader": {
        "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU="
      },
      "slice-ansi": {
-       "version": "0.0.4",
-       "resolved": "http://registry.npm.taobao.org/slice-ansi/download/slice-ansi-0.0.4.tgz",
-       "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=",
-       "dev": true
+       "version": "1.0.0",
+       "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz",
+       "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==",
+       "dev": true,
+       "requires": {
+         "is-fullwidth-code-point": "2.0.0"
+       },
+       "dependencies": {
+         "is-fullwidth-code-point": {
+           "version": "2.0.0",
+           "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+           "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+           "dev": true
+         }
+       }
+     },
+     "sort-keys": {
+       "version": "1.1.2",
+       "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz",
+       "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=",
+       "dev": true,
+       "requires": {
+         "is-plain-obj": "1.1.0"
+       }
      },
 -    "smart-buffer": {
 -      "version": "4.0.2",
 -      "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.0.2.tgz",
 -      "integrity": "sha512-JDhEpTKzXusOqXZ0BUIdH+CjFdO/CR3tLlf5CN34IypI+xMmXW1uB16OOY8z3cICbJlDAVJzNbwBhNO0wt9OAw=="
 -    },
 -    "smtp-connection": {
 -      "version": "2.12.0",
 -      "resolved": "https://registry.npmjs.org/smtp-connection/-/smtp-connection-2.12.0.tgz",
 -      "integrity": "sha1-1275EnyyPCJZ7bHoNJwujV4tdME=",
 -      "requires": {
 -        "httpntlm": "1.6.1",
 -        "nodemailer-shared": "1.1.0"
 -      }
 -    },
 -    "sntp": {
 -      "version": "1.0.9",
 -      "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz",
 -      "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=",
 -      "optional": true,
 -      "requires": {
 -        "hoek": "2.16.3"
 -      }
 -    },
 -    "socks": {
 -      "version": "2.2.3",
 -      "resolved": "https://registry.npmjs.org/socks/-/socks-2.2.3.tgz",
 -      "integrity": "sha512-+2r83WaRT3PXYoO/1z+RDEBE7Z2f9YcdQnJ0K/ncXXbV5gJ6wYfNAebYFYiiUjM6E4JyXnPY8cimwyvFYHVUUA==",
 -      "requires": {
 -        "ip": "1.1.5",
 -        "smart-buffer": "4.0.2"
 -      }
 -    },
 -    "socks-proxy-agent": {
 -      "version": "4.0.1",
 -      "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.1.tgz",
 -      "integrity": "sha512-Kezx6/VBguXOsEe5oU3lXYyKMi4+gva72TwJ7pQY5JfqUx2nMk7NXA6z/mpNqIlfQjWYVfeuNvQjexiTaTn6Nw==",
 -      "requires": {
 -        "agent-base": "4.2.1",
 -        "socks": "2.2.3"
 -      }
 -    },
      "source-list-map": {
        "version": "0.1.8",
        "resolved": "http://registry.npm.taobao.org/source-list-map/download/source-list-map-0.1.8.tgz",
        "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=",
        "dev": true
      },
+     "stdout-stream": {
+       "version": "1.4.1",
+       "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz",
+       "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==",
+       "dev": true,
+       "requires": {
+         "readable-stream": "2.3.6"
++      },
++      "dependencies": {
++        "isarray": {
++          "version": "1.0.0",
++          "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
++          "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
++          "dev": true
++        },
++        "readable-stream": {
++          "version": "2.3.6",
++          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
++          "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
++          "dev": true,
++          "requires": {
++            "core-util-is": "1.0.2",
++            "inherits": "2.0.3",
++            "isarray": "1.0.0",
++            "process-nextick-args": "2.0.0",
++            "safe-buffer": "5.1.2",
++            "string_decoder": "1.1.1",
++            "util-deprecate": "1.0.2"
++          }
++        },
++        "string_decoder": {
++          "version": "1.1.1",
++          "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
++          "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
++          "dev": true,
++          "requires": {
++            "safe-buffer": "5.1.2"
++          }
++        }
+       }
+     },
      "stream-browserify": {
 -      "version": "2.0.2",
 -      "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz",
 -      "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==",
 +      "version": "2.0.1",
 +      "resolved": "http://registry.npm.taobao.org/stream-browserify/download/stream-browserify-2.0.1.tgz",
 +      "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=",
        "dev": true,
        "requires": {
          "inherits": "2.0.3",
        "dependencies": {
          "isarray": {
            "version": "1.0.0",
--          "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
++          "resolved": "http://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz",
            "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
          },
 -        "process-nextick-args": {
 -          "version": "2.0.0",
 -          "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
 -          "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
 -        },
          "readable-stream": {
            "version": "2.3.6",
--          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
++          "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
            "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
            "requires": {
              "core-util-is": "1.0.2",
          }
        }
      },
 +    "supports-color": {
 +      "version": "2.0.0",
 +      "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz",
 +      "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="
 +    },
+     "svgo": {
+       "version": "0.7.2",
+       "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.7.2.tgz",
+       "integrity": "sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U=",
+       "dev": true,
+       "requires": {
+         "coa": "1.0.4",
+         "colors": "1.1.2",
+         "csso": "2.3.2",
+         "js-yaml": "3.7.0",
+         "mkdirp": "0.5.1",
+         "sax": "1.2.4",
+         "whet.extend": "0.9.9"
+       },
+       "dependencies": {
+         "esprima": {
+           "version": "2.7.3",
+           "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
+           "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=",
+           "dev": true
+         },
+         "js-yaml": {
+           "version": "3.7.0",
+           "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz",
+           "integrity": "sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=",
+           "dev": true,
+           "requires": {
+             "argparse": "1.0.10",
+             "esprima": "2.7.3"
+           }
+         }
+       }
+     },
      "symbol-observable": {
-       "version": "0.2.4",
-       "resolved": "http://registry.npm.taobao.org/symbol-observable/download/symbol-observable-0.2.4.tgz",
-       "integrity": "sha1-lag9smGG1q9+ehjb2XYKL4bQj0A="
+       "version": "1.2.0",
+       "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz",
+       "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ=="
      },
      "table": {
-       "version": "3.8.3",
-       "resolved": "http://registry.npm.taobao.org/table/download/table-3.8.3.tgz",
-       "integrity": "sha1-K7xULw/amGGnVdOUf+/Ys/UThV8=",
+       "version": "4.0.2",
+       "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz",
+       "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==",
        "dev": true,
        "requires": {
-         "ajv": "4.11.8",
-         "ajv-keywords": "1.5.1",
-         "chalk": "1.1.3",
-         "lodash": "4.17.11",
-         "slice-ansi": "0.0.4",
+         "ajv": "5.5.2",
+         "ajv-keywords": "2.1.1",
+         "chalk": "2.4.2",
+         "lodash": "4.17.14",
+         "slice-ansi": "1.0.0",
          "string-width": "2.1.1"
        },
        "dependencies": {
--        "ajv": {
-           "version": "4.11.8",
-           "resolved": "http://registry.npm.taobao.org/ajv/download/ajv-4.11.8.tgz",
-           "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=",
 -          "version": "5.5.2",
 -          "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
 -          "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
--          "dev": true,
--          "requires": {
--            "co": "4.6.0",
-             "json-stable-stringify": "1.0.1"
 -            "fast-deep-equal": "1.1.0",
 -            "fast-json-stable-stringify": "2.0.0",
 -            "json-schema-traverse": "0.3.1"
--          }
--        },
          "ajv-keywords": {
--          "version": "1.5.1",
--          "resolved": "http://registry.npm.taobao.org/ajv-keywords/download/ajv-keywords-1.5.1.tgz",
--          "integrity": "sha1-MU3QpLM2j609/NxU7eYXG4htrzw=",
++          "version": "2.1.1",
++          "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz",
++          "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=",
            "dev": true
          },
          "ansi-regex": {
            "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
            "dev": true
          },
 -            "color-convert": "1.9.3"
+         "ansi-styles": {
+           "version": "3.2.1",
+           "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+           "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+           "dev": true,
+           "requires": {
 -        "fast-deep-equal": {
 -          "version": "1.1.0",
 -          "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz",
 -          "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=",
 -          "dev": true
 -        },
++            "color-convert": "1.9.1"
+           }
+         },
+         "chalk": {
+           "version": "2.4.2",
+           "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+           "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+           "dev": true,
+           "requires": {
+             "ansi-styles": "3.2.1",
+             "escape-string-regexp": "1.0.5",
+             "supports-color": "5.5.0"
+           }
+         },
+         "has-flag": {
+           "version": "3.0.0",
+           "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+           "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+           "dev": true
+         },
          "is-fullwidth-code-point": {
            "version": "2.0.0",
            "resolved": "http://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz",
            "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
            "dev": true
          },
 -        "json-schema-traverse": {
 -          "version": "0.3.1",
 -          "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
 -          "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=",
 -          "dev": true
 -        },
          "string-width": {
            "version": "2.1.1",
--          "resolved": "http://registry.npm.taobao.org/string-width/download/string-width-2.1.1.tgz",
--          "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=",
++          "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
++          "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
            "dev": true,
            "requires": {
              "is-fullwidth-code-point": "2.0.0",
        "resolved": "http://registry.npm.taobao.org/to-fast-properties/download/to-fast-properties-1.0.3.tgz",
        "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc="
      },
 -    "toidentifier": {
 -      "version": "1.0.0",
 -      "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
 -      "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==",
 -      "dev": true
+     "to-regex-range": {
+       "version": "5.0.1",
+       "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+       "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+       "dev": true,
+       "requires": {
+         "is-number": "7.0.0"
++      },
++      "dependencies": {
++        "is-number": {
++          "version": "7.0.0",
++          "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
++          "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
++          "dev": true
++        }
+       }
+     },
 +    "toml": {
 +      "version": "2.3.3",
 +      "resolved": "http://registry.npm.taobao.org/toml/download/toml-2.3.3.tgz",
 +      "integrity": "sha1-jWg9cpV3yyhiMd/HqK/+WNMXKPs="
      },
      "tough-cookie": {
 -      "version": "2.4.3",
 -      "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
 -      "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
 +      "version": "2.3.4",
 +      "resolved": "http://registry.npm.taobao.org/tough-cookie/download/tough-cookie-2.3.4.tgz",
 +      "integrity": "sha1-7GDO44rGdQY//JelwYlwV47oNlU=",
        "dev": true,
        "requires": {
 -        "psl": "1.1.32",
          "punycode": "1.4.1"
        }
      },
        "resolved": "http://registry.npm.taobao.org/trim-right/download/trim-right-1.0.1.tgz",
        "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM="
      },
 -        "glob": "7.1.3"
+     "true-case-path": {
+       "version": "1.0.3",
+       "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz",
+       "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==",
+       "dev": true,
+       "requires": {
++        "glob": "7.1.2"
++      }
++    },
 +    "truncate-utf8-bytes": {
 +      "version": "1.0.2",
 +      "resolved": "http://registry.npm.taobao.org/truncate-utf8-bytes/download/truncate-utf8-bytes-1.0.2.tgz",
 +      "integrity": "sha1-QFkjkJWS1W94pYGENLC3hInKXys=",
 +      "dev": true,
 +      "requires": {
 +        "utf8-byte-length": "1.0.4"
        }
      },
      "tty-browserify": {
          "invariant": "2.2.4"
        }
      },
+     "uniq": {
+       "version": "1.0.1",
+       "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz",
+       "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=",
+       "dev": true
+     },
+     "uniqs": {
+       "version": "2.0.0",
+       "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz",
+       "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=",
+       "dev": true
+     },
 +    "unique-string": {
 +      "version": "1.0.0",
 +      "resolved": "http://registry.npm.taobao.org/unique-string/download/unique-string-1.0.0.tgz",
 +      "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=",
 +      "dev": true,
 +      "requires": {
 +        "crypto-random-string": "1.0.0"
 +      }
 +    },
 +    "universalify": {
 +      "version": "0.1.1",
 +      "resolved": "http://registry.npm.taobao.org/universalify/download/universalify-0.1.1.tgz",
 +      "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=",
 +      "dev": true
 +    },
      "unpipe": {
        "version": "1.0.0",
        "resolved": "http://registry.npm.taobao.org/unpipe/download/unpipe-1.0.0.tgz",
        "resolved": "http://registry.npm.taobao.org/whatwg-fetch/download/whatwg-fetch-2.0.4.tgz",
        "integrity": "sha1-3eal3zFfnTmZGqF2IYU9cguFVm8="
      },
 -    "when": {
 -      "version": "3.7.8",
 -      "resolved": "https://registry.npmjs.org/when/-/when-3.7.8.tgz",
 -      "integrity": "sha1-xxMLan6gRpPoQs3J56Hyqjmjn4I=",
 -      "optional": true
 -    },
+     "whet.extend": {
+       "version": "0.9.9",
+       "resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz",
+       "integrity": "sha1-+HfVv2SMl+WqVC+twW1qJZucEaE=",
+       "dev": true
+     },
      "which": {
        "version": "1.3.1",
        "resolved": "http://registry.npm.taobao.org/which/download/which-1.3.1.tgz",
diff --cc package.json
      "btoa": "^1.1.2",
      "classnames": "~2.2.5",
      "electron-settings": "~3.1.4",
 +    "fetch-ponyfill": "~3.0.2",
      "glob": "~7.1.2",
      "i18next": "^11.9.1",
 -    "log4js": "^2.5.3",
 -    "fetch-ponyfill": "~3.0.2",
      "i18next-browser-languagedetector": "^2.2.3",
-     "lodash": "~4.17.11",
 +    "log4js": "^3.0.5",
+     "lodash": "~4.17.14",
      "moment": "^2.22.1",
      "moment-timezone": "^0.5.17",
      "pluralize": "~3.0.0",
      "babel-preset-es2015": "~6.9.0",
      "babel-preset-react": "~6.5.0",
      "babel-preset-react-hmre": "~1.1.1",
 -    "babel-register": "~6.22.0",
      "bootstrap-loader": "~1.0.10",
-     "extend": "~3.0.2",
+     "braces": "^3.0.2",
      "chai": "~3.5.0",
      "chai-as-promised": "~6.0.0",
      "command-line-args": "~3.0.1",
      "command-line-commands": "~1.0.4",
-     "css-loader": "0.14.5",
 -    "electron": "~1.8.3",
 -    "electron-builder": "^20.10.0",
+     "css-loader": "0.26.1",
 +    "electron": "~1.8.8",
 +    "electron-builder": "^20.10.0",
-     "eslint": "~3.7.0",
-     "eslint-plugin-react": "~6.4.0",
+     "eslint": "~4.18.2",
+     "eslint-plugin-react": "~7.14.2",
+     "extend": "~3.0.2",
      "file-loader": "~0.9.0",
-     "hjs-webpack": "~8.4.0",
+     "hjs-webpack": "~8.4.3",
+     "js-yaml": "^3.13.1",
      "json-loader": "~0.5.4",
      "nock": "~4.0.0",
-     "node-sass": "~3.8.0",
      "npm-run-all": "^4.1.2",
+     "node-sass": "~4.12.0",
      "postcss-loader": "~1.1.0",
      "react-hot-loader": "~1.3.0",
      "resolve-url-loader": "~1.6.0",