From 8919e94dc8eac9cc950dc9094e266c4d966a1091 Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Sun, 26 Apr 2020 16:40:15 +0800 Subject: [PATCH 001/164] =?UTF-8?q?package.json=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 4953 +++++++++++++++++++++++---------------------- 1 file changed, 2487 insertions(+), 2466 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3dff1f156..b7497a7c1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,14 +26,14 @@ "@babel/traverse": "7.0.0-beta.47", "@babel/types": "7.0.0-beta.47", "babylon": "7.0.0-beta.47", - "convert-source-map": "1.5.1", - "debug": "3.1.0", - "json5": "0.5.1", - "lodash": "4.17.10", - "micromatch": "2.3.11", - "resolve": "1.7.1", - "semver": "5.5.0", - "source-map": "0.5.7" + "convert-source-map": "^1.1.0", + "debug": "^3.1.0", + "json5": "^0.5.0", + "lodash": "^4.17.5", + "micromatch": "^2.3.11", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" } }, "@babel/generator": { @@ -43,10 +43,10 @@ "dev": true, "requires": { "@babel/types": "7.0.0-beta.47", - "jsesc": "2.5.1", - "lodash": "4.17.10", - "source-map": "0.5.7", - "trim-right": "1.0.1" + "jsesc": "^2.5.1", + "lodash": "^4.17.5", + "source-map": "^0.5.0", + "trim-right": "^1.0.1" } }, "@babel/helper-annotate-as-pure": { @@ -87,7 +87,7 @@ "requires": { "@babel/helper-function-name": "7.0.0-beta.47", "@babel/types": "7.0.0-beta.47", - "lodash": "4.17.10" + "lodash": "^4.17.5" } }, "@babel/helper-explode-assignable-expression": { @@ -145,7 +145,7 @@ "dev": true, "requires": { "@babel/types": "7.0.0-beta.47", - "lodash": "4.17.10" + "lodash": "^4.17.5" } }, "@babel/helper-module-transforms": { @@ -159,7 +159,7 @@ "@babel/helper-split-export-declaration": "7.0.0-beta.47", "@babel/template": "7.0.0-beta.47", "@babel/types": "7.0.0-beta.47", - "lodash": "4.17.10" + "lodash": "^4.17.5" } }, "@babel/helper-optimise-call-expression": { @@ -183,7 +183,7 @@ "integrity": "sha512-dafidvVkjJP5AIWkJspV+7RGj1jeNts0qYvlmVzqAGb6BmQzEldJr6ZPzrmlpW/AW1YJGdw7br2yiwvlCRqDvQ==", "dev": true, "requires": { - "lodash": "4.17.10" + "lodash": "^4.17.5" } }, "@babel/helper-remap-async-to-generator": { @@ -219,7 +219,7 @@ "requires": { "@babel/template": "7.0.0-beta.47", "@babel/types": "7.0.0-beta.47", - "lodash": "4.17.10" + "lodash": "^4.17.5" } }, "@babel/helper-split-export-declaration": { @@ -260,9 +260,9 @@ "integrity": "sha512-d505K3Hth1eg0b2swfEF7oFMw3J9M8ceFg0s6dhCSxOOF+07WDvJ0HKT/YbK/Jk9wn8Wyr6HIRAUPKJ9Wfv8Rg==", "dev": true, "requires": { - "chalk": "2.4.1", - "esutils": "2.0.2", - "js-tokens": "3.0.2" + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^3.0.0" } }, "@babel/plugin-proposal-async-generator-functions": { @@ -326,7 +326,7 @@ "requires": { "@babel/helper-plugin-utils": "7.0.0-beta.47", "@babel/helper-regex": "7.0.0-beta.47", - "regexpu-core": "4.2.0" + "regexpu-core": "^4.1.4" } }, "@babel/plugin-syntax-async-generators": { @@ -419,7 +419,7 @@ "dev": true, "requires": { "@babel/helper-plugin-utils": "7.0.0-beta.47", - "lodash": "4.17.10" + "lodash": "^4.17.5" } }, "@babel/plugin-transform-classes": { @@ -435,7 +435,7 @@ "@babel/helper-plugin-utils": "7.0.0-beta.47", "@babel/helper-replace-supers": "7.0.0-beta.47", "@babel/helper-split-export-declaration": "7.0.0-beta.47", - "globals": "11.5.0" + "globals": "^11.1.0" } }, "@babel/plugin-transform-computed-properties": { @@ -464,7 +464,7 @@ "requires": { "@babel/helper-plugin-utils": "7.0.0-beta.47", "@babel/helper-regex": "7.0.0-beta.47", - "regexpu-core": "4.2.0" + "regexpu-core": "^4.1.3" } }, "@babel/plugin-transform-duplicate-keys": { @@ -591,7 +591,7 @@ "integrity": "sha512-JEPIiJyqYRfjOYUTZguLkb2HTwudReqLyOljpOXnJ/1ymwsiof4D6ul611DGlMxJMZJGQ6TBi59iY9GoJ6j4Iw==", "dev": true, "requires": { - "regenerator-transform": "0.12.4" + "regenerator-transform": "^0.12.3" } }, "@babel/plugin-transform-runtime": { @@ -659,7 +659,7 @@ "requires": { "@babel/helper-plugin-utils": "7.0.0-beta.47", "@babel/helper-regex": "7.0.0-beta.47", - "regexpu-core": "4.2.0" + "regexpu-core": "^4.1.3" } }, "@babel/preset-env": { @@ -704,9 +704,9 @@ "@babel/plugin-transform-template-literals": "7.0.0-beta.47", "@babel/plugin-transform-typeof-symbol": "7.0.0-beta.47", "@babel/plugin-transform-unicode-regex": "7.0.0-beta.47", - "browserslist": "3.2.8", - "invariant": "2.2.4", - "semver": "5.5.0" + "browserslist": "^3.0.0", + "invariant": "^2.2.2", + "semver": "^5.3.0" } }, "@babel/runtime": { @@ -715,8 +715,8 @@ "integrity": "sha512-3IaakAC5B4bHJ0aCUKVw0pt+GruavdgWDFbf7TfKh7ZJ8yQuUp7af7MNwf3e+jH8776cjqYmMO1JNDDAE9WfrA==", "dev": true, "requires": { - "core-js": "2.5.6", - "regenerator-runtime": "0.11.1" + "core-js": "^2.5.3", + "regenerator-runtime": "^0.11.1" } }, "@babel/template": { @@ -728,7 +728,7 @@ "@babel/code-frame": "7.0.0-beta.47", "@babel/types": "7.0.0-beta.47", "babylon": "7.0.0-beta.47", - "lodash": "4.17.10" + "lodash": "^4.17.5" } }, "@babel/traverse": { @@ -743,10 +743,10 @@ "@babel/helper-split-export-declaration": "7.0.0-beta.47", "@babel/types": "7.0.0-beta.47", "babylon": "7.0.0-beta.47", - "debug": "3.1.0", - "globals": "11.5.0", - "invariant": "2.2.4", - "lodash": "4.17.10" + "debug": "^3.1.0", + "globals": "^11.1.0", + "invariant": "^2.2.0", + "lodash": "^4.17.5" } }, "@babel/types": { @@ -755,9 +755,9 @@ "integrity": "sha512-MOP5pOosg7JETrVGg8OQyzmUmbyoSopT5j2HlblHsto89mPz3cmxzn1IA4UNUmnWKgeticSwfhS+Gdy25IIlBQ==", "dev": true, "requires": { - "esutils": "2.0.2", - "lodash": "4.17.10", - "to-fast-properties": "2.0.0" + "esutils": "^2.0.2", + "lodash": "^4.17.5", + "to-fast-properties": "^2.0.0" } }, "@intervolga/optimize-cssnano-plugin": { @@ -766,9 +766,9 @@ "integrity": "sha512-zN69TnSr0viRSU6cEDIcuPcP67QcpQ6uHACg58FiN9PDrU6SLyGW3MR4tiISbYxy1kDWAVPwD+XwQTWE5cigAA==", "dev": true, "requires": { - "cssnano": "4.0.5", - "cssnano-preset-default": "4.0.0", - "postcss": "7.0.2" + "cssnano": "^4.0.0", + "cssnano-preset-default": "^4.0.0", + "postcss": "^7.0.0" } }, "@mrmlnc/readdir-enhanced": { @@ -777,8 +777,8 @@ "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", "dev": true, "requires": { - "call-me-maybe": "1.0.1", - "glob-to-regexp": "0.3.0" + "call-me-maybe": "^1.0.1", + "glob-to-regexp": "^0.3.0" } }, "@nodelib/fs.stat": { @@ -800,9 +800,9 @@ "@babel/plugin-transform-runtime": "7.0.0-beta.47", "@babel/preset-env": "7.0.0-beta.47", "@babel/runtime": "7.0.0-beta.47", - "babel-helper-vue-jsx-merge-props": "2.0.3", - "babel-plugin-dynamic-import-node": "2.0.0", - "babel-plugin-transform-vue-jsx": "4.0.1" + "babel-helper-vue-jsx-merge-props": "^2.0.3", + "babel-plugin-dynamic-import-node": "^2.0.0", + "babel-plugin-transform-vue-jsx": "^4.0.1" }, "dependencies": { "@babel/plugin-syntax-dynamic-import": { @@ -829,8 +829,8 @@ "dev": true, "requires": { "@babel/core": "7.0.0-beta.47", - "@vue/babel-preset-app": "3.0.1", - "babel-loader": "8.0.0-beta.4" + "@vue/babel-preset-app": "^3.0.1", + "babel-loader": "^8.0.0-0" } }, "@vue/cli-plugin-eslint": { @@ -839,11 +839,11 @@ "integrity": "sha512-I1N8iHKI1wlU1769mS8X7CbWJi8G3aecmTrIgSn0Mco00ANxyU63aWFY08+NTMwwt/C4dZqpfoSu9H/piqHLBQ==", "dev": true, "requires": { - "@vue/cli-shared-utils": "3.0.1", - "babel-eslint": "8.2.6", - "eslint": "4.19.1", - "eslint-loader": "2.1.0", - "eslint-plugin-vue": "4.7.1" + "@vue/cli-shared-utils": "^3.0.1", + "babel-eslint": "^8.2.5", + "eslint": "^4.19.1", + "eslint-loader": "^2.0.0", + "eslint-plugin-vue": "^4.5.0" } }, "@vue/cli-plugin-unit-mocha": { @@ -852,11 +852,11 @@ "integrity": "sha512-cCKknXOpBE+MNIAdkNAmD+F/TtVYuNcRIdwo+kZtTEl6lxDuDltCf4HdbBki63t1OvfKu90eZCeSEXPJISFUHA==", "dev": true, "requires": { - "@vue/cli-shared-utils": "3.0.1", - "jsdom": "11.12.0", - "jsdom-global": "3.0.2", - "mocha": "5.2.0", - "mocha-webpack": "2.0.0-beta.0" + "@vue/cli-shared-utils": "^3.0.1", + "jsdom": "^11.11.0", + "jsdom-global": "^3.0.2", + "mocha": "^5.2.0", + "mocha-webpack": "^2.0.0-beta.0" } }, "@vue/cli-service": { @@ -865,55 +865,55 @@ "integrity": "sha512-eRwjGHolm6FcLNibcepKL+CvsqkU3Nv/9wOzOzJT4u+kw620IoP9FXev58h6FD4dAEtatoCiKqHLVqFoCYUUBw==", "dev": true, "requires": { - "@intervolga/optimize-cssnano-plugin": "1.0.6", - "@vue/cli-overlay": "3.0.1", - "@vue/cli-shared-utils": "3.0.1", - "@vue/preload-webpack-plugin": "1.1.0", - "@vue/web-component-wrapper": "1.2.0", - "acorn": "5.7.1", - "address": "1.0.3", - "autoprefixer": "8.6.5", - "cache-loader": "1.2.2", - "case-sensitive-paths-webpack-plugin": "2.1.2", - "chalk": "2.4.1", - "clipboardy": "1.2.3", - "cliui": "4.1.0", - "copy-webpack-plugin": "4.5.2", - "css-loader": "1.0.0", - "cssnano": "4.0.5", - "debug": "3.1.0", - "escape-string-regexp": "1.0.5", - "file-loader": "1.1.11", - "friendly-errors-webpack-plugin": "1.7.0", - "fs-extra": "6.0.1", - "globby": "8.0.1", - "hash-sum": "1.0.2", - "html-webpack-plugin": "3.2.0", - "launch-editor-middleware": "2.2.1", - "lodash.defaultsdeep": "4.6.0", - "lodash.mapvalues": "4.6.0", - "lodash.transform": "4.6.0", - "mini-css-extract-plugin": "0.4.2", - "minimist": "1.2.0", - "ora": "2.1.0", - "portfinder": "1.0.17", - "postcss-loader": "2.1.6", - "read-pkg": "4.0.1", - "semver": "5.5.0", - "slash": "2.0.0", - "source-map-url": "0.4.0", - "ssri": "6.0.0", - "string.prototype.padend": "3.0.0", - "thread-loader": "1.2.0", - "uglifyjs-webpack-plugin": "1.3.0", - "url-loader": "1.1.1", - "vue-loader": "15.4.0", - "webpack": "4.17.0", - "webpack-bundle-analyzer": "2.13.1", - "webpack-chain": "4.9.0", - "webpack-dev-server": "3.1.5", - "webpack-merge": "4.1.4", - "yorkie": "2.0.0" + "@intervolga/optimize-cssnano-plugin": "^1.0.5", + "@vue/cli-overlay": "^3.0.0", + "@vue/cli-shared-utils": "^3.0.1", + "@vue/preload-webpack-plugin": "^1.1.0", + "@vue/web-component-wrapper": "^1.2.0", + "acorn": "^5.7.1", + "address": "^1.0.3", + "autoprefixer": "^8.6.5", + "cache-loader": "^1.2.2", + "case-sensitive-paths-webpack-plugin": "^2.1.2", + "chalk": "^2.4.1", + "clipboardy": "^1.2.3", + "cliui": "^4.1.0", + "copy-webpack-plugin": "^4.5.2", + "css-loader": "^1.0.0", + "cssnano": "^4.0.0", + "debug": "^3.1.0", + "escape-string-regexp": "^1.0.5", + "file-loader": "^1.1.11", + "friendly-errors-webpack-plugin": "^1.7.0", + "fs-extra": "^6.0.1", + "globby": "^8.0.1", + "hash-sum": "^1.0.2", + "html-webpack-plugin": "^3.2.0", + "launch-editor-middleware": "^2.2.1", + "lodash.defaultsdeep": "^4.6.0", + "lodash.mapvalues": "^4.6.0", + "lodash.transform": "^4.6.0", + "mini-css-extract-plugin": "^0.4.1", + "minimist": "^1.2.0", + "ora": "^2.1.0", + "portfinder": "^1.0.13", + "postcss-loader": "^2.1.6", + "read-pkg": "^4.0.1", + "semver": "^5.5.0", + "slash": "^2.0.0", + "source-map-url": "^0.4.0", + "ssri": "^6.0.0", + "string.prototype.padend": "^3.0.0", + "thread-loader": "^1.1.5", + "uglifyjs-webpack-plugin": "^1.2.7", + "url-loader": "^1.1.0", + "vue-loader": "^15.3.0", + "webpack": "^4.15.1", + "webpack-bundle-analyzer": "^2.13.1", + "webpack-chain": "^4.8.0", + "webpack-dev-server": "^3.1.4", + "webpack-merge": "^4.1.3", + "yorkie": "^2.0.0" }, "dependencies": { "ansi-regex": { @@ -928,7 +928,7 @@ "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "dev": true, "requires": { - "restore-cursor": "2.0.0" + "restore-cursor": "^2.0.0" } }, "cli-spinners": { @@ -943,13 +943,13 @@ "integrity": "sha512-oMrYrJERnKBLXNLVTqhm3vPEdJ/b2ZE28xN4YARiix1NOIOBPEpOUnm844K1iu/BkphCaf2WNFwMszv8Soi1pw==", "dev": true, "requires": { - "array-union": "1.0.2", - "dir-glob": "2.0.0", - "fast-glob": "2.2.2", - "glob": "7.1.2", - "ignore": "3.3.8", - "pify": "3.0.0", - "slash": "1.0.0" + "array-union": "^1.0.1", + "dir-glob": "^2.0.0", + "fast-glob": "^2.0.2", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" }, "dependencies": { "slash": { @@ -972,7 +972,7 @@ "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "dev": true, "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "ora": { @@ -981,12 +981,12 @@ "integrity": "sha512-hNNlAd3gfv/iPmsNxYoAPLvxg7HuPozww7fFonMZvL84tP6Ox5igfk5j/+a9rtJJwqMgKK+JgWsAQik5o0HTLA==", "dev": true, "requires": { - "chalk": "2.4.1", - "cli-cursor": "2.1.0", - "cli-spinners": "1.3.1", - "log-symbols": "2.2.0", - "strip-ansi": "4.0.0", - "wcwidth": "1.0.1" + "chalk": "^2.3.1", + "cli-cursor": "^2.1.0", + "cli-spinners": "^1.1.0", + "log-symbols": "^2.2.0", + "strip-ansi": "^4.0.0", + "wcwidth": "^1.0.1" } }, "restore-cursor": { @@ -995,8 +995,8 @@ "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "dev": true, "requires": { - "onetime": "2.0.1", - "signal-exit": "3.0.2" + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" } }, "slash": { @@ -1011,7 +1011,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -1022,17 +1022,17 @@ "integrity": "sha512-bdFxerHn/Tz/yIsZH9d1QkegdJR2KzkVHcn1ejDM/QV1RM3OteFbDcTBEIaAOd3OcAtyikzkRrsr1o9iBsBqVg==", "dev": true, "requires": { - "chalk": "2.4.1", - "execa": "0.10.0", - "joi": "13.6.0", - "launch-editor": "2.2.1", - "node-ipc": "9.1.1", - "opn": "5.3.0", - "ora": "2.1.0", - "request": "2.88.0", - "request-promise-native": "1.0.5", - "semver": "5.5.0", - "string.prototype.padstart": "3.0.0" + "chalk": "^2.4.1", + "execa": "^0.10.0", + "joi": "^13.0.0", + "launch-editor": "^2.2.1", + "node-ipc": "^9.1.1", + "opn": "^5.3.0", + "ora": "^2.1.0", + "request": "^2.87.0", + "request-promise-native": "^1.0.5", + "semver": "^5.5.0", + "string.prototype.padstart": "^3.0.0" }, "dependencies": { "ajv": { @@ -1041,10 +1041,10 @@ "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "dev": true, "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.1.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" } }, "ansi-regex": { @@ -1077,7 +1077,7 @@ "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "dev": true, "requires": { - "restore-cursor": "2.0.0" + "restore-cursor": "^2.0.0" } }, "cli-spinners": { @@ -1098,9 +1098,9 @@ "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", "dev": true, "requires": { - "asynckit": "0.4.0", + "asynckit": "^0.4.0", "combined-stream": "1.0.6", - "mime-types": "2.1.19" + "mime-types": "^2.1.12" } }, "har-schema": { @@ -1115,8 +1115,8 @@ "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==", "dev": true, "requires": { - "ajv": "5.5.2", - "har-schema": "2.0.0" + "ajv": "^5.3.0", + "har-schema": "^2.0.0" } }, "http-signature": { @@ -1125,9 +1125,9 @@ "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "dev": true, "requires": { - "assert-plus": "1.0.0", - "jsprim": "1.4.1", - "sshpk": "1.14.1" + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, "mime-db": { @@ -1142,7 +1142,7 @@ "integrity": "sha512-P1tKYHVSZ6uFo26mtnve4HQFE3koh1UWVkp8YUC+ESBHe945xWSoXuHHiGarDqcEZ+whpCDnlNw5LON0kLo+sw==", "dev": true, "requires": { - "mime-db": "1.35.0" + "mime-db": "~1.35.0" } }, "oauth-sign": { @@ -1157,7 +1157,7 @@ "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "dev": true, "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "ora": { @@ -1166,12 +1166,12 @@ "integrity": "sha512-hNNlAd3gfv/iPmsNxYoAPLvxg7HuPozww7fFonMZvL84tP6Ox5igfk5j/+a9rtJJwqMgKK+JgWsAQik5o0HTLA==", "dev": true, "requires": { - "chalk": "2.4.1", - "cli-cursor": "2.1.0", - "cli-spinners": "1.3.1", - "log-symbols": "2.2.0", - "strip-ansi": "4.0.0", - "wcwidth": "1.0.1" + "chalk": "^2.3.1", + "cli-cursor": "^2.1.0", + "cli-spinners": "^1.1.0", + "log-symbols": "^2.2.0", + "strip-ansi": "^4.0.0", + "wcwidth": "^1.0.1" } }, "performance-now": { @@ -1192,26 +1192,26 @@ "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.0", - "http-signature": "1.2.0", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.19", - "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" + "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.0", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "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" } }, "restore-cursor": { @@ -1220,8 +1220,8 @@ "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "dev": true, "requires": { - "onetime": "2.0.1", - "signal-exit": "3.0.2" + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" } }, "strip-ansi": { @@ -1230,7 +1230,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } }, "tough-cookie": { @@ -1239,8 +1239,8 @@ "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", "dev": true, "requires": { - "psl": "1.1.29", - "punycode": "1.4.1" + "psl": "^1.1.24", + "punycode": "^1.4.1" } }, "uuid": { @@ -1257,15 +1257,15 @@ "integrity": "sha512-pS4zlcdD7BvedyB+IfiTfrbi6C977UMIfulSk8r6uL0BU46ZE2+fUj/zbSNSfVxeaj9ElmnSni5OMwF9np+b+w==", "dev": true, "requires": { - "consolidate": "0.15.1", - "hash-sum": "1.0.2", - "lru-cache": "4.1.3", - "merge-source-map": "1.1.0", - "postcss": "6.0.23", - "postcss-selector-parser": "3.1.1", + "consolidate": "^0.15.1", + "hash-sum": "^1.0.2", + "lru-cache": "^4.1.2", + "merge-source-map": "^1.1.0", + "postcss": "^6.0.20", + "postcss-selector-parser": "^3.1.1", "prettier": "1.13.7", - "source-map": "0.5.7", - "vue-template-es2015-compiler": "1.6.0" + "source-map": "^0.5.6", + "vue-template-es2015-compiler": "^1.6.0" }, "dependencies": { "postcss": { @@ -1274,9 +1274,9 @@ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" }, "dependencies": { "source-map": { @@ -1293,9 +1293,9 @@ "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=", "dev": true, "requires": { - "dot-prop": "4.2.0", - "indexes-of": "1.0.1", - "uniq": "1.0.1" + "dot-prop": "^4.1.1", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" } } } @@ -1306,11 +1306,11 @@ "integrity": "sha1-xPv65XmSoHqDGUNkdaH+KRXs1Uo=", "dev": true, "requires": { - "eslint-config-standard": "12.0.0-alpha.0", - "eslint-plugin-import": "2.12.0", - "eslint-plugin-node": "6.0.1", - "eslint-plugin-promise": "3.7.0", - "eslint-plugin-standard": "3.1.0" + "eslint-config-standard": "^12.0.0-alpha.0", + "eslint-plugin-import": "^2.11.0", + "eslint-plugin-node": "^6.0.1", + "eslint-plugin-promise": "^3.7.0", + "eslint-plugin-standard": "^3.1.0" } }, "@vue/preload-webpack-plugin": { @@ -1325,7 +1325,7 @@ "integrity": "sha512-TF9ae3zhs8qBN98Bix2Bh3IrwkhscEV3HRthPgtzJPNG0YHUyNTlZNXH36vbP0nuSAs9Om8XjVd8/MDj8ehpEA==", "dev": true, "requires": { - "lodash": "4.17.10" + "lodash": "^4.17.4" } }, "@vue/web-component-wrapper": { @@ -1343,8 +1343,8 @@ "@webassemblyjs/helper-module-context": "1.5.13", "@webassemblyjs/helper-wasm-bytecode": "1.5.13", "@webassemblyjs/wast-parser": "1.5.13", - "debug": "3.1.0", - "mamacro": "0.0.3" + "debug": "^3.1.0", + "mamacro": "^0.0.3" } }, "@webassemblyjs/floating-point-hex-parser": { @@ -1365,7 +1365,7 @@ "integrity": "sha512-v7igWf1mHcpJNbn4m7e77XOAWXCDT76Xe7Is1VQFXc4K5jRcFrl9D0NrqM4XifQ0bXiuTSkTKMYqDxu5MhNljA==", "dev": true, "requires": { - "debug": "3.1.0" + "debug": "^3.1.0" } }, "@webassemblyjs/helper-code-frame": { @@ -1389,8 +1389,8 @@ "integrity": "sha512-zxJXULGPLB7r+k+wIlvGlXpT4CYppRz8fLUM/xobGHc9Z3T6qlmJD9ySJ2jknuktuuiR9AjnNpKYDECyaiX+QQ==", "dev": true, "requires": { - "debug": "3.1.0", - "mamacro": "0.0.3" + "debug": "^3.1.0", + "mamacro": "^0.0.3" } }, "@webassemblyjs/helper-wasm-bytecode": { @@ -1409,7 +1409,7 @@ "@webassemblyjs/helper-buffer": "1.5.13", "@webassemblyjs/helper-wasm-bytecode": "1.5.13", "@webassemblyjs/wasm-gen": "1.5.13", - "debug": "3.1.0" + "debug": "^3.1.0" } }, "@webassemblyjs/ieee754": { @@ -1418,7 +1418,7 @@ "integrity": "sha512-TseswvXEPpG5TCBKoLx9tT7+/GMACjC1ruo09j46ULRZWYm8XHpDWaosOjTnI7kr4SRJFzA6MWoUkAB+YCGKKg==", "dev": true, "requires": { - "ieee754": "1.1.12" + "ieee754": "^1.1.11" } }, "@webassemblyjs/leb128": { @@ -1458,7 +1458,7 @@ "@webassemblyjs/wasm-opt": "1.5.13", "@webassemblyjs/wasm-parser": "1.5.13", "@webassemblyjs/wast-printer": "1.5.13", - "debug": "3.1.0" + "debug": "^3.1.0" } }, "@webassemblyjs/wasm-gen": { @@ -1484,7 +1484,7 @@ "@webassemblyjs/helper-buffer": "1.5.13", "@webassemblyjs/wasm-gen": "1.5.13", "@webassemblyjs/wasm-parser": "1.5.13", - "debug": "3.1.0" + "debug": "^3.1.0" } }, "@webassemblyjs/wasm-parser": { @@ -1512,8 +1512,8 @@ "@webassemblyjs/helper-api-error": "1.5.13", "@webassemblyjs/helper-code-frame": "1.5.13", "@webassemblyjs/helper-fsm": "1.5.13", - "long": "3.2.0", - "mamacro": "0.0.3" + "long": "^3.2.0", + "mamacro": "^0.0.3" } }, "@webassemblyjs/wast-printer": { @@ -1524,7 +1524,7 @@ "requires": { "@webassemblyjs/ast": "1.5.13", "@webassemblyjs/wast-parser": "1.5.13", - "long": "3.2.0" + "long": "^3.2.0" } }, "abab": { @@ -1539,7 +1539,7 @@ "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", "dev": true, "requires": { - "mime-types": "2.1.18", + "mime-types": "~2.1.18", "negotiator": "0.6.1" } }, @@ -1555,7 +1555,7 @@ "integrity": "sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg==", "dev": true, "requires": { - "acorn": "5.7.1" + "acorn": "^5.0.0" } }, "acorn-globals": { @@ -1564,7 +1564,7 @@ "integrity": "sha512-KjZwU26uG3u6eZcfGbTULzFcsoz6pegNKtHPksZPOUsiKo5bUmiBPa38FuHZ/Eun+XYh/JCCkS9AS3Lu4McQOQ==", "dev": true, "requires": { - "acorn": "5.7.1" + "acorn": "^5.0.0" } }, "acorn-jsx": { @@ -1573,7 +1573,7 @@ "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", "dev": true, "requires": { - "acorn": "3.3.0" + "acorn": "^3.0.4" }, "dependencies": { "acorn": { @@ -1595,8 +1595,8 @@ "resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.2.0.tgz", "integrity": "sha1-aj5r8KY5ALoVZSgIyxXGgT0aXyU=", "requires": { - "exit-on-epipe": "1.0.1", - "printj": "1.1.2" + "exit-on-epipe": "~1.0.1", + "printj": "~1.1.0" } }, "ajv": { @@ -1606,8 +1606,8 @@ "dev": true, "optional": true, "requires": { - "co": "4.6.0", - "json-stable-stringify": "1.0.1" + "co": "^4.6.0", + "json-stable-stringify": "^1.0.1" } }, "ajv-errors": { @@ -1652,7 +1652,7 @@ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "1.9.1" + "color-convert": "^1.9.0" } }, "any-observable": { @@ -1667,8 +1667,8 @@ "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "dev": true, "requires": { - "micromatch": "3.1.10", - "normalize-path": "2.1.1" + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" }, "dependencies": { "arr-diff": { @@ -1689,16 +1689,16 @@ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.3", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "dependencies": { "extend-shallow": { @@ -1707,7 +1707,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -1727,13 +1727,13 @@ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "requires": { - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "posix-character-classes": "0.1.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "define-property": { @@ -1742,7 +1742,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -1751,7 +1751,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { @@ -1760,7 +1760,7 @@ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -1769,7 +1769,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -1780,7 +1780,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -1789,7 +1789,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -1800,9 +1800,9 @@ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" } }, "kind-of": { @@ -1819,14 +1819,14 @@ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, "requires": { - "array-unique": "0.3.2", - "define-property": "1.0.0", - "expand-brackets": "2.1.4", - "extend-shallow": "2.0.1", - "fragment-cache": "0.2.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "define-property": { @@ -1835,7 +1835,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { @@ -1844,7 +1844,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -1855,10 +1855,10 @@ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" }, "dependencies": { "extend-shallow": { @@ -1867,7 +1867,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -1878,7 +1878,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -1887,7 +1887,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -1896,9 +1896,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "is-number": { @@ -1907,7 +1907,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -1916,7 +1916,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -1939,19 +1939,19 @@ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.13", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" } } } @@ -1985,7 +1985,7 @@ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "requires": { - "sprintf-js": "1.0.3" + "sprintf-js": "~1.0.2" } }, "arr-diff": { @@ -1994,7 +1994,7 @@ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "dev": true, "requires": { - "arr-flatten": "1.1.0" + "arr-flatten": "^1.0.1" } }, "arr-flatten": { @@ -2039,8 +2039,8 @@ "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", "dev": true, "requires": { - "define-properties": "1.1.3", - "es-abstract": "1.12.0" + "define-properties": "^1.1.2", + "es-abstract": "^1.7.0" } }, "array-map": { @@ -2061,7 +2061,7 @@ "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "dev": true, "requires": { - "array-uniq": "1.0.3" + "array-uniq": "^1.0.1" } }, "array-uniq": { @@ -2101,9 +2101,9 @@ "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", "dev": true, "requires": { - "bn.js": "4.11.8", - "inherits": "2.0.3", - "minimalistic-assert": "1.0.1" + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" } }, "assert": { @@ -2174,7 +2174,7 @@ "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-1.8.2.tgz", "integrity": "sha1-t3WXIm6WJC+NUxwNRq4pX2JCK6Q=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "6.x" } }, "asynckit": { @@ -2195,12 +2195,12 @@ "integrity": "sha512-PLWJN3Xo/rycNkx+mp8iBDMTm3FeWe4VmYaZDSqL5QQB9sLsQkG5k8n+LNDFnhh9kdq2K+egL/icpctOmDHwig==", "dev": true, "requires": { - "browserslist": "3.2.8", - "caniuse-lite": "1.0.30000878", - "normalize-range": "0.1.2", - "num2fraction": "1.2.2", - "postcss": "6.0.23", - "postcss-value-parser": "3.3.0" + "browserslist": "^3.2.8", + "caniuse-lite": "^1.0.30000864", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^6.0.23", + "postcss-value-parser": "^3.2.3" }, "dependencies": { "postcss": { @@ -2209,9 +2209,9 @@ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" } }, "source-map": { @@ -2241,8 +2241,8 @@ "resolved": "https://registry.npmjs.org/axios/-/axios-0.18.0.tgz", "integrity": "sha1-MtU+SFHv3AoRmTts0AB4nXDAUQI=", "requires": { - "follow-redirects": "1.4.1", - "is-buffer": "1.1.6" + "follow-redirects": "^1.3.0", + "is-buffer": "^1.1.5" } }, "babel-code-frame": { @@ -2251,9 +2251,9 @@ "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "dev": true, "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" }, "dependencies": { "ansi-styles": { @@ -2268,11 +2268,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } }, "supports-color": { @@ -2294,7 +2294,7 @@ "@babel/types": "7.0.0-beta.44", "babylon": "7.0.0-beta.44", "eslint-scope": "3.7.1", - "eslint-visitor-keys": "1.0.0" + "eslint-visitor-keys": "^1.0.0" }, "dependencies": { "@babel/code-frame": { @@ -2313,10 +2313,10 @@ "dev": true, "requires": { "@babel/types": "7.0.0-beta.44", - "jsesc": "2.5.1", - "lodash": "4.17.10", - "source-map": "0.5.7", - "trim-right": "1.0.1" + "jsesc": "^2.5.1", + "lodash": "^4.2.0", + "source-map": "^0.5.0", + "trim-right": "^1.0.1" } }, "@babel/helper-function-name": { @@ -2354,9 +2354,9 @@ "integrity": "sha512-Il19yJvy7vMFm8AVAh6OZzaFoAd0hbkeMZiX3P5HGD+z7dyI7RzndHB0dg6Urh/VAFfHtpOIzDUSxmY6coyZWQ==", "dev": true, "requires": { - "chalk": "2.4.1", - "esutils": "2.0.2", - "js-tokens": "3.0.2" + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^3.0.0" } }, "@babel/template": { @@ -2368,7 +2368,7 @@ "@babel/code-frame": "7.0.0-beta.44", "@babel/types": "7.0.0-beta.44", "babylon": "7.0.0-beta.44", - "lodash": "4.17.10" + "lodash": "^4.2.0" } }, "@babel/traverse": { @@ -2383,10 +2383,10 @@ "@babel/helper-split-export-declaration": "7.0.0-beta.44", "@babel/types": "7.0.0-beta.44", "babylon": "7.0.0-beta.44", - "debug": "3.1.0", - "globals": "11.5.0", - "invariant": "2.2.4", - "lodash": "4.17.10" + "debug": "^3.1.0", + "globals": "^11.1.0", + "invariant": "^2.2.0", + "lodash": "^4.2.0" } }, "@babel/types": { @@ -2395,9 +2395,9 @@ "integrity": "sha512-5eTV4WRmqbaFM3v9gHAIljEQJU4Ssc6fxL61JN+Oe2ga/BwyjzjamwkCVVAQjHGuAX8i0BWo42dshL8eO5KfLQ==", "dev": true, "requires": { - "esutils": "2.0.2", - "lodash": "4.17.10", - "to-fast-properties": "2.0.0" + "esutils": "^2.0.2", + "lodash": "^4.2.0", + "to-fast-properties": "^2.0.0" } }, "babylon": { @@ -2420,10 +2420,10 @@ "integrity": "sha512-fQMCj8jRpF/2CPuVnpFrOb8+8pRuquKqoC+tspy5RWBmL37/2qc104sLLLqpwWltrFzpYb30utPpKc3H6P3ETQ==", "dev": true, "requires": { - "find-cache-dir": "1.0.0", - "loader-utils": "1.1.0", - "mkdirp": "0.5.1", - "util.promisify": "1.0.0" + "find-cache-dir": "^1.0.0", + "loader-utils": "^1.0.2", + "mkdirp": "^0.5.1", + "util.promisify": "^1.0.0" } }, "babel-plugin-dynamic-import-node": { @@ -2432,8 +2432,8 @@ "integrity": "sha512-meifxRxzzoT4j2+mYFYnlOZRuZOQVHis9DFv1GpYkufLMHL0W2n3z/Re7bjNN9rftcWonvGWgInRDsHiayqFXg==", "dev": true, "requires": { - "babel-plugin-syntax-dynamic-import": "6.18.0", - "object.assign": "4.1.0" + "babel-plugin-syntax-dynamic-import": "^6.18.0", + "object.assign": "^4.1.0" } }, "babel-plugin-syntax-dynamic-import": { @@ -2448,7 +2448,7 @@ "integrity": "sha512-wbOz7ITB5cloLSjKUU1hWn8zhR+Dwah/RZiTiJY/CQliCwhowmzu6m7NEF+y5EJX/blDzGjRtZvC10Vdb3Q7vw==", "dev": true, "requires": { - "esutils": "2.0.2" + "esutils": "^2.0.2" } }, "babel-runtime": { @@ -2456,8 +2456,8 @@ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "requires": { - "core-js": "2.5.6", - "regenerator-runtime": "0.11.1" + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" } }, "babylon": { @@ -2478,13 +2478,13 @@ "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "dev": true, "requires": { - "cache-base": "1.0.1", - "class-utils": "0.3.6", - "component-emitter": "1.2.1", - "define-property": "1.0.0", - "isobject": "3.0.1", - "mixin-deep": "1.3.1", - "pascalcase": "0.1.1" + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" }, "dependencies": { "define-property": { @@ -2493,7 +2493,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { @@ -2502,7 +2502,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -2511,7 +2511,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -2520,9 +2520,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { @@ -2568,7 +2568,7 @@ "dev": true, "optional": true, "requires": { - "tweetnacl": "0.14.5" + "tweetnacl": "^0.14.3" } }, "bfj-node4": { @@ -2577,9 +2577,9 @@ "integrity": "sha512-SOmOsowQWfXc7ybFARsK3C4MCOWzERaOMV/Fl3Tgjs+5dJWyzo3oa127jL44eMbQiAN17J7SvAs2TRxEScTUmg==", "dev": true, "requires": { - "bluebird": "3.5.1", - "check-types": "7.4.0", - "tryer": "1.0.1" + "bluebird": "^3.5.1", + "check-types": "^7.3.0", + "tryer": "^1.0.0" } }, "big.js": { @@ -2613,15 +2613,15 @@ "dev": true, "requires": { "bytes": "3.0.0", - "content-type": "1.0.4", + "content-type": "~1.0.4", "debug": "2.6.9", - "depd": "1.1.2", - "http-errors": "1.6.3", + "depd": "~1.1.1", + "http-errors": "~1.6.2", "iconv-lite": "0.4.19", - "on-finished": "2.3.0", + "on-finished": "~2.3.0", "qs": "6.5.1", "raw-body": "2.3.2", - "type-is": "1.6.16" + "type-is": "~1.6.15" }, "dependencies": { "debug": { @@ -2653,12 +2653,12 @@ "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", "dev": true, "requires": { - "array-flatten": "2.1.1", - "deep-equal": "1.0.1", - "dns-equal": "1.0.0", - "dns-txt": "2.0.2", - "multicast-dns": "6.2.3", - "multicast-dns-service-types": "1.1.0" + "array-flatten": "^2.1.0", + "deep-equal": "^1.0.1", + "dns-equal": "^1.0.0", + "dns-txt": "^2.0.2", + "multicast-dns": "^6.0.1", + "multicast-dns-service-types": "^1.1.0" }, "dependencies": { "array-flatten": { @@ -2680,8 +2680,9 @@ "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", "dev": true, + "optional": true, "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "brace-expansion": { @@ -2690,7 +2691,7 @@ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -2700,9 +2701,9 @@ "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", "dev": true, "requires": { - "expand-range": "1.8.2", - "preserve": "0.2.0", - "repeat-element": "1.1.3" + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" } }, "brorand": { @@ -2729,12 +2730,12 @@ "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", "dev": true, "requires": { - "buffer-xor": "1.0.3", - "cipher-base": "1.0.4", - "create-hash": "1.2.0", - "evp_bytestokey": "1.0.3", - "inherits": "2.0.3", - "safe-buffer": "5.1.2" + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "browserify-cipher": { @@ -2743,9 +2744,9 @@ "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", "dev": true, "requires": { - "browserify-aes": "1.2.0", - "browserify-des": "1.0.2", - "evp_bytestokey": "1.0.3" + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" } }, "browserify-des": { @@ -2754,10 +2755,10 @@ "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", "dev": true, "requires": { - "cipher-base": "1.0.4", - "des.js": "1.0.0", - "inherits": "2.0.3", - "safe-buffer": "5.1.2" + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" } }, "browserify-rsa": { @@ -2766,8 +2767,8 @@ "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", "dev": true, "requires": { - "bn.js": "4.11.8", - "randombytes": "2.0.6" + "bn.js": "^4.1.0", + "randombytes": "^2.0.1" } }, "browserify-sign": { @@ -2776,13 +2777,13 @@ "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", "dev": true, "requires": { - "bn.js": "4.11.8", - "browserify-rsa": "4.0.1", - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "elliptic": "6.4.1", - "inherits": "2.0.3", - "parse-asn1": "5.1.1" + "bn.js": "^4.1.1", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.2", + "elliptic": "^6.0.0", + "inherits": "^2.0.1", + "parse-asn1": "^5.0.0" } }, "browserify-zlib": { @@ -2791,7 +2792,7 @@ "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", "dev": true, "requires": { - "pako": "1.0.6" + "pako": "~1.0.5" } }, "browserslist": { @@ -2800,8 +2801,8 @@ "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", "dev": true, "requires": { - "caniuse-lite": "1.0.30000878", - "electron-to-chromium": "1.3.59" + "caniuse-lite": "^1.0.30000844", + "electron-to-chromium": "^1.3.47" } }, "buffer": { @@ -2810,9 +2811,9 @@ "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", "dev": true, "requires": { - "base64-js": "1.3.0", - "ieee754": "1.1.12", - "isarray": "1.0.0" + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" } }, "buffer-from": { @@ -2857,19 +2858,19 @@ "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==", "dev": true, "requires": { - "bluebird": "3.5.1", - "chownr": "1.0.1", - "glob": "7.1.2", - "graceful-fs": "4.1.11", - "lru-cache": "4.1.3", - "mississippi": "2.0.0", - "mkdirp": "0.5.1", - "move-concurrently": "1.0.1", - "promise-inflight": "1.0.1", - "rimraf": "2.6.2", - "ssri": "5.3.0", - "unique-filename": "1.1.0", - "y18n": "4.0.0" + "bluebird": "^3.5.1", + "chownr": "^1.0.1", + "glob": "^7.1.2", + "graceful-fs": "^4.1.11", + "lru-cache": "^4.1.1", + "mississippi": "^2.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.2", + "ssri": "^5.2.4", + "unique-filename": "^1.1.0", + "y18n": "^4.0.0" }, "dependencies": { "ssri": { @@ -2878,7 +2879,7 @@ "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", "dev": true, "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.1.1" } }, "y18n": { @@ -2895,15 +2896,15 @@ "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "dev": true, "requires": { - "collection-visit": "1.0.0", - "component-emitter": "1.2.1", - "get-value": "2.0.6", - "has-value": "1.0.0", - "isobject": "3.0.1", - "set-value": "2.0.0", - "to-object-path": "0.3.0", - "union-value": "1.0.0", - "unset-value": "1.0.0" + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" }, "dependencies": { "isobject": { @@ -2920,10 +2921,10 @@ "integrity": "sha512-rsGh4SIYyB9glU+d0OcHwiXHXBoUgDhHZaQ1KAbiXqfz1CDPxtTboh1gPbJ0q2qdO8a9lfcjgC5CJ2Ms32y5bw==", "dev": true, "requires": { - "loader-utils": "1.1.0", - "mkdirp": "0.5.1", - "neo-async": "2.5.2", - "schema-utils": "0.4.7" + "loader-utils": "^1.1.0", + "mkdirp": "^0.5.1", + "neo-async": "^2.5.0", + "schema-utils": "^0.4.2" } }, "call-me-maybe": { @@ -2938,7 +2939,7 @@ "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", "dev": true, "requires": { - "callsites": "0.2.0" + "callsites": "^0.2.0" } }, "callsites": { @@ -2953,8 +2954,8 @@ "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", "dev": true, "requires": { - "no-case": "2.3.2", - "upper-case": "1.1.3" + "no-case": "^2.2.0", + "upper-case": "^1.1.1" } }, "camelcase": { @@ -2969,8 +2970,8 @@ "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", "dev": true, "requires": { - "camelcase": "2.1.1", - "map-obj": "1.0.1" + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" }, "dependencies": { "camelcase": { @@ -2987,10 +2988,10 @@ "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", "dev": true, "requires": { - "browserslist": "4.0.2", - "caniuse-lite": "1.0.30000878", - "lodash.memoize": "4.1.2", - "lodash.uniq": "4.5.0" + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" }, "dependencies": { "browserslist": { @@ -2999,9 +3000,9 @@ "integrity": "sha512-lpujC4zv1trcKUUwfD4pFVNga4YSpB3sLB+/I+A8gvGQxno1c0dMB2aCQy0FE5oUNIDjD9puFiFF0zeS6Ji48w==", "dev": true, "requires": { - "caniuse-lite": "1.0.30000878", - "electron-to-chromium": "1.3.59", - "node-releases": "1.0.0-alpha.11" + "caniuse-lite": "^1.0.30000876", + "electron-to-chromium": "^1.3.57", + "node-releases": "^1.0.0-alpha.11" } } } @@ -3029,8 +3030,8 @@ "resolved": "https://registry.npmjs.org/cfb/-/cfb-1.0.8.tgz", "integrity": "sha1-d/ITST1pfXVP2cD1UR6rWtctAs8=", "requires": { - "commander": "2.16.0", - "printj": "1.1.2" + "commander": "^2.14.1", + "printj": "~1.1.2" }, "dependencies": { "commander": { @@ -3046,12 +3047,12 @@ "integrity": "sha1-D2RYS6ZC8PKs4oBiefTwbKI61zw=", "dev": true, "requires": { - "assertion-error": "1.1.0", - "check-error": "1.0.2", - "deep-eql": "3.0.1", - "get-func-name": "2.0.0", - "pathval": "1.1.0", - "type-detect": "4.0.8" + "assertion-error": "^1.0.1", + "check-error": "^1.0.1", + "deep-eql": "^3.0.0", + "get-func-name": "^2.0.0", + "pathval": "^1.0.0", + "type-detect": "^4.0.0" } }, "chalk": { @@ -3060,9 +3061,9 @@ "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.4.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "chardet": { @@ -3089,19 +3090,19 @@ "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==", "dev": true, "requires": { - "anymatch": "2.0.0", - "async-each": "1.0.1", - "braces": "2.3.2", - "fsevents": "1.2.4", - "glob-parent": "3.1.0", - "inherits": "2.0.3", - "is-binary-path": "1.0.1", - "is-glob": "4.0.0", - "lodash.debounce": "4.0.8", - "normalize-path": "2.1.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.1.0", - "upath": "1.1.0" + "anymatch": "^2.0.0", + "async-each": "^1.0.0", + "braces": "^2.3.0", + "fsevents": "^1.2.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "lodash.debounce": "^4.0.8", + "normalize-path": "^2.1.1", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0", + "upath": "^1.0.5" }, "dependencies": { "array-unique": { @@ -3116,16 +3117,16 @@ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.3", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" } }, "extend-shallow": { @@ -3134,7 +3135,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "fill-range": { @@ -3143,10 +3144,10 @@ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" } }, "glob-parent": { @@ -3155,8 +3156,8 @@ "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "dev": true, "requires": { - "is-glob": "3.1.0", - "path-dirname": "1.0.2" + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" }, "dependencies": { "is-glob": { @@ -3165,7 +3166,7 @@ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "dev": true, "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.0" } } } @@ -3182,7 +3183,7 @@ "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", "dev": true, "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.1" } }, "is-number": { @@ -3191,7 +3192,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "isobject": { @@ -3214,7 +3215,7 @@ "integrity": "sha512-xDbVgyfDTT2piup/h8dK/y4QZfJRSa73bw1WZ8b4XM1o7fsFubUVGYcE+1ANtOzJJELGpYoG2961z0Z6OAld9A==", "dev": true, "requires": { - "tslib": "1.9.3" + "tslib": "^1.9.0" } }, "ci-info": { @@ -3229,8 +3230,8 @@ "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", "dev": true, "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.2" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "circular-json": { @@ -3245,10 +3246,10 @@ "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "dev": true, "requires": { - "arr-union": "3.1.0", - "define-property": "0.2.5", - "isobject": "3.0.1", - "static-extend": "0.1.2" + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" }, "dependencies": { "define-property": { @@ -3257,7 +3258,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "isobject": { @@ -3274,7 +3275,7 @@ "integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==", "dev": true, "requires": { - "source-map": "0.6.1" + "source-map": "~0.6.0" }, "dependencies": { "source-map": { @@ -3291,7 +3292,7 @@ "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", "dev": true, "requires": { - "restore-cursor": "1.0.1" + "restore-cursor": "^1.0.1" } }, "cli-spinners": { @@ -3307,7 +3308,7 @@ "dev": true, "requires": { "slice-ansi": "0.0.4", - "string-width": "1.0.2" + "string-width": "^1.0.1" } }, "cli-width": { @@ -3321,9 +3322,9 @@ "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.1.tgz", "integrity": "sha512-7yhQBmtN+uYZmfRjjVjKa0dZdWuabzpSKGtyQZN+9C8xlC788SSJjOHWh7tzurfwTqTD5UDYAhIv5fRJg3sHjQ==", "requires": { - "good-listener": "1.2.2", - "select": "1.1.2", - "tiny-emitter": "2.0.2" + "good-listener": "^1.2.2", + "select": "^1.1.2", + "tiny-emitter": "^2.0.0" } }, "clipboardy": { @@ -3332,8 +3333,8 @@ "integrity": "sha512-2WNImOvCRe6r63Gk9pShfkwXsVtKCroMAevIbiae021mS850UkWPbevxsBz3tnvjZIEGvlwaqCPsw+4ulzNgJA==", "dev": true, "requires": { - "arch": "2.1.1", - "execa": "0.8.0" + "arch": "^2.1.0", + "execa": "^0.8.0" }, "dependencies": { "execa": { @@ -3342,13 +3343,13 @@ "integrity": "sha1-2NdrvBtVIX7RkP1t1J08d07PyNo=", "dev": true, "requires": { - "cross-spawn": "5.1.0", - "get-stream": "3.0.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" } } } @@ -3359,9 +3360,9 @@ "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", "dev": true, "requires": { - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "wrap-ansi": "2.1.0" + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" }, "dependencies": { "ansi-regex": { @@ -3382,8 +3383,8 @@ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" } }, "strip-ansi": { @@ -3392,7 +3393,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -3415,7 +3416,7 @@ "integrity": "sha512-5wfTTO8E2/ja4jFSxePXlG5nRu5bBtL/r1HCIpJW/lzT6yDtKl0u0Z4o/Vpz32IpKmBn7HerheEZQgA9N2DarQ==", "dev": true, "requires": { - "q": "1.5.1" + "q": "^1.1.2" } }, "code-point-at": { @@ -3434,7 +3435,7 @@ "resolved": "https://registry.npmjs.org/codemirror-spell-checker/-/codemirror-spell-checker-1.1.2.tgz", "integrity": "sha1-HGYPkIlIPMtRE7m6nKGcP0mTNx4=", "requires": { - "typo-js": "1.0.3" + "typo-js": "*" } }, "codepage": { @@ -3442,8 +3443,8 @@ "resolved": "https://registry.npmjs.org/codepage/-/codepage-1.14.0.tgz", "integrity": "sha1-jL4lSBMjVZ19MHVxsP/5HnodL5k=", "requires": { - "commander": "2.14.1", - "exit-on-epipe": "1.0.1" + "commander": "~2.14.1", + "exit-on-epipe": "~1.0.1" }, "dependencies": { "commander": { @@ -3459,8 +3460,8 @@ "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "dev": true, "requires": { - "map-visit": "1.0.0", - "object-visit": "1.0.1" + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" } }, "color": { @@ -3469,8 +3470,8 @@ "integrity": "sha512-jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w==", "dev": true, "requires": { - "color-convert": "1.9.1", - "color-string": "1.5.3" + "color-convert": "^1.9.1", + "color-string": "^1.5.2" } }, "color-convert": { @@ -3479,7 +3480,7 @@ "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", "dev": true, "requires": { - "color-name": "1.1.3" + "color-name": "^1.1.1" } }, "color-name": { @@ -3494,8 +3495,8 @@ "integrity": "sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==", "dev": true, "requires": { - "color-name": "1.1.3", - "simple-swizzle": "0.2.2" + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" } }, "colors": { @@ -3510,7 +3511,7 @@ "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", "dev": true, "requires": { - "delayed-stream": "1.0.0" + "delayed-stream": "~1.0.0" } }, "commander": { @@ -3537,7 +3538,7 @@ "integrity": "sha1-MmxfUH+7BV9UEWeCuWmoG2einac=", "dev": true, "requires": { - "mime-db": "1.36.0" + "mime-db": ">= 1.34.0 < 2" }, "dependencies": { "mime-db": { @@ -3554,13 +3555,13 @@ "integrity": "sha512-HSjyBG5N1Nnz7tF2+O7A9XUhyjru71/fwgNb7oIsEVHR0WShfs2tIS/EySLgiTe98aOK18YDlMXpzjCXY/n9mg==", "dev": true, "requires": { - "accepts": "1.3.5", + "accepts": "~1.3.5", "bytes": "3.0.0", - "compressible": "2.0.14", + "compressible": "~2.0.14", "debug": "2.6.9", - "on-headers": "1.0.1", + "on-headers": "~1.0.1", "safe-buffer": "5.1.2", - "vary": "1.1.2" + "vary": "~1.1.2" }, "dependencies": { "debug": { @@ -3586,10 +3587,10 @@ "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "dev": true, "requires": { - "buffer-from": "1.1.1", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "typedarray": "0.0.6" + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" } }, "connect-history-api-fallback": { @@ -3604,7 +3605,7 @@ "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", "dev": true, "requires": { - "date-now": "0.1.4" + "date-now": "^0.1.4" } }, "consolidate": { @@ -3613,7 +3614,7 @@ "integrity": "sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw==", "dev": true, "requires": { - "bluebird": "3.5.1" + "bluebird": "^3.1.1" } }, "constants-browserify": { @@ -3664,12 +3665,12 @@ "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", "dev": true, "requires": { - "aproba": "1.2.0", - "fs-write-stream-atomic": "1.0.10", - "iferr": "0.1.5", - "mkdirp": "0.5.1", - "rimraf": "2.6.2", - "run-queue": "1.0.3" + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" } }, "copy-descriptor": { @@ -3684,14 +3685,14 @@ "integrity": "sha512-zmC33E8FFSq3AbflTvqvPvBo621H36Afsxlui91d+QyZxPIuXghfnTsa1CuqiAaCPgJoSUWfTFbKJnadZpKEbQ==", "dev": true, "requires": { - "cacache": "10.0.4", - "find-cache-dir": "1.0.0", - "globby": "7.1.1", - "is-glob": "4.0.0", - "loader-utils": "1.1.0", - "minimatch": "3.0.4", - "p-limit": "1.2.0", - "serialize-javascript": "1.5.0" + "cacache": "^10.0.4", + "find-cache-dir": "^1.0.0", + "globby": "^7.1.1", + "is-glob": "^4.0.0", + "loader-utils": "^1.1.0", + "minimatch": "^3.0.4", + "p-limit": "^1.0.0", + "serialize-javascript": "^1.4.0" }, "dependencies": { "globby": { @@ -3700,12 +3701,12 @@ "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=", "dev": true, "requires": { - "array-union": "1.0.2", - "dir-glob": "2.0.0", - "glob": "7.1.2", - "ignore": "3.3.8", - "pify": "3.0.0", - "slash": "1.0.0" + "array-union": "^1.0.1", + "dir-glob": "^2.0.0", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" } }, "is-extglob": { @@ -3720,7 +3721,7 @@ "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", "dev": true, "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.1" } } } @@ -3742,9 +3743,9 @@ "integrity": "sha512-6DWfizHriCrFWURP1/qyhsiFvYdlJzbCzmtFWh744+KyWsJo5+kPzUZZaMRSSItoYc0pxFX7gEO7ZC1/gN/7AQ==", "dev": true, "requires": { - "is-directory": "0.3.1", - "js-yaml": "3.11.0", - "parse-json": "4.0.0" + "is-directory": "^0.3.1", + "js-yaml": "^3.9.0", + "parse-json": "^4.0.0" }, "dependencies": { "parse-json": { @@ -3753,8 +3754,8 @@ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { - "error-ex": "1.3.1", - "json-parse-better-errors": "1.0.2" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" } } } @@ -3769,8 +3770,8 @@ "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.0.tgz", "integrity": "sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA==", "requires": { - "exit-on-epipe": "1.0.1", - "printj": "1.1.2" + "exit-on-epipe": "~1.0.1", + "printj": "~1.1.0" } }, "create-ecdh": { @@ -3779,8 +3780,8 @@ "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", "dev": true, "requires": { - "bn.js": "4.11.8", - "elliptic": "6.4.1" + "bn.js": "^4.1.0", + "elliptic": "^6.0.0" } }, "create-hash": { @@ -3789,11 +3790,11 @@ "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", "dev": true, "requires": { - "cipher-base": "1.0.4", - "inherits": "2.0.3", - "md5.js": "1.3.4", - "ripemd160": "2.0.2", - "sha.js": "2.4.11" + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" } }, "create-hmac": { @@ -3802,12 +3803,12 @@ "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", "dev": true, "requires": { - "cipher-base": "1.0.4", - "create-hash": "1.2.0", - "inherits": "2.0.3", - "ripemd160": "2.0.2", - "safe-buffer": "5.1.2", - "sha.js": "2.4.11" + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" } }, "cropperjs": { @@ -3821,9 +3822,9 @@ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "dev": true, "requires": { - "lru-cache": "4.1.3", - "shebang-command": "1.2.0", - "which": "1.3.0" + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, "cryptiles": { @@ -3833,7 +3834,7 @@ "dev": true, "optional": true, "requires": { - "boom": "2.10.1" + "boom": "2.x.x" } }, "crypto-browserify": { @@ -3842,17 +3843,17 @@ "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", "dev": true, "requires": { - "browserify-cipher": "1.0.1", - "browserify-sign": "4.0.4", - "create-ecdh": "4.0.3", - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "diffie-hellman": "5.0.3", - "inherits": "2.0.3", - "pbkdf2": "3.0.16", - "public-encrypt": "4.0.2", - "randombytes": "2.0.6", - "randomfill": "1.0.4" + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" } }, "css-color-names": { @@ -3867,8 +3868,8 @@ "integrity": "sha512-jH4024SHZ3e0M7ann9VxpFpH3moplRXNz9ZBqvFMZqi09Yo5ARbs2wdPH8GqN9iRTlQynrbGbraNbBxBLei85Q==", "dev": true, "requires": { - "postcss": "6.0.23", - "timsort": "0.3.0" + "postcss": "^6.0.0", + "timsort": "^0.3.0" }, "dependencies": { "postcss": { @@ -3877,9 +3878,9 @@ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" } }, "source-map": { @@ -3895,7 +3896,7 @@ "resolved": "https://registry.npmjs.org/css-line-break/-/css-line-break-1.0.1.tgz", "integrity": "sha1-GfIGOjPpX7KDG4ZEbAuAwYivRQo=", "requires": { - "base64-arraybuffer": "0.1.5" + "base64-arraybuffer": "^0.1.5" } }, "css-loader": { @@ -3904,18 +3905,18 @@ "integrity": "sha512-tMXlTYf3mIMt3b0dDCOQFJiVvxbocJ5Ho577WiGPYPZcqVEO218L2iU22pDXzkTZCLDE+9AmGSUkWxeh/nZReA==", "dev": true, "requires": { - "babel-code-frame": "6.26.0", - "css-selector-tokenizer": "0.7.0", - "icss-utils": "2.1.0", - "loader-utils": "1.1.0", - "lodash.camelcase": "4.3.0", - "postcss": "6.0.23", - "postcss-modules-extract-imports": "1.2.0", - "postcss-modules-local-by-default": "1.2.0", - "postcss-modules-scope": "1.1.0", - "postcss-modules-values": "1.3.0", - "postcss-value-parser": "3.3.0", - "source-list-map": "2.0.0" + "babel-code-frame": "^6.26.0", + "css-selector-tokenizer": "^0.7.0", + "icss-utils": "^2.1.0", + "loader-utils": "^1.0.2", + "lodash.camelcase": "^4.3.0", + "postcss": "^6.0.23", + "postcss-modules-extract-imports": "^1.2.0", + "postcss-modules-local-by-default": "^1.2.0", + "postcss-modules-scope": "^1.1.0", + "postcss-modules-values": "^1.3.0", + "postcss-value-parser": "^3.3.0", + "source-list-map": "^2.0.0" }, "dependencies": { "postcss": { @@ -3924,9 +3925,9 @@ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" } }, "source-map": { @@ -3943,10 +3944,10 @@ "integrity": "sha1-b5MZaqrnN2ZuoQNqjLFKj8t6kjE=", "dev": true, "requires": { - "boolbase": "1.0.0", - "css-what": "2.1.0", + "boolbase": "^1.0.0", + "css-what": "2.1", "domutils": "1.5.1", - "nth-check": "1.0.1" + "nth-check": "^1.0.1" } }, "css-select-base-adapter": { @@ -3961,9 +3962,9 @@ "integrity": "sha1-5piEdK6MlTR3v15+/s/OzNnPTIY=", "dev": true, "requires": { - "cssesc": "0.1.0", - "fastparse": "1.1.1", - "regexpu-core": "1.0.0" + "cssesc": "^0.1.0", + "fastparse": "^1.1.1", + "regexpu-core": "^1.0.0" }, "dependencies": { "jsesc": { @@ -3978,9 +3979,9 @@ "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=", "dev": true, "requires": { - "regenerate": "1.4.0", - "regjsgen": "0.2.0", - "regjsparser": "0.1.5" + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" } }, "regjsgen": { @@ -3995,7 +3996,7 @@ "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", "dev": true, "requires": { - "jsesc": "0.5.0" + "jsesc": "~0.5.0" } } } @@ -4006,8 +4007,8 @@ "integrity": "sha512-XC6xLW/JqIGirnZuUWHXCHRaAjje2b3OIB0Vj5RIJo6mIi/AdJo30quQl5LxUl0gkXDIrTrFGbMlcZjyFplz1A==", "dev": true, "requires": { - "mdn-data": "1.1.4", - "source-map": "0.5.7" + "mdn-data": "^1.0.0", + "source-map": "^0.5.3" } }, "css-unit-converter": { @@ -4040,10 +4041,10 @@ "integrity": "sha512-P2O0sz/YAAzqZVsSWOrbliPCr0c6abwVNQmFZ48AgejN/GbzwEf6IVFGQAj0UKHC+crv60wUAPQocAnDmeWlkg==", "dev": true, "requires": { - "cosmiconfig": "5.0.6", - "cssnano-preset-default": "4.0.0", - "is-resolvable": "1.1.0", - "postcss": "6.0.23" + "cosmiconfig": "^5.0.0", + "cssnano-preset-default": "^4.0.0", + "is-resolvable": "^1.0.0", + "postcss": "^6.0.0" }, "dependencies": { "postcss": { @@ -4052,9 +4053,9 @@ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" } }, "source-map": { @@ -4071,36 +4072,36 @@ "integrity": "sha1-wzQoe099SfstFwqS+SFGVXiOO2s=", "dev": true, "requires": { - "css-declaration-sorter": "3.0.1", - "cssnano-util-raw-cache": "4.0.0", - "postcss": "6.0.23", - "postcss-calc": "6.0.1", - "postcss-colormin": "4.0.1", - "postcss-convert-values": "4.0.0", - "postcss-discard-comments": "4.0.0", - "postcss-discard-duplicates": "4.0.0", - "postcss-discard-empty": "4.0.0", - "postcss-discard-overridden": "4.0.0", - "postcss-merge-longhand": "4.0.4", - "postcss-merge-rules": "4.0.1", - "postcss-minify-font-values": "4.0.0", - "postcss-minify-gradients": "4.0.0", - "postcss-minify-params": "4.0.0", - "postcss-minify-selectors": "4.0.0", - "postcss-normalize-charset": "4.0.0", - "postcss-normalize-display-values": "4.0.0", - "postcss-normalize-positions": "4.0.0", - "postcss-normalize-repeat-style": "4.0.0", - "postcss-normalize-string": "4.0.0", - "postcss-normalize-timing-functions": "4.0.0", - "postcss-normalize-unicode": "4.0.0", - "postcss-normalize-url": "4.0.0", - "postcss-normalize-whitespace": "4.0.0", - "postcss-ordered-values": "4.0.0", - "postcss-reduce-initial": "4.0.1", - "postcss-reduce-transforms": "4.0.0", - "postcss-svgo": "4.0.0", - "postcss-unique-selectors": "4.0.0" + "css-declaration-sorter": "^3.0.0", + "cssnano-util-raw-cache": "^4.0.0", + "postcss": "^6.0.0", + "postcss-calc": "^6.0.0", + "postcss-colormin": "^4.0.0", + "postcss-convert-values": "^4.0.0", + "postcss-discard-comments": "^4.0.0", + "postcss-discard-duplicates": "^4.0.0", + "postcss-discard-empty": "^4.0.0", + "postcss-discard-overridden": "^4.0.0", + "postcss-merge-longhand": "^4.0.0", + "postcss-merge-rules": "^4.0.0", + "postcss-minify-font-values": "^4.0.0", + "postcss-minify-gradients": "^4.0.0", + "postcss-minify-params": "^4.0.0", + "postcss-minify-selectors": "^4.0.0", + "postcss-normalize-charset": "^4.0.0", + "postcss-normalize-display-values": "^4.0.0", + "postcss-normalize-positions": "^4.0.0", + "postcss-normalize-repeat-style": "^4.0.0", + "postcss-normalize-string": "^4.0.0", + "postcss-normalize-timing-functions": "^4.0.0", + "postcss-normalize-unicode": "^4.0.0", + "postcss-normalize-url": "^4.0.0", + "postcss-normalize-whitespace": "^4.0.0", + "postcss-ordered-values": "^4.0.0", + "postcss-reduce-initial": "^4.0.0", + "postcss-reduce-transforms": "^4.0.0", + "postcss-svgo": "^4.0.0", + "postcss-unique-selectors": "^4.0.0" }, "dependencies": { "postcss": { @@ -4109,9 +4110,9 @@ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" } }, "source-map": { @@ -4140,7 +4141,7 @@ "integrity": "sha1-vgooVuJfGF9feivMBiTii38Xmp8=", "dev": true, "requires": { - "postcss": "6.0.23" + "postcss": "^6.0.0" }, "dependencies": { "postcss": { @@ -4149,9 +4150,9 @@ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" } }, "source-map": { @@ -4183,8 +4184,8 @@ "integrity": "sha512-sRNb1XydwkW9IOci6iB2xmy8IGCj6r/fr+JWitvJ2JxQRPzN3T4AGGVWCMlVmVwM1gtgALJRmGIlWv5ppnGGkg==", "dev": true, "requires": { - "mdn-data": "1.1.4", - "source-map": "0.5.7" + "mdn-data": "~1.1.0", + "source-map": "^0.5.3" } } } @@ -4201,7 +4202,7 @@ "integrity": "sha512-364AI1l/M5TYcFH83JnOH/pSqgaNnKmYgKrm0didZMGKWjQB60dymwWy1rKUgL3J1ffdq9xVi2yGLHdSjjSNog==", "dev": true, "requires": { - "cssom": "0.3.4" + "cssom": "0.3.x" } }, "currently-unhandled": { @@ -4210,7 +4211,7 @@ "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", "dev": true, "requires": { - "array-find-index": "1.0.2" + "array-find-index": "^1.0.1" } }, "cyclist": { @@ -4225,7 +4226,7 @@ "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", "dev": true, "requires": { - "es5-ext": "0.10.46" + "es5-ext": "^0.10.9" } }, "dashdash": { @@ -4234,7 +4235,7 @@ "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "dev": true, "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" }, "dependencies": { "assert-plus": { @@ -4251,9 +4252,9 @@ "integrity": "sha512-0HdcMZzK6ubMUnsMmQmG0AcLQPvbvb47R0+7CCZQCYgcd8OUWG91CG7sM6GoXgjz+WLl4ArFzHtBMy/QqSF4eg==", "dev": true, "requires": { - "abab": "2.0.0", - "whatwg-mimetype": "2.1.0", - "whatwg-url": "7.0.0" + "abab": "^2.0.0", + "whatwg-mimetype": "^2.1.0", + "whatwg-url": "^7.0.0" }, "dependencies": { "whatwg-url": { @@ -4262,9 +4263,9 @@ "integrity": "sha512-37GeVSIJ3kn1JgKyjiYNmSLP1yzbpb29jdmwBSgkD9h40/hyrR/OifpVUndji3tmwGgD8qpw7iQu3RSbCrBpsQ==", "dev": true, "requires": { - "lodash.sortby": "4.7.0", - "tr46": "1.0.1", - "webidl-conversions": "4.0.2" + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" } } } @@ -4324,7 +4325,7 @@ "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", "dev": true, "requires": { - "type-detect": "4.0.8" + "type-detect": "^4.0.0" } }, "deep-equal": { @@ -4351,7 +4352,7 @@ "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", "dev": true, "requires": { - "clone": "1.0.4" + "clone": "^1.0.2" } }, "define-properties": { @@ -4360,7 +4361,7 @@ "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", "dev": true, "requires": { - "object-keys": "1.0.12" + "object-keys": "^1.0.12" } }, "define-property": { @@ -4369,8 +4370,8 @@ "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "dev": true, "requires": { - "is-descriptor": "1.0.2", - "isobject": "3.0.1" + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" }, "dependencies": { "is-accessor-descriptor": { @@ -4379,7 +4380,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -4388,7 +4389,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -4397,9 +4398,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { @@ -4422,13 +4423,13 @@ "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", "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" + "globby": "^5.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "rimraf": "^2.2.8" }, "dependencies": { "pify": { @@ -4462,8 +4463,8 @@ "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", "dev": true, "requires": { - "inherits": "2.0.3", - "minimalistic-assert": "1.0.1" + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" } }, "destroy": { @@ -4490,9 +4491,9 @@ "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", "dev": true, "requires": { - "bn.js": "4.11.8", - "miller-rabin": "4.0.1", - "randombytes": "2.0.6" + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" } }, "dir-glob": { @@ -4501,8 +4502,8 @@ "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", "dev": true, "requires": { - "arrify": "1.0.1", - "path-type": "3.0.0" + "arrify": "^1.0.1", + "path-type": "^3.0.0" } }, "dns-equal": { @@ -4517,8 +4518,8 @@ "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", "dev": true, "requires": { - "ip": "1.1.5", - "safe-buffer": "5.1.2" + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" } }, "dns-txt": { @@ -4527,7 +4528,7 @@ "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", "dev": true, "requires": { - "buffer-indexof": "1.1.1" + "buffer-indexof": "^1.0.0" } }, "doctrine": { @@ -4536,7 +4537,7 @@ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, "requires": { - "esutils": "2.0.2" + "esutils": "^2.0.2" } }, "dom-converter": { @@ -4545,7 +4546,7 @@ "integrity": "sha1-pF71cnuJDJv/5tfIduexnLDhfzs=", "dev": true, "requires": { - "utila": "0.3.3" + "utila": "~0.3" }, "dependencies": { "utila": { @@ -4562,8 +4563,8 @@ "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", "dev": true, "requires": { - "domelementtype": "1.1.3", - "entities": "1.1.1" + "domelementtype": "~1.1.1", + "entities": "~1.1.1" }, "dependencies": { "domelementtype": { @@ -4592,7 +4593,7 @@ "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==", "dev": true, "requires": { - "webidl-conversions": "4.0.2" + "webidl-conversions": "^4.0.2" } }, "domhandler": { @@ -4601,7 +4602,7 @@ "integrity": "sha1-0mRvXlf2w7qxHPbLBdPArPdBJZQ=", "dev": true, "requires": { - "domelementtype": "1.3.0" + "domelementtype": "1" } }, "domutils": { @@ -4610,8 +4611,8 @@ "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", "dev": true, "requires": { - "dom-serializer": "0.1.0", - "domelementtype": "1.3.0" + "dom-serializer": "0", + "domelementtype": "1" } }, "dot-prop": { @@ -4620,7 +4621,7 @@ "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", "dev": true, "requires": { - "is-obj": "1.0.1" + "is-obj": "^1.0.0" } }, "duplexer": { @@ -4635,10 +4636,10 @@ "integrity": "sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==", "dev": true, "requires": { - "end-of-stream": "1.4.1", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "stream-shift": "1.0.0" + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" } }, "easy-stack": { @@ -4654,7 +4655,7 @@ "dev": true, "optional": true, "requires": { - "jsbn": "0.1.1" + "jsbn": "~0.1.0" } }, "echarts": { @@ -4694,7 +4695,7 @@ "resolved": "https://registry.npmjs.org/element-resize-detector/-/element-resize-detector-1.1.14.tgz", "integrity": "sha1-rwZKCmGKggrVcKlcXuxbd74BKME=", "requires": { - "batch-processor": "1.0.0" + "batch-processor": "^1.0.0" } }, "elliptic": { @@ -4703,13 +4704,13 @@ "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==", "dev": true, "requires": { - "bn.js": "4.11.8", - "brorand": "1.1.0", - "hash.js": "1.1.5", - "hmac-drbg": "1.0.1", - "inherits": "2.0.3", - "minimalistic-assert": "1.0.1", - "minimalistic-crypto-utils": "1.0.1" + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" } }, "emojis-list": { @@ -4730,7 +4731,7 @@ "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", "dev": true, "requires": { - "once": "1.4.0" + "once": "^1.4.0" } }, "enhanced-resolve": { @@ -4739,9 +4740,9 @@ "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "memory-fs": "0.4.1", - "tapable": "1.0.0" + "graceful-fs": "^4.1.2", + "memory-fs": "^0.4.0", + "tapable": "^1.0.0" } }, "entities": { @@ -4756,7 +4757,7 @@ "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", "dev": true, "requires": { - "prr": "1.0.1" + "prr": "~1.0.1" } }, "error-ex": { @@ -4765,7 +4766,7 @@ "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", "dev": true, "requires": { - "is-arrayish": "0.2.1" + "is-arrayish": "^0.2.1" } }, "error-stack-parser": { @@ -4774,7 +4775,7 @@ "integrity": "sha512-E1fPutRDdIj/hohG0UpT5mayXNCxXP9d+snxFsPU9X0XgccOumKraa3juDMwTUyi7+Bu5+mCGagjg4IYeNbOdw==", "dev": true, "requires": { - "stackframe": "1.0.4" + "stackframe": "^1.0.4" } }, "es-abstract": { @@ -4783,11 +4784,11 @@ "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==", "dev": true, "requires": { - "es-to-primitive": "1.1.1", - "function-bind": "1.1.1", - "has": "1.0.1", - "is-callable": "1.1.4", - "is-regex": "1.0.4" + "es-to-primitive": "^1.1.1", + "function-bind": "^1.1.1", + "has": "^1.0.1", + "is-callable": "^1.1.3", + "is-regex": "^1.0.4" } }, "es-to-primitive": { @@ -4796,9 +4797,9 @@ "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", "dev": true, "requires": { - "is-callable": "1.1.4", - "is-date-object": "1.0.1", - "is-symbol": "1.0.1" + "is-callable": "^1.1.1", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.1" } }, "es5-ext": { @@ -4807,9 +4808,9 @@ "integrity": "sha512-24XxRvJXNFwEMpJb3nOkiRJKRoupmjYmOPVlI65Qy2SrtxwOTB+g6ODjBKOtwEHbYrhWRty9xxOWLNdClT2djw==", "dev": true, "requires": { - "es6-iterator": "2.0.3", - "es6-symbol": "3.1.1", - "next-tick": "1.0.0" + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.1", + "next-tick": "1" } }, "es6-iterator": { @@ -4818,9 +4819,9 @@ "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.46", - "es6-symbol": "3.1.1" + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" } }, "es6-symbol": { @@ -4829,8 +4830,8 @@ "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.46" + "d": "1", + "es5-ext": "~0.10.14" } }, "escape-html": { @@ -4851,11 +4852,11 @@ "integrity": "sha512-IeMV45ReixHS53K/OmfKAIztN/igDHzTJUhZM3k1jMhIZWjk45SMwAtBsEXiJp3vSPmTcu6CXn7mDvFHRN66fw==", "dev": true, "requires": { - "esprima": "3.1.3", - "estraverse": "4.2.0", - "esutils": "2.0.2", - "optionator": "0.8.2", - "source-map": "0.6.1" + "esprima": "^3.1.3", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" }, "dependencies": { "esprima": { @@ -4879,44 +4880,44 @@ "integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==", "dev": true, "requires": { - "ajv": "5.5.2", - "babel-code-frame": "6.26.0", - "chalk": "2.4.1", - "concat-stream": "1.6.2", - "cross-spawn": "5.1.0", - "debug": "3.1.0", - "doctrine": "2.1.0", - "eslint-scope": "3.7.1", - "eslint-visitor-keys": "1.0.0", - "espree": "3.5.4", - "esquery": "1.0.1", - "esutils": "2.0.2", - "file-entry-cache": "2.0.0", - "functional-red-black-tree": "1.0.1", - "glob": "7.1.2", - "globals": "11.5.0", - "ignore": "3.3.8", - "imurmurhash": "0.1.4", - "inquirer": "3.3.0", - "is-resolvable": "1.1.0", - "js-yaml": "3.11.0", - "json-stable-stringify-without-jsonify": "1.0.1", - "levn": "0.3.0", - "lodash": "4.17.10", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "natural-compare": "1.4.0", - "optionator": "0.8.2", - "path-is-inside": "1.0.2", - "pluralize": "7.0.0", - "progress": "2.0.0", - "regexpp": "1.1.0", - "require-uncached": "1.0.3", - "semver": "5.5.0", - "strip-ansi": "4.0.0", - "strip-json-comments": "2.0.1", + "ajv": "^5.3.0", + "babel-code-frame": "^6.22.0", + "chalk": "^2.1.0", + "concat-stream": "^1.6.0", + "cross-spawn": "^5.1.0", + "debug": "^3.1.0", + "doctrine": "^2.1.0", + "eslint-scope": "^3.7.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^3.5.4", + "esquery": "^1.0.0", + "esutils": "^2.0.2", + "file-entry-cache": "^2.0.0", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^11.0.1", + "ignore": "^3.3.3", + "imurmurhash": "^0.1.4", + "inquirer": "^3.0.6", + "is-resolvable": "^1.0.0", + "js-yaml": "^3.9.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.4", + "minimatch": "^3.0.2", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "pluralize": "^7.0.0", + "progress": "^2.0.0", + "regexpp": "^1.0.1", + "require-uncached": "^1.0.3", + "semver": "^5.3.0", + "strip-ansi": "^4.0.0", + "strip-json-comments": "~2.0.1", "table": "4.0.2", - "text-table": "0.2.0" + "text-table": "~0.2.0" }, "dependencies": { "ajv": { @@ -4925,10 +4926,10 @@ "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "dev": true, "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.1.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" } }, "ansi-regex": { @@ -4943,7 +4944,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -4960,8 +4961,8 @@ "integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==", "dev": true, "requires": { - "debug": "2.6.9", - "resolve": "1.7.1" + "debug": "^2.6.9", + "resolve": "^1.5.0" }, "dependencies": { "debug": { @@ -4981,11 +4982,11 @@ "integrity": "sha512-f4A/Yk7qF+HcFSz5Tck2QoKIwJVHlX0soJk5MkROYahb5uvspad5Ba60rrz4u/V2/MEj1dtp/uBi6LlLWVaY7Q==", "dev": true, "requires": { - "loader-fs-cache": "1.0.1", - "loader-utils": "1.1.0", - "object-assign": "4.1.1", - "object-hash": "1.3.0", - "rimraf": "2.6.2" + "loader-fs-cache": "^1.0.0", + "loader-utils": "^1.0.2", + "object-assign": "^4.0.1", + "object-hash": "^1.1.4", + "rimraf": "^2.6.1" } }, "eslint-module-utils": { @@ -4994,8 +4995,8 @@ "integrity": "sha1-snA2LNiLGkitMIl2zn+lTphBF0Y=", "dev": true, "requires": { - "debug": "2.6.9", - "pkg-dir": "1.0.0" + "debug": "^2.6.8", + "pkg-dir": "^1.0.0" }, "dependencies": { "debug": { @@ -5013,8 +5014,8 @@ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "dev": true, "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "path-exists": { @@ -5023,7 +5024,7 @@ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "dev": true, "requires": { - "pinkie-promise": "2.0.1" + "pinkie-promise": "^2.0.0" } }, "pkg-dir": { @@ -5032,7 +5033,7 @@ "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", "dev": true, "requires": { - "find-up": "1.1.2" + "find-up": "^1.0.0" } } } @@ -5043,7 +5044,7 @@ "integrity": "sha512-iC17zJhUxW4JMGQYyxq2lYl5vCUDqGnC2Qkmt1mMk3kn5XIu6ypbtAbREDTC+cFY6SG7USlsmURjTAJ4LtlM6A==", "dev": true, "requires": { - "globals": "11.5.0" + "globals": "^11.0.1" } }, "eslint-plugin-import": { @@ -5052,16 +5053,16 @@ "integrity": "sha1-2tMXgSktZmSyUxf9BJ0uKy8CIF0=", "dev": true, "requires": { - "contains-path": "0.1.0", - "debug": "2.6.9", + "contains-path": "^0.1.0", + "debug": "^2.6.8", "doctrine": "1.5.0", - "eslint-import-resolver-node": "0.3.2", - "eslint-module-utils": "2.2.0", - "has": "1.0.1", - "lodash": "4.17.10", - "minimatch": "3.0.4", - "read-pkg-up": "2.0.0", - "resolve": "1.7.1" + "eslint-import-resolver-node": "^0.3.1", + "eslint-module-utils": "^2.2.0", + "has": "^1.0.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.3", + "read-pkg-up": "^2.0.0", + "resolve": "^1.6.0" }, "dependencies": { "debug": { @@ -5079,8 +5080,8 @@ "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", "dev": true, "requires": { - "esutils": "2.0.2", - "isarray": "1.0.0" + "esutils": "^2.0.2", + "isarray": "^1.0.0" } }, "load-json-file": { @@ -5089,10 +5090,10 @@ "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "strip-bom": "3.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" } }, "path-type": { @@ -5101,7 +5102,7 @@ "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", "dev": true, "requires": { - "pify": "2.3.0" + "pify": "^2.0.0" } }, "pify": { @@ -5116,9 +5117,9 @@ "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", "dev": true, "requires": { - "load-json-file": "2.0.0", - "normalize-package-data": "2.4.0", - "path-type": "2.0.0" + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" } }, "read-pkg-up": { @@ -5127,8 +5128,8 @@ "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", "dev": true, "requires": { - "find-up": "2.1.0", - "read-pkg": "2.0.0" + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" } } } @@ -5139,10 +5140,10 @@ "integrity": "sha512-Q/Cc2sW1OAISDS+Ji6lZS2KV4b7ueA/WydVWd1BECTQwVvfQy5JAi3glhINoKzoMnfnuRgNP+ZWKrGAbp3QDxw==", "dev": true, "requires": { - "ignore": "3.3.8", - "minimatch": "3.0.4", - "resolve": "1.7.1", - "semver": "5.5.0" + "ignore": "^3.3.6", + "minimatch": "^3.0.4", + "resolve": "^1.3.3", + "semver": "^5.4.1" } }, "eslint-plugin-promise": { @@ -5163,7 +5164,7 @@ "integrity": "sha512-esETKhVMI7Vdli70Wt4bvAwnZBJeM0pxVX9Yb0wWKxdCJc2EADalVYK/q2FzMw8oKN0wPMdqVCKS8kmR89recA==", "dev": true, "requires": { - "vue-eslint-parser": "2.0.3" + "vue-eslint-parser": "^2.0.3" } }, "eslint-scope": { @@ -5172,8 +5173,8 @@ "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", "dev": true, "requires": { - "esrecurse": "4.2.1", - "estraverse": "4.2.0" + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" } }, "eslint-visitor-keys": { @@ -5188,8 +5189,8 @@ "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", "dev": true, "requires": { - "acorn": "5.7.1", - "acorn-jsx": "3.0.1" + "acorn": "^5.5.0", + "acorn-jsx": "^3.0.0" } }, "esprima": { @@ -5204,7 +5205,7 @@ "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", "dev": true, "requires": { - "estraverse": "4.2.0" + "estraverse": "^4.0.0" } }, "esrecurse": { @@ -5213,7 +5214,7 @@ "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", "dev": true, "requires": { - "estraverse": "4.2.0" + "estraverse": "^4.1.0" } }, "estraverse": { @@ -5258,7 +5259,7 @@ "integrity": "sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=", "dev": true, "requires": { - "original": "1.0.2" + "original": ">=0.0.5" } }, "evp_bytestokey": { @@ -5267,8 +5268,8 @@ "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", "dev": true, "requires": { - "md5.js": "1.3.4", - "safe-buffer": "5.1.2" + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" } }, "execa": { @@ -5277,13 +5278,13 @@ "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==", "dev": true, "requires": { - "cross-spawn": "6.0.5", - "get-stream": "3.0.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" + "cross-spawn": "^6.0.0", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" }, "dependencies": { "cross-spawn": { @@ -5292,11 +5293,11 @@ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "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.0" + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } } } @@ -5318,7 +5319,7 @@ "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "dev": true, "requires": { - "is-posix-bracket": "0.1.1" + "is-posix-bracket": "^0.1.0" } }, "expand-range": { @@ -5327,7 +5328,7 @@ "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "dev": true, "requires": { - "fill-range": "2.2.4" + "fill-range": "^2.1.0" } }, "express": { @@ -5336,36 +5337,36 @@ "integrity": "sha1-avilAjUNsyRuzEvs9rWjTSL37VM=", "dev": true, "requires": { - "accepts": "1.3.5", + "accepts": "~1.3.5", "array-flatten": "1.1.1", "body-parser": "1.18.2", "content-disposition": "0.5.2", - "content-type": "1.0.4", + "content-type": "~1.0.4", "cookie": "0.3.1", "cookie-signature": "1.0.6", "debug": "2.6.9", - "depd": "1.1.2", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "etag": "1.8.1", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", "finalhandler": "1.1.1", "fresh": "0.5.2", "merge-descriptors": "1.0.1", - "methods": "1.1.2", - "on-finished": "2.3.0", - "parseurl": "1.3.2", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", "path-to-regexp": "0.1.7", - "proxy-addr": "2.0.4", + "proxy-addr": "~2.0.3", "qs": "6.5.1", - "range-parser": "1.2.0", + "range-parser": "~1.2.0", "safe-buffer": "5.1.1", "send": "0.16.2", "serve-static": "1.13.2", "setprototypeof": "1.1.0", - "statuses": "1.4.0", - "type-is": "1.6.16", + "statuses": "~1.4.0", + "type-is": "~1.6.16", "utils-merge": "1.0.1", - "vary": "1.1.2" + "vary": "~1.1.2" }, "dependencies": { "debug": { @@ -5404,8 +5405,8 @@ "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "dev": true, "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { @@ -5414,7 +5415,7 @@ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -5425,9 +5426,9 @@ "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", "dev": true, "requires": { - "chardet": "0.4.2", - "iconv-lite": "0.4.23", - "tmp": "0.0.33" + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", + "tmp": "^0.0.33" } }, "extglob": { @@ -5436,7 +5437,7 @@ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "dev": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "extsprintf": { @@ -5457,12 +5458,12 @@ "integrity": "sha512-TR6zxCKftDQnUAPvkrCWdBgDq/gbqx8A3ApnBrR5rMvpp6+KMJI0Igw7fkWPgeVK0uhRXTXdvO3O+YP0CaUX2g==", "dev": true, "requires": { - "@mrmlnc/readdir-enhanced": "2.2.1", - "@nodelib/fs.stat": "1.1.1", - "glob-parent": "3.1.0", - "is-glob": "4.0.0", - "merge2": "1.2.2", - "micromatch": "3.1.10" + "@mrmlnc/readdir-enhanced": "^2.2.1", + "@nodelib/fs.stat": "^1.0.1", + "glob-parent": "^3.1.0", + "is-glob": "^4.0.0", + "merge2": "^1.2.1", + "micromatch": "^3.1.10" }, "dependencies": { "arr-diff": { @@ -5483,16 +5484,16 @@ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.3", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "dependencies": { "extend-shallow": { @@ -5501,7 +5502,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -5521,13 +5522,13 @@ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "requires": { - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "posix-character-classes": "0.1.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "define-property": { @@ -5536,7 +5537,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -5545,7 +5546,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { @@ -5554,7 +5555,7 @@ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -5563,7 +5564,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -5574,7 +5575,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -5583,7 +5584,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -5594,9 +5595,9 @@ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" } }, "kind-of": { @@ -5613,14 +5614,14 @@ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, "requires": { - "array-unique": "0.3.2", - "define-property": "1.0.0", - "expand-brackets": "2.1.4", - "extend-shallow": "2.0.1", - "fragment-cache": "0.2.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "define-property": { @@ -5629,7 +5630,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { @@ -5638,7 +5639,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -5649,10 +5650,10 @@ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" }, "dependencies": { "extend-shallow": { @@ -5661,7 +5662,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -5672,8 +5673,8 @@ "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "dev": true, "requires": { - "is-glob": "3.1.0", - "path-dirname": "1.0.2" + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" }, "dependencies": { "is-glob": { @@ -5682,7 +5683,7 @@ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "dev": true, "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.0" } } } @@ -5693,7 +5694,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -5702,7 +5703,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -5711,9 +5712,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "is-extglob": { @@ -5728,7 +5729,7 @@ "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", "dev": true, "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.1" } }, "is-number": { @@ -5737,7 +5738,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -5746,7 +5747,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -5769,19 +5770,19 @@ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.13", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" } } } @@ -5810,7 +5811,7 @@ "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", "dev": true, "requires": { - "websocket-driver": "0.7.0" + "websocket-driver": ">=0.5.1" } }, "figures": { @@ -5819,8 +5820,8 @@ "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", "dev": true, "requires": { - "escape-string-regexp": "1.0.5", - "object-assign": "4.1.1" + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" } }, "file-entry-cache": { @@ -5829,8 +5830,8 @@ "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", "dev": true, "requires": { - "flat-cache": "1.3.0", - "object-assign": "4.1.1" + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" } }, "file-loader": { @@ -5839,8 +5840,8 @@ "integrity": "sha512-TGR4HU7HUsGg6GCOPJnFk06RhWgEWFLAGWiT6rcD+GRC2keU3s9RGJ+b3Z6/U73jwwNb2gKLJ7YCrp+jvU4ALg==", "dev": true, "requires": { - "loader-utils": "1.1.0", - "schema-utils": "0.4.7" + "loader-utils": "^1.0.2", + "schema-utils": "^0.4.5" } }, "filename-regex": { @@ -5861,11 +5862,11 @@ "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", "dev": true, "requires": { - "is-number": "2.1.0", - "isobject": "2.1.0", - "randomatic": "3.1.0", - "repeat-element": "1.1.3", - "repeat-string": "1.6.1" + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^3.0.0", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" } }, "finalhandler": { @@ -5875,12 +5876,12 @@ "dev": true, "requires": { "debug": "2.6.9", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "on-finished": "2.3.0", - "parseurl": "1.3.2", - "statuses": "1.4.0", - "unpipe": "1.0.0" + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "statuses": "~1.4.0", + "unpipe": "~1.0.0" }, "dependencies": { "debug": { @@ -5900,9 +5901,9 @@ "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", "dev": true, "requires": { - "commondir": "1.0.1", - "make-dir": "1.3.0", - "pkg-dir": "2.0.0" + "commondir": "^1.0.1", + "make-dir": "^1.0.0", + "pkg-dir": "^2.0.0" } }, "find-parent-dir": { @@ -5917,7 +5918,7 @@ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { - "locate-path": "2.0.0" + "locate-path": "^2.0.0" } }, "flat-cache": { @@ -5926,10 +5927,10 @@ "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", "dev": true, "requires": { - "circular-json": "0.3.3", - "del": "2.2.2", - "graceful-fs": "4.1.11", - "write": "0.2.1" + "circular-json": "^0.3.1", + "del": "^2.0.2", + "graceful-fs": "^4.1.2", + "write": "^0.2.1" } }, "flatten": { @@ -5944,8 +5945,8 @@ "integrity": "sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==", "dev": true, "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6" + "inherits": "^2.0.1", + "readable-stream": "^2.0.4" } }, "follow-redirects": { @@ -5953,7 +5954,7 @@ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.4.1.tgz", "integrity": "sha512-uxYePVPogtya1ktGnAAXOacnbIuRMB4dkvqeNz2qTtTQsuzSfbDolV+wMMKxAmCx0bLgAKLbBOkjItMbbkR1vg==", "requires": { - "debug": "3.1.0" + "debug": "^3.1.0" } }, "for-in": { @@ -5968,7 +5969,7 @@ "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", "dev": true, "requires": { - "for-in": "1.0.2" + "for-in": "^1.0.1" } }, "forever-agent": { @@ -5984,9 +5985,9 @@ "dev": true, "optional": true, "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.6", - "mime-types": "2.1.18" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.12" } }, "forwarded": { @@ -6006,7 +6007,7 @@ "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "dev": true, "requires": { - "map-cache": "0.2.2" + "map-cache": "^0.2.2" } }, "fresh": { @@ -6021,9 +6022,9 @@ "integrity": "sha512-K27M3VK30wVoOarP651zDmb93R9zF28usW4ocaK3mfQeIEI5BPht/EzZs5E8QLLwbLRJQMwscAjDxYPb1FuNiw==", "dev": true, "requires": { - "chalk": "1.1.3", - "error-stack-parser": "2.0.2", - "string-width": "2.1.1" + "chalk": "^1.1.3", + "error-stack-parser": "^2.0.0", + "string-width": "^2.0.0" }, "dependencies": { "ansi-regex": { @@ -6044,11 +6045,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } }, "is-fullwidth-code-point": { @@ -6063,8 +6064,8 @@ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" }, "dependencies": { "strip-ansi": { @@ -6073,7 +6074,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -6092,8 +6093,8 @@ "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", "dev": true, "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6" + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" } }, "fs-extra": { @@ -6102,9 +6103,9 @@ "integrity": "sha512-GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA==", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "jsonfile": "4.0.0", - "universalify": "0.1.2" + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" } }, "fs-write-stream-atomic": { @@ -6113,10 +6114,10 @@ "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "iferr": "0.1.5", - "imurmurhash": "0.1.4", - "readable-stream": "2.3.6" + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" } }, "fs.realpath": { @@ -6132,8 +6133,8 @@ "dev": true, "optional": true, "requires": { - "nan": "2.10.0", - "node-pre-gyp": "0.10.0" + "nan": "^2.9.2", + "node-pre-gyp": "^0.10.0" }, "dependencies": { "abbrev": { @@ -6147,7 +6148,8 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true + "dev": true, + "optional": true }, "aproba": { "version": "1.2.0", @@ -6171,13 +6173,15 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true + "dev": true, + "optional": true }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, + "optional": true, "requires": { "balanced-match": "1.0.0", "concat-map": "0.0.1" @@ -6194,19 +6198,22 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true + "dev": true, + "optional": true }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true + "dev": true, + "optional": true }, "console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "dev": true + "dev": true, + "optional": true }, "core-util-is": { "version": "1.0.2", @@ -6337,7 +6344,8 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true + "dev": true, + "optional": true }, "ini": { "version": "1.3.5", @@ -6351,6 +6359,7 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, + "optional": true, "requires": { "number-is-nan": "1.0.1" } @@ -6367,6 +6376,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, + "optional": true, "requires": { "brace-expansion": "1.1.11" } @@ -6375,13 +6385,15 @@ "version": "0.0.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true + "dev": true, + "optional": true }, "minipass": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.2.4.tgz", "integrity": "sha512-hzXIWWet/BzWhYs2b+u7dRHlruXhwdgvlTMDKC6Cb1U7ps6Ac6yQlR39xsbjWJE377YTCtKwIXIpJ5oP+j5y8g==", "dev": true, + "optional": true, "requires": { "safe-buffer": "5.1.1", "yallist": "3.0.2" @@ -6402,6 +6414,7 @@ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "dev": true, + "optional": true, "requires": { "minimist": "0.0.8" } @@ -6490,7 +6503,8 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true + "dev": true, + "optional": true }, "object-assign": { "version": "4.1.1", @@ -6504,6 +6518,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, + "optional": true, "requires": { "wrappy": "1.0.2" } @@ -6599,7 +6614,8 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", - "dev": true + "dev": true, + "optional": true }, "safer-buffer": { "version": "2.1.2", @@ -6641,6 +6657,7 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, + "optional": true, "requires": { "code-point-at": "1.1.0", "is-fullwidth-code-point": "1.0.0", @@ -6662,6 +6679,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, + "optional": true, "requires": { "ansi-regex": "2.1.1" } @@ -6710,13 +6728,15 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true + "dev": true, + "optional": true }, "yallist": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz", "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=", - "dev": true + "dev": true, + "optional": true } } }, @@ -6774,7 +6794,7 @@ "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "dev": true, "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" }, "dependencies": { "assert-plus": { @@ -6791,12 +6811,12 @@ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "glob-base": { @@ -6805,8 +6825,8 @@ "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", "dev": true, "requires": { - "glob-parent": "2.0.0", - "is-glob": "2.0.1" + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" } }, "glob-parent": { @@ -6815,7 +6835,7 @@ "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "dev": true, "requires": { - "is-glob": "2.0.1" + "is-glob": "^2.0.0" } }, "glob-to-regexp": { @@ -6836,12 +6856,12 @@ "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" + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" }, "dependencies": { "pify": { @@ -6857,7 +6877,7 @@ "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", "integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=", "requires": { - "delegate": "3.2.0" + "delegate": "^3.1.2" } }, "graceful-fs": { @@ -6878,8 +6898,8 @@ "integrity": "sha1-iuCWJX6r59acRb4rZ8RIEk/7UXw=", "dev": true, "requires": { - "duplexer": "0.1.1", - "pify": "3.0.0" + "duplexer": "^0.1.1", + "pify": "^3.0.0" } }, "handle-thing": { @@ -6902,8 +6922,8 @@ "dev": true, "optional": true, "requires": { - "ajv": "4.11.8", - "har-schema": "1.0.5" + "ajv": "^4.9.1", + "har-schema": "^1.0.5" } }, "has": { @@ -6912,7 +6932,7 @@ "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", "dev": true, "requires": { - "function-bind": "1.1.1" + "function-bind": "^1.0.2" } }, "has-ansi": { @@ -6921,7 +6941,7 @@ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "has-flag": { @@ -6942,9 +6962,9 @@ "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "dev": true, "requires": { - "get-value": "2.0.6", - "has-values": "1.0.0", - "isobject": "3.0.1" + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" }, "dependencies": { "isobject": { @@ -6961,8 +6981,8 @@ "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "dev": true, "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" + "is-number": "^3.0.0", + "kind-of": "^4.0.0" }, "dependencies": { "is-number": { @@ -6971,7 +6991,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -6980,7 +7000,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -6991,7 +7011,7 @@ "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -7002,8 +7022,8 @@ "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", "dev": true, "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.2" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "hash-sum": { @@ -7018,8 +7038,8 @@ "integrity": "sha512-eWI5HG9Np+eHV1KQhisXWwM+4EPPYe5dFX1UZZH7k/E3JzDEazVH+VGlZi6R94ZqImq+A3D1mCEtrFIfg/E7sA==", "dev": true, "requires": { - "inherits": "2.0.3", - "minimalistic-assert": "1.0.1" + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" } }, "hawk": { @@ -7029,10 +7049,10 @@ "dev": true, "optional": true, "requires": { - "boom": "2.10.1", - "cryptiles": "2.0.5", - "hoek": "2.16.3", - "sntp": "1.0.9" + "boom": "2.x.x", + "cryptiles": "2.x.x", + "hoek": "2.x.x", + "sntp": "1.x.x" } }, "he": { @@ -7053,16 +7073,17 @@ "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", "dev": true, "requires": { - "hash.js": "1.1.5", - "minimalistic-assert": "1.0.1", - "minimalistic-crypto-utils": "1.0.1" + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" } }, "hoek": { "version": "2.16.3", "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", - "dev": true + "dev": true, + "optional": true }, "hosted-git-info": { "version": "2.6.0", @@ -7076,10 +7097,10 @@ "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", "dev": true, "requires": { - "inherits": "2.0.3", - "obuf": "1.1.2", - "readable-stream": "2.3.6", - "wbuf": "1.7.3" + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" } }, "hsl-regex": { @@ -7106,7 +7127,7 @@ "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", "dev": true, "requires": { - "whatwg-encoding": "1.0.4" + "whatwg-encoding": "^1.0.1" } }, "html-entities": { @@ -7121,13 +7142,13 @@ "integrity": "sha512-ZmgNLaTp54+HFKkONyLFEfs5dd/ZOtlquKaTnqIWFmx3Av5zG6ZPcV2d0o9XM2fXOTxxIf6eDcwzFFotke/5zA==", "dev": true, "requires": { - "camel-case": "3.0.0", - "clean-css": "4.2.1", - "commander": "2.17.1", - "he": "1.1.1", - "param-case": "2.1.1", - "relateurl": "0.2.7", - "uglify-js": "3.4.7" + "camel-case": "3.0.x", + "clean-css": "4.2.x", + "commander": "2.17.x", + "he": "1.1.x", + "param-case": "2.1.x", + "relateurl": "0.2.x", + "uglify-js": "3.4.x" }, "dependencies": { "commander": { @@ -7144,12 +7165,12 @@ "integrity": "sha1-sBq71yOsqqeze2r0SS69oD2d03s=", "dev": true, "requires": { - "html-minifier": "3.5.20", - "loader-utils": "0.2.17", - "lodash": "4.17.10", - "pretty-error": "2.1.1", - "tapable": "1.0.0", - "toposort": "1.0.7", + "html-minifier": "^3.2.3", + "loader-utils": "^0.2.16", + "lodash": "^4.17.3", + "pretty-error": "^2.0.2", + "tapable": "^1.0.0", + "toposort": "^1.0.0", "util.promisify": "1.0.0" }, "dependencies": { @@ -7159,10 +7180,10 @@ "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", "dev": true, "requires": { - "big.js": "3.2.0", - "emojis-list": "2.1.0", - "json5": "0.5.1", - "object-assign": "4.1.1" + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0", + "object-assign": "^4.0.1" } } } @@ -7181,10 +7202,10 @@ "integrity": "sha1-zHDQWln2VC5D8OaFyYLhTJJKnv4=", "dev": true, "requires": { - "domelementtype": "1.3.0", - "domhandler": "2.1.0", - "domutils": "1.1.6", - "readable-stream": "1.0.34" + "domelementtype": "1", + "domhandler": "2.1", + "domutils": "1.1", + "readable-stream": "1.0" }, "dependencies": { "domutils": { @@ -7193,7 +7214,7 @@ "integrity": "sha1-vdw94Jm5ou+sxRxiPyj0FuzFdIU=", "dev": true, "requires": { - "domelementtype": "1.3.0" + "domelementtype": "1" } }, "isarray": { @@ -7208,10 +7229,10 @@ "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", "dev": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", "isarray": "0.0.1", - "string_decoder": "0.10.31" + "string_decoder": "~0.10.x" } }, "string_decoder": { @@ -7234,10 +7255,10 @@ "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", "dev": true, "requires": { - "depd": "1.1.2", + "depd": "~1.1.2", "inherits": "2.0.3", "setprototypeof": "1.1.0", - "statuses": "1.4.0" + "statuses": ">= 1.4.0 < 2" } }, "http-parser-js": { @@ -7252,9 +7273,9 @@ "integrity": "sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g==", "dev": true, "requires": { - "eventemitter3": "3.1.0", - "follow-redirects": "1.4.1", - "requires-port": "1.0.0" + "eventemitter3": "^3.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" } }, "http-proxy-middleware": { @@ -7263,10 +7284,10 @@ "integrity": "sha512-Fs25KVMPAIIcgjMZkVHJoKg9VcXcC1C8yb9JUgeDvVXY0S/zgVIhMb+qVswDIgtJe2DfckMSY2d6TuTEutlk6Q==", "dev": true, "requires": { - "http-proxy": "1.17.0", - "is-glob": "4.0.0", - "lodash": "4.17.10", - "micromatch": "3.1.10" + "http-proxy": "^1.16.2", + "is-glob": "^4.0.0", + "lodash": "^4.17.5", + "micromatch": "^3.1.9" }, "dependencies": { "arr-diff": { @@ -7287,16 +7308,16 @@ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.3", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "dependencies": { "extend-shallow": { @@ -7305,7 +7326,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -7325,13 +7346,13 @@ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "requires": { - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "posix-character-classes": "0.1.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "define-property": { @@ -7340,7 +7361,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -7349,7 +7370,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { @@ -7358,7 +7379,7 @@ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -7367,7 +7388,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -7378,7 +7399,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -7387,7 +7408,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -7398,9 +7419,9 @@ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" } }, "kind-of": { @@ -7417,14 +7438,14 @@ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, "requires": { - "array-unique": "0.3.2", - "define-property": "1.0.0", - "expand-brackets": "2.1.4", - "extend-shallow": "2.0.1", - "fragment-cache": "0.2.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "define-property": { @@ -7433,7 +7454,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { @@ -7442,7 +7463,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -7453,10 +7474,10 @@ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" }, "dependencies": { "extend-shallow": { @@ -7465,7 +7486,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -7476,7 +7497,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -7485,7 +7506,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -7494,9 +7515,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "is-extglob": { @@ -7511,7 +7532,7 @@ "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", "dev": true, "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.1" } }, "is-number": { @@ -7520,7 +7541,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -7529,7 +7550,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -7552,19 +7573,19 @@ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.13", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" } } } @@ -7576,9 +7597,9 @@ "dev": true, "optional": true, "requires": { - "assert-plus": "0.2.0", - "jsprim": "1.4.1", - "sshpk": "1.14.1" + "assert-plus": "^0.2.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, "https-browserify": { @@ -7593,7 +7614,7 @@ "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", "dev": true, "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": ">= 2.1.2 < 3" } }, "icss-replace-symbols": { @@ -7608,7 +7629,7 @@ "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=", "dev": true, "requires": { - "postcss": "6.0.23" + "postcss": "^6.0.1" }, "dependencies": { "postcss": { @@ -7617,9 +7638,9 @@ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" } }, "source-map": { @@ -7661,7 +7682,7 @@ "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", "dev": true, "requires": { - "import-from": "2.1.0" + "import-from": "^2.1.0" } }, "import-from": { @@ -7670,7 +7691,7 @@ "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", "dev": true, "requires": { - "resolve-from": "3.0.0" + "resolve-from": "^3.0.0" }, "dependencies": { "resolve-from": { @@ -7687,8 +7708,8 @@ "integrity": "sha512-vAaZHieK9qjGo58agRBg+bhHX3hoTZU/Oa3GESWLz7t1U62fk63aHuDJJEteXoDeTCcPmUT+z38gkHPZkkmpmQ==", "dev": true, "requires": { - "pkg-dir": "2.0.0", - "resolve-cwd": "2.0.0" + "pkg-dir": "^2.0.0", + "resolve-cwd": "^2.0.0" } }, "imurmurhash": { @@ -7703,7 +7724,7 @@ "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", "dev": true, "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, "indexes-of": { @@ -7724,8 +7745,8 @@ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -7740,20 +7761,20 @@ "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", "dev": true, "requires": { - "ansi-escapes": "3.1.0", - "chalk": "2.4.1", - "cli-cursor": "2.1.0", - "cli-width": "2.2.0", - "external-editor": "2.2.0", - "figures": "2.0.0", - "lodash": "4.17.10", + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.0.4", + "figures": "^2.0.0", + "lodash": "^4.3.0", "mute-stream": "0.0.7", - "run-async": "2.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" + "run-async": "^2.2.0", + "rx-lite": "^4.0.8", + "rx-lite-aggregates": "^4.0.8", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" }, "dependencies": { "ansi-escapes": { @@ -7774,7 +7795,7 @@ "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "dev": true, "requires": { - "restore-cursor": "2.0.0" + "restore-cursor": "^2.0.0" } }, "figures": { @@ -7783,7 +7804,7 @@ "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "dev": true, "requires": { - "escape-string-regexp": "1.0.5" + "escape-string-regexp": "^1.0.5" } }, "is-fullwidth-code-point": { @@ -7798,7 +7819,7 @@ "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "dev": true, "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "restore-cursor": { @@ -7807,8 +7828,8 @@ "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "dev": true, "requires": { - "onetime": "2.0.1", - "signal-exit": "3.0.2" + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" } }, "string-width": { @@ -7817,8 +7838,8 @@ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" } }, "strip-ansi": { @@ -7827,7 +7848,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -7838,7 +7859,7 @@ "integrity": "sha1-rp+/k7mEh4eF1QqN4bNWlWBYz1w=", "dev": true, "requires": { - "meow": "3.7.0" + "meow": "^3.3.0" } }, "interpret": { @@ -7853,7 +7874,7 @@ "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "dev": true, "requires": { - "loose-envify": "1.4.0" + "loose-envify": "^1.0.0" } }, "invert-kv": { @@ -7886,7 +7907,7 @@ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-arrayish": { @@ -7901,7 +7922,7 @@ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "dev": true, "requires": { - "binary-extensions": "1.11.0" + "binary-extensions": "^1.0.0" } }, "is-buffer": { @@ -7915,7 +7936,7 @@ "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "dev": true, "requires": { - "builtin-modules": "1.1.1" + "builtin-modules": "^1.0.0" } }, "is-callable": { @@ -7930,7 +7951,7 @@ "integrity": "sha512-plgvKjQtalH2P3Gytb7L61Lmz95g2DlpzFiQyRSFew8WoJKxtKRzrZMeyRN2supblm3Psc8OQGy7Xjb6XG11jw==", "dev": true, "requires": { - "ci-info": "1.4.0" + "ci-info": "^1.3.0" } }, "is-color-stop": { @@ -7939,12 +7960,12 @@ "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", "dev": true, "requires": { - "css-color-names": "0.0.4", - "hex-color-regex": "1.1.0", - "hsl-regex": "1.0.0", - "hsla-regex": "1.0.0", - "rgb-regex": "1.0.1", - "rgba-regex": "1.0.0" + "css-color-names": "^0.0.4", + "hex-color-regex": "^1.1.0", + "hsl-regex": "^1.0.0", + "hsla-regex": "^1.0.0", + "rgb-regex": "^1.0.1", + "rgba-regex": "^1.0.0" } }, "is-data-descriptor": { @@ -7953,7 +7974,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-date-object": { @@ -7968,9 +7989,9 @@ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" }, "dependencies": { "kind-of": { @@ -7999,7 +8020,7 @@ "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", "dev": true, "requires": { - "is-primitive": "2.0.0" + "is-primitive": "^2.0.0" } }, "is-extendable": { @@ -8020,7 +8041,7 @@ "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-fullwidth-code-point": { @@ -8029,7 +8050,7 @@ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-glob": { @@ -8038,7 +8059,7 @@ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "dev": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "is-number": { @@ -8047,7 +8068,7 @@ "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-obj": { @@ -8062,7 +8083,7 @@ "integrity": "sha1-s2ExHYPG5dcmyr9eJQsCNxBvWuI=", "dev": true, "requires": { - "symbol-observable": "0.2.4" + "symbol-observable": "^0.2.2" }, "dependencies": { "symbol-observable": { @@ -8085,7 +8106,7 @@ "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", "dev": true, "requires": { - "is-path-inside": "1.0.1" + "is-path-inside": "^1.0.0" } }, "is-path-inside": { @@ -8094,7 +8115,7 @@ "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", "dev": true, "requires": { - "path-is-inside": "1.0.2" + "path-is-inside": "^1.0.1" } }, "is-plain-object": { @@ -8103,7 +8124,7 @@ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" }, "dependencies": { "isobject": { @@ -8138,7 +8159,7 @@ "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", "dev": true, "requires": { - "has": "1.0.1" + "has": "^1.0.1" } }, "is-regexp": { @@ -8165,7 +8186,7 @@ "integrity": "sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==", "dev": true, "requires": { - "html-comment-regex": "1.1.1" + "html-comment-regex": "^1.1.0" } }, "is-symbol": { @@ -8210,7 +8231,7 @@ "integrity": "sha512-5xbsG5wYADIcB+mfLsd+nst1V/D+I7EU7LEZPo2GOIMu4JzfcRs5yQoypP4avA7QtUqgxYLKBYNv4IdzBmbhdw==", "dev": true, "requires": { - "punycode": "2.1.1" + "punycode": "2.x.x" }, "dependencies": { "punycode": { @@ -8247,14 +8268,14 @@ "resolved": "https://registry.npmjs.org/iview/-/iview-3.1.3.tgz", "integrity": "sha512-ZCYJ8orejCnOkwOU2tVWGYVpXeLW1qzkuMkV+BKMvprYEO936MQHg+f4pcqFY83PX/ybTk3YnURq6/k1VJc5+w==", "requires": { - "async-validator": "1.8.2", - "deepmerge": "2.2.1", - "element-resize-detector": "1.1.14", - "js-calendar": "1.2.3", - "lodash.throttle": "4.1.1", - "popper.js": "1.14.3", - "tinycolor2": "1.4.1", - "v-click-outside-x": "3.3.0" + "async-validator": "^1.8.2", + "deepmerge": "^2.1.0", + "element-resize-detector": "^1.1.14", + "js-calendar": "^1.2.3", + "lodash.throttle": "^4.1.1", + "popper.js": "^1.14.1", + "tinycolor2": "^1.4.1", + "v-click-outside-x": "^3.0.0" }, "dependencies": { "deepmerge": { @@ -8269,9 +8290,9 @@ "resolved": "https://registry.npmjs.org/iview-area/-/iview-area-1.5.17.tgz", "integrity": "sha512-eIxN7oJRZlPH7GWzVfNIGSKkIdXnPYg6W5A5AttitOW4ly2yFiFKx2GfSEl8p2JViRByvvfeUxEL8XCjRTyJ/w==", "requires": { - "area-data": "1.0.0", - "iview": "2.13.1", - "vue": "2.5.16" + "area-data": "^1.0.0", + "iview": "^2.6.0", + "vue": "^2.5.2" }, "dependencies": { "deepmerge": { @@ -8284,13 +8305,13 @@ "resolved": "https://registry.npmjs.org/iview/-/iview-2.13.1.tgz", "integrity": "sha512-7XwHnEfMnLuvKbzFTnbMPRKEwArhRu1HDzhc0WVCwQhqrhc/JqxJJuv9r9ndzfhm7ARGcsKSF/lxtnwadmLqTg==", "requires": { - "async-validator": "1.8.2", - "deepmerge": "2.1.0", - "element-resize-detector": "1.1.14", - "js-calendar": "1.2.3", - "lodash.throttle": "4.1.1", - "popper.js": "1.14.3", - "tinycolor2": "1.4.1" + "async-validator": "^1.8.2", + "deepmerge": "^2.1.0", + "element-resize-detector": "^1.1.14", + "js-calendar": "^1.2.3", + "lodash.throttle": "^4.1.1", + "popper.js": "^1.14.1", + "tinycolor2": "^1.4.1" } } } @@ -8313,10 +8334,10 @@ "integrity": "sha512-k4HLI1rZQjlU+EC682RlQ6oZvLrE5SCh3brseQc24vbZTxzT/k/3urar5QMCVgjadmSO7lECeGdc6YxnM3yEGg==", "dev": true, "requires": { - "chalk": "2.4.1", - "jest-get-type": "21.2.0", - "leven": "2.1.0", - "pretty-format": "21.2.1" + "chalk": "^2.0.1", + "jest-get-type": "^21.2.0", + "leven": "^2.1.0", + "pretty-format": "^21.2.1" } }, "joi": { @@ -8325,9 +8346,9 @@ "integrity": "sha512-E4QB0yRgEa6ZZKcSHJuBC+QeAwy+akCG0Bsa9edLqljyhlr+GuGDSmXYW1q7sj/FuAPy+ECUI3evVtK52tVfwg==", "dev": true, "requires": { - "hoek": "5.0.4", - "isemail": "3.1.3", - "topo": "3.0.0" + "hoek": "5.x.x", + "isemail": "3.x.x", + "topo": "3.x.x" }, "dependencies": { "hoek": { @@ -8360,7 +8381,7 @@ "integrity": "sha1-NiITz4YPRo8BJfxslqvBdCUx+Ug=", "dev": true, "requires": { - "easy-stack": "1.0.0" + "easy-stack": "^1.0.0" } }, "js-tokens": { @@ -8375,8 +8396,8 @@ "integrity": "sha512-saJstZWv7oNeOyBh3+Dx1qWzhW0+e6/8eDzo7p5rDFqxntSztloLtuKu+Ejhtq82jsilwOIZYsCz+lIjthg1Hw==", "dev": true, "requires": { - "argparse": "1.0.10", - "esprima": "4.0.0" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, "jsbn": { @@ -8392,32 +8413,32 @@ "integrity": "sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw==", "dev": true, "requires": { - "abab": "2.0.0", - "acorn": "5.7.1", - "acorn-globals": "4.1.0", - "array-equal": "1.0.0", - "cssom": "0.3.4", - "cssstyle": "1.1.1", - "data-urls": "1.0.1", - "domexception": "1.0.1", - "escodegen": "1.11.0", - "html-encoding-sniffer": "1.0.2", - "left-pad": "1.3.0", - "nwsapi": "2.0.8", + "abab": "^2.0.0", + "acorn": "^5.5.3", + "acorn-globals": "^4.1.0", + "array-equal": "^1.0.0", + "cssom": ">= 0.3.2 < 0.4.0", + "cssstyle": "^1.0.0", + "data-urls": "^1.0.0", + "domexception": "^1.0.1", + "escodegen": "^1.9.1", + "html-encoding-sniffer": "^1.0.2", + "left-pad": "^1.3.0", + "nwsapi": "^2.0.7", "parse5": "4.0.0", - "pn": "1.1.0", - "request": "2.88.0", - "request-promise-native": "1.0.5", - "sax": "1.2.4", - "symbol-tree": "3.2.2", - "tough-cookie": "2.3.4", - "w3c-hr-time": "1.0.1", - "webidl-conversions": "4.0.2", - "whatwg-encoding": "1.0.4", - "whatwg-mimetype": "2.1.0", - "whatwg-url": "6.5.0", - "ws": "5.2.2", - "xml-name-validator": "3.0.0" + "pn": "^1.1.0", + "request": "^2.87.0", + "request-promise-native": "^1.0.5", + "sax": "^1.2.4", + "symbol-tree": "^3.2.2", + "tough-cookie": "^2.3.4", + "w3c-hr-time": "^1.0.1", + "webidl-conversions": "^4.0.2", + "whatwg-encoding": "^1.0.3", + "whatwg-mimetype": "^2.1.0", + "whatwg-url": "^6.4.1", + "ws": "^5.2.0", + "xml-name-validator": "^3.0.0" }, "dependencies": { "ajv": { @@ -8426,10 +8447,10 @@ "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "dev": true, "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.1.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" } }, "assert-plus": { @@ -8462,9 +8483,9 @@ "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", "dev": true, "requires": { - "asynckit": "0.4.0", + "asynckit": "^0.4.0", "combined-stream": "1.0.6", - "mime-types": "2.1.19" + "mime-types": "^2.1.12" } }, "har-schema": { @@ -8479,8 +8500,8 @@ "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==", "dev": true, "requires": { - "ajv": "5.5.2", - "har-schema": "2.0.0" + "ajv": "^5.3.0", + "har-schema": "^2.0.0" } }, "http-signature": { @@ -8489,9 +8510,9 @@ "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "dev": true, "requires": { - "assert-plus": "1.0.0", - "jsprim": "1.4.1", - "sshpk": "1.14.1" + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, "mime-db": { @@ -8506,7 +8527,7 @@ "integrity": "sha512-P1tKYHVSZ6uFo26mtnve4HQFE3koh1UWVkp8YUC+ESBHe945xWSoXuHHiGarDqcEZ+whpCDnlNw5LON0kLo+sw==", "dev": true, "requires": { - "mime-db": "1.35.0" + "mime-db": "~1.35.0" } }, "oauth-sign": { @@ -8533,26 +8554,26 @@ "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.0", - "http-signature": "1.2.0", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.19", - "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" + "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.0", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "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" }, "dependencies": { "tough-cookie": { @@ -8561,8 +8582,8 @@ "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", "dev": true, "requires": { - "psl": "1.1.29", - "punycode": "1.4.1" + "psl": "^1.1.24", + "punycode": "^1.4.1" } } } @@ -8612,7 +8633,7 @@ "dev": true, "optional": true, "requires": { - "jsonify": "0.0.0" + "jsonify": "~0.0.0" } }, "json-stable-stringify-without-jsonify": { @@ -8645,7 +8666,7 @@ "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", "dev": true, "requires": { - "graceful-fs": "4.1.11" + "graceful-fs": "^4.1.6" } }, "jsonify": { @@ -8686,7 +8707,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } }, "launch-editor": { @@ -8695,8 +8716,8 @@ "integrity": "sha512-On+V7K2uZK6wK7x691ycSUbLD/FyKKelArkbaAMSSJU8JmqmhwN2+mnJDNINuJWSrh2L0kDk+ZQtbC/gOWUwLw==", "dev": true, "requires": { - "chalk": "2.4.1", - "shell-quote": "1.6.1" + "chalk": "^2.3.0", + "shell-quote": "^1.6.1" } }, "launch-editor-middleware": { @@ -8705,7 +8726,7 @@ "integrity": "sha512-s0UO2/gEGiCgei3/2UN3SMuUj1phjQN8lcpnvgLSz26fAzNWPQ6Nf/kF5IFClnfU2ehp6LrmKdMU/beveO+2jg==", "dev": true, "requires": { - "launch-editor": "2.2.1" + "launch-editor": "^2.2.1" } }, "lcid": { @@ -8714,7 +8735,7 @@ "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "dev": true, "requires": { - "invert-kv": "1.0.0" + "invert-kv": "^1.0.0" } }, "left-pad": { @@ -8729,14 +8750,14 @@ "integrity": "sha512-KPdIJKWcEAb02TuJtaLrhue0krtRLoRoo7x6BNJIBelO00t/CCdJQUnHW5V34OnHMWzIktSalJxRO+FvytQlCQ==", "dev": true, "requires": { - "errno": "0.1.7", - "graceful-fs": "4.1.11", - "image-size": "0.5.5", - "mime": "1.6.0", - "mkdirp": "0.5.1", - "promise": "7.3.1", + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "mime": "^1.2.11", + "mkdirp": "^0.5.0", + "promise": "^7.1.1", "request": "2.81.0", - "source-map": "0.5.7" + "source-map": "^0.5.3" }, "dependencies": { "mime": { @@ -8754,9 +8775,9 @@ "integrity": "sha512-KNTsgCE9tMOM70+ddxp9yyt9iHqgmSs0yTZc5XH5Wo+g80RWRIYNqE58QJKm/yMud5wZEvz50ugRDuzVIkyahg==", "dev": true, "requires": { - "clone": "2.1.1", - "loader-utils": "1.1.0", - "pify": "3.0.0" + "clone": "^2.1.1", + "loader-utils": "^1.1.0", + "pify": "^3.0.0" }, "dependencies": { "clone": { @@ -8779,8 +8800,8 @@ "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "dev": true, "requires": { - "prelude-ls": "1.1.2", - "type-check": "0.3.2" + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" } }, "lint-staged": { @@ -8789,26 +8810,26 @@ "integrity": "sha512-M/7bwLdXbeG7ZNLcasGeLMBDg60/w6obj3KOtINwJyxAxb53XGY0yH5FSZlWklEzuVbTtqtIfAajh6jYIN90AA==", "dev": true, "requires": { - "app-root-path": "2.0.1", - "chalk": "2.4.1", - "commander": "2.11.0", - "cosmiconfig": "4.0.0", - "debug": "3.1.0", - "dedent": "0.7.0", - "execa": "0.8.0", - "find-parent-dir": "0.3.0", - "is-glob": "4.0.0", - "jest-validate": "21.2.1", - "listr": "0.13.0", - "lodash": "4.17.10", - "log-symbols": "2.2.0", - "minimatch": "3.0.4", - "npm-which": "3.0.1", - "p-map": "1.2.0", - "path-is-inside": "1.0.2", - "pify": "3.0.0", + "app-root-path": "^2.0.0", + "chalk": "^2.1.0", + "commander": "^2.11.0", + "cosmiconfig": "^4.0.0", + "debug": "^3.1.0", + "dedent": "^0.7.0", + "execa": "^0.8.0", + "find-parent-dir": "^0.3.0", + "is-glob": "^4.0.0", + "jest-validate": "^21.1.0", + "listr": "^0.13.0", + "lodash": "^4.17.4", + "log-symbols": "^2.0.0", + "minimatch": "^3.0.0", + "npm-which": "^3.0.1", + "p-map": "^1.1.1", + "path-is-inside": "^1.0.2", + "pify": "^3.0.0", "staged-git-files": "1.0.0", - "stringify-object": "3.2.2" + "stringify-object": "^3.2.0" }, "dependencies": { "ansi-styles": { @@ -8823,10 +8844,10 @@ "integrity": "sha512-6e5vDdrXZD+t5v0L8CrurPeybg4Fmf+FCSYxXKYVAqLUtyCSbuyqE059d0kDthTNRzKVjL7QMgNpEUlsoYH3iQ==", "dev": true, "requires": { - "is-directory": "0.3.1", - "js-yaml": "3.11.0", - "parse-json": "4.0.0", - "require-from-string": "2.0.2" + "is-directory": "^0.3.1", + "js-yaml": "^3.9.0", + "parse-json": "^4.0.0", + "require-from-string": "^2.0.1" } }, "execa": { @@ -8835,13 +8856,13 @@ "integrity": "sha1-2NdrvBtVIX7RkP1t1J08d07PyNo=", "dev": true, "requires": { - "cross-spawn": "5.1.0", - "get-stream": "3.0.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" } }, "is-extglob": { @@ -8856,7 +8877,7 @@ "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", "dev": true, "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.1" } }, "listr": { @@ -8865,23 +8886,23 @@ "integrity": "sha1-ILsLowuuZg7oTMBQPfS+PVYjiH0=", "dev": true, "requires": { - "chalk": "1.1.3", - "cli-truncate": "0.2.1", - "figures": "1.7.0", - "indent-string": "2.1.0", - "is-observable": "0.2.0", - "is-promise": "2.1.0", - "is-stream": "1.1.0", - "listr-silent-renderer": "1.1.1", - "listr-update-renderer": "0.4.0", - "listr-verbose-renderer": "0.4.1", - "log-symbols": "1.0.2", - "log-update": "1.0.2", - "ora": "0.2.3", - "p-map": "1.2.0", - "rxjs": "5.5.10", - "stream-to-observable": "0.2.0", - "strip-ansi": "3.0.1" + "chalk": "^1.1.3", + "cli-truncate": "^0.2.1", + "figures": "^1.7.0", + "indent-string": "^2.1.0", + "is-observable": "^0.2.0", + "is-promise": "^2.1.0", + "is-stream": "^1.1.0", + "listr-silent-renderer": "^1.1.1", + "listr-update-renderer": "^0.4.0", + "listr-verbose-renderer": "^0.4.0", + "log-symbols": "^1.0.2", + "log-update": "^1.0.2", + "ora": "^0.2.3", + "p-map": "^1.1.1", + "rxjs": "^5.4.2", + "stream-to-observable": "^0.2.0", + "strip-ansi": "^3.0.1" }, "dependencies": { "chalk": { @@ -8890,11 +8911,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } }, "log-symbols": { @@ -8903,7 +8924,7 @@ "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", "dev": true, "requires": { - "chalk": "1.1.3" + "chalk": "^1.0.0" } } } @@ -8914,14 +8935,14 @@ "integrity": "sha1-NE2YDaLKLosUW6MFkI8yrj9MyKc=", "dev": true, "requires": { - "chalk": "1.1.3", - "cli-truncate": "0.2.1", - "elegant-spinner": "1.0.1", - "figures": "1.7.0", - "indent-string": "3.2.0", - "log-symbols": "1.0.2", - "log-update": "1.0.2", - "strip-ansi": "3.0.1" + "chalk": "^1.1.3", + "cli-truncate": "^0.2.1", + "elegant-spinner": "^1.0.1", + "figures": "^1.7.0", + "indent-string": "^3.0.0", + "log-symbols": "^1.0.2", + "log-update": "^1.0.2", + "strip-ansi": "^3.0.1" }, "dependencies": { "chalk": { @@ -8930,11 +8951,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } }, "indent-string": { @@ -8949,7 +8970,7 @@ "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", "dev": true, "requires": { - "chalk": "1.1.3" + "chalk": "^1.0.0" } } } @@ -8960,7 +8981,7 @@ "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", "dev": true, "requires": { - "chalk": "2.4.1" + "chalk": "^2.0.1" } }, "parse-json": { @@ -8969,8 +8990,8 @@ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { - "error-ex": "1.3.1", - "json-parse-better-errors": "1.0.2" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" } }, "require-from-string": { @@ -8985,7 +9006,7 @@ "integrity": "sha1-WdbqOT2HwsDdrBCqDVYbxrpvDhA=", "dev": true, "requires": { - "any-observable": "0.2.0" + "any-observable": "^0.2.0" } }, "supports-color": { @@ -9008,10 +9029,10 @@ "integrity": "sha1-ggb0z21S3cWCfl/RSYng6WWTOjU=", "dev": true, "requires": { - "chalk": "1.1.3", - "cli-cursor": "1.0.2", - "date-fns": "1.29.0", - "figures": "1.7.0" + "chalk": "^1.1.3", + "cli-cursor": "^1.0.2", + "date-fns": "^1.27.2", + "figures": "^1.7.0" }, "dependencies": { "ansi-styles": { @@ -9026,11 +9047,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } }, "supports-color": { @@ -9047,11 +9068,11 @@ "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "strip-bom": "2.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" }, "dependencies": { "pify": { @@ -9066,7 +9087,7 @@ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "dev": true, "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.0" } } } @@ -9077,7 +9098,7 @@ "integrity": "sha1-VuC/CL2XCLJqdltoUJhAyN7J/bw=", "dev": true, "requires": { - "find-cache-dir": "0.1.1", + "find-cache-dir": "^0.1.1", "mkdirp": "0.5.1" }, "dependencies": { @@ -9087,9 +9108,9 @@ "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", "dev": true, "requires": { - "commondir": "1.0.1", - "mkdirp": "0.5.1", - "pkg-dir": "1.0.0" + "commondir": "^1.0.1", + "mkdirp": "^0.5.1", + "pkg-dir": "^1.0.0" } }, "find-up": { @@ -9098,8 +9119,8 @@ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "dev": true, "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "path-exists": { @@ -9108,7 +9129,7 @@ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "dev": true, "requires": { - "pinkie-promise": "2.0.1" + "pinkie-promise": "^2.0.0" } }, "pkg-dir": { @@ -9117,7 +9138,7 @@ "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", "dev": true, "requires": { - "find-up": "1.1.2" + "find-up": "^1.0.0" } } } @@ -9134,9 +9155,9 @@ "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", "dev": true, "requires": { - "big.js": "3.2.0", - "emojis-list": "2.1.0", - "json5": "0.5.1" + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0" } }, "locate-path": { @@ -9145,8 +9166,8 @@ "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" } }, "lodash": { @@ -9214,7 +9235,7 @@ "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", "dev": true, "requires": { - "chalk": "2.4.1" + "chalk": "^2.0.1" } }, "log-update": { @@ -9223,8 +9244,8 @@ "integrity": "sha1-GZKfZMQJPS0ucHWh2tivWcKWuNE=", "dev": true, "requires": { - "ansi-escapes": "1.4.0", - "cli-cursor": "1.0.2" + "ansi-escapes": "^1.0.0", + "cli-cursor": "^1.0.2" } }, "loglevel": { @@ -9239,8 +9260,8 @@ "integrity": "sha512-V/73qkPuJmx4BcBF19xPBr+0ZRVBhc4POxvZTZdMeXpJ4NItXSJ/MSwuFT0kQJlCbXvdlZoQQ/418bS1y9Jh6A==", "dev": true, "requires": { - "es6-symbol": "3.1.1", - "object.assign": "4.1.0" + "es6-symbol": "^3.1.1", + "object.assign": "^4.1.0" } }, "long": { @@ -9255,7 +9276,7 @@ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "dev": true, "requires": { - "js-tokens": "3.0.2" + "js-tokens": "^3.0.0 || ^4.0.0" } }, "loud-rejection": { @@ -9264,8 +9285,8 @@ "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", "dev": true, "requires": { - "currently-unhandled": "0.4.1", - "signal-exit": "3.0.2" + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" } }, "lower-case": { @@ -9280,8 +9301,8 @@ "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", "dev": true, "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, "make-dir": { @@ -9290,7 +9311,7 @@ "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", "dev": true, "requires": { - "pify": "3.0.0" + "pify": "^3.0.0" } }, "mamacro": { @@ -9317,7 +9338,7 @@ "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "dev": true, "requires": { - "object-visit": "1.0.1" + "object-visit": "^1.0.0" } }, "marked": { @@ -9337,8 +9358,8 @@ "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", "dev": true, "requires": { - "hash-base": "3.0.4", - "inherits": "2.0.3" + "hash-base": "^3.0.0", + "inherits": "^2.0.1" } }, "mdn-data": { @@ -9359,7 +9380,7 @@ "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "dev": true, "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "memory-fs": { @@ -9368,8 +9389,8 @@ "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", "dev": true, "requires": { - "errno": "0.1.7", - "readable-stream": "2.3.6" + "errno": "^0.1.3", + "readable-stream": "^2.0.1" } }, "meow": { @@ -9378,16 +9399,16 @@ "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", "dev": true, "requires": { - "camelcase-keys": "2.1.0", - "decamelize": "1.2.0", - "loud-rejection": "1.6.0", - "map-obj": "1.0.1", - "minimist": "1.2.0", - "normalize-package-data": "2.4.0", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "redent": "1.0.0", - "trim-newlines": "1.0.0" + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" }, "dependencies": { "minimist": { @@ -9410,7 +9431,7 @@ "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", "dev": true, "requires": { - "source-map": "0.6.1" + "source-map": "^0.6.1" }, "dependencies": { "source-map": { @@ -9439,19 +9460,19 @@ "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", "dev": true, "requires": { - "arr-diff": "2.0.0", - "array-unique": "0.2.1", - "braces": "1.8.5", - "expand-brackets": "0.1.5", - "extglob": "0.3.2", - "filename-regex": "2.0.1", - "is-extglob": "1.0.0", - "is-glob": "2.0.1", - "kind-of": "3.2.2", - "normalize-path": "2.1.1", - "object.omit": "2.0.1", - "parse-glob": "3.0.4", - "regex-cache": "0.4.4" + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" } }, "miller-rabin": { @@ -9460,8 +9481,8 @@ "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", "dev": true, "requires": { - "bn.js": "4.11.8", - "brorand": "1.1.0" + "bn.js": "^4.0.0", + "brorand": "^1.0.1" } }, "mime": { @@ -9482,7 +9503,7 @@ "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", "dev": true, "requires": { - "mime-db": "1.33.0" + "mime-db": "~1.33.0" } }, "mimic-fn": { @@ -9497,9 +9518,9 @@ "integrity": "sha512-ots7URQH4wccfJq9Ssrzu2+qupbncAce4TmTzunI9CIwlQMp2XI+WNUw6xWF6MMAGAm1cbUVINrSjATaVMyKXg==", "dev": true, "requires": { - "loader-utils": "1.1.0", - "schema-utils": "1.0.0", - "webpack-sources": "1.1.0" + "loader-utils": "^1.1.0", + "schema-utils": "^1.0.0", + "webpack-sources": "^1.1.0" }, "dependencies": { "ajv": { @@ -9508,10 +9529,10 @@ "integrity": "sha512-LqZ9wY+fx3UMiiPd741yB2pj3hhil+hQc8taf4o2QGRFpWgZ2V5C8HA165DY9sS3fJwsk7uT7ZlFEyC3Ig3lLg==", "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" + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, "ajv-keywords": { @@ -9538,9 +9559,9 @@ "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", "dev": true, "requires": { - "ajv": "6.5.3", - "ajv-errors": "1.0.0", - "ajv-keywords": "3.2.0" + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" } } } @@ -9563,7 +9584,7 @@ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -9578,16 +9599,16 @@ "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==", "dev": true, "requires": { - "concat-stream": "1.6.2", - "duplexify": "3.6.0", - "end-of-stream": "1.4.1", - "flush-write-stream": "1.0.3", - "from2": "2.3.0", - "parallel-transform": "1.1.0", - "pump": "2.0.1", - "pumpify": "1.5.1", - "stream-each": "1.2.3", - "through2": "2.0.3" + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^2.0.1", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" } }, "mixin-deep": { @@ -9596,8 +9617,8 @@ "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", "dev": true, "requires": { - "for-in": "1.0.2", - "is-extendable": "1.0.1" + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { @@ -9606,7 +9627,7 @@ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -9653,23 +9674,23 @@ "integrity": "sha512-2ezbW0h5cYWr874F/hzytQCqINxk+GVelMY4xWTSHwwH1LrPAOzjlUljZ+/PhpaP6QeqYbL5x5vK/bnaXqkfEw==", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "chalk": "2.4.1", - "chokidar": "2.0.4", - "glob-parent": "3.1.0", - "globby": "7.1.1", - "interpret": "1.1.0", - "is-glob": "4.0.0", - "loader-utils": "1.1.0", - "lodash": "4.17.10", - "memory-fs": "0.4.1", - "nodent-runtime": "3.2.1", - "normalize-path": "2.1.1", - "progress": "2.0.0", - "source-map-support": "0.5.9", - "strip-ansi": "4.0.0", - "toposort": "1.0.7", - "yargs": "11.1.0" + "babel-runtime": "^6.18.0", + "chalk": "^2.3.0", + "chokidar": "^2.0.2", + "glob-parent": "^3.1.0", + "globby": "^7.1.1", + "interpret": "^1.0.1", + "is-glob": "^4.0.0", + "loader-utils": "^1.1.0", + "lodash": "^4.3.0", + "memory-fs": "^0.4.1", + "nodent-runtime": "^3.0.3", + "normalize-path": "^2.0.1", + "progress": "^2.0.0", + "source-map-support": "^0.5.0", + "strip-ansi": "^4.0.0", + "toposort": "^1.0.0", + "yargs": "^11.0.0" }, "dependencies": { "ansi-regex": { @@ -9684,8 +9705,8 @@ "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "dev": true, "requires": { - "is-glob": "3.1.0", - "path-dirname": "1.0.2" + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" }, "dependencies": { "is-glob": { @@ -9694,7 +9715,7 @@ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "dev": true, "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.0" } } } @@ -9705,12 +9726,12 @@ "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=", "dev": true, "requires": { - "array-union": "1.0.2", - "dir-glob": "2.0.0", - "glob": "7.1.2", - "ignore": "3.3.8", - "pify": "3.0.0", - "slash": "1.0.0" + "array-union": "^1.0.1", + "dir-glob": "^2.0.0", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" } }, "is-extglob": { @@ -9725,7 +9746,7 @@ "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", "dev": true, "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.1" } }, "strip-ansi": { @@ -9734,7 +9755,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -9745,7 +9766,7 @@ "integrity": "sha1-0jTzwnJWOXVk8slVFC6JGQlTcgk=", "dev": true, "requires": { - "commander": "2.11.0" + "commander": "*" } }, "move-concurrently": { @@ -9754,12 +9775,12 @@ "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", "dev": true, "requires": { - "aproba": "1.2.0", - "copy-concurrently": "1.0.5", - "fs-write-stream-atomic": "1.0.10", - "mkdirp": "0.5.1", - "rimraf": "2.6.2", - "run-queue": "1.0.3" + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" } }, "ms": { @@ -9773,8 +9794,8 @@ "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", "dev": true, "requires": { - "dns-packet": "1.3.1", - "thunky": "1.0.2" + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" } }, "multicast-dns-service-types": { @@ -9802,17 +9823,17 @@ "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", "dev": true, "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "fragment-cache": "0.2.1", - "is-windows": "1.0.2", - "kind-of": "6.0.2", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "arr-diff": { @@ -9871,7 +9892,7 @@ "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", "dev": true, "requires": { - "lower-case": "1.1.4" + "lower-case": "^1.1.1" } }, "node-forge": { @@ -9897,28 +9918,28 @@ "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==", "dev": true, "requires": { - "assert": "1.4.1", - "browserify-zlib": "0.2.0", - "buffer": "4.9.1", - "console-browserify": "1.1.0", - "constants-browserify": "1.0.0", - "crypto-browserify": "3.12.0", - "domain-browser": "1.2.0", - "events": "1.1.1", - "https-browserify": "1.0.0", - "os-browserify": "0.3.0", + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^1.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", "path-browserify": "0.0.0", - "process": "0.11.10", - "punycode": "1.4.1", - "querystring-es3": "0.2.1", - "readable-stream": "2.3.6", - "stream-browserify": "2.0.1", - "stream-http": "2.8.3", - "string_decoder": "1.1.1", - "timers-browserify": "2.0.10", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", "tty-browserify": "0.0.0", - "url": "0.11.0", - "util": "0.10.4", + "url": "^0.11.0", + "util": "^0.10.3", "vm-browserify": "0.0.4" } }, @@ -9928,7 +9949,7 @@ "integrity": "sha512-CaViu+2FqTNYOYNihXa5uPS/zry92I3vPU4nCB6JB3OeZ2UGtOpF5gRwuN4+m3hbEcL47bOXyun1jX2iC+3uEQ==", "dev": true, "requires": { - "semver": "5.5.0" + "semver": "^5.3.0" } }, "nodent-runtime": { @@ -9943,10 +9964,10 @@ "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", "dev": true, "requires": { - "hosted-git-info": "2.6.0", - "is-builtin-module": "1.0.0", - "semver": "5.5.0", - "validate-npm-package-license": "3.0.3" + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, "normalize-path": { @@ -9955,7 +9976,7 @@ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "dev": true, "requires": { - "remove-trailing-separator": "1.1.0" + "remove-trailing-separator": "^1.0.1" } }, "normalize-range": { @@ -9976,7 +9997,7 @@ "integrity": "sha512-IFsj0R9C7ZdR5cP+ET342q77uSRdtWOlWpih5eC+lu29tIDbNEgDbzgVJ5UFvYHWhxDZ5TFkJafFioO0pPQjCw==", "dev": true, "requires": { - "which": "1.3.0" + "which": "^1.2.10" } }, "npm-run-path": { @@ -9985,7 +10006,7 @@ "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "requires": { - "path-key": "2.0.1" + "path-key": "^2.0.0" } }, "npm-which": { @@ -9994,9 +10015,9 @@ "integrity": "sha1-kiXybsOihcIJyuZ8OxGmtKtxQKo=", "dev": true, "requires": { - "commander": "2.11.0", - "npm-path": "2.0.4", - "which": "1.3.0" + "commander": "^2.9.0", + "npm-path": "^2.0.2", + "which": "^1.2.10" } }, "nth-check": { @@ -10005,7 +10026,7 @@ "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=", "dev": true, "requires": { - "boolbase": "1.0.0" + "boolbase": "~1.0.0" } }, "num2fraction": { @@ -10045,9 +10066,9 @@ "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "dev": true, "requires": { - "copy-descriptor": "0.1.1", - "define-property": "0.2.5", - "kind-of": "3.2.2" + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" }, "dependencies": { "define-property": { @@ -10056,7 +10077,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -10079,7 +10100,7 @@ "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.0" }, "dependencies": { "isobject": { @@ -10096,10 +10117,10 @@ "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", "dev": true, "requires": { - "define-properties": "1.1.3", - "function-bind": "1.1.1", - "has-symbols": "1.0.0", - "object-keys": "1.0.12" + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" } }, "object.getownpropertydescriptors": { @@ -10108,8 +10129,8 @@ "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", "dev": true, "requires": { - "define-properties": "1.1.3", - "es-abstract": "1.12.0" + "define-properties": "^1.1.2", + "es-abstract": "^1.5.1" } }, "object.omit": { @@ -10118,8 +10139,8 @@ "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", "dev": true, "requires": { - "for-own": "0.1.5", - "is-extendable": "0.1.1" + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" } }, "object.pick": { @@ -10128,7 +10149,7 @@ "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" }, "dependencies": { "isobject": { @@ -10145,10 +10166,10 @@ "integrity": "sha1-5STaCbT2b/Bd9FdUbscqyZ8TBpo=", "dev": true, "requires": { - "define-properties": "1.1.3", - "es-abstract": "1.12.0", - "function-bind": "1.1.1", - "has": "1.0.1" + "define-properties": "^1.1.2", + "es-abstract": "^1.6.1", + "function-bind": "^1.1.0", + "has": "^1.0.1" } }, "obuf": { @@ -10178,7 +10199,7 @@ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "onetime": { @@ -10199,7 +10220,7 @@ "integrity": "sha512-bYJHo/LOmoTd+pfiYhfZDnf9zekVJrY+cnS2a5F2x+w5ppvTqObojTP7WiFG+kVZs9Inw+qQ/lw7TroWwhdd2g==", "dev": true, "requires": { - "is-wsl": "1.1.0" + "is-wsl": "^1.1.0" } }, "optionator": { @@ -10208,12 +10229,12 @@ "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", "dev": true, "requires": { - "deep-is": "0.1.3", - "fast-levenshtein": "2.0.6", - "levn": "0.3.0", - "prelude-ls": "1.1.2", - "type-check": "0.3.2", - "wordwrap": "1.0.0" + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.4", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "wordwrap": "~1.0.0" } }, "ora": { @@ -10222,10 +10243,10 @@ "integrity": "sha1-N1J9Igrc1Tw5tzVx11QVbV22V6Q=", "dev": true, "requires": { - "chalk": "1.1.3", - "cli-cursor": "1.0.2", - "cli-spinners": "0.1.2", - "object-assign": "4.1.1" + "chalk": "^1.1.1", + "cli-cursor": "^1.0.2", + "cli-spinners": "^0.1.2", + "object-assign": "^4.0.1" }, "dependencies": { "ansi-styles": { @@ -10240,11 +10261,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } }, "supports-color": { @@ -10261,7 +10282,7 @@ "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", "dev": true, "requires": { - "url-parse": "1.4.3" + "url-parse": "^1.4.3" } }, "os-browserify": { @@ -10276,9 +10297,9 @@ "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "dev": true, "requires": { - "execa": "0.7.0", - "lcid": "1.0.0", - "mem": "1.1.0" + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" }, "dependencies": { "execa": { @@ -10287,13 +10308,13 @@ "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "dev": true, "requires": { - "cross-spawn": "5.1.0", - "get-stream": "3.0.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" } } } @@ -10316,7 +10337,7 @@ "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", "dev": true, "requires": { - "p-try": "1.0.0" + "p-try": "^1.0.0" } }, "p-locate": { @@ -10325,7 +10346,7 @@ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "requires": { - "p-limit": "1.2.0" + "p-limit": "^1.1.0" } }, "p-map": { @@ -10352,9 +10373,9 @@ "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", "dev": true, "requires": { - "cyclist": "0.2.2", - "inherits": "2.0.3", - "readable-stream": "2.3.6" + "cyclist": "~0.2.2", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" } }, "param-case": { @@ -10363,7 +10384,7 @@ "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", "dev": true, "requires": { - "no-case": "2.3.2" + "no-case": "^2.2.0" } }, "parse-asn1": { @@ -10372,11 +10393,11 @@ "integrity": "sha512-KPx7flKXg775zZpnp9SxJlz00gTd4BmJ2yJufSc44gMCRrRQ7NSzAcSJQfifuOLgW6bEi+ftrALtsgALeB2Adw==", "dev": true, "requires": { - "asn1.js": "4.10.1", - "browserify-aes": "1.2.0", - "create-hash": "1.2.0", - "evp_bytestokey": "1.0.3", - "pbkdf2": "3.0.16" + "asn1.js": "^4.0.0", + "browserify-aes": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3" } }, "parse-glob": { @@ -10385,10 +10406,10 @@ "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", "dev": true, "requires": { - "glob-base": "0.3.0", - "is-dotfile": "1.0.3", - "is-extglob": "1.0.0", - "is-glob": "2.0.1" + "glob-base": "^0.3.0", + "is-dotfile": "^1.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.0" } }, "parse-json": { @@ -10397,7 +10418,7 @@ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "dev": true, "requires": { - "error-ex": "1.3.1" + "error-ex": "^1.2.0" } }, "parse5": { @@ -10472,7 +10493,7 @@ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, "requires": { - "pify": "3.0.0" + "pify": "^3.0.0" } }, "pathval": { @@ -10487,11 +10508,11 @@ "integrity": "sha512-y4CXP3thSxqf7c0qmOF+9UeOTrifiVTIM+u7NWlq+PRsHbr7r7dpCmvzrZxa96JJUNi0Y5w9VqG5ZNeCVMoDcA==", "dev": true, "requires": { - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "ripemd160": "2.0.2", - "safe-buffer": "5.1.2", - "sha.js": "2.4.11" + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" } }, "performance-now": { @@ -10519,7 +10540,7 @@ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } }, "pkg-dir": { @@ -10528,7 +10549,7 @@ "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", "dev": true, "requires": { - "find-up": "2.1.0" + "find-up": "^2.1.0" } }, "pluralize": { @@ -10554,9 +10575,9 @@ "integrity": "sha512-syFcRIRzVI1BoEFOCaAiizwDolh1S1YXSodsVhncbhjzjZQulhczNRbqnUl9N31Q4dKGOXsNDqxC2BWBgSMqeQ==", "dev": true, "requires": { - "async": "1.5.2", - "debug": "2.6.9", - "mkdirp": "0.5.1" + "async": "^1.5.2", + "debug": "^2.2.0", + "mkdirp": "0.5.x" }, "dependencies": { "debug": { @@ -10582,9 +10603,9 @@ "integrity": "sha512-fmaUY5370keLUTx+CnwRxtGiuFTcNBLQBqr1oE3WZ/euIYmGAo0OAgOhVJ3ByDnVmOR3PK+0V9VebzfjRIUcqw==", "dev": true, "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" }, "dependencies": { "source-map": { @@ -10601,10 +10622,10 @@ "integrity": "sha1-PSQXG79udinUIqQ26/5t2VEfQzA=", "dev": true, "requires": { - "css-unit-converter": "1.1.1", - "postcss": "6.0.23", - "postcss-selector-parser": "2.2.3", - "reduce-css-calc": "2.1.4" + "css-unit-converter": "^1.1.1", + "postcss": "^6.0.0", + "postcss-selector-parser": "^2.2.2", + "reduce-css-calc": "^2.0.0" }, "dependencies": { "postcss": { @@ -10613,9 +10634,9 @@ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" } }, "source-map": { @@ -10632,11 +10653,11 @@ "integrity": "sha1-bxwYoBVbxpYT8v8ThD4uSuj/C74=", "dev": true, "requires": { - "browserslist": "4.0.2", - "color": "3.0.0", - "has": "1.0.1", - "postcss": "6.0.23", - "postcss-value-parser": "3.3.0" + "browserslist": "^4.0.0", + "color": "^3.0.0", + "has": "^1.0.0", + "postcss": "^6.0.0", + "postcss-value-parser": "^3.0.0" }, "dependencies": { "browserslist": { @@ -10645,9 +10666,9 @@ "integrity": "sha512-lpujC4zv1trcKUUwfD4pFVNga4YSpB3sLB+/I+A8gvGQxno1c0dMB2aCQy0FE5oUNIDjD9puFiFF0zeS6Ji48w==", "dev": true, "requires": { - "caniuse-lite": "1.0.30000878", - "electron-to-chromium": "1.3.59", - "node-releases": "1.0.0-alpha.11" + "caniuse-lite": "^1.0.30000876", + "electron-to-chromium": "^1.3.57", + "node-releases": "^1.0.0-alpha.11" } }, "postcss": { @@ -10656,9 +10677,9 @@ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" } }, "source-map": { @@ -10675,8 +10696,8 @@ "integrity": "sha1-d9d9mu0dxOaVbmUcw0nVMwWHb2I=", "dev": true, "requires": { - "postcss": "6.0.23", - "postcss-value-parser": "3.3.0" + "postcss": "^6.0.0", + "postcss-value-parser": "^3.0.0" }, "dependencies": { "postcss": { @@ -10685,9 +10706,9 @@ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" } }, "source-map": { @@ -10704,7 +10725,7 @@ "integrity": "sha1-loSimedrPpMmPvj9KtvxocCP2I0=", "dev": true, "requires": { - "postcss": "6.0.23" + "postcss": "^6.0.0" }, "dependencies": { "postcss": { @@ -10713,9 +10734,9 @@ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" } }, "source-map": { @@ -10732,7 +10753,7 @@ "integrity": "sha1-QvPCZ/hfqQngQsNXZ+z9Zcsr1yw=", "dev": true, "requires": { - "postcss": "6.0.23" + "postcss": "^6.0.0" }, "dependencies": { "postcss": { @@ -10741,9 +10762,9 @@ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" } }, "source-map": { @@ -10760,7 +10781,7 @@ "integrity": "sha1-VeGKWcdBKOOMfSgEvPpAVmEfuX8=", "dev": true, "requires": { - "postcss": "6.0.23" + "postcss": "^6.0.0" }, "dependencies": { "postcss": { @@ -10769,9 +10790,9 @@ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" } }, "source-map": { @@ -10788,7 +10809,7 @@ "integrity": "sha1-Sgv4WXh4TPH4HtLBwf2dlkodofo=", "dev": true, "requires": { - "postcss": "6.0.23" + "postcss": "^6.0.0" }, "dependencies": { "postcss": { @@ -10797,9 +10818,9 @@ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" } }, "source-map": { @@ -10816,8 +10837,8 @@ "integrity": "sha512-V5JBLzw406BB8UIfsAWSK2KSwIJ5yoEIVFb4gVkXci0QdKgA24jLmHZ/ghe/GgX0lJ0/D1uUK1ejhzEY94MChQ==", "dev": true, "requires": { - "cosmiconfig": "4.0.0", - "import-cwd": "2.1.0" + "cosmiconfig": "^4.0.0", + "import-cwd": "^2.0.0" }, "dependencies": { "cosmiconfig": { @@ -10826,10 +10847,10 @@ "integrity": "sha512-6e5vDdrXZD+t5v0L8CrurPeybg4Fmf+FCSYxXKYVAqLUtyCSbuyqE059d0kDthTNRzKVjL7QMgNpEUlsoYH3iQ==", "dev": true, "requires": { - "is-directory": "0.3.1", - "js-yaml": "3.11.0", - "parse-json": "4.0.0", - "require-from-string": "2.0.2" + "is-directory": "^0.3.1", + "js-yaml": "^3.9.0", + "parse-json": "^4.0.0", + "require-from-string": "^2.0.1" } }, "parse-json": { @@ -10838,8 +10859,8 @@ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { - "error-ex": "1.3.1", - "json-parse-better-errors": "1.0.2" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" } } } @@ -10850,10 +10871,10 @@ "integrity": "sha512-hgiWSc13xVQAq25cVw80CH0l49ZKlAnU1hKPOdRrNj89bokRr/bZF2nT+hebPPF9c9xs8c3gw3Fr2nxtmXYnNg==", "dev": true, "requires": { - "loader-utils": "1.1.0", - "postcss": "6.0.23", - "postcss-load-config": "2.0.0", - "schema-utils": "0.4.7" + "loader-utils": "^1.1.0", + "postcss": "^6.0.0", + "postcss-load-config": "^2.0.0", + "schema-utils": "^0.4.0" }, "dependencies": { "postcss": { @@ -10862,9 +10883,9 @@ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" } }, "source-map": { @@ -10882,9 +10903,9 @@ "dev": true, "requires": { "css-color-names": "0.0.4", - "postcss": "6.0.23", - "postcss-value-parser": "3.3.0", - "stylehacks": "4.0.0" + "postcss": "^6.0.0", + "postcss-value-parser": "^3.0.0", + "stylehacks": "^4.0.0" }, "dependencies": { "postcss": { @@ -10893,9 +10914,9 @@ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" } }, "source-map": { @@ -10912,12 +10933,12 @@ "integrity": "sha1-Qw/Vmz8u0uivzQsxJ47aOYVKuxA=", "dev": true, "requires": { - "browserslist": "4.0.2", - "caniuse-api": "3.0.0", - "cssnano-util-same-parent": "4.0.0", - "postcss": "6.0.23", - "postcss-selector-parser": "3.1.1", - "vendors": "1.0.2" + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "cssnano-util-same-parent": "^4.0.0", + "postcss": "^6.0.0", + "postcss-selector-parser": "^3.0.0", + "vendors": "^1.0.0" }, "dependencies": { "browserslist": { @@ -10926,9 +10947,9 @@ "integrity": "sha512-lpujC4zv1trcKUUwfD4pFVNga4YSpB3sLB+/I+A8gvGQxno1c0dMB2aCQy0FE5oUNIDjD9puFiFF0zeS6Ji48w==", "dev": true, "requires": { - "caniuse-lite": "1.0.30000878", - "electron-to-chromium": "1.3.59", - "node-releases": "1.0.0-alpha.11" + "caniuse-lite": "^1.0.30000876", + "electron-to-chromium": "^1.3.57", + "node-releases": "^1.0.0-alpha.11" } }, "postcss": { @@ -10937,9 +10958,9 @@ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" } }, "postcss-selector-parser": { @@ -10948,9 +10969,9 @@ "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=", "dev": true, "requires": { - "dot-prop": "4.2.0", - "indexes-of": "1.0.1", - "uniq": "1.0.1" + "dot-prop": "^4.1.1", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" } }, "source-map": { @@ -10967,8 +10988,8 @@ "integrity": "sha1-TMM9KD1qgXWQNudX75gdksvYW+0=", "dev": true, "requires": { - "postcss": "6.0.23", - "postcss-value-parser": "3.3.0" + "postcss": "^6.0.0", + "postcss-value-parser": "^3.0.0" }, "dependencies": { "postcss": { @@ -10977,9 +10998,9 @@ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" } }, "source-map": { @@ -10996,10 +11017,10 @@ "integrity": "sha1-P8ORZDnSepu4Bm23za2AFlDrCQ4=", "dev": true, "requires": { - "cssnano-util-get-arguments": "4.0.0", - "is-color-stop": "1.1.0", - "postcss": "6.0.23", - "postcss-value-parser": "3.3.0" + "cssnano-util-get-arguments": "^4.0.0", + "is-color-stop": "^1.0.0", + "postcss": "^6.0.0", + "postcss-value-parser": "^3.0.0" }, "dependencies": { "postcss": { @@ -11008,9 +11029,9 @@ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" } }, "source-map": { @@ -11027,11 +11048,11 @@ "integrity": "sha1-BekWbuSMBa9lGYnOhNOcG015BnQ=", "dev": true, "requires": { - "alphanum-sort": "1.0.2", - "cssnano-util-get-arguments": "4.0.0", - "postcss": "6.0.23", - "postcss-value-parser": "3.3.0", - "uniqs": "2.0.0" + "alphanum-sort": "^1.0.0", + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^6.0.0", + "postcss-value-parser": "^3.0.0", + "uniqs": "^2.0.0" }, "dependencies": { "postcss": { @@ -11040,9 +11061,9 @@ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" } }, "source-map": { @@ -11059,10 +11080,10 @@ "integrity": "sha1-sen2xGNBbT/Nyybnt4XZX2FXiq0=", "dev": true, "requires": { - "alphanum-sort": "1.0.2", - "has": "1.0.1", - "postcss": "6.0.23", - "postcss-selector-parser": "3.1.1" + "alphanum-sort": "^1.0.0", + "has": "^1.0.0", + "postcss": "^6.0.0", + "postcss-selector-parser": "^3.0.0" }, "dependencies": { "postcss": { @@ -11071,9 +11092,9 @@ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" } }, "postcss-selector-parser": { @@ -11082,9 +11103,9 @@ "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=", "dev": true, "requires": { - "dot-prop": "4.2.0", - "indexes-of": "1.0.1", - "uniq": "1.0.1" + "dot-prop": "^4.1.1", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" } }, "source-map": { @@ -11101,7 +11122,7 @@ "integrity": "sha1-ZhQOzs447wa/DT41XWm/WdFB6oU=", "dev": true, "requires": { - "postcss": "6.0.23" + "postcss": "^6.0.1" }, "dependencies": { "postcss": { @@ -11110,9 +11131,9 @@ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" } }, "source-map": { @@ -11129,8 +11150,8 @@ "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=", "dev": true, "requires": { - "css-selector-tokenizer": "0.7.0", - "postcss": "6.0.23" + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" }, "dependencies": { "postcss": { @@ -11139,9 +11160,9 @@ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" } }, "source-map": { @@ -11158,8 +11179,8 @@ "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", "dev": true, "requires": { - "css-selector-tokenizer": "0.7.0", - "postcss": "6.0.23" + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" }, "dependencies": { "postcss": { @@ -11168,9 +11189,9 @@ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" } }, "source-map": { @@ -11187,8 +11208,8 @@ "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", "dev": true, "requires": { - "icss-replace-symbols": "1.1.0", - "postcss": "6.0.23" + "icss-replace-symbols": "^1.1.0", + "postcss": "^6.0.1" }, "dependencies": { "postcss": { @@ -11197,9 +11218,9 @@ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" } }, "source-map": { @@ -11216,7 +11237,7 @@ "integrity": "sha1-JFJyknAtXoEp6vo9HeSe1RpqtzA=", "dev": true, "requires": { - "postcss": "6.0.23" + "postcss": "^6.0.0" }, "dependencies": { "postcss": { @@ -11225,9 +11246,9 @@ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" } }, "source-map": { @@ -11244,9 +11265,9 @@ "integrity": "sha1-lQ4Me+NEV3ChYP/9a2ZEw8DNj4k=", "dev": true, "requires": { - "cssnano-util-get-match": "4.0.0", - "postcss": "6.0.23", - "postcss-value-parser": "3.3.0" + "cssnano-util-get-match": "^4.0.0", + "postcss": "^6.0.0", + "postcss-value-parser": "^3.0.0" }, "dependencies": { "postcss": { @@ -11255,9 +11276,9 @@ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" } }, "source-map": { @@ -11274,10 +11295,10 @@ "integrity": "sha1-7pNDq5gbgixjq3JhXszNCFZERaM=", "dev": true, "requires": { - "cssnano-util-get-arguments": "4.0.0", - "has": "1.0.1", - "postcss": "6.0.23", - "postcss-value-parser": "3.3.0" + "cssnano-util-get-arguments": "^4.0.0", + "has": "^1.0.0", + "postcss": "^6.0.0", + "postcss-value-parser": "^3.0.0" }, "dependencies": { "postcss": { @@ -11286,9 +11307,9 @@ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" } }, "source-map": { @@ -11305,10 +11326,10 @@ "integrity": "sha1-txHFks8W+vn/V15C+hALZ5kIPv8=", "dev": true, "requires": { - "cssnano-util-get-arguments": "4.0.0", - "cssnano-util-get-match": "4.0.0", - "postcss": "6.0.23", - "postcss-value-parser": "3.3.0" + "cssnano-util-get-arguments": "^4.0.0", + "cssnano-util-get-match": "^4.0.0", + "postcss": "^6.0.0", + "postcss-value-parser": "^3.0.0" }, "dependencies": { "postcss": { @@ -11317,9 +11338,9 @@ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" } }, "source-map": { @@ -11336,9 +11357,9 @@ "integrity": "sha1-cYy20wpvrGrGqDDjLAbAfbxm/l0=", "dev": true, "requires": { - "has": "1.0.1", - "postcss": "6.0.23", - "postcss-value-parser": "3.3.0" + "has": "^1.0.0", + "postcss": "^6.0.0", + "postcss-value-parser": "^3.0.0" }, "dependencies": { "postcss": { @@ -11347,9 +11368,9 @@ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" } }, "source-map": { @@ -11366,9 +11387,9 @@ "integrity": "sha1-A1HymIaqmB1D2RssK9GuptCvbSM=", "dev": true, "requires": { - "cssnano-util-get-match": "4.0.0", - "postcss": "6.0.23", - "postcss-value-parser": "3.3.0" + "cssnano-util-get-match": "^4.0.0", + "postcss": "^6.0.0", + "postcss-value-parser": "^3.0.0" }, "dependencies": { "postcss": { @@ -11377,9 +11398,9 @@ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" } }, "source-map": { @@ -11396,8 +11417,8 @@ "integrity": "sha1-Ws1dR7rqXRdnSyzMSuUWb6iM35c=", "dev": true, "requires": { - "postcss": "6.0.23", - "postcss-value-parser": "3.3.0" + "postcss": "^6.0.0", + "postcss-value-parser": "^3.0.0" }, "dependencies": { "postcss": { @@ -11406,9 +11427,9 @@ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" } }, "source-map": { @@ -11425,10 +11446,10 @@ "integrity": "sha1-t6nIrSbPJmlMFG6y1ovQz0mVbw0=", "dev": true, "requires": { - "is-absolute-url": "2.1.0", - "normalize-url": "3.2.0", - "postcss": "6.0.23", - "postcss-value-parser": "3.3.0" + "is-absolute-url": "^2.0.0", + "normalize-url": "^3.0.0", + "postcss": "^6.0.0", + "postcss-value-parser": "^3.0.0" }, "dependencies": { "postcss": { @@ -11437,9 +11458,9 @@ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" } }, "source-map": { @@ -11456,8 +11477,8 @@ "integrity": "sha1-HafnaxCuY8EYJ/oE/Du0oe/pnMA=", "dev": true, "requires": { - "postcss": "6.0.23", - "postcss-value-parser": "3.3.0" + "postcss": "^6.0.0", + "postcss-value-parser": "^3.0.0" }, "dependencies": { "postcss": { @@ -11466,9 +11487,9 @@ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" } }, "source-map": { @@ -11485,9 +11506,9 @@ "integrity": "sha1-WLQMdPcuAi6zQVLBLksPk1RIL8I=", "dev": true, "requires": { - "cssnano-util-get-arguments": "4.0.0", - "postcss": "6.0.23", - "postcss-value-parser": "3.3.0" + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^6.0.0", + "postcss-value-parser": "^3.0.0" }, "dependencies": { "postcss": { @@ -11496,9 +11517,9 @@ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" } }, "source-map": { @@ -11515,10 +11536,10 @@ "integrity": "sha1-8tWPUM6isMXcEnjW6l7Q/1gpwpM=", "dev": true, "requires": { - "browserslist": "4.0.2", - "caniuse-api": "3.0.0", - "has": "1.0.1", - "postcss": "6.0.23" + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "has": "^1.0.0", + "postcss": "^6.0.0" }, "dependencies": { "browserslist": { @@ -11527,9 +11548,9 @@ "integrity": "sha512-lpujC4zv1trcKUUwfD4pFVNga4YSpB3sLB+/I+A8gvGQxno1c0dMB2aCQy0FE5oUNIDjD9puFiFF0zeS6Ji48w==", "dev": true, "requires": { - "caniuse-lite": "1.0.30000878", - "electron-to-chromium": "1.3.59", - "node-releases": "1.0.0-alpha.11" + "caniuse-lite": "^1.0.30000876", + "electron-to-chromium": "^1.3.57", + "node-releases": "^1.0.0-alpha.11" } }, "postcss": { @@ -11538,9 +11559,9 @@ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" } }, "source-map": { @@ -11557,10 +11578,10 @@ "integrity": "sha1-9kX8dEDDUnT0DegQThStcWPt8Yg=", "dev": true, "requires": { - "cssnano-util-get-match": "4.0.0", - "has": "1.0.1", - "postcss": "6.0.23", - "postcss-value-parser": "3.3.0" + "cssnano-util-get-match": "^4.0.0", + "has": "^1.0.0", + "postcss": "^6.0.0", + "postcss-value-parser": "^3.0.0" }, "dependencies": { "postcss": { @@ -11569,9 +11590,9 @@ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" } }, "source-map": { @@ -11588,9 +11609,9 @@ "integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=", "dev": true, "requires": { - "flatten": "1.0.2", - "indexes-of": "1.0.1", - "uniq": "1.0.1" + "flatten": "^1.0.2", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" } }, "postcss-svgo": { @@ -11599,10 +11620,10 @@ "integrity": "sha1-wLutAlIPxjbJ14sOhAPi5RXDIoU=", "dev": true, "requires": { - "is-svg": "3.0.0", - "postcss": "6.0.23", - "postcss-value-parser": "3.3.0", - "svgo": "1.0.5" + "is-svg": "^3.0.0", + "postcss": "^6.0.0", + "postcss-value-parser": "^3.0.0", + "svgo": "^1.0.0" }, "dependencies": { "postcss": { @@ -11611,9 +11632,9 @@ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" } }, "source-map": { @@ -11630,9 +11651,9 @@ "integrity": "sha1-BMHpdkx1h0JhMDQCxB8Ol2n8VQE=", "dev": true, "requires": { - "alphanum-sort": "1.0.2", - "postcss": "6.0.23", - "uniqs": "2.0.0" + "alphanum-sort": "^1.0.0", + "postcss": "^6.0.0", + "uniqs": "^2.0.0" }, "dependencies": { "postcss": { @@ -11641,9 +11662,9 @@ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" } }, "source-map": { @@ -11684,8 +11705,8 @@ "integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=", "dev": true, "requires": { - "renderkid": "2.0.1", - "utila": "0.4.0" + "renderkid": "^2.0.1", + "utila": "~0.4" } }, "pretty-format": { @@ -11694,8 +11715,8 @@ "integrity": "sha512-ZdWPGYAnYfcVP8yKA3zFjCn8s4/17TeYH28MXuC8vTp0o21eXjbFGcOAXZEaDaOFJjc3h2qa7HQNHNshhvoh2A==", "dev": true, "requires": { - "ansi-regex": "3.0.0", - "ansi-styles": "3.2.1" + "ansi-regex": "^3.0.0", + "ansi-styles": "^3.2.0" }, "dependencies": { "ansi-regex": { @@ -11742,7 +11763,7 @@ "dev": true, "optional": true, "requires": { - "asap": "2.0.6" + "asap": "~2.0.3" } }, "promise-inflight": { @@ -11757,7 +11778,7 @@ "integrity": "sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==", "dev": true, "requires": { - "forwarded": "0.1.2", + "forwarded": "~0.1.2", "ipaddr.js": "1.8.0" } }, @@ -11785,11 +11806,11 @@ "integrity": "sha512-4kJ5Esocg8X3h8YgJsKAuoesBgB7mqH3eowiDzMUPKiRDDE7E/BqqZD1hnTByIaAFiwAw246YEltSq7tdrOH0Q==", "dev": true, "requires": { - "bn.js": "4.11.8", - "browserify-rsa": "4.0.1", - "create-hash": "1.2.0", - "parse-asn1": "5.1.1", - "randombytes": "2.0.6" + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1" } }, "pump": { @@ -11798,8 +11819,8 @@ "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", "dev": true, "requires": { - "end-of-stream": "1.4.1", - "once": "1.4.0" + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } }, "pumpify": { @@ -11808,9 +11829,9 @@ "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", "dev": true, "requires": { - "duplexify": "3.6.0", - "inherits": "2.0.3", - "pump": "2.0.1" + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" } }, "punycode": { @@ -11856,9 +11877,9 @@ "integrity": "sha512-KnGPVE0lo2WoXxIZ7cPR8YBpiol4gsSuOwDSg410oHh80ZMp5EiypNqL2K4Z77vJn6lB5rap7IkAmcUlalcnBQ==", "dev": true, "requires": { - "is-number": "4.0.0", - "kind-of": "6.0.2", - "math-random": "1.0.1" + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" }, "dependencies": { "is-number": { @@ -11881,7 +11902,7 @@ "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", "dev": true, "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.1.0" } }, "randomfill": { @@ -11890,8 +11911,8 @@ "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", "dev": true, "requires": { - "randombytes": "2.0.6", - "safe-buffer": "5.1.2" + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" } }, "range-parser": { @@ -11927,7 +11948,7 @@ "depd": "1.1.1", "inherits": "2.0.3", "setprototypeof": "1.0.3", - "statuses": "1.4.0" + "statuses": ">= 1.3.1 < 2" } }, "iconv-lite": { @@ -11950,9 +11971,9 @@ "integrity": "sha1-ljYlN48+HE1IyFhytabsfV0JMjc=", "dev": true, "requires": { - "normalize-package-data": "2.4.0", - "parse-json": "4.0.0", - "pify": "3.0.0" + "normalize-package-data": "^2.3.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0" }, "dependencies": { "parse-json": { @@ -11961,8 +11982,8 @@ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { - "error-ex": "1.3.1", - "json-parse-better-errors": "1.0.2" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" } } } @@ -11973,8 +11994,8 @@ "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", "dev": true, "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" }, "dependencies": { "find-up": { @@ -11983,8 +12004,8 @@ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "dev": true, "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "path-exists": { @@ -11993,7 +12014,7 @@ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "dev": true, "requires": { - "pinkie-promise": "2.0.1" + "pinkie-promise": "^2.0.0" } }, "path-type": { @@ -12002,9 +12023,9 @@ "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "pify": { @@ -12019,9 +12040,9 @@ "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", "dev": true, "requires": { - "load-json-file": "1.1.0", - "normalize-package-data": "2.4.0", - "path-type": "1.1.0" + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" } } } @@ -12032,13 +12053,13 @@ "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" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, "readdirp": { @@ -12047,10 +12068,10 @@ "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "minimatch": "3.0.4", - "readable-stream": "2.3.6", - "set-immediate-shim": "1.0.1" + "graceful-fs": "^4.1.2", + "minimatch": "^3.0.2", + "readable-stream": "^2.0.2", + "set-immediate-shim": "^1.0.1" } }, "redent": { @@ -12059,8 +12080,8 @@ "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", "dev": true, "requires": { - "indent-string": "2.1.0", - "strip-indent": "1.0.1" + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" } }, "reduce-css-calc": { @@ -12069,8 +12090,8 @@ "integrity": "sha512-i/vWQbyd3aJRmip9OVSN9V6nIjLf/gg/ctxb0CpvHWtcRysFl/ngDBQD+rqavxdw/doScA3GMBXhzkHQ4GCzFQ==", "dev": true, "requires": { - "css-unit-converter": "1.1.1", - "postcss-value-parser": "3.3.0" + "css-unit-converter": "^1.1.1", + "postcss-value-parser": "^3.3.0" } }, "regenerate": { @@ -12085,7 +12106,7 @@ "integrity": "sha512-s5NGghCE4itSlUS+0WUj88G6cfMVMmH8boTPNvABf8od+2dhT9WDlWu8n01raQAJZMOK8Ch6jSexaRO7swd6aw==", "dev": true, "requires": { - "regenerate": "1.4.0" + "regenerate": "^1.4.0" } }, "regenerator-runtime": { @@ -12099,7 +12120,7 @@ "integrity": "sha512-p2I0fY+TbSLD2/VFTFb/ypEHxs3e3AjU0DzttdPqk2bSmDhfSh5E54b86Yc6XhUa5KykK1tgbvZ4Nr82oCJWkQ==", "dev": true, "requires": { - "private": "0.1.8" + "private": "^0.1.6" } }, "regex-cache": { @@ -12108,7 +12129,7 @@ "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "dev": true, "requires": { - "is-equal-shallow": "0.1.3" + "is-equal-shallow": "^0.1.3" } }, "regex-not": { @@ -12117,8 +12138,8 @@ "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "dev": true, "requires": { - "extend-shallow": "3.0.2", - "safe-regex": "1.1.0" + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" } }, "regexpp": { @@ -12133,12 +12154,12 @@ "integrity": "sha512-Z835VSnJJ46CNBttalHD/dB+Sj2ezmY6Xp38npwU87peK6mqOzOpV8eYktdkLTEkzzD+JsTcxd84ozd8I14+rw==", "dev": true, "requires": { - "regenerate": "1.4.0", - "regenerate-unicode-properties": "7.0.0", - "regjsgen": "0.4.0", - "regjsparser": "0.3.0", - "unicode-match-property-ecmascript": "1.0.4", - "unicode-match-property-value-ecmascript": "1.0.2" + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^7.0.0", + "regjsgen": "^0.4.0", + "regjsparser": "^0.3.0", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.0.2" } }, "regjsgen": { @@ -12153,7 +12174,7 @@ "integrity": "sha512-zza72oZBBHzt64G7DxdqrOo/30bhHkwMUoT0WqfGu98XLd7N+1tsy5MJ96Bk4MD0y74n629RhmrGW6XlnLLwCA==", "dev": true, "requires": { - "jsesc": "0.5.0" + "jsesc": "~0.5.0" }, "dependencies": { "jsesc": { @@ -12182,11 +12203,11 @@ "integrity": "sha1-iYyr/Ivt5Le5ETWj/9Mj5YwNsxk=", "dev": true, "requires": { - "css-select": "1.2.0", - "dom-converter": "0.1.4", - "htmlparser2": "3.3.0", - "strip-ansi": "3.0.1", - "utila": "0.3.3" + "css-select": "^1.1.0", + "dom-converter": "~0.1", + "htmlparser2": "~3.3.0", + "strip-ansi": "^3.0.0", + "utila": "~0.3" }, "dependencies": { "css-select": { @@ -12195,10 +12216,10 @@ "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", "dev": true, "requires": { - "boolbase": "1.0.0", - "css-what": "2.1.0", + "boolbase": "~1.0.0", + "css-what": "2.1", "domutils": "1.5.1", - "nth-check": "1.0.1" + "nth-check": "~1.0.1" } }, "utila": { @@ -12227,7 +12248,7 @@ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "dev": true, "requires": { - "is-finite": "1.0.2" + "is-finite": "^1.0.0" } }, "request": { @@ -12237,28 +12258,28 @@ "dev": true, "optional": true, "requires": { - "aws-sign2": "0.6.0", - "aws4": "1.7.0", - "caseless": "0.12.0", - "combined-stream": "1.0.6", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.1.4", - "har-validator": "4.2.1", - "hawk": "3.1.3", - "http-signature": "1.1.1", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.18", - "oauth-sign": "0.8.2", - "performance-now": "0.2.0", - "qs": "6.4.0", - "safe-buffer": "5.1.2", - "stringstream": "0.0.6", - "tough-cookie": "2.3.4", - "tunnel-agent": "0.6.0", - "uuid": "3.2.1" + "aws-sign2": "~0.6.0", + "aws4": "^1.2.1", + "caseless": "~0.12.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.0", + "forever-agent": "~0.6.1", + "form-data": "~2.1.1", + "har-validator": "~4.2.1", + "hawk": "~3.1.3", + "http-signature": "~1.1.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.7", + "oauth-sign": "~0.8.1", + "performance-now": "^0.2.0", + "qs": "~6.4.0", + "safe-buffer": "^5.0.1", + "stringstream": "~0.0.4", + "tough-cookie": "~2.3.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.0.0" } }, "request-promise-core": { @@ -12267,7 +12288,7 @@ "integrity": "sha1-Pu4AssWqgyOc+wTFcA2jb4HNCLY=", "dev": true, "requires": { - "lodash": "4.17.10" + "lodash": "^4.13.1" } }, "request-promise-native": { @@ -12277,8 +12298,8 @@ "dev": true, "requires": { "request-promise-core": "1.1.1", - "stealthy-require": "1.1.1", - "tough-cookie": "2.3.4" + "stealthy-require": "^1.1.0", + "tough-cookie": ">=2.3.3" } }, "require-directory": { @@ -12305,8 +12326,8 @@ "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", "dev": true, "requires": { - "caller-path": "0.1.0", - "resolve-from": "1.0.1" + "caller-path": "^0.1.0", + "resolve-from": "^1.0.0" } }, "requires-port": { @@ -12321,7 +12342,7 @@ "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", "dev": true, "requires": { - "path-parse": "1.0.5" + "path-parse": "^1.0.5" } }, "resolve-cwd": { @@ -12330,7 +12351,7 @@ "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", "dev": true, "requires": { - "resolve-from": "3.0.0" + "resolve-from": "^3.0.0" }, "dependencies": { "resolve-from": { @@ -12359,8 +12380,8 @@ "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", "dev": true, "requires": { - "exit-hook": "1.1.1", - "onetime": "1.1.0" + "exit-hook": "^1.0.0", + "onetime": "^1.0.0" } }, "ret": { @@ -12387,7 +12408,7 @@ "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "dev": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "ripemd160": { @@ -12396,8 +12417,8 @@ "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", "dev": true, "requires": { - "hash-base": "3.0.4", - "inherits": "2.0.3" + "hash-base": "^3.0.0", + "inherits": "^2.0.1" } }, "run-async": { @@ -12406,7 +12427,7 @@ "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", "dev": true, "requires": { - "is-promise": "2.1.0" + "is-promise": "^2.1.0" } }, "run-queue": { @@ -12415,7 +12436,7 @@ "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", "dev": true, "requires": { - "aproba": "1.2.0" + "aproba": "^1.1.1" } }, "rx-lite": { @@ -12430,7 +12451,7 @@ "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", "dev": true, "requires": { - "rx-lite": "4.0.8" + "rx-lite": "*" } }, "rxjs": { @@ -12454,7 +12475,7 @@ "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "dev": true, "requires": { - "ret": "0.1.15" + "ret": "~0.1.10" } }, "safer-buffer": { @@ -12475,8 +12496,8 @@ "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", "dev": true, "requires": { - "ajv": "6.5.3", - "ajv-keywords": "3.2.0" + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0" }, "dependencies": { "ajv": { @@ -12485,10 +12506,10 @@ "integrity": "sha512-LqZ9wY+fx3UMiiPd741yB2pj3hhil+hQc8taf4o2QGRFpWgZ2V5C8HA165DY9sS3fJwsk7uT7ZlFEyC3Ig3lLg==", "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" + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, "ajv-keywords": { @@ -12544,18 +12565,18 @@ "dev": true, "requires": { "debug": "2.6.9", - "depd": "1.1.2", - "destroy": "1.0.4", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "etag": "1.8.1", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", "fresh": "0.5.2", - "http-errors": "1.6.3", + "http-errors": "~1.6.2", "mime": "1.4.1", "ms": "2.0.0", - "on-finished": "2.3.0", - "range-parser": "1.2.0", - "statuses": "1.4.0" + "on-finished": "~2.3.0", + "range-parser": "~1.2.0", + "statuses": "~1.4.0" }, "dependencies": { "debug": { @@ -12587,13 +12608,13 @@ "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", "dev": true, "requires": { - "accepts": "1.3.5", + "accepts": "~1.3.4", "batch": "0.6.1", "debug": "2.6.9", - "escape-html": "1.0.3", - "http-errors": "1.6.3", - "mime-types": "2.1.18", - "parseurl": "1.3.2" + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" }, "dependencies": { "debug": { @@ -12613,9 +12634,9 @@ "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", "dev": true, "requires": { - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "parseurl": "1.3.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.2", "send": "0.16.2" } }, @@ -12637,10 +12658,10 @@ "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "split-string": "3.1.0" + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" }, "dependencies": { "extend-shallow": { @@ -12649,7 +12670,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -12672,8 +12693,8 @@ "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "dev": true, "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.2" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "shebang-command": { @@ -12682,7 +12703,7 @@ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { - "shebang-regex": "1.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { @@ -12697,10 +12718,10 @@ "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=", "dev": true, "requires": { - "array-filter": "0.0.1", - "array-map": "0.0.0", - "array-reduce": "0.0.0", - "jsonify": "0.0.0" + "array-filter": "~0.0.0", + "array-map": "~0.0.0", + "array-reduce": "~0.0.0", + "jsonify": "~0.0.0" } }, "signal-exit": { @@ -12715,7 +12736,7 @@ "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", "dev": true, "requires": { - "is-arrayish": "0.3.2" + "is-arrayish": "^0.3.1" }, "dependencies": { "is-arrayish": { @@ -12731,9 +12752,9 @@ "resolved": "https://registry.npmjs.org/simplemde/-/simplemde-1.11.2.tgz", "integrity": "sha1-ojo12XjSxA7wfewAjJLwcNjggOM=", "requires": { - "codemirror": "5.38.0", - "codemirror-spell-checker": "1.1.2", - "marked": "0.4.0" + "codemirror": "*", + "codemirror-spell-checker": "*", + "marked": "*" } }, "slash": { @@ -12754,14 +12775,14 @@ "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "dev": true, "requires": { - "base": "0.11.2", - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "map-cache": "0.2.2", - "source-map": "0.5.7", - "source-map-resolve": "0.5.2", - "use": "3.1.1" + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" }, "dependencies": { "debug": { @@ -12779,7 +12800,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -12788,7 +12809,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -12799,9 +12820,9 @@ "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "dev": true, "requires": { - "define-property": "1.0.0", - "isobject": "3.0.1", - "snapdragon-util": "3.0.1" + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" }, "dependencies": { "define-property": { @@ -12810,7 +12831,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { @@ -12819,7 +12840,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -12828,7 +12849,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -12837,9 +12858,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { @@ -12862,7 +12883,7 @@ "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.2.0" } }, "sntp": { @@ -12872,7 +12893,7 @@ "dev": true, "optional": true, "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "sockjs": { @@ -12881,8 +12902,8 @@ "integrity": "sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==", "dev": true, "requires": { - "faye-websocket": "0.10.0", - "uuid": "3.2.1" + "faye-websocket": "^0.10.0", + "uuid": "^3.0.1" } }, "sockjs-client": { @@ -12891,12 +12912,12 @@ "integrity": "sha1-G7fA9yIsQPQq3xT0RCy9Eml3GoM=", "dev": true, "requires": { - "debug": "2.6.9", + "debug": "^2.6.6", "eventsource": "0.1.6", - "faye-websocket": "0.11.1", - "inherits": "2.0.3", - "json3": "3.3.2", - "url-parse": "1.4.3" + "faye-websocket": "~0.11.0", + "inherits": "^2.0.1", + "json3": "^3.3.2", + "url-parse": "^1.1.8" }, "dependencies": { "debug": { @@ -12914,7 +12935,7 @@ "integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=", "dev": true, "requires": { - "websocket-driver": "0.7.0" + "websocket-driver": ">=0.5.1" } } } @@ -12942,11 +12963,11 @@ "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", "dev": true, "requires": { - "atob": "2.1.2", - "decode-uri-component": "0.2.0", - "resolve-url": "0.2.1", - "source-map-url": "0.4.0", - "urix": "0.1.0" + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" } }, "source-map-support": { @@ -12955,8 +12976,8 @@ "integrity": "sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==", "dev": true, "requires": { - "buffer-from": "1.1.1", - "source-map": "0.6.1" + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" }, "dependencies": { "source-map": { @@ -12979,8 +13000,8 @@ "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", "dev": true, "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.0" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-exceptions": { @@ -12995,8 +13016,8 @@ "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "dev": true, "requires": { - "spdx-exceptions": "2.1.0", - "spdx-license-ids": "3.0.0" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-license-ids": { @@ -13011,12 +13032,12 @@ "integrity": "sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=", "dev": true, "requires": { - "debug": "2.6.9", - "handle-thing": "1.2.5", - "http-deceiver": "1.2.7", - "safe-buffer": "5.1.2", - "select-hose": "2.0.0", - "spdy-transport": "2.1.0" + "debug": "^2.6.8", + "handle-thing": "^1.2.5", + "http-deceiver": "^1.2.7", + "safe-buffer": "^5.0.1", + "select-hose": "^2.0.0", + "spdy-transport": "^2.0.18" }, "dependencies": { "debug": { @@ -13036,13 +13057,13 @@ "integrity": "sha512-bpUeGpZcmZ692rrTiqf9/2EUakI6/kXX1Rpe0ib/DyOzbiexVfXkw6GnvI9hVGvIwVaUhkaBojjCZwLNRGQg1g==", "dev": true, "requires": { - "debug": "2.6.9", - "detect-node": "2.0.3", - "hpack.js": "2.1.6", - "obuf": "1.1.2", - "readable-stream": "2.3.6", - "safe-buffer": "5.1.2", - "wbuf": "1.7.3" + "debug": "^2.6.8", + "detect-node": "^2.0.3", + "hpack.js": "^2.1.6", + "obuf": "^1.1.1", + "readable-stream": "^2.2.9", + "safe-buffer": "^5.0.1", + "wbuf": "^1.7.2" }, "dependencies": { "debug": { @@ -13062,7 +13083,7 @@ "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "dev": true, "requires": { - "extend-shallow": "3.0.2" + "extend-shallow": "^3.0.0" } }, "sprintf-js": { @@ -13076,7 +13097,7 @@ "resolved": "https://registry.npmjs.org/ssf/-/ssf-0.10.2.tgz", "integrity": "sha512-rDhAPm9WyIsY8eZEKyE8Qsotb3j/wBdvMWBUsOhJdfhKGLfQidRjiBUV0y/MkyCLiXQ38FG6LWW/VYUtqlIDZQ==", "requires": { - "frac": "1.1.2" + "frac": "~1.1.2" } }, "sshpk": { @@ -13085,14 +13106,14 @@ "integrity": "sha1-Ew9Zde3a2WPx1W+SuaxsUfqfg+s=", "dev": true, "requires": { - "asn1": "0.2.3", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.1", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.1", - "getpass": "0.1.7", - "jsbn": "0.1.1", - "tweetnacl": "0.14.5" + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "tweetnacl": "~0.14.0" }, "dependencies": { "assert-plus": { @@ -13133,8 +13154,8 @@ "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "dev": true, "requires": { - "define-property": "0.2.5", - "object-copy": "0.1.0" + "define-property": "^0.2.5", + "object-copy": "^0.1.0" }, "dependencies": { "define-property": { @@ -13143,7 +13164,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -13166,8 +13187,8 @@ "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", "dev": true, "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6" + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" } }, "stream-each": { @@ -13176,8 +13197,8 @@ "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", "dev": true, "requires": { - "end-of-stream": "1.4.1", - "stream-shift": "1.0.0" + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" } }, "stream-http": { @@ -13186,11 +13207,11 @@ "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", "dev": true, "requires": { - "builtin-status-codes": "3.0.0", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "to-arraybuffer": "1.0.1", - "xtend": "4.0.1" + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" } }, "stream-shift": { @@ -13205,9 +13226,9 @@ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } }, "string.prototype.padend": { @@ -13216,9 +13237,9 @@ "integrity": "sha1-86rvfBcZ8XDF6rHDK/eA2W4h8vA=", "dev": true, "requires": { - "define-properties": "1.1.3", - "es-abstract": "1.12.0", - "function-bind": "1.1.1" + "define-properties": "^1.1.2", + "es-abstract": "^1.4.3", + "function-bind": "^1.0.2" } }, "string.prototype.padstart": { @@ -13227,9 +13248,9 @@ "integrity": "sha1-W8+tOfRkm7LQMSkuGbzwtRDUskI=", "dev": true, "requires": { - "define-properties": "1.1.3", - "es-abstract": "1.12.0", - "function-bind": "1.1.1" + "define-properties": "^1.1.2", + "es-abstract": "^1.4.3", + "function-bind": "^1.0.2" } }, "string_decoder": { @@ -13238,7 +13259,7 @@ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } }, "stringify-object": { @@ -13247,9 +13268,9 @@ "integrity": "sha512-O696NF21oLiDy8PhpWu8AEqoZHw++QW6mUv0UvKZe8gWSdSvMXkiLufK7OmnP27Dro4GU5kb9U7JIO0mBuCRQg==", "dev": true, "requires": { - "get-own-enumerable-property-symbols": "2.0.1", - "is-obj": "1.0.1", - "is-regexp": "1.0.0" + "get-own-enumerable-property-symbols": "^2.0.1", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" } }, "stringstream": { @@ -13265,7 +13286,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-bom": { @@ -13286,7 +13307,7 @@ "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", "dev": true, "requires": { - "get-stdin": "4.0.1" + "get-stdin": "^4.0.1" } }, "strip-json-comments": { @@ -13301,9 +13322,9 @@ "integrity": "sha1-ZLMjlRxKJOX8ey7AbBN78y0VXoo=", "dev": true, "requires": { - "browserslist": "4.0.2", - "postcss": "6.0.23", - "postcss-selector-parser": "3.1.1" + "browserslist": "^4.0.0", + "postcss": "^6.0.0", + "postcss-selector-parser": "^3.0.0" }, "dependencies": { "browserslist": { @@ -13312,9 +13333,9 @@ "integrity": "sha512-lpujC4zv1trcKUUwfD4pFVNga4YSpB3sLB+/I+A8gvGQxno1c0dMB2aCQy0FE5oUNIDjD9puFiFF0zeS6Ji48w==", "dev": true, "requires": { - "caniuse-lite": "1.0.30000878", - "electron-to-chromium": "1.3.59", - "node-releases": "1.0.0-alpha.11" + "caniuse-lite": "^1.0.30000876", + "electron-to-chromium": "^1.3.57", + "node-releases": "^1.0.0-alpha.11" } }, "postcss": { @@ -13323,9 +13344,9 @@ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" } }, "postcss-selector-parser": { @@ -13334,9 +13355,9 @@ "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=", "dev": true, "requires": { - "dot-prop": "4.2.0", - "indexes-of": "1.0.1", - "uniq": "1.0.1" + "dot-prop": "^4.1.1", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" } }, "source-map": { @@ -13353,7 +13374,7 @@ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } }, "svgo": { @@ -13362,20 +13383,20 @@ "integrity": "sha512-nYrifviB77aNKDNKKyuay3M9aYiK6Hv5gJVDdjj2ZXTQmI8WZc8+UPLR5IpVlktJfSu3co/4XcWgrgI6seGBPg==", "dev": true, "requires": { - "coa": "2.0.1", - "colors": "1.1.2", - "css-select": "1.3.0-rc0", - "css-select-base-adapter": "0.1.0", + "coa": "~2.0.1", + "colors": "~1.1.2", + "css-select": "~1.3.0-rc0", + "css-select-base-adapter": "~0.1.0", "css-tree": "1.0.0-alpha25", - "css-url-regex": "1.1.0", - "csso": "3.5.1", - "js-yaml": "3.10.0", - "mkdirp": "0.5.1", - "object.values": "1.0.4", - "sax": "1.2.4", - "stable": "0.1.8", - "unquote": "1.1.1", - "util.promisify": "1.0.0" + "css-url-regex": "^1.1.0", + "csso": "^3.5.0", + "js-yaml": "~3.10.0", + "mkdirp": "~0.5.1", + "object.values": "^1.0.4", + "sax": "~1.2.4", + "stable": "~0.1.6", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" }, "dependencies": { "js-yaml": { @@ -13384,8 +13405,8 @@ "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==", "dev": true, "requires": { - "argparse": "1.0.10", - "esprima": "4.0.0" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } } } @@ -13408,12 +13429,12 @@ "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", "dev": true, "requires": { - "ajv": "5.5.2", - "ajv-keywords": "2.1.1", - "chalk": "2.4.1", - "lodash": "4.17.10", + "ajv": "^5.2.3", + "ajv-keywords": "^2.1.0", + "chalk": "^2.1.0", + "lodash": "^4.17.4", "slice-ansi": "1.0.0", - "string-width": "2.1.1" + "string-width": "^2.1.1" }, "dependencies": { "ajv": { @@ -13422,10 +13443,10 @@ "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "dev": true, "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.1.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" } }, "ansi-regex": { @@ -13446,7 +13467,7 @@ "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0" + "is-fullwidth-code-point": "^2.0.0" } }, "string-width": { @@ -13455,8 +13476,8 @@ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" } }, "strip-ansi": { @@ -13465,7 +13486,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -13488,9 +13509,9 @@ "integrity": "sha512-acJ0rvUk53+ly9cqYWNOpPqOgCkNpmHLPDGduNm4hDQWF7EDKEJXAopG9iEWsPPcml09wePkq3NF+ZUqnO6tbg==", "dev": true, "requires": { - "async": "2.6.1", - "loader-runner": "2.3.0", - "loader-utils": "1.1.0" + "async": "^2.3.0", + "loader-runner": "^2.3.0", + "loader-utils": "^1.1.0" }, "dependencies": { "async": { @@ -13499,7 +13520,7 @@ "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", "dev": true, "requires": { - "lodash": "4.17.10" + "lodash": "^4.17.10" } } } @@ -13516,8 +13537,8 @@ "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", "dev": true, "requires": { - "readable-stream": "2.3.6", - "xtend": "4.0.1" + "readable-stream": "^2.1.5", + "xtend": "~4.0.1" } }, "thunky": { @@ -13532,7 +13553,7 @@ "integrity": "sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==", "dev": true, "requires": { - "setimmediate": "1.0.5" + "setimmediate": "^1.0.4" } }, "timsort": { @@ -13557,7 +13578,7 @@ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, "requires": { - "os-tmpdir": "1.0.2" + "os-tmpdir": "~1.0.2" } }, "to-arraybuffer": { @@ -13578,7 +13599,7 @@ "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "to-regex": { @@ -13587,10 +13608,10 @@ "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "dev": true, "requires": { - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "regex-not": "1.0.2", - "safe-regex": "1.1.0" + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" } }, "to-regex-range": { @@ -13599,8 +13620,8 @@ "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "dev": true, "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" }, "dependencies": { "is-number": { @@ -13609,7 +13630,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } } } @@ -13620,7 +13641,7 @@ "integrity": "sha512-Tlu1fGlR90iCdIPURqPiufqAlCZYzLjHYVVbcFWDMcX7+tK8hdZWAfsMrD/pBul9jqHHwFjNdf1WaxA9vTRRhw==", "dev": true, "requires": { - "hoek": "5.0.4" + "hoek": "5.x.x" }, "dependencies": { "hoek": { @@ -13643,7 +13664,7 @@ "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", "dev": true, "requires": { - "punycode": "1.4.1" + "punycode": "^1.4.1" } }, "tr46": { @@ -13652,7 +13673,7 @@ "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", "dev": true, "requires": { - "punycode": "2.1.1" + "punycode": "^2.1.0" }, "dependencies": { "punycode": { @@ -13699,7 +13720,7 @@ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "dev": true, "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.0.1" } }, "tweetnacl": { @@ -13715,7 +13736,7 @@ "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "dev": true, "requires": { - "prelude-ls": "1.1.2" + "prelude-ls": "~1.1.2" } }, "type-detect": { @@ -13731,7 +13752,7 @@ "dev": true, "requires": { "media-typer": "0.3.0", - "mime-types": "2.1.18" + "mime-types": "~2.1.18" } }, "typedarray": { @@ -13751,8 +13772,8 @@ "integrity": "sha512-J0M2i1mQA+ze3EdN9SBi751DNdAXmeFLfJrd/MDIkRc3G3Gbb9OPVSx7GIQvVwfWxQARcYV2DTxIkMyDAk3o9Q==", "dev": true, "requires": { - "commander": "2.16.0", - "source-map": "0.6.1" + "commander": "~2.16.0", + "source-map": "~0.6.1" }, "dependencies": { "commander": { @@ -13775,14 +13796,14 @@ "integrity": "sha512-ovHIch0AMlxjD/97j9AYovZxG5wnHOPkL7T1GKochBADp/Zwc44pEWNqpKl1Loupp1WhFg7SlYmHZRUfdAacgw==", "dev": true, "requires": { - "cacache": "10.0.4", - "find-cache-dir": "1.0.0", - "schema-utils": "0.4.7", - "serialize-javascript": "1.5.0", - "source-map": "0.6.1", - "uglify-es": "3.3.9", - "webpack-sources": "1.1.0", - "worker-farm": "1.6.0" + "cacache": "^10.0.4", + "find-cache-dir": "^1.0.0", + "schema-utils": "^0.4.5", + "serialize-javascript": "^1.4.0", + "source-map": "^0.6.1", + "uglify-es": "^3.3.4", + "webpack-sources": "^1.1.0", + "worker-farm": "^1.5.2" }, "dependencies": { "commander": { @@ -13803,8 +13824,8 @@ "integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==", "dev": true, "requires": { - "commander": "2.13.0", - "source-map": "0.6.1" + "commander": "~2.13.0", + "source-map": "~0.6.1" } } } @@ -13821,8 +13842,8 @@ "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", "dev": true, "requires": { - "unicode-canonical-property-names-ecmascript": "1.0.4", - "unicode-property-aliases-ecmascript": "1.0.4" + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" } }, "unicode-match-property-value-ecmascript": { @@ -13843,10 +13864,10 @@ "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", "dev": true, "requires": { - "arr-union": "3.1.0", - "get-value": "2.0.6", - "is-extendable": "0.1.1", - "set-value": "0.4.3" + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^0.4.3" }, "dependencies": { "extend-shallow": { @@ -13855,7 +13876,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "set-value": { @@ -13864,10 +13885,10 @@ "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "to-object-path": "0.3.0" + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.1", + "to-object-path": "^0.3.0" } } } @@ -13890,7 +13911,7 @@ "integrity": "sha1-0F8v5AMlYIcfMOk8vnNe6iAVFPM=", "dev": true, "requires": { - "unique-slug": "2.0.0" + "unique-slug": "^2.0.0" } }, "unique-slug": { @@ -13899,7 +13920,7 @@ "integrity": "sha1-22Z258fMBimHj/GWCXx4hVrp9Ks=", "dev": true, "requires": { - "imurmurhash": "0.1.4" + "imurmurhash": "^0.1.4" } }, "universalify": { @@ -13926,8 +13947,8 @@ "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "dev": true, "requires": { - "has-value": "0.3.1", - "isobject": "3.0.1" + "has-value": "^0.3.1", + "isobject": "^3.0.0" }, "dependencies": { "has-value": { @@ -13936,9 +13957,9 @@ "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "dev": true, "requires": { - "get-value": "2.0.6", - "has-values": "0.1.4", - "isobject": "2.1.0" + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" }, "dependencies": { "isobject": { @@ -13984,7 +14005,7 @@ "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", "dev": true, "requires": { - "punycode": "2.1.1" + "punycode": "^2.1.0" }, "dependencies": { "punycode": { @@ -14031,9 +14052,9 @@ "integrity": "sha512-vugEeXjyYFBCUOpX+ZuaunbK3QXMKaQ3zUnRfIpRBlGkY7QizCnzyyn2ASfcxsvyU3ef+CJppVywnl3Kgf13Gg==", "dev": true, "requires": { - "loader-utils": "1.1.0", - "mime": "2.3.1", - "schema-utils": "1.0.0" + "loader-utils": "^1.1.0", + "mime": "^2.0.3", + "schema-utils": "^1.0.0" }, "dependencies": { "ajv": { @@ -14042,10 +14063,10 @@ "integrity": "sha512-LqZ9wY+fx3UMiiPd741yB2pj3hhil+hQc8taf4o2QGRFpWgZ2V5C8HA165DY9sS3fJwsk7uT7ZlFEyC3Ig3lLg==", "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" + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, "ajv-keywords": { @@ -14072,9 +14093,9 @@ "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", "dev": true, "requires": { - "ajv": "6.5.3", - "ajv-errors": "1.0.0", - "ajv-keywords": "3.2.0" + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" } } } @@ -14085,8 +14106,8 @@ "integrity": "sha512-rh+KuAW36YKo0vClhQzLLveoj8FwPJNu65xLb7Mrt+eZht0IPT0IXgSv8gcMegZ6NvjJUALf6Mf25POlMwD1Fw==", "dev": true, "requires": { - "querystringify": "2.0.0", - "requires-port": "1.0.0" + "querystringify": "^2.0.0", + "requires-port": "^1.0.0" } }, "use": { @@ -14116,8 +14137,8 @@ "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", "dev": true, "requires": { - "define-properties": "1.1.3", - "object.getownpropertydescriptors": "2.0.3" + "define-properties": "^1.1.2", + "object.getownpropertydescriptors": "^2.0.3" } }, "utila": { @@ -14149,8 +14170,8 @@ "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", "dev": true, "requires": { - "spdx-correct": "3.0.0", - "spdx-expression-parse": "3.0.0" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, "vary": { @@ -14171,9 +14192,9 @@ "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "dev": true, "requires": { - "assert-plus": "1.0.0", + "assert-plus": "^1.0.0", "core-util-is": "1.0.2", - "extsprintf": "1.3.0" + "extsprintf": "^1.2.0" }, "dependencies": { "assert-plus": { @@ -14204,12 +14225,12 @@ "integrity": "sha512-ZezcU71Owm84xVF6gfurBQUGg8WQ+WZGxgDEQu1IHFBZNx7BFZg3L1yHxrCBNNwbwFtE1GuvfJKMtb6Xuwc/Bw==", "dev": true, "requires": { - "debug": "3.1.0", - "eslint-scope": "3.7.1", - "eslint-visitor-keys": "1.0.0", - "espree": "3.5.4", - "esquery": "1.0.1", - "lodash": "4.17.10" + "debug": "^3.1.0", + "eslint-scope": "^3.7.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^3.5.2", + "esquery": "^1.0.0", + "lodash": "^4.17.4" } }, "vue-hot-reload-api": { @@ -14229,11 +14250,11 @@ "integrity": "sha512-qhc1fnflEVhFq5dYLDXXTXf3PoRiGxeMhBmGDeLqlg0XAaikZEU224ZLqsTkQQVUT2uA2PN9haYlBUqq/6iEtA==", "dev": true, "requires": { - "@vue/component-compiler-utils": "2.2.0", - "hash-sum": "1.0.2", - "loader-utils": "1.1.0", - "vue-hot-reload-api": "2.3.0", - "vue-style-loader": "4.1.2" + "@vue/component-compiler-utils": "^2.0.0", + "hash-sum": "^1.0.2", + "loader-utils": "^1.1.0", + "vue-hot-reload-api": "^2.3.0", + "vue-style-loader": "^4.1.0" } }, "vue-router": { @@ -14247,8 +14268,8 @@ "integrity": "sha512-0ip8ge6Gzz/Bk0iHovU9XAUQaFt/G2B61bnWa2tCcqqdgfHs1lF9xXorFbE55Gmy92okFT+8bfmySuUOu13vxQ==", "dev": true, "requires": { - "hash-sum": "1.0.2", - "loader-utils": "1.1.0" + "hash-sum": "^1.0.2", + "loader-utils": "^1.0.2" } }, "vue-template-compiler": { @@ -14257,8 +14278,8 @@ "integrity": "sha512-ZbuhCcF/hTYmldoUOVcu2fcbeSAZnfzwDskGduOrnjBiIWHgELAd+R8nAtX80aZkceWDKGQ6N9/0/EUpt+l22A==", "dev": true, "requires": { - "de-indent": "1.0.2", - "he": "1.1.1" + "de-indent": "^1.0.2", + "he": "^1.1.0" } }, "vue-template-es2015-compiler": { @@ -14272,7 +14293,7 @@ "resolved": "https://registry.npmjs.org/vuedraggable/-/vuedraggable-2.16.0.tgz", "integrity": "sha512-fr9gcWKXMJlzbbtJcrQs4kU7qdOZqd4SEpAcx+r0nykbW8AygZN0aKVpadEtI53T8A2azhzCdXMvEqrLuKE2fA==", "requires": { - "sortablejs": "1.7.0" + "sortablejs": "^1.7.0" } }, "vuex": { @@ -14286,7 +14307,7 @@ "integrity": "sha1-gqwr/2PZUOqeMYmlimViX+3xkEU=", "dev": true, "requires": { - "browser-process-hrtime": "0.1.2" + "browser-process-hrtime": "^0.1.2" } }, "wangeditor": { @@ -14300,9 +14321,9 @@ "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==", "dev": true, "requires": { - "chokidar": "2.0.4", - "graceful-fs": "4.1.11", - "neo-async": "2.5.2" + "chokidar": "^2.0.2", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0" } }, "wbuf": { @@ -14311,7 +14332,7 @@ "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", "dev": true, "requires": { - "minimalistic-assert": "1.0.1" + "minimalistic-assert": "^1.0.0" } }, "wcwidth": { @@ -14320,7 +14341,7 @@ "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", "dev": true, "requires": { - "defaults": "1.0.3" + "defaults": "^1.0.3" } }, "webidl-conversions": { @@ -14340,26 +14361,26 @@ "@webassemblyjs/wasm-edit": "1.5.13", "@webassemblyjs/wasm-opt": "1.5.13", "@webassemblyjs/wasm-parser": "1.5.13", - "acorn": "5.7.1", - "acorn-dynamic-import": "3.0.0", - "ajv": "6.5.3", - "ajv-keywords": "3.2.0", - "chrome-trace-event": "1.0.0", - "enhanced-resolve": "4.1.0", - "eslint-scope": "4.0.0", - "json-parse-better-errors": "1.0.2", - "loader-runner": "2.3.0", - "loader-utils": "1.1.0", - "memory-fs": "0.4.1", - "micromatch": "3.1.10", - "mkdirp": "0.5.1", - "neo-async": "2.5.2", - "node-libs-browser": "2.1.0", - "schema-utils": "0.4.7", - "tapable": "1.0.0", - "uglifyjs-webpack-plugin": "1.3.0", - "watchpack": "1.6.0", - "webpack-sources": "1.1.0" + "acorn": "^5.6.2", + "acorn-dynamic-import": "^3.0.0", + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0", + "chrome-trace-event": "^1.0.0", + "enhanced-resolve": "^4.1.0", + "eslint-scope": "^4.0.0", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.3.0", + "loader-utils": "^1.1.0", + "memory-fs": "~0.4.1", + "micromatch": "^3.1.8", + "mkdirp": "~0.5.0", + "neo-async": "^2.5.0", + "node-libs-browser": "^2.0.0", + "schema-utils": "^0.4.4", + "tapable": "^1.0.0", + "uglifyjs-webpack-plugin": "^1.2.4", + "watchpack": "^1.5.0", + "webpack-sources": "^1.0.1" }, "dependencies": { "ajv": { @@ -14368,10 +14389,10 @@ "integrity": "sha512-LqZ9wY+fx3UMiiPd741yB2pj3hhil+hQc8taf4o2QGRFpWgZ2V5C8HA165DY9sS3fJwsk7uT7ZlFEyC3Ig3lLg==", "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" + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, "ajv-keywords": { @@ -14398,16 +14419,16 @@ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.3", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "dependencies": { "extend-shallow": { @@ -14416,7 +14437,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -14436,8 +14457,8 @@ "integrity": "sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA==", "dev": true, "requires": { - "esrecurse": "4.2.1", - "estraverse": "4.2.0" + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" } }, "expand-brackets": { @@ -14446,13 +14467,13 @@ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "requires": { - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "posix-character-classes": "0.1.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "define-property": { @@ -14461,7 +14482,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -14470,7 +14491,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { @@ -14479,7 +14500,7 @@ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -14488,7 +14509,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -14499,7 +14520,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -14508,7 +14529,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -14519,9 +14540,9 @@ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" } }, "kind-of": { @@ -14538,14 +14559,14 @@ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, "requires": { - "array-unique": "0.3.2", - "define-property": "1.0.0", - "expand-brackets": "2.1.4", - "extend-shallow": "2.0.1", - "fragment-cache": "0.2.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "define-property": { @@ -14554,7 +14575,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { @@ -14563,7 +14584,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -14580,10 +14601,10 @@ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" }, "dependencies": { "extend-shallow": { @@ -14592,7 +14613,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -14603,7 +14624,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -14612,7 +14633,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -14621,9 +14642,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "is-number": { @@ -14632,7 +14653,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -14641,7 +14662,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -14670,19 +14691,19 @@ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.13", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" } } } @@ -14693,18 +14714,18 @@ "integrity": "sha512-rwxyfecTAxoarCC9VlHlIpfQCmmJ/qWD5bpbjkof+7HrNhTNZIwZITxN6CdlYL2axGmwNUQ+tFgcSOiNXMf/sQ==", "dev": true, "requires": { - "acorn": "5.7.1", - "bfj-node4": "5.3.1", - "chalk": "2.4.1", - "commander": "2.17.1", - "ejs": "2.6.1", - "express": "4.16.3", - "filesize": "3.6.1", - "gzip-size": "4.1.0", - "lodash": "4.17.10", - "mkdirp": "0.5.1", - "opener": "1.5.0", - "ws": "4.1.0" + "acorn": "^5.3.0", + "bfj-node4": "^5.2.0", + "chalk": "^2.3.0", + "commander": "^2.13.0", + "ejs": "^2.5.7", + "express": "^4.16.2", + "filesize": "^3.5.11", + "gzip-size": "^4.1.0", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "opener": "^1.4.3", + "ws": "^4.0.0" }, "dependencies": { "commander": { @@ -14719,8 +14740,8 @@ "integrity": "sha512-ZGh/8kF9rrRNffkLFV4AzhvooEclrOH0xaugmqGsIfFgOE/pIz4fMc4Ef+5HSQqTEug2S9JZIWDR47duDSLfaA==", "dev": true, "requires": { - "async-limiter": "1.0.0", - "safe-buffer": "5.1.2" + "async-limiter": "~1.0.0", + "safe-buffer": "~5.1.0" } } } @@ -14731,8 +14752,8 @@ "integrity": "sha512-DQbqFAVEQg1+u9kXDMNyA4yZzQIf/tZD34GQ4ev97G3DrKtGYMyUyyUYZxt50qBPG1MMlKG12PwMrUjlth3uxg==", "dev": true, "requires": { - "deepmerge": "1.5.2", - "javascript-stringify": "1.6.0" + "deepmerge": "^1.5.2", + "javascript-stringify": "^1.6.0" } }, "webpack-dev-middleware": { @@ -14741,13 +14762,13 @@ "integrity": "sha512-I6Mmy/QjWU/kXwCSFGaiOoL5YEQIVmbb0o45xMoCyQAg/mClqZVTcsX327sPfekDyJWpCxb+04whNyLOIxpJdQ==", "dev": true, "requires": { - "loud-rejection": "1.6.0", - "memory-fs": "0.4.1", - "mime": "2.3.1", - "path-is-absolute": "1.0.1", - "range-parser": "1.2.0", - "url-join": "4.0.0", - "webpack-log": "1.2.0" + "loud-rejection": "^1.6.0", + "memory-fs": "~0.4.1", + "mime": "^2.1.0", + "path-is-absolute": "^1.0.0", + "range-parser": "^1.0.3", + "url-join": "^4.0.0", + "webpack-log": "^1.0.1" } }, "webpack-dev-server": { @@ -14757,32 +14778,32 @@ "dev": true, "requires": { "ansi-html": "0.0.7", - "array-includes": "3.0.3", - "bonjour": "3.5.0", - "chokidar": "2.0.4", - "compression": "1.7.3", - "connect-history-api-fallback": "1.5.0", - "debug": "3.1.0", - "del": "3.0.0", - "express": "4.16.3", - "html-entities": "1.2.1", - "http-proxy-middleware": "0.18.0", - "import-local": "1.0.0", + "array-includes": "^3.0.3", + "bonjour": "^3.5.0", + "chokidar": "^2.0.0", + "compression": "^1.5.2", + "connect-history-api-fallback": "^1.3.0", + "debug": "^3.1.0", + "del": "^3.0.0", + "express": "^4.16.2", + "html-entities": "^1.2.0", + "http-proxy-middleware": "~0.18.0", + "import-local": "^1.0.0", "internal-ip": "1.2.0", - "ip": "1.1.5", - "killable": "1.0.0", - "loglevel": "1.6.1", - "opn": "5.3.0", - "portfinder": "1.0.17", - "selfsigned": "1.10.3", - "serve-index": "1.9.1", + "ip": "^1.1.5", + "killable": "^1.0.0", + "loglevel": "^1.4.1", + "opn": "^5.1.0", + "portfinder": "^1.0.9", + "selfsigned": "^1.9.1", + "serve-index": "^1.7.2", "sockjs": "0.3.19", "sockjs-client": "1.1.5", - "spdy": "3.4.7", - "strip-ansi": "3.0.1", - "supports-color": "5.4.0", + "spdy": "^3.4.1", + "strip-ansi": "^3.0.0", + "supports-color": "^5.1.0", "webpack-dev-middleware": "3.1.3", - "webpack-log": "1.2.0", + "webpack-log": "^1.1.2", "yargs": "11.0.0" }, "dependencies": { @@ -14798,12 +14819,12 @@ "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=", "dev": true, "requires": { - "globby": "6.1.0", - "is-path-cwd": "1.0.0", - "is-path-in-cwd": "1.0.1", - "p-map": "1.2.0", - "pify": "3.0.0", - "rimraf": "2.6.2" + "globby": "^6.1.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "p-map": "^1.1.1", + "pify": "^3.0.0", + "rimraf": "^2.2.8" } }, "globby": { @@ -14812,11 +14833,11 @@ "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", "dev": true, "requires": { - "array-union": "1.0.2", - "glob": "7.1.2", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" }, "dependencies": { "pify": { @@ -14839,8 +14860,8 @@ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" }, "dependencies": { "strip-ansi": { @@ -14849,7 +14870,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -14860,18 +14881,18 @@ "integrity": "sha512-Rjp+lMYQOWtgqojx1dEWorjCofi1YN7AoFvYV7b1gx/7dAAeuI4kN5SZiEvr0ZmsZTOpDRcCqrpI10L31tFkBw==", "dev": true, "requires": { - "cliui": "4.1.0", - "decamelize": "1.2.0", - "find-up": "2.1.0", - "get-caller-file": "1.0.3", - "os-locale": "2.1.0", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "2.1.1", - "which-module": "2.0.0", - "y18n": "3.2.1", - "yargs-parser": "9.0.2" + "cliui": "^4.0.0", + "decamelize": "^1.1.1", + "find-up": "^2.1.0", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^9.0.2" } } } @@ -14882,10 +14903,10 @@ "integrity": "sha512-U9AnICnu50HXtiqiDxuli5gLB5PGBo7VvcHx36jRZHwK4vzOYLbImqT4lwWwoMHdQWwEKw736fCHEekokTEKHA==", "dev": true, "requires": { - "chalk": "2.4.1", - "log-symbols": "2.2.0", - "loglevelnext": "1.0.5", - "uuid": "3.2.1" + "chalk": "^2.1.0", + "log-symbols": "^2.1.0", + "loglevelnext": "^1.0.1", + "uuid": "^3.1.0" } }, "webpack-merge": { @@ -14894,7 +14915,7 @@ "integrity": "sha512-TmSe1HZKeOPey3oy1Ov2iS3guIZjWvMT2BBJDzzT5jScHTjVC3mpjJofgueEzaEd6ibhxRDD6MIblDr8tzh8iQ==", "dev": true, "requires": { - "lodash": "4.17.10" + "lodash": "^4.17.5" } }, "webpack-sources": { @@ -14903,8 +14924,8 @@ "integrity": "sha512-aqYp18kPphgoO5c/+NaUvEeACtZjMESmDChuD3NBciVpah3XpMEU9VAAtIaB1BsfJWWTSdv8Vv1m3T0aRk2dUw==", "dev": true, "requires": { - "source-list-map": "2.0.0", - "source-map": "0.6.1" + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" }, "dependencies": { "source-map": { @@ -14921,8 +14942,8 @@ "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=", "dev": true, "requires": { - "http-parser-js": "0.4.13", - "websocket-extensions": "0.1.3" + "http-parser-js": ">=0.4.0", + "websocket-extensions": ">=0.1.1" } }, "websocket-extensions": { @@ -14952,9 +14973,9 @@ "integrity": "sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ==", "dev": true, "requires": { - "lodash.sortby": "4.7.0", - "tr46": "1.0.1", - "webidl-conversions": "4.0.2" + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" } }, "which": { @@ -14963,7 +14984,7 @@ "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", "dev": true, "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { @@ -14984,7 +15005,7 @@ "integrity": "sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ==", "dev": true, "requires": { - "errno": "0.1.7" + "errno": "~0.1.7" } }, "wrap-ansi": { @@ -14993,8 +15014,8 @@ "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" } }, "wrappy": { @@ -15009,7 +15030,7 @@ "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", "dev": true, "requires": { - "mkdirp": "0.5.1" + "mkdirp": "^0.5.1" } }, "ws": { @@ -15018,7 +15039,7 @@ "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==", "dev": true, "requires": { - "async-limiter": "1.0.0" + "async-limiter": "~1.0.0" } }, "xlsx": { @@ -15026,13 +15047,13 @@ "resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.13.3.tgz", "integrity": "sha512-Uk9tc66kNJFJ6CycdRgRJDvFct0GrZMLVF/QCOZiLVBOw3ic1Ud2pUHUe039huM/a+uApNtSXlceJtj0KrcDcg==", "requires": { - "adler-32": "1.2.0", - "cfb": "1.0.8", - "codepage": "1.14.0", - "commander": "2.15.1", - "crc-32": "1.2.0", - "exit-on-epipe": "1.0.1", - "ssf": "0.10.2" + "adler-32": "~1.2.0", + "cfb": "~1.0.8", + "codepage": "~1.14.0", + "commander": "~2.15.1", + "crc-32": "~1.2.0", + "exit-on-epipe": "~1.0.1", + "ssf": "~0.10.2" }, "dependencies": { "commander": { @@ -15072,18 +15093,18 @@ "integrity": "sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A==", "dev": true, "requires": { - "cliui": "4.1.0", - "decamelize": "1.2.0", - "find-up": "2.1.0", - "get-caller-file": "1.0.3", - "os-locale": "2.1.0", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "2.1.1", - "which-module": "2.0.0", - "y18n": "3.2.1", - "yargs-parser": "9.0.2" + "cliui": "^4.0.0", + "decamelize": "^1.1.1", + "find-up": "^2.1.0", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^9.0.2" }, "dependencies": { "ansi-regex": { @@ -15104,8 +15125,8 @@ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" } }, "strip-ansi": { @@ -15114,7 +15135,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -15125,7 +15146,7 @@ "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", "dev": true, "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" } }, "yorkie": { @@ -15134,10 +15155,10 @@ "integrity": "sha512-jcKpkthap6x63MB4TxwCyuIGkV0oYP/YRyuQU5UO0Yz/E/ZAu+653/uov+phdmO54n6BcvFRyyt0RRrWdN2mpw==", "dev": true, "requires": { - "execa": "0.8.0", - "is-ci": "1.2.0", - "normalize-path": "1.0.0", - "strip-indent": "2.0.0" + "execa": "^0.8.0", + "is-ci": "^1.0.10", + "normalize-path": "^1.0.0", + "strip-indent": "^2.0.0" }, "dependencies": { "execa": { @@ -15146,13 +15167,13 @@ "integrity": "sha1-2NdrvBtVIX7RkP1t1J08d07PyNo=", "dev": true, "requires": { - "cross-spawn": "5.1.0", - "get-stream": "3.0.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" } }, "normalize-path": { From 21e6e038ffe7753317d1b5f88b389a02501e5efc Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Sun, 26 Apr 2020 17:23:12 +0800 Subject: [PATCH 002/164] =?UTF-8?q?eslint=E8=A7=84=E5=88=99=E6=9B=B4?= =?UTF-8?q?=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .eslintrc.js | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 489134349..3459a8b84 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,18 +1,28 @@ module.exports = { root: true, - 'extends': [ - 'plugin:vue/essential', - '@vue/standard' - ], + extends: ["plugin:vue/essential", "@vue/standard"], rules: { // allow async-await - 'generator-star-spacing': 'off', + "generator-star-spacing": "off", // allow debugger during development - 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off', - 'vue/no-parsing-error': [2, { 'x-invalid-end-tag': false }], - 'no-undef': 'off' + "no-debugger": process.env.NODE_ENV === "production" ? "error" : "off", + "vue/no-parsing-error": [ + 2, + { + "x-invalid-end-tag": false + } + ], + "no-undef": "off", + camelcase: "off", + quotes: [1, "double"], + semi: ["error", "always"], + "space-before-function-paren": [0, "always"] + // "space-before-function-paren": [2, { + // "anonymous": "never", + // "named": "never" + // }] }, parserOptions: { - parser: 'babel-eslint' + parser: "babel-eslint" } -} +}; From 1635ced7a994d294065a2d4a83332853aad8a32c Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Sun, 26 Apr 2020 17:23:47 +0800 Subject: [PATCH 003/164] =?UTF-8?q?=E6=A0=87=E7=AD=BEtitle=E6=9B=B4?= =?UTF-8?q?=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/index.html | 32 ++-- src/config/index.js | 8 +- src/libs/util.js | 385 +++++++++++++++++++++------------------ src/store/module/user.js | 111 +++++------ 4 files changed, 287 insertions(+), 249 deletions(-) diff --git a/public/index.html b/public/index.html index b8e883f28..008e3476c 100644 --- a/public/index.html +++ b/public/index.html @@ -1,17 +1,21 @@ - - - - - - iview-admin - - - -
- - + + + + + + + iview-dynamicRouter + + + + +
+ + + diff --git a/src/config/index.js b/src/config/index.js index f6a6533de..9b5127044 100644 --- a/src/config/index.js +++ b/src/config/index.js @@ -13,13 +13,13 @@ export default { * @description api请求基础路径 */ baseUrl: { - dev: 'https://www.easy-mock.com/mock/5add9213ce4d0e69998a6f51/iview-admin/', - pro: 'https://produce.com' + dev: "https://www.easy-mock.com/mock/5add9213ce4d0e69998a6f51/iview-admin/", + pro: "https://produce.com" }, /** * @description 默认打开的首页的路由name值,默认为home */ - homeName: 'home', + homeName: "home", /** * @description 需要加载的插件 */ @@ -29,4 +29,4 @@ export default { // developmentOff: false // 设为true后在开发环境不会收集错误信息,方便开发中排查错误 // } } -} +}; diff --git a/src/libs/util.js b/src/libs/util.js index a74a1e5d2..ab7e2978f 100644 --- a/src/libs/util.js +++ b/src/libs/util.js @@ -1,134 +1,150 @@ -import Cookies from 'js-cookie' +import Cookies from "js-cookie"; // cookie保存的天数 -import config from '@/config' -import { forEach, hasOneOf, objEqual } from '@/libs/tools' +import config from "@/config"; +import { forEach, hasOneOf, objEqual } from "@/libs/tools"; -export const TOKEN_KEY = 'token' +export const TOKEN_KEY = "token-dynamicRouter"; -export const setToken = (token) => { - Cookies.set(TOKEN_KEY, token, {expires: config.cookieExpires || 1}) -} +export const setToken = token => { + Cookies.set(TOKEN_KEY, token, { expires: config.cookieExpires || 1 }); +}; export const getToken = () => { - const token = Cookies.get(TOKEN_KEY) - if (token) return token - else return false -} + const token = Cookies.get(TOKEN_KEY); + if (token) return token; + else return false; +}; -export const hasChild = (item) => { - return item.children && item.children.length !== 0 -} +export const removeToken = () => { + Cookies.remove(TOKEN_KEY); +}; + +export const hasChild = item => { + return item.children && item.children.length !== 0; +}; const showThisMenuEle = (item, access) => { if (item.meta && item.meta.access && item.meta.access.length) { - if (hasOneOf(item.meta.access, access)) return true - else return false - } else return true -} + if (hasOneOf(item.meta.access, access)) return true; + else return false; + } else return true; +}; /** * @param {Array} list 通过路由列表得到菜单列表 * @returns {Array} */ export const getMenuByRouter = (list, access) => { - let res = [] + let res = []; forEach(list, item => { if (!item.meta || (item.meta && !item.meta.hideInMenu)) { let obj = { - icon: (item.meta && item.meta.icon) || '', + icon: (item.meta && item.meta.icon) || "", name: item.name, meta: item.meta + }; + if ( + (hasChild(item) || (item.meta && item.meta.showAlways)) && + showThisMenuEle(item, access) + ) { + obj.children = getMenuByRouter(item.children, access); } - if ((hasChild(item) || (item.meta && item.meta.showAlways)) && showThisMenuEle(item, access)) { - obj.children = getMenuByRouter(item.children, access) - } - if (item.meta && item.meta.href) obj.href = item.meta.href - if (showThisMenuEle(item, access)) res.push(obj) + if (item.meta && item.meta.href) obj.href = item.meta.href; + if (showThisMenuEle(item, access)) res.push(obj); } - }) - return res -} + }); + return res; +}; /** * @param {Array} routeMetched 当前路由metched * @returns {Array} */ export const getBreadCrumbList = (route, homeRoute) => { - let homeItem = { ...homeRoute, icon: homeRoute.meta.icon } - let routeMetched = route.matched - if (routeMetched.some(item => item.name === homeRoute.name)) return [homeItem] - let res = routeMetched.filter(item => { - return item.meta === undefined || !item.meta.hide - }).map(item => { - let meta = {...item.meta} - if (meta.title && typeof meta.title === 'function') meta.title = meta.title(route) - let obj = { - icon: (item.meta && item.meta.icon) || '', - name: item.name, - meta: meta - } - return obj - }) + let homeItem = { ...homeRoute, icon: homeRoute.meta.icon }; + let routeMetched = route.matched; + if (routeMetched.some(item => item.name === homeRoute.name)) { + return [homeItem]; + } + let res = routeMetched + .filter(item => { + return item.meta === undefined || !item.meta.hide; + }) + .map(item => { + let meta = { ...item.meta }; + if (meta.title && typeof meta.title === "function") { + meta.title = meta.title(route); + } + let obj = { + icon: (item.meta && item.meta.icon) || "", + name: item.name, + meta: meta + }; + return obj; + }); res = res.filter(item => { - return !item.meta.hideInMenu - }) - return [{...homeItem, to: homeRoute.path}, ...res] -} + return !item.meta.hideInMenu; + }); + return [{ ...homeItem, to: homeRoute.path }, ...res]; +}; -export const getRouteTitleHandled = (route) => { - let router = {...route} - let meta = {...route.meta} - let title = '' +export const getRouteTitleHandled = route => { + let router = { ...route }; + let meta = { ...route.meta }; + let title = ""; if (meta.title) { - if (typeof meta.title === 'function') title = meta.title(router) - else title = meta.title + if (typeof meta.title === "function") title = meta.title(router); + else title = meta.title; } - meta.title = title - router.meta = meta - return router -} + meta.title = title; + router.meta = meta; + return router; +}; export const showTitle = (item, vm) => { - let title = item.meta.title + let title = item.meta.title; if (vm.$config.useI18n) { - if (title.includes('{{') && title.includes('}}') && vm.$config.useI18n) title = title.replace(/({{[\s\S]+?}})/, (m, str) => str.replace(/{{([\s\S]*)}}/, (m, _) => vm.$t(_.trim()))) - else title = vm.$t(item.name) - } else title = (item.meta && item.meta.title) || item.name - return title -} + if (title.includes("{{") && title.includes("}}") && vm.$config.useI18n) { + title = title.replace(/({{[\s\S]+?}})/, (m, str) => + str.replace(/{{([\s\S]*)}}/, (m, _) => vm.$t(_.trim())) + ); + } else title = vm.$t(item.name); + } else title = (item.meta && item.meta.title) || item.name; + return title; +}; /** * @description 本地存储和获取标签导航列表 */ export const setTagNavListInLocalstorage = list => { - localStorage.tagNaveList = JSON.stringify(list) -} + localStorage.tagNaveList = JSON.stringify(list); +}; /** * @returns {Array} 其中的每个元素只包含路由原信息中的name, path, meta三项 */ export const getTagNavListFromLocalstorage = () => { - const list = localStorage.tagNaveList - return list ? JSON.parse(list) : [] -} + const list = localStorage.tagNaveList; + return list ? JSON.parse(list) : []; +}; /** * @param {Array} routers 路由列表数组 * @description 用于找到路由列表中name为home的对象 */ -export const getHomeRoute = (routers, homeName = 'home') => { - let i = -1 - let len = routers.length - let homeRoute = {} +export const getHomeRoute = (routers, homeName = "home") => { + let i = -1; + let len = routers.length; + let homeRoute = {}; while (++i < len) { - let item = routers[i] + let item = routers[i]; if (item.children && item.children.length) { - let res = getHomeRoute(item.children, homeName) - if (res.name) return res + let res = getHomeRoute(item.children, homeName); + if (res.name) return res; } else { - if (item.name === homeName) homeRoute = item + if (item.name === homeName) homeRoute = item; } } - return homeRoute -} + return homeRoute; +}; /** * @param {*} list 现有标签导航列表 @@ -136,21 +152,22 @@ export const getHomeRoute = (routers, homeName = 'home') => { * @description 如果该newRoute已经存在则不再添加 */ export const getNewTagList = (list, newRoute) => { - const { name, path, meta } = newRoute - let newList = [...list] - if (newList.findIndex(item => item.name === name) >= 0) return newList - else newList.push({ name, path, meta }) - return newList -} + const { name, path, meta } = newRoute; + let newList = [...list]; + if (newList.findIndex(item => item.name === name) >= 0) return newList; + else newList.push({ name, path, meta }); + return newList; +}; /** * @param {*} access 用户权限数组,如 ['super_admin', 'admin'] * @param {*} route 路由列表 */ const hasAccess = (access, route) => { - if (route.meta && route.meta.access) return hasOneOf(access, route.meta.access) - else return true -} + if (route.meta && route.meta.access) { + return hasOneOf(access, route.meta.access); + } else return true; +}; /** * 权鉴 @@ -160,154 +177,160 @@ const hasAccess = (access, route) => { * @description 用户是否可跳转到该页 */ export const canTurnTo = (name, access, routes) => { - const routePermissionJudge = (list) => { + const routePermissionJudge = list => { return list.some(item => { if (item.children && item.children.length) { - return routePermissionJudge(item.children) + return routePermissionJudge(item.children); } else if (item.name === name) { - return hasAccess(access, item) + return hasAccess(access, item); } - }) - } + }); + }; - return routePermissionJudge(routes) -} + return routePermissionJudge(routes); +}; /** * @param {String} url * @description 从URL中解析参数 */ export const getParams = url => { - const keyValueArr = url.split('?')[1].split('&') - let paramObj = {} + const keyValueArr = url.split("?")[1].split("&"); + let paramObj = {}; keyValueArr.forEach(item => { - const keyValue = item.split('=') - paramObj[keyValue[0]] = keyValue[1] - }) - return paramObj -} + const keyValue = item.split("="); + paramObj[keyValue[0]] = keyValue[1]; + }); + return paramObj; +}; /** * @param {Array} list 标签列表 * @param {String} name 当前关闭的标签的name */ export const getNextRoute = (list, route) => { - let res = {} + let res = {}; if (list.length === 2) { - res = getHomeRoute(list) + res = getHomeRoute(list); } else { - const index = list.findIndex(item => routeEqual(item, route)) - if (index === list.length - 1) res = list[list.length - 2] - else res = list[index + 1] + const index = list.findIndex(item => routeEqual(item, route)); + if (index === list.length - 1) res = list[list.length - 2]; + else res = list[index + 1]; } - return res -} + return res; +}; /** * @param {Number} times 回调函数需要执行的次数 * @param {Function} callback 回调函数 */ export const doCustomTimes = (times, callback) => { - let i = -1 + let i = -1; while (++i < times) { - callback(i) + callback(i); } -} +}; /** * @param {Object} file 从上传组件得到的文件对象 * @returns {Promise} resolve参数是解析后的二维数组 * @description 从Csv文件中解析出表格,解析成二维数组 */ -export const getArrayFromFile = (file) => { - let nameSplit = file.name.split('.') - let format = nameSplit[nameSplit.length - 1] +export const getArrayFromFile = file => { + let nameSplit = file.name.split("."); + let format = nameSplit[nameSplit.length - 1]; return new Promise((resolve, reject) => { - let reader = new FileReader() - reader.readAsText(file) // 以文本格式读取 - let arr = [] - reader.onload = function (evt) { - let data = evt.target.result // 读到的数据 - let pasteData = data.trim() - arr = pasteData.split((/[\n\u0085\u2028\u2029]|\r\n?/g)).map(row => { - return row.split('\t') - }).map(item => { - return item[0].split(',') - }) - if (format === 'csv') resolve(arr) - else reject(new Error('[Format Error]:你上传的不是Csv文件')) - } - }) -} + let reader = new FileReader(); + reader.readAsText(file); // 以文本格式读取 + let arr = []; + reader.onload = function(evt) { + let data = evt.target.result; // 读到的数据 + let pasteData = data.trim(); + arr = pasteData + .split(/[\n\u0085\u2028\u2029]|\r\n?/g) + .map(row => { + return row.split("\t"); + }) + .map(item => { + return item[0].split(","); + }); + if (format === "csv") resolve(arr); + else reject(new Error("[Format Error]:你上传的不是Csv文件")); + }; + }); +}; /** * @param {Array} array 表格数据二维数组 * @returns {Object} { columns, tableData } * @description 从二维数组中获取表头和表格数据,将第一行作为表头,用于在iView的表格中展示数据 */ -export const getTableDataFromArray = (array) => { - let columns = [] - let tableData = [] +export const getTableDataFromArray = array => { + let columns = []; + let tableData = []; if (array.length > 1) { - let titles = array.shift() + let titles = array.shift(); columns = titles.map(item => { return { title: item, key: item - } - }) + }; + }); tableData = array.map(item => { - let res = {} + let res = {}; item.forEach((col, i) => { - res[titles[i]] = col - }) - return res - }) + res[titles[i]] = col; + }); + return res; + }); } return { columns, tableData - } -} + }; +}; export const findNodeUpper = (ele, tag) => { if (ele.parentNode) { if (ele.parentNode.tagName === tag.toUpperCase()) { - return ele.parentNode + return ele.parentNode; } else { - return findNodeUpper(ele.parentNode, tag) + return findNodeUpper(ele.parentNode, tag); } } -} +}; export const findNodeUpperByClasses = (ele, classes) => { - let parentNode = ele.parentNode + let parentNode = ele.parentNode; if (parentNode) { - let classList = parentNode.classList - if (classList && classes.every(className => classList.contains(className))) { - return parentNode + let classList = parentNode.classList; + if ( + classList && + classes.every(className => classList.contains(className)) + ) { + return parentNode; } else { - return findNodeUpperByClasses(parentNode, classes) + return findNodeUpperByClasses(parentNode, classes); } } -} +}; export const findNodeDownward = (ele, tag) => { - const tagName = tag.toUpperCase() + const tagName = tag.toUpperCase(); if (ele.childNodes.length) { - let i = -1 - let len = ele.childNodes.length + let i = -1; + let len = ele.childNodes.length; while (++i < len) { - let child = ele.childNodes[i] - if (child.tagName === tagName) return child - else return findNodeDownward(child, tag) + let child = ele.childNodes[i]; + if (child.tagName === tagName) return child; + else return findNodeDownward(child, tag); } } -} +}; export const showByAccess = (access, canViewAccess) => { - return hasOneOf(canViewAccess, access) -} + return hasOneOf(canViewAccess, access); +}; /** * @description 根据name/params/query判断两个路由对象是否相等 @@ -315,29 +338,33 @@ export const showByAccess = (access, canViewAccess) => { * @param {*} route2 路由对象 */ export const routeEqual = (route1, route2) => { - const params1 = route1.params || {} - const params2 = route2.params || {} - const query1 = route1.query || {} - const query2 = route2.query || {} - return (route1.name === route2.name) && objEqual(params1, params2) && objEqual(query1, query2) -} + const params1 = route1.params || {}; + const params2 = route2.params || {}; + const query1 = route1.query || {}; + const query2 = route2.query || {}; + return ( + route1.name === route2.name && + objEqual(params1, params2) && + objEqual(query1, query2) + ); +}; /** * 判断打开的标签列表里是否已存在这个新添加的路由对象 */ export const routeHasExist = (tagNavList, routeItem) => { - let len = tagNavList.length - let res = false - doCustomTimes(len, (index) => { - if (routeEqual(tagNavList[index], routeItem)) res = true - }) - return res -} + let len = tagNavList.length; + let res = false; + doCustomTimes(len, index => { + if (routeEqual(tagNavList[index], routeItem)) res = true; + }); + return res; +}; export const localSave = (key, value) => { - localStorage.setItem(key, value) -} + localStorage.setItem(key, value); +}; -export const localRead = (key) => { - return localStorage.getItem(key) || '' -} +export const localRead = key => { + return localStorage.getItem(key) || ""; +}; diff --git a/src/store/module/user.js b/src/store/module/user.js index f6795bc5b..cee6faced 100644 --- a/src/store/module/user.js +++ b/src/store/module/user.js @@ -1,88 +1,95 @@ -import { login, logout, getUserInfo } from '@/api/user' -import { setToken, getToken } from '@/libs/util' +import { login, logout, getUserInfo } from "@/api/user"; +import { setToken, getToken, removeToken } from "@/libs/util"; export default { state: { - userName: '', - userId: '', - avatorImgPath: '', + userName: "", + userId: "", + avatorImgPath: "", token: getToken(), - access: '', + access: "", hasGetInfo: false }, mutations: { - setAvator (state, avatorPath) { - state.avatorImgPath = avatorPath + setAvator(state, avatorPath) { + state.avatorImgPath = avatorPath; }, - setUserId (state, id) { - state.userId = id + setUserId(state, id) { + state.userId = id; }, - setUserName (state, name) { - state.userName = name + setUserName(state, name) { + state.userName = name; }, - setAccess (state, access) { - state.access = access + setAccess(state, access) { + state.access = access; }, - setToken (state, token) { - state.token = token - setToken(token) + setToken(state, token) { + state.token = token; + setToken(token); }, - setHasGetInfo (state, status) { - state.hasGetInfo = status + setHasGetInfo(state, status) { + state.hasGetInfo = status; } }, actions: { // 登录 - handleLogin ({ commit }, {userName, password}) { - userName = userName.trim() + handleLogin({ commit }, { userName, password }) { + userName = userName.trim(); return new Promise((resolve, reject) => { login({ userName, password - }).then(res => { - const data = res.data - commit('setToken', data.token) - resolve() - }).catch(err => { - reject(err) }) - }) + .then(res => { + const data = res.data; + commit("setToken", data.token); + resolve(); + }) + .catch(err => { + reject(err); + }); + }); }, // 退出登录 - handleLogOut ({ state, commit }) { + handleLogOut({ state, commit }) { return new Promise((resolve, reject) => { - logout(state.token).then(() => { - commit('setToken', '') - commit('setAccess', []) - resolve() - }).catch(err => { - reject(err) - }) + logout(state.token) + .then(() => { + // commit('setToken', '') + removeToken(); // 删除token + commit("setAccess", []); + resolve(); + }) + .catch(err => { + reject(err); + }); // 如果你的退出登录无需请求接口,则可以直接使用下面三行代码而无需使用logout调用接口 // commit('setToken', '') // commit('setAccess', []) // resolve() - }) + }); }, // 获取用户相关信息 - getUserInfo ({ state, commit }) { + getUserInfo({ state, commit }) { return new Promise((resolve, reject) => { try { - getUserInfo(state.token).then(res => { - const data = res.data - commit('setAvator', data.avator) - commit('setUserName', data.name) - commit('setUserId', data.user_id) - commit('setAccess', data.access) - commit('setHasGetInfo', true) - resolve(data) - }).catch(err => { - reject(err) - }) + getUserInfo(state.token) + .then(res => { + const data = res.data; + commit("setAvator", data.avator); + commit("setUserName", data.name); + commit("setUserId", data.user_id); + commit("setAccess", data.access); + commit("setHasGetInfo", true); + resolve(data); + }) + .catch(err => { + reject(err); + }); } catch (error) { - reject(error) + reject(error); } - }) + }); } } -} +}; From c6fbaefca373acab4a7a82d464a6853c2d331797 Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Sun, 26 Apr 2020 17:26:13 +0800 Subject: [PATCH 004/164] =?UTF-8?q?eslint=E8=A7=84=E5=88=99=E6=9B=B4?= =?UTF-8?q?=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/index.html | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/public/index.html b/public/index.html index b8e883f28..008e3476c 100644 --- a/public/index.html +++ b/public/index.html @@ -1,17 +1,21 @@ - - - - - - iview-admin - - - -
- - + + + + + + + iview-dynamicRouter + + + + +
+ + + From bb1e8e92be70ebcddd07cf7eebf02050274d73bf Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Sun, 26 Apr 2020 17:27:14 +0800 Subject: [PATCH 005/164] =?UTF-8?q?eslint=E8=A7=84=E5=88=99=E6=9B=B4?= =?UTF-8?q?=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .eslintrc.js | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 489134349..3459a8b84 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,18 +1,28 @@ module.exports = { root: true, - 'extends': [ - 'plugin:vue/essential', - '@vue/standard' - ], + extends: ["plugin:vue/essential", "@vue/standard"], rules: { // allow async-await - 'generator-star-spacing': 'off', + "generator-star-spacing": "off", // allow debugger during development - 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off', - 'vue/no-parsing-error': [2, { 'x-invalid-end-tag': false }], - 'no-undef': 'off' + "no-debugger": process.env.NODE_ENV === "production" ? "error" : "off", + "vue/no-parsing-error": [ + 2, + { + "x-invalid-end-tag": false + } + ], + "no-undef": "off", + camelcase: "off", + quotes: [1, "double"], + semi: ["error", "always"], + "space-before-function-paren": [0, "always"] + // "space-before-function-paren": [2, { + // "anonymous": "never", + // "named": "never" + // }] }, parserOptions: { - parser: 'babel-eslint' + parser: "babel-eslint" } -} +}; From c280122606c62b3b99ba3dd8bd08daf5fa1417ac Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Sun, 26 Apr 2020 17:27:42 +0800 Subject: [PATCH 006/164] =?UTF-8?q?=E8=BF=BD=E5=8A=A0=E5=88=A0=E9=99=A4tok?= =?UTF-8?q?en=E4=BA=8B=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/libs/util.js | 385 +++++++++++++++++++++++++---------------------- 1 file changed, 206 insertions(+), 179 deletions(-) diff --git a/src/libs/util.js b/src/libs/util.js index a74a1e5d2..ab7e2978f 100644 --- a/src/libs/util.js +++ b/src/libs/util.js @@ -1,134 +1,150 @@ -import Cookies from 'js-cookie' +import Cookies from "js-cookie"; // cookie保存的天数 -import config from '@/config' -import { forEach, hasOneOf, objEqual } from '@/libs/tools' +import config from "@/config"; +import { forEach, hasOneOf, objEqual } from "@/libs/tools"; -export const TOKEN_KEY = 'token' +export const TOKEN_KEY = "token-dynamicRouter"; -export const setToken = (token) => { - Cookies.set(TOKEN_KEY, token, {expires: config.cookieExpires || 1}) -} +export const setToken = token => { + Cookies.set(TOKEN_KEY, token, { expires: config.cookieExpires || 1 }); +}; export const getToken = () => { - const token = Cookies.get(TOKEN_KEY) - if (token) return token - else return false -} + const token = Cookies.get(TOKEN_KEY); + if (token) return token; + else return false; +}; -export const hasChild = (item) => { - return item.children && item.children.length !== 0 -} +export const removeToken = () => { + Cookies.remove(TOKEN_KEY); +}; + +export const hasChild = item => { + return item.children && item.children.length !== 0; +}; const showThisMenuEle = (item, access) => { if (item.meta && item.meta.access && item.meta.access.length) { - if (hasOneOf(item.meta.access, access)) return true - else return false - } else return true -} + if (hasOneOf(item.meta.access, access)) return true; + else return false; + } else return true; +}; /** * @param {Array} list 通过路由列表得到菜单列表 * @returns {Array} */ export const getMenuByRouter = (list, access) => { - let res = [] + let res = []; forEach(list, item => { if (!item.meta || (item.meta && !item.meta.hideInMenu)) { let obj = { - icon: (item.meta && item.meta.icon) || '', + icon: (item.meta && item.meta.icon) || "", name: item.name, meta: item.meta + }; + if ( + (hasChild(item) || (item.meta && item.meta.showAlways)) && + showThisMenuEle(item, access) + ) { + obj.children = getMenuByRouter(item.children, access); } - if ((hasChild(item) || (item.meta && item.meta.showAlways)) && showThisMenuEle(item, access)) { - obj.children = getMenuByRouter(item.children, access) - } - if (item.meta && item.meta.href) obj.href = item.meta.href - if (showThisMenuEle(item, access)) res.push(obj) + if (item.meta && item.meta.href) obj.href = item.meta.href; + if (showThisMenuEle(item, access)) res.push(obj); } - }) - return res -} + }); + return res; +}; /** * @param {Array} routeMetched 当前路由metched * @returns {Array} */ export const getBreadCrumbList = (route, homeRoute) => { - let homeItem = { ...homeRoute, icon: homeRoute.meta.icon } - let routeMetched = route.matched - if (routeMetched.some(item => item.name === homeRoute.name)) return [homeItem] - let res = routeMetched.filter(item => { - return item.meta === undefined || !item.meta.hide - }).map(item => { - let meta = {...item.meta} - if (meta.title && typeof meta.title === 'function') meta.title = meta.title(route) - let obj = { - icon: (item.meta && item.meta.icon) || '', - name: item.name, - meta: meta - } - return obj - }) + let homeItem = { ...homeRoute, icon: homeRoute.meta.icon }; + let routeMetched = route.matched; + if (routeMetched.some(item => item.name === homeRoute.name)) { + return [homeItem]; + } + let res = routeMetched + .filter(item => { + return item.meta === undefined || !item.meta.hide; + }) + .map(item => { + let meta = { ...item.meta }; + if (meta.title && typeof meta.title === "function") { + meta.title = meta.title(route); + } + let obj = { + icon: (item.meta && item.meta.icon) || "", + name: item.name, + meta: meta + }; + return obj; + }); res = res.filter(item => { - return !item.meta.hideInMenu - }) - return [{...homeItem, to: homeRoute.path}, ...res] -} + return !item.meta.hideInMenu; + }); + return [{ ...homeItem, to: homeRoute.path }, ...res]; +}; -export const getRouteTitleHandled = (route) => { - let router = {...route} - let meta = {...route.meta} - let title = '' +export const getRouteTitleHandled = route => { + let router = { ...route }; + let meta = { ...route.meta }; + let title = ""; if (meta.title) { - if (typeof meta.title === 'function') title = meta.title(router) - else title = meta.title + if (typeof meta.title === "function") title = meta.title(router); + else title = meta.title; } - meta.title = title - router.meta = meta - return router -} + meta.title = title; + router.meta = meta; + return router; +}; export const showTitle = (item, vm) => { - let title = item.meta.title + let title = item.meta.title; if (vm.$config.useI18n) { - if (title.includes('{{') && title.includes('}}') && vm.$config.useI18n) title = title.replace(/({{[\s\S]+?}})/, (m, str) => str.replace(/{{([\s\S]*)}}/, (m, _) => vm.$t(_.trim()))) - else title = vm.$t(item.name) - } else title = (item.meta && item.meta.title) || item.name - return title -} + if (title.includes("{{") && title.includes("}}") && vm.$config.useI18n) { + title = title.replace(/({{[\s\S]+?}})/, (m, str) => + str.replace(/{{([\s\S]*)}}/, (m, _) => vm.$t(_.trim())) + ); + } else title = vm.$t(item.name); + } else title = (item.meta && item.meta.title) || item.name; + return title; +}; /** * @description 本地存储和获取标签导航列表 */ export const setTagNavListInLocalstorage = list => { - localStorage.tagNaveList = JSON.stringify(list) -} + localStorage.tagNaveList = JSON.stringify(list); +}; /** * @returns {Array} 其中的每个元素只包含路由原信息中的name, path, meta三项 */ export const getTagNavListFromLocalstorage = () => { - const list = localStorage.tagNaveList - return list ? JSON.parse(list) : [] -} + const list = localStorage.tagNaveList; + return list ? JSON.parse(list) : []; +}; /** * @param {Array} routers 路由列表数组 * @description 用于找到路由列表中name为home的对象 */ -export const getHomeRoute = (routers, homeName = 'home') => { - let i = -1 - let len = routers.length - let homeRoute = {} +export const getHomeRoute = (routers, homeName = "home") => { + let i = -1; + let len = routers.length; + let homeRoute = {}; while (++i < len) { - let item = routers[i] + let item = routers[i]; if (item.children && item.children.length) { - let res = getHomeRoute(item.children, homeName) - if (res.name) return res + let res = getHomeRoute(item.children, homeName); + if (res.name) return res; } else { - if (item.name === homeName) homeRoute = item + if (item.name === homeName) homeRoute = item; } } - return homeRoute -} + return homeRoute; +}; /** * @param {*} list 现有标签导航列表 @@ -136,21 +152,22 @@ export const getHomeRoute = (routers, homeName = 'home') => { * @description 如果该newRoute已经存在则不再添加 */ export const getNewTagList = (list, newRoute) => { - const { name, path, meta } = newRoute - let newList = [...list] - if (newList.findIndex(item => item.name === name) >= 0) return newList - else newList.push({ name, path, meta }) - return newList -} + const { name, path, meta } = newRoute; + let newList = [...list]; + if (newList.findIndex(item => item.name === name) >= 0) return newList; + else newList.push({ name, path, meta }); + return newList; +}; /** * @param {*} access 用户权限数组,如 ['super_admin', 'admin'] * @param {*} route 路由列表 */ const hasAccess = (access, route) => { - if (route.meta && route.meta.access) return hasOneOf(access, route.meta.access) - else return true -} + if (route.meta && route.meta.access) { + return hasOneOf(access, route.meta.access); + } else return true; +}; /** * 权鉴 @@ -160,154 +177,160 @@ const hasAccess = (access, route) => { * @description 用户是否可跳转到该页 */ export const canTurnTo = (name, access, routes) => { - const routePermissionJudge = (list) => { + const routePermissionJudge = list => { return list.some(item => { if (item.children && item.children.length) { - return routePermissionJudge(item.children) + return routePermissionJudge(item.children); } else if (item.name === name) { - return hasAccess(access, item) + return hasAccess(access, item); } - }) - } + }); + }; - return routePermissionJudge(routes) -} + return routePermissionJudge(routes); +}; /** * @param {String} url * @description 从URL中解析参数 */ export const getParams = url => { - const keyValueArr = url.split('?')[1].split('&') - let paramObj = {} + const keyValueArr = url.split("?")[1].split("&"); + let paramObj = {}; keyValueArr.forEach(item => { - const keyValue = item.split('=') - paramObj[keyValue[0]] = keyValue[1] - }) - return paramObj -} + const keyValue = item.split("="); + paramObj[keyValue[0]] = keyValue[1]; + }); + return paramObj; +}; /** * @param {Array} list 标签列表 * @param {String} name 当前关闭的标签的name */ export const getNextRoute = (list, route) => { - let res = {} + let res = {}; if (list.length === 2) { - res = getHomeRoute(list) + res = getHomeRoute(list); } else { - const index = list.findIndex(item => routeEqual(item, route)) - if (index === list.length - 1) res = list[list.length - 2] - else res = list[index + 1] + const index = list.findIndex(item => routeEqual(item, route)); + if (index === list.length - 1) res = list[list.length - 2]; + else res = list[index + 1]; } - return res -} + return res; +}; /** * @param {Number} times 回调函数需要执行的次数 * @param {Function} callback 回调函数 */ export const doCustomTimes = (times, callback) => { - let i = -1 + let i = -1; while (++i < times) { - callback(i) + callback(i); } -} +}; /** * @param {Object} file 从上传组件得到的文件对象 * @returns {Promise} resolve参数是解析后的二维数组 * @description 从Csv文件中解析出表格,解析成二维数组 */ -export const getArrayFromFile = (file) => { - let nameSplit = file.name.split('.') - let format = nameSplit[nameSplit.length - 1] +export const getArrayFromFile = file => { + let nameSplit = file.name.split("."); + let format = nameSplit[nameSplit.length - 1]; return new Promise((resolve, reject) => { - let reader = new FileReader() - reader.readAsText(file) // 以文本格式读取 - let arr = [] - reader.onload = function (evt) { - let data = evt.target.result // 读到的数据 - let pasteData = data.trim() - arr = pasteData.split((/[\n\u0085\u2028\u2029]|\r\n?/g)).map(row => { - return row.split('\t') - }).map(item => { - return item[0].split(',') - }) - if (format === 'csv') resolve(arr) - else reject(new Error('[Format Error]:你上传的不是Csv文件')) - } - }) -} + let reader = new FileReader(); + reader.readAsText(file); // 以文本格式读取 + let arr = []; + reader.onload = function(evt) { + let data = evt.target.result; // 读到的数据 + let pasteData = data.trim(); + arr = pasteData + .split(/[\n\u0085\u2028\u2029]|\r\n?/g) + .map(row => { + return row.split("\t"); + }) + .map(item => { + return item[0].split(","); + }); + if (format === "csv") resolve(arr); + else reject(new Error("[Format Error]:你上传的不是Csv文件")); + }; + }); +}; /** * @param {Array} array 表格数据二维数组 * @returns {Object} { columns, tableData } * @description 从二维数组中获取表头和表格数据,将第一行作为表头,用于在iView的表格中展示数据 */ -export const getTableDataFromArray = (array) => { - let columns = [] - let tableData = [] +export const getTableDataFromArray = array => { + let columns = []; + let tableData = []; if (array.length > 1) { - let titles = array.shift() + let titles = array.shift(); columns = titles.map(item => { return { title: item, key: item - } - }) + }; + }); tableData = array.map(item => { - let res = {} + let res = {}; item.forEach((col, i) => { - res[titles[i]] = col - }) - return res - }) + res[titles[i]] = col; + }); + return res; + }); } return { columns, tableData - } -} + }; +}; export const findNodeUpper = (ele, tag) => { if (ele.parentNode) { if (ele.parentNode.tagName === tag.toUpperCase()) { - return ele.parentNode + return ele.parentNode; } else { - return findNodeUpper(ele.parentNode, tag) + return findNodeUpper(ele.parentNode, tag); } } -} +}; export const findNodeUpperByClasses = (ele, classes) => { - let parentNode = ele.parentNode + let parentNode = ele.parentNode; if (parentNode) { - let classList = parentNode.classList - if (classList && classes.every(className => classList.contains(className))) { - return parentNode + let classList = parentNode.classList; + if ( + classList && + classes.every(className => classList.contains(className)) + ) { + return parentNode; } else { - return findNodeUpperByClasses(parentNode, classes) + return findNodeUpperByClasses(parentNode, classes); } } -} +}; export const findNodeDownward = (ele, tag) => { - const tagName = tag.toUpperCase() + const tagName = tag.toUpperCase(); if (ele.childNodes.length) { - let i = -1 - let len = ele.childNodes.length + let i = -1; + let len = ele.childNodes.length; while (++i < len) { - let child = ele.childNodes[i] - if (child.tagName === tagName) return child - else return findNodeDownward(child, tag) + let child = ele.childNodes[i]; + if (child.tagName === tagName) return child; + else return findNodeDownward(child, tag); } } -} +}; export const showByAccess = (access, canViewAccess) => { - return hasOneOf(canViewAccess, access) -} + return hasOneOf(canViewAccess, access); +}; /** * @description 根据name/params/query判断两个路由对象是否相等 @@ -315,29 +338,33 @@ export const showByAccess = (access, canViewAccess) => { * @param {*} route2 路由对象 */ export const routeEqual = (route1, route2) => { - const params1 = route1.params || {} - const params2 = route2.params || {} - const query1 = route1.query || {} - const query2 = route2.query || {} - return (route1.name === route2.name) && objEqual(params1, params2) && objEqual(query1, query2) -} + const params1 = route1.params || {}; + const params2 = route2.params || {}; + const query1 = route1.query || {}; + const query2 = route2.query || {}; + return ( + route1.name === route2.name && + objEqual(params1, params2) && + objEqual(query1, query2) + ); +}; /** * 判断打开的标签列表里是否已存在这个新添加的路由对象 */ export const routeHasExist = (tagNavList, routeItem) => { - let len = tagNavList.length - let res = false - doCustomTimes(len, (index) => { - if (routeEqual(tagNavList[index], routeItem)) res = true - }) - return res -} + let len = tagNavList.length; + let res = false; + doCustomTimes(len, index => { + if (routeEqual(tagNavList[index], routeItem)) res = true; + }); + return res; +}; export const localSave = (key, value) => { - localStorage.setItem(key, value) -} + localStorage.setItem(key, value); +}; -export const localRead = (key) => { - return localStorage.getItem(key) || '' -} +export const localRead = key => { + return localStorage.getItem(key) || ""; +}; From aae9db107f9a1ff95d3ebf95cc5a6822eb01dcfb Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Sun, 26 Apr 2020 17:28:01 +0800 Subject: [PATCH 007/164] =?UTF-8?q?=E7=94=A8=E6=88=B7=E7=99=BB=E5=87=BA?= =?UTF-8?q?=E6=97=B6=E5=88=A0=E9=99=A4token?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/store/module/user.js | 111 +++++++++++++++++++++------------------ 1 file changed, 59 insertions(+), 52 deletions(-) diff --git a/src/store/module/user.js b/src/store/module/user.js index f6795bc5b..cee6faced 100644 --- a/src/store/module/user.js +++ b/src/store/module/user.js @@ -1,88 +1,95 @@ -import { login, logout, getUserInfo } from '@/api/user' -import { setToken, getToken } from '@/libs/util' +import { login, logout, getUserInfo } from "@/api/user"; +import { setToken, getToken, removeToken } from "@/libs/util"; export default { state: { - userName: '', - userId: '', - avatorImgPath: '', + userName: "", + userId: "", + avatorImgPath: "", token: getToken(), - access: '', + access: "", hasGetInfo: false }, mutations: { - setAvator (state, avatorPath) { - state.avatorImgPath = avatorPath + setAvator(state, avatorPath) { + state.avatorImgPath = avatorPath; }, - setUserId (state, id) { - state.userId = id + setUserId(state, id) { + state.userId = id; }, - setUserName (state, name) { - state.userName = name + setUserName(state, name) { + state.userName = name; }, - setAccess (state, access) { - state.access = access + setAccess(state, access) { + state.access = access; }, - setToken (state, token) { - state.token = token - setToken(token) + setToken(state, token) { + state.token = token; + setToken(token); }, - setHasGetInfo (state, status) { - state.hasGetInfo = status + setHasGetInfo(state, status) { + state.hasGetInfo = status; } }, actions: { // 登录 - handleLogin ({ commit }, {userName, password}) { - userName = userName.trim() + handleLogin({ commit }, { userName, password }) { + userName = userName.trim(); return new Promise((resolve, reject) => { login({ userName, password - }).then(res => { - const data = res.data - commit('setToken', data.token) - resolve() - }).catch(err => { - reject(err) }) - }) + .then(res => { + const data = res.data; + commit("setToken", data.token); + resolve(); + }) + .catch(err => { + reject(err); + }); + }); }, // 退出登录 - handleLogOut ({ state, commit }) { + handleLogOut({ state, commit }) { return new Promise((resolve, reject) => { - logout(state.token).then(() => { - commit('setToken', '') - commit('setAccess', []) - resolve() - }).catch(err => { - reject(err) - }) + logout(state.token) + .then(() => { + // commit('setToken', '') + removeToken(); // 删除token + commit("setAccess", []); + resolve(); + }) + .catch(err => { + reject(err); + }); // 如果你的退出登录无需请求接口,则可以直接使用下面三行代码而无需使用logout调用接口 // commit('setToken', '') // commit('setAccess', []) // resolve() - }) + }); }, // 获取用户相关信息 - getUserInfo ({ state, commit }) { + getUserInfo({ state, commit }) { return new Promise((resolve, reject) => { try { - getUserInfo(state.token).then(res => { - const data = res.data - commit('setAvator', data.avator) - commit('setUserName', data.name) - commit('setUserId', data.user_id) - commit('setAccess', data.access) - commit('setHasGetInfo', true) - resolve(data) - }).catch(err => { - reject(err) - }) + getUserInfo(state.token) + .then(res => { + const data = res.data; + commit("setAvator", data.avator); + commit("setUserName", data.name); + commit("setUserId", data.user_id); + commit("setAccess", data.access); + commit("setHasGetInfo", true); + resolve(data); + }) + .catch(err => { + reject(err); + }); } catch (error) { - reject(error) + reject(error); } - }) + }); } } -} +}; From ee1a3f3d64d105edfb35be2e40e8fc964c5c2746 Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Sun, 26 Apr 2020 17:33:10 +0800 Subject: [PATCH 008/164] =?UTF-8?q?=E4=B8=B4=E6=97=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/config/index.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/config/index.js b/src/config/index.js index f6a6533de..9b5127044 100644 --- a/src/config/index.js +++ b/src/config/index.js @@ -13,13 +13,13 @@ export default { * @description api请求基础路径 */ baseUrl: { - dev: 'https://www.easy-mock.com/mock/5add9213ce4d0e69998a6f51/iview-admin/', - pro: 'https://produce.com' + dev: "https://www.easy-mock.com/mock/5add9213ce4d0e69998a6f51/iview-admin/", + pro: "https://produce.com" }, /** * @description 默认打开的首页的路由name值,默认为home */ - homeName: 'home', + homeName: "home", /** * @description 需要加载的插件 */ @@ -29,4 +29,4 @@ export default { // developmentOff: false // 设为true后在开发环境不会收集错误信息,方便开发中排查错误 // } } -} +}; From 35b7ccfeb4ae8447cea192f97b389d3109a03c03 Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Sun, 26 Apr 2020 17:34:28 +0800 Subject: [PATCH 009/164] update readme --- README.md | 187 ------------------------------------------------------ 1 file changed, 187 deletions(-) diff --git a/README.md b/README.md index 9945af91d..e69de29bb 100755 --- a/README.md +++ b/README.md @@ -1,187 +0,0 @@ -

- - - -

- -# iView Admin - -[![](https://img.shields.io/github/release/iview/iview-admin.svg)](https://github.com/iview/iview-admin/releases) -[![](https://img.shields.io/travis/iview/iview-admin.svg?style=flat-square)](https://travis-ci.org/iview/iview-admin) -[![vue](https://img.shields.io/badge/vue-2.5.10-brightgreen.svg?style=flat-square)](https://github.com/vuejs/vue) -[![iview ui](https://img.shields.io/badge/iview-3.0.0-brightgreen.svg?style=flat-square)](https://github.com/iview/iview) -[![npm](https://img.shields.io/npm/l/express.svg)]() - -[更新日志](https://github.com/iview/iview-admin/releases) - -[使用文档](https://lison16.github.io/iview-admin-doc/#/) - -[在线访问](https://admin.iviewui.com/) - -[简化版模板](https://github.com/iview/iview-admin/tree/template) - -[教学视频(26课时)](https://segmentfault.com/ls/1650000016221751?utm_source=banner) - -`注:在线版本会在开发版本新小版本发布后更新到相应版本,所以如果想体验最新版本iview-admin,请clone完整项目代码到本地运行。` - -## Install -```bush -// install dependencies -npm install -``` -## Run -### Development -```bush -npm run dev -``` -### Production(Build) -```bush -npm run build -``` - -## 简介 -  iView admin是基于Vue.js,搭配使用[iView](https://www.iviewui.com) UI组件库形成的一套后台集成解决方案,由TalkingData前端可视化团队部分成员开发维护。iView admin遵守iView设计和开发约定,风格统一,设计考究,并且更多功能在不停开发中。 -如果您想查看iview-admin的更新动态,您可以到[更新日志](https://github.com/iview/iview-admin/releases)查看了解最新更新;如果您是新手,想快速入手iview-admin,您可以到[使用教程](https://github.com/iview/iview-admin/wiki)查看讲解;如果您想在线体验iview-admin,您可以到[在线访问](https://admin.iviewui.com/)体验。如果你只是想要一个清醒爽朗的界面,那你可以下载[简化版模板](https://github.com/iview/iview-admin/tree/template)来做开发。 - -## 功能 - -- 登录/登出 -- 权限管理 - - 列表过滤 - - 权限切换 -- 多语言切换 -- 组件 - - 富文本编辑器 - - Markdown编辑器 - - 城市级联 - - 图片预览编辑 - - 可拖拽列表 - - 文件上传 - - 数字渐变 - - split-pane -- 表单编辑 - - 文章发布 - - 工作流 -- 表格 - - 可拖拽排序 - - 可编辑表格 - - 行内编辑 - - 单元格编辑 - - 可搜索表格 - - 表格导出数据 - - 导出为Csv文件 - - 导出为Xls文件 - - 表格转图片 -- 错误页面 - - 403页面 - - 404页面 - - 500页面 -- 高级路由 - - 动态路由 - - 带参页面 -- 换肤 -- 收缩侧边栏 -- tag标签导航 -- 面包屑导航 -- 全屏/退出全屏 -- 锁屏 -- 消息中心 -- 个人中心 - -## 文件结构 -```shell -. -├── build 项目构建配置 -├── config 开发相关配置 -├── public 打包所需静态资源 -└── src - ├── api AJAX请求 - └── assets 项目静态资源 - ├── icons 自定义图标资源 - └── images 图片资源 - ├── components 业务组件 - ├── config 项目运行配置 - ├── directive 自定义指令 - ├── libs 封装工具函数 - ├── locale 多语言文件 - ├── mock mock模拟数据 - ├── router 路由配置 - ├── store Vuex配置 - ├── view 页面文件 - └── tests 测试相关 -``` - -## Links - -- [TalkingData](https://github.com/TalkingData) -- [iView](https://github.com/iview/iview) -- [Vue](https://github.com/vuejs/vue) -- [Webpack](https://github.com/webpack/webpack) - -## 效果展示 - -- 响应式布局首页 -![image](https://github.com/iview/iview-admin/raw/dev/github-gif/home.gif) - -- 标签导航 -![image](https://github.com/iview/iview-admin/raw/dev/github-gif/page-tags.gif) - -- 权限管理 -![image](https://github.com/iview/iview-admin/raw/dev/github-gif/access.gif) - -- 可拖拽列表 -![image](https://github.com/iview/iview-admin/raw/dev/github-gif/dragable-list.gif) - -- 图片预览编辑 -![image](https://github.com/iview/iview-admin/raw/dev/github-gif/image-editor.gif) - -- 文件上传 -![image](https://github.com/iview/iview-admin/raw/dev/github-gif/upload.gif) - -- 数字渐变 -![image](https://github.com/iview/iview-admin/raw/dev/github-gif/count-to.gif) - -- split-pane -![image](https://github.com/iview/iview-admin/raw/dev/github-gif/split-pane.gif) - -- 文章发布 -![image](https://github.com/iview/iview-admin/raw/dev/github-gif/article-publish.gif) - -- 工作流 -![image](https://github.com/iview/iview-admin/raw/dev/github-gif/workflow.gif) - -- 可拖拽表格 -![image](https://github.com/iview/iview-admin/raw/dev/github-gif/dragable-table.gif) - -- 可编辑表格 -![image](https://github.com/iview/iview-admin/raw/dev/github-gif/editable-table.gif) - -- 表格导出数据 -![image](https://github.com/iview/iview-admin/raw/dev/github-gif/exportable-table.gif) - -- 表格转图片 -![image](https://github.com/iview/iview-admin/raw/dev/github-gif/table2image.gif) - -- 错误页面 -![image](https://github.com/iview/iview-admin/raw/dev/github-gif/error-page.gif) - -- 锁屏 -![image](https://github.com/iview/iview-admin/raw/dev/github-gif/locking.gif) - -- 可收缩侧边栏 -![image](https://github.com/iview/iview-admin/raw/dev/github-gif/sidebarmenu.gif) - -- 主题切换 -![image](https://github.com/iview/iview-admin/raw/dev/github-gif/theme.gif) - -- 消息中心 -![image](https://github.com/iview/iview-admin/raw/dev/github-gif/message.gif) - -### 💖💖 If you find this project helpful, maybe you can buy me a coffee. 💖💖 -![image](https://github.com/iview/iview-admin/raw/dev/github-gif/code.png) - - -## License -[MIT](http://opensource.org/licenses/MIT) - -Copyright (c) 2016-present, iView From 0c1e09fa7d26ec95e966f95738a0021d9bfe63c9 Mon Sep 17 00:00:00 2001 From: SimonShao <435776313@qq.com> Date: Sun, 26 Apr 2020 18:51:59 +0800 Subject: [PATCH 010/164] Update README.md --- README.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/README.md b/README.md index e69de29bb..3c2b58d41 100755 --- a/README.md +++ b/README.md @@ -0,0 +1,9 @@ +# iview-dynamicRouter +iview-admin,后端动态生成路由模板 + +1.模拟数据改造: + +mock - role.js,新建角色列表、菜单列表、菜单层级列表 + +2.axios加工: + From 95cd241391daa8fcfd6d911a538b33da51c081bd Mon Sep 17 00:00:00 2001 From: SimonShao <435776313@qq.com> Date: Sun, 26 Apr 2020 18:52:21 +0800 Subject: [PATCH 011/164] Update README.md --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 3c2b58d41..6dace663c 100755 --- a/README.md +++ b/README.md @@ -6,4 +6,3 @@ iview-admin,后端动态生成路由模板 mock - role.js,新建角色列表、菜单列表、菜单层级列表 2.axios加工: - From 23d0e7a26e9961ad3548b28c47bfd599cdbcaab2 Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Mon, 27 Apr 2020 14:02:06 +0800 Subject: [PATCH 012/164] =?UTF-8?q?axios=E5=8A=A0=E5=B7=A5=E6=94=B9?= =?UTF-8?q?=E9=80=A0=EF=BC=8C=E4=BD=BF=E5=85=B6=E6=9B=B4=E7=AC=A6=E5=90=88?= =?UTF-8?q?=E5=90=8E=E7=AB=AF=E7=9A=84=E5=9B=9E=E6=96=87=E6=A0=BC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/libs/axios.js | 114 +++++++++++++++++++++++++++++----------------- 1 file changed, 72 insertions(+), 42 deletions(-) diff --git a/src/libs/axios.js b/src/libs/axios.js index 8cbe4783d..d56630341 100644 --- a/src/libs/axios.js +++ b/src/libs/axios.js @@ -1,65 +1,95 @@ -import axios from 'axios' -import store from '@/store' +import axios from "axios"; +import store from "@/store"; +import { getToken } from "./util"; +import { Message } from "iview"; // import { Spin } from 'iview' + const addErrorLog = errorInfo => { - const { statusText, status, request: { responseURL } } = errorInfo + const { + statusText, + status, + request: { responseURL } + } = errorInfo; let info = { - type: 'ajax', + type: "ajax", code: status, mes: statusText, url: responseURL + }; + if (!responseURL.includes("save_error_logger")) { + store.dispatch("addErrorLog", info); } - if (!responseURL.includes('save_error_logger')) store.dispatch('addErrorLog', info) -} +}; class HttpRequest { - constructor (baseUrl = baseURL) { - this.baseUrl = baseUrl - this.queue = {} + constructor(baseUrl = baseURL) { + this.baseUrl = baseUrl; + this.queue = {}; } - getInsideConfig () { + getInsideConfig() { const config = { baseURL: this.baseUrl, - headers: { - // - } - } - return config + headers: {} + }; + return config; } - destroy (url) { - delete this.queue[url] + destroy(url) { + delete this.queue[url]; if (!Object.keys(this.queue).length) { // Spin.hide() } } - interceptors (instance, url) { + interceptors(instance, url) { // 请求拦截 - instance.interceptors.request.use(config => { - // 添加全局的loading... - if (!Object.keys(this.queue).length) { - // Spin.show() // 不建议开启,因为界面不友好 + instance.interceptors.request.use( + config => { + // 如果响应含有token -> 让每个请求携带token,将token放入请求头的Authorization + getToken() && (config.headers.Authorization = "Bearer " + getToken()); + // 添加全局的loading... + if (!Object.keys(this.queue).length) { + // Spin.show() // 不建议开启,因为界面不友好 + } + this.queue[url] = true; + return config; + }, + error => { + return Promise.reject(error); } - this.queue[url] = true - return config - }, error => { - return Promise.reject(error) - }) + ); // 响应拦截 - instance.interceptors.response.use(res => { - this.destroy(url) - const { data, status } = res - return { data, status } - }, error => { - this.destroy(url) - addErrorLog(error.response) - return Promise.reject(error) - }) + instance.interceptors.response.use( + res => { + switch (res.status) { + case 200: // 200 -> 服务器连接正确 + if (res.data.status !== true && res.data.status !== 200) { + // 全局提示5秒的错误讯息 + Message.error({ content: res.data.message, duration: 5 }); + } + break; + case 500: // 500 -> 服务器错误 + console.log(res.status.message); + Message.error({ + content: "服务器异常,请联系技术人员", + duration: 5 + }); + break; + } + this.destroy(url); + const { data, status } = res; + return { data, status }; + }, + error => { + this.destroy(url); + addErrorLog(error.response); + return Promise.reject(error); + } + ); } - request (options) { - const instance = axios.create() - options = Object.assign(this.getInsideConfig(), options) - this.interceptors(instance, options.url) - return instance(options) + request(options) { + const instance = axios.create(); + options = Object.assign(this.getInsideConfig(), options); + this.interceptors(instance, options.url); + return instance(options); } } -export default HttpRequest +export default HttpRequest; From ecac0f07812c0fdfb9769acc4d866708c7e04d18 Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Mon, 27 Apr 2020 14:02:36 +0800 Subject: [PATCH 013/164] =?UTF-8?q?mock=E7=99=BB=E5=BD=95=E5=8A=A0?= =?UTF-8?q?=E5=B7=A5=E6=94=B9=E9=80=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/mock/login.js | 57 ++++++++++++++++++++++++++++++----------------- 1 file changed, 37 insertions(+), 20 deletions(-) diff --git a/src/mock/login.js b/src/mock/login.js index 9e84a5510..e5d0ee3f8 100644 --- a/src/mock/login.js +++ b/src/mock/login.js @@ -1,31 +1,48 @@ -import { getParams } from '@/libs/util' +import store from "@/store"; + const USER_MAP = { super_admin: { - name: 'super_admin', - user_id: '1', - access: ['super_admin', 'admin'], - token: 'super_admin', - avator: 'https://file.iviewui.com/dist/a0e88e83800f138b94d2414621bd9704.png' + name: "super_admin", + user_id: "1", + access: ["super_admin", "admin"], + token: "super_admin", + avator: "https://file.iviewui.com/dist/a0e88e83800f138b94d2414621bd9704.png" }, admin: { - name: 'admin', - user_id: '2', - access: ['admin'], - token: 'admin', - avator: 'https://avatars0.githubusercontent.com/u/20942571?s=460&v=4' + name: "admin", + user_id: "2", + access: ["admin"], + token: "admin", + avator: "https://avatars0.githubusercontent.com/u/20942571?s=460&v=4" } -} +}; +// 用户登录 export const login = req => { - req = JSON.parse(req.body) - return {token: USER_MAP[req.userName].token} -} + req = JSON.parse(req.body); + if (USER_MAP[req.userName] !== undefined) { + return { + status: 200, + message: "成功!", + token: USER_MAP[req.userName].token + }; + } else { + return { status: 500, message: "用户名或密码错误!", data: null }; + } +}; +// 获取用户信息 export const getUserInfo = req => { - const params = getParams(req.url) - return USER_MAP[params.token] -} + // console.log(store.state.user.token); + if (store.state.user.token !== undefined) { + return { + status: 200, + message: "成功!", + data: USER_MAP[store.state.user.token] + }; + } +}; export const logout = req => { - return null -} + return null; +}; From c27b2879bd8fd6c8f09be1a57459312422b15596 Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Mon, 27 Apr 2020 14:02:55 +0800 Subject: [PATCH 014/164] =?UTF-8?q?store=20>=20user=E5=8A=A0=E5=B7=A5?= =?UTF-8?q?=E6=94=B9=E9=80=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/store/module/user.js | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/src/store/module/user.js b/src/store/module/user.js index cee6faced..a4d88bd1b 100644 --- a/src/store/module/user.js +++ b/src/store/module/user.js @@ -1,4 +1,8 @@ -import { login, logout, getUserInfo } from "@/api/user"; +import { + login, + // logout, + getUserInfo +} from "@/api/user"; import { setToken, getToken, removeToken } from "@/libs/util"; export default { @@ -43,7 +47,7 @@ export default { .then(res => { const data = res.data; commit("setToken", data.token); - resolve(); + resolve(res); }) .catch(err => { reject(err); @@ -53,20 +57,20 @@ export default { // 退出登录 handleLogOut({ state, commit }) { return new Promise((resolve, reject) => { - logout(state.token) - .then(() => { - // commit('setToken', '') - removeToken(); // 删除token - commit("setAccess", []); - resolve(); - }) - .catch(err => { - reject(err); - }); + // logout(state.token) + // .then(() => { + // // commit('setToken', '') + // commit("setAccess", []); + // resolve(); + // }) + // .catch(err => { + // reject(err); + // }); // 如果你的退出登录无需请求接口,则可以直接使用下面三行代码而无需使用logout调用接口 // commit('setToken', '') - // commit('setAccess', []) - // resolve() + removeToken(); // 删除token + commit("setAccess", []); + resolve(); }); }, // 获取用户相关信息 @@ -75,7 +79,7 @@ export default { try { getUserInfo(state.token) .then(res => { - const data = res.data; + const data = res.data.data; commit("setAvator", data.avator); commit("setUserName", data.name); commit("setUserId", data.user_id); From fc9601db497fa2ddc98d50125010bc00eb324be1 Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Mon, 27 Apr 2020 14:03:32 +0800 Subject: [PATCH 015/164] =?UTF-8?q?=E7=99=BB=E5=BD=95=E4=BA=8B=E4=BB=B6?= =?UTF-8?q?=E6=94=B9=E9=80=A0=EF=BC=8C=E8=8E=B7=E5=8F=96token=E6=89=8D?= =?UTF-8?q?=E6=8B=89=E5=8F=96=E7=94=A8=E6=88=B7=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/view/login/login.vue | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/src/view/login/login.vue b/src/view/login/login.vue index 7595e01b6..da129284d 100755 --- a/src/view/login/login.vue +++ b/src/view/login/login.vue @@ -1,11 +1,13 @@ From 7b2e8d8ab2cc846bd11e2f8f3e732c60b0f45431 Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Mon, 27 Apr 2020 15:02:04 +0800 Subject: [PATCH 016/164] =?UTF-8?q?git=E9=83=A8=E7=BD=B2=E4=BF=AE=E6=94=B9?= =?UTF-8?q?BASE=5FURL?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vue.config.js | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/vue.config.js b/vue.config.js index b3e1a73d5..f44a47d61 100644 --- a/vue.config.js +++ b/vue.config.js @@ -1,8 +1,8 @@ -const path = require('path') +const path = require("path"); -const resolve = dir => { - return path.join(__dirname, dir) -} +const resolve = (dir) => { + return path.join(__dirname, dir); +}; // 项目部署基础 // 默认情况下,我们假设你的应用将被部署在域的根目录下, @@ -11,9 +11,8 @@ const resolve = dir => { // 如果您的应用程序部署在子路径中,则需要在这指定子路径 // 例如:https://www.foobar.com/my-app/ // 需要将它改为'/my-app/' -const BASE_URL = process.env.NODE_ENV === 'production' - ? '/' - : '/' +const BASE_URL = + process.env.NODE_ENV === "production" ? "/iview-dynamicRouter" : "/"; module.exports = { // Project deployment base @@ -28,10 +27,10 @@ module.exports = { // see https://github.com/vuejs/vue-cli/blob/dev/docs/webpack.md // 如果你不需要使用eslint,把lintOnSave设为false即可 lintOnSave: false, - chainWebpack: config => { + chainWebpack: (config) => { config.resolve.alias - .set('@', resolve('src')) // key,value自行定义,比如.set('@@', resolve('src/components')) - .set('_c', resolve('src/components')) + .set("@", resolve("src")) // key,value自行定义,比如.set('@@', resolve('src/components')) + .set("_c", resolve("src/components")); }, // 打包时不生成.map文件 productionSourceMap: false @@ -39,4 +38,4 @@ module.exports = { // devServer: { // proxy: 'localhost:3000' // } -} +}; From a8156f0d952476b6e40d29e3ca86220c8e41656f Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Mon, 27 Apr 2020 15:26:41 +0800 Subject: [PATCH 017/164] =?UTF-8?q?github=E9=83=A8=E7=BD=B2=E4=BF=AE?= =?UTF-8?q?=E6=94=B9baseUrl?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/config/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/config/index.js b/src/config/index.js index 9b5127044..74c9c3c2c 100644 --- a/src/config/index.js +++ b/src/config/index.js @@ -14,7 +14,7 @@ export default { */ baseUrl: { dev: "https://www.easy-mock.com/mock/5add9213ce4d0e69998a6f51/iview-admin/", - pro: "https://produce.com" + pro: "https://www.easy-mock.com/mock/5add9213ce4d0e69998a6f51/iview-admin/" }, /** * @description 默认打开的首页的路由name值,默认为home From 4040bc728a39bcda72b2014f5b1972d99c8f13a6 Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Mon, 27 Apr 2020 15:41:41 +0800 Subject: [PATCH 018/164] =?UTF-8?q?github=E9=83=A8=E7=BD=B2baseUrl?= =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/config/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/config/index.js b/src/config/index.js index 74c9c3c2c..e0e14205f 100644 --- a/src/config/index.js +++ b/src/config/index.js @@ -14,7 +14,7 @@ export default { */ baseUrl: { dev: "https://www.easy-mock.com/mock/5add9213ce4d0e69998a6f51/iview-admin/", - pro: "https://www.easy-mock.com/mock/5add9213ce4d0e69998a6f51/iview-admin/" + pro: "https://www.easy-mock.com/mock/5d5e559ed064102521b410b2" }, /** * @description 默认打开的首页的路由name值,默认为home From 1125ec4bf099fc84113562d6b7e4948f504442b4 Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Mon, 27 Apr 2020 15:50:53 +0800 Subject: [PATCH 019/164] =?UTF-8?q?github=E9=83=A8=E7=BD=B2=E6=97=B6?= =?UTF-8?q?=E4=BF=AE=E6=94=B9baseUrl?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/config/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/config/index.js b/src/config/index.js index e0e14205f..74c9c3c2c 100644 --- a/src/config/index.js +++ b/src/config/index.js @@ -14,7 +14,7 @@ export default { */ baseUrl: { dev: "https://www.easy-mock.com/mock/5add9213ce4d0e69998a6f51/iview-admin/", - pro: "https://www.easy-mock.com/mock/5d5e559ed064102521b410b2" + pro: "https://www.easy-mock.com/mock/5add9213ce4d0e69998a6f51/iview-admin/" }, /** * @description 默认打开的首页的路由name值,默认为home From 79cab7ef188b4869985f3b08b255a4e8d9efe617 Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Mon, 27 Apr 2020 15:51:26 +0800 Subject: [PATCH 020/164] =?UTF-8?q?github=E9=83=A8=E7=BD=B2=E6=97=B6?= =?UTF-8?q?=EF=BC=8C=E7=94=9F=E4=BA=A7=E7=8E=AF=E5=A2=83=E5=90=8C=E6=A0=B7?= =?UTF-8?q?=E5=BC=95=E5=85=A5mock?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main.js | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/src/main.js b/src/main.js index 203ee8b4d..7c43aa872 100644 --- a/src/main.js +++ b/src/main.js @@ -1,20 +1,21 @@ // The Vue build version to load with the `import` command // (runtime-only or standalone) has been set in webpack.base.conf with an alias. -import Vue from 'vue' -import App from './App' -import router from './router' -import store from './store' -import iView from 'iview' -import i18n from '@/locale' -import config from '@/config' -import importDirective from '@/directive' -import installPlugin from '@/plugin' -import 'iview/dist/styles/iview.css' -import './index.less' -import '@/assets/icons/iconfont.css' +import Vue from "vue"; +import App from "./App"; +import router from "./router"; +import store from "./store"; +import iView from "iview"; +import i18n from "@/locale"; +import config from "@/config"; +import importDirective from "@/directive"; +import installPlugin from "@/plugin"; +import "iview/dist/styles/iview.css"; +import "./index.less"; +import "@/assets/icons/iconfont.css"; // 实际打包时应该不引入mock /* eslint-disable */ -if (process.env.NODE_ENV !== 'production') require('@/mock') +// if (process.env.NODE_ENV !== 'production') +require('@/mock') Vue.use(iView, { i18n: (key, value) => i18n.t(key, value) From bf9bcec610399c6cae3e707849b0d432457075c9 Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Mon, 27 Apr 2020 15:58:57 +0800 Subject: [PATCH 021/164] =?UTF-8?q?=E9=83=A8=E7=BD=B2=E5=88=B0github=20gh-?= =?UTF-8?q?pages=20->=20=E5=8F=96=E6=B6=88=E8=B7=AF=E7=94=B1history?= =?UTF-8?q?=E6=A8=A1=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/router/index.js | 67 +++++++++++++++++++++++---------------------- 1 file changed, 34 insertions(+), 33 deletions(-) diff --git a/src/router/index.js b/src/router/index.js index 5dd6a78f1..338110af9 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -1,60 +1,61 @@ -import Vue from 'vue' -import Router from 'vue-router' -import routes from './routers' -import store from '@/store' -import iView from 'iview' -import { setToken, getToken, canTurnTo } from '@/libs/util' -import config from '@/config' -const { homeName } = config +import Vue from "vue"; +import Router from "vue-router"; +import routes from "./routers"; +import store from "@/store"; +import iView from "iview"; +import { setToken, getToken, canTurnTo } from "@/libs/util"; +import config from "@/config"; +const { homeName } = config; -Vue.use(Router) +Vue.use(Router); const router = new Router({ - routes, - mode: 'history' -}) -const LOGIN_PAGE_NAME = 'login' + routes + // 部署到github gh-pages -> 取消history + // mode: "history" +}); +const LOGIN_PAGE_NAME = "login"; const turnTo = (to, access, next) => { - if (canTurnTo(to.name, access, routes)) next() // 有权限,可访问 - else next({ replace: true, name: 'error_401' }) // 无权限,重定向到401页面 -} + if (canTurnTo(to.name, access, routes)) next(); // 有权限,可访问 + else next({ replace: true, name: "error_401" }); // 无权限,重定向到401页面 +}; router.beforeEach((to, from, next) => { - iView.LoadingBar.start() - const token = getToken() + iView.LoadingBar.start(); + const token = getToken(); if (!token && to.name !== LOGIN_PAGE_NAME) { // 未登录且要跳转的页面不是登录页 next({ name: LOGIN_PAGE_NAME // 跳转到登录页 - }) + }); } else if (!token && to.name === LOGIN_PAGE_NAME) { // 未登陆且要跳转的页面是登录页 - next() // 跳转 + next(); // 跳转 } else if (token && to.name === LOGIN_PAGE_NAME) { // 已登录且要跳转的页面是登录页 next({ name: homeName // 跳转到homeName页 - }) + }); } else { if (store.state.user.hasGetInfo) { - turnTo(to, store.state.user.access, next) + turnTo(to, store.state.user.access, next); } else { - store.dispatch('getUserInfo').then(user => { + store.dispatch("getUserInfo").then(user => { // 拉取用户信息,通过用户权限和跳转的页面的name来判断是否有权限访问;access必须是一个数组,如:['super_admin'] ['super_admin', 'admin'] - turnTo(to, user.access, next) + turnTo(to, user.access, next); }).catch(() => { - setToken('') + setToken(""); next({ - name: 'login' - }) - }) + name: "login" + }); + }); } } -}) +}); router.afterEach(to => { - iView.LoadingBar.finish() - window.scrollTo(0, 0) -}) + iView.LoadingBar.finish(); + window.scrollTo(0, 0); +}); -export default router +export default router; From 95b53086818a9e36fcc1badba0258dedd9e7b3fd Mon Sep 17 00:00:00 2001 From: SimonShao <435776313@qq.com> Date: Mon, 27 Apr 2020 16:05:19 +0800 Subject: [PATCH 022/164] Update README.md --- README.md | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 6dace663c..23f0b443f 100755 --- a/README.md +++ b/README.md @@ -1,8 +1,16 @@ # iview-dynamicRouter iview-admin,后端动态生成路由模板 -1.模拟数据改造: +1.axios加工改造,使其更符合后端的回文格式: +libs > axios.js +mock > login.js +store > user.js +view > login.vue + +2.模拟数据改造: mock - role.js,新建角色列表、菜单列表、菜单层级列表 -2.axios加工: +3.github部署: +router > index.js,取消history模式 +部署后的css文件 > static > fonts > 把外面的fonts放进去 From 3c8813f04a8f20ab6a8adc851760b72e4ad41a50 Mon Sep 17 00:00:00 2001 From: SimonShao <435776313@qq.com> Date: Mon, 27 Apr 2020 17:04:00 +0800 Subject: [PATCH 023/164] Update README.md --- README.md | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 23f0b443f..0a26e05c7 100755 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # iview-dynamicRouter iview-admin,后端动态生成路由模板 +userName:super_admin / visitor +password:any / any 1.axios加工改造,使其更符合后端的回文格式: libs > axios.js @@ -7,10 +9,22 @@ mock > login.js store > user.js view > login.vue -2.模拟数据改造: +2.mock数据改造: -mock - role.js,新建角色列表、菜单列表、菜单层级列表 +mock - role.js,新建用户列表、角色列表、菜单列表、菜单层级列表 +对应关系图 + +3.动态获取路由数据 + +store > app.js,动态获取路由事件,动态挂载菜单 +libs > +router > 3.github部署: router > index.js,取消history模式 部署后的css文件 > static > fonts > 把外面的fonts放进去 + +4.扩展: +项目需求万千,万变不离其宗。以下两种情况我已做好demo并集成到项目中 +追加顶部3级菜单: +动态角色“首页”: From ee076778c7fe4ef25a48c5b0f7b146abe1ee9bf7 Mon Sep 17 00:00:00 2001 From: SimonShao <435776313@qq.com> Date: Mon, 27 Apr 2020 17:39:34 +0800 Subject: [PATCH 024/164] Update README.md --- README.md | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 0a26e05c7..4a6d1e6bc 100755 --- a/README.md +++ b/README.md @@ -1,30 +1,52 @@ # iview-dynamicRouter + iview-admin,后端动态生成路由模板 + userName:super_admin / visitor + password:any / any 1.axios加工改造,使其更符合后端的回文格式: + libs > axios.js + mock > login.js + store > user.js + view > login.vue 2.mock数据改造: -mock - role.js,新建用户列表、角色列表、菜单列表、菜单层级列表 +mock - role.js,新建角色列表、菜单列表、菜单层级列表,这里以我在实际项目中后端给到的数据结构为例 + +角色列表: + +菜单列表: + +菜单层级列表: + 对应关系图 -3.动态获取路由数据 +3.注册mock事件,动态获取路由数据 + store > app.js,动态获取路由事件,动态挂载菜单 + libs > + router > 3.github部署: + router > index.js,取消history模式 + 部署后的css文件 > static > fonts > 把外面的fonts放进去 4.扩展: + 项目需求万千,万变不离其宗。以下两种情况我已做好demo并集成到项目中 -追加顶部3级菜单: + +追加顶部3级菜单:https://github.com/simon9124/fengfeng + 动态角色“首页”: From 315c3f3a433d32b3c714a195639994f2fe9cd006 Mon Sep 17 00:00:00 2001 From: SimonShao <435776313@qq.com> Date: Mon, 27 Apr 2020 18:08:22 +0800 Subject: [PATCH 025/164] Update README.md --- README.md | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 4a6d1e6bc..b8fbadf34 100755 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ store > user.js view > login.vue -2.mock数据改造: +2.mock数据、mock接口: mock - role.js,新建角色列表、菜单列表、菜单层级列表,这里以我在实际项目中后端给到的数据结构为例 @@ -28,12 +28,18 @@ mock - role.js,新建角色列表、菜单列表、菜单层级列表,这里 对应关系图 -3.注册mock事件,动态获取路由数据 +注册mock事件不过多陈述: -store > app.js,动态获取路由事件,动态挂载菜单 +mock > data getAllMenus +mock > index getAllMenus +api > data getAllMenus -libs > +3.动态获取路由数据,并对数据进行处理: + +store > app.js + +libs > router-util.js router > From 5bdccf38440af2387a88f0ddb0ef3f9f7c20eb4e Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Mon, 27 Apr 2020 18:17:44 +0800 Subject: [PATCH 026/164] =?UTF-8?q?=E6=B3=A8=E5=86=8Cmock=E4=BA=8B?= =?UTF-8?q?=E4=BB=B6=EF=BC=9AgetAllMenus?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/data.js | 44 +++++++++++++++++++++++++---------------- src/mock/data.js | 50 ++++++++++++++++++++++++++++------------------- src/mock/index.js | 21 ++++++++++---------- 3 files changed, 68 insertions(+), 47 deletions(-) diff --git a/src/api/data.js b/src/api/data.js index 9ba95be54..753b831b5 100644 --- a/src/api/data.js +++ b/src/api/data.js @@ -1,30 +1,40 @@ -import axios from '@/libs/api.request' +import axios from "@/libs/api.request"; export const getTableData = () => { return axios.request({ - url: 'get_table_data', - method: 'get' - }) -} + url: "get_table_data", + method: "get" + }); +}; export const getDragList = () => { return axios.request({ - url: 'get_drag_list', - method: 'get' - }) -} + url: "get_drag_list", + method: "get" + }); +}; export const errorReq = () => { return axios.request({ - url: 'error_url', - method: 'post' - }) -} + url: "error_url", + method: "post" + }); +}; export const saveErrorLogger = info => { return axios.request({ - url: 'save_error_logger', + url: "save_error_logger", data: info, - method: 'post' - }) -} + method: "post" + }); +}; + +// 获取菜单数据 +export const getAllMenus = token => { + if (token !== undefined) { + return axios.request({ + url: "get_all_menus", + method: "get" + }); + } +}; diff --git a/src/mock/data.js b/src/mock/data.js index 517daa025..1e438e817 100644 --- a/src/mock/data.js +++ b/src/mock/data.js @@ -1,26 +1,36 @@ -import Mock from 'mockjs' -import { doCustomTimes } from '@/libs/util' -const Random = Mock.Random +import Mock from "mockjs"; +import { doCustomTimes } from "@/libs/util"; +import { menuList } from "./role"; // 菜单列表 +const Random = Mock.Random; export const getTableData = req => { - let tableData = [] + let tableData = []; doCustomTimes(5, () => { - tableData.push(Mock.mock({ - name: '@name', - email: '@email', - createTime: '@date' - })) - }) - return tableData -} + tableData.push( + Mock.mock({ + name: "@name", + email: "@email", + createTime: "@date" + }) + ); + }); + return tableData; +}; export const getDragList = req => { - let dragList = [] + let dragList = []; doCustomTimes(5, () => { - dragList.push(Mock.mock({ - name: Random.csentence(10, 13), - id: Random.increment(10) - })) - }) - return dragList -} + dragList.push( + Mock.mock({ + name: Random.csentence(10, 13), + id: Random.increment(10) + }) + ); + }); + return dragList; +}; + +// 获取菜单列表 +export const getAllMenus = req => { + return { status: 200, message: "成功!", data: menuList }; +}; diff --git a/src/mock/index.js b/src/mock/index.js index ac43573cf..e9cd03a6f 100644 --- a/src/mock/index.js +++ b/src/mock/index.js @@ -1,13 +1,14 @@ -import Mock from 'mockjs' -import { login, logout, getUserInfo } from './login' -import { getTableData, getDragList } from './data' +import Mock from "mockjs"; +import { login, logout, getUserInfo } from "./login"; +import { getTableData, getDragList, getAllMenus } from "./data"; // 登录相关和获取用户信息 -Mock.mock(/\/login/, login) -Mock.mock(/\/get_info/, getUserInfo) -Mock.mock(/\/logout/, logout) -Mock.mock(/\/get_table_data/, getTableData) -Mock.mock(/\/get_drag_list/, getDragList) -Mock.mock(/\/save_error_logger/, 'success') +Mock.mock(/\/login/, login); +Mock.mock(/\/get_info/, getUserInfo); +Mock.mock(/\/logout/, logout); +Mock.mock(/\/get_table_data/, getTableData); +Mock.mock(/\/get_drag_list/, getDragList); +Mock.mock(/\/get_all_menus/, getAllMenus); +Mock.mock(/\/save_error_logger/, "success"); -export default Mock +export default Mock; From aec7c1b16cf88e862d359a84c9fb313f7ee352cb Mon Sep 17 00:00:00 2001 From: SimonShao <435776313@qq.com> Date: Mon, 27 Apr 2020 18:22:36 +0800 Subject: [PATCH 027/164] Update README.md --- README.md | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index b8fbadf34..cc41fcf73 100755 --- a/README.md +++ b/README.md @@ -41,15 +41,21 @@ store > app.js libs > router-util.js -router > +libs > tools.js 函数: 引入组件 -3.github部署: +4.路由改造 + +router > index.js + +router > router.js + +5.github部署: router > index.js,取消history模式 部署后的css文件 > static > fonts > 把外面的fonts放进去 -4.扩展: +6.扩展: 项目需求万千,万变不离其宗。以下两种情况我已做好demo并集成到项目中 From 657ae08c606ccae424e135d745539bd7a714fb49 Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Mon, 27 Apr 2020 18:22:42 +0800 Subject: [PATCH 028/164] =?UTF-8?q?=E5=87=BD=E6=95=B0:=20=E5=BC=95?= =?UTF-8?q?=E5=85=A5=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/libs/tools.js | 170 ++++++++++++++++++++++++---------------------- 1 file changed, 87 insertions(+), 83 deletions(-) diff --git a/src/libs/tools.js b/src/libs/tools.js index 0ca81d61f..ed0509572 100644 --- a/src/libs/tools.js +++ b/src/libs/tools.js @@ -1,12 +1,12 @@ export const forEach = (arr, fn) => { - if (!arr.length || !fn) return - let i = -1 - let len = arr.length + if (!arr.length || !fn) return; + let i = -1; + let len = arr.length; while (++i < len) { - let item = arr[i] - fn(item, i, arr) + let item = arr[i]; + fn(item, i, arr); } -} +}; /** * @param {Array} arr1 @@ -14,15 +14,15 @@ export const forEach = (arr, fn) => { * @description 得到两个数组的交集, 两个数组的元素为数值或字符串 */ export const getIntersection = (arr1, arr2) => { - let len = Math.min(arr1.length, arr2.length) - let i = -1 - let res = [] + let len = Math.min(arr1.length, arr2.length); + let i = -1; + let res = []; while (++i < len) { - const item = arr2[i] - if (arr1.indexOf(item) > -1) res.push(item) + const item = arr2[i]; + if (arr1.indexOf(item) > -1) res.push(item); } - return res -} + return res; +}; /** * @param {Array} arr1 @@ -30,8 +30,8 @@ export const getIntersection = (arr1, arr2) => { * @description 得到两个数组的并集, 两个数组的元素为数值或字符串 */ export const getUnion = (arr1, arr2) => { - return Array.from(new Set([...arr1, ...arr2])) -} + return Array.from(new Set([...arr1, ...arr2])); +}; /** * @param {Array} target 目标数组 @@ -39,8 +39,8 @@ export const getUnion = (arr1, arr2) => { * @description 判断要查询的数组是否至少有一个元素包含在目标数组中 */ export const hasOneOf = (targetarr, arr) => { - return targetarr.some(_ => arr.indexOf(_) > -1) -} + return targetarr.some(_ => arr.indexOf(_) > -1); +}; /** * @param {String|Number} value 要验证的字符串或数值 @@ -49,10 +49,10 @@ export const hasOneOf = (targetarr, arr) => { export function oneOf (value, validList) { for (let i = 0; i < validList.length; i++) { if (value === validList[i]) { - return true + return true; } } - return false + return false; } /** @@ -60,9 +60,9 @@ export function oneOf (value, validList) { * @returns {Boolean} */ const isMillisecond = timeStamp => { - const timeStr = String(timeStamp) - return timeStr.length > 10 -} + const timeStr = String(timeStamp); + return timeStr.length > 10; +}; /** * @param {Number} timeStamp 传入的时间戳 @@ -70,8 +70,8 @@ const isMillisecond = timeStamp => { * @returns {Boolean} 传入的时间戳是否早于当前时间戳 */ const isEarly = (timeStamp, currentTime) => { - return timeStamp < currentTime -} + return timeStamp < currentTime; +}; /** * @param {Number} num 数值 @@ -79,26 +79,26 @@ const isEarly = (timeStamp, currentTime) => { * @description 如果传入的数值小于10,即位数只有1位,则在前面补充0 */ const getHandledValue = num => { - return num < 10 ? '0' + num : num -} + return num < 10 ? "0" + num : num; +}; /** * @param {Number} timeStamp 传入的时间戳 * @param {Number} startType 要返回的时间字符串的格式类型,传入'year'则返回年开头的完整时间 */ const getDate = (timeStamp, startType) => { - const d = new Date(timeStamp * 1000) - const year = d.getFullYear() - const month = getHandledValue(d.getMonth() + 1) - const date = getHandledValue(d.getDate()) - const hours = getHandledValue(d.getHours()) - const minutes = getHandledValue(d.getMinutes()) - const second = getHandledValue(d.getSeconds()) - let resStr = '' - if (startType === 'year') resStr = year + '-' + month + '-' + date + ' ' + hours + ':' + minutes + ':' + second - else resStr = month + '-' + date + ' ' + hours + ':' + minutes - return resStr -} + const d = new Date(timeStamp * 1000); + const year = d.getFullYear(); + const month = getHandledValue(d.getMonth() + 1); + const date = getHandledValue(d.getDate()); + const hours = getHandledValue(d.getHours()); + const minutes = getHandledValue(d.getMinutes()); + const second = getHandledValue(d.getSeconds()); + let resStr = ""; + if (startType === "year") resStr = year + "-" + month + "-" + date + " " + hours + ":" + minutes + ":" + second; + else resStr = month + "-" + date + " " + hours + ":" + minutes; + return resStr; +}; /** * @param {String|Number} timeStamp 时间戳 @@ -106,49 +106,49 @@ const getDate = (timeStamp, startType) => { */ export const getRelativeTime = timeStamp => { // 判断当前传入的时间戳是秒格式还是毫秒 - const IS_MILLISECOND = isMillisecond(timeStamp) + const IS_MILLISECOND = isMillisecond(timeStamp); // 如果是毫秒格式则转为秒格式 - if (IS_MILLISECOND) Math.floor(timeStamp /= 1000) + if (IS_MILLISECOND) Math.floor(timeStamp /= 1000); // 传入的时间戳可以是数值或字符串类型,这里统一转为数值类型 - timeStamp = Number(timeStamp) + timeStamp = Number(timeStamp); // 获取当前时间时间戳 - const currentTime = Math.floor(Date.parse(new Date()) / 1000) + const currentTime = Math.floor(Date.parse(new Date()) / 1000); // 判断传入时间戳是否早于当前时间戳 - const IS_EARLY = isEarly(timeStamp, currentTime) + const IS_EARLY = isEarly(timeStamp, currentTime); // 获取两个时间戳差值 - let diff = currentTime - timeStamp + let diff = currentTime - timeStamp; // 如果IS_EARLY为false则差值取反 - if (!IS_EARLY) diff = -diff - let resStr = '' - const dirStr = IS_EARLY ? '前' : '后' + if (!IS_EARLY) diff = -diff; + let resStr = ""; + const dirStr = IS_EARLY ? "前" : "后"; // 少于等于59秒 - if (diff <= 59) resStr = diff + '秒' + dirStr + if (diff <= 59) resStr = diff + "秒" + dirStr; // 多于59秒,少于等于59分钟59秒 - else if (diff > 59 && diff <= 3599) resStr = Math.floor(diff / 60) + '分钟' + dirStr + else if (diff > 59 && diff <= 3599) resStr = Math.floor(diff / 60) + "分钟" + dirStr; // 多于59分钟59秒,少于等于23小时59分钟59秒 - else if (diff > 3599 && diff <= 86399) resStr = Math.floor(diff / 3600) + '小时' + dirStr + else if (diff > 3599 && diff <= 86399) resStr = Math.floor(diff / 3600) + "小时" + dirStr; // 多于23小时59分钟59秒,少于等于29天59分钟59秒 - else if (diff > 86399 && diff <= 2623859) resStr = Math.floor(diff / 86400) + '天' + dirStr + else if (diff > 86399 && diff <= 2623859) resStr = Math.floor(diff / 86400) + "天" + dirStr; // 多于29天59分钟59秒,少于364天23小时59分钟59秒,且传入的时间戳早于当前 - else if (diff > 2623859 && diff <= 31567859 && IS_EARLY) resStr = getDate(timeStamp) - else resStr = getDate(timeStamp, 'year') - return resStr -} + else if (diff > 2623859 && diff <= 31567859 && IS_EARLY) resStr = getDate(timeStamp); + else resStr = getDate(timeStamp, "year"); + return resStr; +}; /** * @returns {String} 当前浏览器名称 */ export const getExplorer = () => { - const ua = window.navigator.userAgent + const ua = window.navigator.userAgent; const isExplorer = (exp) => { - return ua.indexOf(exp) > -1 - } - if (isExplorer('MSIE')) return 'IE' - else if (isExplorer('Firefox')) return 'Firefox' - else if (isExplorer('Chrome')) return 'Chrome' - else if (isExplorer('Opera')) return 'Opera' - else if (isExplorer('Safari')) return 'Safari' -} + return ua.indexOf(exp) > -1; + }; + if (isExplorer("MSIE")) return "IE"; + else if (isExplorer("Firefox")) return "Firefox"; + else if (isExplorer("Chrome")) return "Chrome"; + else if (isExplorer("Opera")) return "Opera"; + else if (isExplorer("Safari")) return "Safari"; +}; /** * @description 绑定事件 on(element, event, handler) @@ -157,17 +157,17 @@ export const on = (function () { if (document.addEventListener) { return function (element, event, handler) { if (element && event && handler) { - element.addEventListener(event, handler, false) + element.addEventListener(event, handler, false); } - } + }; } else { return function (element, event, handler) { if (element && event && handler) { - element.attachEvent('on' + event, handler) + element.attachEvent("on" + event, handler); } - } + }; } -})() +})(); /** * @description 解绑事件 off(element, event, handler) @@ -176,29 +176,29 @@ export const off = (function () { if (document.removeEventListener) { return function (element, event, handler) { if (element && event) { - element.removeEventListener(event, handler, false) + element.removeEventListener(event, handler, false); } - } + }; } else { return function (element, event, handler) { if (element && event) { - element.detachEvent('on' + event, handler) + element.detachEvent("on" + event, handler); } - } + }; } -})() +})(); /** * 判断一个对象是否存在key,如果传入第二个参数key,则是判断这个obj对象是否存在key这个属性 * 如果没有传入key这个参数,则判断obj对象是否有键值对 */ export const hasKey = (obj, key) => { - if (key) return key in obj + if (key) return key in obj; else { - let keysArr = Object.keys(obj) - return keysArr.length + let keysArr = Object.keys(obj); + return keysArr.length; } -} +}; /** * @param {*} obj1 对象 @@ -206,10 +206,14 @@ export const hasKey = (obj, key) => { * @description 判断两个对象是否相等,这两个对象的值只能是数字或字符串 */ export const objEqual = (obj1, obj2) => { - const keysArr1 = Object.keys(obj1) - const keysArr2 = Object.keys(obj2) - if (keysArr1.length !== keysArr2.length) return false - else if (keysArr1.length === 0 && keysArr2.length === 0) return true + const keysArr1 = Object.keys(obj1); + const keysArr2 = Object.keys(obj2); + if (keysArr1.length !== keysArr2.length) return false; + else if (keysArr1.length === 0 && keysArr2.length === 0) return true; /* eslint-disable-next-line */ else return !keysArr1.some(key => obj1[key] != obj2[key]) -} +}; + +// @函数: 引入组件 +export const lazyLoadingCop = file => + require("@/view/" + file + ".vue").default; From e24103a136d1b2e82162669a517d496899a3d41f Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Mon, 27 Apr 2020 18:27:54 +0800 Subject: [PATCH 029/164] =?UTF-8?q?=E7=94=A8=E6=88=B7=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/mock/login.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/mock/login.js b/src/mock/login.js index e5d0ee3f8..34f5a405f 100644 --- a/src/mock/login.js +++ b/src/mock/login.js @@ -4,15 +4,15 @@ const USER_MAP = { super_admin: { name: "super_admin", user_id: "1", - access: ["super_admin", "admin"], + access: ["super_admin"], token: "super_admin", avator: "https://file.iviewui.com/dist/a0e88e83800f138b94d2414621bd9704.png" }, - admin: { - name: "admin", + visitor: { + name: "visitor", user_id: "2", - access: ["admin"], - token: "admin", + access: ["visitor"], + token: "visitor", avator: "https://avatars0.githubusercontent.com/u/20942571?s=460&v=4" } }; From eaf472f314c1367a17b07db9260b65248ded45c0 Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Mon, 27 Apr 2020 18:29:10 +0800 Subject: [PATCH 030/164] =?UTF-8?q?=E8=B7=AF=E7=94=B1=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=A4=84=E7=90=86=E9=80=9A=E7=94=A8function=E5=B0=81=E8=A3=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/libs/router-util.js | 161 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 161 insertions(+) create mode 100644 src/libs/router-util.js diff --git a/src/libs/router-util.js b/src/libs/router-util.js new file mode 100644 index 000000000..6948aacbc --- /dev/null +++ b/src/libs/router-util.js @@ -0,0 +1,161 @@ +import { localRead } from "@/libs/util"; +import { lazyLoadingCop } from "@/libs/tools"; +import Main from "@/components/main"; // Main 是架构组件,不在后台返回,在文件里单独引入 +import parentView from "@/components/parent-view"; // parentView 是二级架构组件,不在后台返回,在文件里单独引入 + +// 加载路由菜单,从localStorage拿到路由,在创建路由时使用 +export const dynamicRouterAdd = from => { + let data = localRead("dynamicRouter"); + let dynamicRouter = data !== "" ? filterAsyncRouter(JSON.parse(data)) : []; + console.log(`动态路由数据:${from}`, dynamicRouter); + return dynamicRouter; +}; + +// @函数:遍历后台传来的路由数据,转为路由基础数据 +export const routerDataHanding = apiRouterData => { + const asyncRouterMap = []; + + // 外层节点 + apiRouterData.forEach(route => { + if (route.parenetId === "root") { + // console.log(route); + if (route.path === "") { + // 有子节点的父级路由(模块,非页面) + asyncRouterMap.push({ + path: route.url === "/" ? route.url : "/" + route.url, + name: route.name, + component: "Main", + meta: { + icon: route.ico, + title: route.title, + hideInBread: true, + id: route.id // 根据id确定子组件 + }, + children: [] + }); + } else if (parseInt(route.showLevel) === 3) { + // 无子节点,菜单显示该页面选项,页面含菜单栏和面包屑 -> 根据url和name创建父子结构的路由 + asyncRouterMap.push({ + path: "/" + route.url.split("/")[0], + name: route.name.split("/")[0], + component: "Main", + meta: { + icon: route.ico, + title: route.title, + hideInBread: true + }, + children: [ + { + path: route.url + .split("/") + .filter((val, index) => { + return index !== 0; + }) + .join("/"), + name: route.name + .split("/") + .filter((val, index) => { + return index !== 0; + }) + .join("/"), + meta: { + icon: route.ico, + title: route.title + }, + component: route.path, + children: [] + } + ] + }); + } else if (parseInt(route.showLevel) === 1) { + // 无子节点,菜单显示该页面选项,页面不含菜单栏不含面包屑 -> 根节点路由,与main组件平级 + asyncRouterMap.push({ + path: "/" + route.url, + name: route.name, + component: route.path, + meta: { + icon: route.ico, + title: route.title, + hideInBread: true + }, + children: [] + }); + } else if (parseInt(route.showLevel) === 4) { + // 无子节点,菜单隐藏该页面选项,页面不含菜单栏不含面包屑 -> 根节点路由,与main组件平级 + asyncRouterMap.push({ + path: "/" + route.url, + name: route.name, + component: route.path, + meta: { + icon: route.ico, + title: route.title, + hideInBread: true, + hideInMenu: true + }, + children: [] + }); + } + } + }); + + // console.log(asyncRouterMap); + + // 内层子路由 - 递归 + const handleRecurrence = recurrenceData => { + recurrenceData.forEach(data => { + apiRouterData.forEach(route => { + if (data.meta.id === route.parenetId) { + data.children.push({ + path: route.url, + name: route.name, + meta: { + icon: data.meta.icon, + title: route.title + }, + component: route.path, + children: [] + }); + } + }); + // console.log(data); + handleRecurrence(data.children); + }); + }; + handleRecurrence(asyncRouterMap); + + // 首页重定向:处理name,追加 redirect 和 notCache + asyncRouterMap.forEach(route => { + if (route.path === "/") { + // home 页 -> 重定向为home + route.meta.notCache = true; + route.children[0].meta.notCache = true; + route.children[0].name = "_" + route.name; + route.redirect = route.path + route.children[0].path; + } else if (route.children.length !== 0) { + // 非 home 页且有子组件 -> 重定向为第一个子组件 + route.redirect = route.path + "/" + route.children[0].path; + } + }); + return asyncRouterMap; +}; + +// @函数: 遍历路由基础数据,转换为前端组件对象 +export const filterAsyncRouter = asyncRouterMap => { + const accessedRouters = asyncRouterMap.filter(route => { + if (route.component) { + if (route.component === "Main") { + route.component = Main; // Main组件特殊处理 + } else if (route.component === "parentView") { + route.component = parentView; // parentView组件特殊处理 + } else { + route.component = lazyLoadingCop(route.component); + } + } + if (route.children && route.children.length) { + route.children = filterAsyncRouter(route.children); // 子组件递归 + } + return true; + }); + // console.log(accessedRouters); + return accessedRouters; +}; From 2e0ceb42ca8195832d85b5904bf5697c7e994c39 Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Mon, 27 Apr 2020 18:29:32 +0800 Subject: [PATCH 031/164] =?UTF-8?q?=E4=B8=B4=E6=97=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/mock/role.js | 251 +++++++++++++++++++++++++++++++++++++++ src/store/module/app.js | 192 +++++++++++++++++++++--------- src/view/login/login.vue | 8 +- 3 files changed, 394 insertions(+), 57 deletions(-) create mode 100644 src/mock/role.js diff --git a/src/mock/role.js b/src/mock/role.js new file mode 100644 index 000000000..a750d8325 --- /dev/null +++ b/src/mock/role.js @@ -0,0 +1,251 @@ +// 角色列表 +const roleList = [ + { + name: "super_admin", + title: "超级管理员", + menus: [], + id: "1" + }, + { + name: "visitor", + title: "访客", + menus: [], + id: "2" + } +]; + +// 菜单列表 +const menuList = [ + { + id: "a4a49ff8874044dfbd90c06544be165b", + name: "home", + title: "首页概览", + url: "/home", + path: "single-page/home/home", + sort: 30, + parenetId: "root", + parenetPath: "root", + status: 1, + description: "", + ico: "md-home", + isOutSide: false, + showLevel: 3 + }, + { + id: "3976b690e56b48639e108ac6d6ca622b", + name: "control-leader-shop", + title: "驾驶舱", + url: "control-leader-shop", + path: "6inspector/control", + sort: 25, + parenetId: "root", + parenetPath: "root", + status: 1, + description: "驾驶舱-车间(管理员或车间主管)", + ico: "md-laptop", + isOutSide: false, + showLevel: 1 + }, + { + id: "ef93f8fe1b154de688bcbaab1a2a88ef", + name: "task", + title: "任务管理", + url: "task", + path: "", + sort: 15, + parenetId: "root", + parenetPath: "root", + status: 1, + description: "", + ico: "md-shuffle", + isOutSide: false, + showLevel: 3 + }, + { + id: "8502de35df2c4d19ad337c5548f661b4", + name: "sopMessage/message", + title: "查看SOP", + url: "sopMessage/message", + path: "8taskManage/sopMessage", + sort: 13, + parenetId: "root", + parenetPath: "root", + status: 1, + description: "", + ico: "md-document", + isOutSide: false, + showLevel: 3 + }, + { + id: "2", + name: "account", + title: "账号管理", + url: "account", + path: "3manage/account", + sort: 13, + parenetId: "d30bf0ff035c4e51875e7014ad46e1af", + parenetPath: "root.d30bf0ff035c4e51875e7014ad46e1af", + status: 1, + description: "系统账号管理", + ico: null, + isOutSide: false, + showLevel: 3 + }, + { + id: "3", + name: "role", + title: "角色管理", + url: "role", + path: "3manage/role", + sort: 12, + parenetId: "d30bf0ff035c4e51875e7014ad46e1af", + parenetPath: "root.d30bf0ff035c4e51875e7014ad46e1af", + status: 1, + description: "系统角色管理", + ico: null, + isOutSide: false, + showLevel: 3 + }, + { + id: "23001d1a12fe43ceac9769ee08f899f2", + name: "menu", + title: "菜单管理", + url: "menu", + path: "3manage/menu", + sort: 11, + parenetId: "d30bf0ff035c4e51875e7014ad46e1af", + parenetPath: "root.d30bf0ff035c4e51875e7014ad46e1af", + status: 1, + description: "", + ico: null, + isOutSide: false, + showLevel: 3 + }, + { + id: "c64f399d2c03445dbfa2b23c240e2dc6", + name: "number/print", + title: "条码打印", + url: "number/print", + path: "3manage/number", + sort: 11, + parenetId: "root", + parenetPath: "root", + status: 1, + description: "", + ico: "md-print", + isOutSide: false, + showLevel: 3 + }, + { + id: "013ad32e79c44427a8cad340fb056821", + name: "report", + title: "报表中心", + url: "report", + path: "", + sort: 3, + parenetId: "root", + parenetPath: "root", + status: 1, + description: "", + ico: "md-analytics", + isOutSide: false, + showLevel: 3 + }, + { + id: "6b2d3c49373946989262e586d655dccf", + name: "mould", + title: "模板配置", + url: "mould", + path: "3manage/mould/index", + sort: 3, + parenetId: "013ad32e79c44427a8cad340fb056821", + parenetPath: "root.013ad32e79c44427a8cad340fb056821", + status: 1, + description: "", + ico: "", + isOutSide: false, + showLevel: 3 + }, + { + id: "3db9fdd0ada749dab01149fa0248eb23", + name: "distribute", + title: "任务派发", + url: "distribute", + path: "8taskManage/taskDistribution", + sort: 2, + parenetId: "ef93f8fe1b154de688bcbaab1a2a88ef", + parenetPath: "root.ef93f8fe1b154de688bcbaab1a2a88ef", + status: 1, + description: "", + ico: "", + isOutSide: false, + showLevel: 3 + }, + { + id: "d30bf0ff035c4e51875e7014ad46e1af", + name: "manage", + title: "管理中心", + url: "manage", + path: "", + sort: 2, + parenetId: "root", + parenetPath: "root", + status: 1, + description: "系统基础配置", + ico: "md-settings", + isOutSide: false, + showLevel: 3 + }, + { + id: "82814bef61934f5aadb4e1e84608f414", + name: "view", + title: "异常产品报表", + url: "view/12", + path: "3manage/mould/reportView", + sort: 1, + parenetId: "013ad32e79c44427a8cad340fb056821", + parenetPath: "root.013ad32e79c44427a8cad340fb056821", + status: 1, + description: "", + ico: "", + isOutSide: false, + showLevel: 3 + }, + { + id: "e7dfaf2ec6aa482c93410d9b4e2323e5", + name: "history", + title: "历史任务", + url: "history", + path: "8taskManage/taskHistory", + sort: 1, + parenetId: "ef93f8fe1b154de688bcbaab1a2a88ef", + parenetPath: "root.ef93f8fe1b154de688bcbaab1a2a88ef", + status: 1, + description: "", + ico: "", + isOutSide: false, + showLevel: 3 + } +]; + +// 菜单层级 +const menuLevel = [ + { + label: "菜单显示该页面选项,页面不含菜单栏不含面包屑", + value: "1" + }, + { + label: "菜单显示该页面选项,页面含菜单栏但不含面包屑", + value: "2" + }, + { + label: "菜单显示该页面选项,页面含菜单栏和面包屑", + value: "3" + }, + { + label: "菜单隐藏该页面选项,页面不含菜单栏不含面包屑", + value: "4" + } +]; + +export { roleList, menuList, menuLevel }; diff --git a/src/store/module/app.js b/src/store/module/app.js index 003ad63a2..c9e6f3b69 100644 --- a/src/store/module/app.js +++ b/src/store/module/app.js @@ -10,103 +10,187 @@ import { getRouteTitleHandled, localSave, localRead -} from '@/libs/util' -import beforeClose from '@/router/before-close' -import { saveErrorLogger } from '@/api/data' -import router from '@/router' -import routers from '@/router/routers' -import config from '@/config' -const { homeName } = config +} from "@/libs/util"; +import beforeClose from "@/router/before-close"; +import { + saveErrorLogger, + getAllMenus // 获取当前用户的全部菜单 +} from "@/api/data"; +import router from "@/router"; +import routers from "@/router/routers"; +import config from "@/config"; +import { + dynamicRouterAdd, // 加载路由菜单,从localStorage拿到路由,在创建路由时使用 + routerDataHanding, // 遍历后台返回的路由数据,转为路由基础数据 + filterAsyncRouter // 遍历路由基础数据,转换为前端组件对象 +} from "@/libs/router-util"; +const { homeName } = config; const closePage = (state, route) => { - const nextRoute = getNextRoute(state.tagNavList, route) + const nextRoute = getNextRoute(state.tagNavList, route); state.tagNavList = state.tagNavList.filter(item => { - return !routeEqual(item, route) - }) - router.push(nextRoute) -} + return !routeEqual(item, route); + }); + router.push(nextRoute); +}; export default { state: { breadCrumbList: [], tagNavList: [], homeRoute: getHomeRoute(routers, homeName), - local: localRead('local'), + local: localRead("local"), errorList: [], hasReadErrorPage: false }, getters: { - menuList: (state, getters, rootState) => getMenuByRouter(routers, rootState.user.access), + menuList: (state, getters, rootState) => + getMenuByRouter(routers, rootState.user.access), errorCount: state => state.errorList.length }, mutations: { - setBreadCrumb (state, route) { - state.breadCrumbList = getBreadCrumbList(route, state.homeRoute) + setBreadCrumb(state, route) { + state.breadCrumbList = getBreadCrumbList(route, state.homeRoute); }, - setTagNavList (state, list) { - let tagList = [] + setTagNavList(state, list) { + let tagList = []; if (list) { - tagList = [...list] - } else tagList = getTagNavListFromLocalstorage() || [] - if (tagList[0] && tagList[0].name !== homeName) tagList.shift() - let homeTagIndex = tagList.findIndex(item => item.name === homeName) + tagList = [...list]; + } else tagList = getTagNavListFromLocalstorage() || []; + if (tagList[0] && tagList[0].name !== homeName) tagList.shift(); + let homeTagIndex = tagList.findIndex(item => item.name === homeName); if (homeTagIndex > 0) { - let homeTag = tagList.splice(homeTagIndex, 1)[0] - tagList.unshift(homeTag) + let homeTag = tagList.splice(homeTagIndex, 1)[0]; + tagList.unshift(homeTag); } - state.tagNavList = tagList - setTagNavListInLocalstorage([...tagList]) + state.tagNavList = tagList; + setTagNavListInLocalstorage([...tagList]); }, - closeTag (state, route) { - let tag = state.tagNavList.filter(item => routeEqual(item, route)) - route = tag[0] ? tag[0] : null - if (!route) return - if (route.meta && route.meta.beforeCloseName && route.meta.beforeCloseName in beforeClose) { + closeTag(state, route) { + let tag = state.tagNavList.filter(item => routeEqual(item, route)); + route = tag[0] ? tag[0] : null; + if (!route) return; + if ( + route.meta && + route.meta.beforeCloseName && + route.meta.beforeCloseName in beforeClose + ) { new Promise(beforeClose[route.meta.beforeCloseName]).then(close => { if (close) { - closePage(state, route) + closePage(state, route); } - }) + }); } else { - closePage(state, route) + closePage(state, route); } }, - addTag (state, { route, type = 'unshift' }) { - let router = getRouteTitleHandled(route) + addTag(state, { route, type = "unshift" }) { + let router = getRouteTitleHandled(route); if (!routeHasExist(state.tagNavList, router)) { - if (type === 'push') state.tagNavList.push(router) + if (type === "push") state.tagNavList.push(router); else { - if (router.name === homeName) state.tagNavList.unshift(router) - else state.tagNavList.splice(1, 0, router) + if (router.name === homeName) state.tagNavList.unshift(router); + else state.tagNavList.splice(1, 0, router); } - setTagNavListInLocalstorage([...state.tagNavList]) + setTagNavListInLocalstorage([...state.tagNavList]); } }, - setLocal (state, lang) { - localSave('local', lang) - state.local = lang + setLocal(state, lang) { + localSave("local", lang); + state.local = lang; }, - addError (state, error) { - state.errorList.push(error) + addError(state, error) { + state.errorList.push(error); }, - setHasReadErrorLoggerStatus (state, status = true) { - state.hasReadErrorPage = status + setHasReadErrorLoggerStatus(state, status = true) { + state.hasReadErrorPage = status; } }, actions: { - addErrorLog ({ commit, rootState }, info) { - if (!window.location.href.includes('error_logger_page')) commit('setHasReadErrorLoggerStatus', false) - const { user: { token, userId, userName } } = rootState + addErrorLog({ commit, rootState }, info) { + if (!window.location.href.includes("error_logger_page")) { + commit("setHasReadErrorLoggerStatus", false); + } + const { + user: { token, userId, userName } + } = rootState; let data = { ...info, time: Date.parse(new Date()), token, userId, userName - } + }; saveErrorLogger(info).then(() => { - commit('addError', data) - }) + commit("addError", data); + }); + }, + // 获取动态路由数据 + getRouters({ dispatch, commit, rootState }, routes) { + return new Promise((resolve, reject) => { + var gotRouter = []; // 设置动态路由 + if (localRead("dynamicRouter") === "") { + /* localStorage里dynamicRouter值为空 -> 没有路由数据 -> 获取路由数据 */ + console.log("获取路由:从api"); + // if (!isMock) { + // // 接口数据 + try { + getAllMenus(rootState.user.token) + .then(res => { + // console.log(res); + var routerData = routerDataHanding(res.data.data); // 拿到路由接口数据 + localSave("dynamicRouter", JSON.stringify(routerData)); // 存储routerData到localStorage + gotRouter = filterAsyncRouter(routerData); // 过滤路由,路由组件转换 + // dispatch("updateMenuList", gotRouter).then(res => { + resolve(routerData); + // }); + }) + .catch(err => { + reject(err); + }); + } catch (error) { + reject(error); + } + // } else { + // /* mock数据 */ + // // 1.根据用户角色,处理该角色的路由数据 + // var menus = []; + // rootState.user.access.forEach(_access => { + // // 把该用户所有的角色对应的菜单都加进来 + // menus = menus.concat( + // getValueByKey(roleList, "id", _access.id, "menus") + // ); + // }); + // menus = [...new Set(menus)]; // 然后去重 + // // console.log(menus); // 获取该用户所有角色的所有菜单数据 + // // 2.拿到路由模拟动态数据,与该角色处理后的数据做比对筛选 + // var routerData = menuList.filter(menu => { + // return menus.some( + // _menu => _menu.id === menu.id // 根据id全等筛选数据 + // ); + // }); + // routerData = routerDataHanding( + // JSON.parse(JSON.stringify(routerData)) + // ); + // // console.log(routerData); + // // 3.处理后路由数据生成路由和菜单等 + // localSave("dynamicRouter", JSON.stringify(routerData)); // 存储routerData到localStorage + // gotRouter = filterAsyncRouter(routerData); // 过滤路由,路由组件转换 + // dispatch("updateMenuList", gotRouter).then(res => { + // resolve(routerData); + // }); + // } + } else { + /* 有路由数据 -> 直接从localStorage里面获取 */ + console.log("获取路由:从localStorage"); + gotRouter = dynamicRouterAdd("router-util.js"); + commit("setMenuList", { + menuList: gotRouter, + access: rootState.user.access + }); + resolve(routerData); + } + }); } } -} +}; diff --git a/src/view/login/login.vue b/src/view/login/login.vue index da129284d..ce377acbd 100755 --- a/src/view/login/login.vue +++ b/src/view/login/login.vue @@ -25,13 +25,15 @@ export default { LoginForm }, methods: { - ...mapActions(["handleLogin", "getUserInfo"]), + ...mapActions(["handleLogin", "getUserInfo", "getRouters"]), handleSubmit({ userName, password }) { this.handleLogin({ userName, password }).then(res => { res.data.status === 200 && this.getUserInfo().then(res => { - this.$router.push({ - name: this.$config.homeName + this.getRouters().then(resRoutes => { + this.$router.push({ + name: this.$config.homeName + }); }); }); }); From 1889fc1c45e3be61fa87339b9d3859fd279e00ef Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Tue, 28 Apr 2020 16:13:31 +0800 Subject: [PATCH 032/164] =?UTF-8?q?vuex=EF=BC=9A=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E9=80=80=E5=87=BA=E6=97=B6=EF=BC=8C=E6=B8=85=E7=A9=BA=E8=B7=AF?= =?UTF-8?q?=E7=94=B1=E5=92=8C=E6=A0=87=E7=AD=BE=E7=BC=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/store/module/user.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/store/module/user.js b/src/store/module/user.js index a4d88bd1b..149e569a1 100644 --- a/src/store/module/user.js +++ b/src/store/module/user.js @@ -3,7 +3,7 @@ import { // logout, getUserInfo } from "@/api/user"; -import { setToken, getToken, removeToken } from "@/libs/util"; +import { setToken, getToken, removeToken, localSave } from "@/libs/util"; export default { state: { @@ -70,6 +70,8 @@ export default { // commit('setToken', '') removeToken(); // 删除token commit("setAccess", []); + localSave("dynamicRouter", []); // 清空本地存储localStorage中的dynamicRouter + localSave("tagNaveList", []); // 清空localStorage中的tagNaveList记录 resolve(); }); }, From 9afa0794531267ff81ccccc75645db302a929b9b Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Tue, 28 Apr 2020 16:14:05 +0800 Subject: [PATCH 033/164] =?UTF-8?q?=E6=A8=A1=E6=9D=BF=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/view/template.vue | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 src/view/template.vue diff --git a/src/view/template.vue b/src/view/template.vue new file mode 100644 index 000000000..a9dc1891f --- /dev/null +++ b/src/view/template.vue @@ -0,0 +1,27 @@ + + + + + From dcfeef1f017885024da1c9476b8abe3fc568d467 Mon Sep 17 00:00:00 2001 From: SimonShao <435776313@qq.com> Date: Tue, 28 Apr 2020 16:57:20 +0800 Subject: [PATCH 034/164] Update README.md --- README.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index cc41fcf73..d4a8da734 100755 --- a/README.md +++ b/README.md @@ -39,15 +39,19 @@ api > data getAllMenus store > app.js -libs > router-util.js +libs > router-util.js 3个封装方法 libs > tools.js 函数: 引入组件 +store > user.js 退出登录时清空路由和标签缓存 + 4.路由改造 +router > router.js + router > index.js -router > router.js +view > login.vue 登录后,调用app.js的方法,生成动态路由 5.github部署: From 57f3b3a5f6b6baedca1e0fc5cdc1ee34e5e2cbce Mon Sep 17 00:00:00 2001 From: SimonShao <435776313@qq.com> Date: Tue, 28 Apr 2020 17:05:58 +0800 Subject: [PATCH 035/164] Update README.md --- README.md | 31 ++++++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index d4a8da734..1aae2205d 100755 --- a/README.md +++ b/README.md @@ -6,6 +6,7 @@ userName:super_admin / visitor password:any / any + 1.axios加工改造,使其更符合后端的回文格式: libs > axios.js @@ -16,18 +17,15 @@ store > user.js view > login.vue + 2.mock数据、mock接口: -mock - role.js,新建角色列表、菜单列表、菜单层级列表,这里以我在实际项目中后端给到的数据结构为例 - -角色列表: +mock - role.js,新建菜单列表、菜单层级列表,这里以我在实际项目中后端给到的数据结构为例 菜单列表: 菜单层级列表: -对应关系图 - 注册mock事件不过多陈述: @@ -35,6 +33,7 @@ mock > data getAllMenus mock > index getAllMenus api > data getAllMenus + 3.动态获取路由数据,并对数据进行处理: store > app.js @@ -45,6 +44,7 @@ libs > tools.js 函数: 引入组件 store > user.js 退出登录时清空路由和标签缓存 + 4.路由改造 router > router.js @@ -53,12 +53,33 @@ router > index.js view > login.vue 登录后,调用app.js的方法,生成动态路由 + +进入/回到login页面 -> 路由初始化,清空动态添加的路由 + +每次登录 -> 后端生成所有动态路由数据,数据存储到localStorage -> 处理后挂载到路由,并生成左侧菜单 + +每次刷新 -> 从localStorage获取路由,处理后生成左侧菜单 + + +5.前端控制权限 + +mock - role.js,新建角色列表、菜单列表、菜单层级列表,这里以我在实际项目中后端给到的数据结构为例 + +角色列表: + +菜单列表: + +菜单层级列表: + +对应关系图 + 5.github部署: router > index.js,取消history模式 部署后的css文件 > static > fonts > 把外面的fonts放进去 + 6.扩展: 项目需求万千,万变不离其宗。以下两种情况我已做好demo并集成到项目中 From 1d445c3b6c62252461b0078ddca59dfa1a832fbc Mon Sep 17 00:00:00 2001 From: SimonShao <435776313@qq.com> Date: Tue, 28 Apr 2020 17:22:29 +0800 Subject: [PATCH 036/164] Update README.md --- README.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 1aae2205d..fc4a23619 100755 --- a/README.md +++ b/README.md @@ -63,15 +63,16 @@ view > login.vue 登录后,调用app.js的方法,生成动态路由 5.前端控制权限 -mock - role.js,新建角色列表、菜单列表、菜单层级列表,这里以我在实际项目中后端给到的数据结构为例 +实际开发中,后台会提供“根据用户查询菜单(getAllMenus)”的接口,返回的数据已经是该用户的菜单,因此当前步骤仅针对前端控制权限。 -角色列表: +本项目中,一个用户对应多个角色,一个角色对应多个菜单,在用户管理界面给用户绑定角色,在角色管理界面给角色绑定菜单。伙伴们需根据自身项目中【用户、角色、菜单】3者的关系及具体页面逻辑,来解决菜单的权限控制。 -菜单列表: +mock - role.js,新建角色列表,这里仍以我在实际项目中后端给到的数据结构为例 -菜单层级列表: +角色列表: + +store > app.js 对路由数据进行用户权限处理 -对应关系图 5.github部署: From 1e906200e07d0f32f64c3b5106fbf239fa25a55a Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Tue, 28 Apr 2020 17:32:24 +0800 Subject: [PATCH 037/164] =?UTF-8?q?=E5=B7=A6=E4=BE=A7=E8=8F=9C=E5=8D=95?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E6=96=B9=E5=BC=8F=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/main/main.vue | 199 +++++++++++++++++++---------------- 1 file changed, 111 insertions(+), 88 deletions(-) diff --git a/src/components/main/main.vue b/src/components/main/main.vue index 18b56e361..b46749612 100644 --- a/src/components/main/main.vue +++ b/src/components/main/main.vue @@ -1,31 +1,57 @@ From fca549db666ccd802fc3349c187b6f81efeba097 Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Tue, 28 Apr 2020 17:32:47 +0800 Subject: [PATCH 038/164] =?UTF-8?q?=E5=8E=9F=E5=A7=8B=E8=B7=AF=E7=94=B1?= =?UTF-8?q?=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/router/routersOrg.js | 136 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 136 insertions(+) create mode 100644 src/router/routersOrg.js diff --git a/src/router/routersOrg.js b/src/router/routersOrg.js new file mode 100644 index 000000000..ba5b28ac9 --- /dev/null +++ b/src/router/routersOrg.js @@ -0,0 +1,136 @@ +import Main from "@/components/main"; +import parentView from "@/components/parent-view"; + +/** + * iview-admin中meta除了原生参数外可配置的参数: + * meta: { + * title: { String|Number|Function } + * 显示在侧边栏、面包屑和标签栏的文字 + * 使用'{{ 多语言字段 }}'形式结合多语言使用,例子看多语言的路由配置; + * 可以传入一个回调函数,参数是当前路由对象,例子看动态路由和带参路由 + * hideInMenu: (false) 设为true后在左侧菜单不会显示该页面选项 + * notCache: (false) 设为true后页面不会缓存 + * access: (null) 可访问该页面的权限数组,当前路由设置的权限会影响子路由 + * icon: (-) 该页面在左侧菜单、面包屑和标签导航处显示的图标,如果是自定义图标,需要在图标名称前加下划线'_' + * beforeCloseName: (-) 设置该字段,则在关闭当前tab页时会去'@/router/before-close.js'里寻找该字段名对应的方法,作为关闭前的钩子函数 + * } + */ + +export default [ + { + path: "/login", + name: "login", + meta: { + title: "Login - 登录", + hideInMenu: true + }, + component: () => import("@/view/login/login.vue") + }, + { + path: "/", + name: "_home", + redirect: "/home", + component: Main, + meta: { + hideInMenu: true, + notCache: true + }, + children: [ + { + path: "/home", + name: "home", + meta: { + hideInMenu: true, + title: "首页", + notCache: true, + icon: "md-home" + }, + component: () => import("@/view/single-page/home") + } + ] + }, + { + path: "", + name: "doc", + meta: { + title: "文档", + href: "https://lison16.github.io/iview-admin-doc/#/", + icon: "ios-book" + } + }, + { + path: "/multilevel", + name: "multilevel", + meta: { + icon: "md-menu", + title: "多级菜单" + }, + component: Main, + children: [ + { + path: "level_2_1", + name: "level_2_1", + meta: { + icon: "md-funnel", + title: "二级-1" + }, + component: () => import("@/view/multilevel/level-2-1.vue") + }, + { + path: "level_2_2", + name: "level_2_2", + meta: { + access: ["super_admin"], + icon: "md-funnel", + showAlways: true, + title: "二级-2" + }, + component: parentView, + children: [ + { + path: "level_2_2_1", + name: "level_2_2_1", + meta: { + icon: "md-funnel", + title: "三级" + }, + component: () => import("@/view/multilevel/level-2-2/level-3-1.vue") + } + ] + }, + { + path: "level_2_3", + name: "level_2_3", + meta: { + icon: "md-funnel", + title: "二级-3" + }, + component: () => import("@/view/multilevel/level-2-3.vue") + } + ] + }, + { + path: "/401", + name: "error_401", + meta: { + hideInMenu: true + }, + component: () => import("@/view/error-page/401.vue") + }, + { + path: "/500", + name: "error_500", + meta: { + hideInMenu: true + }, + component: () => import("@/view/error-page/500.vue") + }, + { + path: "*", + name: "error_404", + meta: { + hideInMenu: true + }, + component: () => import("@/view/error-page/404.vue") + } +]; From 23e2d62cd5f04c1a2ead4a82319d15f413d4258f Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Tue, 28 Apr 2020 17:33:31 +0800 Subject: [PATCH 039/164] =?UTF-8?q?=E7=99=BB=E5=BD=95=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E8=B7=AF=E7=94=B1=E5=88=9D=E5=A7=8B=E5=8C=96=EF=BC=8C=E6=B8=85?= =?UTF-8?q?=E7=A9=BA=E5=8A=A8=E6=80=81=E6=B7=BB=E5=8A=A0=E7=9A=84=E8=B7=AF?= =?UTF-8?q?=E7=94=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/view/login/login.vue | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/view/login/login.vue b/src/view/login/login.vue index ce377acbd..b5daa7588 100755 --- a/src/view/login/login.vue +++ b/src/view/login/login.vue @@ -20,10 +20,17 @@ + + From 18800a4bfb9cf90662658dd798f3461c97dd3a22 Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Wed, 6 May 2020 14:09:57 +0800 Subject: [PATCH 046/164] =?UTF-8?q?mockData=EF=BC=9A=E8=A7=92=E8=89=B2?= =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/mock/role.js | 337 ++++++++++++++++++++--------------------------- 1 file changed, 141 insertions(+), 196 deletions(-) diff --git a/src/mock/role.js b/src/mock/role.js index a750d8325..bdd77596b 100644 --- a/src/mock/role.js +++ b/src/mock/role.js @@ -3,248 +3,193 @@ const roleList = [ { name: "super_admin", title: "超级管理员", - menus: [], + menus: [ + "doc", + "control", + "multilevel", + "level_2_1", + "level_2_2", + "level_2_2_1", + "screen2", + "level_2_2_2", + "level_2_3", + "screen", + "github" + ], id: "1" }, { name: "visitor", title: "访客", - menus: [], + menus: [ + "control", + "multilevel", + "level_2_1", + "level_2_2", + "level_2_2_1", + "level_2_2_2", + "level_2_3", + "screen" + ], id: "2" } ]; -// 菜单列表 +/** menuList路由列表 + * isOutSide:是否为外链 + * showLevel:路由层级,详见menuLevel路由层级列表 + * path:前端组件路径(父组件为空) + */ + +// 路由层级 +const menuLevel = [ + { + label: "菜单显示该页面选项,页面不含菜单栏", + value: "1" + }, + { + label: "菜单显示该页面选项,页面含菜单栏", + value: "2" + }, + { + label: "菜单隐藏该页面选项,页面不含菜单栏", + value: "3" + } +]; + +// 路由列表 const menuList = [ { - id: "a4a49ff8874044dfbd90c06544be165b", - name: "home", - title: "首页概览", - url: "/home", - path: "single-page/home/home", - sort: 30, - parenetId: "root", - parenetPath: "root", - status: 1, - description: "", - ico: "md-home", - isOutSide: false, - showLevel: 3 + id: "doc", + name: "doc", + title: "文档", + url: "https://lison16.github.io/iview-admin-doc/#/", + path: "", + sort: 28, + parentId: "root", + ico: "ios-book", + isOutSide: true, + showLevel: 1 }, { - id: "3976b690e56b48639e108ac6d6ca622b", - name: "control-leader-shop", + id: "control", + name: "control", title: "驾驶舱", - url: "control-leader-shop", - path: "6inspector/control", - sort: 25, - parenetId: "root", - parenetPath: "root", - status: 1, - description: "驾驶舱-车间(管理员或车间主管)", + url: "control", + path: "screen", + sort: 26, + parentId: "root", ico: "md-laptop", isOutSide: false, showLevel: 1 }, { - id: "ef93f8fe1b154de688bcbaab1a2a88ef", - name: "task", - title: "任务管理", - url: "task", + id: "multilevel", + name: "multilevel", + title: "多级菜单", + url: "multilevel", path: "", - sort: 15, - parenetId: "root", - parenetPath: "root", - status: 1, - description: "", - ico: "md-shuffle", - isOutSide: false, - showLevel: 3 - }, - { - id: "8502de35df2c4d19ad337c5548f661b4", - name: "sopMessage/message", - title: "查看SOP", - url: "sopMessage/message", - path: "8taskManage/sopMessage", - sort: 13, - parenetId: "root", - parenetPath: "root", - status: 1, - description: "", - ico: "md-document", + sort: 24, + parentId: "root", + ico: "md-menu", isOutSide: false, - showLevel: 3 + showLevel: 2 }, { - id: "2", - name: "account", - title: "账号管理", - url: "account", - path: "3manage/account", - sort: 13, - parenetId: "d30bf0ff035c4e51875e7014ad46e1af", - parenetPath: "root.d30bf0ff035c4e51875e7014ad46e1af", - status: 1, - description: "系统账号管理", - ico: null, + id: "level_2_1", + name: "level_2_1", + title: "二级-1", + url: "level_2_1", + path: "template", + sort: 10, + parentId: "multilevel", + ico: "md-funnel", isOutSide: false, - showLevel: 3 + showLevel: 2 }, { - id: "3", - name: "role", - title: "角色管理", - url: "role", - path: "3manage/role", - sort: 12, - parenetId: "d30bf0ff035c4e51875e7014ad46e1af", - parenetPath: "root.d30bf0ff035c4e51875e7014ad46e1af", - status: 1, - description: "系统角色管理", - ico: null, + id: "level_2_2", + name: "level_2_2", + title: "二级-2", + url: "level_2_2", + path: "parentView", + sort: 8, + parentId: "multilevel", + ico: "md-funnel", isOutSide: false, - showLevel: 3 + showLevel: 2 }, { - id: "23001d1a12fe43ceac9769ee08f899f2", - name: "menu", - title: "菜单管理", - url: "menu", - path: "3manage/menu", - sort: 11, - parenetId: "d30bf0ff035c4e51875e7014ad46e1af", - parenetPath: "root.d30bf0ff035c4e51875e7014ad46e1af", - status: 1, - description: "", - ico: null, + id: "level_2_2_1", + name: "level_2_2_1", + title: "三级-1", + url: "level_2_2_1", + path: "template", + sort: 10, + parentId: "level_2_2", + ico: "md-funnel", isOutSide: false, - showLevel: 3 + showLevel: 2 }, { - id: "c64f399d2c03445dbfa2b23c240e2dc6", - name: "number/print", - title: "条码打印", - url: "number/print", - path: "3manage/number", - sort: 11, - parenetId: "root", - parenetPath: "root", - status: 1, - description: "", - ico: "md-print", + id: "screen2", + name: "screen2", + title: "三级大屏", + url: "screen2", + path: "screen", + sort: 8, + parentId: "level_2_2", + ico: "md-laptop", isOutSide: false, - showLevel: 3 + showLevel: 1 }, { - id: "013ad32e79c44427a8cad340fb056821", - name: "report", - title: "报表中心", - url: "report", - path: "", - sort: 3, - parenetId: "root", - parenetPath: "root", - status: 1, - description: "", - ico: "md-analytics", + id: "level_2_2_2", + name: "level_2_2_2", + title: "三级-2", + url: "level_2_2_2", + path: "template", + sort: 6, + parentId: "level_2_2", + ico: "md-funnel", isOutSide: false, - showLevel: 3 + showLevel: 2 }, { - id: "6b2d3c49373946989262e586d655dccf", - name: "mould", - title: "模板配置", - url: "mould", - path: "3manage/mould/index", - sort: 3, - parenetId: "013ad32e79c44427a8cad340fb056821", - parenetPath: "root.013ad32e79c44427a8cad340fb056821", - status: 1, - description: "", - ico: "", + id: "level_2_3", + name: "level_2_3", + title: "二级-3", + url: "level_2_3", + path: "template", + sort: 6, + parentId: "multilevel", + ico: "md-funnel", isOutSide: false, - showLevel: 3 + showLevel: 2 }, { - id: "3db9fdd0ada749dab01149fa0248eb23", - name: "distribute", - title: "任务派发", - url: "distribute", - path: "8taskManage/taskDistribution", - sort: 2, - parenetId: "ef93f8fe1b154de688bcbaab1a2a88ef", - parenetPath: "root.ef93f8fe1b154de688bcbaab1a2a88ef", - status: 1, - description: "", - ico: "", + id: "screen", + name: "screen", + title: "二级大屏", + url: "screen", + path: "screen", + sort: 4, + parentId: "multilevel", + ico: "md-laptop", isOutSide: false, - showLevel: 3 + showLevel: 1 }, { - id: "d30bf0ff035c4e51875e7014ad46e1af", - name: "manage", - title: "管理中心", - url: "manage", + id: "github", + name: "github", + title: "github", + url: "https://github.com/simon9124/iview-dynamicRouter", path: "", sort: 2, - parenetId: "root", - parenetPath: "root", - status: 1, - description: "系统基础配置", - ico: "md-settings", - isOutSide: false, - showLevel: 3 - }, - { - id: "82814bef61934f5aadb4e1e84608f414", - name: "view", - title: "异常产品报表", - url: "view/12", - path: "3manage/mould/reportView", - sort: 1, - parenetId: "013ad32e79c44427a8cad340fb056821", - parenetPath: "root.013ad32e79c44427a8cad340fb056821", - status: 1, - description: "", - ico: "", - isOutSide: false, - showLevel: 3 - }, - { - id: "e7dfaf2ec6aa482c93410d9b4e2323e5", - name: "history", - title: "历史任务", - url: "history", - path: "8taskManage/taskHistory", - sort: 1, - parenetId: "ef93f8fe1b154de688bcbaab1a2a88ef", - parenetPath: "root.ef93f8fe1b154de688bcbaab1a2a88ef", - status: 1, - description: "", - ico: "", - isOutSide: false, - showLevel: 3 - } -]; - -// 菜单层级 -const menuLevel = [ - { - label: "菜单显示该页面选项,页面不含菜单栏不含面包屑", - value: "1" - }, - { - label: "菜单显示该页面选项,页面含菜单栏但不含面包屑", - value: "2" - }, - { - label: "菜单显示该页面选项,页面含菜单栏和面包屑", - value: "3" - }, - { - label: "菜单隐藏该页面选项,页面不含菜单栏不含面包屑", - value: "4" + parentId: "multilevel", + ico: "md-log-in", + isOutSide: true, + showLevel: 1 } ]; From 55562f95c5bfce72d3ff05f0a56defda9b76ca06 Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Wed, 6 May 2020 14:10:59 +0800 Subject: [PATCH 047/164] =?UTF-8?q?=E8=BF=BD=E5=8A=A0=EF=BC=9A=E2=91=A0?= =?UTF-8?q?=E4=BA=8C=E7=BA=A7=E5=A4=A7=E5=B1=8F=E8=B7=AF=E7=94=B1=E7=9A=84?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=A4=84=E7=90=86=EF=BC=9B=E2=91=A1=E5=89=8D?= =?UTF-8?q?=E7=AB=AF=E6=8E=A7=E5=88=B6=E8=B7=AF=E7=94=B1=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/store/module/app.js | 97 ++++++++++++++++++++++++----------------- 1 file changed, 58 insertions(+), 39 deletions(-) diff --git a/src/store/module/app.js b/src/store/module/app.js index c9e6f3b69..9ede5b770 100644 --- a/src/store/module/app.js +++ b/src/store/module/app.js @@ -22,8 +22,11 @@ import config from "@/config"; import { dynamicRouterAdd, // 加载路由菜单,从localStorage拿到路由,在创建路由时使用 routerDataHanding, // 遍历后台返回的路由数据,转为路由基础数据 - filterAsyncRouter // 遍历路由基础数据,转换为前端组件对象 + filterAsyncRouter, // 遍历路由基础数据,转换为前端组件对象 + menuListHanding // 遍历菜单数据,将"原本不应挂载在根菜单"的数据,重新挂载到相应位置 } from "@/libs/router-util"; +import { getValueByKey } from "@/libs/dataHanding"; // 根据对象数组某个key的value,查询另一个key的value +import { roleList } from "@/mock/role"; // mockData - 角色列表 const { homeName } = config; const closePage = (state, route) => { @@ -41,11 +44,13 @@ export default { homeRoute: getHomeRoute(routers, homeName), local: localRead("local"), errorList: [], - hasReadErrorPage: false + hasReadErrorPage: false, + menuList: [] // 菜单数据 }, getters: { menuList: (state, getters, rootState) => - getMenuByRouter(routers, rootState.user.access), + // getMenuByRouter(routers, rootState.user.access), + getMenuByRouter(dynamicRouterAdd("app.js"), rootState.user.access), // 根据路由加载菜单(仅mock时用) errorCount: state => state.errorList.length }, mutations: { @@ -104,6 +109,10 @@ export default { }, setHasReadErrorLoggerStatus(state, status = true) { state.hasReadErrorPage = status; + }, + // 根据路由和权限,生成左侧菜单 + setMenuList(state, data) { + state.menuList = getMenuByRouter(data.menuList, data.access); } }, actions: { @@ -125,6 +134,28 @@ export default { commit("addError", data); }); }, + // 动态路由数据 -> 首次登录挂载路由 + updateMenuList({ commit, rootState }, routes) { + // 动态菜单数据 + var menuList = JSON.parse(JSON.stringify(routes)); + // 路由数据处理:将"菜单显示该页面选项,页面不含菜单栏"重新挂载到根路由上 + menuListHanding(menuList, menuList); + console.log("动态添加路由:", routes); + console.log("左侧动态菜单:", menuList); + // 动态添加路由 - 真正添加路由(不会立刻刷新,需要手动往router.options.routes里添加数据) + router.addRoutes(routes); + // 手动添加路由数据 + routes.forEach(route => { + if (!router.options.routes.some(_route => _route.path === route.path)) { + router.options.routes.push(route); + } + }); + // 动态渲染菜单数据 + commit("setMenuList", { + menuList: menuList, + access: rootState.user.access + }); + }, // 获取动态路由数据 getRouters({ dispatch, commit, rootState }, routes) { return new Promise((resolve, reject) => { @@ -132,18 +163,33 @@ export default { if (localRead("dynamicRouter") === "") { /* localStorage里dynamicRouter值为空 -> 没有路由数据 -> 获取路由数据 */ console.log("获取路由:从api"); - // if (!isMock) { - // // 接口数据 try { getAllMenus(rootState.user.token) .then(res => { // console.log(res); - var routerData = routerDataHanding(res.data.data); // 拿到路由接口数据 + /* 1.拿到路由接口数据 */ + var routerData = routerDataHanding(res.data.data); + /* 2.根据用户角色,处理该角色的路由数据(后端生成数据时忽略此步骤) */ + var menus = []; + rootState.user.access.forEach(_access => { + // 把该用户所有的角色对应的菜单都加进来 + menus = menus.concat( + getValueByKey(roleList, "name", _access, "menus") + ); + }); + menus = [...new Set(menus)]; // 然后去重 + // console.log(menus); // 获取该用户所有角色的所有菜单 + /* 3.将路由动态数据与该角色拥有的菜单做比对筛选(后端生成数据时忽略此步骤) */ + routerData = routerData.filter(menu => { + return menus.some(_menu => _menu === menu.name); // 根据id全等筛选数据 + }); + // console.log(routerData); // 筛选出该角色拥有的路由数据 + /* 4.处理后路由数据生成路由和菜单等 */ localSave("dynamicRouter", JSON.stringify(routerData)); // 存储routerData到localStorage gotRouter = filterAsyncRouter(routerData); // 过滤路由,路由组件转换 - // dispatch("updateMenuList", gotRouter).then(res => { - resolve(routerData); - // }); + dispatch("updateMenuList", gotRouter).then(res => { + resolve(routerData); + }); }) .catch(err => { reject(err); @@ -151,44 +197,17 @@ export default { } catch (error) { reject(error); } - // } else { - // /* mock数据 */ - // // 1.根据用户角色,处理该角色的路由数据 - // var menus = []; - // rootState.user.access.forEach(_access => { - // // 把该用户所有的角色对应的菜单都加进来 - // menus = menus.concat( - // getValueByKey(roleList, "id", _access.id, "menus") - // ); - // }); - // menus = [...new Set(menus)]; // 然后去重 - // // console.log(menus); // 获取该用户所有角色的所有菜单数据 - // // 2.拿到路由模拟动态数据,与该角色处理后的数据做比对筛选 - // var routerData = menuList.filter(menu => { - // return menus.some( - // _menu => _menu.id === menu.id // 根据id全等筛选数据 - // ); - // }); - // routerData = routerDataHanding( - // JSON.parse(JSON.stringify(routerData)) - // ); - // // console.log(routerData); - // // 3.处理后路由数据生成路由和菜单等 - // localSave("dynamicRouter", JSON.stringify(routerData)); // 存储routerData到localStorage - // gotRouter = filterAsyncRouter(routerData); // 过滤路由,路由组件转换 - // dispatch("updateMenuList", gotRouter).then(res => { - // resolve(routerData); - // }); - // } } else { /* 有路由数据 -> 直接从localStorage里面获取 */ console.log("获取路由:从localStorage"); gotRouter = dynamicRouterAdd("router-util.js"); + menuListHanding(gotRouter, gotRouter); + console.log("左侧动态菜单:", gotRouter); commit("setMenuList", { menuList: gotRouter, access: rootState.user.access }); - resolve(routerData); + resolve(); } }); } From b5da1887066bfc1123cce6091ca3e781536f595c Mon Sep 17 00:00:00 2001 From: SimonShao <435776313@qq.com> Date: Wed, 6 May 2020 16:35:11 +0800 Subject: [PATCH 048/164] Update README.md --- README.md | 33 ++++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 3b85dec90..f0b765b88 100755 --- a/README.md +++ b/README.md @@ -1,13 +1,22 @@ # iview-dynamicRouter -iview-admin,后端动态生成路由模板 + -userName:super_admin / visitor +基于iview-admin,动态获取路由数据,经数据处理后生成动态路由和菜单的【后端动态路由模板】。 -password:any / any +## 在线预览 +Live Demo -### axios加工改造 +- userName:super_admin / visitor +- password:any / any + +在控制台可查看【当前路由】和【左侧菜单】 + + +# 开发文档(更新中) + +## axios加工改造 axios加工改造,使其更符合后端的回文格式: @@ -20,7 +29,7 @@ store > user.js view > login.vue -### mock数据、mock接口: +## mock数据、mock接口: mock - role.js,新建菜单列表、菜单层级列表,这里以我在实际项目中后端给到的数据结构为例 @@ -36,18 +45,20 @@ mock > index getAllMenus api > data getAllMenus -### 动态获取路由数据,并对数据进行处理: +## 动态获取路由数据,并对数据进行处理: store > app.js -libs > router-util.js 3个封装方法 +libs > router-util.js 4个封装方法 libs > tools.js 函数: 引入组件 +libs > dataHanding.js 追加通用方法 + store > user.js 退出登录时清空路由和标签缓存 -### 路由改造 +## 路由改造 router > router.js @@ -63,7 +74,7 @@ view > login.vue 登录后,调用app.js的方法,生成动态路由 每次刷新 -> 从localStorage获取路由,处理后生成左侧菜单 -### 前端控制权限 +## 前端控制权限 实际开发中,后台会提供“根据用户查询菜单(getAllMenus)”的接口,返回的数据已经是该用户的菜单,因此当前步骤仅针对前端控制权限。 @@ -76,14 +87,14 @@ mock - role.js,新建角色列表,这里仍以我在实际项目中后端给 store > app.js 对路由数据进行用户权限处理 -### github部署: +## github部署: router > index.js,取消history模式 部署后的css文件 > static > fonts > 把外面的fonts放进去 -### 扩展: +## 扩展: 项目需求万千,万变不离其宗。以下两种情况我已做好demo并集成到项目中 From 8dcf3bc14e848b3359a4ff37c2469552c432efea Mon Sep 17 00:00:00 2001 From: SimonShao <435776313@qq.com> Date: Wed, 6 May 2020 16:37:10 +0800 Subject: [PATCH 049/164] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f0b765b88..3de97fe3c 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # iview-dynamicRouter - + 基于iview-admin,动态获取路由数据,经数据处理后生成动态路由和菜单的【后端动态路由模板】。 From fa2dbbb778d0fb26deb6788ebeb0cf1047dc0c4a Mon Sep 17 00:00:00 2001 From: SimonShao <435776313@qq.com> Date: Wed, 6 May 2020 16:43:50 +0800 Subject: [PATCH 050/164] Update README.md --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 3de97fe3c..615f44b5b 100755 --- a/README.md +++ b/README.md @@ -1,3 +1,9 @@ +

+ + + +

+ # iview-dynamicRouter From 58571b0de646ae4f76bdbbf97d5af6d62502d42a Mon Sep 17 00:00:00 2001 From: SimonShao <435776313@qq.com> Date: Wed, 6 May 2020 17:05:55 +0800 Subject: [PATCH 051/164] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 615f44b5b..e10092c39 100755 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ -基于iview-admin,动态获取路由数据,经数据处理后生成动态路由和菜单的【后端动态路由模板】。 +基于iview-admin(branch:template),动态获取路由数据,经数据处理后生成动态路由和菜单的【后端动态路由模板】。 ## 在线预览 From b8c33d5393b6da7281fb720feb4df2afe5dfd1dd Mon Sep 17 00:00:00 2001 From: SimonShao <435776313@qq.com> Date: Wed, 6 May 2020 18:50:38 +0800 Subject: [PATCH 052/164] Update README.md --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e10092c39..3deb3f72b 100755 --- a/README.md +++ b/README.md @@ -12,11 +12,12 @@ ## 在线预览 -Live Demo - +- Live Demo - userName:super_admin / visitor - password:any / any + + 在控制台可查看【当前路由】和【左侧菜单】 From 043891244d359d005103bb9890cfd69714a4d4bc Mon Sep 17 00:00:00 2001 From: SimonShao <435776313@qq.com> Date: Wed, 6 May 2020 18:54:54 +0800 Subject: [PATCH 053/164] Update README.md --- README.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 3deb3f72b..3903a2122 100755 --- a/README.md +++ b/README.md @@ -15,10 +15,8 @@ - Live Demo - userName:super_admin / visitor - password:any / any - - - -在控制台可查看【当前路由】和【左侧菜单】 +- 在控制台可查看【当前路由】和【左侧菜单】: + # 开发文档(更新中) From 2adf825ea0fea606f08e67d525a8539dba461ae3 Mon Sep 17 00:00:00 2001 From: SimonShao <435776313@qq.com> Date: Wed, 6 May 2020 19:00:24 +0800 Subject: [PATCH 054/164] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3903a2122..32f7112d0 100755 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ -基于iview-admin(branch:template),动态获取路由数据,经数据处理后生成动态路由和菜单的【后端动态路由模板】。 +基于iview-admin(branch:template),动态获取路由数据,经数据处理后生成动态路由和菜单的【后端动态路由模板】 ## 在线预览 From 19dc14ab78e603314cb84a2bf0ba365c1c7fef45 Mon Sep 17 00:00:00 2001 From: SimonShao <435776313@qq.com> Date: Wed, 6 May 2020 19:21:41 +0800 Subject: [PATCH 055/164] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 32f7112d0..83651f319 100755 --- a/README.md +++ b/README.md @@ -18,6 +18,8 @@ - 在控制台可查看【当前路由】和【左侧菜单】: +如果这个模板或模板中的代码段能够在开发中帮助到你,请在右上角star一下,非常感谢~ +If the template can help you in your work, please give a ⭐️ for motivation # 开发文档(更新中) From ea2d612ae09d51af9afb27d4eaaef3e5ab74343c Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Thu, 7 May 2020 11:59:14 +0800 Subject: [PATCH 056/164] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=AF=AD=E8=A8=80?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitattributes | 1 + 1 file changed, 1 insertion(+) create mode 100644 .gitattributes diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 000000000..949282947 --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +.js linguist-language=Vue From cbfc3a467253a3c982789a8696f024ee63e30041 Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Thu, 7 May 2020 12:03:30 +0800 Subject: [PATCH 057/164] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E8=AF=AD=E8=A8=80=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitattributes | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitattributes b/.gitattributes index 949282947..e19121396 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1 +1,3 @@ -.js linguist-language=Vue +*.js linguist-language=Vue +*.css linguist-language=Vue +*.html linguist-language=Vue From cd3a4cc294e5eaf8dd9142d1dc8590efb44abbe8 Mon Sep 17 00:00:00 2001 From: SimonShao <435776313@qq.com> Date: Thu, 7 May 2020 12:06:12 +0800 Subject: [PATCH 058/164] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 83651f319..98f156073 100755 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@

-# iview-dynamicRouter +# iView DynamicRouter From 9d1b3c8a18f49803b59b314178db0152404473fd Mon Sep 17 00:00:00 2001 From: SimonShao <435776313@qq.com> Date: Thu, 7 May 2020 12:13:52 +0800 Subject: [PATCH 059/164] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 98f156073..d48096125 100755 --- a/README.md +++ b/README.md @@ -6,9 +6,9 @@ # iView DynamicRouter - +基于iview-admin(branch:template),动态获取路由数据,经数据处理后生成动态路由和菜单的【后端动态路由模板】 -基于iview-admin(branch:template),动态获取路由数据,经数据处理后生成动态路由和菜单的【后端动态路由模板】 + ## 在线预览 From f32a7a8d629c8969ae963e4632c4009a9072ce2f Mon Sep 17 00:00:00 2001 From: SimonShao <435776313@qq.com> Date: Thu, 7 May 2020 12:15:27 +0800 Subject: [PATCH 060/164] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d48096125..e271133b1 100755 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ # iView DynamicRouter -基于iview-admin(branch:template),动态获取路由数据,经数据处理后生成动态路由和菜单的【后端动态路由模板】 +#### 基于iview-admin(branch:template),动态获取路由数据,经数据处理后生成动态路由和菜单的【后端动态路由模板】 From 8bc80907c0a04f9c7547df1d2d158eed1511ce8c Mon Sep 17 00:00:00 2001 From: SimonShao <435776313@qq.com> Date: Wed, 13 May 2020 14:57:53 +0800 Subject: [PATCH 061/164] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e271133b1..c3c94e56b 100755 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ # iView DynamicRouter -#### 基于iview-admin(branch:template),动态获取路由数据,经数据处理后生成动态路由和菜单的【后端动态路由模板】 +#### 基于iview-admin(branch:template),动态获取路由数据,经数据处理后生成动态路由和菜单的【后端动态路由模板】 From 51cfea7e1969108d352797164e71e93ea34f9fe9 Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Thu, 14 May 2020 16:31:12 +0800 Subject: [PATCH 062/164] =?UTF-8?q?=E8=B7=AF=E7=94=B1=E5=B0=81=E8=A3=85?= =?UTF-8?q?=E6=96=B9=E6=B3=95=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/libs/router-util.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libs/router-util.js b/src/libs/router-util.js index bb888a4b8..1e4b7d0ad 100644 --- a/src/libs/router-util.js +++ b/src/libs/router-util.js @@ -34,7 +34,7 @@ export const routerDataHanding = apiRouterData => { sort: route.sort, // 排序用 children: [] }); - } else if (route.path === "") { + } else if (route.path === "Main") { // 非外链,有子节点的父级路由(模块,非页面)-> 创建父结构路由 asyncRouterMap.push({ path: route.url === "/" ? route.url : "/" + route.url, From 0d1d81790c9e3976aefd75cc56a063b78417608c Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Thu, 14 May 2020 16:31:51 +0800 Subject: [PATCH 063/164] =?UTF-8?q?=E8=8F=9C=E5=8D=95=E6=A8=A1=E6=8B=9F?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/mock/role.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mock/role.js b/src/mock/role.js index bdd77596b..829eaf586 100644 --- a/src/mock/role.js +++ b/src/mock/role.js @@ -88,7 +88,7 @@ const menuList = [ name: "multilevel", title: "多级菜单", url: "multilevel", - path: "", + path: "Main", sort: 24, parentId: "root", ico: "md-menu", From 715372ca5e9a14acb5f8479416cde46afd509076 Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Thu, 14 May 2020 18:21:02 +0800 Subject: [PATCH 064/164] =?UTF-8?q?=E8=B7=AF=E7=94=B1=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/mock/role.js | 20 +++++++++++++++++--- src/store/module/app.js | 8 ++++++-- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/src/mock/role.js b/src/mock/role.js index 829eaf586..f6fa7e384 100644 --- a/src/mock/role.js +++ b/src/mock/role.js @@ -14,7 +14,8 @@ const roleList = [ "level_2_2_2", "level_2_3", "screen", - "github" + "github", + "singleMenu" ], id: "1" }, @@ -29,7 +30,8 @@ const roleList = [ "level_2_2_1", "level_2_2_2", "level_2_3", - "screen" + "screen", + "singleMenu" ], id: "2" } @@ -63,7 +65,7 @@ const menuList = [ id: "doc", name: "doc", title: "文档", - url: "https://lison16.github.io/iview-admin-doc/#/", + url: "https://simon9124.github.io/iview-dynamicRouter-doc/", path: "", sort: 28, parentId: "root", @@ -190,6 +192,18 @@ const menuList = [ ico: "md-log-in", isOutSide: true, showLevel: 1 + }, + { + id: "singleMenu", + name: "single/menu", + title: "单极菜单", + url: "single/menu", + path: "template", + sort: 22, + parentId: "root", + ico: "md-document", + isOutSide: false, + showLevel: 2 } ]; diff --git a/src/store/module/app.js b/src/store/module/app.js index 9ede5b770..74757ff9a 100644 --- a/src/store/module/app.js +++ b/src/store/module/app.js @@ -168,7 +168,8 @@ export default { .then(res => { // console.log(res); /* 1.拿到路由接口数据 */ - var routerData = routerDataHanding(res.data.data); + var routerData = res.data.data; + // console.log(routerData); /* 2.根据用户角色,处理该角色的路由数据(后端生成数据时忽略此步骤) */ var menus = []; rootState.user.access.forEach(_access => { @@ -181,9 +182,12 @@ export default { // console.log(menus); // 获取该用户所有角色的所有菜单 /* 3.将路由动态数据与该角色拥有的菜单做比对筛选(后端生成数据时忽略此步骤) */ routerData = routerData.filter(menu => { - return menus.some(_menu => _menu === menu.name); // 根据id全等筛选数据 + return menus.some(_menu => _menu === menu.id); // 根据id全等筛选数据 }); // console.log(routerData); // 筛选出该角色拥有的路由数据 + routerData = routerDataHanding( + JSON.parse(JSON.stringify(routerData)) + ); /* 4.处理后路由数据生成路由和菜单等 */ localSave("dynamicRouter", JSON.stringify(routerData)); // 存储routerData到localStorage gotRouter = filterAsyncRouter(routerData); // 过滤路由,路由组件转换 From 067ba63069ba211029e04452ea65e564bdad1c62 Mon Sep 17 00:00:00 2001 From: SimonShao <435776313@qq.com> Date: Fri, 15 May 2020 11:26:23 +0800 Subject: [PATCH 065/164] Update README.md --- README.md | 139 +++++++++++++++++------------------------------------- 1 file changed, 44 insertions(+), 95 deletions(-) diff --git a/README.md b/README.md index c3c94e56b..de1b8c681 100755 --- a/README.md +++ b/README.md @@ -4,107 +4,56 @@

-# iView DynamicRouter - -#### 基于iview-admin(branch:template),动态获取路由数据,经数据处理后生成动态路由和菜单的【后端动态路由模板】 - -## 在线预览 +## iView DynamicRouter -- Live Demo +- #### 基于iview-admin(branch:template),动态获取路由数据,经数据处理后生成动态路由和菜单的【后端动态路由模板】 +- 在线预览 +- 使用文档(更新中) - userName:super_admin / visitor - password:any / any -- 在控制台可查看【当前路由】和【左侧菜单】: - 如果这个模板或模板中的代码段能够在开发中帮助到你,请在右上角star一下,非常感谢~ If the template can help you in your work, please give a ⭐️ for motivation -# 开发文档(更新中) - -## axios加工改造 - -axios加工改造,使其更符合后端的回文格式: - -libs > axios.js - -mock > login.js - -store > user.js - -view > login.vue - - -## mock数据、mock接口: - -mock - role.js,新建菜单列表、菜单层级列表,这里以我在实际项目中后端给到的数据结构为例 - -菜单列表: - -菜单层级列表: - - -注册mock事件不过多陈述: - -mock > data getAllMenus -mock > index getAllMenus -api > data getAllMenus - - -## 动态获取路由数据,并对数据进行处理: - -store > app.js - -libs > router-util.js 4个封装方法 - -libs > tools.js 函数: 引入组件 - -libs > dataHanding.js 追加通用方法 - -store > user.js 退出登录时清空路由和标签缓存 - - -## 路由改造 - -router > router.js - -router > index.js - -view > login.vue 登录后,调用app.js的方法,生成动态路由 - - -进入/回到login页面 -> 路由初始化,清空动态添加的路由 - -每次登录 -> 后端生成所有动态路由数据,数据存储到localStorage -> 处理后挂载到路由,并生成左侧菜单 - -每次刷新 -> 从localStorage获取路由,处理后生成左侧菜单 - - -## 前端控制权限 - -实际开发中,后台会提供“根据用户查询菜单(getAllMenus)”的接口,返回的数据已经是该用户的菜单,因此当前步骤仅针对前端控制权限。 - -本项目中,一个用户对应多个角色,一个角色对应多个菜单,在用户管理界面给用户绑定角色,在角色管理界面给角色绑定菜单。伙伴们需根据自身项目中【用户、角色、菜单】3者的关系及具体页面逻辑,来解决菜单的权限控制。 - -mock - role.js,新建角色列表,这里仍以我在实际项目中后端给到的数据结构为例 - -角色列表: - -store > app.js 对路由数据进行用户权限处理 - - -## github部署: - -router > index.js,取消history模式 - -部署后的css文件 > static > fonts > 把外面的fonts放进去 - - -## 扩展: - -项目需求万千,万变不离其宗。以下两种情况我已做好demo并集成到项目中 - -追加顶部3级菜单:https://github.com/simon9124/fengfeng - -动态角色“首页”: +## 目录结构 + +```bash +- config 开发相关配置 +- public 打包所需静态资源 +- src + - api AJAX请求 -> 追加:动态获取路由方法 + - assets 项目静态资源 + - icons 自定义图标资源 + - images 图片资源 + - components 业务组件 + - config 项目运行配置 + - directive 自定义指令 + - libs 封装工具函数 -> 追加:若干路由数据处理函数 + - locale 多语言文件 + - mock mock模拟数据 -> 追加:路由列表、路由层级、角色列表 等数据 + - router 路由配置 -> 有较多改动 + - store Vuex配置 -> 有较多改动 + - view 页面文件 -> 追加:template.vue 和 screent.vue 页面模板 + - tests 测试相关 +``` + +## 安装使用 + +```bash +# 克隆项目 +git clone https://github.com/simon9124/iview-dynamicRouter + +# 进入项目目录 +cd vue-element-admin + +# 安装依赖 +npm install + +# 本地开发 启动项目 +npm run dev +``` + +启动完成后,在控制台可监听【当前路由】和【左侧菜单】: + From 3f067b7e2bbd42b738726be0c6253938c625285b Mon Sep 17 00:00:00 2001 From: SimonShao <435776313@qq.com> Date: Fri, 15 May 2020 11:40:26 +0800 Subject: [PATCH 066/164] Update README.md --- README.md | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index de1b8c681..c09eca1af 100755 --- a/README.md +++ b/README.md @@ -1,13 +1,21 @@

- - - + + +

- - ## iView DynamicRouter + + + + + + + + + + - #### 基于iview-admin(branch:template),动态获取路由数据,经数据处理后生成动态路由和菜单的【后端动态路由模板】 - 在线预览 - 使用文档(更新中) From 641ae0d460b2f5fa7e47116f5edc4ed06dad4e60 Mon Sep 17 00:00:00 2001 From: SimonShao <435776313@qq.com> Date: Fri, 15 May 2020 11:40:53 +0800 Subject: [PATCH 067/164] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c09eca1af..9c3169cd2 100755 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@

-## iView DynamicRouter +# iView DynamicRouter From 3931485ec5e0c41c364c489f9618f623a89cc810 Mon Sep 17 00:00:00 2001 From: SimonShao <435776313@qq.com> Date: Fri, 15 May 2020 11:48:29 +0800 Subject: [PATCH 068/164] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9c3169cd2..65ba5883e 100755 --- a/README.md +++ b/README.md @@ -64,4 +64,4 @@ npm run dev ``` 启动完成后,在控制台可监听【当前路由】和【左侧菜单】: - + From 6d47f2d7ba6385c6c2ba9177845adb1b3fabe04f Mon Sep 17 00:00:00 2001 From: SimonShao <435776313@qq.com> Date: Mon, 18 May 2020 10:33:18 +0800 Subject: [PATCH 069/164] Update README.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 65ba5883e..d66225411 100755 --- a/README.md +++ b/README.md @@ -6,6 +6,8 @@ # iView DynamicRouter +#### 基于iview-admin(branch:template),动态获取路由数据,经数据处理后生成动态路由和菜单的【后端动态路由模板】 + @@ -16,7 +18,6 @@ -- #### 基于iview-admin(branch:template),动态获取路由数据,经数据处理后生成动态路由和菜单的【后端动态路由模板】 - 在线预览 - 使用文档(更新中) - userName:super_admin / visitor From ed895eb530ab687f2d97d0619ba8e47bf52097cf Mon Sep 17 00:00:00 2001 From: SimonShao <435776313@qq.com> Date: Mon, 18 May 2020 10:33:58 +0800 Subject: [PATCH 070/164] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d66225411..915081fea 100755 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ # iView DynamicRouter -#### 基于iview-admin(branch:template),动态获取路由数据,经数据处理后生成动态路由和菜单的【后端动态路由模板】 +基于iview-admin(branch:template),动态获取路由数据,经数据处理后生成动态路由和菜单的【后端动态路由模板】 From 4ded2d0f11380c510aa07ea5f49708c708e571a8 Mon Sep 17 00:00:00 2001 From: SimonShao <435776313@qq.com> Date: Mon, 18 May 2020 10:35:20 +0800 Subject: [PATCH 071/164] Update README.md --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 915081fea..c338ebc40 100755 --- a/README.md +++ b/README.md @@ -6,8 +6,6 @@ # iView DynamicRouter -基于iview-admin(branch:template),动态获取路由数据,经数据处理后生成动态路由和菜单的【后端动态路由模板】 - @@ -18,6 +16,7 @@ +- 基于iview-admin(branch:template),动态获取路由数据,经数据处理后生成动态路由和菜单的【后端动态路由模板】 - 在线预览 - 使用文档(更新中) - userName:super_admin / visitor From 03b58194f07f04fbd4d1c7fc348524a69a1d785f Mon Sep 17 00:00:00 2001 From: SimonShao <435776313@qq.com> Date: Mon, 18 May 2020 10:36:18 +0800 Subject: [PATCH 072/164] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c338ebc40..6a65e8b07 100755 --- a/README.md +++ b/README.md @@ -15,6 +15,7 @@ +

- 基于iview-admin(branch:template),动态获取路由数据,经数据处理后生成动态路由和菜单的【后端动态路由模板】 - 在线预览 From d52bc728880b4bf41729848e99021a607ce19d8e Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Mon, 18 May 2020 14:47:11 +0800 Subject: [PATCH 073/164] =?UTF-8?q?node-sass=E5=AE=89=E8=A3=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 1107 ++++++++++++++++++++++++++++++++++++++++----- package.json | 2 + 2 files changed, 1001 insertions(+), 108 deletions(-) diff --git a/package-lock.json b/package-lock.json index b7497a7c1..667975f68 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1533,6 +1533,12 @@ "integrity": "sha512-sY5AXXVZv4Y1VACTtR11UJCPHHudgY5i26Qj5TypE6DKlIApbwb5uqhXcJ5UUGbvZNRh7EeIoW+LrJumBsKp7w==", "dev": true }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, "accepts": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", @@ -1628,6 +1634,12 @@ "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", "dev": true }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "dev": true + }, "ansi-escapes": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", @@ -1974,6 +1986,16 @@ "integrity": "sha512-BLM56aPo9vLLFVa8+/+pJLnrZ7QGGTVHWsCwieAWT9o9K8UeGaQbzZbGoabWLOo2ksBCztoXdqBZBplqLDDCSg==", "dev": true }, + "are-we-there-yet": { + "version": "1.1.5", + "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", + "readable-stream": "^2.0.6" + } + }, "area-data": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/area-data/-/area-data-1.0.0.tgz", @@ -2163,6 +2185,12 @@ "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", "dev": true }, + "async-foreach": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", + "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", + "dev": true + }, "async-limiter": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", @@ -2594,6 +2622,15 @@ "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=", "dev": true }, + "block-stream": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "dev": true, + "requires": { + "inherits": "~2.0.0" + } + }, "bluebird": { "version": "3.5.1", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", @@ -3404,6 +3441,25 @@ "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", "dev": true }, + "clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "dependencies": { + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + } + } + }, "co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", @@ -3608,6 +3664,12 @@ "date-now": "^0.1.4" } }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "dev": true + }, "consolidate": { "version": "0.15.1", "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.15.1.tgz", @@ -4451,6 +4513,12 @@ "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz", "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==" }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "dev": true + }, "depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", @@ -4713,6 +4781,12 @@ "minimalistic-crypto-utils": "^1.0.0" } }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, "emojis-list": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", @@ -6165,8 +6239,8 @@ "dev": true, "optional": true, "requires": { - "delegates": "1.0.0", - "readable-stream": "2.3.6" + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" } }, "balanced-match": { @@ -6183,7 +6257,7 @@ "dev": true, "optional": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -6260,7 +6334,7 @@ "dev": true, "optional": true, "requires": { - "minipass": "2.2.4" + "minipass": "^2.2.1" } }, "fs.realpath": { @@ -6277,14 +6351,14 @@ "dev": true, "optional": true, "requires": { - "aproba": "1.2.0", - "console-control-strings": "1.1.0", - "has-unicode": "2.0.1", - "object-assign": "4.1.1", - "signal-exit": "3.0.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wide-align": "1.1.2" + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" } }, "glob": { @@ -6294,12 +6368,12 @@ "dev": true, "optional": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "has-unicode": { @@ -6316,7 +6390,7 @@ "dev": true, "optional": true, "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": "^2.1.0" } }, "ignore-walk": { @@ -6326,7 +6400,7 @@ "dev": true, "optional": true, "requires": { - "minimatch": "3.0.4" + "minimatch": "^3.0.4" } }, "inflight": { @@ -6336,8 +6410,8 @@ "dev": true, "optional": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -6361,7 +6435,7 @@ "dev": true, "optional": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "isarray": { @@ -6378,7 +6452,7 @@ "dev": true, "optional": true, "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -6395,8 +6469,8 @@ "dev": true, "optional": true, "requires": { - "safe-buffer": "5.1.1", - "yallist": "3.0.2" + "safe-buffer": "^5.1.1", + "yallist": "^3.0.0" } }, "minizlib": { @@ -6406,7 +6480,7 @@ "dev": true, "optional": true, "requires": { - "minipass": "2.2.4" + "minipass": "^2.2.1" } }, "mkdirp": { @@ -6433,9 +6507,9 @@ "dev": true, "optional": true, "requires": { - "debug": "2.6.9", - "iconv-lite": "0.4.21", - "sax": "1.2.4" + "debug": "^2.1.2", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" } }, "node-pre-gyp": { @@ -6445,16 +6519,16 @@ "dev": true, "optional": true, "requires": { - "detect-libc": "1.0.3", - "mkdirp": "0.5.1", - "needle": "2.2.0", - "nopt": "4.0.1", - "npm-packlist": "1.1.10", - "npmlog": "4.1.2", - "rc": "1.2.7", - "rimraf": "2.6.2", - "semver": "5.5.0", - "tar": "4.4.1" + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.0", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.1.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" } }, "nopt": { @@ -6464,8 +6538,8 @@ "dev": true, "optional": true, "requires": { - "abbrev": "1.1.1", - "osenv": "0.1.5" + "abbrev": "1", + "osenv": "^0.1.4" } }, "npm-bundled": { @@ -6482,8 +6556,8 @@ "dev": true, "optional": true, "requires": { - "ignore-walk": "3.0.1", - "npm-bundled": "1.0.3" + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" } }, "npmlog": { @@ -6493,10 +6567,10 @@ "dev": true, "optional": true, "requires": { - "are-we-there-yet": "1.1.4", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" } }, "number-is-nan": { @@ -6520,7 +6594,7 @@ "dev": true, "optional": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "os-homedir": { @@ -6544,8 +6618,8 @@ "dev": true, "optional": true, "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" } }, "path-is-absolute": { @@ -6569,10 +6643,10 @@ "dev": true, "optional": true, "requires": { - "deep-extend": "0.5.1", - "ini": "1.3.5", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" + "deep-extend": "^0.5.1", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" }, "dependencies": { "minimist": { @@ -6591,13 +6665,13 @@ "dev": true, "optional": 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.1", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, "rimraf": { @@ -6607,7 +6681,7 @@ "dev": true, "optional": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "safe-buffer": { @@ -6659,9 +6733,9 @@ "dev": true, "optional": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } }, "string_decoder": { @@ -6671,7 +6745,7 @@ "dev": true, "optional": true, "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "~5.1.0" } }, "strip-ansi": { @@ -6681,7 +6755,7 @@ "dev": true, "optional": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-json-comments": { @@ -6698,13 +6772,13 @@ "dev": true, "optional": true, "requires": { - "chownr": "1.0.1", - "fs-minipass": "1.2.5", - "minipass": "2.2.4", - "minizlib": "1.1.0", - "mkdirp": "0.5.1", - "safe-buffer": "5.1.1", - "yallist": "3.0.2" + "chownr": "^1.0.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.2.4", + "minizlib": "^1.1.0", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.1", + "yallist": "^3.0.2" } }, "util-deprecate": { @@ -6721,7 +6795,7 @@ "dev": true, "optional": true, "requires": { - "string-width": "1.0.2" + "string-width": "^1.0.2" } }, "wrappy": { @@ -6740,6 +6814,18 @@ } } }, + "fstream": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", + "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" + } + }, "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -6752,6 +6838,31 @@ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", "dev": true }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "dev": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "gaze": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", + "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", + "dev": true, + "requires": { + "globule": "^1.0.0" + } + }, "get-caller-file": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", @@ -6872,6 +6983,25 @@ } } }, + "globule": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.1.tgz", + "integrity": "sha512-OVyWOHgw29yosRHCHo7NncwR1hW5ew0W/UrvtwvjefVJeQ26q4/8r8FmPsSF1hJ93IgWkyv16pCTz6WblMzm/g==", + "dev": true, + "requires": { + "glob": "~7.1.1", + "lodash": "~4.17.12", + "minimatch": "~3.0.2" + }, + "dependencies": { + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "dev": true + } + } + }, "good-listener": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", @@ -6956,6 +7086,12 @@ "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", "dev": true }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "dev": true + }, "has-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", @@ -7718,6 +7854,12 @@ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true }, + "in-publish": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.1.tgz", + "integrity": "sha512-oDM0kUSNFC31ShNxHKUyfZKy8ZeXZBWMjMdZHKLOk13uvT27VTL/QzRGfRUcevJhpkZAvlhPYuXkF7eNWrtyxQ==", + "dev": true + }, "indent-string": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", @@ -8359,6 +8501,12 @@ } } }, + "js-base64": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.2.tgz", + "integrity": "sha512-Vg8czh0Q7sFBSUMWWArX/miJeBWYBPpdU/3M/DKSaekLMqrqVPaedp+5mZhie/r0lgrcaYBfwXatEew6gwgiQQ==", + "dev": true + }, "js-calendar": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/js-calendar/-/js-calendar-1.2.3.tgz", @@ -9901,6 +10049,203 @@ "integrity": "sha512-MmbQJ2MTESTjt3Gi/3yG1wGpIMhUfcIypUCGtTizFR9IiccFwxSpfp0vtIZlkFclEqERemxfnSdZEMR9VqqEFQ==", "dev": true }, + "node-gyp": { + "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.0", + "glob": "^7.0.3", + "graceful-fs": "^4.1.2", + "mkdirp": "^0.5.0", + "nopt": "2 || 3", + "npmlog": "0 || 1 || 2 || 3 || 4", + "osenv": "0", + "request": "^2.87.0", + "rimraf": "2", + "semver": "~5.3.0", + "tar": "^2.0.0", + "which": "1" + }, + "dependencies": { + "ajv": { + "version": "6.12.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz", + "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true + }, + "aws4": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz", + "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==", + "dev": true + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", + "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", + "dev": true + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "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.5.5", + "har-schema": "^2.0.0" + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.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.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", + "dev": true + }, + "mime-types": { + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", + "dev": true, + "requires": { + "mime-db": "1.44.0" + } + }, + "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 + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "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.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + } + }, + "semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "dev": true + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true + } + } + }, "node-ipc": { "version": "9.1.1", "resolved": "https://registry.npmjs.org/node-ipc/-/node-ipc-9.1.1.tgz", @@ -9952,40 +10297,292 @@ "semver": "^5.3.0" } }, - "nodent-runtime": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/nodent-runtime/-/nodent-runtime-3.2.1.tgz", - "integrity": "sha512-7Ws63oC+215smeKJQCxzrK21VFVlCFBkwl0MOObt0HOpVQXs3u483sAmtkF33nNqZ5rSOQjB76fgyPBmAUrtCA==", - "dev": true - }, - "normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "node-sass": { + "version": "4.14.1", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.14.1.tgz", + "integrity": "sha512-sjCuOlvGyCJS40R8BscF5vhVlQjNN069NtQ1gSxyK1u9iqvn6tf7O1R4GNowVZfiZUCRt5MmMs1xd+4V/7Yr0g==", "dev": true, "requires": { - "remove-trailing-separator": "^1.0.1" - } - }, - "normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", - "dev": true - }, - "normalize-url": { + "async-foreach": "^0.1.3", + "chalk": "^1.1.1", + "cross-spawn": "^3.0.0", + "gaze": "^1.0.0", + "get-stdin": "^4.0.1", + "glob": "^7.0.3", + "in-publish": "^2.0.0", + "lodash": "^4.17.15", + "meow": "^3.7.0", + "mkdirp": "^0.5.1", + "nan": "^2.13.2", + "node-gyp": "^3.8.0", + "npmlog": "^4.0.0", + "request": "^2.88.0", + "sass-graph": "2.2.5", + "stdout-stream": "^1.4.0", + "true-case-path": "^1.0.2" + }, + "dependencies": { + "ajv": { + "version": "6.12.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz", + "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true + }, + "aws4": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz", + "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "cross-spawn": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", + "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "which": "^1.2.9" + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", + "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", + "dev": true + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "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.5.5", + "har-schema": "^2.0.0" + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.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 + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "dev": true + }, + "mime-db": { + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", + "dev": true + }, + "mime-types": { + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", + "dev": true, + "requires": { + "mime-db": "1.44.0" + } + }, + "nan": { + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz", + "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==", + "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 + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "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.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true + } + } + }, + "nodent-runtime": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/nodent-runtime/-/nodent-runtime-3.2.1.tgz", + "integrity": "sha512-7Ws63oC+215smeKJQCxzrK21VFVlCFBkwl0MOObt0HOpVQXs3u483sAmtkF33nNqZ5rSOQjB76fgyPBmAUrtCA==", + "dev": true + }, + "nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "dev": true, + "requires": { + "abbrev": "1" + } + }, + "normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true + }, + "normalize-url": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.2.0.tgz", "integrity": "sha512-WvF3Myk0NhXkG8S9bygFM4IC1KOvnVJGq0QoGeoqOYOBeinBZp5ybW3QuYbTc89lkWBMM9ZBO4QGRoc0353kKA==", @@ -10020,6 +10617,18 @@ "which": "^1.2.10" } }, + "npmlog": { + "version": "4.1.2", + "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.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, "nth-check": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz", @@ -10291,6 +10900,12 @@ "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", "dev": true }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true + }, "os-locale": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", @@ -10325,6 +10940,16 @@ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "dev": true }, + "osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "dev": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", @@ -12484,6 +13109,196 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, + "sass-graph": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.5.tgz", + "integrity": "sha512-VFWDAHOe6mRuT4mZRd4eKE+d8Uedrk6Xnh7Sh9b4NGufQLQjOrvf/MQoOdx+0s92L89FeyUUNfU597j/3uNpag==", + "dev": true, + "requires": { + "glob": "^7.0.0", + "lodash": "^4.0.0", + "scss-tokenizer": "^0.2.3", + "yargs": "^13.3.2" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "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 + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + } + }, + "y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "dev": true + }, + "yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "sass-loader": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-7.3.1.tgz", + "integrity": "sha512-tuU7+zm0pTCynKYHpdqaPpe+MMTQ76I9TPZ7i4/5dZsigE350shQWe5EZNl5dBidM49TPET75tNqRbcsUZWeNA==", + "dev": true, + "requires": { + "clone-deep": "^4.0.1", + "loader-utils": "^1.0.1", + "neo-async": "^2.5.0", + "pify": "^4.0.1", + "semver": "^6.3.0" + }, + "dependencies": { + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, "sax": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", @@ -12532,6 +13347,27 @@ } } }, + "scss-tokenizer": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", + "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", + "dev": true, + "requires": { + "js-base64": "^2.1.8", + "source-map": "^0.4.2" + }, + "dependencies": { + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "dev": true, + "requires": { + "amdefine": ">=0.0.4" + } + } + } + }, "select": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", @@ -12697,6 +13533,23 @@ "safe-buffer": "^5.0.1" } }, + "shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + } + } + }, "shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", @@ -13175,6 +14028,15 @@ "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", "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.0.1" + } + }, "stealthy-require": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", @@ -13497,6 +14359,17 @@ "integrity": "sha512-dQRhbNQkRnaqauC7WqSJ21EEksgT0fYZX2lqXzGkpo8JNig9zGZTYoMGvyI2nWmXlE2VSVXVDu7wLVGu/mQEsg==", "dev": true }, + "tar": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz", + "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==", + "dev": true, + "requires": { + "block-stream": "*", + "fstream": "^1.0.12", + "inherits": "2" + } + }, "text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -13696,6 +14569,15 @@ "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", "dev": true }, + "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" + } + }, "tryer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz", @@ -14993,6 +15875,15 @@ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, + "wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "dev": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, "wordwrap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", diff --git a/package.json b/package.json index 71e05b5ce..148a68170 100644 --- a/package.json +++ b/package.json @@ -45,6 +45,8 @@ "less-loader": "^4.0.5", "lint-staged": "^6.0.0", "mockjs": "^1.0.1-beta3", + "node-sass": "^4.14.1", + "sass-loader": "^7.3.1", "vue-template-compiler": "^2.5.13" }, "browserslist": [ From 100f3d97fd6d88ecac4a4d2418722c113c2ef863 Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Mon, 18 May 2020 14:47:34 +0800 Subject: [PATCH 074/164] =?UTF-8?q?validate=E6=96=B9=E6=B3=95=E5=B0=81?= =?UTF-8?q?=E8=A3=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/libs/validate.js | 213 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 213 insertions(+) create mode 100644 src/libs/validate.js diff --git a/src/libs/validate.js b/src/libs/validate.js new file mode 100644 index 000000000..aaff10011 --- /dev/null +++ b/src/libs/validate.js @@ -0,0 +1,213 @@ +/* eslint-disable no-useless-escape */ +/** + * Created by jiachenpan on 16/11/18. + */ + +export function isvalidUsername(str) { + const valid_map = ["admin", "editor"]; + return valid_map.indexOf(str.trim()) >= 0; +} + +/* 合法uri */ +export function validateURL(textval) { + const urlregex = /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/; + return urlregex.test(textval); +} + +/* 小写字母 */ +export function validateLowerCase(str) { + const reg = /^[a-z]+$/; + return reg.test(str); +} + +/* 大写字母 */ +export function validateUpperCase(str) { + const reg = /^[A-Z]+$/; + return reg.test(str); +} + +/* 大小写字母 */ +export function validatAlphabets(str) { + const reg = /^[A-Za-z]+$/; + return reg.test(str); +} + +/* 邮箱 */ +export function validateEmail(email) { + const re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; + // /[\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?/ + return re.test(email); +} + +/* ip地址 */ +export function validateIP(ip) { + const re = /^(?:(?:1[0-9][0-9]\.)|(?:2[0-4][0-9]\.)|(?:25[0-5]\.)|(?:[1-9][0-9]\.)|(?:[0-9]\.)){3}(?:(?:1[0-9][0-9])|(?:2[0-4][0-9])|(?:25[0-5])|(?:[1-9][0-9])|(?:[0-9]))$/; + + return re.test(ip); +} + +/* 域名 */ +export function validateDSN(dsn) { + const re = /(http:\/\/|https:\/\/|[A-Za-z0-9]+[\-]?[A-Za-z0-9]+\.|[A-Za-z0-9]+\.)((\w|=|\?|\.|\/|&|-)*)$/; + return re.test(dsn); +} + +/* 电话号码 */ +export function validateTel(tel) { + const re = /^[1][3,4,5,7,8][0-9]{9}$/; + return re.test(tel); +} + +/* 非负整数 */ +export function validateNumber(num) { + const re = /^[1-9]+\d*$/; + return re.test(num); +} + +/* qq号 */ +export function validateQQ(qq) { + const re = /^[1-9][0-9]{4,10}$/gim; + return re.test(qq); +} + +/* 密码 */ +export function validatePassword(pwd) { + const re = /^(?![a-zA-Z]+$)(?![a-z\d]+$)(?![a-z!@#\$%]+$)(?![A-Z\d]+$)(?![A-Z!@#\$%]+$)(?![\d!@#\$%]+$)[a-zA-Z\d!@#\$%]+$/; + return re.test(pwd); +} + +// 密码不得包含和用户名完整字符串,大小写变位,形似变换的字符串 +export function levenshteinDistance(user, pwd) { + var LevenshteinDistance; + LevenshteinDistance = { + str1: null, + str3: null, + matrix: null, + isString(s) { + return Object.prototype.toString.call(s) === "[object String]"; + }, + isNumber(s) { + return Object.prototype.toString.call(s) === "[object Number]"; + }, + init(str1, str2) { + if (!this.isString(str1) || !this.isString(str2)) return; + + this.str1 = str1; + this.str2 = str2; + + str1.length && + str2.length && + this.createMatrix(str1.length + 1, str2.length + 1); + this.matrix && this.initMatrix(); + + return this; + }, + get() { + return ( + 1 - this.getDistance() / Math.max(this.str1.length, this.str2.length) + ); + }, + // 计算编辑距离 + getDistance: function() { + var len1 = this.str1.length; + var len2 = this.str2.length; + + if (!len1 || !len2) return Math.max(len1, len2); + + var str1 = this.str1.split(""); + var str2 = this.str2.split(""); + + var i = 0; + var j = 0; + var temp = 0; + while (i++ < len1) { + j = 0; + while (j++ < len2) { + temp = str1[i - 1] === str2[j - 1] ? 0 : 1; + this.matrix[i][j] = Math.min( + this.matrix[i - 1][j] + 1, + this.matrix[i][j - 1] + 1, + this.matrix[i - 1][j - 1] + temp + ); + } + } + return this.matrix[i - 1][j - 1]; + }, + /* + * 初始化矩阵 + * 为第一行、第一列赋值 + */ + initMatrix: function() { + var cols = this.matrix[0].length; + var rows = this.matrix.length; + var l = Math.max(cols, rows); + while (l--) { + cols - 1 >= l && (this.matrix[0][l] = l); + rows - 1 >= l && (this.matrix[l][0] = l); + } + }, + /* + * 创建矩阵 + * n:行 + * m:列 + */ + createMatrix: function(n, m) { + if (!this.isNumber(n) || !this.isNumber(m) || n < 1 || m < 1) return; + + this.matrix = new Array(n); + var i = 0; + while (i < n) this.matrix[i++] = new Array(m); + } + }; + return LevenshteinDistance.init(pwd, user).get() > 0.5; +} + +// 密码不得包含和用户名完整字符串,大小写变位,形似变换的字符串 +export function similarityString(user, pwd) { + // 不得包含和用户名完整字符串,大小写变位的字符串 + if ( + pwd.indexOf(user) !== -1 || + pwd.toLocaleUpperCase().indexOf(user.toLocaleUpperCase()) !== -1 + ) { + return true; + } + return false; +} + +// 密码避免键盘排序 +export function keyboardSortPassword(pwd) { + pwd = pwd.toLocaleLowerCase(); + var i = 0; + var arr = [ + "1234567890", + "qwertyuiop[]", + "|asdfghjklzxcvbnm", + "~!@#$%^&*()_+" + ]; + for (i = 0; i < arr.length; i++) { + if (arr[i].indexOf(pwd) !== -1) { + break; + } + } + if (i < arr.length) { + return true; + } + return false; +} + +// 检测是否为外链 +export function isExternal(path) { + return /^(https?:|mailto:|tel:)/.test(path); +} + +// 检测是否为演练展示 +export function isExhibit(path) { + return path.indexOf("/exhibit") > -1; +} + +/* 检测是否为正整数及是否在规定范围内 */ +export function isPositiveInteger(number, superLimit = 9999, lowerLimit = 0) { + return ( + number <= superLimit && number >= lowerLimit && number.indexOf(".") === -1 + ); +} From 753b82f24b595a55793bd8a618844de211b63de5 Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Mon, 18 May 2020 14:48:31 +0800 Subject: [PATCH 075/164] =?UTF-8?q?vuex=20-=20=E4=BF=AE=E6=94=B9user?= =?UTF-8?q?=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/store/module/user.js | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/store/module/user.js b/src/store/module/user.js index 149e569a1..e41d27752 100644 --- a/src/store/module/user.js +++ b/src/store/module/user.js @@ -35,6 +35,11 @@ export default { state.hasGetInfo = status; } }, + getters: { + userAccess: state => state.access, + userName: state => state.userName, + token: state => state.token + }, actions: { // 登录 handleLogin({ commit }, { userName, password }) { @@ -46,7 +51,7 @@ export default { }) .then(res => { const data = res.data; - commit("setToken", data.token); + commit("setToken", data.data); resolve(res); }) .catch(err => { @@ -81,11 +86,11 @@ export default { try { getUserInfo(state.token) .then(res => { - const data = res.data.data; - commit("setAvator", data.avator); - commit("setUserName", data.name); - commit("setUserId", data.user_id); - commit("setAccess", data.access); + const data = res.data; + commit("setAvator", data.data.avator); + commit("setUserName", data.data.name); + commit("setUserId", data.data.user_id); + commit("setAccess", data.data.access); commit("setHasGetInfo", true); resolve(data); }) From 5970693ddbda7bb9bc1af5cf71ae4ba01f0878aa Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Mon, 18 May 2020 14:50:09 +0800 Subject: [PATCH 076/164] =?UTF-8?q?mock=E4=BA=8B=E4=BB=B6=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=EF=BC=9A=E7=94=A8=E6=88=B7=E7=99=BB=E5=BD=95=20&=20?= =?UTF-8?q?=E6=8B=89=E5=8F=96=E7=94=A8=E6=88=B7=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/mock/login.js | 24 +++++++----------------- 1 file changed, 7 insertions(+), 17 deletions(-) diff --git a/src/mock/login.js b/src/mock/login.js index 4cc787387..39a6848a1 100644 --- a/src/mock/login.js +++ b/src/mock/login.js @@ -1,21 +1,11 @@ import store from "@/store"; +import { userList } from "./role"; // mockData - 用户列表 -const USER_MAP = { - super_admin: { - name: "super_admin", - user_id: "1", - access: ["super_admin", "visitor"], - token: "super_admin", - avator: "https://file.iviewui.com/dist/a0e88e83800f138b94d2414621bd9704.png" - }, - visitor: { - name: "visitor", - user_id: "2", - access: ["visitor"], - token: "visitor", - avator: "https://avatars0.githubusercontent.com/u/20942571?s=460&v=4" - } -}; +// 用户列表 +const USER_MAP = {}; +userList.forEach(user => { + USER_MAP[user.name] = user; +}); // 用户登录 export const login = req => { @@ -24,7 +14,7 @@ export const login = req => { return { status: 200, message: "成功!", - token: USER_MAP[req.userName].token + data: USER_MAP[req.userName].name }; } else { return { status: 500, message: "用户名或密码错误!", data: null }; From fb45691c6f3b7f6c7ce25b0edca23c50fd496927 Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Mon, 18 May 2020 14:51:52 +0800 Subject: [PATCH 077/164] =?UTF-8?q?mock=E6=95=B0=E6=8D=AE=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=EF=BC=9A=E8=BF=BD=E5=8A=A0=E7=94=A8=E6=88=B7=E5=88=97?= =?UTF-8?q?=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/mock/role.js | 76 ++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 74 insertions(+), 2 deletions(-) diff --git a/src/mock/role.js b/src/mock/role.js index f6fa7e384..e84fa565b 100644 --- a/src/mock/role.js +++ b/src/mock/role.js @@ -1,3 +1,23 @@ +// 用户列表 +const userList = [ + { + user_id: "1", + name: "super_admin", + displayName: "管理员", + phone: "13888888888", + access: ["super_admin", "visitor"], + avator: "https://file.iviewui.com/dist/a0e88e83800f138b94d2414621bd9704.png" + }, + { + user_id: "2", + name: "visitor", + displayName: "访客", + phone: "13888888888", + access: ["visitor"], + avator: "https://avatars0.githubusercontent.com/u/20942571?s=460&v=4" + } +]; + // 角色列表 const roleList = [ { @@ -15,7 +35,11 @@ const roleList = [ "level_2_3", "screen", "github", - "singleMenu" + "singleMenu", + "authority", + "userManage", + "roleManage", + "menuManage" ], id: "1" }, @@ -204,7 +228,55 @@ const menuList = [ ico: "md-document", isOutSide: false, showLevel: 2 + }, + { + id: "authority", + name: "authority", + title: "权限管理", + url: "authority", + path: "Main", + sort: 20, + parentId: "root", + ico: "md-settings", + isOutSide: false, + showLevel: 2 + }, + { + id: "userManage", + name: "userManage", + title: "用户管理", + url: "userManage", + path: "authority/user", + sort: 10, + parentId: "authority", + ico: "", + isOutSide: false, + showLevel: 2 + }, + { + id: "roleManage", + name: "roleManage", + title: "角色管理", + url: "roleManage", + path: "authority/role", + sort: 8, + parentId: "authority", + ico: "", + isOutSide: false, + showLevel: 2 + }, + { + id: "menuManage", + name: "menuManage", + title: "菜单管理", + url: "menuManage", + path: "authority/menu", + sort: 6, + parentId: "authority", + ico: "", + isOutSide: false, + showLevel: 2 } ]; -export { roleList, menuList, menuLevel }; +export { userList, roleList, menuList, menuLevel }; From 51fede3bb99ee87abe080bd503cf15662ac1ff93 Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Mon, 18 May 2020 14:58:19 +0800 Subject: [PATCH 078/164] =?UTF-8?q?=E8=8F=9C=E5=8D=95=E6=A0=8F=E6=A0=B7?= =?UTF-8?q?=E5=BC=8F=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/components/side-menu/side-menu.less | 36 +++++++++++++------ 1 file changed, 25 insertions(+), 11 deletions(-) diff --git a/src/components/main/components/side-menu/side-menu.less b/src/components/main/components/side-menu/side-menu.less index 4716d8273..b34be7a7c 100644 --- a/src/components/main/components/side-menu/side-menu.less +++ b/src/components/main/components/side-menu/side-menu.less @@ -1,24 +1,30 @@ -.side-menu-wrapper{ +.side-menu-wrapper { user-select: none; - .menu-collapsed{ + + .menu-collapsed { padding-top: 10px; - .ivu-dropdown{ + .ivu-dropdown { width: 100%; - .ivu-dropdown-rel a{ + + .ivu-dropdown-rel a { width: 100%; } } - .ivu-tooltip{ + + .ivu-tooltip { width: 100%; - .ivu-tooltip-rel{ + + .ivu-tooltip-rel { width: 100%; } - .ivu-tooltip-popper .ivu-tooltip-content{ - .ivu-tooltip-arrow{ + + .ivu-tooltip-popper .ivu-tooltip-content { + .ivu-tooltip-arrow { border-right-color: #fff; } - .ivu-tooltip-inner{ + + .ivu-tooltip-inner { background: #fff; color: #495060; } @@ -27,14 +33,22 @@ } - a.drop-menu-a{ + + a.drop-menu-a { display: inline-block; padding: 6px 15px; width: 100%; text-align: center; color: #495060; } + + // 处理父子菜单的标签位置 + .ivu-menu-submenu-title>i, + .ivu-menu-submenu-title span>i { + margin-right: 12px; + } } -.menu-title{ + +.menu-title { padding-left: 6px; } From a901d46a3ede757dcaa528a19f0e0dd0c0e8ded1 Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Mon, 18 May 2020 15:03:10 +0800 Subject: [PATCH 079/164] =?UTF-8?q?=E6=9D=83=E9=99=90=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/view/authority/menu.vue | 12 + src/view/authority/role.vue | 12 + src/view/authority/user.vue | 611 ++++++++++++++++++++++++++++++++++++ 3 files changed, 635 insertions(+) create mode 100644 src/view/authority/menu.vue create mode 100644 src/view/authority/role.vue create mode 100644 src/view/authority/user.vue diff --git a/src/view/authority/menu.vue b/src/view/authority/menu.vue new file mode 100644 index 000000000..2e020cfd1 --- /dev/null +++ b/src/view/authority/menu.vue @@ -0,0 +1,12 @@ + + + + + diff --git a/src/view/authority/role.vue b/src/view/authority/role.vue new file mode 100644 index 000000000..2e020cfd1 --- /dev/null +++ b/src/view/authority/role.vue @@ -0,0 +1,12 @@ + + + + + diff --git a/src/view/authority/user.vue b/src/view/authority/user.vue new file mode 100644 index 000000000..d827b2913 --- /dev/null +++ b/src/view/authority/user.vue @@ -0,0 +1,611 @@ + + + + + From 893a354c315f1ac1815dd4a9e1c9b4d1226f4b93 Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Mon, 18 May 2020 16:39:36 +0800 Subject: [PATCH 080/164] =?UTF-8?q?=E6=A0=B9=E6=8D=AErouters=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE=E9=A6=96=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/main/main.vue | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/components/main/main.vue b/src/components/main/main.vue index b46749612..f68dc51ba 100644 --- a/src/components/main/main.vue +++ b/src/components/main/main.vue @@ -69,6 +69,7 @@ import Language from "./components/language"; import ErrorStore from "./components/error-store"; import { mapMutations, mapActions, mapGetters } from "vuex"; import { getNewTagList, getNextRoute, routeEqual } from "@/libs/util"; +import routers from "@/router/routers"; import minLogo from "@/assets/images/logo-min.jpg"; import maxLogo from "@/assets/images/logo.jpg"; import "./main.less"; @@ -122,7 +123,13 @@ export default { } }, methods: { - ...mapMutations(["setBreadCrumb", "setTagNavList", "addTag", "setLocal"]), + ...mapMutations([ + "setBreadCrumb", + "setTagNavList", + "addTag", + "setLocal", + "setHomeRoute" + ]), ...mapActions(["handleLogin"]), turnToPage(route) { let { name, params, query } = {}; @@ -177,6 +184,7 @@ export default { * @description 初始化设置面包屑导航和标签导航 */ this.setTagNavList(); + this.setHomeRoute(routers); // 根据routers设置首页 this.addTag({ route: this.$store.state.app.homeRoute }); From c7e5bb61a306802f2c6c157b9b3a536a96d05bf4 Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Mon, 18 May 2020 17:25:43 +0800 Subject: [PATCH 081/164] =?UTF-8?q?=E8=BF=BD=E5=8A=A0=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E4=B8=BB=E9=A1=B5=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/store/module/app.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/store/module/app.js b/src/store/module/app.js index 74757ff9a..7b774bb5c 100644 --- a/src/store/module/app.js +++ b/src/store/module/app.js @@ -17,7 +17,7 @@ import { getAllMenus // 获取当前用户的全部菜单 } from "@/api/data"; import router from "@/router"; -import routers from "@/router/routers"; +// import routers from "@/router/routers"; import config from "@/config"; import { dynamicRouterAdd, // 加载路由菜单,从localStorage拿到路由,在创建路由时使用 @@ -41,7 +41,8 @@ export default { state: { breadCrumbList: [], tagNavList: [], - homeRoute: getHomeRoute(routers, homeName), + // homeRoute: getHomeRoute(routers, homeName), + homeRoute: {}, local: localRead("local"), errorList: [], hasReadErrorPage: false, @@ -57,6 +58,10 @@ export default { setBreadCrumb(state, route) { state.breadCrumbList = getBreadCrumbList(route, state.homeRoute); }, + // 配置主页route + setHomeRoute(state, routes) { + state.homeRoute = getHomeRoute(routes, homeName); + }, setTagNavList(state, list) { let tagList = []; if (list) { From 400366d9796156e7c1cbd0d8ef2ffdd47d8515b1 Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Mon, 18 May 2020 17:26:14 +0800 Subject: [PATCH 082/164] =?UTF-8?q?=E8=BF=BD=E5=8A=A0mock=E6=96=B9?= =?UTF-8?q?=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/data.js | 10 ++++++++++ src/mock/data.js | 16 +++++++++++++++- src/mock/index.js | 10 +++++++++- 3 files changed, 34 insertions(+), 2 deletions(-) diff --git a/src/api/data.js b/src/api/data.js index 753b831b5..ddd1f5442 100644 --- a/src/api/data.js +++ b/src/api/data.js @@ -29,6 +29,16 @@ export const saveErrorLogger = info => { }); }; +// 获取用户数据 +export const getUserList = () => { + return axios.request({ url: "get_user_list", method: "get" }); +}; + +// 获取角色数据 +export const getRoleList = () => { + return axios.request({ url: "get_role_list", method: "get" }); +}; + // 获取菜单数据 export const getAllMenus = token => { if (token !== undefined) { diff --git a/src/mock/data.js b/src/mock/data.js index 1e438e817..c820453e9 100644 --- a/src/mock/data.js +++ b/src/mock/data.js @@ -1,6 +1,10 @@ import Mock from "mockjs"; import { doCustomTimes } from "@/libs/util"; -import { menuList } from "./role"; // 菜单列表 +import { + userList, // 用户列表 + roleList, // 角色列表 + menuList // 菜单列表 +} from "./role"; const Random = Mock.Random; export const getTableData = req => { @@ -30,6 +34,16 @@ export const getDragList = req => { return dragList; }; +// 获取用户列表 +export const getUserList = req => { + return { status: 200, message: "成功!", data: userList }; +}; + +// 获取角色列表 +export const getRoleList = req => { + return { status: 200, message: "成功!", data: roleList }; +}; + // 获取菜单列表 export const getAllMenus = req => { return { status: 200, message: "成功!", data: menuList }; diff --git a/src/mock/index.js b/src/mock/index.js index e9cd03a6f..353b75e8e 100644 --- a/src/mock/index.js +++ b/src/mock/index.js @@ -1,6 +1,12 @@ import Mock from "mockjs"; import { login, logout, getUserInfo } from "./login"; -import { getTableData, getDragList, getAllMenus } from "./data"; +import { + getTableData, + getDragList, + getUserList, + getRoleList, + getAllMenus +} from "./data"; // 登录相关和获取用户信息 Mock.mock(/\/login/, login); @@ -8,6 +14,8 @@ Mock.mock(/\/get_info/, getUserInfo); Mock.mock(/\/logout/, logout); Mock.mock(/\/get_table_data/, getTableData); Mock.mock(/\/get_drag_list/, getDragList); +Mock.mock(/\/get_user_list/, getUserList); +Mock.mock(/\/get_role_list/, getRoleList); Mock.mock(/\/get_all_menus/, getAllMenus); Mock.mock(/\/save_error_logger/, "success"); From fc167f22686f632e927fb7b3c85b596b056b2866 Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Mon, 18 May 2020 17:59:52 +0800 Subject: [PATCH 083/164] =?UTF-8?q?=E8=BF=BD=E5=8A=A0hideInBread=E5=A4=84?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/libs/util.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libs/util.js b/src/libs/util.js index ab7e2978f..63132b2d4 100644 --- a/src/libs/util.js +++ b/src/libs/util.js @@ -67,7 +67,7 @@ export const getBreadCrumbList = (route, homeRoute) => { } let res = routeMetched .filter(item => { - return item.meta === undefined || !item.meta.hide; + return item.meta === undefined || !item.meta.hideInBread; }) .map(item => { let meta = { ...item.meta }; From 2d7495ddb561491f64d4193e18bcb4af4d40d031 Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Mon, 18 May 2020 18:00:15 +0800 Subject: [PATCH 084/164] =?UTF-8?q?=E8=BF=BD=E5=8A=A0hideInBread=E5=A4=84?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/libs/router-util.js | 1 + src/router/routersOrg.js | 1 + 2 files changed, 2 insertions(+) diff --git a/src/libs/router-util.js b/src/libs/router-util.js index 1e4b7d0ad..65b1720b2 100644 --- a/src/libs/router-util.js +++ b/src/libs/router-util.js @@ -207,6 +207,7 @@ export const filterAsyncRouter = asyncRouterMap => { route.component = Main; // Main组件特殊处理 } else if (route.component === "parentView") { route.component = parentView; // parentView组件特殊处理 + route.meta.hideInBread = true; // 还有子路由因此不显示在面包屑 } else { route.component = lazyLoadingCop(route.component); } diff --git a/src/router/routersOrg.js b/src/router/routersOrg.js index ba5b28ac9..1756c81ac 100644 --- a/src/router/routersOrg.js +++ b/src/router/routersOrg.js @@ -8,6 +8,7 @@ import parentView from "@/components/parent-view"; * 显示在侧边栏、面包屑和标签栏的文字 * 使用'{{ 多语言字段 }}'形式结合多语言使用,例子看多语言的路由配置; * 可以传入一个回调函数,参数是当前路由对象,例子看动态路由和带参路由 + * hideInBread: (false) 设为true后此级路由将不会出现在面包屑中 * hideInMenu: (false) 设为true后在左侧菜单不会显示该页面选项 * notCache: (false) 设为true后页面不会缓存 * access: (null) 可访问该页面的权限数组,当前路由设置的权限会影响子路由 From ae07292f55edf7e2ebf2909d0cbf175d320eb9eb Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Mon, 18 May 2020 18:21:13 +0800 Subject: [PATCH 085/164] =?UTF-8?q?mockData=EF=BC=9A=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/mock/role.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/mock/role.js b/src/mock/role.js index e84fa565b..d4d4e2e01 100644 --- a/src/mock/role.js +++ b/src/mock/role.js @@ -3,16 +3,16 @@ const userList = [ { user_id: "1", name: "super_admin", - displayName: "管理员", - phone: "13888888888", + displayName: "孙悟空", + phone: "13888888881", access: ["super_admin", "visitor"], avator: "https://file.iviewui.com/dist/a0e88e83800f138b94d2414621bd9704.png" }, { user_id: "2", name: "visitor", - displayName: "访客", - phone: "13888888888", + displayName: "特兰克斯", + phone: "13888888882", access: ["visitor"], avator: "https://avatars0.githubusercontent.com/u/20942571?s=460&v=4" } From 765de9d8a406f51d9dd19b04774cef2800ecbded Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Mon, 18 May 2020 18:21:29 +0800 Subject: [PATCH 086/164] =?UTF-8?q?=E6=9D=83=E9=99=90=E7=AE=A1=E7=90=86?= =?UTF-8?q?=EF=BC=9A=E7=94=A8=E6=88=B7=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/view/authority/user.vue | 353 ++++++++---------------------------- 1 file changed, 77 insertions(+), 276 deletions(-) diff --git a/src/view/authority/user.vue b/src/view/authority/user.vue index d827b2913..4a6ca8b33 100644 --- a/src/view/authority/user.vue +++ b/src/view/authority/user.vue @@ -44,10 +44,9 @@ :label-width="100" @submit.native.prevent> + prop="name"> - + v-model.trim="modalData.name"> @@ -61,12 +60,12 @@ v-model.trim="modalData.phone"> - @@ -85,42 +84,32 @@ From 7affc7ce4e1b8c6bc1e883b62a0e2ae3df8fcc0f Mon Sep 17 00:00:00 2001 From: SimonShao <435776313@qq.com> Date: Mon, 18 May 2020 18:30:22 +0800 Subject: [PATCH 087/164] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6a65e8b07..c56e8d004 100755 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ If the template can help you in your work, please give a ⭐️ for motivation - mock mock模拟数据 -> 追加:路由列表、路由层级、角色列表 等数据 - router 路由配置 -> 有较多改动 - store Vuex配置 -> 有较多改动 - - view 页面文件 -> 追加:template.vue 和 screent.vue 页面模板 + - view 页面文件 -> 追加【权限管理】模块、追加 template.vue 和 screent.vue 页面模板 - tests 测试相关 ``` From 8632e882388c837d58fa7909d16db1f57c658b97 Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Tue, 19 May 2020 15:54:13 +0800 Subject: [PATCH 088/164] =?UTF-8?q?=E8=BF=BD=E5=8A=A0=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E5=A4=B4=E5=83=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/assets/images/userAvatar.jpg | Bin 0 -> 12019 bytes src/components/main/components/user/user.less | 10 ++++- src/components/main/components/user/user.vue | 35 ++++++++++-------- 3 files changed, 27 insertions(+), 18 deletions(-) create mode 100644 src/assets/images/userAvatar.jpg diff --git a/src/assets/images/userAvatar.jpg b/src/assets/images/userAvatar.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1725c7e594d00306f4d9fae51b81dc48659f7c6a GIT binary patch literal 12019 zcmbWdWmH^I)9=~PxP(A(5AMOeu>?-)YSA$JgoE#T#VGzY$EJjynKR!f^@86 zAW?ov9sxoA|2zZ*8yg!B7mpktpPc_S^=tnB&-UC0AjAT!0oH&h3;uRW(@;=>Xy_Q2SlBqY|0cA&1fZe-fv9LebaXVdf3t)C-3Oo%q7%L5lf`(Y zX^F`ICgu-MEy7}yYv?D@nmK0@u=*H*jYCRCPC?1c!pg?ZAt)p)A}S{S_MNnub+QFgX=wF_}kc6?9y3D4z2K6J^l@h)CS$uGF@zXCrcfLhfu3?gtlKk^Iw)-}y&m?kf z8WSc_#qMK4jF-s@!0GQmev9Htz z!bRd|K(lX5Rzfh9c1l3&(9?V8ukeJlwa`D z_dJ?YL|`D>Ec!FRsLYXn?Ph0@w&8paYqz7lB?Hlt3>qOn8wJ?-(A(r+i;zI7UgvYh zW*XQkTe~GDlG7ED@F-SX)g^G92*DV(Cugq>xjz&1;K3-Q;I4sW180evrgC0C$ehA? zevZoqioQ!MBX+go1==$aiF=*!#fwVX`(Fi$$2+ zvHl~aoIrRAmIgT2o(VjRFU~1ppAt0pH4}e|Uknkf7_iu=?Dfd=7A46tCCbCY_*mbgWg1QR zmJ8-qI(}3~SK(bUHWTKA)w(}OS!y9JaC@EqKu{Tdeb8yGnX~1i z#JD9av)om75nk=bG;pH<|u?`q9%GHKni> zEKjCHT=o96hTXQX7qwH0VdLRPDd94Te7hQ0QlUEYcJ*9y1o2Mqdq#vn95!*&y)t zDoq_Sm+rmH3~j&x1U;&y zf}Kgt>ZtU#VSKuMeH#41lW#uN#V+3YBULrey?+Og#jYrOr4ESw$^Qky$v-@jz)L*{ z$w(TErGD9WQR2neP?rt)G~81f$0TK($xJb*KB`FIweA!zpJF<%inU z5z-t&%l9-j%Xq$?^c{C~fOc13%s{Mn-bLG4qg(9{qyh8|CBuq_*43*3wo%q1LfJew~R$!lU69HDyLk<@nY11>P6jjjUm zg=vH_#uaUo>sXo;omZc!}Z-Y>GCMHfb(lvEKabM~e zOnX>){ zoxFBQfMUoqAcOD&{*lQY`*v5Fz}*|8bgrB4B#1<@oa$qR%LLYYuV2a{=VXGU2(FYhA$R0#GwwTi!ybP>pUlE z${_i9?#wDSRyXx(hsgkx8{iv%-tPCT;UOVg8S|y|g^Qbl0 z2xtIa^1^pNtreD8t1u>K?!nTD$tZff3N7$l;`Nyf_f&y)S8FIil`NV^&-Z9=$XCQZ z6mU~3E)Ph}O`Ts-ygAU8|DvuVWdl9sx3P9$eBdm|<~OEzK%+FZ% zd-FZ9b^6zlBNgA{@0Tu918|?qqd|)o2o#g%oZ!ic)@el-8xj7n@Nk^f5IeMcfLNX8 zw3nj`_s?3l()JuHid(+r_9tSKO&$B=S*UDB1L<@-4!SDDNG4ncpxvOu$BuQP;#e|k z2{zQ7uV%A6P>}aOOCT5SqNm<`8Io~;2F0Sy_#qu*(K1`BQ@&D*)1XYj-*y?-$o5S(?7ksX`8LdKG{*;aRf%oVFTSnrL}byUi^0D z=tD&C`c(*VJKhpGE)j|=cM9W}zRFwole+$SIC1WHj&JTVDcEnR72c3~akJg?k<^u@ zs|K;>x5ockLzd>!RIS?Az49=Qxo2vWyWzD)3H24?W@oyYL1q6f@wtg)!|)$JW9LM| z=6gNXSj0C~JqK6P`-SwHn_`?H0zEvn7Z`qUvEw1dP3PTpNg@n;TmI&W^=M47`-KE< zv(q!JPKX6`h4*(&b$%X(qNfo%p9~JCyI5oZi_`>yQxkQ>C+)SFvak zEd8QeEeIQl|NCv6SDu`An-6z0N9KU?zjxl6=WnB~M>Sl>-#e;#`Kkn8z<>~@rF6f` z_pM<@8;0Wk?+9C7$Q(||^9lTB{@dIF4-#G~K@xm_qoq+O_9=Y>)P?) z+)yYhPpkn5(4Q)xmb4TuudR!8nOf$yQS3+&4jQG9#ZkP~5mq+~7GCP~%hH9&oo^IZ zOJOy&`A4LM4Wi0DD)-Uu=)+UZ*EXC)0@jb?+-gf0CqjTKlhBQ@7Xesm9~lF~!%otm6EdT~IY}>AvF&5--g1%ddvtVg>he~{s%jbZ_(VU8PvxjrCx{~q zWhWdCUYhOVOiYnl$~55bZr}OMZ@uwQI5|)-QO){$74)BB||q0b#xo9CT0gXE6AB?ftxSG z?{P3Z!R*~g*PJivO{LH^{t9yZ_Nr=YY8$(*PjqbCKw$hf?)r}{QyT-~zwb4SxdQL; zni?KCo5E>aw~4GLmPM?~z(0;nthK+%k ztcOFYR!S?r1`FBAsFl`NwRFZycHQk4Cnm7Y-d)?VCh#w0#c)xuC-~;%=%U`CJ8BBt zc4pzTb9tg$`+H-kcbrLyMQ?4YMokt7Jg+I4v?f*!zUi=T{RZ`UyzG!idx%oPq>%JE z)Rk-M@Es==vy+4>A8S=BAr+}QY#_{J^*>DX@-iZVTSa*WXRu{{w#YKIsXcP|zOfd3 z+g88V(me9o|FeBSf-h9wvX4=e_A$w*c@DPcd~65aS6GgVW!hA=C%@im_Tt2~E^lsP zH?+qmn;25o9tME!%D$@ei#Z2IqOQ?v4Lfuf$_}s9OV74iAkp-EuxT>l90_H=U^iP3 zbSvFn!y@g=9W+Kg-jcYynY{Fz0@TtFW^&J{;5HHSu}d^8vC>rd%FRG7zXoe9X{S_; zwN(kHO)=?dNrlxvR8Obu@j6eo1cO{3SfwhAy&9BXu`Eta(|D#HFZNIZ{}vg2w-zZD zg*o9SsSnOBn>*=~wkj|?I~1jjzp{TF4jQ2cKP`BMFr9xnEF+}3p8L*b8K;J5hXbXJ zejyKR=dZpbH8E)lc9kXUE*r3!e~tjKbUgT-sh4K!Qtf8k`y{gK6 zqhfz#kDt(`w4aQT45@l;c zE02Rd{>GHIsG{`uy75SYuwMQwjfO7+Sw#~!eE-f-$)|k}bc6e9UU&nXN{31~+7+BcBqwJcA+&OJ7hWQfWKpJxDtcl2Ti zCoF7_MpE9b(3kZE{5TW7X|hp(mJ<`Z@AtBa&C#Pr#j(Y;O;?R<3z)Sf1#l`G$6DMH-?&Glm;m3KG9m{k7N3d?4 zyEjN~%s9fT^)KV*L*p;L!|=rnxV0PItCh^=cZMu~HSiKYi(-c7JKjIF-oIV_6ghzp z-H8m7>glMJ{!Y1Dn+jSeF8L~)J4w67t7|z|aUctOR5fo~aB=6Rr!_*yv&$Y}(~uQo zEmIo8KhQFra+K5r)x`@@jT`7-FA|MCAgb!O>9mcFgkcrO0W+U}!D=*#?PKXO!X(2B zifUn=vr&l!p~rbD}m*zJ%k{{e9O!H==Fqq`G#K@aVIu-rd-m zYC5^|&ZAo9 z38kuqcGq@Lw*oUQyUrQHI@XjqhCA$VKn5pI-cyG}1_zEF?k(J)pkXxEJVomJ?L{a7 zu0wqonQ9X`-Ox+xKe-DPf|(I_lBnda-92T38XZB`hyX3e7kjqfVjo_YJK7>gc9WWDD!!(gO(N%k z$y&Fm$(GD7de<#mB0wS{tF*nRKsVb7AviXpZg;=x`YWH$qL;LjTM6dfi>j4g{qVq8aI*c{HOT;swzn;^{XyDkHx!30za(9sk=7Qt3A}WO-a(m zZa70Ll^Qt+nF7hs1HAxt?Z%K7#_Cq?Oc4{+sDo@PzY5E0vr1QuN;1iO7kzP1IMKgz zG&}>sQ8|7m-hiZTrnnVmioEc!#`Z<=lkx2x&1j>CvQnGKUFVLa(c{=W5U1 zE7LEXPL#aVvLueIE1M2A3R*dff8As3U^B~tj(eKJ&M1mWeZr)*JMU}z3?MtKH@thJ zr=%Itn60K3;sQA*sVg%PTBuAJMA9s;Ab{7ksKLg%&wx)xM`NbkHf`C|6oqM?Jf2f8 z2+W~hvzE)egCU=^v+($vgk!-)LGSomFEcB~4n0660`aP#)SoqpYbd!C2Rp~K zE1mRrt}DgakOqIrhi3qhbC~!imalO+qc-_UTkWdVdfFW_911uYqGK5r<%u?^1Za`W z<&)*6Z))C!ZkJ`n3Bn}v&*~p>3eF1^UC(iRL*vpiM2QYBVgTM$DchI8i@FMUz}?yA zuY{s=xQVvv(g?r;yC|+#{cw$+dzF)3+~4JhxtC`)^9ett8&^S*>cc zL-)i86p|H~wrTpAtn0?lwC|`_f88Z$6*x%|F;W1@8QTkA%qv!{j@sf;F@?*#QW~Vb zm9z&{Lt7W~hxZQW7{oGKzviMdor6!(%%VIX%(Xm)Z%u_Ls1b&T!vOR60k)c%DT znr&d|n7c)n86j&bjnAt`nj&Z$j4Z7f!DJo=L5$XWoQ_m;Z?`u)?Iv zQYp1D`)k~Kxgf)#q#+K#COHVOgD&Bf07rj2*=uTZG^o#!cOZtWcv3{O5h-^2qz0GzqrlU5mBjV*WaOd-$O8Cdj3Shg*FC^G+X(Q2vTEkA_}om7TKk znV_2%@`_<1P3UT!D`;sG{+6X9i6Wb*9TZd!E^Ou{{f?Ve?Rx*}OOF+2uENR47&dER z-9uDw*?^Gojh;9`wydu?&7JQog6FiaTjAG!`Rtyy+X>C=LhDVhhjjp$CilA5n-JoO z)sk;<*mMKm9xctz1!JE9osQCt)*wu&t4!vGK&;{c%m|^Zaph_is>ck`hYPlU;e@Lv zhG~$Se5d^k7}9%_(5>oO>DL(exmGED(Z`rSEUXH4k$NhF_6$fhJ3)-D4(1chU8{c5 zlpGsp*~r$jWkn8$Qm&NjV_i}V@TS-Jli&Hi(eG(@^X~)x$x*-4uZZCUO^Y5;gbwr^ z9P(|S&bt;X1aNykIw@=nu!fIsa{jfEwp-xQ2=)Gqcv7g(RDA}#Sm)x&yyWVTut87X zkC4!x$r8tNiNSFmdtyAOb}tqh#^Mvtkk)Q~2Jjir)b9MAsM1t6CBL`pDgSQEux6m_ zinnVx%U~oK@o@~p=Wn9UlSur=nL^{VPEcCiL`ZJ8tWN>nNcF8QhEz7m;>X_E`193dec#7Dql7d6Z^w%NFmAP2gIdN zCGj;s%AGacY}Yd&I_p-im%3d^>afcyq>CsF1m7}`7VHTfp#0RC4j8p{6g;0QbWg0x z6cs)2Nld<@%|MvrqRDMN#+eI6pwpZS6fBWkg+g`>LTLR`mk~6=o3ghK%LMcBf0i~E za;Fc;a*`S`+EX7YzJvQ#)IoowOIZZHbK2sh`a^Fti5huC_^i5=_vfaUa-5FsQI%XJ zNA0t_o49HWW5vd8E?0WqXwRM0)`ZLj5)DbP*?UWX!`BKd@AXsGM(nzrGcM6M#fQH{ zi_+&7%$*Cdxh=BJ0nA?+Ct8q*(iX5k18{C2cyftk^t8dC>S5RZRwPN=g@ZHX{Q)Ei@ zIuJN0cX$NURYnEPAUV}ZX{8ok;xRSGrJwYDuds%g5Gl@6p7pi(fVa-9Ywt)rwzU>u zAK$y;C@J`jSV`YF-5@wer7#aJ`Yl7NM@qGP46L}?*T|S-LBmRPnr7|j_VG;>dNhHN zVU?(JicSHG?34}tPGvP_G^9^DXr0C*;}DG!$P!7gz90Jbs3lAuQ-49?Ua@z_mv8k8nDY6UFJv- z$Ge49lI#_bxLhLE~F(emEvprcwA`sY;MoHjtO%-c{#A&f#uML>GkSuITFE6up}RCV82$-XaSOPlYN2JdXnPmxX$u3!&)B^Z_(5S&@!ErO1wV16Qk_(C6v)&0e4H+I}EcI^9ra;z;Wg6Jxxp`x>PG zweDZXsmc*g*X(qCJLz)@2{MC~8o{d-l5z2vaaxWrRS5=~MksZ+{_zlKPP+|1E%8i! zVh9tFGz|3iL(h&@I(Zk?#Uq;`Bh4;4JU9QynUD_Ji@#uq&d4hrNKB0uJ^YRC>YUFI ze>(N9wfB<*G8Zay)`zy&(GN3T#V~eY;?VdS-3KTC5ul8p=G>Oxk$JJwxAERh#e^_v zay|@%Nxf9($AfhHUD%G>tW?yxFS=dkJXFV%G?c3)&WD8)B^x^f4l94Gxd{2%qrN%c zK2y_g;l~(x>YPT}^Sv17aeEcezK5e!zc~{*pZk|vSb0S;R z9u;o5so9f7UCAm&y}!Jqe5^)Ot)!;m8%GqMnOI%wsF%Z%3#tt7E4C}u zzSkN)4sU+>VnbAPgi&mJv6AMkBf72)z}jV|8s#^E(X}2NkeP;Mr%!{8k$n?}(%-*k zLuck8ZM4vO{v);}wzz#R2vni${$?Gzv8b4o3{F|5$NN`n4j_vO0o=v^L3}anXqkik zY+{n_9&N~1Aao2=Ss4VlR$7}@EQ zDU?L_i$-p0PygduWmr%5;#(CP@7D?VNQJ-}+~p zm5GU?u?buOA~hUeNw>P9>hTb%vJi?6;OT~(-@iPc;8=!E#6J|NP6pqQh`U|Gyr{k0 z%oq=jR-#F^{G8Mq78aWC48bYxKYrc6_U|Kh8~(uY>yr?$^e&%?ABeyFUBFi|^==(_hnrkI==-D{#c;hIqA) z;;h5Vfs=|Wx%ft}Gd1SNoIWk--T0h&dP-`@L~=9LlIR3NWk^OpAhngC*H@23W6uD? z-chX9R06L2NFH_Ed<3EK0Fj-5BW)PIrQerfN|8@By)#wo=+*DW`DMtyM++=z=6guU)Y%1yIoGZx-2d( zJp22A=YYRCi!+eH33t}|X8@jGnl_TF$+R_rIXZC!zh;R$t`syXoBPIu`i906uJYlv zOTHtnp0;BTzEw>NrqJb6aiw&E6qC6#Z|V&BbtKt)@bz=C_*zPx+3w7YAC0W$+pF6MY(sn~BQ&{gqQlm<9ECjQ^_CiqQAT4%Qd@Z~U&6GJ zV{?|HOB27W!C3CplFU6#l5Q0-4kc`OUQzB zx<)|Vfuk2pZUaQQH*9O!DK{X)Pt1$+QT%FByS~f(b}iS}2v&v>mdp{}JS zV65$7PDrF)G%hk|a7|=&KAcqHOq37(#3xri-Q=~stj%3~ms(Sld~Yfs6I+mt(B@jc z`I8;o8GkA}x?cbj^>B7~COIz_!Cc6-Egv|+b7FV~Xy^Ym=sX&JvN$sC=mSEmlxmMQ z*kA}H`ncCo0No^Fj*2UQSJ@jUKM=b(G;?c5=`*E>w!jCLvQ5jO$}|&scX#f=(@H#* zso(1)IyPx{Kv^f`uS7GJKv+KU+-Hea)^2Zb6!0sZng{%#cdNPhg}*^O^j{BjHBU}G zR(vOCubN1)+$a(q*0{e1Nc+KB@R>+~-vbkv{B}_9rZvkEO?#AA{<}bUkD@J;1>Lxi z8Ru=oTauoM1ecEnl@zS)X3}PP&JE|%1KjRI+D04ZL(It#dMh6= zV2%ID`udk=0HB-e_KBebDY+#d|DA6&KmJ0zvHoyG7bLoyHQSp4B+34I=;4q9%FlKv zFEDD}pXUWHABD6CD<%bF{7yu*VWoHyR?ySa> zdnF^IWryNN7MN(HQmz>eC33>Gl7-09xw;q*(_#g)Rr!4y=dd>VP zcEGu)oQDKtcW;!DwdprGi7L#1KV&M!lb?2obn@Xq#-c~(eQC-E_N5^5V=$#ub-AmZ z<5u`LuPTh7K7nRy>V0ZjCtDI`I~|*?Q;6-fq-x3WbY!{tcL{(9%Snw?)iOhCpU{O3 zQK6qrt8X+ygor6hh59@&Em@4bHgkOFNnp0t5V7D^M`FO~KVhdQik2v>zH9QT-*kiP zcQR+ER4UzDwPQ0HTjZBP(lsY>`SfC17%tsJ>b+jBIW?^XS_o-IjGWf*wx_uoGotdh zy0MWUKgtySOgJ)LnEK9LOYb)se!;Xhd>ByW^>eLWoouTOpL}jU(JcdFFwK9OI{*Opvj^&cnUzbX|5i`dd`!y z=_+n~Y^wG{ueU>j@@78zody{nJK8=THfx062sz0T4me_ZKYguDOdSyPGJoR&-+Cxt zTa`*!uvI>jpD)ZLLMIXG6P}C-s$M5Vtw50hSP;k_ssm}nwH8026Kl%+Kcz*RJN;i> zsFzagei45M+j{BFk%3BFyO|rCH`UoA5(W(%J{*YfsIy5!JJ-19l^n!iE` zbBz;ddOssXB!I&JNqaFX(P8kVPa4xxjGkSMMl%5!oMt*HWOd z$a8(2tZK?Kv8IY`RrE6>K0+4FixuKD)Eja3zG2pEk%B=)*xWhSq7yOJZ=8#8;e$K_ zOqFXx?beQP&Vx%wlZ85L$I&g8U92Hp%Zok*HAg=B;LqNiu`l|aq};QuSS1t!@WT9t zCA8LX&z(g0jib{(BzsTIqJ2@mrH@pynWawi{JQ=ww7X#^#3J4lQ>!)kbkkdT$9*Hq z->}gzfDr00HsoaL7pdN{GVQ3(NoOC=h4BpNP2$nKBz9H!SJYahQDO&KDf9h_u6}c) z!TZX{^03wYiKD4_!E(+`YR-{Lk&H!EIm^<@4^JF9Cwg^gEO1w@ox^wI%*`W;%!7Lt z{0P6-5nLRu(rhi$UR@sROJdc@=)xv!_>(DEW@#x1PC|hy4li8FSb>xPDWD@HGQY{X zncOSOPSkX!URwJS#o*$Y4CAmiW81i+Bh%l1{XjPW{R#n&XZW(F1wC*Yeev~_gp|q? zj!Tgm(`pQvZ4~12uuc#(6+e2%{kJzzjKbY+d8bCr7aVj1?mYM z=HHyJy+?t*|1E<(LTzE)>$g3}s zM%tL^W3X5KFc_I(bD;5R5CVaQ%`vj zG(=o&bArhA0H5eQa9;ih=^=LQqdR|dPU5Z?lwgKQ1}@lFtz<#}I=B+Sg5)SkMEg9v znf!u4>S3{`r~Ky`(c}X>+B#My_g$4gq5DD=2xXO?abwUO(JA)l>n_H3Hm1}!~m)e*&D=hf859#D1r^jX=w zAXe=@=iZ-S9jk`szwQF?37Z`K3)dBc?}TB>9Exh6S&@6tG`D_F&L_g1)}>Ry5!cOb znFx6SXsImP3A60}#iX+D=A=AMp7i_V#iVXJP9k*Kw0J{aFq!PVs^&`$+A1t=X&<8F7CLOx4R=F|T(# z!`m>a#e0jJdupW!>b%rFE%CSQ
- - + + + 退出登录 @@ -11,31 +16,29 @@ From 420cdff28ee291249d4a93d8715e0129e2b08afc Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Tue, 19 May 2020 15:55:09 +0800 Subject: [PATCH 089/164] =?UTF-8?q?mock=E4=BA=8B=E4=BB=B6=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=EF=BC=9Alogin=20&=20getUserInfo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/mock/login.js | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/mock/login.js b/src/mock/login.js index 39a6848a1..7cef5403d 100644 --- a/src/mock/login.js +++ b/src/mock/login.js @@ -2,14 +2,18 @@ import store from "@/store"; import { userList } from "./role"; // mockData - 用户列表 // 用户列表 -const USER_MAP = {}; -userList.forEach(user => { - USER_MAP[user.name] = user; -}); +const getUserMap = userList => { + const USER_MAP = {}; + userList.forEach(user => { + USER_MAP[user.name] = user; + }); + return USER_MAP; +}; // 用户登录 export const login = req => { req = JSON.parse(req.body); + const USER_MAP = getUserMap(userList); if (USER_MAP[req.userName] !== undefined) { return { status: 200, @@ -24,6 +28,7 @@ export const login = req => { // 获取用户信息 export const getUserInfo = req => { // console.log(store.state.user.token); + const USER_MAP = getUserMap(userList); if (store.state.user.token !== undefined) { return { status: 200, From 6a70a7a2e9ea63b76dc2daa9f063d6c86bbfd9c3 Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Tue, 19 May 2020 15:55:49 +0800 Subject: [PATCH 090/164] =?UTF-8?q?=E7=94=A8=E6=88=B7=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/view/authority/role.vue | 408 +++++++++++++++++++++++++++++++++++- src/view/authority/user.vue | 8 +- 2 files changed, 409 insertions(+), 7 deletions(-) diff --git a/src/view/authority/role.vue b/src/view/authority/role.vue index 2e020cfd1..4a6ca8b33 100644 --- a/src/view/authority/role.vue +++ b/src/view/authority/role.vue @@ -1,12 +1,412 @@ - diff --git a/src/view/authority/user.vue b/src/view/authority/user.vue index 4a6ca8b33..fec6024c5 100644 --- a/src/view/authority/user.vue +++ b/src/view/authority/user.vue @@ -318,7 +318,7 @@ export default { this.modalShow = true; }, // 点击按钮 - 编辑 - async edit(row) { + edit(row) { this.modalDataType = "edit"; this.modalDataOrg = row; this.modalData = JSON.parse(JSON.stringify(row)); @@ -342,9 +342,11 @@ export default { this.buttonLoading = false; } else { // 生成user_id,不能与现有的user_id重复 - var user_id = 1; + var user_id = "1"; this.tableDataOrg.forEach(item => { - if (user_id === item.user_id) user_id++; + if (user_id === item.user_id) { + user_id = (parseInt(user_id) + 1).toString(); + } }); this.modalData.user_id = user_id; userList.push(JSON.parse(JSON.stringify(this.modalData))); From ed44751831025aa3d10c770f064beb5d7e7a9db1 Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Tue, 19 May 2020 17:04:16 +0800 Subject: [PATCH 091/164] dynamicRouter -> dynamicRouter-template --- src/libs/router-util.js | 2 +- src/store/module/app.js | 4 ++-- src/store/module/user.js | 2 +- src/view/login/login.vue | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/libs/router-util.js b/src/libs/router-util.js index 65b1720b2..47e76fda5 100644 --- a/src/libs/router-util.js +++ b/src/libs/router-util.js @@ -7,7 +7,7 @@ import Vue from "vue"; // 加载路由菜单,从localStorage拿到路由,在创建路由时使用 export const dynamicRouterAdd = from => { - let data = localRead("dynamicRouter"); + let data = localRead("dynamicRouter-template"); let dynamicRouter = data !== "" ? filterAsyncRouter(JSON.parse(data)) : []; console.log(`动态路由数据:${from}`, dynamicRouter); return dynamicRouter; diff --git a/src/store/module/app.js b/src/store/module/app.js index 7b774bb5c..717e052aa 100644 --- a/src/store/module/app.js +++ b/src/store/module/app.js @@ -165,7 +165,7 @@ export default { getRouters({ dispatch, commit, rootState }, routes) { return new Promise((resolve, reject) => { var gotRouter = []; // 设置动态路由 - if (localRead("dynamicRouter") === "") { + if (localRead("dynamicRouter-template") === "") { /* localStorage里dynamicRouter值为空 -> 没有路由数据 -> 获取路由数据 */ console.log("获取路由:从api"); try { @@ -194,7 +194,7 @@ export default { JSON.parse(JSON.stringify(routerData)) ); /* 4.处理后路由数据生成路由和菜单等 */ - localSave("dynamicRouter", JSON.stringify(routerData)); // 存储routerData到localStorage + localSave("dynamicRouter-template", JSON.stringify(routerData)); // 存储routerData到localStorage gotRouter = filterAsyncRouter(routerData); // 过滤路由,路由组件转换 dispatch("updateMenuList", gotRouter).then(res => { resolve(routerData); diff --git a/src/store/module/user.js b/src/store/module/user.js index e41d27752..5635700ac 100644 --- a/src/store/module/user.js +++ b/src/store/module/user.js @@ -75,7 +75,7 @@ export default { // commit('setToken', '') removeToken(); // 删除token commit("setAccess", []); - localSave("dynamicRouter", []); // 清空本地存储localStorage中的dynamicRouter + localSave("dynamicRouter-template", []); // 清空本地存储localStorage中的dynamicRouter localSave("tagNaveList", []); // 清空localStorage中的tagNaveList记录 resolve(); }); diff --git a/src/view/login/login.vue b/src/view/login/login.vue index b5daa7588..92467a19b 100755 --- a/src/view/login/login.vue +++ b/src/view/login/login.vue @@ -28,7 +28,7 @@ export default { LoginForm }, created() { - localStorage.setItem("dynamicRouter", []); + localStorage.setItem("dynamicRouter-template", []); refreshRoute(); }, methods: { From 01c4174c45ed18f87fabac404b313d66c41442b7 Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Mon, 25 May 2020 10:58:46 +0800 Subject: [PATCH 092/164] =?UTF-8?q?=E7=99=BB=E5=BD=95=E6=8F=90=E7=A4=BA?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/login-form/login-form.vue | 64 ++++++++++++---------- src/view/login/login.less | 67 +++++++++++++++--------- src/view/login/login.vue | 8 ++- 3 files changed, 83 insertions(+), 56 deletions(-) diff --git a/src/components/login-form/login-form.vue b/src/components/login-form/login-form.vue index 497c08c40..41de573a5 100644 --- a/src/components/login-form/login-form.vue +++ b/src/components/login-form/login-form.vue @@ -1,72 +1,78 @@ diff --git a/src/view/login/login.less b/src/view/login/login.less index e986ed45d..0f99ef745 100755 --- a/src/view/login/login.less +++ b/src/view/login/login.less @@ -1,29 +1,44 @@ -.login{ - width: 100%; - height: 100%; - background-image: url('../../assets/images/login-bg.jpg'); - background-size: cover; - background-position: center; - position: relative; - &-con{ - position: absolute; - right: 160px; - top: 50%; - transform: translateY(-60%); - width: 300px; - &-header{ - font-size: 16px; - font-weight: 300; - text-align: center; - padding: 30px 0; - } - .form-con{ - padding: 10px 0 0; - } - .login-tip{ - font-size: 10px; - text-align: center; - color: #c3c3c3; +.login { + width: 100%; + height: 100%; + background-image: url('../../assets/images/login-bg.jpg'); + background-size: cover; + background-position: center; + position: relative; + + &-con { + position: absolute; + right: 160px; + top: 50%; + transform: translateY(-60%); + width: 300px; + + &-header { + font-size: 16px; + font-weight: 300; + text-align: center; + padding: 30px 0; + } + + .form-con { + padding: 10px 0 0; + } + + .login-tip { + font-size: 10px; + text-align: center; + color: #c3c3c3; + } + + .tips { + font-size: 10px; + margin-bottom: 10px; + + span { + &:first-child { + margin-right: 16px; } + } } + } } diff --git a/src/view/login/login.vue b/src/view/login/login.vue index 92467a19b..9adb282a9 100755 --- a/src/view/login/login.vue +++ b/src/view/login/login.vue @@ -10,7 +10,13 @@ :bordered="false">
- + +

+ 账号 : goku密码 : 任意 +

+

+ 账号 : trunks密码 : 任意 +

From f70d2fbe6ce35e7de60d0347f09d5939a40fd5bb Mon Sep 17 00:00:00 2001 From: SimonShao <435776313@qq.com> Date: Mon, 25 May 2020 11:05:16 +0800 Subject: [PATCH 093/164] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index c56e8d004..68b66be09 100755 --- a/README.md +++ b/README.md @@ -20,8 +20,8 @@ - 基于iview-admin(branch:template),动态获取路由数据,经数据处理后生成动态路由和菜单的【后端动态路由模板】 - 在线预览 - 使用文档(更新中) -- userName:super_admin / visitor -- password:any / any +- userName:goku / visitor +- password:trunks / any 如果这个模板或模板中的代码段能够在开发中帮助到你,请在右上角star一下,非常感谢~ If the template can help you in your work, please give a ⭐️ for motivation From c202092ede9c6f1314aa961b65b26004bbe04455 Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Mon, 25 May 2020 16:13:41 +0800 Subject: [PATCH 094/164] =?UTF-8?q?iview=E7=89=88=E6=9C=AC=E6=9B=B4?= =?UTF-8?q?=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 40 +++++++++++++++++++++++++++++----------- package.json | 2 +- 2 files changed, 30 insertions(+), 12 deletions(-) diff --git a/package-lock.json b/package-lock.json index 667975f68..9aa5df361 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8406,24 +8406,42 @@ "dev": true }, "iview": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/iview/-/iview-3.1.3.tgz", - "integrity": "sha512-ZCYJ8orejCnOkwOU2tVWGYVpXeLW1qzkuMkV+BKMvprYEO936MQHg+f4pcqFY83PX/ybTk3YnURq6/k1VJc5+w==", + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/iview/-/iview-3.5.4.tgz", + "integrity": "sha512-CEDHdAXxpGciMV+m1jdMDs0UVqzk/AaFhCDtSGcKDLidXRMOG2TgCZhtEHhI4mf3lchKEUFO/BcXtHAfBNuy7Q==", "requires": { - "async-validator": "^1.8.2", - "deepmerge": "^2.1.0", - "element-resize-detector": "^1.1.14", + "async-validator": "^1.12.2", + "deepmerge": "^2.2.1", + "element-resize-detector": "^1.2.0", "js-calendar": "^1.2.3", "lodash.throttle": "^4.1.1", - "popper.js": "^1.14.1", + "popper.js": "^1.14.6", "tinycolor2": "^1.4.1", - "v-click-outside-x": "^3.0.0" + "v-click-outside-x": "^4.0.19" }, "dependencies": { + "async-validator": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-1.12.2.tgz", + "integrity": "sha512-57EETfCPFiB7M4QscvQzWSGNsmtkjjzZv318SK1CBlstk+hycV72ocjriMOOM48HjvmoAoJGpJNjC7Z76RlnZA==" + }, "deepmerge": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-2.2.1.tgz", "integrity": "sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==" + }, + "element-resize-detector": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/element-resize-detector/-/element-resize-detector-1.2.1.tgz", + "integrity": "sha512-BdFsPepnQr9fznNPF9nF4vQ457U/ZJXQDSNF1zBe7yaga8v9AdZf3/NElYxFdUh7SitSGt040QygiTo6dtatIw==", + "requires": { + "batch-processor": "1.0.0" + } + }, + "popper.js": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz", + "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==" } } }, @@ -15042,9 +15060,9 @@ "dev": true }, "v-click-outside-x": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/v-click-outside-x/-/v-click-outside-x-3.3.0.tgz", - "integrity": "sha512-NSro9Tz0wTh9K2g+jxRg6Uz+X/EleBA7mU4Usfk9d/UQHfn+zk/AfZ0KHhHqkaOLOZgm9HglvuRElKrwhsWBHA==" + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/v-click-outside-x/-/v-click-outside-x-4.1.0.tgz", + "integrity": "sha512-jhFTHKSMJU031QbVRZxEB57DFCGrY77LPCm8hRXqX/ECXkVWIOvh3V+WAPP4zvn7GVKuSOSwTdXhIzgXf19qwg==" }, "validate-npm-package-license": { "version": "3.0.3", diff --git a/package.json b/package.json index 148a68170..0682e7953 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "dayjs": "^1.7.7", "echarts": "^4.0.4", "html2canvas": "^1.0.0-alpha.12", - "iview": "^3.1.3", + "iview": "^3.5.1", "iview-area": "^1.5.17", "js-cookie": "^2.2.0", "simplemde": "^1.11.2", From 9dff0ec518c48458e03514de1f9526c0b1551df2 Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Mon, 25 May 2020 17:49:14 +0800 Subject: [PATCH 095/164] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/view/authority/user.vue | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/view/authority/user.vue b/src/view/authority/user.vue index fec6024c5..187f969e2 100644 --- a/src/view/authority/user.vue +++ b/src/view/authority/user.vue @@ -395,9 +395,8 @@ export default { this.pageNum * this.pageSize ) .forEach((item, i) => { - if (row.user_id === item.user_id) { + row.user_id === item.user_id && userList.splice((this.pageNum - 1) * this.pageSize + i, 1); - } }); resultCallback(200, "删除成功!", () => { this.getData(); From 4c3ce62feaaac7c8159fcdda09f5bd9e9230102a Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Mon, 25 May 2020 17:51:09 +0800 Subject: [PATCH 096/164] =?UTF-8?q?=E8=A7=92=E8=89=B2=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/view/authority/role.vue | 501 +++++++++++++++++++++++++----------- 1 file changed, 353 insertions(+), 148 deletions(-) diff --git a/src/view/authority/role.vue b/src/view/authority/role.vue index 4a6ca8b33..fd027717f 100644 --- a/src/view/authority/role.vue +++ b/src/view/authority/role.vue @@ -5,17 +5,14 @@
+ @click="insert">新增角色
-
- - + stripe>
- - + -
+ - + v-model.trim="modalDataRole.name" + :disabled="modalDataRoleOrg.name==='super_admin'"> - + + v-model.trim="modalDataRole.title"> - + + v-model.trim="modalDataRole.description"> - - + + + + + +
+ + + +
+ + +
+ +
+
+ -
+
From 8da23369a2406eabcfdc0aa948a889104ecc2a63 Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Mon, 25 May 2020 17:51:49 +0800 Subject: [PATCH 097/164] =?UTF-8?q?mockData=EF=BC=9A=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/mock/role.js | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/mock/role.js b/src/mock/role.js index d4d4e2e01..f11f0b138 100644 --- a/src/mock/role.js +++ b/src/mock/role.js @@ -2,7 +2,7 @@ const userList = [ { user_id: "1", - name: "super_admin", + name: "goku", displayName: "孙悟空", phone: "13888888881", access: ["super_admin", "visitor"], @@ -10,7 +10,7 @@ const userList = [ }, { user_id: "2", - name: "visitor", + name: "trunks", displayName: "特兰克斯", phone: "13888888882", access: ["visitor"], @@ -41,7 +41,8 @@ const roleList = [ "roleManage", "menuManage" ], - id: "1" + id: "1", + description: "超级管理员,默认拥有全部功能,不可删除" }, { name: "visitor", @@ -57,7 +58,8 @@ const roleList = [ "screen", "singleMenu" ], - id: "2" + id: "2", + description: "访客,拥有部分功能,可删除" } ]; @@ -249,7 +251,7 @@ const menuList = [ path: "authority/user", sort: 10, parentId: "authority", - ico: "", + ico: "ios-navigate", isOutSide: false, showLevel: 2 }, @@ -261,7 +263,7 @@ const menuList = [ path: "authority/role", sort: 8, parentId: "authority", - ico: "", + ico: "ios-navigate", isOutSide: false, showLevel: 2 }, @@ -273,7 +275,7 @@ const menuList = [ path: "authority/menu", sort: 6, parentId: "authority", - ico: "", + ico: "ios-navigate", isOutSide: false, showLevel: 2 } From 07a910724dd8a674ca5601b4c6761fa7b659adc5 Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Mon, 25 May 2020 17:52:05 +0800 Subject: [PATCH 098/164] =?UTF-8?q?api=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/data.js | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/api/data.js b/src/api/data.js index ddd1f5442..88993b68f 100644 --- a/src/api/data.js +++ b/src/api/data.js @@ -41,10 +41,5 @@ export const getRoleList = () => { // 获取菜单数据 export const getAllMenus = token => { - if (token !== undefined) { - return axios.request({ - url: "get_all_menus", - method: "get" - }); - } + return axios.request({ url: "get_all_menus", method: "get" }); }; From f51cf252a3eaccccdd3420d8b64bc179177494b5 Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Mon, 25 May 2020 17:53:42 +0800 Subject: [PATCH 099/164] =?UTF-8?q?=E9=80=9A=E7=94=A8=E6=96=B9=E6=B3=95?= =?UTF-8?q?=E5=B0=81=E8=A3=85=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/libs/dataHanding.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/libs/dataHanding.js b/src/libs/dataHanding.js index 31ee8a1e2..a01d03d2f 100644 --- a/src/libs/dataHanding.js +++ b/src/libs/dataHanding.js @@ -58,7 +58,7 @@ export function listToCascader(array) { } /** - * 将菜单接口数据转换成iview树形数据结构(2层) + * 将菜单接口数据转换成iview树形数据结构(多层) * => * @param {Array} array 数组 */ @@ -67,7 +67,7 @@ export const computedMenuData = array => { // 外层节点 array.forEach(menu => { - menu.parenetId === "root" && + menu.parentId === "root" && treeData.push({ id: menu.id, name: menu.name, @@ -75,7 +75,7 @@ export const computedMenuData = array => { url: menu.url, path: menu.path, sort: menu.sort, - parenetId: menu.parenetId, + parentId: menu.parentId, parenetPath: menu.parenetPath, showLevel: menu.showLevel, isOutSide: menu.isOutSide, @@ -90,7 +90,7 @@ export const computedMenuData = array => { const handleRecurrence = recurrenceData => { recurrenceData.forEach(data => { array.forEach(menu => { - data.id === menu.parenetId && + data.id === menu.parentId && data.children.push({ id: menu.id, name: menu.name, @@ -98,7 +98,7 @@ export const computedMenuData = array => { url: menu.url, path: menu.path, sort: menu.sort, - parenetId: menu.parenetId, + parentId: menu.parentId, parenetPath: menu.parenetPath, showLevel: menu.showLevel, isOutSide: menu.isOutSide, From ace3cf0d3627f76ad5476df9c5e3d36fe42b50af Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Tue, 26 May 2020 10:43:48 +0800 Subject: [PATCH 100/164] =?UTF-8?q?=E7=BB=84=E4=BB=B6=EF=BC=9Aicon?= =?UTF-8?q?=E9=80=89=E6=8B=A9=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/icons/icon-choose.vue | 229 +++++ src/components/icons/icon.js | 1391 ++++++++++++++++++++++++++ 2 files changed, 1620 insertions(+) create mode 100644 src/components/icons/icon-choose.vue create mode 100644 src/components/icons/icon.js diff --git a/src/components/icons/icon-choose.vue b/src/components/icons/icon-choose.vue new file mode 100644 index 000000000..db2544b3f --- /dev/null +++ b/src/components/icons/icon-choose.vue @@ -0,0 +1,229 @@ + + + + + diff --git a/src/components/icons/icon.js b/src/components/icons/icon.js new file mode 100644 index 000000000..6355a1cc1 --- /dev/null +++ b/src/components/icons/icon.js @@ -0,0 +1,1391 @@ +export const iconList = [ + { + icons: ["ios-add-circle-outline"], + tags: ["circle"] + }, + { + icons: ["ios-add-circle", "md-add-circle"], + tags: ["add", "circle"] + }, + { + icons: ["ios-add", "md-add"], + tags: ["add", "include", "invite", "plus"] + }, + { + icons: ["ios-alarm", "md-alarm"], + tags: ["alarm"] + }, + { + icons: ["ios-albums", "md-albums"], + tags: ["albums", "boxes", "slides", "square"] + }, + { + icons: ["ios-alert", "md-alert"], + tags: ["!", "alert", "attention", "exclamation", "notice", "warning"] + }, + { + icons: ["ios-american-football", "md-american-football"], + tags: ["american", "football"] + }, + { + icons: ["ios-analytics", "md-analytics"], + tags: ["analytics", "data", "metrics", "track"] + }, + { + icons: ["ios-aperture", "md-aperture"], + tags: ["aperture", "dark", "images", "levels", "light", "settings"] + }, + { + icons: ["ios-apps", "md-apps"], + tags: ["apps", "applications"] + }, + { + icons: ["ios-appstore", "md-appstore"], + tags: ["appstore", "store"] + }, + { + icons: ["ios-archive", "md-archive"], + tags: ["archive", "email"] + }, + { + icons: ["ios-arrow-back", "md-arrow-back"], + tags: ["arrow", "back", "chevron", "navigation"] + }, + { + icons: ["ios-arrow-down", "md-arrow-down"], + tags: ["arrow", "chevron", "down"] + }, + { + icons: ["ios-arrow-dropdown-circle", "md-arrow-dropdown-circle"], + tags: ["arrow", "circle", "dropdown"] + }, + { + icons: ["ios-arrow-dropdown", "md-arrow-dropdown"], + tags: ["arrow", "dropdown"] + }, + { + icons: ["ios-arrow-dropleft-circle", "md-arrow-dropleft-circle"], + tags: ["arrow", "circle", "dropleft"] + }, + { + icons: ["ios-arrow-dropleft", "md-arrow-dropleft"], + tags: ["arrow", "dropleft"] + }, + { + icons: ["ios-arrow-dropright-circle", "md-arrow-dropright-circle"], + tags: ["arrow", "circle", "dropright"] + }, + { + icons: ["ios-arrow-dropright", "md-arrow-dropright"], + tags: ["arrow", "dropright"] + }, + { + icons: ["ios-arrow-dropup-circle", "md-arrow-dropup-circle"], + tags: ["arrow", "circle", "dropup"] + }, + { + icons: ["ios-arrow-dropup", "md-arrow-dropup"], + tags: ["arrow", "dropup"] + }, + { + icons: ["ios-arrow-forward", "md-arrow-forward"], + tags: ["arrow", "chevron", "forward", "navigation"] + }, + { + icons: ["ios-arrow-round-back", "md-arrow-round-back"], + tags: ["arrow", "back", "round"] + }, + { + icons: ["ios-arrow-round-down", "md-arrow-round-down"], + tags: ["arrow", "down", "round"] + }, + { + icons: ["ios-arrow-round-forward", "md-arrow-round-forward"], + tags: ["arrow", "forward", "round"] + }, + { + icons: ["ios-arrow-round-up", "md-arrow-round-up"], + tags: ["arrow", "round", "up"] + }, + { + icons: ["ios-arrow-up", "md-arrow-up"], + tags: ["arrow", "chevron", "up"] + }, + { + icons: ["ios-at", "md-at"], + tags: ["@", "at"] + }, + { + icons: ["ios-attach", "md-attach"], + tags: ["attach"] + }, + { + icons: ["ios-backspace", "md-backspace"], + tags: ["backspace"] + }, + { + icons: ["ios-barcode", "md-barcode"], + tags: ["barcode", "camera", "reader"] + }, + { + icons: ["ios-baseball", "md-baseball"], + tags: ["baseball"] + }, + { + icons: ["ios-basket", "md-basket"], + tags: ["basket"] + }, + { + icons: ["ios-basketball", "md-basketball"], + tags: ["basketball"] + }, + { + icons: ["ios-battery-charging", "md-battery-charging"], + tags: ["battery", "charging"] + }, + { + icons: ["ios-battery-dead", "md-battery-dead"], + tags: ["battery", "dead"] + }, + { + icons: ["ios-battery-full", "md-battery-full"], + tags: ["battery", "full"] + }, + { + icons: ["ios-beaker", "md-beaker"], + tags: ["beaker", "flask", "mixture", "potion"] + }, + { + icons: ["ios-beer", "md-beer"], + tags: ["beer", "drink", "eat", "food"] + }, + { + icons: ["ios-bicycle", "md-bicycle"], + tags: ["bicycle"] + }, + { + icons: ["ios-bluetooth", "md-bluetooth"], + tags: ["bluetooth", "cloud", "connection"] + }, + { + icons: ["ios-boat", "md-boat"], + tags: ["boat"] + }, + { + icons: ["ios-body", "md-body"], + tags: ["body"] + }, + { + icons: ["ios-bonfire", "md-bonfire"], + tags: ["bonfire", "heat", "hot"] + }, + { + icons: ["ios-book", "md-book"], + tags: ["book", "read"] + }, + { + icons: ["ios-bookmark", "md-bookmark"], + tags: ["bookmark", "favorite", "save", "tag"] + }, + { + icons: ["ios-bookmarks", "md-bookmarks"], + tags: ["bookmarks", "favorite"] + }, + { + icons: ["ios-bowtie", "md-bowtie"], + tags: ["bowtie"] + }, + { + icons: ["ios-briefcase", "md-briefcase"], + tags: ["briefcase", "folder", "organize"] + }, + { + icons: ["ios-browsers", "md-browsers"], + tags: ["browsers", "square"] + }, + { + icons: ["ios-brush", "md-brush"], + tags: ["brush"] + }, + { + icons: ["ios-bug", "md-bug"], + tags: ["bug", "develop", "error", "hacker", "program"] + }, + { + icons: ["ios-build", "md-build"], + tags: ["build"] + }, + { + icons: ["ios-bulb", "md-bulb"], + tags: ["bulb"] + }, + { + icons: ["ios-bus", "md-bus"], + tags: ["bus"] + }, + { + icons: ["ios-cafe", "md-cafe"], + tags: ["cafe"] + }, + { + icons: ["ios-calculator", "md-calculator"], + tags: ["arithmatic", "calculator", "math"] + }, + { + icons: ["ios-calendar", "md-calendar"], + tags: ["calendar", "date", "month", "week"] + }, + { + icons: ["ios-call", "md-call"], + tags: ["call", "telephone"] + }, + { + icons: ["ios-camera", "md-camera"], + tags: ["camera", "image", "photo"] + }, + { + icons: ["ios-car", "md-car"], + tags: ["car"] + }, + { + icons: ["ios-card", "md-card"], + tags: [ + "$", + "card", + "cash", + "credit", + "debit", + "dollars", + "money", + "price", + "shopping" + ] + }, + { + icons: ["ios-cart", "md-cart"], + tags: ["cart"] + }, + { + icons: ["ios-cash", "md-cash"], + tags: [ + "$", + "cash", + "credit", + "debit", + "dollars", + "money", + "price", + "shopping" + ] + }, + { + icons: ["ios-chatboxes", "md-chatboxes"], + tags: ["chatboxes", "talk"] + }, + { + icons: ["ios-chatbubbles", "md-chatbubbles"], + tags: ["chatbubbles", "talk"] + }, + { + icons: ["ios-checkbox-outline", "md-checkbox-outline"], + tags: ["checkbox"] + }, + { + icons: ["ios-checkbox", "md-checkbox"], + tags: ["checkbox"] + }, + { + icons: ["ios-checkmark-circle-outline", "md-checkmark-circle-outline"], + tags: ["checkmark"] + }, + { + icons: ["ios-checkmark-circle", "md-checkmark-circle"], + tags: ["checkmark", "circle"] + }, + { + icons: ["ios-checkmark", "md-checkmark"], + tags: ["checkmark"] + }, + { + icons: ["ios-clipboard", "md-clipboard"], + tags: ["clipboard", "write"] + }, + { + icons: ["ios-clock", "md-clock"], + tags: ["clock", "time"] + }, + { + icons: ["ios-close-circle-outline"], + tags: ["close", "cicle"] + }, + { + icons: ["ios-close-circle", "md-close-circle"], + tags: ["circle", "close"] + }, + { + icons: ["ios-close", "md-close"], + tags: ["close", "delete", "remove"] + }, + { + icons: ["ios-cloud-circle", "md-cloud-circle"], + tags: ["circle", "cloud"] + }, + { + icons: ["ios-cloud-done", "md-cloud-done"], + tags: ["cloud", "done"] + }, + { + icons: ["ios-cloud-download", "md-cloud-download"], + tags: ["cloud", "download", "storage"] + }, + { + icons: ["ios-cloud-outline", "md-cloud-outline"], + tags: ["cloud"] + }, + { + icons: ["ios-cloud-upload", "md-cloud-upload"], + tags: ["cloud", "storage", "upload"] + }, + { + icons: ["ios-cloud", "md-cloud"], + tags: ["cloud", "storage", "weather", "whether"] + }, + { + icons: ["ios-cloudy-night", "md-cloudy-night"], + tags: ["cloudy", "night", "overcast", "weather", "whether"] + }, + { + icons: ["ios-cloudy", "md-cloudy"], + tags: ["cloudy", "overcast", "weather", "whether"] + }, + { + icons: ["ios-code-download", "md-code-download"], + tags: ["code", "develop", "download", "hacker", "program"] + }, + { + icons: ["ios-code-working", "md-code-working"], + tags: ["code", "develop", "hacker", "program", "working"] + }, + { + icons: ["ios-code", "md-code"], + tags: ["code", "develop", "hacker", "program"] + }, + { + icons: ["ios-cog", "md-cog"], + tags: ["cog", "gear", "options", "settings"] + }, + { + icons: ["ios-color-fill", "md-color-fill"], + tags: ["color", "fill"] + }, + { + icons: ["ios-color-filter", "md-color-filter"], + tags: ["color", "filter"] + }, + { + icons: ["ios-color-palette", "md-color-palette"], + tags: ["color", "palette"] + }, + { + icons: ["ios-color-wand", "md-color-wand"], + tags: ["color", "wand"] + }, + { + icons: ["ios-compass", "md-compass"], + tags: ["compass", "directions", "location", "navigation"] + }, + { + icons: ["ios-construct", "md-construct"], + tags: ["construct"] + }, + { + icons: ["ios-contact", "md-contact"], + tags: ["contact", "people", "users"] + }, + { + icons: ["ios-contacts", "md-contacts"], + tags: ["contacts", "people", "users"] + }, + { + icons: ["ios-contract", "md-contract"], + tags: ["contract"] + }, + { + icons: ["ios-contrast", "md-contrast"], + tags: ["contrast", "dark", "images", "levels", "light", "settings"] + }, + { + icons: ["ios-copy", "md-copy"], + tags: ["copy", "duplicate", "paper"] + }, + { + icons: ["ios-create", "md-create"], + tags: ["create"] + }, + { + icons: ["ios-crop", "md-crop"], + tags: ["crop"] + }, + { + icons: ["ios-cube", "md-cube"], + tags: ["box", "container", "cube", "square"] + }, + { + icons: ["ios-cut", "md-cut"], + tags: ["cut"] + }, + { + icons: ["ios-desktop", "md-desktop"], + tags: ["desktop"] + }, + { + icons: ["ios-disc", "md-disc"], + tags: ["cd", "disc", "vinyl"] + }, + { + icons: ["ios-document", "md-document"], + tags: ["document", "file", "paper"] + }, + { + icons: ["ios-done-all", "md-done-all"], + tags: ["all", "done"] + }, + { + icons: ["ios-download", "md-download"], + tags: ["download", "export"] + }, + { + icons: ["ios-easel", "md-easel"], + tags: ["easel"] + }, + { + icons: ["ios-egg", "md-egg"], + tags: ["baby", "bird", "birth", "egg", "twitter"] + }, + { + icons: ["ios-exit", "md-exit"], + tags: ["exit"] + }, + { + icons: ["ios-expand", "md-expand"], + tags: ["expand"] + }, + { + icons: ["ios-eye-off", "md-eye-off"], + tags: ["eye", "off"] + }, + { + icons: ["ios-eye", "md-eye"], + tags: ["exposed", "eye", "look", "see", "view"] + }, + { + icons: ["ios-fastforward", "md-fastforward"], + tags: ["fastforward", "jump", "next", "skip"] + }, + { + icons: ["ios-female", "md-female"], + tags: ["dudette", "female", "girl", "lady"] + }, + { + icons: ["ios-filing", "md-filing"], + tags: ["archive", "filing"] + }, + { + icons: ["ios-film", "md-film"], + tags: ["film"] + }, + { + icons: ["ios-finger-print", "md-finger-print"], + tags: ["finger", "print"] + }, + { + icons: ["ios-flag", "md-flag"], + tags: ["favorite", "flag", "marker"] + }, + { + icons: ["ios-flame", "md-flame"], + tags: ["fire", "flame", "heat", "hot"] + }, + { + icons: ["ios-flash", "md-flash"], + tags: ["flash", "lightning", "weather", "whether"] + }, + { + icons: ["ios-flask", "md-flask"], + tags: ["bubbles", "flask", "mixture", "potion"] + }, + { + icons: ["ios-flower", "md-flower"], + tags: ["flower"] + }, + { + icons: ["ios-folder-open", "md-folder-open"], + tags: ["folder", "open"] + }, + { + icons: ["ios-folder", "md-folder"], + tags: ["file", "folder"] + }, + { + icons: ["ios-football", "md-football"], + tags: ["football", "soccer"] + }, + { + icons: ["ios-funnel", "md-funnel"], + tags: ["funnel", "sort"] + }, + { + icons: ["ios-git-branch", "md-git-branch"], + tags: ["branch", "git"] + }, + { + icons: ["ios-git-commit", "md-git-commit"], + tags: ["commit", "git"] + }, + { + icons: ["ios-git-compare", "md-git-compare"], + tags: ["compare", "git"] + }, + { + icons: ["ios-git-merge", "md-git-merge"], + tags: ["git", "merge"] + }, + { + icons: ["ios-git-network", "md-git-network"], + tags: ["git", "network"] + }, + { + icons: ["ios-git-pull-request", "md-git-pull-request"], + tags: ["git", "pull", "request"] + }, + { + icons: ["ios-glasses", "md-glasses"], + tags: ["glasses", "look", "reading", "see", "steve"] + }, + { + icons: ["ios-globe", "md-globe"], + tags: ["globe"] + }, + { + icons: ["ios-grid", "md-grid"], + tags: ["grid", "menu"] + }, + { + icons: ["ios-hammer", "md-hammer"], + tags: ["hammer", "options", "settings", "tools"] + }, + { + icons: ["ios-hand", "md-hand"], + tags: ["hand", "stop"] + }, + { + icons: ["ios-happy", "md-happy"], + tags: ["fun", "good", "happy", "like", "yes"] + }, + { + icons: ["ios-headset", "md-headset"], + tags: ["headset"] + }, + { + icons: ["ios-heart", "md-heart"], + tags: ["heart", "love"] + }, + { + icons: ["ios-help-buoy", "md-help-buoy"], + tags: ["?", "buoy", "help", "question"] + }, + { + icons: ["ios-help-circle", "md-help-circle"], + tags: ["circle", "help"] + }, + { + icons: ["ios-help", "md-help"], + tags: ["?", "help", "information", "question"] + }, + { + icons: ["ios-home", "md-home"], + tags: ["home", "house"] + }, + { + icons: ["ios-ice-cream", "md-ice-cream"], + tags: ["cream", "ice"] + }, + { + icons: ["ios-image", "md-image"], + tags: ["camera", "image", "photo"] + }, + { + icons: ["ios-images", "md-images"], + tags: ["images", "photo"] + }, + { + icons: ["ios-infinite", "md-infinite"], + tags: ["forever", "infinite", "loop"] + }, + { + icons: ["ios-information-circle", "md-information-circle"], + tags: ["circle", "information"] + }, + { + icons: ["ios-information", "md-information"], + tags: ["help", "information", "knowledge"] + }, + { + icons: ["ios-jet", "md-jet"], + tags: ["fly", "jet", "plane"] + }, + { + icons: ["ios-key", "md-key"], + tags: ["access", "key"] + }, + { + icons: ["ios-keypad", "md-keypad"], + tags: ["keypad", "type"] + }, + { + icons: ["ios-laptop", "md-laptop"], + tags: ["apple", "laptop", "macbook", "osx"] + }, + { + icons: ["ios-leaf", "md-leaf"], + tags: ["green", "leaf", "nature", "plant", "recycle"] + }, + { + icons: ["ios-link", "md-link"], + tags: ["anchor", "attach", "chain", "href", "link"] + }, + { + icons: ["ios-list-box", "md-list-box"], + tags: ["box", "list"] + }, + { + icons: ["ios-list", "md-list"], + tags: ["list"] + }, + { + icons: ["ios-locate", "md-locate"], + tags: ["gps", "locate", "maps", "navigate"] + }, + { + icons: ["ios-lock", "md-lock"], + tags: ["lock"] + }, + { + icons: ["ios-log-in", "md-log-in"], + tags: ["in", "log", "signin"] + }, + { + icons: ["ios-log-out", "md-log-out"], + tags: ["log", "out", "signout"] + }, + { + icons: ["ios-magnet", "md-magnet"], + tags: ["attraction", "magnet", "sticky"] + }, + { + icons: ["ios-mail-open", "md-mail-open"], + tags: ["mail", "open"] + }, + { + icons: ["ios-mail", "md-mail"], + tags: ["email", "mail"] + }, + { + icons: ["ios-male", "md-male"], + tags: ["boy", "dude", "guy", "male", "male"] + }, + { + icons: ["ios-man", "md-man"], + tags: ["boy", "dude", "guy", "male", "man"] + }, + { + icons: ["ios-map", "md-map"], + tags: ["gps", "map", "navigation", "pin"] + }, + { + icons: ["ios-medal", "md-medal"], + tags: ["medal"] + }, + { + icons: ["ios-medical", "md-medical"], + tags: ["medical"] + }, + { + icons: ["ios-medkit", "md-medkit"], + tags: ["case", "disease", "firstaid", "health", "medkit", "sick"] + }, + { + icons: ["ios-megaphone", "md-megaphone"], + tags: ["megaphone"] + }, + { + icons: ["ios-menu", "md-menu"], + tags: ["menu"] + }, + { + icons: ["ios-mic-off", "md-mic-off"], + tags: ["mic", "noise", "off", "sound", "speaker", "talk"] + }, + { + icons: ["ios-mic", "md-mic"], + tags: ["mic", "noise", "sound", "speaker", "talk"] + }, + { + icons: ["ios-microphone", "md-microphone"], + tags: ["microphone", "music", "noise", "recorde", "sound", "speak"] + }, + { + icons: ["ios-moon", "md-moon"], + tags: ["dark", "moon", "night", "sky"] + }, + { + icons: ["ios-more", "md-more"], + tags: ["more", "options"] + }, + { + icons: ["ios-move", "md-move"], + tags: ["move"] + }, + { + icons: ["ios-musical-note", "md-musical-note"], + tags: ["listening", "musical", "noise", "note", "play", "sound"] + }, + { + icons: ["ios-musical-notes", "md-musical-notes"], + tags: ["listening", "musical", "noise", "notes", "play", "sound"] + }, + { + icons: ["ios-navigate", "md-navigate"], + tags: ["gps", "location", "map", "navigate", "pin"] + }, + { + icons: ["ios-notifications-off", "md-notifications-off"], + tags: ["notifications", "off"] + }, + { + icons: ["ios-notifications-outline", "md-notifications-outline"], + tags: ["notifications"] + }, + { + icons: ["ios-notifications", "md-notifications"], + tags: ["notifications"] + }, + { + icons: ["ios-nuclear", "md-nuclear"], + tags: ["danger", "hazard", "nuclear", "warning"] + }, + { + icons: ["ios-nutrition", "md-nutrition"], + tags: ["nutrition"] + }, + { + icons: ["ios-open", "md-open"], + tags: ["open"] + }, + { + icons: ["ios-options", "md-options"], + tags: ["options"] + }, + { + icons: ["ios-outlet", "md-outlet"], + tags: ["computer", "digital", "electricity", "outlet"] + }, + { + icons: ["ios-paper-plane", "md-paper-plane"], + tags: ["paper", "plane"] + }, + { + icons: ["ios-paper", "md-paper"], + tags: ["feed", "paper", "paper"] + }, + { + icons: ["ios-partly-sunny", "md-partly-sunny"], + tags: ["partly", "sunny"] + }, + { + icons: ["ios-pause", "md-pause"], + tags: ["break", "freeze", "hold", "music", "pause"] + }, + { + icons: ["ios-paw", "md-paw"], + tags: ["paw"] + }, + { + icons: ["ios-people", "md-people"], + tags: ["head", "human", "people", "person", "stalker", "users"] + }, + { + icons: ["ios-person-add", "md-person-add"], + tags: ["add", "head", "human", "member", "new", "person", "staff", "users"] + }, + { + icons: ["ios-person", "md-person"], + tags: ["head", "human", "person", "staff", "users"] + }, + { + icons: ["ios-phone-landscape", "md-phone-landscape"], + tags: ["landscape", "phone"] + }, + { + icons: ["ios-phone-portrait", "md-phone-portrait"], + tags: ["phone", "portrait"] + }, + { + icons: ["ios-photos", "md-photos"], + tags: ["images", "photos", "square", "stills"] + }, + { + icons: ["ios-pie", "md-pie"], + tags: ["cog", "options", "pie", "settings"] + }, + { + icons: ["ios-pin", "md-pin"], + tags: ["gps", "navigation", "pin"] + }, + { + icons: ["ios-pint", "md-pint"], + tags: ["pint"] + }, + { + icons: ["ios-pizza", "md-pizza"], + tags: ["drink", "eat", "food", "pizza"] + }, + { + icons: ["ios-planet", "md-planet"], + tags: ["globe", "home", "nature", "planet", "planet", "space"] + }, + { + icons: ["ios-play", "md-play"], + tags: ["arrow", "music", "play", "right", "watch"] + }, + { + icons: ["ios-podium", "md-podium"], + tags: ["award", "compete", "competition", "lose", "podium", "win"] + }, + { + icons: ["ios-power", "md-power"], + tags: ["off", "on", "power"] + }, + { + icons: ["ios-pricetag", "md-pricetag"], + tags: ["$", "commerce", "items", "money", "pricetag", "shopping"] + }, + { + icons: ["ios-pricetags", "md-pricetags"], + tags: ["$", "commerce", "items", "money", "pricetags", "shopping"] + }, + { + icons: ["ios-print", "md-print"], + tags: ["print"] + }, + { + icons: ["ios-pulse", "md-pulse"], + tags: ["hot", "live", "pulse", "rate"] + }, + { + icons: ["ios-qr-scanner", "md-qr-scanner"], + tags: ["qr", "reader", "scanner"] + }, + { + icons: ["ios-quote", "md-quote"], + tags: ["chat", "quotation", "quote"] + }, + { + icons: ["ios-radio-button-off", "md-radio-button-off"], + tags: ["button", "off", "radio"] + }, + { + icons: ["ios-radio-button-on", "md-radio-button-on"], + tags: ["button", "on", "radio"] + }, + { + icons: ["ios-radio", "md-radio"], + tags: ["radio"] + }, + { + icons: ["ios-rainy", "md-rainy"], + tags: ["cloud", "rainy", "water", "weather", "whether"] + }, + { + icons: ["ios-recording", "md-recording"], + tags: ["film", "recording", "tape", "voicemail"] + }, + { + icons: ["ios-redo", "md-redo"], + tags: ["forward", "redo"] + }, + { + icons: ["ios-refresh-circle", "md-refresh-circle"], + tags: ["circle", "refresh"] + }, + { + icons: ["ios-refresh", "md-refresh"], + tags: ["refresh", "reload", "renew", "reset"] + }, + { + icons: ["ios-remove-circle", "md-remove-circle"], + tags: ["circle", "remove"] + }, + { + icons: ["ios-remove", "md-remove"], + tags: ["minus", "remove", "subtract"] + }, + { + icons: ["ios-reorder", "md-reorder"], + tags: ["reorder"] + }, + { + icons: ["ios-repeat", "md-repeat"], + tags: ["repeat"] + }, + { + icons: ["ios-resize", "md-resize"], + tags: ["resize"] + }, + { + icons: ["ios-restaurant", "md-restaurant"], + tags: ["restaurant"] + }, + { + icons: ["ios-return-left", "md-return-left"], + tags: ["left", "return"] + }, + { + icons: ["ios-return-right", "md-return-right"], + tags: ["return", "right"] + }, + { + icons: ["ios-reverse-camera", "md-reverse-camera"], + tags: ["camera", "picture", "reverse"] + }, + { + icons: ["ios-rewind", "md-rewind"], + tags: ["back", "music", "previous", "rewind"] + }, + { + icons: ["ios-ribbon", "md-ribbon"], + tags: ["ribbon"] + }, + { + icons: ["ios-rose", "md-rose"], + tags: ["rose"] + }, + { + icons: ["ios-sad", "md-sad"], + tags: ["bad", "cry", "no", "sad"] + }, + { + icons: ["ios-school", "md-school"], + tags: ["school"] + }, + { + icons: ["ios-search", "md-search"], + tags: ["magnifyingglass", "search"] + }, + { + icons: ["ios-send", "md-send"], + tags: ["email", "paper", "send"] + }, + { + icons: ["ios-settings", "md-settings"], + tags: ["options", "settings"] + }, + { + icons: ["ios-share-alt", "md-share-alt"], + tags: ["alt", "share"] + }, + { + icons: ["ios-share", "md-share"], + tags: ["share"] + }, + { + icons: ["ios-shirt", "md-shirt"], + tags: ["shirt"] + }, + { + icons: ["ios-shuffle", "md-shuffle"], + tags: ["random", "shuffle"] + }, + { + icons: ["ios-skip-backward", "md-skip-backward"], + tags: ["backward", "music", "previous", "skip"] + }, + { + icons: ["ios-skip-forward", "md-skip-forward"], + tags: ["forward", "music", "next", "skip"] + }, + { + icons: ["ios-snow", "md-snow"], + tags: ["snow"] + }, + { + icons: ["ios-speedometer", "md-speedometer"], + tags: ["drive", "level", "speed", "speedometer"] + }, + { + icons: ["ios-square-outline", "md-square-outline"], + tags: ["square"] + }, + { + icons: ["ios-square", "md-square"], + tags: ["square"] + }, + { + icons: ["ios-star-half", "md-star-half"], + tags: ["favorite", "half", "rate", "star"] + }, + { + icons: ["ios-star-outline", "md-star-outline"], + tags: ["star"] + }, + { + icons: ["ios-star", "md-star"], + tags: ["favorite", "star"] + }, + { + icons: ["ios-stats", "md-stats"], + tags: ["stats"] + }, + { + icons: ["ios-stopwatch", "md-stopwatch"], + tags: ["stopwatch"] + }, + { + icons: ["ios-subway", "md-subway"], + tags: ["subway"] + }, + { + icons: ["ios-sunny", "md-sunny"], + tags: ["light", "sky", "sunny", "weather", "whether"] + }, + { + icons: ["ios-swap", "md-swap"], + tags: ["swap"] + }, + { + icons: ["ios-switch", "md-switch"], + tags: ["switch"] + }, + { + icons: ["ios-sync", "md-sync"], + tags: ["sync"] + }, + { + icons: ["ios-tablet-landscape", "md-tablet-landscape"], + tags: ["landscape", "tablet"] + }, + { + icons: ["ios-tablet-portrait", "md-tablet-portrait"], + tags: ["portrait", "tablet"] + }, + { + icons: ["ios-tennisball", "md-tennisball"], + tags: ["tennisball"] + }, + { + icons: ["ios-text", "md-text"], + tags: ["text"] + }, + { + icons: ["ios-thermometer", "md-thermometer"], + tags: ["cold", "heat", "hot", "mercury", "temperature", "thermometer"] + }, + { + icons: ["ios-thumbs-down", "md-thumbs-down"], + tags: ["down", "thumbs"] + }, + { + icons: ["ios-thumbs-up", "md-thumbs-up"], + tags: ["thumbs", "up"] + }, + { + icons: ["ios-thunderstorm", "md-thunderstorm"], + tags: [ + "cloudy", + "lightning", + "overcast", + "rain", + "sky", + "storm", + "thunderstorm", + "weather", + "whether" + ] + }, + { + icons: ["ios-time", "md-time"], + tags: ["clock", "hour", "minute", "second", "time", "watch"] + }, + { + icons: ["ios-timer", "md-timer"], + tags: ["clock", "timer"] + }, + { + icons: ["ios-train", "md-train"], + tags: ["train"] + }, + { + icons: ["ios-transgender", "md-transgender"], + tags: ["transgender"] + }, + { + icons: ["ios-trash", "md-trash"], + tags: ["close", "delete", "remove", "trash"] + }, + { + icons: ["ios-trending-down", "md-trending-down"], + tags: ["down", "trending"] + }, + { + icons: ["ios-trending-up", "md-trending-up"], + tags: ["trending", "up"] + }, + { + icons: ["ios-trophy", "md-trophy"], + tags: ["award", "compete", "competition", "lose", "trophy", "win"] + }, + { + icons: ["ios-umbrella", "md-umbrella"], + tags: ["dry", "rain", "shelter", "umbrella", "wet"] + }, + { + icons: ["ios-undo", "md-undo"], + tags: ["reply", "undo"] + }, + { + icons: ["ios-unlock", "md-unlock"], + tags: ["unlock"] + }, + { + icons: ["ios-videocam", "md-videocam"], + tags: ["camera", "film", "movie", "videocam"] + }, + { + icons: ["ios-volume-mute", "md-volume-mute"], + tags: ["mute", "sound", "volume"] + }, + { + icons: ["ios-volume-off", "md-volume-off"], + tags: ["off", "volume"] + }, + { + icons: ["ios-walk", "md-walk"], + tags: ["walk"] + }, + { + icons: ["ios-warning", "md-warning"], + tags: ["warning"] + }, + { + icons: ["ios-watch", "md-watch"], + tags: ["watch"] + }, + { + icons: ["ios-water", "md-water"], + tags: ["water"] + }, + { + icons: ["ios-wifi", "md-wifi"], + tags: ["bars", "connection", "internet", "wifi"] + }, + { + icons: ["ios-wine", "md-wine"], + tags: ["wine"] + }, + { + icons: ["ios-woman", "md-woman"], + tags: ["dudette", "female", "girl", "lady", "woman"] + }, + { + icons: ["logo-android"], + tags: ["android"] + }, + { + icons: ["logo-angular"], + tags: ["angular"] + }, + { + icons: ["logo-apple"], + tags: ["apple"] + }, + { + icons: ["logo-bitcoin"], + tags: ["bitcoin"] + }, + { + icons: ["logo-buffer"], + tags: ["buffer"] + }, + { + icons: ["logo-chrome"], + tags: ["chrome"] + }, + { + icons: ["logo-codepen"], + tags: ["codepen"] + }, + { + icons: ["logo-css3"], + tags: ["css3"] + }, + { + icons: ["logo-designernews"], + tags: ["designernews"] + }, + { + icons: ["logo-dribbble"], + tags: ["dribbble"] + }, + { + icons: ["logo-dropbox"], + tags: ["dropbox"] + }, + { + icons: ["logo-euro"], + tags: ["euro"] + }, + { + icons: ["logo-facebook"], + tags: ["facebook"] + }, + { + icons: ["logo-foursquare"], + tags: ["foursquare"] + }, + { + icons: ["logo-freebsd-devil"], + tags: ["freebsd-devil"] + }, + { + icons: ["logo-github"], + tags: ["github"] + }, + { + icons: ["logo-google"], + tags: ["google"] + }, + { + icons: ["logo-googleplus"], + tags: ["googleplus"] + }, + { + icons: ["logo-hackernews"], + tags: ["hackernews"] + }, + { + icons: ["logo-html5"], + tags: ["html5"] + }, + { + icons: ["logo-instagram"], + tags: ["instagram"] + }, + { + icons: ["logo-javascript"], + tags: ["javascript"] + }, + { + icons: ["logo-linkedin"], + tags: ["linkedin"] + }, + { + icons: ["logo-markdown"], + tags: ["markdown"] + }, + { + icons: ["logo-nodejs"], + tags: ["nodejs"] + }, + { + icons: ["logo-octocat"], + tags: ["octocat"] + }, + { + icons: ["logo-pinterest"], + tags: ["pinterest"] + }, + { + icons: ["logo-playstation"], + tags: ["playstation"] + }, + { + icons: ["logo-python"], + tags: ["python"] + }, + { + icons: ["logo-reddit"], + tags: ["reddit"] + }, + { + icons: ["logo-rss"], + tags: ["rss"] + }, + { + icons: ["logo-sass"], + tags: ["sass"] + }, + { + icons: ["logo-skype"], + tags: ["skype"] + }, + { + icons: ["logo-snapchat"], + tags: ["snapchat"] + }, + { + icons: ["logo-steam"], + tags: ["steam"] + }, + { + icons: ["logo-tumblr"], + tags: ["tumblr"] + }, + { + icons: ["logo-tux"], + tags: ["tux"] + }, + { + icons: ["logo-twitch"], + tags: ["twitch"] + }, + { + icons: ["logo-twitter"], + tags: ["twitter"] + }, + { + icons: ["logo-usd"], + tags: ["usd"] + }, + { + icons: ["logo-vimeo"], + tags: ["vimeo"] + }, + { + icons: ["logo-whatsapp"], + tags: ["whatsapp"] + }, + { + icons: ["logo-windows"], + tags: ["windows"] + }, + { + icons: ["logo-wordpress"], + tags: ["wordpress"] + }, + { + icons: ["logo-xbox"], + tags: ["xbox"] + }, + { + icons: ["logo-yahoo"], + tags: ["yahoo"] + }, + { + icons: ["logo-yen"], + tags: ["yen"] + }, + { + icons: ["logo-youtube"], + tags: ["youtube"] + } +]; From 65171f2a19dcf95ab7de6fb2adfa9e6fba24f0e6 Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Tue, 26 May 2020 18:10:31 +0800 Subject: [PATCH 101/164] =?UTF-8?q?=E5=9B=BE=E6=A0=87=E9=80=89=E6=8B=A9?= =?UTF-8?q?=E7=BB=84=E4=BB=B6=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/icons/icon-choose.vue | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/components/icons/icon-choose.vue b/src/components/icons/icon-choose.vue index db2544b3f..0800bd57b 100644 --- a/src/components/icons/icon-choose.vue +++ b/src/components/icons/icon-choose.vue @@ -7,7 +7,7 @@ @on-change="handleChange" :placeholder="placeholder" :size="size" - :disabled="disabled" + :disabled="true" :readonly="readonly" :maxlength="maxlength" :icon="currentValue" /> @@ -21,6 +21,7 @@ input框 和 button 的 currentValue值 也更新 setCurrentValue(value) { this.currentValue = value; + }, + // 每次重新打开modal时,清空上次的搜索内容,并搜索框失去焦点 + iconModalVisibleChange(visible) { + if (visible === true) { + this.key = ""; + this.getData(this.key); + this.handleBlur(); + } } }, watch: { From e6a645ec23e94b36a54df80dafd8dac7ba27dfaa Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Tue, 26 May 2020 18:11:25 +0800 Subject: [PATCH 102/164] =?UTF-8?q?=E9=80=9A=E7=94=A8=E6=96=B9=E6=B3=95?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=EF=BC=9A=E8=8F=9C=E5=8D=95=E8=BD=AC=E5=8C=96?= =?UTF-8?q?=E6=95=B0=E7=BB=84=E6=97=B6=EF=BC=8C=E5=8E=BB=E6=8E=89=E4=B8=80?= =?UTF-8?q?=E4=BA=9B=E5=86=97=E4=BD=99=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/libs/dataHanding.js | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/src/libs/dataHanding.js b/src/libs/dataHanding.js index a01d03d2f..d9d9a03f8 100644 --- a/src/libs/dataHanding.js +++ b/src/libs/dataHanding.js @@ -76,12 +76,10 @@ export const computedMenuData = array => { path: menu.path, sort: menu.sort, parentId: menu.parentId, - parenetPath: menu.parenetPath, - showLevel: menu.showLevel, + ico: menu.ico, isOutSide: menu.isOutSide, - status: menu.status, + showLevel: menu.showLevel, description: menu.description, - ico: menu.ico, children: [] }); }); @@ -99,12 +97,10 @@ export const computedMenuData = array => { path: menu.path, sort: menu.sort, parentId: menu.parentId, - parenetPath: menu.parenetPath, - showLevel: menu.showLevel, + ico: menu.ico, isOutSide: menu.isOutSide, - status: menu.status, + showLevel: menu.showLevel, description: menu.description, - ico: menu.ico, children: [] }); }); From a93e2d63e36c8caa629108bede0a3dd9de00cea6 Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Wed, 27 May 2020 17:50:41 +0800 Subject: [PATCH 103/164] =?UTF-8?q?table=E8=BF=BD=E5=8A=A0=E6=A0=87?= =?UTF-8?q?=E8=AF=86=EF=BC=9B=E8=BF=BD=E5=8A=A0=E6=96=B0=E5=A2=9E=E6=96=B9?= =?UTF-8?q?=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/view/authority/role.vue | 79 +++++++++++++++++-------------------- 1 file changed, 37 insertions(+), 42 deletions(-) diff --git a/src/view/authority/role.vue b/src/view/authority/role.vue index fd027717f..1180c9ca2 100644 --- a/src/view/authority/role.vue +++ b/src/view/authority/role.vue @@ -138,6 +138,12 @@ export default { tableDataOrg: [], // 原始数据 tableData: [], // 处理后的当页数据 tableColumns: [ + { + title: "标识", + key: "name", + align: "center", + minWidth: 120 + }, { title: "名称", key: "title", @@ -334,7 +340,7 @@ export default { methods: { // 获取菜单数据 async getMenuData() { - // 未处理的menu数据 -> 非isMock时功能列表筛选用 + // 未处理的menu数据 -> 功能列表筛选用 this.menuListNotComputed = (await getAllMenus()).data.data || []; // 设置menuList的副本,每次关联时以副本为基准清空已选项 this.menuListOrg = computedMenuData(this.menuListNotComputed); @@ -406,56 +412,45 @@ export default { this.buttonLoading = true; switch (this.modalDataRoleType) { case "insert": - if (!this.isMock) { - /* 接口数据 */ - const result = (await addRole(this.modalDataRole)).data.status; - resultCallback( - result, - "添加成功!", - () => { - this.modalShowRole = false; - this.getData(); - }, - () => { - this.buttonLoading = false; - } - ); + if ( + this.tableDataOrg.some( + item => item.name === this.modalDataRole.name + ) || + this.tableDataOrg.some( + item => item.title === this.modalDataRole.title + ) + ) { + this.$Message.error("角色标识或名称已存在!"); + this.buttonLoading = false; } else { - /* mock数据 */ - if ( - this.tableDataOrg.some( - item => item.name === this.modalDataRole.name - ) - ) { - this.$Message.error("该角色已存在!"); + // 生成角色id,不能与现有的id重复 + var id = "1"; + this.tableDataOrg.forEach(item => { + id === item.id && (id = (parseInt(id) + 1).toString()); + }); + this.modalDataRole.id = id; + this.modalDataRole.menus = []; + this.modalDataRole.users = []; + roleList.push(JSON.parse(JSON.stringify(this.modalDataRole))); + resultCallback(200, "添加成功!", () => { + this.getData(); this.buttonLoading = false; - } else { - var id = "1"; - this.tableDataOrg.forEach(item => { - id === item.id && (id = (parseInt(id) + 1).toString()); - }); - this.modalDataRole.id = id; // 生成角色id,不能与现有的id重复 - this.modalDataRole.menus = []; - this.modalDataRole.users = []; - this.tableDataOrg.push( - JSON.parse(JSON.stringify(this.modalDataRole)) - ); - resultCallback(200, "添加成功!", () => { - this.refreshData(); - this.buttonLoading = false; - this.modalShowRole = false; - }); - } + this.modalShowRole = false; + }); } break; case "edit": if ( - this.tableDataOrg.some( + (this.tableDataOrg.some( item => item.name === this.modalDataRole.name ) && - this.modalDataRole.name !== this.modalDataRoleOrg.name + this.modalDataRole.name !== this.modalDataRoleOrg.name) || + (this.tableDataOrg.some( + item => item.title === this.modalDataRole.title + ) && + this.modalDataRole.title !== this.modalDataRoleOrg.title) ) { - this.$Message.error("该角色已存在!"); + this.$Message.error("角色标识或名称已存在!"); this.buttonLoading = false; } else { // 1.在角色列表更新 From 7284d03cb4b57b6b5db18f1799e4ffd06f93c0c2 Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Wed, 27 May 2020 17:51:03 +0800 Subject: [PATCH 104/164] =?UTF-8?q?=E8=BF=BD=E5=8A=A0=E6=96=B9=E6=B3=95?= =?UTF-8?q?=EF=BC=9A=E9=81=8D=E5=8E=86routes=E8=B7=AF=E7=94=B1=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=EF=BC=8C=E6=89=8B=E5=8A=A8=E5=BE=80router.options.rou?= =?UTF-8?q?tes=E9=87=8C=E6=B7=BB=E5=8A=A0=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/libs/router-util.js | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/src/libs/router-util.js b/src/libs/router-util.js index 47e76fda5..5f63f2c4f 100644 --- a/src/libs/router-util.js +++ b/src/libs/router-util.js @@ -220,3 +220,37 @@ export const filterAsyncRouter = asyncRouterMap => { // console.log(accessedRouters); return accessedRouters; }; + +// @函数: 遍历routes路由数据,手动往router.options.routes里添加数据 +export const routerAddHandle = (routes, router) => { + // 遍历routes + routes.forEach(_route => { + // 比对router.options.routes -> 最外层有没添加的直接添加 + if (!router.options.routes.some(_router => _router.path === _route.path)) { + router.options.routes.push(_route); + } + + // 内层路由递归添加 + const routerChildAddHandle = (array1, child2) => { + // 遍历array1 + array1.forEach(child1 => { + // 找到path一致的数据 + if (child1.path === child2.path) { + // 遍历child2.children + child2.children.forEach(_child2 => { + // 比对child1.children -> 有没添加的直接添加 + if ( + !child1.children.some(_child1 => _child1.path === _child2.path) + ) { + child1.children.push(_child2); + } + // 递归 + routerChildAddHandle(child1.children, _child2); + }); + } + }); + }; + + routerChildAddHandle(router.options.routes, _route); + }); +}; From b788718bd4e15d8810e5042f88dcd55c192d4300 Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Wed, 27 May 2020 17:51:13 +0800 Subject: [PATCH 105/164] =?UTF-8?q?=E8=8F=9C=E5=8D=95=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/view/authority/menu.vue | 530 +++++++++++++++++++++++++++++++++++- 1 file changed, 526 insertions(+), 4 deletions(-) diff --git a/src/view/authority/menu.vue b/src/view/authority/menu.vue index 2e020cfd1..bd309d643 100644 --- a/src/view/authority/menu.vue +++ b/src/view/authority/menu.vue @@ -1,12 +1,534 @@ - From 4a7fb83186b0328b77e3df7894f417bd6a207ba5 Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Wed, 27 May 2020 17:52:45 +0800 Subject: [PATCH 106/164] =?UTF-8?q?=E8=BF=BD=E5=8A=A0=E5=B0=81=E8=A3=85?= =?UTF-8?q?=E5=A5=BD=E7=9A=84=E6=96=B9=E6=B3=95=E7=9A=84=E4=BD=BF=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/store/module/app.js | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/store/module/app.js b/src/store/module/app.js index 717e052aa..799121c5a 100644 --- a/src/store/module/app.js +++ b/src/store/module/app.js @@ -23,7 +23,8 @@ import { dynamicRouterAdd, // 加载路由菜单,从localStorage拿到路由,在创建路由时使用 routerDataHanding, // 遍历后台返回的路由数据,转为路由基础数据 filterAsyncRouter, // 遍历路由基础数据,转换为前端组件对象 - menuListHanding // 遍历菜单数据,将"原本不应挂载在根菜单"的数据,重新挂载到相应位置 + menuListHanding, // 遍历菜单数据,将"原本不应挂载在根菜单"的数据,重新挂载到相应位置 + routerAddHandle // 遍历routes路由数据,手动往router.options.routes里添加数据 } from "@/libs/router-util"; import { getValueByKey } from "@/libs/dataHanding"; // 根据对象数组某个key的value,查询另一个key的value import { roleList } from "@/mock/role"; // mockData - 角色列表 @@ -150,11 +151,7 @@ export default { // 动态添加路由 - 真正添加路由(不会立刻刷新,需要手动往router.options.routes里添加数据) router.addRoutes(routes); // 手动添加路由数据 - routes.forEach(route => { - if (!router.options.routes.some(_route => _route.path === route.path)) { - router.options.routes.push(route); - } - }); + routerAddHandle(routes, router); // 动态渲染菜单数据 commit("setMenuList", { menuList: menuList, From b7821c77b254ca0b7a5bbf1467804020e18efb8d Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Wed, 27 May 2020 17:53:09 +0800 Subject: [PATCH 107/164] =?UTF-8?q?=E8=8F=9C=E5=8D=95=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E8=BF=BD=E5=8A=A0description=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/mock/role.js | 48 ++++++++++++++++++++++++++++++++---------------- 1 file changed, 32 insertions(+), 16 deletions(-) diff --git a/src/mock/role.js b/src/mock/role.js index f11f0b138..27cb7ff3e 100644 --- a/src/mock/role.js +++ b/src/mock/role.js @@ -97,7 +97,8 @@ const menuList = [ parentId: "root", ico: "ios-book", isOutSide: true, - showLevel: 1 + showLevel: "1", + description: "在线文档" }, { id: "control", @@ -109,7 +110,8 @@ const menuList = [ parentId: "root", ico: "md-laptop", isOutSide: false, - showLevel: 1 + showLevel: "1", + description: "一级大屏" }, { id: "multilevel", @@ -121,7 +123,8 @@ const menuList = [ parentId: "root", ico: "md-menu", isOutSide: false, - showLevel: 2 + showLevel: "2", + description: "" }, { id: "level_2_1", @@ -133,7 +136,8 @@ const menuList = [ parentId: "multilevel", ico: "md-funnel", isOutSide: false, - showLevel: 2 + showLevel: "2", + description: "" }, { id: "level_2_2", @@ -145,7 +149,8 @@ const menuList = [ parentId: "multilevel", ico: "md-funnel", isOutSide: false, - showLevel: 2 + showLevel: "2", + description: "内层模块" }, { id: "level_2_2_1", @@ -157,7 +162,8 @@ const menuList = [ parentId: "level_2_2", ico: "md-funnel", isOutSide: false, - showLevel: 2 + showLevel: "2", + description: "" }, { id: "screen2", @@ -169,7 +175,8 @@ const menuList = [ parentId: "level_2_2", ico: "md-laptop", isOutSide: false, - showLevel: 1 + showLevel: "1", + description: "" }, { id: "level_2_2_2", @@ -181,7 +188,8 @@ const menuList = [ parentId: "level_2_2", ico: "md-funnel", isOutSide: false, - showLevel: 2 + showLevel: "2", + description: "" }, { id: "level_2_3", @@ -193,7 +201,8 @@ const menuList = [ parentId: "multilevel", ico: "md-funnel", isOutSide: false, - showLevel: 2 + showLevel: "2", + description: "" }, { id: "screen", @@ -205,7 +214,8 @@ const menuList = [ parentId: "multilevel", ico: "md-laptop", isOutSide: false, - showLevel: 1 + showLevel: "1", + description: "" }, { id: "github", @@ -217,7 +227,8 @@ const menuList = [ parentId: "multilevel", ico: "md-log-in", isOutSide: true, - showLevel: 1 + showLevel: "1", + description: "项目地址" }, { id: "singleMenu", @@ -229,7 +240,8 @@ const menuList = [ parentId: "root", ico: "md-document", isOutSide: false, - showLevel: 2 + showLevel: "2", + description: "单极父子结构" }, { id: "authority", @@ -241,7 +253,8 @@ const menuList = [ parentId: "root", ico: "md-settings", isOutSide: false, - showLevel: 2 + showLevel: "2", + description: "管理员专属" }, { id: "userManage", @@ -253,7 +266,8 @@ const menuList = [ parentId: "authority", ico: "ios-navigate", isOutSide: false, - showLevel: 2 + showLevel: "2", + description: "" }, { id: "roleManage", @@ -265,7 +279,8 @@ const menuList = [ parentId: "authority", ico: "ios-navigate", isOutSide: false, - showLevel: 2 + showLevel: "2", + description: "" }, { id: "menuManage", @@ -277,7 +292,8 @@ const menuList = [ parentId: "authority", ico: "ios-navigate", isOutSide: false, - showLevel: 2 + showLevel: "2", + description: "" } ]; From a92eed8aa66227a22f05279f17be69d1ff5fa0a9 Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Thu, 28 May 2020 15:42:03 +0800 Subject: [PATCH 108/164] =?UTF-8?q?=E6=96=B9=E6=B3=95=E5=90=8D=E7=A7=B0?= =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/store/module/app.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/store/module/app.js b/src/store/module/app.js index 799121c5a..98239f87d 100644 --- a/src/store/module/app.js +++ b/src/store/module/app.js @@ -24,7 +24,7 @@ import { routerDataHanding, // 遍历后台返回的路由数据,转为路由基础数据 filterAsyncRouter, // 遍历路由基础数据,转换为前端组件对象 menuListHanding, // 遍历菜单数据,将"原本不应挂载在根菜单"的数据,重新挂载到相应位置 - routerAddHandle // 遍历routes路由数据,手动往router.options.routes里添加数据 + routerUpdateHandle // 遍历routes路由数据,手动往router.options.routes里添加数据 } from "@/libs/router-util"; import { getValueByKey } from "@/libs/dataHanding"; // 根据对象数组某个key的value,查询另一个key的value import { roleList } from "@/mock/role"; // mockData - 角色列表 @@ -151,7 +151,7 @@ export default { // 动态添加路由 - 真正添加路由(不会立刻刷新,需要手动往router.options.routes里添加数据) router.addRoutes(routes); // 手动添加路由数据 - routerAddHandle(routes, router); + routerUpdateHandle(routes, router); // 动态渲染菜单数据 commit("setMenuList", { menuList: menuList, From 0c808498e5bb3793d03dba5c6aebeb1f8d4de345 Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Thu, 28 May 2020 15:42:57 +0800 Subject: [PATCH 109/164] =?UTF-8?q?=E6=96=B9=E6=B3=95=E5=90=8D=E7=A7=B0?= =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/store/module/app.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/store/module/app.js b/src/store/module/app.js index 98239f87d..d2f2d757c 100644 --- a/src/store/module/app.js +++ b/src/store/module/app.js @@ -24,7 +24,7 @@ import { routerDataHanding, // 遍历后台返回的路由数据,转为路由基础数据 filterAsyncRouter, // 遍历路由基础数据,转换为前端组件对象 menuListHanding, // 遍历菜单数据,将"原本不应挂载在根菜单"的数据,重新挂载到相应位置 - routerUpdateHandle // 遍历routes路由数据,手动往router.options.routes里添加数据 + routerUpdateHandle // 遍历routes路由数据,1.手动往router.options.routes里添加数据;2.如routes里的name有变化,手动修改router.options.routes的name } from "@/libs/router-util"; import { getValueByKey } from "@/libs/dataHanding"; // 根据对象数组某个key的value,查询另一个key的value import { roleList } from "@/mock/role"; // mockData - 角色列表 From fbd685033decb55ade5beebca04c1d288ebb16dc Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Thu, 28 May 2020 15:43:16 +0800 Subject: [PATCH 110/164] =?UTF-8?q?=E8=BF=BD=E5=8A=A0=E9=80=9A=E7=94=A8?= =?UTF-8?q?=E5=87=BD=E6=95=B0:=20=E9=81=8D=E5=8E=86routes=E8=B7=AF?= =?UTF-8?q?=E7=94=B1=E6=95=B0=E6=8D=AE=20=20*=201.=E6=89=8B=E5=8A=A8?= =?UTF-8?q?=E5=BE=80router.options.routes=E9=87=8C=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=20=20*=202.=E5=A6=82routes=E9=87=8C=E7=9A=84?= =?UTF-8?q?name=E6=9C=89=E5=8F=98=E5=8C=96=EF=BC=8C=E6=89=8B=E5=8A=A8?= =?UTF-8?q?=E4=BF=AE=E6=94=B9router.options.routes=E7=9A=84name?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/libs/router-util.js | 48 ++++++++++++++++++++++++++++++----------- 1 file changed, 36 insertions(+), 12 deletions(-) diff --git a/src/libs/router-util.js b/src/libs/router-util.js index 5f63f2c4f..ca206bc86 100644 --- a/src/libs/router-util.js +++ b/src/libs/router-util.js @@ -58,7 +58,8 @@ export const routerDataHanding = apiRouterData => { meta: { icon: route.ico, title: route.title, - hideInBread: true + hideInBread: true, + id: route.id }, sort: route.sort, // 排序用 children: [ @@ -77,7 +78,8 @@ export const routerDataHanding = apiRouterData => { .join("/"), meta: { icon: route.ico, - title: route.title + title: route.title, + id: `_${route.id}` }, component: route.path, children: [] @@ -151,7 +153,8 @@ export const routerDataHanding = apiRouterData => { title: route.title, hideInBread: true, hideInMenu: parseInt(route.showLevel) !== 1, // true or false 菜单是否隐藏该页面选项 - parentId: route.parentId // 特殊处理:此类需要处理菜单的数据均追加parentId + parentId: route.parentId, // 特殊处理:此类需要处理菜单的数据均追加parentId + id: route.id }, sort: route.sort, // 排序用 children: [] @@ -221,26 +224,34 @@ export const filterAsyncRouter = asyncRouterMap => { return accessedRouters; }; -// @函数: 遍历routes路由数据,手动往router.options.routes里添加数据 -export const routerAddHandle = (routes, router) => { +/** + * @函数: 遍历routes路由数据 + * 1.手动往router.options.routes里添加数据 + * 2.如routes里的name有变化,手动修改router.options.routes的name + */ +export const routerUpdateHandle = (routes, router) => { // 遍历routes routes.forEach(_route => { - // 比对router.options.routes -> 最外层有没添加的直接添加 - if (!router.options.routes.some(_router => _router.path === _route.path)) { + /* 手动往router.options.routes里添加数据 */ + // 1.最外层有没添加的直接添加 + if ( + !router.options.routes.some(_router => _router.meta.id === _route.meta.id) + ) { router.options.routes.push(_route); } - - // 内层路由递归添加 + // 2.内层路由递归添加 const routerChildAddHandle = (array1, child2) => { // 遍历array1 array1.forEach(child1 => { // 找到path一致的数据 - if (child1.path === child2.path) { + if (child1.meta.id === child2.meta.id) { // 遍历child2.children child2.children.forEach(_child2 => { // 比对child1.children -> 有没添加的直接添加 if ( - !child1.children.some(_child1 => _child1.path === _child2.path) + !child1.children.some( + _child1 => _child1.meta.id === _child2.meta.id + ) ) { child1.children.push(_child2); } @@ -250,7 +261,20 @@ export const routerAddHandle = (routes, router) => { } }); }; - routerChildAddHandle(router.options.routes, _route); + + /* 如routes里的name有变化,手动修改router.options.routes的name */ + // 递归更新 + const routerChildChangeName = (array1, child2) => { + array1.forEach(child1 => { + if (child2.meta.id === child1.meta.id && child2.name !== child1.name) { + child1.name = child2.name; + } + child2.children.forEach(_child2 => { + child1.children && routerChildChangeName(child1.children, _child2); + }); + }); + }; + routerChildChangeName(router.options.routes, _route); }); }; From 7ec9247f0a118ea49d06efa3d52070368d5e4c16 Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Thu, 28 May 2020 15:43:55 +0800 Subject: [PATCH 111/164] =?UTF-8?q?bug=E5=A4=84=E7=90=86=EF=BC=9A1.?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=B3=BB=E7=BB=9F=E5=90=8D=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?401=E9=97=AE=E9=A2=98=EF=BC=9B2.=E6=9B=B4=E6=96=B0=E7=B3=BB?= =?UTF-8?q?=E7=BB=9F=E5=90=8D=E6=88=96url=E6=9C=89=E6=97=B6=E6=8F=90?= =?UTF-8?q?=E7=A4=BA=E9=87=8D=E5=A4=8D=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/view/authority/menu.vue | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/view/authority/menu.vue b/src/view/authority/menu.vue index bd309d643..476e967a3 100644 --- a/src/view/authority/menu.vue +++ b/src/view/authority/menu.vue @@ -87,8 +87,7 @@ prop="name"> + placeholder="英文系统名,20个字符以内"> @@ -465,6 +464,9 @@ export default { ); }); resultCallback(200, "修改成功!", () => { + this.modalDataOrg = JSON.parse( + JSON.stringify(this.modalData) + ); this.refreshRouteData(); this.buttonLoading = false; }); From a8cd951aa609c822e2cea2ccfe1f143d5d71388a Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Fri, 29 May 2020 11:22:24 +0800 Subject: [PATCH 112/164] =?UTF-8?q?=E5=B7=A6=E4=BE=A7=E8=8F=9C=E5=8D=95sor?= =?UTF-8?q?t=E6=8E=92=E5=BA=8F=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/libs/router-util.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libs/router-util.js b/src/libs/router-util.js index ca206bc86..aa74b8e32 100644 --- a/src/libs/router-util.js +++ b/src/libs/router-util.js @@ -180,6 +180,7 @@ export const routerDataHanding = apiRouterData => { // @函数:遍历菜单数据,将"原本不应挂载在根菜单"的数据,重新挂载到相应位置 export const menuListHanding = (menuArray, menuList) => { + menuList.sort(arraySort("sort", "desc")); // 根据sort排序,后端排序可忽略 menuList.forEach((menu, i) => { menuArray.forEach(data => { // 1.有meta里有parentId且parentId与另一个meta里的id相同 -> copy并删除parentId键 -> 将copy塞入meta @@ -190,7 +191,6 @@ export const menuListHanding = (menuArray, menuList) => { var dataCopy = JSON.parse(JSON.stringify(data)); Vue.delete(dataCopy.meta, "parentId"); menu.children.push(dataCopy); - menu.children.sort(arraySort("sort", "desc")); } // 2.删除剩余的meta里有parentId的数据 if (menu.meta.parentId !== undefined) { From c34800b0b929e5384353bbd2c759382b9d8f0f82 Mon Sep 17 00:00:00 2001 From: simon9124 <435776313@qq.com> Date: Fri, 29 May 2020 11:22:45 +0800 Subject: [PATCH 113/164] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=8F=9C=E5=8D=95?= =?UTF-8?q?=E5=90=8E=EF=BC=8C=E6=B8=85=E7=A9=BA=E8=A1=A8=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/view/authority/menu.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/view/authority/menu.vue b/src/view/authority/menu.vue index 476e967a3..15a14f780 100644 --- a/src/view/authority/menu.vue +++ b/src/view/authority/menu.vue @@ -76,8 +76,7 @@ v-show="modalData.isOutSide!==true" prop="showLevel">