From 35aa5e0de4f59b0e46848b767dd06ab8e3482c81 Mon Sep 17 00:00:00 2001 From: Maksym Mykhailenko Date: Wed, 24 Apr 2019 19:06:36 +0800 Subject: [PATCH 01/89] winning submission from challenge 30089018 - Topcoder Connect - Use evaluate function from npm --- package-lock.json | 11235 ++++++++-------- package.json | 1 + src/config/projectWizard/index.js | 2 +- src/helpers/dependentQuestionsHelper.js | 308 - src/helpers/dependentQuestionsHelper.spec.js | 765 -- src/helpers/wizardHelper.js | 8 +- .../create/components/ProjectEstimation.js | 2 +- 7 files changed, 5775 insertions(+), 6546 deletions(-) delete mode 100644 src/helpers/dependentQuestionsHelper.js delete mode 100644 src/helpers/dependentQuestionsHelper.spec.js diff --git a/package-lock.json b/package-lock.json index 58bce1d00..9697df261 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,32 +9,32 @@ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz", "integrity": "sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A==", "requires": { - "@babel/types": "7.3.4" + "@babel/types": "^7.0.0" } }, "@babel/runtime": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.3.4.tgz", - "integrity": "sha512-IvfvnMdSaLBateu0jfsYIpZTxAc2cKEXEMiezGGN75QcBcecDUKd3PgLAncT0oOgxKy8dd8hrJKj9MfzgfZd6g==", + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.4.3.tgz", + "integrity": "sha512-9lsJwJLxDh/T3Q3SZszfWOTkk3pHbkmH+3KY+zwIDmsNlxsumuhS2TH3NIpktU4kNvfzy+k3eLT7aTJSPTo0OA==", "requires": { - "regenerator-runtime": "0.12.1" + "regenerator-runtime": "^0.13.2" }, "dependencies": { "regenerator-runtime": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz", - "integrity": "sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==" + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.2.tgz", + "integrity": "sha512-S/TQAZJO+D3m9xeN1WTI8dLKBBiRgXBlTJvbWjCThHWZj9EvHK70Ff50/tYj2J/fvBY6JtFVwRuazHN2E7M9BA==" } } }, "@babel/types": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.3.4.tgz", - "integrity": "sha512-WEkp8MsLftM7O/ty580wAmZzN1nDmCACc5+jFzUt+GUFNNIi3LdRlueYz0YIlmJhlZx1QYDMZL5vdWCL0fNjFQ==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.4.0.tgz", + "integrity": "sha512-aPvkXyU2SPOnztlgo8n9cEiXW755mgyvueUPcpStqdzoSPm0fjO0vQBjLkt3JKJW7ufikfcnMTTPsN1xaTsBPA==", "requires": { - "esutils": "2.0.2", - "lodash": "4.17.11", - "to-fast-properties": "2.0.0" + "esutils": "^2.0.2", + "lodash": "^4.17.11", + "to-fast-properties": "^2.0.0" } }, "@emotion/babel-utils": { @@ -42,12 +42,12 @@ "resolved": "https://registry.npmjs.org/@emotion/babel-utils/-/babel-utils-0.6.10.tgz", "integrity": "sha512-/fnkM/LTEp3jKe++T0KyTszVGWNKPNOUJfjNKLO17BzQ6QPxgbg3whayom1Qr2oLFH3V92tDymU+dT5q676uow==", "requires": { - "@emotion/hash": "0.6.6", - "@emotion/memoize": "0.6.6", - "@emotion/serialize": "0.9.1", - "convert-source-map": "1.6.0", - "find-root": "1.1.0", - "source-map": "0.7.3" + "@emotion/hash": "^0.6.6", + "@emotion/memoize": "^0.6.6", + "@emotion/serialize": "^0.9.1", + "convert-source-map": "^1.5.1", + "find-root": "^1.1.0", + "source-map": "^0.7.2" }, "dependencies": { "source-map": { @@ -72,10 +72,10 @@ "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-0.9.1.tgz", "integrity": "sha512-zTuAFtyPvCctHBEL8KZ5lJuwBanGSutFEncqLn/m9T1a6a93smBStK+bZzcNPgj4QS8Rkw9VTwJGhRIUVO8zsQ==", "requires": { - "@emotion/hash": "0.6.6", - "@emotion/memoize": "0.6.6", - "@emotion/unitless": "0.6.7", - "@emotion/utils": "0.8.2" + "@emotion/hash": "^0.6.6", + "@emotion/memoize": "^0.6.6", + "@emotion/unitless": "^0.6.7", + "@emotion/utils": "^0.8.2" } }, "@emotion/stylis": { @@ -124,7 +124,7 @@ "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", "dev": true, "requires": { - "mime-types": "2.1.22", + "mime-types": "~2.1.18", "negotiator": "0.6.1" } }, @@ -139,7 +139,7 @@ "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=", "dev": true, "requires": { - "acorn": "4.0.13" + "acorn": "^4.0.3" }, "dependencies": { "acorn": { @@ -156,7 +156,7 @@ "integrity": "sha1-VbtemGkVB7dFedBRNBMhfDgMVM8=", "dev": true, "requires": { - "acorn": "2.7.0" + "acorn": "^2.1.0" }, "dependencies": { "acorn": { @@ -173,7 +173,7 @@ "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", "dev": true, "requires": { - "acorn": "3.3.0" + "acorn": "^3.0.4" }, "dependencies": { "acorn": { @@ -189,7 +189,7 @@ "resolved": "https://registry.npmjs.org/add-dom-event-listener/-/add-dom-event-listener-1.1.0.tgz", "integrity": "sha512-WCxx1ixHT0GQU9hb0KI/mhgRQhnU+U3GvwY6ZvVjYq8rsihIGoaIOUbY0yMPBxLH5MDtr0kz3fisWGNcbWW7Jw==", "requires": { - "object-assign": "4.1.1" + "object-assign": "4.x" }, "dependencies": { "object-assign": { @@ -205,13 +205,13 @@ "integrity": "sha512-958oaHHVEXMvsY7v7cC5gEkNIcoaAVIhZ4mBReYVZJOTP9IgKmzLjIOhTtzpLMu+qriXvLsVjJ155EeInp45IQ==", "dev": true, "requires": { - "assert": "1.4.1", - "camelcase": "1.2.1", - "loader-utils": "1.1.0", - "lodash.assign": "4.2.0", - "lodash.defaults": "3.1.2", - "object-path": "0.9.2", - "regex-parser": "2.2.10" + "assert": "^1.3.0", + "camelcase": "^1.2.1", + "loader-utils": "^1.1.0", + "lodash.assign": "^4.0.1", + "lodash.defaults": "^3.1.2", + "object-path": "^0.9.2", + "regex-parser": "^2.2.9" }, "dependencies": { "lodash.defaults": { @@ -220,8 +220,8 @@ "integrity": "sha1-xzCLGNv4vJNy1wGnNJPGEZK9Liw=", "dev": true, "requires": { - "lodash.assign": "3.2.0", - "lodash.restparam": "3.6.1" + "lodash.assign": "^3.0.0", + "lodash.restparam": "^3.0.0" }, "dependencies": { "lodash.assign": { @@ -230,9 +230,9 @@ "integrity": "sha1-POnwI0tLIiPilrj6CsH+6OvKZPo=", "dev": true, "requires": { - "lodash._baseassign": "3.2.0", - "lodash._createassigner": "3.1.1", - "lodash.keys": "3.1.2" + "lodash._baseassign": "^3.0.0", + "lodash._createassigner": "^3.0.0", + "lodash.keys": "^3.0.0" } } } @@ -244,10 +244,10 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz", "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==", "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": { @@ -261,9 +261,9 @@ "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", "requires": { - "kind-of": "3.2.2", - "longest": "1.0.1", - "repeat-string": "1.6.1" + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" } }, "alphanum-sort": { @@ -301,7 +301,7 @@ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "1.9.3" + "color-convert": "^1.9.0" } }, "anymatch": { @@ -310,8 +310,8 @@ "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", "dev": true, "requires": { - "micromatch": "2.3.11", - "normalize-path": "2.1.1" + "micromatch": "^2.1.5", + "normalize-path": "^2.0.0" } }, "appirio-tech-api-schemas": { @@ -319,7 +319,7 @@ "resolved": "https://registry.npmjs.org/appirio-tech-api-schemas/-/appirio-tech-api-schemas-5.0.70.tgz", "integrity": "sha1-3RtCG/rw8PSokKRTgHSlVYDQy8s=", "requires": { - "auto-config-fake-server": "2.0.604" + "auto-config-fake-server": "2.x.x" } }, "appirio-tech-client-app-layer": { @@ -327,24 +327,24 @@ "resolved": "https://registry.npmjs.org/appirio-tech-client-app-layer/-/appirio-tech-client-app-layer-0.1.3.tgz", "integrity": "sha1-uO5YdHMM2r209RE8NMQvwOsxoOs=", "requires": { - "axios": "0.8.1", - "history": "1.17.0", - "html-webpack-plugin": "1.7.0", - "humps": "0.6.0", - "isomorphic-fetch": "2.2.1", - "jwt-decode": "1.5.1", - "lodash": "4.17.11", - "normalizr": "1.4.1", - "q": "1.5.1", - "react": "0.14.9", - "react-dom": "0.14.9", - "react-redux": "4.4.9", - "react-router": "1.0.3", - "redux": "3.7.2", - "redux-form": "4.2.2", - "redux-logger": "2.10.2", - "redux-router": "1.0.0", - "redux-thunk": "0.1.0" + "axios": "^0.8.1", + "history": "^1.17.0", + "html-webpack-plugin": "^1.7.0", + "humps": "^0.6.0", + "isomorphic-fetch": "^2.1.1", + "jwt-decode": "^1.4.0", + "lodash": "^4.0.0", + "normalizr": "^1.0.0", + "q": "^1.4.1", + "react": "^0.14.0", + "react-dom": "^0.14.0", + "react-redux": "^4.0.0", + "react-router": "^1.0.3", + "redux": "^3.0.0", + "redux-form": "^4.1.0", + "redux-logger": "^2.4.0", + "redux-router": "^1.0.0-beta3", + "redux-thunk": "^0.1.0" }, "dependencies": { "axios": { @@ -360,11 +360,11 @@ "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.6.1.tgz", "integrity": "sha1-lja3cF9bqWhNRLcveDISVK/IYPc=", "requires": { - "core-js": "1.2.7", - "loose-envify": "1.4.0", - "promise": "7.3.1", - "ua-parser-js": "0.7.19", - "whatwg-fetch": "0.9.0" + "core-js": "^1.0.0", + "loose-envify": "^1.0.0", + "promise": "^7.0.3", + "ua-parser-js": "^0.7.9", + "whatwg-fetch": "^0.9.0" } }, "html-webpack-plugin": { @@ -372,10 +372,10 @@ "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-1.7.0.tgz", "integrity": "sha1-zQxzx5G9DIxFsk4wAb4zSmt0KXs=", "requires": { - "bluebird": "3.5.3", - "blueimp-tmpl": "2.5.7", - "html-minifier": "1.5.0", - "lodash": "3.10.1" + "bluebird": "^3.0.5", + "blueimp-tmpl": "^2.5.5", + "html-minifier": "^1.0.0", + "lodash": "^3.10.1" }, "dependencies": { "lodash": { @@ -390,8 +390,8 @@ "resolved": "https://registry.npmjs.org/react/-/react-0.14.9.tgz", "integrity": "sha1-kRCmSXxJ1EuhwO3TF67CnC4NkdE=", "requires": { - "envify": "3.4.1", - "fbjs": "0.6.1" + "envify": "^3.0.0", + "fbjs": "^0.6.1" } }, "react-dom": { @@ -412,35 +412,36 @@ } }, "appirio-tech-react-components": { - "version": "git+https://github.com/appirio-tech/react-components.git#5c03871e319d852e7ada661c033e0a3bb85aed7b", - "requires": { - "appirio-tech-api-schemas": "5.0.70", - "appirio-tech-client-app-layer": "0.1.3", - "classnames": "2.2.6", - "coffee-script": "1.12.7", - "coffeescript": "1.12.7", - "formsy-react": "0.19.5", - "isomorphic-fetch": "2.2.1", - "libphonenumber-js": "1.7.9", - "lodash": "4.17.11", - "moment": "2.24.0", - "react": "15.6.2", - "react-addons-pure-render-mixin": "15.6.2", - "react-addons-update": "15.6.2", - "react-avatar": "2.5.1", - "react-datetime": "2.7.1", - "react-dom": "15.6.2", - "react-dropzone": "3.13.4", - "react-popper": "0.7.5", - "react-redux": "4.4.9", - "react-router-dom": "4.3.1", - "react-select": "0.9.1", - "react-switch-button": "1.1.2", - "react-textarea-autosize": "5.2.1", - "react-transition-group": "2.6.0", - "redux-thunk": "2.3.0", + "version": "git+https://github.com/appirio-tech/react-components.git#c8c7db5590e858085d9e504ae29fe07de5a06288", + "from": "git+https://github.com/appirio-tech/react-components.git#feature/connectv2", + "requires": { + "appirio-tech-api-schemas": "^5.0.69", + "appirio-tech-client-app-layer": "^0.1.3", + "classnames": "^2.2.3", + "coffee-script": "^1.12.7", + "coffeescript": "^1.12.7", + "formsy-react": "^0.19.5", + "isomorphic-fetch": "^2.2.1", + "libphonenumber-js": "^1.4.6", + "lodash": "^4.0.0", + "moment": "^2.11.2", + "react": "^15.3.1", + "react-addons-pure-render-mixin": "^15.3.1", + "react-addons-update": "^15.3.1", + "react-avatar": "^2.2.0", + "react-datetime": "^2.0.2", + "react-dom": "^15.3.1", + "react-dropzone": "^3.5.3", + "react-popper": "^0.7.5", + "react-redux": "^4.4.5", + "react-router-dom": "^4.2.2", + "react-select": "^0.9.1", + "react-switch-button": "^1.1.2", + "react-textarea-autosize": "^5.2.1", + "react-transition-group": "^2.2.1", + "redux-thunk": "^2.1.0", "tc-ui": "git+https://github.com/appirio-tech/tc-ui.git#e577a0e704136f1e9ecce92ce4c0626aab932691", - "uncontrollable": "4.1.0" + "uncontrollable": "^4.0.1" }, "dependencies": { "coffee-script": { @@ -453,8 +454,8 @@ "resolved": "https://registry.npmjs.org/react-select/-/react-select-0.9.1.tgz", "integrity": "sha1-4yKi0KBjlqSCBrBVPfXsR9Fgg7o=", "requires": { - "classnames": "2.2.6", - "react-input-autosize": "0.6.13" + "classnames": "^2.2.0", + "react-input-autosize": "^0.6.2" } }, "uncontrollable": { @@ -462,7 +463,7 @@ "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-4.1.0.tgz", "integrity": "sha1-4DWCkSUuGGUiLZCTmxny9J+Bwak=", "requires": { - "invariant": "2.2.4" + "invariant": "^2.1.0" } } } @@ -479,8 +480,8 @@ "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", "dev": true, "requires": { - "delegates": "1.0.0", - "readable-stream": "2.0.6" + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" } }, "argparse": { @@ -488,7 +489,7 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "requires": { - "sprintf-js": "1.0.3" + "sprintf-js": "~1.0.2" } }, "aria-query": { @@ -498,13 +499,13 @@ "dev": true, "requires": { "ast-types-flow": "0.0.7", - "commander": "2.19.0" + "commander": "^2.11.0" }, "dependencies": { "commander": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", - "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==", + "version": "2.20.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", + "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==", "dev": true } } @@ -515,7 +516,7 @@ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "dev": true, "requires": { - "arr-flatten": "1.1.0" + "arr-flatten": "^1.0.1" } }, "arr-flatten": { @@ -548,8 +549,8 @@ "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", "dev": true, "requires": { - "define-properties": "1.1.3", - "es-abstract": "1.13.0" + "define-properties": "^1.1.2", + "es-abstract": "^1.7.0" } }, "array-union": { @@ -558,7 +559,7 @@ "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "dev": true, "requires": { - "array-uniq": "1.0.3" + "array-uniq": "^1.0.1" } }, "array-uniq": { @@ -590,7 +591,7 @@ "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", "dev": true, "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": "~2.1.0" } }, "asn1.js": { @@ -599,9 +600,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": { @@ -648,9 +649,9 @@ "integrity": "sha512-MgFMBC6SaYKiE0CqkYd5kZaKyWgxYErnoAmjAhJ8RZt7GKIvx0OvXIsqCqk3fo+wxjeA+tz4/QPS23s3WW/+jA==", "dev": true, "requires": { - "loader-utils": "0.2.17", - "lodash.assign": "4.2.0", - "mime": "1.6.0" + "loader-utils": "^0.2.12", + "lodash.assign": "^4.0.0", + "mime": "^1.3.4" }, "dependencies": { "loader-utils": { @@ -659,10 +660,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" } }, "object-assign": { @@ -696,9 +697,9 @@ "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=" }, "async-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", - "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", "dev": true }, "async-foreach": { @@ -722,7 +723,7 @@ "resolved": "https://registry.npmjs.org/attr-accept/-/attr-accept-1.1.3.tgz", "integrity": "sha512-iT40nudw8zmCweivz6j58g+RT33I4KbaIvRUhjNmDwO2WmsQUxFEZZYZ5w3vXe5x5MX9D7mfvA/XaLOZYFR9EQ==", "requires": { - "core-js": "2.6.5" + "core-js": "^2.5.0" }, "dependencies": { "core-js": { @@ -751,12 +752,12 @@ "integrity": "sha512-Iq8TRIB+/9eQ8rbGhcP7ct5cYb/3qjNYAR2SnzLCEcwF6rvVOax8+9+fccgXk4bEhQGjOZd5TLhsksmAdsbGqQ==", "dev": true, "requires": { - "browserslist": "2.11.3", - "caniuse-lite": "1.0.30000941", - "normalize-range": "0.1.2", - "num2fraction": "1.2.2", - "postcss": "6.0.23", - "postcss-value-parser": "3.3.1" + "browserslist": "^2.11.3", + "caniuse-lite": "^1.0.30000805", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^6.0.17", + "postcss-value-parser": "^3.2.3" } }, "aws-sign2": { @@ -794,27 +795,27 @@ "integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=", "dev": true, "requires": { - "babel-core": "6.26.3", - "babel-polyfill": "6.26.0", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "chokidar": "1.7.0", - "commander": "2.19.0", - "convert-source-map": "1.6.0", - "fs-readdir-recursive": "1.1.0", - "glob": "7.1.3", - "lodash": "4.17.11", - "output-file-sync": "1.1.2", - "path-is-absolute": "1.0.1", - "slash": "1.0.0", - "source-map": "0.5.7", - "v8flags": "2.1.1" + "babel-core": "^6.26.0", + "babel-polyfill": "^6.26.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "chokidar": "^1.6.1", + "commander": "^2.11.0", + "convert-source-map": "^1.5.0", + "fs-readdir-recursive": "^1.0.0", + "glob": "^7.1.2", + "lodash": "^4.17.4", + "output-file-sync": "^1.1.2", + "path-is-absolute": "^1.0.1", + "slash": "^1.0.0", + "source-map": "^0.5.6", + "v8flags": "^2.1.1" }, "dependencies": { "commander": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", - "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==", + "version": "2.20.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", + "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==", "dev": true }, "glob": { @@ -823,12 +824,12 @@ "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "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" } }, "source-map": { @@ -845,9 +846,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": { @@ -862,11 +863,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" } }, "js-tokens": { @@ -889,25 +890,25 @@ "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", "dev": true, "requires": { - "babel-code-frame": "6.26.0", - "babel-generator": "6.26.1", - "babel-helpers": "6.24.1", - "babel-messages": "6.23.0", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "convert-source-map": "1.6.0", - "debug": "2.6.9", - "json5": "0.5.1", - "lodash": "4.17.11", - "minimatch": "3.0.4", - "path-is-absolute": "1.0.1", - "private": "0.1.8", - "slash": "1.0.0", - "source-map": "0.5.7" + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", + "slash": "^1.0.0", + "source-map": "^0.5.7" }, "dependencies": { "source-map": { @@ -924,10 +925,10 @@ "integrity": "sha1-sv4tgBJkcPXBlELcdXJTqJdxCCc=", "dev": true, "requires": { - "babel-code-frame": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0" + "babel-code-frame": "^6.22.0", + "babel-traverse": "^6.23.1", + "babel-types": "^6.23.0", + "babylon": "^6.17.0" } }, "babel-generator": { @@ -936,14 +937,14 @@ "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", "dev": true, "requires": { - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "detect-indent": "4.0.0", - "jsesc": "1.3.0", - "lodash": "4.17.11", - "source-map": "0.5.7", - "trim-right": "1.0.1" + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" }, "dependencies": { "source-map": { @@ -960,9 +961,9 @@ "integrity": "sha1-FMGeXxQte0fxmlJDHlKxzLxAozA=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-builder-binary-assignment-operator-visitor": { @@ -971,9 +972,9 @@ "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", "dev": true, "requires": { - "babel-helper-explode-assignable-expression": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-explode-assignable-expression": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-builder-react-jsx": { @@ -982,9 +983,9 @@ "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "esutils": "2.0.2" + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "esutils": "^2.0.2" } }, "babel-helper-call-delegate": { @@ -993,10 +994,10 @@ "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", "dev": true, "requires": { - "babel-helper-hoist-variables": "6.24.1", - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-define-map": { @@ -1005,10 +1006,10 @@ "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", "dev": true, "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.11" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" } }, "babel-helper-explode-assignable-expression": { @@ -1017,9 +1018,9 @@ "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-explode-class": { @@ -1028,10 +1029,10 @@ "integrity": "sha1-fcKjkQ3uAHBW4eMdZAztPVTqqes=", "dev": true, "requires": { - "babel-helper-bindify-decorators": "6.24.1", - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-bindify-decorators": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-function-name": { @@ -1040,11 +1041,11 @@ "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", "dev": true, "requires": { - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-get-function-arity": { @@ -1053,8 +1054,8 @@ "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-hoist-variables": { @@ -1063,8 +1064,8 @@ "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-optimise-call-expression": { @@ -1073,8 +1074,8 @@ "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-regex": { @@ -1083,9 +1084,9 @@ "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.11" + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" } }, "babel-helper-remap-async-to-generator": { @@ -1094,11 +1095,11 @@ "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", "dev": true, "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-replace-supers": { @@ -1107,12 +1108,12 @@ "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", "dev": true, "requires": { - "babel-helper-optimise-call-expression": "6.24.1", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helpers": { @@ -1121,8 +1122,8 @@ "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-loader": { @@ -1131,9 +1132,9 @@ "integrity": "sha512-iCHfbieL5d1LfOQeeVJEUyD9rTwBcP/fcEbRCfempxTDuqrKpu0AZjLAQHEQa3Yqyj9ORKe2iHfoj4rHLf7xpw==", "dev": true, "requires": { - "find-cache-dir": "1.0.0", - "loader-utils": "1.1.0", - "mkdirp": "0.5.1" + "find-cache-dir": "^1.0.0", + "loader-utils": "^1.0.2", + "mkdirp": "^0.5.1" } }, "babel-messages": { @@ -1142,7 +1143,7 @@ "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-check-es2015-constants": { @@ -1151,7 +1152,7 @@ "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-css-modules-transform": { @@ -1160,8 +1161,8 @@ "integrity": "sha512-zBsI54N5n979vfYpqFzQ6oRwEiVcmLH5REyaincNW+Ecl52nvRsQPYIbDcJzHePrXI20YSRUw6G/qbPwZZDgfg==", "dev": true, "requires": { - "css-modules-require-hook": "4.2.3", - "mkdirp": "0.5.1" + "css-modules-require-hook": "^4.0.6", + "mkdirp": "^0.5.1" } }, "babel-plugin-dynamic-import-node": { @@ -1170,7 +1171,7 @@ "integrity": "sha512-yeDwKaLgGdTpXL7RgGt5r6T4LmnTza/hUn5Ul8uZSGGMtEjYo13Nxai7SQaGCTEzUtg9Zq9qJn0EjEr7SeSlTQ==", "dev": true, "requires": { - "babel-plugin-syntax-dynamic-import": "6.18.0" + "babel-plugin-syntax-dynamic-import": "^6.18.0" } }, "babel-plugin-emotion": { @@ -1178,18 +1179,18 @@ "resolved": "https://registry.npmjs.org/babel-plugin-emotion/-/babel-plugin-emotion-9.2.11.tgz", "integrity": "sha512-dgCImifnOPPSeXod2znAmgc64NhaaOjGEHROR/M+lmStb3841yK1sgaDYAYMnlvWNz8GnpwIPN0VmNpbWYZ+VQ==", "requires": { - "@babel/helper-module-imports": "7.0.0", - "@emotion/babel-utils": "0.6.10", - "@emotion/hash": "0.6.6", - "@emotion/memoize": "0.6.6", - "@emotion/stylis": "0.7.1", - "babel-plugin-macros": "2.5.0", - "babel-plugin-syntax-jsx": "6.18.0", - "convert-source-map": "1.6.0", - "find-root": "1.1.0", - "mkdirp": "0.5.1", - "source-map": "0.5.7", - "touch": "2.0.2" + "@babel/helper-module-imports": "^7.0.0", + "@emotion/babel-utils": "^0.6.4", + "@emotion/hash": "^0.6.2", + "@emotion/memoize": "^0.6.1", + "@emotion/stylis": "^0.7.0", + "babel-plugin-macros": "^2.0.0", + "babel-plugin-syntax-jsx": "^6.18.0", + "convert-source-map": "^1.5.0", + "find-root": "^1.1.0", + "mkdirp": "^0.5.1", + "source-map": "^0.5.7", + "touch": "^2.0.1" }, "dependencies": { "source-map": { @@ -1205,12 +1206,12 @@ "integrity": "sha512-Pr/J5kicFEpIvwooR3mytJWXfyGXoP4gp4QzTdN0jLoa7lU2OJVyhHMm17ekA3okxwbLaQehSc0kV/UVrj343w==", "dev": true, "requires": { - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babylon": "6.18.0", - "lodash.isplainobject": "4.0.6", - "resolve": "1.10.0", - "svgo": "0.7.2" + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babylon": "^6.18.0", + "lodash.isplainobject": "^4.0.6", + "resolve": "^1.8.1", + "svgo": "^0.7.2" } }, "babel-plugin-lodash": { @@ -1219,11 +1220,11 @@ "integrity": "sha512-yDZLjK7TCkWl1gpBeBGmuaDIFhZKmkoL+Cu2MUUjv5VxUZx/z7tBGBCBcQs5RI1Bkz5LLmNdjx7paOyQtMovyg==", "dev": true, "requires": { - "@babel/helper-module-imports": "7.0.0", - "@babel/types": "7.3.4", - "glob": "7.1.3", - "lodash": "4.17.11", - "require-package-name": "2.0.1" + "@babel/helper-module-imports": "^7.0.0-beta.49", + "@babel/types": "^7.0.0-beta.49", + "glob": "^7.1.1", + "lodash": "^4.17.10", + "require-package-name": "^2.0.1" }, "dependencies": { "glob": { @@ -1232,23 +1233,24 @@ "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "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" } } } }, "babel-plugin-macros": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.5.0.tgz", - "integrity": "sha512-BWw0lD0kVZAXRD3Od1kMrdmfudqzDzYv2qrN3l2ISR1HVp1EgLKfbOrYV9xmY5k3qx3RIu5uPAUZZZHpo0o5Iw==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.5.1.tgz", + "integrity": "sha512-xN3KhAxPzsJ6OQTktCanNpIFnnMsCV+t8OloKxIL72D6+SUZYFn9qfklPgef5HyyDtzYZqqb+fs1S12+gQY82Q==", "requires": { - "cosmiconfig": "5.1.0", - "resolve": "1.10.0" + "@babel/runtime": "^7.4.2", + "cosmiconfig": "^5.2.0", + "resolve": "^1.10.0" } }, "babel-plugin-module-resolver": { @@ -1257,11 +1259,11 @@ "integrity": "sha512-tjR0GvSndzPew/Iayf4uICWZqjBwnlMWjSx6brryfQ81F9rxBVqwDJtFCV8oOs0+vJeefK9TmdZtkIFdFe1UnA==", "dev": true, "requires": { - "find-babel-config": "1.2.0", - "glob": "7.1.3", - "pkg-up": "2.0.0", - "reselect": "3.0.1", - "resolve": "1.10.0" + "find-babel-config": "^1.1.0", + "glob": "^7.1.2", + "pkg-up": "^2.0.0", + "reselect": "^3.0.1", + "resolve": "^1.4.0" }, "dependencies": { "glob": { @@ -1270,12 +1272,12 @@ "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "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" } } } @@ -1286,18 +1288,18 @@ "integrity": "sha512-pU7owkj5IO6rlleRzaF27ME/eCG7ZhO+EM+WfthfeykYe0eZzK51JD7nlcUr4UU9y4Zlc+QsTH+139L7PSwYtQ==", "dev": true, "requires": { - "ajv": "6.10.0", - "ajv-keywords": "3.4.0", - "babel-plugin-syntax-jsx": "6.18.0", - "babel-types": "6.26.0", - "generic-names": "1.0.3", - "postcss": "6.0.23", - "postcss-modules": "1.4.1", - "postcss-modules-extract-imports": "1.2.1", - "postcss-modules-local-by-default": "1.2.0", - "postcss-modules-parser": "1.1.1", - "postcss-modules-scope": "1.1.0", - "postcss-modules-values": "1.3.0" + "ajv": "^6.5.0", + "ajv-keywords": "^3.2.0", + "babel-plugin-syntax-jsx": "^6.18.0", + "babel-types": "^6.26.0", + "generic-names": "^1.0.3", + "postcss": "^6.0.22", + "postcss-modules": "^1.1.0", + "postcss-modules-extract-imports": "^1.1.0", + "postcss-modules-local-by-default": "^1.2.0", + "postcss-modules-parser": "^1.1.1", + "postcss-modules-scope": "^1.1.0", + "postcss-modules-values": "^1.3.0" } }, "babel-plugin-syntax-async-functions": { @@ -1365,7 +1367,7 @@ "integrity": "sha1-Z96j7zohqpM6oj10B0AV7Z1KoGw=", "dev": true, "requires": { - "asset-require-hook": "1.2.0" + "asset-require-hook": "^1.0.2" } }, "babel-plugin-transform-async-generator-functions": { @@ -1374,9 +1376,9 @@ "integrity": "sha1-8FiQAUX9PpkHpt3yjaWfIVJYpds=", "dev": true, "requires": { - "babel-helper-remap-async-to-generator": "6.24.1", - "babel-plugin-syntax-async-generators": "6.13.0", - "babel-runtime": "6.26.0" + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-generators": "^6.5.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-async-to-generator": { @@ -1385,9 +1387,9 @@ "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", "dev": true, "requires": { - "babel-helper-remap-async-to-generator": "6.24.1", - "babel-plugin-syntax-async-functions": "6.13.0", - "babel-runtime": "6.26.0" + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-functions": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-class-properties": { @@ -1396,10 +1398,10 @@ "integrity": "sha1-anl2PqYdM9NvN7YRqp3vgagbRqw=", "dev": true, "requires": { - "babel-helper-function-name": "6.24.1", - "babel-plugin-syntax-class-properties": "6.13.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-helper-function-name": "^6.24.1", + "babel-plugin-syntax-class-properties": "^6.8.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-decorators": { @@ -1408,11 +1410,11 @@ "integrity": "sha1-eIAT2PjGtSIr33s0Q5Df13Vp4k0=", "dev": true, "requires": { - "babel-helper-explode-class": "6.24.1", - "babel-plugin-syntax-decorators": "6.13.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-explode-class": "^6.24.1", + "babel-plugin-syntax-decorators": "^6.13.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-arrow-functions": { @@ -1421,7 +1423,7 @@ "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-block-scoped-functions": { @@ -1430,7 +1432,7 @@ "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-block-scoping": { @@ -1439,11 +1441,11 @@ "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.11" + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" } }, "babel-plugin-transform-es2015-classes": { @@ -1452,15 +1454,15 @@ "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", "dev": true, "requires": { - "babel-helper-define-map": "6.26.0", - "babel-helper-function-name": "6.24.1", - "babel-helper-optimise-call-expression": "6.24.1", - "babel-helper-replace-supers": "6.24.1", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-define-map": "^6.24.1", + "babel-helper-function-name": "^6.24.1", + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-helper-replace-supers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-computed-properties": { @@ -1469,8 +1471,8 @@ "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-destructuring": { @@ -1479,7 +1481,7 @@ "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-duplicate-keys": { @@ -1488,8 +1490,8 @@ "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-for-of": { @@ -1498,7 +1500,7 @@ "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-function-name": { @@ -1507,9 +1509,9 @@ "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", "dev": true, "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-literals": { @@ -1518,7 +1520,7 @@ "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-modules-amd": { @@ -1527,9 +1529,9 @@ "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", "dev": true, "requires": { - "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-modules-commonjs": { @@ -1538,10 +1540,10 @@ "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", "dev": true, "requires": { - "babel-plugin-transform-strict-mode": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-types": "6.26.0" + "babel-plugin-transform-strict-mode": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-types": "^6.26.0" } }, "babel-plugin-transform-es2015-modules-systemjs": { @@ -1550,9 +1552,9 @@ "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", "dev": true, "requires": { - "babel-helper-hoist-variables": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-modules-umd": { @@ -1561,9 +1563,9 @@ "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", "dev": true, "requires": { - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-object-super": { @@ -1572,8 +1574,8 @@ "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", "dev": true, "requires": { - "babel-helper-replace-supers": "6.24.1", - "babel-runtime": "6.26.0" + "babel-helper-replace-supers": "^6.24.1", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-parameters": { @@ -1582,12 +1584,12 @@ "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", "dev": true, "requires": { - "babel-helper-call-delegate": "6.24.1", - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-call-delegate": "^6.24.1", + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-shorthand-properties": { @@ -1596,8 +1598,8 @@ "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-spread": { @@ -1606,7 +1608,7 @@ "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-sticky-regex": { @@ -1615,9 +1617,9 @@ "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", "dev": true, "requires": { - "babel-helper-regex": "6.26.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-template-literals": { @@ -1626,7 +1628,7 @@ "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-typeof-symbol": { @@ -1635,7 +1637,7 @@ "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-unicode-regex": { @@ -1644,9 +1646,9 @@ "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", "dev": true, "requires": { - "babel-helper-regex": "6.26.0", - "babel-runtime": "6.26.0", - "regexpu-core": "2.0.0" + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "regexpu-core": "^2.0.0" }, "dependencies": { "regexpu-core": { @@ -1655,9 +1657,9 @@ "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", "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" } } } @@ -1668,9 +1670,9 @@ "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", "dev": true, "requires": { - "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1", - "babel-plugin-syntax-exponentiation-operator": "6.13.0", - "babel-runtime": "6.26.0" + "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", + "babel-plugin-syntax-exponentiation-operator": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-flow-strip-types": { @@ -1679,8 +1681,8 @@ "integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=", "dev": true, "requires": { - "babel-plugin-syntax-flow": "6.18.0", - "babel-runtime": "6.26.0" + "babel-plugin-syntax-flow": "^6.18.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-object-rest-spread": { @@ -1689,8 +1691,8 @@ "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=", "dev": true, "requires": { - "babel-plugin-syntax-object-rest-spread": "6.13.0", - "babel-runtime": "6.26.0" + "babel-plugin-syntax-object-rest-spread": "^6.8.0", + "babel-runtime": "^6.26.0" } }, "babel-plugin-transform-react-display-name": { @@ -1699,7 +1701,7 @@ "integrity": "sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-react-jsx": { @@ -1708,9 +1710,9 @@ "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=", "dev": true, "requires": { - "babel-helper-builder-react-jsx": "6.26.0", - "babel-plugin-syntax-jsx": "6.18.0", - "babel-runtime": "6.26.0" + "babel-helper-builder-react-jsx": "^6.24.1", + "babel-plugin-syntax-jsx": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-react-jsx-self": { @@ -1719,8 +1721,8 @@ "integrity": "sha1-322AqdomEqEh5t3XVYvL7PBuY24=", "dev": true, "requires": { - "babel-plugin-syntax-jsx": "6.18.0", - "babel-runtime": "6.26.0" + "babel-plugin-syntax-jsx": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-react-jsx-source": { @@ -1729,8 +1731,8 @@ "integrity": "sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=", "dev": true, "requires": { - "babel-plugin-syntax-jsx": "6.18.0", - "babel-runtime": "6.26.0" + "babel-plugin-syntax-jsx": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-regenerator": { @@ -1739,7 +1741,7 @@ "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", "dev": true, "requires": { - "regenerator-transform": "0.10.1" + "regenerator-transform": "^0.10.0" } }, "babel-plugin-transform-runtime": { @@ -1748,7 +1750,7 @@ "integrity": "sha1-iEkNRGUC6puOfvsP4J7E2ZR5se4=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-strict-mode": { @@ -1757,8 +1759,8 @@ "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-polyfill": { @@ -1767,9 +1769,9 @@ "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "core-js": "2.6.5", - "regenerator-runtime": "0.10.5" + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "regenerator-runtime": "^0.10.5" }, "dependencies": { "core-js": { @@ -1792,36 +1794,36 @@ "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", "dev": true, "requires": { - "babel-plugin-check-es2015-constants": "6.22.0", - "babel-plugin-syntax-trailing-function-commas": "6.22.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-es2015-arrow-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoping": "6.26.0", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-es2015-computed-properties": "6.24.1", - "babel-plugin-transform-es2015-destructuring": "6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", - "babel-plugin-transform-es2015-for-of": "6.23.0", - "babel-plugin-transform-es2015-function-name": "6.24.1", - "babel-plugin-transform-es2015-literals": "6.22.0", - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", - "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", - "babel-plugin-transform-es2015-modules-umd": "6.24.1", - "babel-plugin-transform-es2015-object-super": "6.24.1", - "babel-plugin-transform-es2015-parameters": "6.24.1", - "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", - "babel-plugin-transform-es2015-spread": "6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "6.24.1", - "babel-plugin-transform-es2015-template-literals": "6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "6.24.1", - "babel-plugin-transform-exponentiation-operator": "6.24.1", - "babel-plugin-transform-regenerator": "6.26.0", - "browserslist": "3.2.8", - "invariant": "2.2.4", - "semver": "5.6.0" + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-syntax-trailing-function-commas": "^6.22.0", + "babel-plugin-transform-async-to-generator": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.23.0", + "babel-plugin-transform-es2015-classes": "^6.23.0", + "babel-plugin-transform-es2015-computed-properties": "^6.22.0", + "babel-plugin-transform-es2015-destructuring": "^6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", + "babel-plugin-transform-es2015-for-of": "^6.23.0", + "babel-plugin-transform-es2015-function-name": "^6.22.0", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.22.0", + "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-umd": "^6.23.0", + "babel-plugin-transform-es2015-object-super": "^6.22.0", + "babel-plugin-transform-es2015-parameters": "^6.23.0", + "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", + "babel-plugin-transform-exponentiation-operator": "^6.22.0", + "babel-plugin-transform-regenerator": "^6.22.0", + "browserslist": "^3.2.6", + "invariant": "^2.2.2", + "semver": "^5.3.0" }, "dependencies": { "browserslist": { @@ -1830,8 +1832,8 @@ "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", "dev": true, "requires": { - "caniuse-lite": "1.0.30000941", - "electron-to-chromium": "1.3.113" + "caniuse-lite": "^1.0.30000844", + "electron-to-chromium": "^1.3.47" } } } @@ -1842,7 +1844,7 @@ "integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=", "dev": true, "requires": { - "babel-plugin-transform-flow-strip-types": "6.22.0" + "babel-plugin-transform-flow-strip-types": "^6.22.0" } }, "babel-preset-react": { @@ -1851,12 +1853,12 @@ "integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=", "dev": true, "requires": { - "babel-plugin-syntax-jsx": "6.18.0", - "babel-plugin-transform-react-display-name": "6.25.0", - "babel-plugin-transform-react-jsx": "6.24.1", - "babel-plugin-transform-react-jsx-self": "6.22.0", - "babel-plugin-transform-react-jsx-source": "6.22.0", - "babel-preset-flow": "6.23.0" + "babel-plugin-syntax-jsx": "^6.3.13", + "babel-plugin-transform-react-display-name": "^6.23.0", + "babel-plugin-transform-react-jsx": "^6.24.1", + "babel-plugin-transform-react-jsx-self": "^6.22.0", + "babel-plugin-transform-react-jsx-source": "^6.22.0", + "babel-preset-flow": "^6.23.0" } }, "babel-preset-stage-2": { @@ -1865,10 +1867,10 @@ "integrity": "sha1-2eKWD7PXEYfw5k7sYrwHdnIZvcE=", "dev": true, "requires": { - "babel-plugin-syntax-dynamic-import": "6.18.0", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-decorators": "6.24.1", - "babel-preset-stage-3": "6.24.1" + "babel-plugin-syntax-dynamic-import": "^6.18.0", + "babel-plugin-transform-class-properties": "^6.24.1", + "babel-plugin-transform-decorators": "^6.24.1", + "babel-preset-stage-3": "^6.24.1" } }, "babel-preset-stage-3": { @@ -1877,11 +1879,11 @@ "integrity": "sha1-g2raCp56f6N8sTj7kyb4eTSkg5U=", "dev": true, "requires": { - "babel-plugin-syntax-trailing-function-commas": "6.22.0", - "babel-plugin-transform-async-generator-functions": "6.24.1", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-exponentiation-operator": "6.24.1", - "babel-plugin-transform-object-rest-spread": "6.26.0" + "babel-plugin-syntax-trailing-function-commas": "^6.22.0", + "babel-plugin-transform-async-generator-functions": "^6.24.1", + "babel-plugin-transform-async-to-generator": "^6.24.1", + "babel-plugin-transform-exponentiation-operator": "^6.24.1", + "babel-plugin-transform-object-rest-spread": "^6.22.0" } }, "babel-register": { @@ -1890,13 +1892,13 @@ "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", "dev": true, "requires": { - "babel-core": "6.26.3", - "babel-runtime": "6.26.0", - "core-js": "2.6.5", - "home-or-tmp": "2.0.0", - "lodash": "4.17.11", - "mkdirp": "0.5.1", - "source-map-support": "0.4.18" + "babel-core": "^6.26.0", + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "home-or-tmp": "^2.0.0", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "source-map-support": "^0.4.15" }, "dependencies": { "core-js": { @@ -1912,8 +1914,8 @@ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "requires": { - "core-js": "2.6.5", - "regenerator-runtime": "0.11.1" + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" }, "dependencies": { "core-js": { @@ -1929,11 +1931,11 @@ "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash": "4.17.11" + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" } }, "babel-traverse": { @@ -1942,15 +1944,15 @@ "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", "dev": true, "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.9", - "globals": "9.18.0", - "invariant": "2.2.4", - "lodash": "4.17.11" + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" } }, "babel-types": { @@ -1959,10 +1961,10 @@ "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.11", - "to-fast-properties": "1.0.3" + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" }, "dependencies": { "to-fast-properties": { @@ -1996,13 +1998,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": { @@ -2011,7 +2013,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { @@ -2020,7 +2022,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -2029,7 +2031,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -2038,9 +2040,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" } }, "kind-of": { @@ -2074,7 +2076,7 @@ "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "dev": true, "requires": { - "tweetnacl": "0.14.5" + "tweetnacl": "^0.14.3" } }, "big.js": { @@ -2089,9 +2091,9 @@ "dev": true }, "binary-extensions": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.0.tgz", - "integrity": "sha512-EgmjVLMn22z7eGGv3kcnHwSnJXmFHjISTY9E/S5lIcTD3Oxw05QTcBLNkJFzcb3cNueUdF/IN4U+d78V0zO8Hw==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", "dev": true }, "block-stream": { @@ -2100,13 +2102,13 @@ "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", "dev": true, "requires": { - "inherits": "2.0.3" + "inherits": "~2.0.0" } }, "bluebird": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.3.tgz", - "integrity": "sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw==" + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.4.tgz", + "integrity": "sha512-FG+nFEZChJrbQ9tIccIfZJBz3J7mLrAhxakAbnrJWn8d7aKOC+LWifa0G+p4ZqKp4y13T7juYvdhq9NzKdsrjw==" }, "blueimp-tmpl": { "version": "2.5.7", @@ -2132,15 +2134,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.2", + "http-errors": "~1.6.3", "iconv-lite": "0.4.23", - "on-finished": "2.3.0", + "on-finished": "~2.3.0", "qs": "6.5.2", "raw-body": "2.3.3", - "type-is": "1.6.16" + "type-is": "~1.6.16" }, "dependencies": { "iconv-lite": { @@ -2149,7 +2151,7 @@ "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", "dev": true, "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": ">= 2.1.2 < 3" } }, "qs": { @@ -2166,12 +2168,12 @@ "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", "dev": true, "requires": { - "array-flatten": "2.1.2", - "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" } }, "boolbase": { @@ -2200,7 +2202,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -2210,9 +2212,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": { @@ -2227,7 +2229,7 @@ "integrity": "sha1-BnFJtmjfMcS1hTPgLQHoBthgjiw=", "dev": true, "requires": { - "inherits": "2.0.3" + "inherits": "^2.0.1" } }, "browserify-cipher": { @@ -2236,9 +2238,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" }, "dependencies": { "browserify-aes": { @@ -2247,12 +2249,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" } } } @@ -2263,10 +2265,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": { @@ -2275,8 +2277,8 @@ "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", "dev": true, "requires": { - "bn.js": "4.11.8", - "randombytes": "2.1.0" + "bn.js": "^4.1.0", + "randombytes": "^2.0.1" } }, "browserify-sign": { @@ -2285,13 +2287,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.4" + "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": { @@ -2300,7 +2302,7 @@ "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=", "dev": true, "requires": { - "pako": "0.2.9" + "pako": "~0.2.0" } }, "browserslist": { @@ -2309,8 +2311,8 @@ "integrity": "sha512-yWu5cXT7Av6mVwzWc8lMsJMHWn4xyjSuGYi4IozbVTLUOEYPSagUB8kiMDUHA1fS3zjr8nkxkn9jdvug4BBRmA==", "dev": true, "requires": { - "caniuse-lite": "1.0.30000941", - "electron-to-chromium": "1.3.113" + "caniuse-lite": "^1.0.30000792", + "electron-to-chromium": "^1.3.30" } }, "buffer": { @@ -2319,9 +2321,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-equal": { @@ -2366,19 +2368,19 @@ "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==", "dev": true, "requires": { - "bluebird": "3.5.3", - "chownr": "1.1.1", - "glob": "7.1.3", - "graceful-fs": "4.1.15", - "lru-cache": "4.1.5", - "mississippi": "2.0.0", - "mkdirp": "0.5.1", - "move-concurrently": "1.0.1", - "promise-inflight": "1.0.1", - "rimraf": "2.6.3", - "ssri": "5.3.0", - "unique-filename": "1.1.1", - "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": { "glob": { @@ -2387,12 +2389,12 @@ "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "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" } } } @@ -2403,15 +2405,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" } }, "caller-callsite": { @@ -2419,7 +2421,7 @@ "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", "requires": { - "callsites": "2.0.0" + "callsites": "^2.0.0" } }, "caller-path": { @@ -2427,7 +2429,7 @@ "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", "requires": { - "caller-callsite": "2.0.0" + "caller-callsite": "^2.0.0" } }, "callsites": { @@ -2440,8 +2442,8 @@ "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-1.2.2.tgz", "integrity": "sha1-Gsp8TRlTWaLOmVV5NDPG5VQlEfI=", "requires": { - "sentence-case": "1.1.3", - "upper-case": "1.1.3" + "sentence-case": "^1.1.1", + "upper-case": "^1.1.1" } }, "camelcase": { @@ -2455,8 +2457,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": { @@ -2473,10 +2475,10 @@ "integrity": "sha1-tTTnxzTE+B7F++isoq0kNUuWLGw=", "dev": true, "requires": { - "browserslist": "1.7.7", - "caniuse-db": "1.0.30000941", - "lodash.memoize": "4.1.2", - "lodash.uniq": "4.5.0" + "browserslist": "^1.3.6", + "caniuse-db": "^1.0.30000529", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" }, "dependencies": { "browserslist": { @@ -2485,22 +2487,22 @@ "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", "dev": true, "requires": { - "caniuse-db": "1.0.30000941", - "electron-to-chromium": "1.3.113" + "caniuse-db": "^1.0.30000639", + "electron-to-chromium": "^1.2.7" } } } }, "caniuse-db": { - "version": "1.0.30000941", - "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000941.tgz", - "integrity": "sha512-xgDlJ1rEg4Zb1wqyiDw1Lwd2lIrG5El9vhHwURihFw8+Gk2PcyVh1RWaymOwFx6q49rMgVFqQAvLJmEU9RUUJg==", + "version": "1.0.30000963", + "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000963.tgz", + "integrity": "sha512-5Qk1jSsqRY3dD7BAjU018y0MsznzYb+kMTKzGknue8vSWlHkw2S345vRnd0cVEerzZ6ugUfoKaUOOVbBxWLWCA==", "dev": true }, "caniuse-lite": { - "version": "1.0.30000941", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000941.tgz", - "integrity": "sha512-4vzGb2MfZcO20VMPj1j6nRAixhmtlhkypM4fL4zhgzEucQIYiRzSqPcWIu1OF8i0FETD93FMIPWfUJCAcFvrqA==", + "version": "1.0.30000963", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000963.tgz", + "integrity": "sha512-n4HUiullc7Lw0LyzpeLa2ffP8KxFBGdxqD/8G3bSL6oB758hZ2UE2CVK+tQN958tJIi0/tfpjAc67aAtoHgnrQ==", "dev": true }, "caseless": { @@ -2520,8 +2522,8 @@ "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", "requires": { - "align-text": "0.1.4", - "lazy-cache": "1.0.4" + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" } }, "chai": { @@ -2530,9 +2532,9 @@ "integrity": "sha1-TQJjewZ/6Vi9v906QOxW/vc3Mkc=", "dev": true, "requires": { - "assertion-error": "1.1.0", - "deep-eql": "0.1.3", - "type-detect": "1.0.0" + "assertion-error": "^1.0.1", + "deep-eql": "^0.1.3", + "type-detect": "^1.0.0" } }, "chain-function": { @@ -2546,9 +2548,9 @@ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "change-case": { @@ -2556,22 +2558,22 @@ "resolved": "https://registry.npmjs.org/change-case/-/change-case-2.3.1.tgz", "integrity": "sha1-LE/ePwY7tB0AzWjg1aCdthy+iU8=", "requires": { - "camel-case": "1.2.2", - "constant-case": "1.1.2", - "dot-case": "1.1.2", - "is-lower-case": "1.1.3", - "is-upper-case": "1.1.2", - "lower-case": "1.1.4", - "lower-case-first": "1.0.2", - "param-case": "1.1.2", - "pascal-case": "1.1.2", - "path-case": "1.1.2", - "sentence-case": "1.1.3", - "snake-case": "1.1.2", - "swap-case": "1.1.2", - "title-case": "1.1.2", - "upper-case": "1.1.3", - "upper-case-first": "1.1.2" + "camel-case": "^1.1.1", + "constant-case": "^1.1.0", + "dot-case": "^1.1.0", + "is-lower-case": "^1.1.0", + "is-upper-case": "^1.1.0", + "lower-case": "^1.1.1", + "lower-case-first": "^1.0.0", + "param-case": "^1.1.0", + "pascal-case": "^1.1.0", + "path-case": "^1.1.0", + "sentence-case": "^1.1.1", + "snake-case": "^1.1.0", + "swap-case": "^1.1.0", + "title-case": "^1.1.0", + "upper-case": "^1.1.1", + "upper-case-first": "^1.1.0" } }, "change-emitter": { @@ -2620,12 +2622,12 @@ "integrity": "sha1-XHEPK6uVZTJyhCugHG6mGzVF7DU=", "dev": true, "requires": { - "css-select": "1.2.0", - "dom-serializer": "0.1.1", - "entities": "1.1.2", - "htmlparser2": "3.8.3", - "jsdom": "7.2.2", - "lodash": "4.17.11" + "css-select": "~1.2.0", + "dom-serializer": "~0.1.0", + "entities": "~1.1.1", + "htmlparser2": "~3.8.1", + "jsdom": "^7.0.2", + "lodash": "^4.1.0" } }, "chokidar": { @@ -2634,15 +2636,15 @@ "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", "dev": true, "requires": { - "anymatch": "1.3.2", - "async-each": "1.0.1", - "fsevents": "1.2.7", - "glob-parent": "2.0.0", - "inherits": "2.0.3", - "is-binary-path": "1.0.1", - "is-glob": "2.0.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.2.1" + "anymatch": "^1.3.0", + "async-each": "^1.0.0", + "fsevents": "^1.0.0", + "glob-parent": "^2.0.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^2.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0" } }, "chownr": { @@ -2657,8 +2659,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": { @@ -2673,8 +2675,8 @@ "integrity": "sha1-BtylKvKvZJqMBTnBeZD2M63G3Y8=", "dev": true, "requires": { - "coffee-react-transform": "4.0.0", - "loader-utils": "0.2.17" + "coffee-react-transform": "^4.0.0", + "loader-utils": "0.2.x" }, "dependencies": { "loader-utils": { @@ -2683,10 +2685,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" } }, "object-assign": { @@ -2703,7 +2705,7 @@ "integrity": "sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA==", "dev": true, "requires": { - "chalk": "1.1.3" + "chalk": "^1.1.3" }, "dependencies": { "ansi-styles": { @@ -2718,11 +2720,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": { @@ -2739,10 +2741,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": { @@ -2751,7 +2753,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -2766,8 +2768,8 @@ "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-3.4.28.tgz", "integrity": "sha1-vxlF6C/ICPVWlebd6uwBQA79A/8=", "requires": { - "commander": "2.8.1", - "source-map": "0.4.4" + "commander": "2.8.x", + "source-map": "0.4.x" }, "dependencies": { "commander": { @@ -2775,7 +2777,7 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz", "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=", "requires": { - "graceful-readlink": "1.0.1" + "graceful-readlink": ">= 1.0.0" } } } @@ -2786,7 +2788,7 @@ "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "dev": true, "requires": { - "restore-cursor": "2.0.0" + "restore-cursor": "^2.0.0" } }, "cli-width": { @@ -2800,8 +2802,8 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", "requires": { - "center-align": "0.1.3", - "right-align": "0.1.3", + "center-align": "^0.1.1", + "right-align": "^0.1.1", "wordwrap": "0.0.2" } }, @@ -2817,10 +2819,10 @@ "integrity": "sha512-SZegPTKjCgpQH63E+eN6mVEEPdQBOUzjyJm5Pora4lrwWRFS8I0QAxV/KD6vV/i0WuijHZWQC1fMsPEdxfdVCQ==", "dev": true, "requires": { - "for-own": "1.0.0", - "is-plain-object": "2.0.4", - "kind-of": "6.0.2", - "shallow-clone": "1.0.0" + "for-own": "^1.0.0", + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.0", + "shallow-clone": "^1.0.0" }, "dependencies": { "for-own": { @@ -2829,7 +2831,7 @@ "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", "dev": true, "requires": { - "for-in": "1.0.2" + "for-in": "^1.0.1" } }, "kind-of": { @@ -2846,8 +2848,8 @@ "integrity": "sha512-Fcij9IwRW27XedRIJnSOEupS7RVcXtObJXbcUOX93UCLqqOdRpkvzKywOOSizmEK/Is3S/RHX9dLdfo6R1Q1mw==", "dev": true, "requires": { - "is-regexp": "1.0.0", - "is-supported-regexp-flag": "1.0.1" + "is-regexp": "^1.0.0", + "is-supported-regexp-flag": "^1.0.0" } }, "clone-stats": { @@ -2867,7 +2869,7 @@ "integrity": "sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0=", "dev": true, "requires": { - "q": "1.5.1" + "q": "^1.1.2" } }, "code-point-at": { @@ -2882,7 +2884,7 @@ "integrity": "sha512-jMxsuxagYouuhTcf1EoLz8pONTIl5gwuyIdTIOCuArGLQiNc2fS6G7KfTfadb8+hiOfwslhD60wjih2knTnAww==", "dev": true, "requires": { - "loader-utils": "1.1.0" + "loader-utils": "^1.0.2" } }, "coffee-react-transform": { @@ -2908,8 +2910,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": { @@ -2918,9 +2920,9 @@ "integrity": "sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q=", "dev": true, "requires": { - "clone": "1.0.4", - "color-convert": "1.9.3", - "color-string": "0.3.0" + "clone": "^1.0.2", + "color-convert": "^1.3.0", + "color-string": "^0.3.0" } }, "color-convert": { @@ -2944,7 +2946,7 @@ "integrity": "sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE=", "dev": true, "requires": { - "color-name": "1.1.3" + "color-name": "^1.0.0" } }, "colormin": { @@ -2953,9 +2955,9 @@ "integrity": "sha1-6i90IKcrlogaOKrlnsEkpvcpgTM=", "dev": true, "requires": { - "color": "0.11.4", + "color": "^0.11.0", "css-color-names": "0.0.4", - "has": "1.0.3" + "has": "^1.0.1" } }, "colors": { @@ -2969,7 +2971,7 @@ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", "requires": { - "delayed-stream": "1.0.0" + "delayed-stream": "~1.0.0" } }, "commander": { @@ -2977,7 +2979,7 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", "requires": { - "graceful-readlink": "1.0.1" + "graceful-readlink": ">= 1.0.0" } }, "commondir": { @@ -2991,15 +2993,15 @@ "resolved": "https://registry.npmjs.org/commoner/-/commoner-0.10.8.tgz", "integrity": "sha1-NPw2cs0kOT6LtH5wyqApOBH08sU=", "requires": { - "commander": "2.9.0", - "detective": "4.7.1", - "glob": "5.0.15", - "graceful-fs": "4.1.15", - "iconv-lite": "0.4.24", - "mkdirp": "0.5.1", - "private": "0.1.8", - "q": "1.5.1", - "recast": "0.11.23" + "commander": "^2.5.0", + "detective": "^4.3.1", + "glob": "^5.0.15", + "graceful-fs": "^4.1.2", + "iconv-lite": "^0.4.5", + "mkdirp": "^0.5.0", + "private": "^0.1.6", + "q": "^1.1.2", + "recast": "^0.11.17" } }, "component-classes": { @@ -3011,9 +3013,9 @@ } }, "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" }, "component-indexof": { "version": "0.0.3", @@ -3026,22 +3028,22 @@ "integrity": "sha512-JQfEOdnI7dASwCuSPWIeVYwc/zMsu/+tRhoUvEfXz2gxOA2DNjmG5vhtFdBlhWPPGo+RdT9S3tgc/uH5qgDiiA==", "dev": true, "requires": { - "mime-db": "1.38.0" + "mime-db": ">= 1.38.0 < 2" } }, "compression": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.3.tgz", - "integrity": "sha512-HSjyBG5N1Nnz7tF2+O7A9XUhyjru71/fwgNb7oIsEVHR0WShfs2tIS/EySLgiTe98aOK18YDlMXpzjCXY/n9mg==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", "dev": true, "requires": { - "accepts": "1.3.5", + "accepts": "~1.3.5", "bytes": "3.0.0", - "compressible": "2.0.16", + "compressible": "~2.0.16", "debug": "2.6.9", - "on-headers": "1.0.2", + "on-headers": "~1.0.2", "safe-buffer": "5.1.2", - "vary": "1.1.2" + "vary": "~1.1.2" } }, "compression-webpack-plugin": { @@ -3050,11 +3052,11 @@ "integrity": "sha512-UpBXSHbrCSdSZieAffqXlAQpLO2fikVVRYibrWlbHYzKpOw1Y4jwkVZ/+S91GzWuJvXSbc8SBy/e8fQJh8uEMQ==", "dev": true, "requires": { - "cacache": "10.0.4", - "find-cache-dir": "1.0.0", - "neo-async": "2.6.0", - "serialize-javascript": "1.6.1", - "webpack-sources": "1.3.0" + "cacache": "^10.0.1", + "find-cache-dir": "^1.0.0", + "neo-async": "^2.5.0", + "serialize-javascript": "^1.4.0", + "webpack-sources": "^1.0.1" } }, "concat-map": { @@ -3067,9 +3069,9 @@ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz", "integrity": "sha1-cIl4Yk2FavQaWnQd790mHadSwmY=", "requires": { - "inherits": "2.0.3", - "readable-stream": "2.0.6", - "typedarray": "0.0.6" + "inherits": "~2.0.1", + "readable-stream": "~2.0.0", + "typedarray": "~0.0.5" } }, "connect-history-api-fallback": { @@ -3084,7 +3086,7 @@ "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", "dev": true, "requires": { - "date-now": "0.1.4" + "date-now": "^0.1.4" } }, "console-control-strings": { @@ -3098,8 +3100,8 @@ "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-1.1.2.tgz", "integrity": "sha1-jsLKW6ND4Aqjjb9OIA/VrJB+/WM=", "requires": { - "snake-case": "1.1.2", - "upper-case": "1.1.3" + "snake-case": "^1.1.0", + "upper-case": "^1.1.1" } }, "constants-browserify": { @@ -3131,7 +3133,7 @@ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.1" } }, "cookie": { @@ -3157,12 +3159,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.3", - "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": { @@ -3182,15 +3184,14 @@ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "cosmiconfig": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.1.0.tgz", - "integrity": "sha512-kCNPvthka8gvLtzAxQXvWo4FxqRB+ftRZyPZNuab5ngvM9Y7yw7hbEysglptLgpkGX9nAOKTBVkHUAe8xtYR6Q==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.0.tgz", + "integrity": "sha512-nxt+Nfc3JAqf4WIWd0jXLjTJZmsPLrA9DDc4nRw2KFJQJK7DNooqSXrNI7tzLG50CF8axczly5UV929tBmh/7g==", "requires": { - "import-fresh": "2.0.0", - "is-directory": "0.3.1", - "js-yaml": "3.12.2", - "lodash.get": "4.4.2", - "parse-json": "4.0.0" + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.0", + "parse-json": "^4.0.0" } }, "create-ecdh": { @@ -3199,8 +3200,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-emotion": { @@ -3208,13 +3209,13 @@ "resolved": "https://registry.npmjs.org/create-emotion/-/create-emotion-9.2.12.tgz", "integrity": "sha512-P57uOF9NL2y98Xrbl2OuiDQUZ30GVmASsv5fbsjF4Hlraip2kyAvMm+2PoYUvFFw03Fhgtxk3RqZSm2/qHL9hA==", "requires": { - "@emotion/hash": "0.6.6", - "@emotion/memoize": "0.6.6", - "@emotion/stylis": "0.7.1", - "@emotion/unitless": "0.6.7", - "csstype": "2.6.2", - "stylis": "3.5.4", - "stylis-rule-sheet": "0.0.10" + "@emotion/hash": "^0.6.2", + "@emotion/memoize": "^0.6.1", + "@emotion/stylis": "^0.7.0", + "@emotion/unitless": "^0.6.2", + "csstype": "^2.5.2", + "stylis": "^3.5.0", + "stylis-rule-sheet": "^0.0.10" } }, "create-hash": { @@ -3223,11 +3224,11 @@ "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", "dev": true, "requires": { - "cipher-base": "1.0.4", - "inherits": "2.0.3", - "md5.js": "1.3.5", - "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" }, "dependencies": { "ripemd160": { @@ -3236,8 +3237,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" } }, "sha.js": { @@ -3246,8 +3247,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" } } } @@ -3258,12 +3259,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" }, "dependencies": { "ripemd160": { @@ -3272,8 +3273,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" } }, "sha.js": { @@ -3282,8 +3283,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" } } } @@ -3293,9 +3294,9 @@ "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.6.3.tgz", "integrity": "sha512-M+/3Q6E6DLO6Yx3OwrWjwHBnvfXXYA7W+dFjt/ZDBemHO1DDZhsalX/NUtnTYclN6GfnBDRh4qRHjcDHmlJBJg==", "requires": { - "fbjs": "0.8.17", - "loose-envify": "1.4.0", - "object-assign": "4.1.1" + "fbjs": "^0.8.9", + "loose-envify": "^1.3.1", + "object-assign": "^4.1.1" }, "dependencies": { "object-assign": { @@ -3311,8 +3312,8 @@ "integrity": "sha1-K950jvx4D1bd8H6mn8rYdTV3dM4=", "dev": true, "requires": { - "cross-spawn": "3.0.1", - "lodash.assign": "3.2.0" + "cross-spawn": "^3.0.1", + "lodash.assign": "^3.2.0" }, "dependencies": { "lodash.assign": { @@ -3321,9 +3322,9 @@ "integrity": "sha1-POnwI0tLIiPilrj6CsH+6OvKZPo=", "dev": true, "requires": { - "lodash._baseassign": "3.2.0", - "lodash._createassigner": "3.1.1", - "lodash.keys": "3.1.2" + "lodash._baseassign": "^3.0.0", + "lodash._createassigner": "^3.0.0", + "lodash.keys": "^3.0.0" } } } @@ -3334,8 +3335,8 @@ "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", "dev": true, "requires": { - "lru-cache": "4.1.5", - "which": "1.3.1" + "lru-cache": "^4.0.1", + "which": "^1.2.9" } }, "crypt": { @@ -3360,10 +3361,10 @@ "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==", "requires": { - "inherits": "2.0.3", - "source-map": "0.6.1", - "source-map-resolve": "0.5.2", - "urix": "0.1.0" + "inherits": "^2.0.3", + "source-map": "^0.6.1", + "source-map-resolve": "^0.5.2", + "urix": "^0.1.0" }, "dependencies": { "source-map": { @@ -3378,8 +3379,8 @@ "resolved": "https://registry.npmjs.org/css-animation/-/css-animation-1.5.0.tgz", "integrity": "sha512-hWYoWiOZ7Vr20etzLh3kpWgtC454tW5vn4I6rLANDgpzNSkO7UfOqyCEeaoBSG9CYWQpRkFWTWbWW8o3uZrNLw==", "requires": { - "babel-runtime": "6.26.0", - "component-classes": "1.2.6" + "babel-runtime": "6.x", + "component-classes": "^1.2.5" } }, "css-color-names": { @@ -3394,20 +3395,20 @@ "integrity": "sha512-wovHgjAx8ZIMGSL8pTys7edA1ClmzxHeY6n/d97gg5odgsxEgKjULPR0viqyC+FWMCL9sfqoC/QCUBo62tLvPg==", "dev": true, "requires": { - "babel-code-frame": "6.26.0", - "css-selector-tokenizer": "0.7.1", - "cssnano": "3.10.0", - "icss-utils": "2.1.0", - "loader-utils": "1.1.0", - "lodash.camelcase": "4.3.0", - "object-assign": "4.1.1", - "postcss": "5.2.18", - "postcss-modules-extract-imports": "1.2.1", - "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.1", - "source-list-map": "2.0.1" + "babel-code-frame": "^6.26.0", + "css-selector-tokenizer": "^0.7.0", + "cssnano": "^3.10.0", + "icss-utils": "^2.1.0", + "loader-utils": "^1.0.2", + "lodash.camelcase": "^4.3.0", + "object-assign": "^4.1.1", + "postcss": "^5.0.6", + "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": { "ansi-styles": { @@ -3428,7 +3429,7 @@ "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=", "dev": true, "requires": { - "postcss": "6.0.23" + "postcss": "^6.0.1" }, "dependencies": { "postcss": { @@ -3437,9 +3438,9 @@ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "5.5.0" + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" } } } @@ -3456,10 +3457,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.5.1", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" }, "dependencies": { "chalk": { @@ -3468,11 +3469,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" }, "dependencies": { "supports-color": { @@ -3495,7 +3496,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -3539,11 +3540,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" }, "dependencies": { "supports-color": { @@ -3566,9 +3567,9 @@ "integrity": "sha1-AA29H47vIXqjaLmiEsX8QLKo8/I=", "dev": true, "requires": { - "chalk": "1.1.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "postcss-modules-extract-imports": { @@ -3577,7 +3578,7 @@ "integrity": "sha1-thTJcgvmgW6u41+zpfqh26agXds=", "dev": true, "requires": { - "postcss": "6.0.1" + "postcss": "^6.0.1" } }, "source-map": { @@ -3592,7 +3593,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -3603,18 +3604,18 @@ "integrity": "sha1-Z5LKQSsV4j5vm+agfc739Xf/kE0=", "dev": true, "requires": { - "debug": "2.6.9", - "generic-names": "1.0.3", - "glob-to-regexp": "0.3.0", - "icss-replace-symbols": "1.1.0", - "lodash": "4.17.11", - "postcss": "6.0.23", - "postcss-modules-extract-imports": "1.2.1", - "postcss-modules-local-by-default": "1.2.0", - "postcss-modules-resolve-imports": "1.3.0", - "postcss-modules-scope": "1.1.0", - "postcss-modules-values": "1.3.0", - "seekout": "1.0.2" + "debug": "^2.2.0", + "generic-names": "^1.0.1", + "glob-to-regexp": "^0.3.0", + "icss-replace-symbols": "^1.0.2", + "lodash": "^4.3.0", + "postcss": "^6.0.1", + "postcss-modules-extract-imports": "^1.0.0", + "postcss-modules-local-by-default": "^1.0.1", + "postcss-modules-resolve-imports": "^1.3.0", + "postcss-modules-scope": "^1.0.0", + "postcss-modules-values": "^1.1.1", + "seekout": "^1.0.1" } }, "css-select": { @@ -3623,10 +3624,10 @@ "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", "dev": true, "requires": { - "boolbase": "1.0.0", - "css-what": "2.1.3", + "boolbase": "~1.0.0", + "css-what": "2.1", "domutils": "1.5.1", - "nth-check": "1.0.2" + "nth-check": "~1.0.1" } }, "css-selector-tokenizer": { @@ -3635,9 +3636,9 @@ "integrity": "sha512-xYL0AMZJ4gFzJQsHUKa5jiWWi2vH77WVNg7JYRyewwj6oPh4yb/y6Y9ZCw9dsj/9UauMhtuxR+ogQd//EdEVNA==", "dev": true, "requires": { - "cssesc": "0.1.0", - "fastparse": "1.1.2", - "regexpu-core": "1.0.0" + "cssesc": "^0.1.0", + "fastparse": "^1.1.1", + "regexpu-core": "^1.0.0" } }, "css-what": { @@ -3658,38 +3659,38 @@ "integrity": "sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg=", "dev": true, "requires": { - "autoprefixer": "6.7.7", - "decamelize": "1.2.0", - "defined": "1.0.0", - "has": "1.0.3", - "object-assign": "4.1.1", - "postcss": "5.2.18", - "postcss-calc": "5.3.1", - "postcss-colormin": "2.2.2", - "postcss-convert-values": "2.6.1", - "postcss-discard-comments": "2.0.4", - "postcss-discard-duplicates": "2.1.0", - "postcss-discard-empty": "2.1.0", - "postcss-discard-overridden": "0.1.1", - "postcss-discard-unused": "2.2.3", - "postcss-filter-plugins": "2.0.3", - "postcss-merge-idents": "2.1.7", - "postcss-merge-longhand": "2.0.2", - "postcss-merge-rules": "2.1.2", - "postcss-minify-font-values": "1.0.5", - "postcss-minify-gradients": "1.0.5", - "postcss-minify-params": "1.2.2", - "postcss-minify-selectors": "2.1.1", - "postcss-normalize-charset": "1.1.1", - "postcss-normalize-url": "3.0.8", - "postcss-ordered-values": "2.2.3", - "postcss-reduce-idents": "2.4.0", - "postcss-reduce-initial": "1.0.1", - "postcss-reduce-transforms": "1.0.4", - "postcss-svgo": "2.1.6", - "postcss-unique-selectors": "2.0.2", - "postcss-value-parser": "3.3.1", - "postcss-zindex": "2.2.0" + "autoprefixer": "^6.3.1", + "decamelize": "^1.1.2", + "defined": "^1.0.0", + "has": "^1.0.1", + "object-assign": "^4.0.1", + "postcss": "^5.0.14", + "postcss-calc": "^5.2.0", + "postcss-colormin": "^2.1.8", + "postcss-convert-values": "^2.3.4", + "postcss-discard-comments": "^2.0.4", + "postcss-discard-duplicates": "^2.0.1", + "postcss-discard-empty": "^2.0.1", + "postcss-discard-overridden": "^0.1.1", + "postcss-discard-unused": "^2.2.1", + "postcss-filter-plugins": "^2.0.0", + "postcss-merge-idents": "^2.1.5", + "postcss-merge-longhand": "^2.0.1", + "postcss-merge-rules": "^2.0.3", + "postcss-minify-font-values": "^1.0.2", + "postcss-minify-gradients": "^1.0.1", + "postcss-minify-params": "^1.0.4", + "postcss-minify-selectors": "^2.0.4", + "postcss-normalize-charset": "^1.1.0", + "postcss-normalize-url": "^3.0.7", + "postcss-ordered-values": "^2.1.0", + "postcss-reduce-idents": "^2.2.2", + "postcss-reduce-initial": "^1.0.0", + "postcss-reduce-transforms": "^1.0.3", + "postcss-svgo": "^2.1.1", + "postcss-unique-selectors": "^2.0.2", + "postcss-value-parser": "^3.2.3", + "postcss-zindex": "^2.0.1" }, "dependencies": { "ansi-styles": { @@ -3704,12 +3705,12 @@ "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=", "dev": true, "requires": { - "browserslist": "1.7.7", - "caniuse-db": "1.0.30000941", - "normalize-range": "0.1.2", - "num2fraction": "1.2.2", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.1" + "browserslist": "^1.7.6", + "caniuse-db": "^1.0.30000634", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^5.2.16", + "postcss-value-parser": "^3.2.3" } }, "browserslist": { @@ -3718,8 +3719,8 @@ "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", "dev": true, "requires": { - "caniuse-db": "1.0.30000941", - "electron-to-chromium": "1.3.113" + "caniuse-db": "^1.0.30000639", + "electron-to-chromium": "^1.2.7" } }, "chalk": { @@ -3728,11 +3729,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" }, "dependencies": { "supports-color": { @@ -3761,10 +3762,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.5.1", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "source-map": { @@ -3779,7 +3780,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -3790,8 +3791,8 @@ "integrity": "sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U=", "dev": true, "requires": { - "clap": "1.2.3", - "source-map": "0.5.7" + "clap": "^1.0.9", + "source-map": "^0.5.3" }, "dependencies": { "source-map": { @@ -3814,13 +3815,13 @@ "integrity": "sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ=", "dev": true, "requires": { - "cssom": "0.3.6" + "cssom": "0.3.x" } }, "csstype": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.2.tgz", - "integrity": "sha512-Rl7PvTae0pflc1YtxtKbiSqq20Ts6vpIYOD5WBafl4y123DyHUeLrRdQP66sQW8/6gmX8jrYJLXwNeMqYVJcow==" + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.4.tgz", + "integrity": "sha512-lAJUJP3M6HxFXbqtGRc0iZrdyeN+WzOWeY0q/VnFzI+kqVrYIzC7bWlKqCW7oCIdzoPkvfp82EVvrTlQ8zsWQg==" }, "currently-unhandled": { "version": "0.4.1", @@ -3828,7 +3829,7 @@ "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", "dev": true, "requires": { - "array-find-index": "1.0.2" + "array-find-index": "^1.0.1" } }, "cyclist": { @@ -3842,7 +3843,7 @@ "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", "requires": { - "es5-ext": "0.10.48" + "es5-ext": "^0.10.9" } }, "damerau-levenshtein": { @@ -3857,7 +3858,7 @@ "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "dev": true, "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "date-now": { @@ -3885,8 +3886,8 @@ "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", "dev": true, "requires": { - "decamelize": "1.2.0", - "map-obj": "1.0.1" + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" } }, "decode-uri-component": { @@ -3944,7 +3945,7 @@ "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", "dev": true, "requires": { - "object-keys": "1.1.0" + "object-keys": "^1.0.12" } }, "define-property": { @@ -3953,8 +3954,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": { @@ -3963,7 +3964,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -3972,7 +3973,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -3981,9 +3982,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" } }, "kind-of": { @@ -4005,12 +4006,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.3" + "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" }, "dependencies": { "glob": { @@ -4019,12 +4020,12 @@ "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "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" } }, "globby": { @@ -4033,11 +4034,11 @@ "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", "dev": true, "requires": { - "array-union": "1.0.2", - "glob": "7.1.3", - "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": { @@ -4079,8 +4080,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": { @@ -4095,7 +4096,7 @@ "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "dev": true, "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, "detect-node": { @@ -4109,8 +4110,8 @@ "resolved": "https://registry.npmjs.org/detective/-/detective-4.7.1.tgz", "integrity": "sha512-H6PmeeUcZloWtdt4DAkFyzFL94arpHr3NOwwmVILFiy+9Qd4JTxxXrzfyGk/lmct2qVGBwTSwSXagqu2BxmWig==", "requires": { - "acorn": "5.7.3", - "defined": "1.0.0" + "acorn": "^5.2.1", + "defined": "^1.0.0" } }, "diff": { @@ -4125,9 +4126,9 @@ "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", "dev": true, "requires": { - "bn.js": "4.11.8", - "miller-rabin": "4.0.1", - "randombytes": "2.1.0" + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" } }, "dir-glob": { @@ -4136,7 +4137,7 @@ "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==", "dev": true, "requires": { - "path-type": "3.0.0" + "path-type": "^3.0.0" }, "dependencies": { "path-type": { @@ -4145,7 +4146,7 @@ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, "requires": { - "pify": "3.0.0" + "pify": "^3.0.0" } } } @@ -4162,8 +4163,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": { @@ -4172,7 +4173,7 @@ "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", "dev": true, "requires": { - "buffer-indexof": "1.1.1" + "buffer-indexof": "^1.0.0" } }, "doctrine": { @@ -4181,7 +4182,7 @@ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, "requires": { - "esutils": "2.0.2" + "esutils": "^2.0.2" } }, "dom-align": { @@ -4195,7 +4196,7 @@ "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", "dev": true, "requires": { - "utila": "0.4.0" + "utila": "~0.4" } }, "dom-helpers": { @@ -4203,7 +4204,7 @@ "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.4.0.tgz", "integrity": "sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA==", "requires": { - "@babel/runtime": "7.3.4" + "@babel/runtime": "^7.1.2" } }, "dom-serializer": { @@ -4212,8 +4213,8 @@ "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", "dev": true, "requires": { - "domelementtype": "1.3.1", - "entities": "1.1.2" + "domelementtype": "^1.3.0", + "entities": "^1.1.1" } }, "dom-walk": { @@ -4240,7 +4241,7 @@ "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=", "dev": true, "requires": { - "domelementtype": "1.3.1" + "domelementtype": "1" } }, "domutils": { @@ -4249,8 +4250,8 @@ "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", "dev": true, "requires": { - "dom-serializer": "0.1.1", - "domelementtype": "1.3.1" + "dom-serializer": "0", + "domelementtype": "1" } }, "dot-case": { @@ -4258,7 +4259,7 @@ "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-1.1.2.tgz", "integrity": "sha1-HnOCaQDeKNbeVIC8HeMdCEKwa+w=", "requires": { - "sentence-case": "1.1.3" + "sentence-case": "^1.1.2" } }, "dot-prop": { @@ -4267,7 +4268,7 @@ "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", "dev": true, "requires": { - "is-obj": "1.0.1" + "is-obj": "^1.0.0" } }, "draft-js": { @@ -4275,9 +4276,9 @@ "resolved": "https://registry.npmjs.org/draft-js/-/draft-js-0.10.5.tgz", "integrity": "sha512-LE6jSCV9nkPhfVX2ggcRLA4FKs6zWq9ceuO/88BpXdNCS7mjRTgs0NsV6piUCJX9YxMsB9An33wnkMmU2sD2Zg==", "requires": { - "fbjs": "0.8.17", - "immutable": "3.7.6", - "object-assign": "4.1.1" + "fbjs": "^0.8.15", + "immutable": "~3.7.4", + "object-assign": "^4.1.0" }, "dependencies": { "object-assign": { @@ -4292,11 +4293,11 @@ "resolved": "https://registry.npmjs.org/draft-js-drag-n-drop-plugin/-/draft-js-drag-n-drop-plugin-2.0.3.tgz", "integrity": "sha512-sEM6nmDb4/vk7Ol0brGDxJmaBBu1Nf1Pl6GzZuDCAOMIfjZaLGnEf++SrtfA/1PoiMOhF2FN7y3i7QiuRXqOLg==", "requires": { - "decorate-component-with-props": "1.1.0", - "find-with-regex": "1.1.3", - "immutable": "3.7.6", - "prop-types": "15.7.2", - "union-class-names": "1.0.0" + "decorate-component-with-props": "^1.0.2", + "find-with-regex": "^1.1.3", + "immutable": "~3.7.4", + "prop-types": "^15.5.8", + "union-class-names": "^1.0.0" } }, "draft-js-image-plugin": { @@ -4304,11 +4305,11 @@ "resolved": "https://registry.npmjs.org/draft-js-image-plugin/-/draft-js-image-plugin-2.0.6.tgz", "integrity": "sha512-wFPjOURL/0BP3UPkIb23/XXNPv5hX/nMB8iOL3PJYLi6UvweGJwPWNp5lhuUNvvnU/xiqsGKQmtiGelZUIfvuw==", "requires": { - "decorate-component-with-props": "1.1.0", - "find-with-regex": "1.1.3", - "immutable": "3.7.6", - "prop-types": "15.7.2", - "union-class-names": "1.0.0" + "decorate-component-with-props": "^1.0.2", + "find-with-regex": "^1.1.3", + "immutable": "~3.7.4", + "prop-types": "^15.5.8", + "union-class-names": "^1.0.0" } }, "draft-js-link-plugin": { @@ -4316,7 +4317,7 @@ "resolved": "https://registry.npmjs.org/draft-js-link-plugin/-/draft-js-link-plugin-1.2.2.tgz", "integrity": "sha1-AZOfpiKneM2xQPn8KM1exM3k6uM=", "requires": { - "decorate-component-with-props": "1.1.0", + "decorate-component-with-props": "^1.0.2", "linkify-it": "2.0.0", "tlds": "1.159.0" }, @@ -4326,7 +4327,7 @@ "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.0.0.tgz", "integrity": "sha1-Yd41xfIsNjMYmnXTxAzT3Jasu5Q=", "requires": { - "uc.micro": "1.0.6" + "uc.micro": "^1.0.1" } }, "tlds": { @@ -4341,12 +4342,12 @@ "resolved": "https://registry.npmjs.org/draft-js-mention-plugin/-/draft-js-mention-plugin-2.0.1.tgz", "integrity": "sha512-MFJHf8QmtWmiMSVoZynNbM3HLBPc23fPeO8yenV4trC6C5o258gmY7XzH4z5yEjYH3f5yMLlLz6QspEkvd4uzg==", "requires": { - "decorate-component-with-props": "1.1.0", - "find-with-regex": "1.1.3", - "immutable": "3.7.6", - "lodash.escaperegexp": "4.1.2", - "prop-types": "15.7.2", - "union-class-names": "1.0.0" + "decorate-component-with-props": "^1.0.2", + "find-with-regex": "^1.0.2", + "immutable": "~3.7.4", + "lodash.escaperegexp": "^4.1.2", + "prop-types": "^15.5.8", + "union-class-names": "^1.0.0" } }, "draft-js-plugins-editor": { @@ -4354,11 +4355,11 @@ "resolved": "https://registry.npmjs.org/draft-js-plugins-editor/-/draft-js-plugins-editor-2.1.1.tgz", "integrity": "sha512-fKGe71irNvFHJ5L/lUrh+3vPkBNq0de6x+cgiZUJ9zQERc5KPBtGXIFiarLFVHyrRTCPq+K6xmgfFSAERaFHPw==", "requires": { - "decorate-component-with-props": "1.1.0", - "find-with-regex": "1.1.3", - "immutable": "3.7.6", - "prop-types": "15.7.2", - "union-class-names": "1.0.0" + "decorate-component-with-props": "^1.0.2", + "find-with-regex": "^1.1.3", + "immutable": "~3.7.4", + "prop-types": "^15.5.8", + "union-class-names": "^1.0.0" } }, "draft-js-utils": { @@ -4377,10 +4378,10 @@ "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", "dev": true, "requires": { - "end-of-stream": "1.4.1", - "inherits": "2.0.3", - "readable-stream": "2.0.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" } }, "ecc-jsbn": { @@ -4389,8 +4390,8 @@ "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", "dev": true, "requires": { - "jsbn": "0.1.1", - "safer-buffer": "2.1.2" + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" } }, "ee-first": { @@ -4400,9 +4401,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.3.113", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.113.tgz", - "integrity": "sha512-De+lPAxEcpxvqPTyZAXELNpRZXABRxf+uL/rSykstQhzj/B0l1150G/ExIIxKc16lI89Hgz81J0BHAcbTqK49g==", + "version": "1.3.125", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.125.tgz", + "integrity": "sha512-XxowpqQxJ4nDwUXHtVtmEhRqBpm2OnjBomZmZtHD0d2Eo0244+Ojezhk3sD/MBSSe2nxCdGQFRXHIsf/LUTL9A==", "dev": true }, "element-class": { @@ -4416,13 +4417,13 @@ "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==", "dev": true, "requires": { - "bn.js": "4.11.8", - "brorand": "1.1.0", - "hash.js": "1.1.7", - "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" } }, "emoji-regex": { @@ -4441,8 +4442,8 @@ "resolved": "https://registry.npmjs.org/emotion/-/emotion-9.2.12.tgz", "integrity": "sha512-hcx7jppaI8VoXxIWEhxpDW7I+B4kq9RNzQLmsrF6LY8BGKqe2N+gFAQr0EfuFucFlPs2A9HM4+xNj4NeqEWIOQ==", "requires": { - "babel-plugin-emotion": "9.2.11", - "create-emotion": "9.2.12" + "babel-plugin-emotion": "^9.2.11", + "create-emotion": "^9.2.12" } }, "encodeurl": { @@ -4456,7 +4457,7 @@ "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", "requires": { - "iconv-lite": "0.4.24" + "iconv-lite": "~0.4.13" } }, "end-of-stream": { @@ -4465,7 +4466,7 @@ "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", "dev": true, "requires": { - "once": "1.4.0" + "once": "^1.4.0" } }, "enhanced-resolve": { @@ -4474,9 +4475,9 @@ "integrity": "sha1-TW5omzcl+GCQknzMhs2fFjW4ni4=", "dev": true, "requires": { - "graceful-fs": "4.1.15", - "memory-fs": "0.2.0", - "tapable": "0.1.10" + "graceful-fs": "^4.1.2", + "memory-fs": "^0.2.0", + "tapable": "^0.1.8" }, "dependencies": { "memory-fs": { @@ -4498,8 +4499,8 @@ "resolved": "https://registry.npmjs.org/envify/-/envify-3.4.1.tgz", "integrity": "sha1-1xIjKejfFoi6dxsSUBkXyc5cvOg=", "requires": { - "jstransform": "11.0.3", - "through": "2.3.8" + "jstransform": "^11.0.3", + "through": "~2.3.4" } }, "errno": { @@ -4508,7 +4509,7 @@ "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", "dev": true, "requires": { - "prr": "1.0.1" + "prr": "~1.0.1" } }, "error-ex": { @@ -4516,7 +4517,7 @@ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "requires": { - "is-arrayish": "0.2.1" + "is-arrayish": "^0.2.1" } }, "es-abstract": { @@ -4525,12 +4526,12 @@ "integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==", "dev": true, "requires": { - "es-to-primitive": "1.2.0", - "function-bind": "1.1.1", - "has": "1.0.3", - "is-callable": "1.1.4", - "is-regex": "1.0.4", - "object-keys": "1.1.0" + "es-to-primitive": "^1.2.0", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "is-callable": "^1.1.4", + "is-regex": "^1.0.4", + "object-keys": "^1.0.12" } }, "es-to-primitive": { @@ -4539,19 +4540,19 @@ "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", "dev": true, "requires": { - "is-callable": "1.1.4", - "is-date-object": "1.0.1", - "is-symbol": "1.0.2" + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" } }, "es5-ext": { - "version": "0.10.48", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.48.tgz", - "integrity": "sha512-CdRvPlX/24Mj5L4NVxTs4804sxiS2CjVprgCmrgoDkdmjdY4D+ySHa7K3jJf8R40dFg0tIm3z/dk326LrnuSGw==", + "version": "0.10.49", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.49.tgz", + "integrity": "sha512-3NMEhi57E31qdzmYp2jwRArIUsj1HI/RxbQ4bgnSB+AIKIxsAmTiK83bYMifIcpWvEc3P1X30DhUKOqEtF/kvg==", "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.0.0" } }, "es6-iterator": { @@ -4559,9 +4560,9 @@ "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", "requires": { - "d": "1.0.0", - "es5-ext": "0.10.48", - "es6-symbol": "3.1.1" + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" } }, "es6-map": { @@ -4570,12 +4571,12 @@ "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.48", - "es6-iterator": "2.0.3", - "es6-set": "0.1.5", - "es6-symbol": "3.1.1", - "event-emitter": "0.3.5" + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", + "es6-set": "~0.1.5", + "es6-symbol": "~3.1.1", + "event-emitter": "~0.3.5" } }, "es6-promise": { @@ -4590,11 +4591,11 @@ "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.48", - "es6-iterator": "2.0.3", + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", "es6-symbol": "3.1.1", - "event-emitter": "0.3.5" + "event-emitter": "~0.3.5" } }, "es6-symbol": { @@ -4602,8 +4603,8 @@ "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", "requires": { - "d": "1.0.0", - "es5-ext": "0.10.48" + "d": "1", + "es5-ext": "~0.10.14" } }, "es6-weak-map": { @@ -4612,10 +4613,10 @@ "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.48", - "es6-iterator": "2.0.3", - "es6-symbol": "3.1.1" + "d": "1", + "es5-ext": "^0.10.14", + "es6-iterator": "^2.0.1", + "es6-symbol": "^3.1.1" } }, "escape-html": { @@ -4636,11 +4637,11 @@ "integrity": "sha512-JwiqFD9KdGVVpeuRa68yU3zZnBEOcPs0nKW7wZzXky8Z7tffdYUHbe11bPCV5jYlK6DVdKLWLm0f5I/QlL0Kmw==", "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": { @@ -4664,10 +4665,10 @@ "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", "dev": true, "requires": { - "es6-map": "0.1.5", - "es6-weak-map": "2.0.2", - "esrecurse": "4.2.1", - "estraverse": "4.2.0" + "es6-map": "^0.1.3", + "es6-weak-map": "^2.0.1", + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" } }, "eslint": { @@ -4676,44 +4677,44 @@ "integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==", "dev": true, "requires": { - "ajv": "5.5.2", - "babel-code-frame": "6.26.0", - "chalk": "2.4.2", - "concat-stream": "1.6.2", - "cross-spawn": "5.1.0", - "debug": "3.2.6", - "doctrine": "2.1.0", - "eslint-scope": "3.7.3", - "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.3", - "globals": "11.11.0", - "ignore": "3.3.10", - "imurmurhash": "0.1.4", - "inquirer": "3.3.0", - "is-resolvable": "1.1.0", - "js-yaml": "3.12.2", - "json-stable-stringify-without-jsonify": "1.0.1", - "levn": "0.3.0", - "lodash": "4.17.11", - "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.3", - "regexpp": "1.1.0", - "require-uncached": "1.0.3", - "semver": "5.6.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": { @@ -4722,10 +4723,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": { @@ -4740,10 +4741,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" } }, "cross-spawn": { @@ -4752,9 +4753,9 @@ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "dev": true, "requires": { - "lru-cache": "4.1.5", - "shebang-command": "1.2.0", - "which": "1.3.1" + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, "debug": { @@ -4763,7 +4764,7 @@ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "dev": true, "requires": { - "ms": "2.1.1" + "ms": "^2.1.1" } }, "fast-deep-equal": { @@ -4778,12 +4779,12 @@ "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "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" } }, "globals": { @@ -4816,13 +4817,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" } }, "string_decoder": { @@ -4831,7 +4832,7 @@ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } }, "strip-ansi": { @@ -4840,7 +4841,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -4851,7 +4852,7 @@ "integrity": "sha512-m0q9fiMBzDAIbirlGnpJNWToIhdhJmXXnMG+IFflYzzod9231ZhtmGKegKg8E9T8F1YuVaDSU1FnCm5b9iXVhQ==", "dev": true, "requires": { - "eslint-config-airbnb-base": "11.3.2" + "eslint-config-airbnb-base": "^11.3.0" } }, "eslint-config-airbnb-base": { @@ -4860,7 +4861,7 @@ "integrity": "sha512-/fhjt/VqzBA2SRsx7ErDtv6Ayf+XLw9LIOqmpBuHFCVwyJo2EtzGWMB9fYRFBoWWQLxmNmCpenNiH0RxyeS41w==", "dev": true, "requires": { - "eslint-restricted-globals": "0.1.1" + "eslint-restricted-globals": "^0.1.1" } }, "eslint-import-resolver-babel-module": { @@ -4869,8 +4870,8 @@ "integrity": "sha512-aPj0+pG0H3HCaMD9eRDYEzPdMyKrLE2oNhAzTXd2w86ZBe3s7drSrrPwVTfzO1CBp13FGk8S84oRmZHZvSo0mA==", "dev": true, "requires": { - "pkg-up": "2.0.0", - "resolve": "1.10.0" + "pkg-up": "^2.0.0", + "resolve": "^1.4.0" } }, "eslint-import-resolver-node": { @@ -4879,36 +4880,37 @@ "integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==", "dev": true, "requires": { - "debug": "2.6.9", - "resolve": "1.10.0" + "debug": "^2.6.9", + "resolve": "^1.5.0" } }, "eslint-module-utils": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.3.0.tgz", - "integrity": "sha512-lmDJgeOOjk8hObTysjqH7wyMi+nsHwwvfBykwfhjR1LNdd7C2uFJBvx4OpWYpXOw4df1yE1cDEVd1yLHitk34w==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.4.0.tgz", + "integrity": "sha512-14tltLm38Eu3zS+mt0KvILC3q8jyIAH518MlG+HO0p+yK885Lb1UHTY/UgR91eOyGdmxAPb+OLoW4znqIT6Ndw==", "dev": true, "requires": { - "debug": "2.6.9", - "pkg-dir": "2.0.0" + "debug": "^2.6.8", + "pkg-dir": "^2.0.0" } }, "eslint-plugin-import": { - "version": "2.16.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.16.0.tgz", - "integrity": "sha512-z6oqWlf1x5GkHIFgrSvtmudnqM6Q60KM4KvpWi5ubonMjycLjndvd5+8VAZIsTlHC03djdgJuyKG6XO577px6A==", + "version": "2.17.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.17.2.tgz", + "integrity": "sha512-m+cSVxM7oLsIpmwNn2WXTJoReOF9f/CtLMo7qOVmKd1KntBy0hEcuNZ3erTmWjx+DxRO0Zcrm5KwAvI9wHcV5g==", "dev": true, "requires": { - "contains-path": "0.1.0", - "debug": "2.6.9", + "array-includes": "^3.0.3", + "contains-path": "^0.1.0", + "debug": "^2.6.9", "doctrine": "1.5.0", - "eslint-import-resolver-node": "0.3.2", - "eslint-module-utils": "2.3.0", - "has": "1.0.3", - "lodash": "4.17.11", - "minimatch": "3.0.4", - "read-pkg-up": "2.0.0", - "resolve": "1.10.0" + "eslint-import-resolver-node": "^0.3.2", + "eslint-module-utils": "^2.4.0", + "has": "^1.0.3", + "lodash": "^4.17.11", + "minimatch": "^3.0.4", + "read-pkg-up": "^2.0.0", + "resolve": "^1.10.0" }, "dependencies": { "doctrine": { @@ -4917,8 +4919,8 @@ "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", "dev": true, "requires": { - "esutils": "2.0.2", - "isarray": "1.0.0" + "esutils": "^2.0.2", + "isarray": "^1.0.0" } } } @@ -4935,13 +4937,13 @@ "integrity": "sha512-5I9SpoP7gT4wBFOtXT8/tXNPYohHBVfyVfO17vkbC7r9kEIxYJF12D3pKqhk8+xnk12rfxKClS3WCFpVckFTPQ==", "dev": true, "requires": { - "aria-query": "0.7.1", - "array-includes": "3.0.3", + "aria-query": "^0.7.0", + "array-includes": "^3.0.3", "ast-types-flow": "0.0.7", - "axobject-query": "0.1.0", - "damerau-levenshtein": "1.0.4", - "emoji-regex": "6.5.1", - "jsx-ast-utils": "1.4.1" + "axobject-query": "^0.1.0", + "damerau-levenshtein": "^1.0.0", + "emoji-regex": "^6.1.0", + "jsx-ast-utils": "^1.4.0" } }, "eslint-plugin-react": { @@ -4950,22 +4952,22 @@ "integrity": "sha512-1puHJkXJY+oS1t467MjbqjvX53uQ05HXwjqDgdbGBqf5j9eeydI54G3KwiJmWciQ0HTBacIKw2jgwSBSH3yfgQ==", "dev": true, "requires": { - "array-includes": "3.0.3", - "doctrine": "2.1.0", - "has": "1.0.3", - "jsx-ast-utils": "2.0.1", - "object.fromentries": "2.0.0", - "prop-types": "15.7.2", - "resolve": "1.10.0" + "array-includes": "^3.0.3", + "doctrine": "^2.1.0", + "has": "^1.0.3", + "jsx-ast-utils": "^2.0.1", + "object.fromentries": "^2.0.0", + "prop-types": "^15.6.2", + "resolve": "^1.9.0" }, "dependencies": { "jsx-ast-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz", - "integrity": "sha1-6AGxs5mF4g//yHtA43SAgOLcrH8=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.1.0.tgz", + "integrity": "sha512-yDGDG2DS4JcqhA6blsuYbtsT09xL8AoLuUR2Gb5exrw7UEM19sBcOTq+YBBhrNbl0PUC4R4LnFu+dHg2HKeVvA==", "dev": true, "requires": { - "array-includes": "3.0.3" + "array-includes": "^3.0.3" } } } @@ -4982,8 +4984,8 @@ "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==", "dev": true, "requires": { - "esrecurse": "4.2.1", - "estraverse": "4.2.0" + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" } }, "eslint-visitor-keys": { @@ -4998,8 +5000,8 @@ "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", "dev": true, "requires": { - "acorn": "5.7.3", - "acorn-jsx": "3.0.1" + "acorn": "^5.5.0", + "acorn-jsx": "^3.0.0" } }, "esprima-fb": { @@ -5013,7 +5015,7 @@ "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", "dev": true, "requires": { - "estraverse": "4.2.0" + "estraverse": "^4.0.0" } }, "esrecurse": { @@ -5022,7 +5024,7 @@ "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", "dev": true, "requires": { - "estraverse": "4.2.0" + "estraverse": "^4.1.0" } }, "estraverse": { @@ -5048,8 +5050,8 @@ "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.48" + "d": "1", + "es5-ext": "~0.10.14" } }, "eventemitter3": { @@ -5069,7 +5071,7 @@ "integrity": "sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=", "dev": true, "requires": { - "original": "1.0.2" + "original": ">=0.0.5" } }, "evp_bytestokey": { @@ -5078,8 +5080,8 @@ "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", "dev": true, "requires": { - "md5.js": "1.3.5", - "safe-buffer": "5.1.2" + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" } }, "execa": { @@ -5088,13 +5090,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" }, "dependencies": { "cross-spawn": { @@ -5103,9 +5105,9 @@ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "dev": true, "requires": { - "lru-cache": "4.1.5", - "shebang-command": "1.2.0", - "which": "1.3.1" + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, "get-stream": { @@ -5122,7 +5124,7 @@ "integrity": "sha1-c9CQTjlbPKsGWLCNCewlMH8pu3M=", "dev": true, "requires": { - "clone-regexp": "1.0.1" + "clone-regexp": "^1.0.0" } }, "exenv": { @@ -5142,7 +5144,7 @@ "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "dev": true, "requires": { - "is-posix-bracket": "0.1.1" + "is-posix-bracket": "^0.1.0" } }, "expand-range": { @@ -5151,7 +5153,7 @@ "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "dev": true, "requires": { - "fill-range": "2.2.4" + "fill-range": "^2.1.0" } }, "express": { @@ -5160,36 +5162,36 @@ "integrity": "sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg==", "dev": true, "requires": { - "accepts": "1.3.5", + "accepts": "~1.3.5", "array-flatten": "1.1.1", "body-parser": "1.18.3", "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.4", "qs": "6.5.2", - "range-parser": "1.2.0", + "range-parser": "~1.2.0", "safe-buffer": "5.1.2", "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": { "array-flatten": { @@ -5212,6 +5214,13 @@ } } }, + "expression-evaluator": { + "version": "git+https://github.com/topcoder-platform/expression-evaluator.git#96689d21aa722ee5684f9dc9109bed72b2dddc02", + "from": "git+https://github.com/topcoder-platform/expression-evaluator.git#master", + "requires": { + "lodash": "^4.17.11" + } + }, "extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", @@ -5223,8 +5232,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": { @@ -5233,7 +5242,7 @@ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -5244,9 +5253,9 @@ "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", "dev": true, "requires": { - "chardet": "0.4.2", - "iconv-lite": "0.4.24", - "tmp": "0.0.33" + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", + "tmp": "^0.0.33" } }, "extglob": { @@ -5255,7 +5264,7 @@ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "dev": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "extract-css-chunks-webpack-plugin": { @@ -5265,11 +5274,11 @@ "dev": true, "requires": { "ajv": "4.11.2", - "async": "2.6.2", - "loader-utils": "1.1.0", - "schema-utils": "0.3.0", - "style-loader": "0.18.2", - "webpack-sources": "1.3.0" + "async": "^2.5.0", + "loader-utils": "^1.1.0", + "schema-utils": "^0.3.0", + "style-loader": "^0.18.2", + "webpack-sources": "^1.0.1" }, "dependencies": { "ajv": { @@ -5278,8 +5287,8 @@ "integrity": "sha1-8WbDwRy8bLncwQKlvP5bcslSh+Y=", "dev": true, "requires": { - "co": "4.6.0", - "json-stable-stringify": "1.0.1" + "co": "^4.6.0", + "json-stable-stringify": "^1.0.1" } }, "async": { @@ -5288,7 +5297,7 @@ "integrity": "sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==", "dev": true, "requires": { - "lodash": "4.17.11" + "lodash": "^4.17.11" } }, "style-loader": { @@ -5297,8 +5306,8 @@ "integrity": "sha512-WPpJPZGUxWYHWIUMNNOYqql7zh85zGmr84FdTVWq52WTIkqlW9xSxD3QYWi/T31cqn9UNSsietVEgGn2aaSCzw==", "dev": true, "requires": { - "loader-utils": "1.1.0", - "schema-utils": "0.3.0" + "loader-utils": "^1.0.2", + "schema-utils": "^0.3.0" } } } @@ -5321,10 +5330,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" } }, "process-nextick-args": { @@ -5339,13 +5348,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" } }, "string_decoder": { @@ -5354,7 +5363,7 @@ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } } } @@ -5393,24 +5402,24 @@ "integrity": "sha1-orE4AKs/7CcVvI8n+oQdA41HYeI=", "dev": true, "requires": { - "async": "1.5.2", - "cheerio": "0.19.0", - "clone": "1.0.4", - "colors": "1.1.2", - "harmony-reflect": "1.6.1", - "image-size": "0.4.0", - "jimp": "0.2.28", + "async": "^1.5.0", + "cheerio": "^0.19.0", + "clone": "^1.0.2", + "colors": "^1.1.2", + "harmony-reflect": "^1.4.2", + "image-size": "^0.4.0", + "jimp": "^0.2.13", "jsontoxml": "0.0.11", - "merge-defaults": "0.2.1", - "mkdirp": "0.5.1", - "node-rest-client": "1.8.0", - "require-directory": "2.1.1", - "svg2png": "3.0.1", - "through2": "2.0.5", - "tinycolor2": "1.4.1", - "to-ico": "1.1.2", - "underscore": "1.9.1", - "vinyl": "1.2.0" + "merge-defaults": "^0.2.1", + "mkdirp": "^0.5.1", + "node-rest-client": "^1.5.1", + "require-directory": "^2.1.1", + "svg2png": "~3.0.1", + "through2": "^2.0.0", + "tinycolor2": "^1.1.2", + "to-ico": "^1.1.2", + "underscore": "^1.8.3", + "vinyl": "^1.1.0" }, "dependencies": { "async": { @@ -5425,11 +5434,11 @@ "integrity": "sha1-dy5wFfLuKZZQltcepBdbdas1SSU=", "dev": true, "requires": { - "css-select": "1.0.0", - "dom-serializer": "0.1.1", - "entities": "1.1.2", - "htmlparser2": "3.8.3", - "lodash": "3.10.1" + "css-select": "~1.0.0", + "dom-serializer": "~0.1.0", + "entities": "~1.1.1", + "htmlparser2": "~3.8.1", + "lodash": "^3.2.0" } }, "css-select": { @@ -5438,10 +5447,10 @@ "integrity": "sha1-sRIcpRhI3SZOIkTQWM7iVN7rRLA=", "dev": true, "requires": { - "boolbase": "1.0.0", - "css-what": "1.0.0", - "domutils": "1.4.3", - "nth-check": "1.0.2" + "boolbase": "~1.0.0", + "css-what": "1.0", + "domutils": "1.4", + "nth-check": "~1.0.0" } }, "css-what": { @@ -5456,7 +5465,7 @@ "integrity": "sha1-CGVRN5bGswYDGFDhdVFrr4C3Km8=", "dev": true, "requires": { - "domelementtype": "1.3.1" + "domelementtype": "1" } }, "lodash": { @@ -5479,10 +5488,10 @@ "integrity": "sha1-JTpGpPk9E30QlnYod/io7xLihkg=", "dev": true, "requires": { - "favicons": "4.8.6", - "loader-utils": "0.2.17", - "lodash": "4.17.11", - "webpack": "1.15.0" + "favicons": "^4.7.1", + "loader-utils": "^0.2.14", + "lodash": "^4.11.1", + "webpack": "^1.13.0" }, "dependencies": { "acorn": { @@ -5509,10 +5518,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" } }, "object-assign": { @@ -5533,7 +5542,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } }, "uglify-js": { @@ -5542,10 +5551,10 @@ "integrity": "sha1-RhLAx7qu4rp8SH3kkErhIgefLKg=", "dev": true, "requires": { - "async": "0.2.10", - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" + "async": "~0.2.6", + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" }, "dependencies": { "async": { @@ -5562,21 +5571,21 @@ "integrity": "sha1-T/MfU9sDM55VFkqdRo7gMklo/pg=", "dev": true, "requires": { - "acorn": "3.3.0", - "async": "1.5.2", - "clone": "1.0.4", - "enhanced-resolve": "0.9.1", - "interpret": "0.6.6", - "loader-utils": "0.2.17", - "memory-fs": "0.3.0", - "mkdirp": "0.5.1", - "node-libs-browser": "0.7.0", - "optimist": "0.6.1", - "supports-color": "3.2.3", - "tapable": "0.1.10", - "uglify-js": "2.7.5", - "watchpack": "0.2.9", - "webpack-core": "0.6.9" + "acorn": "^3.0.0", + "async": "^1.3.0", + "clone": "^1.0.2", + "enhanced-resolve": "~0.9.0", + "interpret": "^0.6.4", + "loader-utils": "^0.2.11", + "memory-fs": "~0.3.0", + "mkdirp": "~0.5.0", + "node-libs-browser": "^0.7.0", + "optimist": "~0.6.0", + "supports-color": "^3.1.0", + "tapable": "~0.1.8", + "uglify-js": "~2.7.3", + "watchpack": "^0.2.1", + "webpack-core": "~0.6.9" } } } @@ -5587,7 +5596,7 @@ "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", "dev": true, "requires": { - "websocket-driver": "0.7.0" + "websocket-driver": ">=0.5.1" } }, "fbemitter": { @@ -5595,7 +5604,7 @@ "resolved": "https://registry.npmjs.org/fbemitter/-/fbemitter-2.1.1.tgz", "integrity": "sha1-Uj4U/a9SSIBbsC9i78M75wP1GGU=", "requires": { - "fbjs": "0.8.17" + "fbjs": "^0.8.4" } }, "fbjs": { @@ -5603,13 +5612,13 @@ "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz", "integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=", "requires": { - "core-js": "1.2.7", - "isomorphic-fetch": "2.2.1", - "loose-envify": "1.4.0", - "object-assign": "4.1.1", - "promise": "7.3.1", - "setimmediate": "1.0.5", - "ua-parser-js": "0.7.19" + "core-js": "^1.0.0", + "isomorphic-fetch": "^2.1.1", + "loose-envify": "^1.0.0", + "object-assign": "^4.1.0", + "promise": "^7.1.1", + "setimmediate": "^1.0.5", + "ua-parser-js": "^0.7.18" }, "dependencies": { "object-assign": { @@ -5625,7 +5634,7 @@ "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", "dev": true, "requires": { - "pend": "1.2.0" + "pend": "~1.2.0" } }, "figures": { @@ -5634,7 +5643,7 @@ "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "dev": true, "requires": { - "escape-string-regexp": "1.0.5" + "escape-string-regexp": "^1.0.5" } }, "file-entry-cache": { @@ -5643,8 +5652,8 @@ "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", "dev": true, "requires": { - "flat-cache": "1.3.4", - "object-assign": "4.1.1" + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" }, "dependencies": { "object-assign": { @@ -5661,8 +5670,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" }, "dependencies": { "schema-utils": { @@ -5671,8 +5680,8 @@ "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", "dev": true, "requires": { - "ajv": "6.10.0", - "ajv-keywords": "3.4.0" + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0" } } } @@ -5698,16 +5707,16 @@ "resolved": "https://registry.npmjs.org/filestack-js/-/filestack-js-1.14.6.tgz", "integrity": "sha512-mcME182eOUy3OyU0F9rcATQf3/YY3N1suXYVv3hcS1RxeVHIIkM9XI6N9Qg5t04y0qOGud9xv/GO+oKhreCSIw==", "requires": { - "abab": "2.0.0", - "ajv": "6.10.0", - "file-type": "8.1.0", - "filestack-loader": "3.0.4", - "is-svg": "3.0.0", - "isutf8": "2.0.3", - "spark-md5": "3.0.0", - "superagent": "3.8.3", - "tcomb-validation": "3.4.1", - "tslib": "1.9.3" + "abab": "^2.0.0", + "ajv": "^6.5.5", + "file-type": "^8.1.0", + "filestack-loader": "^3.0.4", + "is-svg": "^3.0.0", + "isutf8": "^2.0.2", + "spark-md5": "^3.0.0", + "superagent": "^3.8.3", + "tcomb-validation": "^3.4.1", + "tslib": "^1.9.3" } }, "filestack-loader": { @@ -5721,11 +5730,11 @@ "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", "dev": true, "requires": { - "is-number": "2.1.0", - "isobject": "2.1.0", - "randomatic": "3.1.1", - "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" }, "dependencies": { "isobject": { @@ -5746,12 +5755,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" } }, "find-babel-config": { @@ -5760,8 +5769,8 @@ "integrity": "sha512-jB2CHJeqy6a820ssiqwrKMeyC6nNdmrcgkKWJWmpoxpE8RKciYJXCcXRq1h2AzCo5I5BJeN2tkGEO3hLTuePRA==", "dev": true, "requires": { - "json5": "0.5.1", - "path-exists": "3.0.0" + "json5": "^0.5.1", + "path-exists": "^3.0.0" } }, "find-cache-dir": { @@ -5770,9 +5779,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-root": { @@ -5786,7 +5795,7 @@ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { - "locate-path": "2.0.0" + "locate-path": "^2.0.0" } }, "find-with-regex": { @@ -5799,7 +5808,7 @@ "resolved": "https://registry.npmjs.org/flat/-/flat-2.0.1.tgz", "integrity": "sha1-cOKRiKdL4MPIlAnu0fqVd5B64y8=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "~1.1.2" } }, "flat-cache": { @@ -5808,10 +5817,10 @@ "integrity": "sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==", "dev": true, "requires": { - "circular-json": "0.3.3", - "graceful-fs": "4.1.15", - "rimraf": "2.6.3", - "write": "0.2.1" + "circular-json": "^0.3.1", + "graceful-fs": "^4.1.2", + "rimraf": "~2.6.2", + "write": "^0.2.1" } }, "flatten": { @@ -5826,8 +5835,8 @@ "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", "dev": true, "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6" + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" }, "dependencies": { "process-nextick-args": { @@ -5842,13 +5851,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" } }, "string_decoder": { @@ -5857,7 +5866,7 @@ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } } } @@ -5867,8 +5876,8 @@ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-0.0.7.tgz", "integrity": "sha1-NLkLqyqRGqNHVx2pDyK9NuzYqRk=", "requires": { - "debug": "2.6.9", - "stream-consume": "0.1.1" + "debug": "^2.2.0", + "stream-consume": "^0.1.0" } }, "for-each": { @@ -5877,7 +5886,7 @@ "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", "dev": true, "requires": { - "is-callable": "1.1.4" + "is-callable": "^1.1.3" } }, "for-in": { @@ -5892,7 +5901,7 @@ "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", "dev": true, "requires": { - "for-in": "1.0.2" + "for-in": "^1.0.1" } }, "forever-agent": { @@ -5906,9 +5915,9 @@ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.7", - "mime-types": "2.1.22" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" } }, "form-data-to-object": { @@ -5921,7 +5930,7 @@ "resolved": "https://registry.npmjs.org/formatio/-/formatio-1.1.1.tgz", "integrity": "sha1-XtPM1jZVEJc4NGXZlhmRAOhhYek=", "requires": { - "samsam": "1.1.2" + "samsam": "~1.1" } }, "formidable": { @@ -5934,7 +5943,7 @@ "resolved": "https://registry.npmjs.org/formsy-react/-/formsy-react-0.19.5.tgz", "integrity": "sha1-dgpXrAETRC499MMJw2ON2SlX544=", "requires": { - "form-data-to-object": "0.2.0" + "form-data-to-object": "^0.2.0" } }, "forwarded": { @@ -5949,7 +5958,7 @@ "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "dev": true, "requires": { - "map-cache": "0.2.2" + "map-cache": "^0.2.2" } }, "fresh": { @@ -5964,8 +5973,8 @@ "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", "dev": true, "requires": { - "inherits": "2.0.3", - "readable-stream": "2.0.6" + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" } }, "fs-extra": { @@ -5974,9 +5983,9 @@ "integrity": "sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=", "dev": true, "requires": { - "graceful-fs": "4.1.15", - "jsonfile": "2.4.0", - "klaw": "1.3.1" + "graceful-fs": "^4.1.2", + "jsonfile": "^2.1.0", + "klaw": "^1.0.0" } }, "fs-readdir-recursive": { @@ -5991,10 +6000,10 @@ "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", "dev": true, "requires": { - "graceful-fs": "4.1.15", - "iferr": "0.1.5", - "imurmurhash": "0.1.4", - "readable-stream": "2.0.6" + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" } }, "fs.realpath": { @@ -6004,14 +6013,14 @@ "dev": true }, "fsevents": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.7.tgz", - "integrity": "sha512-Pxm6sI2MeBD7RdD12RYsqaP0nMiwx8eZBXCa6z2L+mRHm2DYrOYwihmhjpkdjUHwQhslWQjRpEgNq4XvBmaAuw==", + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.8.tgz", + "integrity": "sha512-tPvHgPGB7m40CZ68xqFGkKuzN+RnpGmSV+hgeKxhRpbxdqKXUFJGC3yonBOLzQBcJyGpdZFDfCsdOC2KFsXzeA==", "dev": true, "optional": true, "requires": { - "nan": "2.12.1", - "node-pre-gyp": "0.10.3" + "nan": "^2.12.1", + "node-pre-gyp": "^0.12.0" }, "dependencies": { "abbrev": { @@ -6037,8 +6046,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": { @@ -6051,7 +6060,7 @@ "bundled": true, "dev": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -6083,12 +6092,12 @@ "optional": true }, "debug": { - "version": "2.6.9", + "version": "4.1.1", "bundled": true, "dev": true, "optional": true, "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" } }, "deep-extend": { @@ -6115,7 +6124,7 @@ "dev": true, "optional": true, "requires": { - "minipass": "2.3.5" + "minipass": "^2.2.1" } }, "fs.realpath": { @@ -6130,14 +6139,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.3" + "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": { @@ -6146,12 +6155,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": { @@ -6166,7 +6175,7 @@ "dev": true, "optional": true, "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": ">= 2.1.2 < 3" } }, "ignore-walk": { @@ -6175,7 +6184,7 @@ "dev": true, "optional": true, "requires": { - "minimatch": "3.0.4" + "minimatch": "^3.0.4" } }, "inflight": { @@ -6184,8 +6193,8 @@ "dev": true, "optional": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -6204,7 +6213,7 @@ "bundled": true, "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "isarray": { @@ -6218,7 +6227,7 @@ "bundled": true, "dev": true, "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -6231,8 +6240,8 @@ "bundled": true, "dev": true, "requires": { - "safe-buffer": "5.1.2", - "yallist": "3.0.3" + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" } }, "minizlib": { @@ -6241,7 +6250,7 @@ "dev": true, "optional": true, "requires": { - "minipass": "2.3.5" + "minipass": "^2.2.1" } }, "mkdirp": { @@ -6253,38 +6262,38 @@ } }, "ms": { - "version": "2.0.0", + "version": "2.1.1", "bundled": true, "dev": true, "optional": true }, "needle": { - "version": "2.2.4", + "version": "2.3.0", "bundled": true, "dev": true, "optional": true, "requires": { - "debug": "2.6.9", - "iconv-lite": "0.4.24", - "sax": "1.2.4" + "debug": "^4.1.0", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" } }, "node-pre-gyp": { - "version": "0.10.3", + "version": "0.12.0", "bundled": true, "dev": true, "optional": true, "requires": { - "detect-libc": "1.0.3", - "mkdirp": "0.5.1", - "needle": "2.2.4", - "nopt": "4.0.1", - "npm-packlist": "1.2.0", - "npmlog": "4.1.2", - "rc": "1.2.8", - "rimraf": "2.6.3", - "semver": "5.6.0", - "tar": "4.4.8" + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" } }, "nopt": { @@ -6293,24 +6302,24 @@ "dev": true, "optional": true, "requires": { - "abbrev": "1.1.1", - "osenv": "0.1.5" + "abbrev": "1", + "osenv": "^0.1.4" } }, "npm-bundled": { - "version": "1.0.5", + "version": "1.0.6", "bundled": true, "dev": true, "optional": true }, "npm-packlist": { - "version": "1.2.0", + "version": "1.4.1", "bundled": true, "dev": true, "optional": true, "requires": { - "ignore-walk": "3.0.1", - "npm-bundled": "1.0.5" + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" } }, "npmlog": { @@ -6319,10 +6328,10 @@ "dev": true, "optional": true, "requires": { - "are-we-there-yet": "1.1.5", - "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": { @@ -6341,7 +6350,7 @@ "bundled": true, "dev": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "os-homedir": { @@ -6362,8 +6371,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": { @@ -6384,10 +6393,10 @@ "dev": true, "optional": true, "requires": { - "deep-extend": "0.6.0", - "ini": "1.3.5", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" }, "dependencies": { "minimist": { @@ -6404,13 +6413,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.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" } }, "rimraf": { @@ -6419,7 +6428,7 @@ "dev": true, "optional": true, "requires": { - "glob": "7.1.3" + "glob": "^7.1.3" } }, "safe-buffer": { @@ -6440,7 +6449,7 @@ "optional": true }, "semver": { - "version": "5.6.0", + "version": "5.7.0", "bundled": true, "dev": true, "optional": true @@ -6462,9 +6471,9 @@ "bundled": true, "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_decoder": { @@ -6473,7 +6482,7 @@ "dev": true, "optional": true, "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } }, "strip-ansi": { @@ -6481,7 +6490,7 @@ "bundled": true, "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-json-comments": { @@ -6496,13 +6505,13 @@ "dev": true, "optional": true, "requires": { - "chownr": "1.1.1", - "fs-minipass": "1.2.5", - "minipass": "2.3.5", - "minizlib": "1.2.1", - "mkdirp": "0.5.1", - "safe-buffer": "5.1.2", - "yallist": "3.0.3" + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.3.4", + "minizlib": "^1.1.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.2" } }, "util-deprecate": { @@ -6517,7 +6526,7 @@ "dev": true, "optional": true, "requires": { - "string-width": "1.0.2" + "string-width": "^1.0.2 || 2" } }, "wrappy": { @@ -6538,10 +6547,10 @@ "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", "dev": true, "requires": { - "graceful-fs": "4.1.15", - "inherits": "2.0.3", - "mkdirp": "0.5.1", - "rimraf": "2.6.3" + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" } }, "function-bind": { @@ -6562,14 +6571,14 @@ "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "dev": 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.3" + "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" }, "dependencies": { "is-fullwidth-code-point": { @@ -6578,7 +6587,7 @@ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "object-assign": { @@ -6593,9 +6602,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" } } } @@ -6606,7 +6615,7 @@ "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", "dev": true, "requires": { - "globule": "1.2.1" + "globule": "^1.0.0" } }, "generic-names": { @@ -6615,7 +6624,7 @@ "integrity": "sha1-LXhqEhruUIh2eWk56OO/+DbCCRc=", "dev": true, "requires": { - "loader-utils": "0.2.17" + "loader-utils": "^0.2.16" }, "dependencies": { "loader-utils": { @@ -6624,10 +6633,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" } }, "object-assign": { @@ -6656,8 +6665,8 @@ "integrity": "sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4=", "dev": true, "requires": { - "object-assign": "4.1.1", - "pinkie-promise": "2.0.1" + "object-assign": "^4.0.1", + "pinkie-promise": "^2.0.0" }, "dependencies": { "object-assign": { @@ -6680,7 +6689,7 @@ "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "dev": true, "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "glob": { @@ -6688,11 +6697,11 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", "requires": { - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "glob-base": { @@ -6701,8 +6710,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": { @@ -6711,7 +6720,7 @@ "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "dev": true, "requires": { - "is-glob": "2.0.1" + "is-glob": "^2.0.0" } }, "glob-to-regexp": { @@ -6726,8 +6735,8 @@ "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=", "dev": true, "requires": { - "min-document": "2.19.0", - "process": "0.5.2" + "min-document": "^2.19.0", + "process": "~0.5.1" } }, "globals": { @@ -6742,12 +6751,12 @@ "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=", "dev": true, "requires": { - "array-union": "1.0.2", - "dir-glob": "2.2.2", - "glob": "7.1.3", - "ignore": "3.3.10", - "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" }, "dependencies": { "glob": { @@ -6756,12 +6765,12 @@ "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "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" } } } @@ -6778,9 +6787,9 @@ "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==", "dev": true, "requires": { - "glob": "7.1.3", - "lodash": "4.17.11", - "minimatch": "3.0.4" + "glob": "~7.1.1", + "lodash": "~4.17.10", + "minimatch": "~3.0.2" }, "dependencies": { "glob": { @@ -6789,23 +6798,23 @@ "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "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" } } } }, "gonzales-pe": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-4.2.3.tgz", - "integrity": "sha512-Kjhohco0esHQnOiqqdJeNz/5fyPkOMD/d6XVjwTAoPGUFh0mCollPUTUTa2OZy4dYNAqlPIQdTiNzJTWdd9Htw==", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-4.2.4.tgz", + "integrity": "sha512-v0Ts/8IsSbh9n1OJRnSfa7Nlxi4AkXIsWB6vPept8FDbL4bXn3FNuxjYtO/nmBGu7GDkL9MFeGebeSu6l55EPQ==", "dev": true, "requires": { - "minimist": "1.1.3" + "minimist": "1.1.x" }, "dependencies": { "minimist": { @@ -6833,34 +6842,26 @@ "dev": true }, "handle-thing": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-1.2.5.tgz", - "integrity": "sha1-/Xqtcmvxpf0W38KbL3pmAdJxOcQ=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.0.tgz", + "integrity": "sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ==", "dev": true }, "handlebars": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.1.0.tgz", - "integrity": "sha512-l2jRuU1NAWK6AW5qqcTATWQJvNPEwkM7NEKSiv/gqOsoSQbVoWyqVEY5GS+XPQ88zLNmqASRpzfdm8d79hJS+w==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.1.2.tgz", + "integrity": "sha512-nvfrjqvt9xQ8Z/w0ijewdD/vvWDTOweBUm96NTr66Wfvo1mJenBLwcYmPs3TIBP5ruzYGD7Hx/DaM9RmhroGPw==", "requires": { - "async": "2.6.2", - "optimist": "0.6.1", - "source-map": "0.6.1", - "uglify-js": "3.4.9" + "neo-async": "^2.6.0", + "optimist": "^0.6.1", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4" }, "dependencies": { - "async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.2.tgz", - "integrity": "sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==", - "requires": { - "lodash": "4.17.11" - } - }, "commander": { - "version": "2.17.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", - "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", + "version": "2.20.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", + "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==", "optional": true }, "source-map": { @@ -6869,13 +6870,13 @@ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, "uglify-js": { - "version": "3.4.9", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.9.tgz", - "integrity": "sha512-8CJsbKOtEbnJsTyv6LE6m6ZKniqMiFWmm9sRbopbkGs3gMPPfd3Fh8iIA4Ykv5MgaTbqHr4BaoGLJLZNhsrW1Q==", + "version": "3.5.7", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.5.7.tgz", + "integrity": "sha512-GCgJx3BBuaf/QMvBBkhoHDh4SVsHCC3ILEzriPw4FgJJKCuxVBSYLRkDlmT3uhXyGWKs3VN5r0mCkBIZaHWu3w==", "optional": true, "requires": { - "commander": "2.17.1", - "source-map": "0.6.1" + "commander": "~2.20.0", + "source-map": "~0.6.1" } } } @@ -6892,8 +6893,8 @@ "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", "dev": true, "requires": { - "ajv": "6.10.0", - "har-schema": "2.0.0" + "ajv": "^6.5.5", + "har-schema": "^2.0.0" } }, "harmony-reflect": { @@ -6908,7 +6909,7 @@ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dev": true, "requires": { - "function-bind": "1.1.1" + "function-bind": "^1.1.1" } }, "has-ansi": { @@ -6917,7 +6918,7 @@ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "has-flag": { @@ -6944,9 +6945,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" } }, "has-values": { @@ -6955,8 +6956,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": { @@ -6965,7 +6966,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -6974,7 +6975,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -6985,7 +6986,7 @@ "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -6996,8 +6997,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.js": { @@ -7006,8 +7007,8 @@ "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", "dev": true, "requires": { - "inherits": "2.0.3", - "minimalistic-assert": "1.0.1" + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" } }, "hasha": { @@ -7016,8 +7017,8 @@ "integrity": "sha1-eNfL/B5tZjA/55g3NlmEUXsvbuE=", "dev": true, "requires": { - "is-stream": "1.1.0", - "pinkie-promise": "2.0.1" + "is-stream": "^1.0.1", + "pinkie-promise": "^2.0.0" } }, "he": { @@ -7030,10 +7031,10 @@ "resolved": "https://registry.npmjs.org/history/-/history-1.17.0.tgz", "integrity": "sha1-xUg8qlodH+oAoafY0ZuHQBZxHSk=", "requires": { - "deep-equal": "1.0.1", - "invariant": "2.2.4", - "query-string": "3.0.3", - "warning": "2.1.0" + "deep-equal": "^1.0.0", + "invariant": "^2.0.0", + "query-string": "^3.0.0", + "warning": "^2.0.0" }, "dependencies": { "query-string": { @@ -7041,7 +7042,7 @@ "resolved": "https://registry.npmjs.org/query-string/-/query-string-3.0.3.tgz", "integrity": "sha1-ri4UtNBQcdTpuetIc8NbDc1C5jg=", "requires": { - "strict-uri-encode": "1.1.0" + "strict-uri-encode": "^1.0.0" } } } @@ -7052,15 +7053,18 @@ "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", "dev": true, "requires": { - "hash.js": "1.1.7", - "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" } }, "hoist-non-react-statics": { - "version": "2.5.5", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz", - "integrity": "sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw==" + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.0.tgz", + "integrity": "sha512-0XsbTXxgiaCDYDIWFcwkmerZPSwywfUqYmwT4jzewKTQSWoE6FCMoUVOeBJWK3E/CrWbxRG3m5GzY4lnIwGRBA==", + "requires": { + "react-is": "^16.7.0" + } }, "home-or-tmp": { "version": "2.0.0", @@ -7068,8 +7072,8 @@ "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", "dev": true, "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.1" } }, "hosted-git-info": { @@ -7084,10 +7088,10 @@ "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", "dev": true, "requires": { - "inherits": "2.0.3", - "obuf": "1.1.2", - "readable-stream": "2.0.6", - "wbuf": "1.7.3" + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" } }, "html-comment-regex": { @@ -7106,14 +7110,14 @@ "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-1.5.0.tgz", "integrity": "sha1-vrBf2cw0CUWGXBD0Cu30aa9LFTQ=", "requires": { - "change-case": "2.3.1", - "clean-css": "3.4.28", - "commander": "2.9.0", - "concat-stream": "1.5.2", - "he": "1.0.0", - "ncname": "1.0.0", - "relateurl": "0.2.7", - "uglify-js": "2.6.4" + "change-case": "2.3.x", + "clean-css": "3.4.x", + "commander": "2.9.x", + "concat-stream": "1.5.x", + "he": "1.0.x", + "ncname": "1.0.x", + "relateurl": "0.2.x", + "uglify-js": "2.6.x" } }, "html-tags": { @@ -7128,12 +7132,12 @@ "integrity": "sha1-f5xCG36pHsRg9WUn1430hO51N9U=", "dev": true, "requires": { - "bluebird": "3.5.3", - "html-minifier": "3.5.21", - "loader-utils": "0.2.17", - "lodash": "4.17.11", - "pretty-error": "2.1.1", - "toposort": "1.0.7" + "bluebird": "^3.4.7", + "html-minifier": "^3.2.3", + "loader-utils": "^0.2.16", + "lodash": "^4.17.3", + "pretty-error": "^2.0.2", + "toposort": "^1.0.0" }, "dependencies": { "camel-case": { @@ -7142,8 +7146,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" } }, "clean-css": { @@ -7152,7 +7156,7 @@ "integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==", "dev": true, "requires": { - "source-map": "0.6.1" + "source-map": "~0.6.0" } }, "commander": { @@ -7173,13 +7177,13 @@ "integrity": "sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA==", "dev": true, "requires": { - "camel-case": "3.0.0", - "clean-css": "4.2.1", - "commander": "2.17.1", - "he": "1.2.0", - "param-case": "2.1.1", - "relateurl": "0.2.7", - "uglify-js": "3.4.9" + "camel-case": "3.0.x", + "clean-css": "4.2.x", + "commander": "2.17.x", + "he": "1.2.x", + "param-case": "2.1.x", + "relateurl": "0.2.x", + "uglify-js": "3.4.x" } }, "loader-utils": { @@ -7188,10 +7192,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" } }, "object-assign": { @@ -7206,7 +7210,7 @@ "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", "dev": true, "requires": { - "no-case": "2.3.2" + "no-case": "^2.2.0" } }, "source-map": { @@ -7216,13 +7220,21 @@ "dev": true }, "uglify-js": { - "version": "3.4.9", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.9.tgz", - "integrity": "sha512-8CJsbKOtEbnJsTyv6LE6m6ZKniqMiFWmm9sRbopbkGs3gMPPfd3Fh8iIA4Ykv5MgaTbqHr4BaoGLJLZNhsrW1Q==", + "version": "3.4.10", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz", + "integrity": "sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==", "dev": true, "requires": { - "commander": "2.17.1", - "source-map": "0.6.1" + "commander": "~2.19.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "commander": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", + "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==", + "dev": true + } } } } @@ -7232,7 +7244,7 @@ "resolved": "https://registry.npmjs.org/html5-uploader/-/html5-uploader-0.1.1.tgz", "integrity": "sha1-EHEDCQ5Hsp0pIcACaWXq6Pa5wcM=", "requires": { - "eventemitter3": "0.1.6" + "eventemitter3": "^0.1.5" } }, "htmlparser2": { @@ -7241,11 +7253,11 @@ "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=", "dev": true, "requires": { - "domelementtype": "1.3.1", - "domhandler": "2.3.0", - "domutils": "1.5.1", - "entities": "1.0.0", - "readable-stream": "1.1.14" + "domelementtype": "1", + "domhandler": "2.3", + "domutils": "1.5", + "entities": "1.0", + "readable-stream": "1.1" }, "dependencies": { "entities": { @@ -7266,10 +7278,10 @@ "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "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" } } } @@ -7286,10 +7298,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": { @@ -7304,9 +7316,9 @@ "integrity": "sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g==", "dev": true, "requires": { - "eventemitter3": "3.1.0", - "follow-redirects": "1.7.0", - "requires-port": "1.0.0" + "eventemitter3": "^3.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" }, "dependencies": { "debug": { @@ -7315,7 +7327,7 @@ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "dev": true, "requires": { - "ms": "2.1.1" + "ms": "^2.1.1" } }, "eventemitter3": { @@ -7330,42 +7342,310 @@ "integrity": "sha512-m/pZQy4Gj287eNy94nivy5wchN3Kp+Q5WgUPNy5lJSZ3sgkVKSYV/ZChMAQVIgx1SqfZ2zBZtPA2YlXIWxxJOQ==", "dev": true, "requires": { - "debug": "3.2.6" + "debug": "^3.2.6" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + } + } + }, + "http-proxy-middleware": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", + "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", + "dev": true, + "requires": { + "http-proxy": "^1.17.0", + "is-glob": "^4.0.0", + "lodash": "^4.17.11", + "micromatch": "^3.1.10" + }, + "dependencies": { + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "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.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "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": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "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.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "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.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "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-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - } - } - }, - "http-proxy-middleware": { - "version": "0.17.4", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.17.4.tgz", - "integrity": "sha1-ZC6ISIUdZvCdTxJJEoRtuutBuDM=", - "dev": true, - "requires": { - "http-proxy": "1.17.0", - "is-glob": "3.1.0", - "lodash": "4.17.11", - "micromatch": "2.3.11" - }, - "dependencies": { - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", "dev": true }, - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "requires": { - "is-extglob": "2.1.1" + "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" } } } @@ -7376,9 +7656,9 @@ "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "dev": true, "requires": { - "assert-plus": "1.0.0", - "jsprim": "1.4.1", - "sshpk": "1.16.1" + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, "https-browserify": { @@ -7402,7 +7682,7 @@ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": ">= 2.1.2 < 3" } }, "icss-replace-symbols": { @@ -7417,13 +7697,13 @@ "integrity": "sha1-7nDTroysOMa+XtkehRsn7tNDrQ8=", "dev": true, "requires": { - "postcss": "6.0.23" + "postcss": "^6.0.2" } }, "ieee754": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz", - "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==", + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", + "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", "dev": true }, "iferr": { @@ -7461,7 +7741,7 @@ "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", "dev": true, "requires": { - "import-from": "2.1.0" + "import-from": "^2.1.0" } }, "import-fresh": { @@ -7469,8 +7749,8 @@ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", "requires": { - "caller-path": "2.0.0", - "resolve-from": "3.0.0" + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" } }, "import-from": { @@ -7479,7 +7759,7 @@ "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", "dev": true, "requires": { - "resolve-from": "3.0.0" + "resolve-from": "^3.0.0" } }, "import-local": { @@ -7488,8 +7768,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": { @@ -7510,7 +7790,7 @@ "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", "dev": true, "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, "indexes-of": { @@ -7530,8 +7810,8 @@ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -7545,20 +7825,20 @@ "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", "dev": true, "requires": { - "ansi-escapes": "3.2.0", - "chalk": "2.4.2", - "cli-cursor": "2.1.0", - "cli-width": "2.2.0", - "external-editor": "2.2.0", - "figures": "2.0.0", - "lodash": "4.17.11", + "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-regex": { @@ -7573,7 +7853,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -7584,7 +7864,7 @@ "integrity": "sha1-rp+/k7mEh4eF1QqN4bNWlWBYz1w=", "dev": true, "requires": { - "meow": "3.7.0" + "meow": "^3.3.0" } }, "interpret": { @@ -7598,7 +7878,7 @@ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "requires": { - "loose-envify": "1.4.0" + "loose-envify": "^1.0.0" } }, "invert-kv": { @@ -7620,9 +7900,9 @@ "dev": true }, "ipaddr.js": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz", - "integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4=", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", + "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==", "dev": true }, "is-absolute-url": { @@ -7637,7 +7917,7 @@ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-alphabetical": { @@ -7658,8 +7938,8 @@ "integrity": "sha512-pyfU/0kHdISIgslFfZN9nfY1Gk3MquQgUm1mJTjdkEPpkAKNWuBTSqFwewOpR7N351VkErCiyV71zX7mlQQqsg==", "dev": true, "requires": { - "is-alphabetical": "1.0.2", - "is-decimal": "1.0.2" + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0" } }, "is-arrayish": { @@ -7673,7 +7953,7 @@ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "dev": true, "requires": { - "binary-extensions": "1.13.0" + "binary-extensions": "^1.0.0" } }, "is-buffer": { @@ -7693,7 +7973,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-date-object": { @@ -7714,9 +7994,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": { @@ -7744,7 +8024,7 @@ "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", "dev": true, "requires": { - "is-primitive": "2.0.0" + "is-primitive": "^2.0.0" } }, "is-extendable": { @@ -7765,7 +8045,7 @@ "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-fullwidth-code-point": { @@ -7786,7 +8066,7 @@ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "dev": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "is-hexadecimal": { @@ -7800,7 +8080,7 @@ "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.3.tgz", "integrity": "sha1-fhR75HaNxGbbO/shzGCzHmrWk5M=", "requires": { - "lower-case": "1.1.4" + "lower-case": "^1.1.0" } }, "is-number": { @@ -7809,7 +8089,7 @@ "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-obj": { @@ -7830,7 +8110,7 @@ "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", "dev": true, "requires": { - "is-path-inside": "1.0.1" + "is-path-inside": "^1.0.0" } }, "is-path-inside": { @@ -7839,7 +8119,7 @@ "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", "dev": true, "requires": { - "path-is-inside": "1.0.2" + "path-is-inside": "^1.0.1" } }, "is-plain-obj": { @@ -7854,7 +8134,7 @@ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" } }, "is-posix-bracket": { @@ -7880,7 +8160,7 @@ "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", "dev": true, "requires": { - "has": "1.0.3" + "has": "^1.0.1" } }, "is-regexp": { @@ -7916,7 +8196,7 @@ "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz", "integrity": "sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==", "requires": { - "html-comment-regex": "1.1.2" + "html-comment-regex": "^1.1.0" } }, "is-symbol": { @@ -7925,7 +8205,7 @@ "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", "dev": true, "requires": { - "has-symbols": "1.0.0" + "has-symbols": "^1.0.0" } }, "is-typedarray": { @@ -7939,7 +8219,7 @@ "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.2.tgz", "integrity": "sha1-jQsfp+eTOh5YSDYA7H2WYcuvdW8=", "requires": { - "upper-case": "1.1.3" + "upper-case": "^1.1.0" } }, "is-utf8": { @@ -7993,8 +8273,8 @@ "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", "requires": { - "node-fetch": "1.7.3", - "whatwg-fetch": "3.0.0" + "node-fetch": "^1.0.1", + "whatwg-fetch": ">=0.10.0" } }, "isstream": { @@ -8043,22 +8323,22 @@ "integrity": "sha1-3VKak3GQ9ClXp5N9Gsw6d2KZbqI=", "dev": true, "requires": { - "bignumber.js": "2.4.0", + "bignumber.js": "^2.1.0", "bmp-js": "0.0.3", - "es6-promise": "3.3.1", - "exif-parser": "0.1.12", - "file-type": "3.9.0", - "jpeg-js": "0.2.0", - "load-bmfont": "1.4.0", - "mime": "1.6.0", + "es6-promise": "^3.0.2", + "exif-parser": "^0.1.9", + "file-type": "^3.1.0", + "jpeg-js": "^0.2.0", + "load-bmfont": "^1.2.3", + "mime": "^1.3.4", "mkdirp": "0.5.1", - "pixelmatch": "4.0.2", - "pngjs": "3.3.3", - "read-chunk": "1.0.1", - "request": "2.88.0", - "stream-to-buffer": "0.1.0", - "tinycolor2": "1.4.1", - "url-regex": "3.2.0" + "pixelmatch": "^4.0.0", + "pngjs": "^3.0.0", + "read-chunk": "^1.0.1", + "request": "^2.65.0", + "stream-to-buffer": "^0.1.0", + "tinycolor2": "^1.1.2", + "url-regex": "^3.0.0" }, "dependencies": { "file-type": { @@ -8097,12 +8377,12 @@ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, "js-yaml": { - "version": "3.12.2", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.2.tgz", - "integrity": "sha512-QHn/Lh/7HhZ/Twc7vJYQTkjuCa0kaCcDcjK5Zlk2rvnUpy7DxMJ23+Jc2dcyvltwQVg1nygAVlB2oRDFHoRS5Q==", + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", "requires": { - "argparse": "1.0.10", - "esprima": "4.0.1" + "argparse": "^1.0.7", + "esprima": "^4.0.0" }, "dependencies": { "esprima": { @@ -8124,21 +8404,21 @@ "integrity": "sha1-QLQCdwwr2iNGkJa+6Rq2deOx/G4=", "dev": true, "requires": { - "abab": "1.0.4", - "acorn": "2.7.0", - "acorn-globals": "1.0.9", - "cssom": "0.3.6", - "cssstyle": "0.2.37", - "escodegen": "1.11.1", - "nwmatcher": "1.4.4", - "parse5": "1.5.1", - "request": "2.88.0", - "sax": "1.2.4", - "symbol-tree": "3.2.2", - "tough-cookie": "2.5.0", - "webidl-conversions": "2.0.1", - "whatwg-url-compat": "0.6.5", - "xml-name-validator": "2.0.1" + "abab": "^1.0.0", + "acorn": "^2.4.0", + "acorn-globals": "^1.0.4", + "cssom": ">= 0.3.0 < 0.4.0", + "cssstyle": ">= 0.2.29 < 0.3.0", + "escodegen": "^1.6.1", + "nwmatcher": ">= 1.3.7 < 2.0.0", + "parse5": "^1.5.1", + "request": "^2.55.0", + "sax": "^1.1.4", + "symbol-tree": ">= 3.1.0 < 4.0.0", + "tough-cookie": "^2.2.0", + "webidl-conversions": "^2.0.0", + "whatwg-url-compat": "~0.6.5", + "xml-name-validator": ">= 2.0.1 < 3.0.0" }, "dependencies": { "abab": { @@ -8194,7 +8474,7 @@ "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", "dev": true, "requires": { - "jsonify": "0.0.0" + "jsonify": "~0.0.0" } }, "json-stable-stringify-without-jsonify": { @@ -8221,9 +8501,9 @@ "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" }, "jsoneditor": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/jsoneditor/-/jsoneditor-5.30.0.tgz", - "integrity": "sha512-VulOdMi73DgNAPEGtKnQZHFqsqsudEcvju5Kyq7xSQ4jvH54yN/SfXS8/q2CMabuSNxwvImZUf4bRfYxEcQjwQ==", + "version": "5.32.4", + "resolved": "https://registry.npmjs.org/jsoneditor/-/jsoneditor-5.32.4.tgz", + "integrity": "sha512-wGwTh8uo91tKNhn77/XJ4wvuVRsRdj4jG1fx8DJf7tJMcqxYGsLqZ6HEdJqugbkJ3do2iMK6VhBovmUqOs76hA==", "requires": { "ajv": "5.5.2", "brace": "0.11.1", @@ -8240,10 +8520,10 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "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" } }, "fast-deep-equal": { @@ -8263,7 +8543,7 @@ "resolved": "https://registry.npmjs.org/jsoneditor-react/-/jsoneditor-react-1.0.0.tgz", "integrity": "sha512-KuHbsraOTyV8gmpY4V+rEbi/UI/+gVYB3HRbXwcGRMrhqa14kD1z3g+ou3J9bMrMGJSTZDplR8z8bDFRWRf1Jg==", "requires": { - "prop-types": "15.7.2" + "prop-types": "^15.6.0" } }, "jsonfile": { @@ -8272,7 +8552,7 @@ "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", "dev": true, "requires": { - "graceful-fs": "4.1.15" + "graceful-fs": "^4.1.6" } }, "jsonify": { @@ -8304,11 +8584,11 @@ "resolved": "https://registry.npmjs.org/jstransform/-/jstransform-11.0.3.tgz", "integrity": "sha1-CaeJk+CuTU70SH9hVakfYZDLQiM=", "requires": { - "base62": "1.2.8", - "commoner": "0.10.8", - "esprima-fb": "15001.1.0-dev-harmony-fb", - "object-assign": "2.1.1", - "source-map": "0.4.4" + "base62": "^1.1.0", + "commoner": "^0.10.1", + "esprima-fb": "^15001.1.0-dev-harmony-fb", + "object-assign": "^2.0.0", + "source-map": "^0.4.2" } }, "jsx-ast-utils": { @@ -8322,7 +8602,7 @@ "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-1.5.1.tgz", "integrity": "sha1-vajYcxubc57otKMaDQJcqUrpLTs=", "requires": { - "Base64": "0.1.4" + "Base64": "~0.1.3" } }, "kew": { @@ -8342,7 +8622,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } }, "klaw": { @@ -8351,7 +8631,7 @@ "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", "dev": true, "requires": { - "graceful-fs": "4.1.15" + "graceful-fs": "^4.1.9" } }, "known-css-properties": { @@ -8366,8 +8646,8 @@ "integrity": "sha512-CZc+m2xZm51J8qSwdODeiiNeqh8CYkKEq6Rw8IkE4i/4yqf2cJhjQPsA6BtAV970ePRNhwEOXhy2U5xc5Jwh9Q==", "dev": true, "requires": { - "lodash": "4.17.11", - "webpack-sources": "1.3.0" + "lodash": "^4.17.4", + "webpack-sources": "^1.0.1" } }, "lazy-cache": { @@ -8381,7 +8661,7 @@ "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "dev": true, "requires": { - "invert-kv": "1.0.0" + "invert-kv": "^1.0.0" } }, "levn": { @@ -8390,18 +8670,18 @@ "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" } }, "libphonenumber-js": { - "version": "1.7.9", - "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.7.9.tgz", - "integrity": "sha512-Pi5XtTeC2E727x46a4jgV/vgZPe9/R6w/ApkFXFqwUzZXS2qZUbRSIgR4yR42SOJWkPHxfIK8lG8CXLOgcsEFQ==", + "version": "1.7.15", + "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.7.15.tgz", + "integrity": "sha512-FYqkPqPc8ZBAeGiCuU/4eKqvCyBP281DtayXoc+9XuRhgARn+CCTvy30VjfCevPROQkVxZKe2SfWj4d/3VrmVw==", "requires": { - "minimist": "1.2.0", - "semver-compare": "1.0.0", - "xml2js": "0.4.19" + "minimist": "^1.2.0", + "semver-compare": "^1.0.0", + "xml2js": "^0.4.17" }, "dependencies": { "minimist": { @@ -8416,7 +8696,7 @@ "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.1.0.tgz", "integrity": "sha512-4REs8/062kV2DSHxNfq5183zrqXMl7WP0WzABH9IeJI+NLm429FgE1PDecltYfnOoFDFlZGh2T8PfZn0r+GTRg==", "requires": { - "uc.micro": "1.0.6" + "uc.micro": "^1.0.1" } }, "load-bmfont": { @@ -8426,13 +8706,13 @@ "dev": true, "requires": { "buffer-equal": "0.0.1", - "mime": "1.6.0", - "parse-bmfont-ascii": "1.0.6", - "parse-bmfont-binary": "1.0.6", - "parse-bmfont-xml": "1.1.4", - "phin": "2.9.3", - "xhr": "2.5.0", - "xtend": "4.0.1" + "mime": "^1.3.4", + "parse-bmfont-ascii": "^1.0.3", + "parse-bmfont-binary": "^1.0.5", + "parse-bmfont-xml": "^1.1.4", + "phin": "^2.9.1", + "xhr": "^2.0.1", + "xtend": "^4.0.0" } }, "load-json-file": { @@ -8441,10 +8721,10 @@ "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", "dev": true, "requires": { - "graceful-fs": "4.1.15", - "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" }, "dependencies": { "parse-json": { @@ -8453,7 +8733,7 @@ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "dev": true, "requires": { - "error-ex": "1.3.2" + "error-ex": "^1.2.0" } }, "pify": { @@ -8475,9 +8755,9 @@ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", "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": { @@ -8486,8 +8766,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": { @@ -8512,8 +8792,8 @@ "integrity": "sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=", "dev": true, "requires": { - "lodash._basecopy": "3.0.1", - "lodash.keys": "3.1.2" + "lodash._basecopy": "^3.0.0", + "lodash.keys": "^3.0.0" } }, "lodash._basecopy": { @@ -8528,7 +8808,7 @@ "integrity": "sha1-z4cGVyyhROjZ11InyZDamC+TKvM=", "dev": true, "requires": { - "lodash.keys": "3.1.2" + "lodash.keys": "^3.0.0" } }, "lodash._bindcallback": { @@ -8543,9 +8823,9 @@ "integrity": "sha1-g4pbri/aymOsIt7o4Z+k5taXCxE=", "dev": true, "requires": { - "lodash._bindcallback": "3.0.1", - "lodash._isiterateecall": "3.0.9", - "lodash.restparam": "3.6.1" + "lodash._bindcallback": "^3.0.0", + "lodash._isiterateecall": "^3.0.0", + "lodash.restparam": "^3.0.0" } }, "lodash._getnative": { @@ -8593,17 +8873,12 @@ "integrity": "sha1-b9fvt5aRrs1n/erCdhyY5wHWw5o=", "dev": true, "requires": { - "lodash._arrayeach": "3.0.0", - "lodash._baseeach": "3.0.4", - "lodash._bindcallback": "3.0.1", - "lodash.isarray": "3.0.4" + "lodash._arrayeach": "^3.0.0", + "lodash._baseeach": "^3.0.0", + "lodash._bindcallback": "^3.0.0", + "lodash.isarray": "^3.0.0" } }, - "lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" - }, "lodash.isarguments": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", @@ -8625,9 +8900,9 @@ "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", "requires": { - "lodash._getnative": "3.9.1", - "lodash.isarguments": "3.1.0", - "lodash.isarray": "3.0.4" + "lodash._getnative": "^3.0.0", + "lodash.isarguments": "^3.0.0", + "lodash.isarray": "^3.0.0" } }, "lodash.memoize": { @@ -8671,7 +8946,7 @@ "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", "dev": true, "requires": { - "chalk": "2.4.2" + "chalk": "^2.0.1" } }, "loglevel": { @@ -8701,7 +8976,7 @@ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "requires": { - "js-tokens": "4.0.0" + "js-tokens": "^3.0.0 || ^4.0.0" } }, "loud-rejection": { @@ -8710,8 +8985,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": { @@ -8724,7 +8999,7 @@ "resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.2.tgz", "integrity": "sha1-5dp8JvKacHO+AtUrrJmA5ZIq36E=", "requires": { - "lower-case": "1.1.4" + "lower-case": "^1.1.2" } }, "lru-cache": { @@ -8733,8 +9008,8 @@ "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", "dev": true, "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, "make-dir": { @@ -8743,7 +9018,7 @@ "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", "dev": true, "requires": { - "pify": "3.0.0" + "pify": "^3.0.0" } }, "map-cache": { @@ -8764,7 +9039,7 @@ "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "dev": true, "requires": { - "object-visit": "1.0.1" + "object-visit": "^1.0.0" } }, "markdown-escapes": { @@ -8784,7 +9059,7 @@ "resolved": "https://registry.npmjs.org/matchmediaquery/-/matchmediaquery-0.2.1.tgz", "integrity": "sha1-IjxwBXk94D5HzpKxMoWnLEStos8=", "requires": { - "css-mediaquery": "0.1.2" + "css-mediaquery": "^0.1.2" } }, "material-colors": { @@ -8815,9 +9090,9 @@ "resolved": "https://registry.npmjs.org/md5/-/md5-2.2.1.tgz", "integrity": "sha1-U6s41f48iJG6RlMp6iP6wFQBJvk=", "requires": { - "charenc": "0.0.2", - "crypt": "0.0.2", - "is-buffer": "1.1.6" + "charenc": "~0.0.1", + "crypt": "~0.0.1", + "is-buffer": "~1.1.1" } }, "md5.js": { @@ -8826,9 +9101,9 @@ "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", "dev": true, "requires": { - "hash-base": "3.0.4", - "inherits": "2.0.3", - "safe-buffer": "5.1.2" + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" } }, "mdast-util-compact": { @@ -8837,7 +9112,7 @@ "integrity": "sha512-d2WS98JSDVbpSsBfVvD9TaDMlqPRz7ohM/11G0rp5jOBb5q96RJ6YLszQ/09AAixyzh23FeIpCGqfaamEADtWg==", "dev": true, "requires": { - "unist-util-visit": "1.4.0" + "unist-util-visit": "^1.1.0" } }, "media-typer": { @@ -8852,13 +9127,13 @@ "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "dev": true, "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "memoize-one": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.0.0.tgz", - "integrity": "sha512-7g0+ejkOaI9w5x6LvQwmj68kUj6rxROywPSCqmclG/HBacmFnZqhVscQ8kovkn9FBCNJmOz6SY42+jnvZzDWdw==" + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.0.4.tgz", + "integrity": "sha512-P0z5IeAH6qHHGkJIXWw0xC2HNEgkx/9uWWBQw64FJj3/ol14VYdfVGWWr0fXfjhhv3TKVIqUq65os6O4GUNksA==" }, "memory-fs": { "version": "0.3.0", @@ -8866,8 +9141,8 @@ "integrity": "sha1-e8xrYp46Q+hx1+Kaymrop/FcuyA=", "dev": true, "requires": { - "errno": "0.1.7", - "readable-stream": "2.0.6" + "errno": "^0.1.3", + "readable-stream": "^2.0.1" } }, "meow": { @@ -8876,16 +9151,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.5.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": { "find-up": { @@ -8894,8 +9169,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" } }, "load-json-file": { @@ -8904,11 +9179,11 @@ "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "dev": true, "requires": { - "graceful-fs": "4.1.15", - "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" } }, "minimist": { @@ -8929,7 +9204,7 @@ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "dev": true, "requires": { - "error-ex": "1.3.2" + "error-ex": "^1.2.0" } }, "path-exists": { @@ -8938,7 +9213,7 @@ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "dev": true, "requires": { - "pinkie-promise": "2.0.1" + "pinkie-promise": "^2.0.0" } }, "path-type": { @@ -8947,9 +9222,9 @@ "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", "dev": true, "requires": { - "graceful-fs": "4.1.15", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "pify": { @@ -8964,9 +9239,9 @@ "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", "dev": true, "requires": { - "load-json-file": "1.1.0", - "normalize-package-data": "2.5.0", - "path-type": "1.1.0" + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" } }, "read-pkg-up": { @@ -8975,8 +9250,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" } }, "strip-bom": { @@ -8985,7 +9260,7 @@ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "dev": true, "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.0" } } } @@ -8996,7 +9271,7 @@ "integrity": "sha1-3UIkjrlrtqUVIXJDIccv+Vg93oA=", "dev": true, "requires": { - "lodash": "2.4.2" + "lodash": "~2.4.1" }, "dependencies": { "lodash": { @@ -9024,19 +9299,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": { @@ -9045,8 +9320,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": { @@ -9055,16 +9330,16 @@ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" }, "mime-db": { - "version": "1.38.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.38.0.tgz", - "integrity": "sha512-bqVioMFFzc2awcdJZIzR3HjZFX20QhilVS7hytkKrv7xFAn8bM1gzc/FOX2awLISvWe0PV8ptFKcon+wZ5qYkg==" + "version": "1.40.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", + "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==" }, "mime-types": { - "version": "2.1.22", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.22.tgz", - "integrity": "sha512-aGl6TZGnhm/li6F7yx82bJiBZwgiEa4Hf6CNr8YO+r5UHr53tSTYZb102zyU50DOWWKeOv0uQLRL0/9EiKWCog==", + "version": "2.1.24", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", + "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", "requires": { - "mime-db": "1.38.0" + "mime-db": "1.40.0" } }, "mimic-fn": { @@ -9079,7 +9354,7 @@ "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", "dev": true, "requires": { - "dom-walk": "0.1.1" + "dom-walk": "^0.1.0" } }, "minimalistic-assert": { @@ -9099,7 +9374,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -9113,8 +9388,8 @@ "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==", "dev": true, "requires": { - "arrify": "1.0.1", - "is-plain-obj": "1.1.0" + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0" } }, "mississippi": { @@ -9123,16 +9398,16 @@ "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==", "dev": true, "requires": { - "concat-stream": "1.5.2", - "duplexify": "3.7.1", - "end-of-stream": "1.4.1", - "flush-write-stream": "1.1.1", - "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.5" + "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": { @@ -9141,8 +9416,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": { @@ -9151,7 +9426,7 @@ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -9162,8 +9437,8 @@ "integrity": "sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=", "dev": true, "requires": { - "for-in": "0.1.8", - "is-extendable": "0.1.1" + "for-in": "^0.1.3", + "is-extendable": "^0.1.1" }, "dependencies": { "for-in": { @@ -9237,8 +9512,8 @@ "integrity": "sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0=", "dev": true, "requires": { - "inherits": "2.0.3", - "minimatch": "0.3.0" + "inherits": "2", + "minimatch": "0.3" } }, "lru-cache": { @@ -9253,8 +9528,8 @@ "integrity": "sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=", "dev": true, "requires": { - "lru-cache": "2.7.3", - "sigmund": "1.0.1" + "lru-cache": "2", + "sigmund": "~1.0.0" } }, "ms": { @@ -9287,7 +9562,7 @@ "resolved": "https://registry.npmjs.org/moment-range/-/moment-range-4.0.2.tgz", "integrity": "sha512-n8sceWwSTjmz++nFHzeNEUsYtDqjgXgcOBzsHi+BoXQU2FW+eU92LUaK8gqOiSu5PG57Q9sYj1Fz4LRDj4FtKA==", "requires": { - "es6-symbol": "3.1.1" + "es6-symbol": "^3.1.0" } }, "move-concurrently": { @@ -9296,12 +9571,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.3", - "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": { @@ -9315,8 +9590,8 @@ "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", "dev": true, "requires": { - "dns-packet": "1.3.1", - "thunky": "1.0.3" + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" } }, "multicast-dns-service-types": { @@ -9332,9 +9607,9 @@ "dev": true }, "nan": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.12.1.tgz", - "integrity": "sha512-JY7V6lRkStKcKTvHO5NVSQRv+RV+FIL5pvDoLiAtSL9pKlC5x9PKQcZDsq7m4FO4d57mkhC6Z+QhAh3Jdk5JFw==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.13.2.tgz", + "integrity": "sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw==", "dev": true }, "nanomatch": { @@ -9343,17 +9618,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": { @@ -9387,7 +9662,7 @@ "resolved": "https://registry.npmjs.org/ncname/-/ncname-1.0.0.tgz", "integrity": "sha1-W1etGLHKCShk72Kwse2BlPODtxw=", "requires": { - "xml-char-classes": "1.0.0" + "xml-char-classes": "^1.0.0" } }, "negotiator": { @@ -9399,8 +9674,7 @@ "neo-async": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.0.tgz", - "integrity": "sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA==", - "dev": true + "integrity": "sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA==" }, "next-tick": { "version": "1.0.0", @@ -9413,7 +9687,7 @@ "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", "dev": true, "requires": { - "lower-case": "1.1.4" + "lower-case": "^1.1.1" } }, "nock": { @@ -9422,14 +9696,14 @@ "integrity": "sha512-f4s5qR4Eg/NgaLuBYTThc/abl5mohCgIvnGdHkoqR5WgRe5amjFQTU2aia085OE8o3OAY7ZerDkRAeXfR720TA==", "dev": true, "requires": { - "chai": "3.5.0", - "debug": "2.6.9", - "deep-equal": "1.0.1", - "json-stringify-safe": "5.0.1", - "lodash": "4.9.0", - "mkdirp": "0.5.1", + "chai": ">=1.9.2 <4.0.0", + "debug": "^2.2.0", + "deep-equal": "^1.0.0", + "json-stringify-safe": "^5.0.1", + "lodash": "~4.9.0", + "mkdirp": "^0.5.0", "propagate": "0.4.0", - "qs": "6.6.0" + "qs": "^6.0.2" }, "dependencies": { "lodash": { @@ -9445,7 +9719,7 @@ "resolved": "https://registry.npmjs.org/node-bourbon/-/node-bourbon-4.2.8.tgz", "integrity": "sha1-5ETx8JQ0q3ZQ6jGMKOLhA9P5Qs0=", "requires": { - "bourbon": "4.3.4" + "bourbon": "^4.2.6" } }, "node-fetch": { @@ -9453,8 +9727,8 @@ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", "requires": { - "encoding": "0.1.12", - "is-stream": "1.1.0" + "encoding": "^0.1.11", + "is-stream": "^1.0.1" } }, "node-forge": { @@ -9469,18 +9743,18 @@ "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", "dev": true, "requires": { - "fstream": "1.0.11", - "glob": "7.1.3", - "graceful-fs": "4.1.15", - "mkdirp": "0.5.1", - "nopt": "3.0.6", - "npmlog": "4.1.2", - "osenv": "0.1.5", - "request": "2.88.0", - "rimraf": "2.6.3", - "semver": "5.3.0", - "tar": "2.2.1", - "which": "1.3.1" + "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": { "glob": { @@ -9489,12 +9763,12 @@ "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "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" } }, "nopt": { @@ -9503,7 +9777,7 @@ "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", "dev": true, "requires": { - "abbrev": "1.1.1" + "abbrev": "1" } }, "semver": { @@ -9520,28 +9794,28 @@ "integrity": "sha1-PicsCBnjCJNeJmdECNevDhSRuDs=", "dev": true, "requires": { - "assert": "1.4.1", - "browserify-zlib": "0.1.4", - "buffer": "4.9.1", - "console-browserify": "1.1.0", - "constants-browserify": "1.0.0", + "assert": "^1.1.1", + "browserify-zlib": "^0.1.4", + "buffer": "^4.9.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", "crypto-browserify": "3.3.0", - "domain-browser": "1.2.0", - "events": "1.1.1", + "domain-browser": "^1.1.1", + "events": "^1.0.0", "https-browserify": "0.0.1", - "os-browserify": "0.2.1", + "os-browserify": "^0.2.0", "path-browserify": "0.0.0", - "process": "0.11.10", - "punycode": "1.4.1", - "querystring-es3": "0.2.1", - "readable-stream": "2.0.6", - "stream-browserify": "2.0.2", - "stream-http": "2.8.3", - "string_decoder": "0.10.31", - "timers-browserify": "2.0.10", + "process": "^0.11.0", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.0.5", + "stream-browserify": "^2.0.1", + "stream-http": "^2.3.1", + "string_decoder": "^0.10.25", + "timers-browserify": "^2.0.2", "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" }, "dependencies": { @@ -9574,7 +9848,7 @@ "integrity": "sha1-OEcpELgV4mG4sbmbpRmZRGWhXCE=", "requires": { "bourbon-neat": "1.7.2", - "node-bourbon": "4.2.8" + "node-bourbon": "^4.2.3" } }, "node-rest-client": { @@ -9583,8 +9857,8 @@ "integrity": "sha1-jTxWa4F+JzlMtyc3g6Qcrv4+WVU=", "dev": true, "requires": { - "debug": "2.2.0", - "xml2js": "0.4.19" + "debug": "~2.2.0", + "xml2js": ">=0.2.4" }, "dependencies": { "debug": { @@ -9610,25 +9884,25 @@ "integrity": "sha512-bHUdHTphgQJZaF1LASx0kAviPH7sGlcyNhWade4eVIpFp6tsn7SV8xNMTbsQFpEV9VXpnwTTnNYlfsZXgGgmkA==", "dev": true, "requires": { - "async-foreach": "0.1.3", - "chalk": "1.1.3", - "cross-spawn": "3.0.1", - "gaze": "1.1.3", - "get-stdin": "4.0.1", - "glob": "7.1.3", - "in-publish": "2.0.0", - "lodash.assign": "4.2.0", - "lodash.clonedeep": "4.5.0", - "lodash.mergewith": "4.6.1", - "meow": "3.7.0", - "mkdirp": "0.5.1", - "nan": "2.12.1", - "node-gyp": "3.8.0", - "npmlog": "4.1.2", - "request": "2.88.0", - "sass-graph": "2.2.4", - "stdout-stream": "1.4.1", - "true-case-path": "1.0.3" + "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.assign": "^4.2.0", + "lodash.clonedeep": "^4.3.2", + "lodash.mergewith": "^4.6.0", + "meow": "^3.7.0", + "mkdirp": "^0.5.1", + "nan": "^2.10.0", + "node-gyp": "^3.8.0", + "npmlog": "^4.0.0", + "request": "^2.88.0", + "sass-graph": "^2.2.4", + "stdout-stream": "^1.4.0", + "true-case-path": "^1.0.2" }, "dependencies": { "ansi-styles": { @@ -9643,11 +9917,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" } }, "glob": { @@ -9656,12 +9930,12 @@ "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "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" } }, "supports-color": { @@ -9683,7 +9957,7 @@ "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", "requires": { - "abbrev": "1.1.1" + "abbrev": "1" } }, "normalize-package-data": { @@ -9692,10 +9966,10 @@ "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "dev": true, "requires": { - "hosted-git-info": "2.7.1", - "resolve": "1.10.0", - "semver": "5.6.0", - "validate-npm-package-license": "3.0.4" + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, "normalize-path": { @@ -9704,7 +9978,7 @@ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "dev": true, "requires": { - "remove-trailing-separator": "1.1.0" + "remove-trailing-separator": "^1.0.1" } }, "normalize-range": { @@ -9725,10 +9999,10 @@ "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", "dev": true, "requires": { - "object-assign": "4.1.1", - "prepend-http": "1.0.4", - "query-string": "4.3.4", - "sort-keys": "1.1.2" + "object-assign": "^4.0.1", + "prepend-http": "^1.0.0", + "query-string": "^4.1.0", + "sort-keys": "^1.0.0" }, "dependencies": { "object-assign": { @@ -9744,7 +10018,7 @@ "resolved": "https://registry.npmjs.org/normalizr/-/normalizr-1.4.1.tgz", "integrity": "sha1-qjh8JGXxNhHK86rkK6+Y9wXoos4=", "requires": { - "lodash": "3.10.1" + "lodash": "^3.10.0" }, "dependencies": { "lodash": { @@ -9760,7 +10034,7 @@ "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "requires": { - "path-key": "2.0.1" + "path-key": "^2.0.0" } }, "npmlog": { @@ -9769,10 +10043,10 @@ "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", "dev": true, "requires": { - "are-we-there-yet": "1.1.5", - "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" } }, "nth-check": { @@ -9781,7 +10055,7 @@ "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", "dev": true, "requires": { - "boolbase": "1.0.0" + "boolbase": "~1.0.0" } }, "num2fraction": { @@ -9819,9 +10093,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": { @@ -9830,15 +10104,15 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } }, "object-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.0.tgz", - "integrity": "sha512-6OO5X1+2tYkNyNEx6TsCxEqFfRWaqx6EtMiSbGrw8Ob8v9Ne+Hl8rBAgLBZn5wjEz3s/s6U1WXFUFOcxxAwUpg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true }, "object-path": { @@ -9853,7 +10127,7 @@ "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.0" } }, "object.fromentries": { @@ -9862,10 +10136,10 @@ "integrity": "sha512-9iLiI6H083uiqUuvzyY6qrlmc/Gz8hLQFOcb/Ri/0xXFkSNS3ctV+CbE6yM2+AnkYfOB3dGjdzC0wrMLIhQICA==", "dev": true, "requires": { - "define-properties": "1.1.3", - "es-abstract": "1.13.0", - "function-bind": "1.1.1", - "has": "1.0.3" + "define-properties": "^1.1.2", + "es-abstract": "^1.11.0", + "function-bind": "^1.1.1", + "has": "^1.0.1" } }, "object.omit": { @@ -9874,8 +10148,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": { @@ -9883,7 +10157,7 @@ "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" } }, "obuf": { @@ -9912,7 +10186,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "onetime": { @@ -9921,16 +10195,16 @@ "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "dev": true, "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "opn": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/opn/-/opn-5.4.0.tgz", - "integrity": "sha512-YF9MNdVy/0qvJvDtunAOzFw9iasOQHpVthTCvGzxt61Il64AYSGdK+rYwld7NAfk9qJ7dt+hymBNSc9LNYS+Sw==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", + "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", "dev": true, "requires": { - "is-wsl": "1.1.0" + "is-wsl": "^1.1.0" } }, "optimist": { @@ -9938,8 +10212,8 @@ "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", "requires": { - "minimist": "0.0.8", - "wordwrap": "0.0.2" + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" } }, "optimize-css-assets-webpack-plugin": { @@ -9948,8 +10222,8 @@ "integrity": "sha512-Fjn7wyyadPAriuH2DHamDQw5B8GohEWbroBkKoPeP+vSF2PIAPI7WDihi8WieMRb/At4q7Ea7zTKaMDuSoIAAg==", "dev": true, "requires": { - "cssnano": "3.10.0", - "last-call-webpack-plugin": "2.1.2" + "cssnano": "^3.4.0", + "last-call-webpack-plugin": "^2.1.2" } }, "optionator": { @@ -9958,12 +10232,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" }, "dependencies": { "wordwrap": { @@ -9980,7 +10254,7 @@ "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", "dev": true, "requires": { - "url-parse": "1.4.4" + "url-parse": "^1.4.3" } }, "os-browserify": { @@ -10001,7 +10275,7 @@ "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", "dev": true, "requires": { - "lcid": "1.0.0" + "lcid": "^1.0.0" } }, "os-tmpdir": { @@ -10016,8 +10290,8 @@ "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "dev": true, "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" } }, "output-file-sync": { @@ -10026,9 +10300,9 @@ "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=", "dev": true, "requires": { - "graceful-fs": "4.1.15", - "mkdirp": "0.5.1", - "object-assign": "4.1.1" + "graceful-fs": "^4.1.4", + "mkdirp": "^0.5.1", + "object-assign": "^4.1.0" }, "dependencies": { "object-assign": { @@ -10051,7 +10325,7 @@ "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "dev": true, "requires": { - "p-try": "1.0.0" + "p-try": "^1.0.0" } }, "p-locate": { @@ -10060,7 +10334,7 @@ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "requires": { - "p-limit": "1.3.0" + "p-limit": "^1.1.0" } }, "p-map": { @@ -10087,9 +10361,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" }, "dependencies": { "process-nextick-args": { @@ -10104,13 +10378,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" } }, "string_decoder": { @@ -10119,7 +10393,7 @@ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } } } @@ -10129,7 +10403,7 @@ "resolved": "https://registry.npmjs.org/param-case/-/param-case-1.1.2.tgz", "integrity": "sha1-3LCRpDwlm5Io8cNB57akTqC/l0M=", "requires": { - "sentence-case": "1.1.3" + "sentence-case": "^1.1.2" } }, "parse-asn1": { @@ -10138,12 +10412,12 @@ "integrity": "sha512-Qs5duJcuvNExRfFZ99HDD3z4mAi3r9Wl/FOjEOijlxwCZs7E7mW2vjTpgQ4J8LpTF8x5v+1Vn5UQFejmWT11aw==", "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.17", - "safe-buffer": "5.1.2" + "asn1.js": "^4.0.0", + "browserify-aes": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" }, "dependencies": { "browserify-aes": { @@ -10152,12 +10426,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" } } } @@ -10180,8 +10454,8 @@ "integrity": "sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ==", "dev": true, "requires": { - "xml-parse-from-string": "1.0.1", - "xml2js": "0.4.19" + "xml-parse-from-string": "^1.0.0", + "xml2js": "^0.4.5" } }, "parse-entities": { @@ -10190,12 +10464,12 @@ "integrity": "sha512-NBWYLQm1KSoDKk7GAHyioLTvCZ5QjdH/ASBBQTD3iLiAWJXS5bg1jEWI8nIJ+vgVvsceBVBcDGRWSo0KVQBvvg==", "dev": true, "requires": { - "character-entities": "1.2.2", - "character-entities-legacy": "1.1.2", - "character-reference-invalid": "1.1.2", - "is-alphanumerical": "1.0.2", - "is-decimal": "1.0.2", - "is-hexadecimal": "1.0.2" + "character-entities": "^1.0.0", + "character-entities-legacy": "^1.0.0", + "character-reference-invalid": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-hexadecimal": "^1.0.0" } }, "parse-glob": { @@ -10204,10 +10478,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-headers": { @@ -10216,8 +10490,8 @@ "integrity": "sha512-/LypJhzFmyBIDYP9aDVgeyEb5sQfbfY5mnDq4hVhlQ69js87wXfmEI5V3xI6vvXasqebp0oCytYFLxsBVfCzSg==", "dev": true, "requires": { - "for-each": "0.3.3", - "string.prototype.trim": "1.1.2" + "for-each": "^0.3.3", + "string.prototype.trim": "^1.1.2" } }, "parse-json": { @@ -10225,8 +10499,8 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "requires": { - "error-ex": "1.3.2", - "json-parse-better-errors": "1.0.2" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" } }, "parse-png": { @@ -10235,7 +10509,7 @@ "integrity": "sha1-9cKtfHmTSQmGAgooTBmu5FlxH/I=", "dev": true, "requires": { - "pngjs": "3.3.3" + "pngjs": "^3.2.0" } }, "parse5": { @@ -10245,9 +10519,9 @@ "dev": true }, "parseurl": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", - "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", "dev": true }, "pascal-case": { @@ -10255,8 +10529,8 @@ "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-1.1.2.tgz", "integrity": "sha1-Pl1kogBDgwp8STRMLXS0G+DJyZs=", "requires": { - "camel-case": "1.2.2", - "upper-case-first": "1.1.2" + "camel-case": "^1.1.1", + "upper-case-first": "^1.1.0" } }, "pascalcase": { @@ -10276,7 +10550,7 @@ "resolved": "https://registry.npmjs.org/path-case/-/path-case-1.1.2.tgz", "integrity": "sha1-UM5roNO+090LXCqcRVNpdDRAlRQ=", "requires": { - "sentence-case": "1.1.3" + "sentence-case": "^1.1.2" } }, "path-dirname": { @@ -10334,7 +10608,7 @@ "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", "dev": true, "requires": { - "pify": "2.3.0" + "pify": "^2.0.0" }, "dependencies": { "pify": { @@ -10351,11 +10625,11 @@ "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", "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" }, "dependencies": { "ripemd160": { @@ -10364,8 +10638,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" } }, "sha.js": { @@ -10374,8 +10648,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" } } } @@ -10403,15 +10677,15 @@ "integrity": "sha1-79ISpKOWbTZHaE6ouniFSb4q7+8=", "dev": true, "requires": { - "es6-promise": "4.2.6", - "extract-zip": "1.6.7", - "fs-extra": "1.0.0", - "hasha": "2.2.0", - "kew": "0.7.0", - "progress": "1.1.8", - "request": "2.88.0", - "request-progress": "2.0.1", - "which": "1.3.1" + "es6-promise": "^4.0.3", + "extract-zip": "^1.6.5", + "fs-extra": "^1.0.0", + "hasha": "^2.2.0", + "kew": "^0.7.0", + "progress": "^1.1.8", + "request": "^2.81.0", + "request-progress": "^2.0.1", + "which": "^1.2.10" }, "dependencies": { "es6-promise": { @@ -10457,7 +10731,7 @@ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } }, "pixelmatch": { @@ -10466,7 +10740,7 @@ "integrity": "sha1-j0fc7FARtHe2fbA8JDvB8wheiFQ=", "dev": true, "requires": { - "pngjs": "3.3.3" + "pngjs": "^3.0.0" } }, "pkg-dir": { @@ -10475,7 +10749,7 @@ "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", "dev": true, "requires": { - "find-up": "2.1.0" + "find-up": "^2.1.0" } }, "pkg-up": { @@ -10484,7 +10758,7 @@ "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", "dev": true, "requires": { - "find-up": "2.1.0" + "find-up": "^2.1.0" } }, "pluralize": { @@ -10500,15 +10774,15 @@ "dev": true }, "pngjs": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.3.3.tgz", - "integrity": "sha512-1n3Z4p3IOxArEs1VRXnZ/RXdfEniAUS9jb68g58FIXMNkPJeZd+Qh4Uq7/e0LVxAQGos1eIUrqrt4FpjdnEd+Q==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", + "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==", "dev": true }, "popper.js": { - "version": "1.14.7", - "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.14.7.tgz", - "integrity": "sha512-4q1hNvoUre/8srWsH7hnoSJ5xVmIL4qgz+s4qf2TnJIMyZFUFMGH+9vE7mXynAlHSZ/NdTmmow86muD0myUkVQ==" + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.15.0.tgz", + "integrity": "sha512-w010cY1oCUmI+9KwwlWki+r5jxKfTFDVoadl7MSrIujHU5MJ5OR6HTDj6Xo8aoR/QsA56x8jKjA59qGH4ELtrA==" }, "portfinder": { "version": "1.0.20", @@ -10516,9 +10790,9 @@ "integrity": "sha512-Yxe4mTyDzTd59PZJY4ojZR8F+E5e97iq2ZOHPz3HDgSvYC5siNad2tLooQ5y5QHyQhc3xVqvyk/eNA3wuoa7Sw==", "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": { "async": { @@ -10541,9 +10815,9 @@ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "5.5.0" + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" }, "dependencies": { "source-map": { @@ -10560,9 +10834,9 @@ "integrity": "sha1-d7rnypKK2FcW4v2kLyYb98HWW14=", "dev": true, "requires": { - "postcss": "5.2.18", - "postcss-message-helpers": "2.0.0", - "reduce-css-calc": "1.3.0" + "postcss": "^5.0.2", + "postcss-message-helpers": "^2.0.0", + "reduce-css-calc": "^1.2.6" }, "dependencies": { "ansi-styles": { @@ -10577,11 +10851,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" }, "dependencies": { "supports-color": { @@ -10604,10 +10878,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.5.1", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "source-map": { @@ -10622,7 +10896,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -10633,9 +10907,9 @@ "integrity": "sha1-ZjFBfV8OkJo9fsJrJMio0eT5bks=", "dev": true, "requires": { - "colormin": "1.1.2", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.1" + "colormin": "^1.0.5", + "postcss": "^5.0.13", + "postcss-value-parser": "^3.2.3" }, "dependencies": { "ansi-styles": { @@ -10650,11 +10924,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" }, "dependencies": { "supports-color": { @@ -10677,10 +10951,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.5.1", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "source-map": { @@ -10695,7 +10969,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -10706,8 +10980,8 @@ "integrity": "sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0=", "dev": true, "requires": { - "postcss": "5.2.18", - "postcss-value-parser": "3.3.1" + "postcss": "^5.0.11", + "postcss-value-parser": "^3.1.2" }, "dependencies": { "ansi-styles": { @@ -10722,11 +10996,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" }, "dependencies": { "supports-color": { @@ -10749,10 +11023,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.5.1", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "source-map": { @@ -10767,7 +11041,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -10778,7 +11052,7 @@ "integrity": "sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0=", "dev": true, "requires": { - "postcss": "5.2.18" + "postcss": "^5.0.14" }, "dependencies": { "ansi-styles": { @@ -10793,11 +11067,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" }, "dependencies": { "supports-color": { @@ -10820,10 +11094,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.5.1", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "source-map": { @@ -10838,7 +11112,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -10849,7 +11123,7 @@ "integrity": "sha1-uavye4isGIFYpesSq8riAmO5GTI=", "dev": true, "requires": { - "postcss": "5.2.18" + "postcss": "^5.0.4" }, "dependencies": { "ansi-styles": { @@ -10864,11 +11138,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" }, "dependencies": { "supports-color": { @@ -10891,10 +11165,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.5.1", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "source-map": { @@ -10909,7 +11183,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -10920,7 +11194,7 @@ "integrity": "sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU=", "dev": true, "requires": { - "postcss": "5.2.18" + "postcss": "^5.0.14" }, "dependencies": { "ansi-styles": { @@ -10935,11 +11209,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" }, "dependencies": { "supports-color": { @@ -10962,10 +11236,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.5.1", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "source-map": { @@ -10980,7 +11254,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -10991,7 +11265,7 @@ "integrity": "sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg=", "dev": true, "requires": { - "postcss": "5.2.18" + "postcss": "^5.0.16" }, "dependencies": { "ansi-styles": { @@ -11006,11 +11280,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" }, "dependencies": { "supports-color": { @@ -11033,10 +11307,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.5.1", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "source-map": { @@ -11051,7 +11325,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -11062,8 +11336,8 @@ "integrity": "sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM=", "dev": true, "requires": { - "postcss": "5.2.18", - "uniqs": "2.0.0" + "postcss": "^5.0.14", + "uniqs": "^2.0.0" }, "dependencies": { "ansi-styles": { @@ -11078,11 +11352,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" }, "dependencies": { "supports-color": { @@ -11105,10 +11379,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.5.1", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "source-map": { @@ -11123,7 +11397,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -11134,7 +11408,7 @@ "integrity": "sha512-T53GVFsdinJhgwm7rg1BzbeBRomOg9y5MBVhGcsV0CxurUdVj1UlPdKtn7aqYA/c/QVkzKMjq2bSV5dKG5+AwQ==", "dev": true, "requires": { - "postcss": "5.2.18" + "postcss": "^5.0.4" }, "dependencies": { "ansi-styles": { @@ -11149,11 +11423,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" }, "dependencies": { "supports-color": { @@ -11176,10 +11450,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.5.1", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "source-map": { @@ -11194,7 +11468,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -11205,9 +11479,9 @@ "integrity": "sha512-KxKUpj7AY7nlCbLcTOYxdfJnGE7QFAfU2n95ADj1Q90RM/pOLdz8k3n4avOyRFs7MDQHcRzJQWM1dehCwJxisQ==", "dev": true, "requires": { - "htmlparser2": "3.10.1", - "remark": "8.0.0", - "unist-util-find-all-after": "1.0.2" + "htmlparser2": "^3.9.2", + "remark": "^8.0.0", + "unist-util-find-all-after": "^1.0.1" }, "dependencies": { "htmlparser2": { @@ -11216,23 +11490,23 @@ "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", "dev": true, "requires": { - "domelementtype": "1.3.1", - "domhandler": "2.3.0", - "domutils": "1.5.1", - "entities": "1.1.2", - "inherits": "2.0.3", - "readable-stream": "3.2.0" + "domelementtype": "^1.3.1", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.1.1" } }, "readable-stream": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.2.0.tgz", - "integrity": "sha512-RV20kLjdmpZuTF1INEb9IA3L68Nmi+Ri7ppZqo78wj//Pn62fCoJyV9zalccNzDD/OuJpMG4f+pfMl8+L6QdGw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.3.0.tgz", + "integrity": "sha512-EsI+s3k3XsW+fU8fQACLN59ky34AZ14LoeVZpYwmZvldCFo0r0gnelwF2TcMjLor/BTL5aDJVBMkss0dthToPw==", "dev": true, "requires": { - "inherits": "2.0.3", - "string_decoder": "1.2.0", - "util-deprecate": "1.0.2" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" } }, "string_decoder": { @@ -11241,7 +11515,7 @@ "integrity": "sha512-6YqyX6ZWEYguAxgZzHGL7SsCeGx3V2TtOTqZz1xSTSWnqsbWwbptafNyvf/ACquZUXV3DANr5BDIwNYe1mN42w==", "dev": true, "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } } } @@ -11252,7 +11526,7 @@ "integrity": "sha512-QQIiIqgEjNnquc0d4b6HDOSFZxbFQoy4MPpli2lSLpKhMyBkKwwca2HFqu4xzxlKID/F2fxSOowwtKpgczhF7A==", "dev": true, "requires": { - "postcss": "5.2.18" + "postcss": "^5.2.16" }, "dependencies": { "ansi-styles": { @@ -11267,11 +11541,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" }, "dependencies": { "supports-color": { @@ -11294,10 +11568,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.5.1", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "source-map": { @@ -11312,7 +11586,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -11323,8 +11597,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": { @@ -11333,10 +11607,10 @@ "integrity": "sha512-6e5vDdrXZD+t5v0L8CrurPeybg4Fmf+FCSYxXKYVAqLUtyCSbuyqE059d0kDthTNRzKVjL7QMgNpEUlsoYH3iQ==", "dev": true, "requires": { - "is-directory": "0.3.1", - "js-yaml": "3.12.2", - "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" } } } @@ -11347,10 +11621,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": { "schema-utils": { @@ -11359,8 +11633,8 @@ "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", "dev": true, "requires": { - "ajv": "6.10.0", - "ajv-keywords": "3.4.0" + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0" } } } @@ -11377,9 +11651,9 @@ "integrity": "sha1-TFUwMTwI4dWzu/PSu8dH4njuonA=", "dev": true, "requires": { - "has": "1.0.3", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.1" + "has": "^1.0.1", + "postcss": "^5.0.10", + "postcss-value-parser": "^3.1.1" }, "dependencies": { "ansi-styles": { @@ -11394,11 +11668,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" }, "dependencies": { "supports-color": { @@ -11421,10 +11695,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.5.1", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "source-map": { @@ -11439,7 +11713,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -11450,7 +11724,7 @@ "integrity": "sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg=", "dev": true, "requires": { - "postcss": "5.2.18" + "postcss": "^5.0.4" }, "dependencies": { "ansi-styles": { @@ -11465,11 +11739,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" }, "dependencies": { "supports-color": { @@ -11492,10 +11766,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.5.1", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "source-map": { @@ -11510,7 +11784,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -11521,11 +11795,11 @@ "integrity": "sha1-0d9d+qexrMO+VT8OnhDofGG19yE=", "dev": true, "requires": { - "browserslist": "1.7.7", - "caniuse-api": "1.6.1", - "postcss": "5.2.18", - "postcss-selector-parser": "2.2.3", - "vendors": "1.0.2" + "browserslist": "^1.5.2", + "caniuse-api": "^1.5.2", + "postcss": "^5.0.4", + "postcss-selector-parser": "^2.2.2", + "vendors": "^1.0.0" }, "dependencies": { "ansi-styles": { @@ -11540,8 +11814,8 @@ "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", "dev": true, "requires": { - "caniuse-db": "1.0.30000941", - "electron-to-chromium": "1.3.113" + "caniuse-db": "^1.0.30000639", + "electron-to-chromium": "^1.2.7" } }, "chalk": { @@ -11550,11 +11824,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" }, "dependencies": { "supports-color": { @@ -11577,10 +11851,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.5.1", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "source-map": { @@ -11595,7 +11869,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -11612,9 +11886,9 @@ "integrity": "sha1-S1jttWZB66fIR0qzUmyv17vey2k=", "dev": true, "requires": { - "object-assign": "4.1.1", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.1" + "object-assign": "^4.0.1", + "postcss": "^5.0.4", + "postcss-value-parser": "^3.0.2" }, "dependencies": { "ansi-styles": { @@ -11629,11 +11903,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" }, "dependencies": { "supports-color": { @@ -11662,10 +11936,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.5.1", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "source-map": { @@ -11680,7 +11954,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -11691,8 +11965,8 @@ "integrity": "sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE=", "dev": true, "requires": { - "postcss": "5.2.18", - "postcss-value-parser": "3.3.1" + "postcss": "^5.0.12", + "postcss-value-parser": "^3.3.0" }, "dependencies": { "ansi-styles": { @@ -11707,11 +11981,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" }, "dependencies": { "supports-color": { @@ -11734,10 +12008,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.5.1", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "source-map": { @@ -11752,7 +12026,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -11763,10 +12037,10 @@ "integrity": "sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM=", "dev": true, "requires": { - "alphanum-sort": "1.0.2", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.1", - "uniqs": "2.0.0" + "alphanum-sort": "^1.0.1", + "postcss": "^5.0.2", + "postcss-value-parser": "^3.0.2", + "uniqs": "^2.0.0" }, "dependencies": { "ansi-styles": { @@ -11781,11 +12055,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" }, "dependencies": { "supports-color": { @@ -11808,10 +12082,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.5.1", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "source-map": { @@ -11826,7 +12100,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -11837,10 +12111,10 @@ "integrity": "sha1-ssapjAByz5G5MtGkllCBFDEXNb8=", "dev": true, "requires": { - "alphanum-sort": "1.0.2", - "has": "1.0.3", - "postcss": "5.2.18", - "postcss-selector-parser": "2.2.3" + "alphanum-sort": "^1.0.2", + "has": "^1.0.1", + "postcss": "^5.0.14", + "postcss-selector-parser": "^2.0.0" }, "dependencies": { "ansi-styles": { @@ -11855,11 +12129,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" }, "dependencies": { "supports-color": { @@ -11882,10 +12156,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.5.1", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "source-map": { @@ -11900,7 +12174,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -11911,11 +12185,11 @@ "integrity": "sha512-btTrbK+Xc3NBuYF8TPBjCMRSp5h6NoQ1iVZ6WiDQENIze6KIYCSf0+UFQuV3yJ7gRHA+4AAtF8i2jRvUpbBMMg==", "dev": true, "requires": { - "css-modules-loader-core": "1.1.0", - "generic-names": "1.0.3", - "lodash.camelcase": "4.3.0", - "postcss": "7.0.14", - "string-hash": "1.1.3" + "css-modules-loader-core": "^1.1.0", + "generic-names": "^1.0.3", + "lodash.camelcase": "^4.3.0", + "postcss": "^7.0.1", + "string-hash": "^1.1.1" }, "dependencies": { "postcss": { @@ -11924,9 +12198,9 @@ "integrity": "sha512-NsbD6XUUMZvBxtQAJuWDJeeC4QFsmWsfozWxCJPWf3M55K9iu2iMDaKqyoOdTJ1R4usBXuxlVFAIo8rZPQD4Bg==", "dev": true, "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "source-map": { @@ -11941,7 +12215,7 @@ "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -11952,7 +12226,7 @@ "integrity": "sha512-6jt9XZwUhwmRUhb/CkyJY020PYaPJsCyt3UjbaWo6XEbH/94Hmv6MP7fG2C5NDU/BcHzyGYxNtHvM+LTf9HrYw==", "dev": true, "requires": { - "postcss": "6.0.23" + "postcss": "^6.0.1" } }, "postcss-modules-local-by-default": { @@ -11961,8 +12235,8 @@ "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=", "dev": true, "requires": { - "css-selector-tokenizer": "0.7.1", - "postcss": "6.0.23" + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" } }, "postcss-modules-parser": { @@ -11971,9 +12245,9 @@ "integrity": "sha1-lfca15FvDzkge7gcQBM2yNJFc4w=", "dev": true, "requires": { - "icss-replace-symbols": "1.1.0", - "lodash.foreach": "3.0.3", - "postcss": "5.2.18" + "icss-replace-symbols": "^1.0.2", + "lodash.foreach": "^3.0.3", + "postcss": "^5.0.10" }, "dependencies": { "ansi-styles": { @@ -11988,11 +12262,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" }, "dependencies": { "supports-color": { @@ -12015,10 +12289,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.5.1", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "source-map": { @@ -12033,7 +12307,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -12044,9 +12318,9 @@ "integrity": "sha1-OY0wALla6WlCDN9M2D+oBn8cXq4=", "dev": true, "requires": { - "css-selector-tokenizer": "0.7.1", - "icss-utils": "3.0.1", - "minimist": "1.2.0" + "css-selector-tokenizer": "^0.7.0", + "icss-utils": "^3.0.1", + "minimist": "^1.2.0" }, "dependencies": { "minimist": { @@ -12063,8 +12337,8 @@ "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", "dev": true, "requires": { - "css-selector-tokenizer": "0.7.1", - "postcss": "6.0.23" + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" } }, "postcss-modules-values": { @@ -12073,8 +12347,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" } }, "postcss-normalize-charset": { @@ -12083,7 +12357,7 @@ "integrity": "sha1-757nEhLX/nWceO0WL2HtYrXLk/E=", "dev": true, "requires": { - "postcss": "5.2.18" + "postcss": "^5.0.5" }, "dependencies": { "ansi-styles": { @@ -12098,11 +12372,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" }, "dependencies": { "supports-color": { @@ -12125,10 +12399,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.5.1", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "source-map": { @@ -12143,7 +12417,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -12154,10 +12428,10 @@ "integrity": "sha1-EI90s/L82viRov+j6kWSJ5/HgiI=", "dev": true, "requires": { - "is-absolute-url": "2.1.0", - "normalize-url": "1.9.1", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.1" + "is-absolute-url": "^2.0.0", + "normalize-url": "^1.4.0", + "postcss": "^5.0.14", + "postcss-value-parser": "^3.2.3" }, "dependencies": { "ansi-styles": { @@ -12172,11 +12446,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" }, "dependencies": { "supports-color": { @@ -12199,10 +12473,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.5.1", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "source-map": { @@ -12217,7 +12491,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -12228,8 +12502,8 @@ "integrity": "sha1-7sbCpntsQSqNsgQud/6NpD+VwR0=", "dev": true, "requires": { - "postcss": "5.2.18", - "postcss-value-parser": "3.3.1" + "postcss": "^5.0.4", + "postcss-value-parser": "^3.0.1" }, "dependencies": { "ansi-styles": { @@ -12244,11 +12518,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" }, "dependencies": { "supports-color": { @@ -12271,10 +12545,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.5.1", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "source-map": { @@ -12289,7 +12563,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -12300,8 +12574,8 @@ "integrity": "sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM=", "dev": true, "requires": { - "postcss": "5.2.18", - "postcss-value-parser": "3.3.1" + "postcss": "^5.0.4", + "postcss-value-parser": "^3.0.2" }, "dependencies": { "ansi-styles": { @@ -12316,11 +12590,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" }, "dependencies": { "supports-color": { @@ -12343,10 +12617,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.5.1", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "source-map": { @@ -12361,7 +12635,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -12372,7 +12646,7 @@ "integrity": "sha1-aPgGlfBF0IJjqHmtJA343WT2ROo=", "dev": true, "requires": { - "postcss": "5.2.18" + "postcss": "^5.0.4" }, "dependencies": { "ansi-styles": { @@ -12387,11 +12661,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" }, "dependencies": { "supports-color": { @@ -12414,10 +12688,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.5.1", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "source-map": { @@ -12432,7 +12706,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -12443,9 +12717,9 @@ "integrity": "sha1-/3b02CEkN7McKYpC0uFEQCV3GuE=", "dev": true, "requires": { - "has": "1.0.3", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.1" + "has": "^1.0.1", + "postcss": "^5.0.8", + "postcss-value-parser": "^3.0.1" }, "dependencies": { "ansi-styles": { @@ -12460,11 +12734,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" }, "dependencies": { "supports-color": { @@ -12487,10 +12761,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.5.1", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "source-map": { @@ -12505,7 +12779,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -12516,10 +12790,10 @@ "integrity": "sha512-rBkDbaHAu5uywbCR2XE8a25tats3xSOsGNx6mppK6Q9kSFGKc/FyAzfci+fWM2l+K402p1D0pNcfDGxeje5IKg==", "dev": true, "requires": { - "chalk": "2.4.2", - "lodash": "4.17.11", - "log-symbols": "2.2.0", - "postcss": "6.0.23" + "chalk": "^2.0.1", + "lodash": "^4.17.4", + "log-symbols": "^2.0.0", + "postcss": "^6.0.8" } }, "postcss-resolve-nested-selector": { @@ -12534,7 +12808,7 @@ "integrity": "sha1-t1Pv9sfArqXoN1++TN6L+QY/8UI=", "dev": true, "requires": { - "postcss": "6.0.23" + "postcss": "^6.0.6" } }, "postcss-sass": { @@ -12543,8 +12817,8 @@ "integrity": "sha512-cUmYzkP747fPCQE6d+CH2l1L4VSyIlAzZsok3HPjb5Gzsq3jE+VjpAdGlPsnQ310WKWI42sw+ar0UNN59/f3hg==", "dev": true, "requires": { - "gonzales-pe": "4.2.3", - "postcss": "6.0.23" + "gonzales-pe": "^4.0.3", + "postcss": "^6.0.6" } }, "postcss-scss": { @@ -12553,7 +12827,7 @@ "integrity": "sha512-4EFYGHcEw+H3E06PT/pQQri06u/1VIIPjeJQaM8skB80vZuXMhp4cSNV5azmdNkontnOID/XYWEvEEELLFB1ww==", "dev": true, "requires": { - "postcss": "6.0.23" + "postcss": "^6.0.23" } }, "postcss-selector-parser": { @@ -12562,9 +12836,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": { @@ -12573,10 +12847,10 @@ "integrity": "sha1-tt8YqmE7Zm4TPwittSGcJoSsEI0=", "dev": true, "requires": { - "is-svg": "2.1.0", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.1", - "svgo": "0.7.2" + "is-svg": "^2.0.0", + "postcss": "^5.0.14", + "postcss-value-parser": "^3.2.3", + "svgo": "^0.7.0" }, "dependencies": { "ansi-styles": { @@ -12591,11 +12865,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" }, "dependencies": { "supports-color": { @@ -12618,7 +12892,7 @@ "integrity": "sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk=", "dev": true, "requires": { - "html-comment-regex": "1.1.2" + "html-comment-regex": "^1.1.0" } }, "postcss": { @@ -12627,10 +12901,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.5.1", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "source-map": { @@ -12645,7 +12919,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -12656,9 +12930,9 @@ "integrity": "sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0=", "dev": true, "requires": { - "alphanum-sort": "1.0.2", - "postcss": "5.2.18", - "uniqs": "2.0.0" + "alphanum-sort": "^1.0.1", + "postcss": "^5.0.4", + "uniqs": "^2.0.0" }, "dependencies": { "ansi-styles": { @@ -12673,11 +12947,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" }, "dependencies": { "supports-color": { @@ -12700,10 +12974,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.5.1", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "source-map": { @@ -12718,7 +12992,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -12735,9 +13009,9 @@ "integrity": "sha1-0hCd3AVbka9n/EyzsCWUZjnSryI=", "dev": true, "requires": { - "has": "1.0.3", - "postcss": "5.2.18", - "uniqs": "2.0.0" + "has": "^1.0.1", + "postcss": "^5.0.4", + "uniqs": "^2.0.0" }, "dependencies": { "ansi-styles": { @@ -12752,11 +13026,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" }, "dependencies": { "supports-color": { @@ -12779,10 +13053,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.5.1", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "source-map": { @@ -12797,7 +13071,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -12826,8 +13100,8 @@ "integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=", "dev": true, "requires": { - "renderkid": "2.0.3", - "utila": "0.4.0" + "renderkid": "^2.0.1", + "utila": "~0.4" } }, "private": { @@ -12857,7 +13131,7 @@ "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", "requires": { - "asap": "2.0.6" + "asap": "~2.0.3" } }, "promise-inflight": { @@ -12871,9 +13145,9 @@ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", "requires": { - "loose-envify": "1.4.0", - "object-assign": "4.1.1", - "react-is": "16.8.3" + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" }, "dependencies": { "object-assign": { @@ -12890,13 +13164,13 @@ "dev": true }, "proxy-addr": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz", - "integrity": "sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz", + "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==", "dev": true, "requires": { - "forwarded": "0.1.2", - "ipaddr.js": "1.8.0" + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.0" } }, "prr": { @@ -12923,12 +13197,12 @@ "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", "dev": true, "requires": { - "bn.js": "4.11.8", - "browserify-rsa": "4.0.1", - "create-hash": "1.2.0", - "parse-asn1": "5.1.4", - "randombytes": "2.1.0", - "safe-buffer": "5.1.2" + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" } }, "pump": { @@ -12937,8 +13211,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": { @@ -12947,9 +13221,9 @@ "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", "dev": true, "requires": { - "duplexify": "3.7.1", - "inherits": "2.0.3", - "pump": "2.0.1" + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" } }, "punycode": { @@ -12963,17 +13237,17 @@ "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" }, "qs": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.6.0.tgz", - "integrity": "sha512-KIJqT9jQJDQx5h5uAVPimw6yVg2SekOKu959OCtktD3FjzbpvaPr8i4zzg07DOMz+igA4W/aNM7OV8H37pFYfA==" + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" }, "query-string": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", "requires": { - "object-assign": "4.1.1", - "strict-uri-encode": "1.1.0" + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" }, "dependencies": { "object-assign": { @@ -12996,9 +13270,9 @@ "dev": true }, "querystringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.0.tgz", - "integrity": "sha512-sluvZZ1YiTLD5jsqZcDmFyV2EwToyXZBfpoVOmktMmW+VEnhgakFHnasVph65fOjGPTWN0Nw3+XQaSeMayr0kg==" + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz", + "integrity": "sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==" }, "quick-lru": { "version": "1.1.0", @@ -13011,7 +13285,7 @@ "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", "requires": { - "performance-now": "2.1.0" + "performance-now": "^2.1.0" } }, "ramda": { @@ -13025,9 +13299,9 @@ "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", "dev": true, "requires": { - "is-number": "4.0.0", - "kind-of": "6.0.2", - "math-random": "1.0.4" + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" }, "dependencies": { "is-number": { @@ -13050,7 +13324,7 @@ "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.1.0" } }, "randomfill": { @@ -13059,8 +13333,8 @@ "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", "dev": true, "requires": { - "randombytes": "2.1.0", - "safe-buffer": "5.1.2" + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" } }, "range-parser": { @@ -13087,7 +13361,7 @@ "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", "dev": true, "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": ">= 2.1.2 < 3" } } } @@ -13097,10 +13371,10 @@ "resolved": "https://registry.npmjs.org/rc-align/-/rc-align-2.4.5.tgz", "integrity": "sha512-nv9wYUYdfyfK+qskThf4BQUSIadeI/dCsfaMZfNEoxm9HwOIioQ+LyqmMK6jWHAZQgOzMLaqawhuBXlF63vgjw==", "requires": { - "babel-runtime": "6.26.0", - "dom-align": "1.8.2", - "prop-types": "15.7.2", - "rc-util": "4.6.0" + "babel-runtime": "^6.26.0", + "dom-align": "^1.7.0", + "prop-types": "^15.5.8", + "rc-util": "^4.0.4" } }, "rc-animate": { @@ -13108,12 +13382,12 @@ "resolved": "https://registry.npmjs.org/rc-animate/-/rc-animate-2.6.0.tgz", "integrity": "sha512-JXDycchgbOI+7T/VKmFWnAIn042LLScK1fNkmNunb0jz5q5aPGCAybx2bTo7X5t31Jkj9OsxKNb/vZPDPWufCg==", "requires": { - "babel-runtime": "6.26.0", - "classnames": "2.2.6", - "css-animation": "1.5.0", - "prop-types": "15.7.2", - "raf": "3.4.1", - "react-lifecycles-compat": "3.0.4" + "babel-runtime": "6.x", + "classnames": "^2.2.6", + "css-animation": "^1.3.2", + "prop-types": "15.x", + "raf": "^3.4.0", + "react-lifecycles-compat": "^3.0.4" } }, "rc-slider": { @@ -13121,13 +13395,13 @@ "resolved": "https://registry.npmjs.org/rc-slider/-/rc-slider-8.6.4.tgz", "integrity": "sha512-CV2i2Ww6ib0EjFuBKvgjw3PgT6QwvWKC93iEpqPtrztZrx5wO9Iw//AUri4KHRqptW13AuBvFdEHovqLi6XFTw==", "requires": { - "babel-runtime": "6.26.0", - "classnames": "2.2.6", - "prop-types": "15.7.2", - "rc-tooltip": "3.7.3", - "rc-util": "4.6.0", - "shallowequal": "1.1.0", - "warning": "3.0.0" + "babel-runtime": "6.x", + "classnames": "^2.2.5", + "prop-types": "^15.5.4", + "rc-tooltip": "^3.7.0", + "rc-util": "^4.0.4", + "shallowequal": "^1.0.1", + "warning": "^3.0.0" }, "dependencies": { "warning": { @@ -13135,7 +13409,7 @@ "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=", "requires": { - "loose-envify": "1.4.0" + "loose-envify": "^1.0.0" } } } @@ -13145,9 +13419,9 @@ "resolved": "https://registry.npmjs.org/rc-tooltip/-/rc-tooltip-3.7.3.tgz", "integrity": "sha512-dE2ibukxxkrde7wH9W8ozHKUO4aQnPZ6qBHtrTH9LoO836PjDdiaWO73fgPB05VfJs9FbZdmGPVEbXCeOP99Ww==", "requires": { - "babel-runtime": "6.26.0", - "prop-types": "15.7.2", - "rc-trigger": "2.6.2" + "babel-runtime": "6.x", + "prop-types": "^15.5.8", + "rc-trigger": "^2.2.2" } }, "rc-trigger": { @@ -13155,12 +13429,12 @@ "resolved": "https://registry.npmjs.org/rc-trigger/-/rc-trigger-2.6.2.tgz", "integrity": "sha512-op4xCu95/gdHVaysyxxiYxbY+Z+UcIBSUY9nQfLqm1FlitdtnAN+owD5iMPfnnsRXntgcQ5+RdYKNUFQT5DjzA==", "requires": { - "babel-runtime": "6.26.0", - "classnames": "2.2.6", - "prop-types": "15.7.2", - "rc-align": "2.4.5", - "rc-animate": "2.6.0", - "rc-util": "4.6.0" + "babel-runtime": "6.x", + "classnames": "^2.2.6", + "prop-types": "15.x", + "rc-align": "^2.4.0", + "rc-animate": "2.x", + "rc-util": "^4.4.0" } }, "rc-util": { @@ -13168,10 +13442,10 @@ "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-4.6.0.tgz", "integrity": "sha512-rbgrzm1/i8mgfwOI4t1CwWK7wGe+OwX+dNa7PVMgxZYPBADGh86eD4OcJO1UKGeajIMDUUKMluaZxvgraQIOmw==", "requires": { - "add-dom-event-listener": "1.1.0", - "babel-runtime": "6.26.0", - "prop-types": "15.7.2", - "shallowequal": "0.2.2" + "add-dom-event-listener": "^1.1.0", + "babel-runtime": "6.x", + "prop-types": "^15.5.10", + "shallowequal": "^0.2.2" }, "dependencies": { "shallowequal": { @@ -13179,7 +13453,7 @@ "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-0.2.2.tgz", "integrity": "sha1-HjL9W8q2rWiKSBLLDMBO/HXHAU4=", "requires": { - "lodash.keys": "3.1.2" + "lodash.keys": "^3.1.2" } } } @@ -13189,11 +13463,11 @@ "resolved": "https://registry.npmjs.org/react/-/react-15.6.2.tgz", "integrity": "sha1-26BDSrQ5z+gvEI8PURZjkIF5qnI=", "requires": { - "create-react-class": "15.6.3", - "fbjs": "0.8.17", - "loose-envify": "1.4.0", - "object-assign": "4.1.1", - "prop-types": "15.7.2" + "create-react-class": "^15.6.0", + "fbjs": "^0.8.9", + "loose-envify": "^1.1.0", + "object-assign": "^4.1.0", + "prop-types": "^15.5.10" }, "dependencies": { "object-assign": { @@ -13208,7 +13482,7 @@ "resolved": "https://registry.npmjs.org/react-addons-css-transition-group/-/react-addons-css-transition-group-15.6.2.tgz", "integrity": "sha1-nkN2vPQLUhfRTsaFUwgc7ksIptY=", "requires": { - "react-transition-group": "1.2.1" + "react-transition-group": "^1.2.0" }, "dependencies": { "react-transition-group": { @@ -13216,11 +13490,11 @@ "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-1.2.1.tgz", "integrity": "sha512-CWaL3laCmgAFdxdKbhhps+c0HRGF4c+hdM4H23+FI1QBNUyx/AMeIJGWorehPNSaKnQNOAxL7PQmqMu78CDj3Q==", "requires": { - "chain-function": "1.0.1", - "dom-helpers": "3.4.0", - "loose-envify": "1.4.0", - "prop-types": "15.7.2", - "warning": "3.0.0" + "chain-function": "^1.0.0", + "dom-helpers": "^3.2.0", + "loose-envify": "^1.3.1", + "prop-types": "^15.5.6", + "warning": "^3.0.0" } }, "warning": { @@ -13228,7 +13502,7 @@ "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=", "requires": { - "loose-envify": "1.4.0" + "loose-envify": "^1.0.0" } } } @@ -13238,8 +13512,8 @@ "resolved": "https://registry.npmjs.org/react-addons-pure-render-mixin/-/react-addons-pure-render-mixin-15.6.2.tgz", "integrity": "sha1-a4P0C2s27kBzXL1hJes/E84c3ck=", "requires": { - "fbjs": "0.8.17", - "object-assign": "4.1.1" + "fbjs": "^0.8.4", + "object-assign": "^4.1.0" }, "dependencies": { "object-assign": { @@ -13254,8 +13528,8 @@ "resolved": "https://registry.npmjs.org/react-addons-shallow-compare/-/react-addons-shallow-compare-15.6.2.tgz", "integrity": "sha1-GYoAuR/DdiPbZKKP0XtZa6NicC8=", "requires": { - "fbjs": "0.8.17", - "object-assign": "4.1.1" + "fbjs": "^0.8.4", + "object-assign": "^4.1.0" }, "dependencies": { "object-assign": { @@ -13270,8 +13544,8 @@ "resolved": "https://registry.npmjs.org/react-addons-update/-/react-addons-update-15.6.2.tgz", "integrity": "sha1-5TdTxbNIh5dFEMiC1/sHWFHV5QQ=", "requires": { - "fbjs": "0.8.17", - "object-assign": "4.1.1" + "fbjs": "^0.8.9", + "object-assign": "^4.1.0" }, "dependencies": { "object-assign": { @@ -13286,9 +13560,9 @@ "resolved": "https://registry.npmjs.org/react-avatar/-/react-avatar-2.5.1.tgz", "integrity": "sha512-bwH5pWY6uxaKZt+IZBfD+SU3Dpy3FaKbmAzrOI4N8SATUPLXOdGaJHWUl6Vl8hHSwWSsoLh/m7xYHdnn0lofZw==", "requires": { - "babel-runtime": "6.26.0", - "is-retina": "1.0.3", - "md5": "2.2.1" + "babel-runtime": ">=5.0.0", + "is-retina": "^1.0.3", + "md5": "^2.0.0" } }, "react-circular-progressbar": { @@ -13296,20 +13570,20 @@ "resolved": "https://registry.npmjs.org/react-circular-progressbar/-/react-circular-progressbar-0.5.0.tgz", "integrity": "sha512-4W+9xS7BBUq/VZ9kq/zcRJvR/1hRnCDTTM5ZqhTJF79hd5lwj6JorsUnFxOj9Wb2//F+oEpt2kF3CBlfB1c6Zg==", "requires": { - "prop-types": "15.7.2" + "prop-types": "^15.5.10" } }, "react-color": { - "version": "2.17.0", - "resolved": "https://registry.npmjs.org/react-color/-/react-color-2.17.0.tgz", - "integrity": "sha512-kJfE5tSaFe6GzalXOHksVjqwCPAsTl+nzS9/BWfP7j3EXbQ4IiLAF9sZGNzk3uq7HfofGYgjmcUgh0JP7xAQ0w==", + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/react-color/-/react-color-2.17.1.tgz", + "integrity": "sha512-S+I6TkUKJaqfALLkAIfiCZ/MANQyy7dKkf7g9ZU5GTUy2rf8c2Rx62otyvADAviWR+6HRkzdf2vL1Qvz9goCLQ==", "requires": { - "@icons/material": "0.2.4", - "lodash": "4.17.11", - "material-colors": "1.2.6", - "prop-types": "15.7.2", - "reactcss": "1.2.3", - "tinycolor2": "1.4.1" + "@icons/material": "^0.2.4", + "lodash": "^4.17.11", + "material-colors": "^1.2.1", + "prop-types": "^15.5.10", + "reactcss": "^1.2.0", + "tinycolor2": "^1.4.1" } }, "react-css-super-themr": { @@ -13317,8 +13591,8 @@ "resolved": "https://registry.npmjs.org/react-css-super-themr/-/react-css-super-themr-2.2.0.tgz", "integrity": "sha512-fcSRGHVhYEBU8zx530RViXd7rjosirUjv0PFXimKNHRsoGuhnu1wb0lYDJ1xwhUfehJ/rr3O60+H3jRFP78KaQ==", "requires": { - "hoist-non-react-statics": "1.2.0", - "invariant": "2.2.4" + "hoist-non-react-statics": "^1.2.0", + "invariant": "^2.2.1" }, "dependencies": { "hoist-non-react-statics": { @@ -13333,8 +13607,8 @@ "resolved": "https://registry.npmjs.org/react-datetime/-/react-datetime-2.7.1.tgz", "integrity": "sha1-PcS1LY162zD55sDbx27gLYbSw8c=", "requires": { - "object-assign": "3.0.0", - "react-onclickoutside": "4.9.0" + "object-assign": "^3.0.0", + "react-onclickoutside": "^4.1.0" }, "dependencies": { "object-assign": { @@ -13349,10 +13623,10 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-15.6.2.tgz", "integrity": "sha1-Qc+t9pO3V/rycIRDodH9WgK+9zA=", "requires": { - "fbjs": "0.8.17", - "loose-envify": "1.4.0", - "object-assign": "4.1.1", - "prop-types": "15.7.2" + "fbjs": "^0.8.9", + "loose-envify": "^1.1.0", + "object-assign": "^4.1.0", + "prop-types": "^15.5.10" }, "dependencies": { "object-assign": { @@ -13368,11 +13642,11 @@ "integrity": "sha1-63cFxNs2+1AbOqOP91lhaqD/luA=" }, "react-dotdotdot": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/react-dotdotdot/-/react-dotdotdot-1.2.3.tgz", - "integrity": "sha512-lYCHCegi76+kqmgqkii/ma2QqsfA1Slf5jTJYWKgnT3uz8EkPaO9hRDPMDEsDHEBua2qOXSxWCHxVf4N740W1w==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/react-dotdotdot/-/react-dotdotdot-1.3.0.tgz", + "integrity": "sha512-yW/Dyfjv8B3FSMPEQ9JAt3o0DGacxcmbzb7UPj1NnIK9Nh9TzCNDZpOLZ6U/KGRHjFruQi3PokmhTj7XpyaBSA==", "requires": { - "object.pick": "1.3.0" + "object.pick": "^1.3.0" } }, "react-dropzone": { @@ -13380,8 +13654,8 @@ "resolved": "https://registry.npmjs.org/react-dropzone/-/react-dropzone-3.13.4.tgz", "integrity": "sha1-hNomgVxAM5aRxJtFRMLvehaRLMw=", "requires": { - "attr-accept": "1.1.3", - "prop-types": "15.7.2" + "attr-accept": "^1.0.3", + "prop-types": "^15.5.7" } }, "react-gateway": { @@ -13389,36 +13663,27 @@ "resolved": "https://registry.npmjs.org/react-gateway/-/react-gateway-3.0.0.tgz", "integrity": "sha512-Do06hWBwND22j05Kvqs4XtRA1cAxc6oFQ9UK9QxMeboWa/9DAUArioqvS4HsmenWQc5Yl3ziHDlhj9xorYY52Q==", "requires": { - "prop-types": "15.7.2", - "react-prop-types": "0.4.0" + "prop-types": "^15.5.0", + "react-prop-types": "^0.4.0" } }, "react-hot-loader": { - "version": "4.7.2", - "resolved": "https://registry.npmjs.org/react-hot-loader/-/react-hot-loader-4.7.2.tgz", - "integrity": "sha512-kkvGHmvLrbg6RH7svQ28T1swM2JFsHYBRT92xz4k4ubSyPcE2i8YVPQmoKWsDk/zNNpC710M9Md10oZzugecOw==", - "dev": true, - "requires": { - "fast-levenshtein": "2.0.6", - "global": "4.3.2", - "hoist-non-react-statics": "3.3.0", - "loader-utils": "1.1.0", - "lodash": "4.17.11", - "prop-types": "15.7.2", - "react-lifecycles-compat": "3.0.4", - "shallowequal": "1.1.0", - "source-map": "0.7.3" + "version": "4.8.4", + "resolved": "https://registry.npmjs.org/react-hot-loader/-/react-hot-loader-4.8.4.tgz", + "integrity": "sha512-O98btZXcm24ZgP+aPBD0W9N+GEnkOg6vlLEy/IMZ53u3K/dGqO0I/RU4qrmQzE+wMDLpwNo5TwxaAjVw9Y+IBA==", + "dev": true, + "requires": { + "fast-levenshtein": "^2.0.6", + "global": "^4.3.0", + "hoist-non-react-statics": "^3.3.0", + "loader-utils": "^1.1.0", + "lodash": "^4.17.11", + "prop-types": "^15.6.1", + "react-lifecycles-compat": "^3.0.4", + "shallowequal": "^1.0.2", + "source-map": "^0.7.3" }, "dependencies": { - "hoist-non-react-statics": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.0.tgz", - "integrity": "sha512-0XsbTXxgiaCDYDIWFcwkmerZPSwywfUqYmwT4jzewKTQSWoE6FCMoUVOeBJWK3E/CrWbxRG3m5GzY4lnIwGRBA==", - "dev": true, - "requires": { - "react-is": "16.8.3" - } - }, "source-map": { "version": "0.7.3", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", @@ -13432,7 +13697,7 @@ "resolved": "https://registry.npmjs.org/react-infinite-scroller/-/react-infinite-scroller-1.2.4.tgz", "integrity": "sha512-/oOa0QhZjXPqaD6sictN2edFMsd3kkMiE19Vcz5JDgHpzEJVqYcmq+V3mkwO88087kvKGe1URNksHEOt839Ubw==", "requires": { - "prop-types": "15.7.2" + "prop-types": "^15.5.8" } }, "react-input-autosize": { @@ -13441,19 +13706,19 @@ "integrity": "sha1-OG/3qdLD3AFsJlvy5Z05cFD2Wvc=" }, "react-is": { - "version": "16.8.3", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.8.3.tgz", - "integrity": "sha512-Y4rC1ZJmsxxkkPuMLwvKvlL1Zfpbcu+Bf4ZigkHup3v9EfdYhAlWAaVyA19olXq2o2mGn0w+dFKvk3pVVlYcIA==" + "version": "16.8.6", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.8.6.tgz", + "integrity": "sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA==" }, "react-layout-pane": { "version": "0.1.16", "resolved": "https://registry.npmjs.org/react-layout-pane/-/react-layout-pane-0.1.16.tgz", "integrity": "sha1-wW0Eodx8M97e3gP1Q4yc+gwXVBw=", "requires": { - "object-assign": "4.1.1", - "react": "0.14.9", - "react-dom": "0.14.9", - "react-vendor-prefix": "0.0.1" + "object-assign": "^4.0.1", + "react": "^0.14.0", + "react-dom": "^0.14.0", + "react-vendor-prefix": "^0.0.1" }, "dependencies": { "fbjs": { @@ -13461,11 +13726,11 @@ "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.6.1.tgz", "integrity": "sha1-lja3cF9bqWhNRLcveDISVK/IYPc=", "requires": { - "core-js": "1.2.7", - "loose-envify": "1.4.0", - "promise": "7.3.1", - "ua-parser-js": "0.7.19", - "whatwg-fetch": "0.9.0" + "core-js": "^1.0.0", + "loose-envify": "^1.0.0", + "promise": "^7.0.3", + "ua-parser-js": "^0.7.9", + "whatwg-fetch": "^0.9.0" } }, "object-assign": { @@ -13478,8 +13743,8 @@ "resolved": "https://registry.npmjs.org/react/-/react-0.14.9.tgz", "integrity": "sha1-kRCmSXxJ1EuhwO3TF67CnC4NkdE=", "requires": { - "envify": "3.4.1", - "fbjs": "0.6.1" + "envify": "^3.0.0", + "fbjs": "^0.6.1" } }, "react-dom": { @@ -13499,7 +13764,7 @@ "resolved": "https://registry.npmjs.org/react-lazy-cache/-/react-lazy-cache-3.0.1.tgz", "integrity": "sha1-DcZNON8XZ+93Z4xclBkAZMsRsM0=", "requires": { - "deep-equal": "1.0.1" + "deep-equal": "^1.0.1" } }, "react-lifecycles-compat": { @@ -13512,12 +13777,12 @@ "resolved": "https://registry.npmjs.org/react-modal/-/react-modal-1.9.7.tgz", "integrity": "sha512-oZNqI0ZnPD7NnfObrCMz2hxHTAw5oEuhZJ+gnyFNIQB2rR8h1YbLQTfhms1mtSJigb0J23OOWElHjXYYaKO+wg==", "requires": { - "create-react-class": "15.6.3", - "element-class": "0.2.2", + "create-react-class": "^15.5.2", + "element-class": "^0.2.0", "exenv": "1.2.0", - "lodash.assign": "4.2.0", - "prop-types": "15.7.2", - "react-dom-factories": "1.0.2" + "lodash.assign": "^4.2.0", + "prop-types": "^15.5.7", + "react-dom-factories": "^1.0.0" } }, "react-onclickoutside": { @@ -13525,7 +13790,7 @@ "resolved": "https://registry.npmjs.org/react-onclickoutside/-/react-onclickoutside-4.9.0.tgz", "integrity": "sha1-KQjDE24kQQK+peVDeoOKUo1dKZU=", "requires": { - "object-assign": "4.1.1" + "object-assign": "^4.0.1" }, "dependencies": { "object-assign": { @@ -13540,8 +13805,8 @@ "resolved": "https://registry.npmjs.org/react-popper/-/react-popper-0.7.5.tgz", "integrity": "sha512-ya9dhhGCf74JTOB2uyksEHhIGw7w9tNZRUJF73lEq2h4H5JT6MBa4PdT4G+sx6fZwq+xKZAL/sVNAIuojPn7Dg==", "requires": { - "popper.js": "1.14.7", - "prop-types": "15.7.2" + "popper.js": "^1.12.5", + "prop-types": "^15.5.10" } }, "react-prop-types": { @@ -13549,7 +13814,7 @@ "resolved": "https://registry.npmjs.org/react-prop-types/-/react-prop-types-0.4.0.tgz", "integrity": "sha1-+ZsL+0AGkpya8gUefBQUpcdbk9A=", "requires": { - "warning": "3.0.0" + "warning": "^3.0.0" }, "dependencies": { "warning": { @@ -13557,22 +13822,22 @@ "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=", "requires": { - "loose-envify": "1.4.0" + "loose-envify": "^1.0.0" } } } }, "react-redux": { - "version": "4.4.9", - "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-4.4.9.tgz", - "integrity": "sha512-3XS7mjTOcvaP2H5OE/LxEgDHRuEyTZxBRlwvXHzNqYkZdYd7Ra98AimWoDSHP9OcLoydjA1ocgiZxxcqeXj0Sw==", + "version": "4.4.10", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-4.4.10.tgz", + "integrity": "sha512-tjL0Bmpkj75Td0k+lXlF8Fc8a9GuXFv/3ahUOCXExWs/jhsKiQeTffdH0j5byejCGCRL4tvGFYlrwBF1X/Aujg==", "requires": { - "create-react-class": "15.6.3", - "hoist-non-react-statics": "2.5.5", - "invariant": "2.2.4", - "lodash": "4.17.11", - "loose-envify": "1.4.0", - "prop-types": "15.7.2" + "create-react-class": "^15.5.1", + "hoist-non-react-statics": "^3.3.0", + "invariant": "^2.0.0", + "lodash": "^4.17.11", + "loose-envify": "^1.4.0", + "prop-types": "^15.7.2" } }, "react-responsive": { @@ -13580,9 +13845,9 @@ "resolved": "https://registry.npmjs.org/react-responsive/-/react-responsive-4.1.0.tgz", "integrity": "sha512-ZuDraf0qsJlyiTwzeva+foHx83IP6SIhru9o7BvMwQ4ZHjRIL5WjdgVNNrKSRbmeWO9rEJoMpabei/5lJn8KaA==", "requires": { - "hyphenate-style-name": "1.0.3", - "matchmediaquery": "0.2.1", - "prop-types": "15.7.2" + "hyphenate-style-name": "^1.0.0", + "matchmediaquery": "^0.2.1", + "prop-types": "^15.6.1" } }, "react-router": { @@ -13590,8 +13855,8 @@ "resolved": "https://registry.npmjs.org/react-router/-/react-router-1.0.3.tgz", "integrity": "sha1-mA7KoFW4bkfIZUjCMq4FqIpB8Lc=", "requires": { - "invariant": "2.2.4", - "warning": "2.1.0" + "invariant": "^2.0.0", + "warning": "^2.0.0" } }, "react-router-dom": { @@ -13599,48 +13864,44 @@ "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-4.3.1.tgz", "integrity": "sha512-c/MlywfxDdCp7EnB7YfPMOfMD3tOtIjrQlj/CKfNMBxdmpJP8xcz5P/UAFn3JbnQCNUxsHyVVqllF9LhgVyFCA==", "requires": { - "history": "4.7.2", - "invariant": "2.2.4", - "loose-envify": "1.4.0", - "prop-types": "15.7.2", - "react-router": "4.3.1", - "warning": "4.0.3" + "history": "^4.7.2", + "invariant": "^2.2.4", + "loose-envify": "^1.3.1", + "prop-types": "^15.6.1", + "react-router": "^4.3.1", + "warning": "^4.0.1" }, "dependencies": { "history": { - "version": "4.7.2", - "resolved": "https://registry.npmjs.org/history/-/history-4.7.2.tgz", - "integrity": "sha512-1zkBRWW6XweO0NBcjiphtVJVsIQ+SXF29z9DVkceeaSLVMFXHool+fdCZD4spDCfZJCILPILc3bm7Bc+HRi0nA==", - "requires": { - "invariant": "2.2.4", - "loose-envify": "1.4.0", - "resolve-pathname": "2.2.0", - "value-equal": "0.4.0", - "warning": "3.0.0" - }, - "dependencies": { - "warning": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", - "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=", - "requires": { - "loose-envify": "1.4.0" - } - } + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/history/-/history-4.9.0.tgz", + "integrity": "sha512-H2DkjCjXf0Op9OAr6nJ56fcRkTSNrUiv41vNJ6IswJjif6wlpZK0BTfFbi7qK9dXLSYZxkq5lBsj3vUjlYBYZA==", + "requires": { + "@babel/runtime": "^7.1.2", + "loose-envify": "^1.2.0", + "resolve-pathname": "^2.2.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0", + "value-equal": "^0.4.0" } }, + "hoist-non-react-statics": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz", + "integrity": "sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw==" + }, "react-router": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/react-router/-/react-router-4.3.1.tgz", "integrity": "sha512-yrvL8AogDh2X42Dt9iknk4wF4V8bWREPirFfS9gLU1huk6qK41sg7Z/1S81jjTrGHxa3B8R3J6xIkDAA6CVarg==", "requires": { - "history": "4.7.2", - "hoist-non-react-statics": "2.5.5", - "invariant": "2.2.4", - "loose-envify": "1.4.0", - "path-to-regexp": "1.7.0", - "prop-types": "15.7.2", - "warning": "4.0.3" + "history": "^4.7.2", + "hoist-non-react-statics": "^2.5.0", + "invariant": "^2.2.4", + "loose-envify": "^1.3.1", + "path-to-regexp": "^1.7.0", + "prop-types": "^15.6.1", + "warning": "^4.0.1" } }, "warning": { @@ -13648,7 +13909,7 @@ "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", "requires": { - "loose-envify": "1.4.0" + "loose-envify": "^1.0.0" } } } @@ -13658,7 +13919,7 @@ "resolved": "https://registry.npmjs.org/react-s-alert/-/react-s-alert-1.4.1.tgz", "integrity": "sha512-+cSpVPe6YeGklhlo7zbVlB0Z6jdiU9HPmEVzp5nIhNm9lvdL7rVO2Jx09pCwT99GmODyoN0iNhbQku6r7six8A==", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.23.0" } }, "react-scroll": { @@ -13666,8 +13927,8 @@ "resolved": "https://registry.npmjs.org/react-scroll/-/react-scroll-1.7.11.tgz", "integrity": "sha512-MCWtt8KWTBzBlo9oFE7xgAhGcgbslsfQAuGZAfYlBTt3Pxi2CX+kh8OoTUVAuOwNlt9XkoWcvDTWQwtHzm2uOg==", "requires": { - "lodash.throttle": "4.1.1", - "prop-types": "15.7.2" + "lodash.throttle": "^4.1.1", + "prop-types": "^15.5.8" } }, "react-scroll-lock-component": { @@ -13675,21 +13936,21 @@ "resolved": "https://registry.npmjs.org/react-scroll-lock-component/-/react-scroll-lock-component-1.2.0.tgz", "integrity": "sha512-J4WzvBMczHM8l7mTdyssq3r7cdhnRVyBIOQeuLqobk5hyQBWQg6u3mjQcBo/+97exXCfF3HyUP9r8fpWs/TF0A==", "requires": { - "prop-types": "15.7.2" + "prop-types": "^15.6.0" } }, "react-select": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/react-select/-/react-select-2.4.1.tgz", - "integrity": "sha512-je1cVAFsyQrGxkruQnNCuwo3+P0+1dyq7M4/gTlSwhO4ptPeTjf0eNrvCJ9iurVyorrnI88zgx2/yxrr2/oLLQ==", - "requires": { - "classnames": "2.2.6", - "emotion": "9.2.12", - "memoize-one": "5.0.0", - "prop-types": "15.7.2", - "raf": "3.4.1", - "react-input-autosize": "2.2.1", - "react-transition-group": "2.6.0" + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/react-select/-/react-select-2.4.3.tgz", + "integrity": "sha512-cmxNaiHpviRYkojeW9rGEUJ4jpX7QTmPe2wcscwA4d1lStzw/cJtr4ft5H2O/YhfpkrcwaLghu3XmEYdXhBo8Q==", + "requires": { + "classnames": "^2.2.5", + "emotion": "^9.1.2", + "memoize-one": "^5.0.0", + "prop-types": "^15.6.0", + "raf": "^3.4.0", + "react-input-autosize": "^2.2.1", + "react-transition-group": "^2.2.1" }, "dependencies": { "react-input-autosize": { @@ -13697,7 +13958,7 @@ "resolved": "https://registry.npmjs.org/react-input-autosize/-/react-input-autosize-2.2.1.tgz", "integrity": "sha512-3+K4CD13iE4lQQ2WlF8PuV5htfmTRLH6MDnfndHM6LuBRszuXnuyIfE7nhSKt8AzRBZ50bu0sAhkNMeS5pxQQA==", "requires": { - "prop-types": "15.7.2" + "prop-types": "^15.5.8" } } } @@ -13707,10 +13968,10 @@ "resolved": "https://registry.npmjs.org/react-stickynode/-/react-stickynode-1.4.1.tgz", "integrity": "sha512-V2ep9tgDcK3SLhVzz24OOFxOBMUz55lDM77m6tlstxc0mudQ9vx+RNBl9Tnt1Y96quSyNq0iZnEadviR2hDo9A==", "requires": { - "classnames": "2.2.6", - "prop-types": "15.7.2", - "react-addons-shallow-compare": "15.6.2", - "subscribe-ui-event": "1.1.2" + "classnames": "^2.0.0", + "prop-types": "^15.6.0", + "react-addons-shallow-compare": "^0.14.2 || ^15.0.0", + "subscribe-ui-event": "^1.0.0" } }, "react-switch-button": { @@ -13728,18 +13989,18 @@ "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-5.2.1.tgz", "integrity": "sha512-bx6z2I35aapr71ggw2yZIA4qhmqeTa4ZVsSaTeFvtf9kfcZppDBh2PbMt8lvbdmzEk7qbSFhAxR9vxEVm6oiMg==", "requires": { - "prop-types": "15.7.2" + "prop-types": "^15.6.0" } }, "react-transition-group": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-2.6.0.tgz", - "integrity": "sha512-VzZ+6k/adL3pJHo4PU/MHEPjW59/TGQtRsXC+wnxsx2mxjQKNHnDdJL/GpYuPJIsyHGjYbBQfIJ2JNOAdPc8GQ==", + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-2.9.0.tgz", + "integrity": "sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg==", "requires": { - "dom-helpers": "3.4.0", - "loose-envify": "1.4.0", - "prop-types": "15.7.2", - "react-lifecycles-compat": "3.0.4" + "dom-helpers": "^3.4.0", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2", + "react-lifecycles-compat": "^3.0.4" } }, "react-vendor-prefix": { @@ -13752,7 +14013,7 @@ "resolved": "https://registry.npmjs.org/reactcss/-/reactcss-1.2.3.tgz", "integrity": "sha512-KiwVUcFu1RErkI97ywr8nvx8dNOpT03rbnma0SSalTYjkrPYaEajR4a/MRt6DZ46K6arDRbWMNHF+xH7G7n/8A==", "requires": { - "lodash": "4.17.11" + "lodash": "^4.0.1" } }, "read-chunk": { @@ -13767,9 +14028,9 @@ "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", "dev": true, "requires": { - "load-json-file": "2.0.0", - "normalize-package-data": "2.5.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": { @@ -13778,8 +14039,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" } }, "readable-stream": { @@ -13787,12 +14048,12 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "string_decoder": "0.10.31", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~0.10.x", + "util-deprecate": "~1.0.1" } }, "readdirp": { @@ -13801,9 +14062,9 @@ "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", "dev": true, "requires": { - "graceful-fs": "4.1.15", - "micromatch": "3.1.10", - "readable-stream": "2.0.6" + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" }, "dependencies": { "arr-diff": { @@ -13824,16 +14085,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": { @@ -13842,7 +14103,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -13853,13 +14114,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": { @@ -13868,7 +14129,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -13877,7 +14138,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { @@ -13886,7 +14147,7 @@ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -13895,7 +14156,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -13906,7 +14167,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -13915,7 +14176,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -13926,9 +14187,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": { @@ -13945,14 +14206,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": { @@ -13961,7 +14222,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { @@ -13970,7 +14231,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -13981,10 +14242,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": { @@ -13993,7 +14254,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -14004,7 +14265,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -14013,7 +14274,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -14022,9 +14283,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": { @@ -14033,7 +14294,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -14042,7 +14303,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -14059,19 +14320,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" } } } @@ -14082,9 +14343,9 @@ "integrity": "sha1-RR/TAEqx5N+bTktmN2sqIZEkYtM=", "requires": { "ast-types": "0.9.6", - "esprima": "3.1.3", - "private": "0.1.8", - "source-map": "0.5.7" + "esprima": "~3.1.0", + "private": "~0.1.5", + "source-map": "~0.5.0" }, "dependencies": { "esprima": { @@ -14104,10 +14365,17 @@ "resolved": "https://registry.npmjs.org/recompose/-/recompose-0.26.0.tgz", "integrity": "sha512-KwOu6ztO0mN5vy3+zDcc45lgnaUoaQse/a5yLVqtzTK13czSWnFGmXbQVmnoMgDkI5POd1EwIKSbjU1V7xdZog==", "requires": { - "change-emitter": "0.1.6", - "fbjs": "0.8.17", - "hoist-non-react-statics": "2.5.5", - "symbol-observable": "1.2.0" + "change-emitter": "^0.1.2", + "fbjs": "^0.8.1", + "hoist-non-react-statics": "^2.3.1", + "symbol-observable": "^1.0.4" + }, + "dependencies": { + "hoist-non-react-statics": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz", + "integrity": "sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw==" + } } }, "redent": { @@ -14116,8 +14384,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": { @@ -14126,9 +14394,9 @@ "integrity": "sha1-dHyRTgSWFKTJz7umKYca0dKSdxY=", "dev": true, "requires": { - "balanced-match": "0.4.2", - "math-expression-evaluator": "1.2.17", - "reduce-function-call": "1.0.2" + "balanced-match": "^0.4.2", + "math-expression-evaluator": "^1.2.14", + "reduce-function-call": "^1.0.1" }, "dependencies": { "balanced-match": { @@ -14145,7 +14413,7 @@ "integrity": "sha1-WiAL+S4ON3UXUv5FsKszD9S2vpk=", "dev": true, "requires": { - "balanced-match": "0.4.2" + "balanced-match": "^0.4.2" }, "dependencies": { "balanced-match": { @@ -14161,10 +14429,10 @@ "resolved": "https://registry.npmjs.org/redux/-/redux-3.7.2.tgz", "integrity": "sha512-pNqnf9q1hI5HHZRBkj3bAngGZW/JMCmexDlOxw4XagXY2o1327nHH54LoTjiPJ0gizoqPDRqWyX/00g0hD6w+A==", "requires": { - "lodash": "4.17.11", - "lodash-es": "4.17.11", - "loose-envify": "1.4.0", - "symbol-observable": "1.2.0" + "lodash": "^4.2.1", + "lodash-es": "^4.2.1", + "loose-envify": "^1.1.0", + "symbol-observable": "^1.0.3" } }, "redux-form": { @@ -14172,10 +14440,10 @@ "resolved": "https://registry.npmjs.org/redux-form/-/redux-form-4.2.2.tgz", "integrity": "sha1-uK43pAcJBvRdvTCwcinxoQvyXLA=", "requires": { - "deep-equal": "1.0.1", - "hoist-non-react-statics": "1.2.0", - "is-promise": "2.1.0", - "react-lazy-cache": "3.0.1" + "deep-equal": "^1.0.1", + "hoist-non-react-statics": "^1.0.5", + "is-promise": "^2.1.0", + "react-lazy-cache": "^3.0.1" }, "dependencies": { "hoist-non-react-statics": { @@ -14199,7 +14467,7 @@ "integrity": "sha512-ryhkkb/4D4CUGpAV2ln1GOY/uh51aczjcRz9k2L2bPx/Xja3c5pSGJJPyR25GNVRXtKIExScdAgFdiXp68GmJA==", "dev": true, "requires": { - "lodash.isplainobject": "4.0.6" + "lodash.isplainobject": "^4.0.6" } }, "redux-promise-middleware": { @@ -14212,7 +14480,7 @@ "resolved": "https://registry.npmjs.org/redux-router/-/redux-router-1.0.0.tgz", "integrity": "sha1-PBZ240Qb7FD+jZJFfAF8tjaZM08=", "requires": { - "deep-equal": "1.0.1" + "deep-equal": "^1.0.1" } }, "redux-segment": { @@ -14242,9 +14510,9 @@ "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "private": "0.1.8" + "babel-runtime": "^6.18.0", + "babel-types": "^6.19.0", + "private": "^0.1.6" } }, "regex-cache": { @@ -14253,7 +14521,7 @@ "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "dev": true, "requires": { - "is-equal-shallow": "0.1.3" + "is-equal-shallow": "^0.1.3" } }, "regex-not": { @@ -14262,8 +14530,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" } }, "regex-parser": { @@ -14284,9 +14552,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": { @@ -14301,7 +14569,7 @@ "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", "dev": true, "requires": { - "jsesc": "0.5.0" + "jsesc": "~0.5.0" }, "dependencies": { "jsesc": { @@ -14323,9 +14591,9 @@ "integrity": "sha512-K0PTsaZvJlXTl9DN6qYlvjTkqSZBFELhROZMrblm2rB+085flN84nz4g/BscKRMqDvhzlK1oQ/xnWQumdeNZYw==", "dev": true, "requires": { - "remark-parse": "4.0.0", - "remark-stringify": "4.0.0", - "unified": "6.2.0" + "remark-parse": "^4.0.0", + "remark-stringify": "^4.0.0", + "unified": "^6.0.0" } }, "remark-parse": { @@ -14334,21 +14602,21 @@ "integrity": "sha512-XZgICP2gJ1MHU7+vQaRM+VA9HEL3X253uwUM/BGgx3iv6TH2B3bF3B8q00DKcyP9YrJV+/7WOWEWBFF/u8cIsw==", "dev": true, "requires": { - "collapse-white-space": "1.0.4", - "is-alphabetical": "1.0.2", - "is-decimal": "1.0.2", - "is-whitespace-character": "1.0.2", - "is-word-character": "1.0.2", - "markdown-escapes": "1.0.2", - "parse-entities": "1.2.1", - "repeat-string": "1.6.1", - "state-toggle": "1.0.1", + "collapse-white-space": "^1.0.2", + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-whitespace-character": "^1.0.0", + "is-word-character": "^1.0.0", + "markdown-escapes": "^1.0.0", + "parse-entities": "^1.0.2", + "repeat-string": "^1.5.4", + "state-toggle": "^1.0.0", "trim": "0.0.1", - "trim-trailing-lines": "1.1.1", - "unherit": "1.1.1", - "unist-util-remove-position": "1.1.2", - "vfile-location": "2.0.4", - "xtend": "4.0.1" + "trim-trailing-lines": "^1.0.0", + "unherit": "^1.0.4", + "unist-util-remove-position": "^1.0.0", + "vfile-location": "^2.0.0", + "xtend": "^4.0.1" } }, "remark-stringify": { @@ -14357,20 +14625,20 @@ "integrity": "sha512-xLuyKTnuQer3ke9hkU38SUYLiTmS078QOnoFavztmbt/pAJtNSkNtFgR0U//uCcmG0qnyxao+PDuatQav46F1w==", "dev": true, "requires": { - "ccount": "1.0.3", - "is-alphanumeric": "1.0.0", - "is-decimal": "1.0.2", - "is-whitespace-character": "1.0.2", - "longest-streak": "2.0.2", - "markdown-escapes": "1.0.2", - "markdown-table": "1.1.2", - "mdast-util-compact": "1.0.2", - "parse-entities": "1.2.1", - "repeat-string": "1.6.1", - "state-toggle": "1.0.1", - "stringify-entities": "1.3.2", - "unherit": "1.1.1", - "xtend": "4.0.1" + "ccount": "^1.0.0", + "is-alphanumeric": "^1.0.0", + "is-decimal": "^1.0.0", + "is-whitespace-character": "^1.0.0", + "longest-streak": "^2.0.1", + "markdown-escapes": "^1.0.0", + "markdown-table": "^1.1.0", + "mdast-util-compact": "^1.0.0", + "parse-entities": "^1.0.2", + "repeat-string": "^1.5.4", + "state-toggle": "^1.0.0", + "stringify-entities": "^1.0.1", + "unherit": "^1.0.4", + "xtend": "^4.0.1" } }, "remarkable": { @@ -14378,8 +14646,8 @@ "resolved": "https://registry.npmjs.org/remarkable/-/remarkable-1.7.1.tgz", "integrity": "sha1-qspJchALZqZCpjoQIcpLrBvjv/Y=", "requires": { - "argparse": "0.1.16", - "autolinker": "0.15.3" + "argparse": "~0.1.15", + "autolinker": "~0.15.0" }, "dependencies": { "argparse": { @@ -14387,8 +14655,8 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-0.1.16.tgz", "integrity": "sha1-z9AeD7uj1srtBJ+9dY1A9lGW9Xw=", "requires": { - "underscore": "1.7.0", - "underscore.string": "2.4.0" + "underscore": "~1.7.0", + "underscore.string": "~2.4.0" } } } @@ -14405,11 +14673,11 @@ "integrity": "sha512-z8CLQp7EZBPCwCnncgf9C4XAi3WR0dv+uWu/PjIyhhAb5d6IJ/QZqlHFprHeKT+59//V6BNUsLbvN8+2LarxGA==", "dev": true, "requires": { - "css-select": "1.2.0", - "dom-converter": "0.2.0", - "htmlparser2": "3.8.3", - "strip-ansi": "3.0.1", - "utila": "0.4.0" + "css-select": "^1.1.0", + "dom-converter": "^0.2", + "htmlparser2": "^3.3.0", + "strip-ansi": "^3.0.0", + "utila": "^0.4.0" } }, "repeat-element": { @@ -14429,7 +14697,7 @@ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "dev": true, "requires": { - "is-finite": "1.0.2" + "is-finite": "^1.0.0" } }, "replace-ext": { @@ -14444,26 +14712,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.7", - "extend": "3.0.2", - "forever-agent": "0.6.1", - "form-data": "2.3.3", - "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.22", - "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": { "punycode": { @@ -14484,8 +14752,8 @@ "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", "dev": true, "requires": { - "psl": "1.1.31", - "punycode": "1.4.1" + "psl": "^1.1.24", + "punycode": "^1.4.1" } } } @@ -14496,7 +14764,7 @@ "integrity": "sha1-XTa7V5YcZzqlt4jbyBQf3yO0Tgg=", "dev": true, "requires": { - "throttleit": "1.0.0" + "throttleit": "^1.0.0" } }, "require-directory": { @@ -14529,8 +14797,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" }, "dependencies": { "caller-path": { @@ -14539,7 +14807,7 @@ "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", "dev": true, "requires": { - "callsites": "0.2.0" + "callsites": "^0.2.0" } }, "callsites": { @@ -14574,11 +14842,11 @@ "dev": true, "requires": { "bmp-js": "0.0.1", - "file-type": "3.9.0", - "get-stream": "2.3.1", - "jimp": "0.2.28", - "jpeg-js": "0.1.2", - "parse-png": "1.1.2" + "file-type": "^3.8.0", + "get-stream": "^2.0.0", + "jimp": "^0.2.21", + "jpeg-js": "^0.1.1", + "parse-png": "^1.1.1" }, "dependencies": { "bmp-js": { @@ -14602,11 +14870,11 @@ } }, "resolve": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.0.tgz", - "integrity": "sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg==", + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.1.tgz", + "integrity": "sha512-KuIe4mf++td/eFb6wkaPbMDnP6kObCaEtIDuHOUED6MNUo4K670KZUHuuvYPZDxNF0WVLw49n06M2m2dXphEzA==", "requires": { - "path-parse": "1.0.6" + "path-parse": "^1.0.6" } }, "resolve-cwd": { @@ -14615,7 +14883,7 @@ "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", "dev": true, "requires": { - "resolve-from": "3.0.0" + "resolve-from": "^3.0.0" } }, "resolve-from": { @@ -14639,15 +14907,15 @@ "integrity": "sha512-sc/UVgiADdoTc+4cGPB7cUCnlEkzlxD1NXHw4oa9qA0fp30H8mAQ2ePJBP9MQ029DUuhEPouhNdvzT37pBCV0g==", "dev": true, "requires": { - "adjust-sourcemap-loader": "1.2.0", - "camelcase": "4.1.0", - "convert-source-map": "1.6.0", - "loader-utils": "1.1.0", - "lodash.defaults": "4.2.0", - "rework": "1.0.1", - "rework-visit": "1.0.0", - "source-map": "0.5.7", - "urix": "0.1.0" + "adjust-sourcemap-loader": "^1.1.0", + "camelcase": "^4.1.0", + "convert-source-map": "^1.5.1", + "loader-utils": "^1.1.0", + "lodash.defaults": "^4.0.0", + "rework": "^1.0.1", + "rework-visit": "^1.0.0", + "source-map": "^0.5.7", + "urix": "^0.1.0" }, "dependencies": { "camelcase": { @@ -14670,8 +14938,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" } }, "ret": { @@ -14686,8 +14954,8 @@ "integrity": "sha1-MIBqhBNCtUUQqkEQhQzUhTQUSqc=", "dev": true, "requires": { - "convert-source-map": "0.3.5", - "css": "2.2.4" + "convert-source-map": "^0.3.3", + "css": "^2.0.0" }, "dependencies": { "convert-source-map": { @@ -14709,7 +14977,7 @@ "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", "requires": { - "align-text": "0.1.4" + "align-text": "^0.1.1" } }, "rimraf": { @@ -14718,7 +14986,7 @@ "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", "dev": true, "requires": { - "glob": "7.1.3" + "glob": "^7.1.3" }, "dependencies": { "glob": { @@ -14727,12 +14995,12 @@ "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "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" } } } @@ -14749,7 +15017,7 @@ "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", "dev": true, "requires": { - "is-promise": "2.1.0" + "is-promise": "^2.1.0" } }, "run-queue": { @@ -14758,7 +15026,7 @@ "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", "dev": true, "requires": { - "aproba": "1.2.0" + "aproba": "^1.1.1" } }, "rx": { @@ -14778,7 +15046,7 @@ "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", "dev": true, "requires": { - "rx-lite": "4.0.8" + "rx-lite": "*" } }, "safe-buffer": { @@ -14792,7 +15060,7 @@ "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "dev": true, "requires": { - "ret": "0.1.15" + "ret": "~0.1.10" } }, "safer-buffer": { @@ -14811,10 +15079,10 @@ "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=", "dev": true, "requires": { - "glob": "7.1.3", - "lodash": "4.17.11", - "scss-tokenizer": "0.2.3", - "yargs": "7.1.0" + "glob": "^7.0.0", + "lodash": "^4.0.0", + "scss-tokenizer": "^0.2.3", + "yargs": "^7.0.0" }, "dependencies": { "camelcase": { @@ -14829,9 +15097,9 @@ "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wrap-ansi": "2.1.0" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" } }, "find-up": { @@ -14840,8 +15108,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" } }, "glob": { @@ -14850,12 +15118,12 @@ "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "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" } }, "is-fullwidth-code-point": { @@ -14864,7 +15132,7 @@ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "load-json-file": { @@ -14873,11 +15141,11 @@ "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "dev": true, "requires": { - "graceful-fs": "4.1.15", - "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" } }, "parse-json": { @@ -14886,7 +15154,7 @@ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "dev": true, "requires": { - "error-ex": "1.3.2" + "error-ex": "^1.2.0" } }, "path-exists": { @@ -14895,7 +15163,7 @@ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "dev": true, "requires": { - "pinkie-promise": "2.0.1" + "pinkie-promise": "^2.0.0" } }, "path-type": { @@ -14904,9 +15172,9 @@ "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", "dev": true, "requires": { - "graceful-fs": "4.1.15", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "pify": { @@ -14921,9 +15189,9 @@ "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", "dev": true, "requires": { - "load-json-file": "1.1.0", - "normalize-package-data": "2.5.0", - "path-type": "1.1.0" + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" } }, "read-pkg-up": { @@ -14932,8 +15200,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" } }, "string-width": { @@ -14942,9 +15210,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" } }, "strip-bom": { @@ -14953,7 +15221,7 @@ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "dev": true, "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.0" } }, "y18n": { @@ -14968,19 +15236,19 @@ "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", "dev": true, "requires": { - "camelcase": "3.0.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.3", - "os-locale": "1.4.0", - "read-pkg-up": "1.0.1", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "1.0.2", - "which-module": "1.0.0", - "y18n": "3.2.1", - "yargs-parser": "5.0.0" + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^5.0.0" } } } @@ -14991,11 +15259,11 @@ "integrity": "sha512-JoiyD00Yo1o61OJsoP2s2kb19L1/Y2p3QFcCdWdF6oomBGKVYuZyqHWemRBfQ2uGYsk+CH3eCguXNfpjzlcpaA==", "dev": true, "requires": { - "clone-deep": "2.0.2", - "loader-utils": "1.1.0", - "lodash.tail": "4.1.1", - "neo-async": "2.6.0", - "pify": "3.0.0" + "clone-deep": "^2.0.1", + "loader-utils": "^1.0.1", + "lodash.tail": "^4.1.1", + "neo-async": "^2.5.0", + "pify": "^3.0.0" } }, "sax": { @@ -15004,12 +15272,12 @@ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" }, "scheduler": { - "version": "0.13.3", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.13.3.tgz", - "integrity": "sha512-UxN5QRYWtpR1egNWzJcVLk8jlegxAugswQc984lD3kU7NuobsO37/sRfbpTdBjtnD5TBNFA2Q2oLV5+UmPSmEQ==", + "version": "0.13.6", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.13.6.tgz", + "integrity": "sha512-IWnObHt413ucAYKsD9J1QShUKkbKLQQHdxRyw73sw4FN26iWr3DY/H34xGPe4nmL1DwXyWmSWmMrA9TfQbE/XQ==", "requires": { - "loose-envify": "1.4.0", - "object-assign": "4.1.1" + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" }, "dependencies": { "object-assign": { @@ -15025,7 +15293,7 @@ "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", "dev": true, "requires": { - "ajv": "5.5.2" + "ajv": "^5.0.0" }, "dependencies": { "ajv": { @@ -15034,10 +15302,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" } }, "fast-deep-equal": { @@ -15060,8 +15328,8 @@ "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", "dev": true, "requires": { - "js-base64": "2.5.1", - "source-map": "0.4.4" + "js-base64": "^2.1.8", + "source-map": "^0.4.2" } }, "seekout": { @@ -15094,9 +15362,9 @@ } }, "semver": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", - "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", + "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", "dev": true }, "semver-compare": { @@ -15111,18 +15379,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": { "mime": { @@ -15138,13 +15406,13 @@ "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-1.1.3.tgz", "integrity": "sha1-gDSq/CFFdy06vhUJqkLJ4QQtwTk=", "requires": { - "lower-case": "1.1.4" + "lower-case": "^1.1.1" } }, "serialize-javascript": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.6.1.tgz", - "integrity": "sha512-A5MOagrPFga4YaKQSWHryl7AXvbQkEqpw4NNYMTNYUNV51bA8ABHgYFpqKx+YFFrw59xMV1qGH1R4AgoNIVgCw==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.7.0.tgz", + "integrity": "sha512-ke8UG8ulpFOxO8f8gRYabHQe/ZntKlcig2Mp+8+URDP1D8vJZ0KUt7LYo07q25Z/+JVSgpr/cui9PIp5H6/+nA==", "dev": true }, "serve-index": { @@ -15153,13 +15421,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.22", - "parseurl": "1.3.2" + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" } }, "serve-static": { @@ -15168,9 +15436,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" } }, @@ -15186,10 +15454,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": { @@ -15198,7 +15466,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -15226,9 +15494,9 @@ "integrity": "sha512-oeXreoKR/SyNJtRJMAKPDSvd28OqEwG4eR/xc856cRGBII7gX9lvAqDxusPm0846z/w/hWYjI1NpKwJ00NHzRA==", "dev": true, "requires": { - "is-extendable": "0.1.1", - "kind-of": "5.1.0", - "mixin-object": "2.0.1" + "is-extendable": "^0.1.1", + "kind-of": "^5.0.0", + "mixin-object": "^2.0.1" }, "dependencies": { "kind-of": { @@ -15250,7 +15518,7 @@ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { - "shebang-regex": "1.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { @@ -15280,7 +15548,7 @@ "lolex": "1.3.2", "samsam": "1.1.2", "text-encoding": "0.5.2", - "util": "0.11.1" + "util": ">=0.10.3 <1" } }, "slash": { @@ -15295,7 +15563,7 @@ "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0" + "is-fullwidth-code-point": "^2.0.0" } }, "snake-case": { @@ -15303,7 +15571,7 @@ "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-1.1.2.tgz", "integrity": "sha1-DC8l4wUVjZoY09l3BmGH/vilpmo=", "requires": { - "sentence-case": "1.1.3" + "sentence-case": "^1.1.2" } }, "snapdragon": { @@ -15312,14 +15580,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": { "define-property": { @@ -15328,7 +15596,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -15337,7 +15605,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "source-map": { @@ -15354,9 +15622,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": { @@ -15365,7 +15633,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { @@ -15374,7 +15642,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -15383,7 +15651,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -15392,9 +15660,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" } }, "kind-of": { @@ -15411,7 +15679,7 @@ "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.2.0" } }, "sockjs": { @@ -15420,8 +15688,8 @@ "integrity": "sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==", "dev": true, "requires": { - "faye-websocket": "0.10.0", - "uuid": "3.3.2" + "faye-websocket": "^0.10.0", + "uuid": "^3.0.1" } }, "sockjs-client": { @@ -15430,12 +15698,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.4" + "faye-websocket": "~0.11.0", + "inherits": "^2.0.1", + "json3": "^3.3.2", + "url-parse": "^1.1.8" }, "dependencies": { "faye-websocket": { @@ -15444,7 +15712,7 @@ "integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=", "dev": true, "requires": { - "websocket-driver": "0.7.0" + "websocket-driver": ">=0.5.1" } } } @@ -15455,7 +15723,7 @@ "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", "dev": true, "requires": { - "is-plain-obj": "1.1.0" + "is-plain-obj": "^1.0.0" } }, "source-list-map": { @@ -15469,7 +15737,7 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } }, "source-map-resolve": { @@ -15477,11 +15745,11 @@ "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", "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": { @@ -15490,7 +15758,7 @@ "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "dev": true, "requires": { - "source-map": "0.5.7" + "source-map": "^0.5.6" }, "dependencies": { "source-map": { @@ -15517,8 +15785,8 @@ "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", "dev": true, "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.3" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-exceptions": { @@ -15533,73 +15801,93 @@ "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "dev": true, "requires": { - "spdx-exceptions": "2.2.0", - "spdx-license-ids": "3.0.3" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-license-ids": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.3.tgz", - "integrity": "sha512-uBIcIl3Ih6Phe3XHK1NqboJLdGfwr1UN3k6wSD1dZpmPsIkb8AGNbZYJ1fOBk834+Gxy8rpfDxrS6XLEMZMY2g==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.4.tgz", + "integrity": "sha512-7j8LYJLeY/Yb6ACbQ7F76qy5jHkp0U6jgBfJsk97bwWlVUnUWsAgpyaCvo17h0/RQGnQ036tVDomiwoI4pDkQA==", "dev": true }, "spdy": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-3.4.7.tgz", - "integrity": "sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.0.tgz", + "integrity": "sha512-ot0oEGT/PGUpzf/6uk4AWLqkq+irlqHXkrdbk51oWONh3bxQmBuljxPNl66zlRRcIJStWq0QkLUCPOPjgjvU0Q==", "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.1" + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + } } }, "spdy-transport": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-2.1.1.tgz", - "integrity": "sha512-q7D8c148escoB3Z7ySCASadkegMmUZW8Wb/Q1u0/XBgDKMO880rLQDj8Twiew/tYi7ghemKUi/whSYOwE17f5Q==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", "dev": true, "requires": { - "debug": "2.6.9", - "detect-node": "2.0.4", - "hpack.js": "2.1.6", - "obuf": "1.1.2", - "readable-stream": "2.3.6", - "safe-buffer": "5.1.2", - "wbuf": "1.7.3" + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" }, "dependencies": { - "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", "dev": true }, "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.3.0.tgz", + "integrity": "sha512-EsI+s3k3XsW+fU8fQACLN59ky34AZ14LoeVZpYwmZvldCFo0r0gnelwF2TcMjLor/BTL5aDJVBMkss0dthToPw==", "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" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" } }, "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.2.0.tgz", + "integrity": "sha512-6YqyX6ZWEYguAxgZzHGL7SsCeGx3V2TtOTqZz1xSTSWnqsbWwbptafNyvf/ACquZUXV3DANr5BDIwNYe1mN42w==", "dev": true, "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } } } @@ -15616,7 +15904,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": { @@ -15630,15 +15918,15 @@ "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", "dev": true, "requires": { - "asn1": "0.2.4", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.2", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.2", - "getpass": "0.1.7", - "jsbn": "0.1.1", - "safer-buffer": "2.1.2", - "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", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" } }, "ssri": { @@ -15647,7 +15935,7 @@ "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", "dev": true, "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.1.1" } }, "state-toggle": { @@ -15662,8 +15950,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": { @@ -15672,7 +15960,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -15689,7 +15977,7 @@ "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", "dev": true, "requires": { - "readable-stream": "2.0.6" + "readable-stream": "^2.0.1" } }, "stream-browserify": { @@ -15698,8 +15986,8 @@ "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", "dev": true, "requires": { - "inherits": "2.0.3", - "readable-stream": "2.0.6" + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" } }, "stream-consume": { @@ -15713,8 +16001,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": { @@ -15723,11 +16011,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" }, "dependencies": { "process-nextick-args": { @@ -15742,13 +16030,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" } }, "string_decoder": { @@ -15757,7 +16045,7 @@ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } } } @@ -15780,7 +16068,7 @@ "integrity": "sha1-JnmdkDqyAlyb1VCsRxcbAPjdgKk=", "dev": true, "requires": { - "stream-to": "0.2.2" + "stream-to": "~0.2.0" } }, "strict-uri-encode": { @@ -15800,8 +16088,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": { "ansi-regex": { @@ -15816,7 +16104,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -15827,9 +16115,9 @@ "integrity": "sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo=", "dev": true, "requires": { - "define-properties": "1.1.3", - "es-abstract": "1.13.0", - "function-bind": "1.1.1" + "define-properties": "^1.1.2", + "es-abstract": "^1.5.0", + "function-bind": "^1.0.2" } }, "string_decoder": { @@ -15843,10 +16131,10 @@ "integrity": "sha512-nrBAQClJAPN2p+uGCVJRPIPakKeKWZ9GtBCmormE7pWOSlHat7+x5A8gx85M7HM5Dt0BP3pP5RhVW77WdbJJ3A==", "dev": true, "requires": { - "character-entities-html4": "1.1.2", - "character-entities-legacy": "1.1.2", - "is-alphanumerical": "1.0.2", - "is-hexadecimal": "1.0.2" + "character-entities-html4": "^1.0.0", + "character-entities-legacy": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-hexadecimal": "^1.0.0" } }, "strip-ansi": { @@ -15855,7 +16143,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-bom": { @@ -15876,7 +16164,7 @@ "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", "dev": true, "requires": { - "get-stdin": "4.0.1" + "get-stdin": "^4.0.1" } }, "strip-json-comments": { @@ -15891,8 +16179,8 @@ "integrity": "sha512-IRE+ijgojrygQi3rsqT0U4dd+UcPCqcVvauZpCnQrGAlEe+FUIyrK93bUDScamesjP08JlQNsFJU+KmPedP5Og==", "dev": true, "requires": { - "loader-utils": "1.1.0", - "schema-utils": "0.3.0" + "loader-utils": "^1.0.2", + "schema-utils": "^0.3.0" } }, "style-search": { @@ -15907,45 +16195,45 @@ "integrity": "sha512-56hPH5mTFnk8LzlEuTWq0epa34fHuS54UFYQidBOFt563RJBNi1nz1F2HK2MoT1X1waq47milvRsRahFCCJs/Q==", "dev": true, "requires": { - "autoprefixer": "7.2.6", - "balanced-match": "1.0.0", - "chalk": "2.4.2", - "cosmiconfig": "3.1.0", - "debug": "3.2.6", - "execall": "1.0.0", - "file-entry-cache": "2.0.0", - "get-stdin": "5.0.1", - "globby": "7.1.1", - "globjoin": "0.1.4", - "html-tags": "2.0.0", - "ignore": "3.3.10", - "imurmurhash": "0.1.4", - "known-css-properties": "0.5.0", - "lodash": "4.17.11", - "log-symbols": "2.2.0", - "mathml-tag-names": "2.1.0", - "meow": "4.0.1", - "micromatch": "2.3.11", - "normalize-selector": "0.2.0", - "pify": "3.0.0", - "postcss": "6.0.23", - "postcss-html": "0.12.0", - "postcss-less": "1.1.5", - "postcss-media-query-parser": "0.2.3", - "postcss-reporter": "5.0.0", - "postcss-resolve-nested-selector": "0.1.1", - "postcss-safe-parser": "3.0.1", - "postcss-sass": "0.2.0", - "postcss-scss": "1.0.6", - "postcss-selector-parser": "3.1.1", - "postcss-value-parser": "3.3.1", - "resolve-from": "4.0.0", - "specificity": "0.3.2", - "string-width": "2.1.1", - "style-search": "0.1.0", - "sugarss": "1.0.1", - "svg-tags": "1.0.0", - "table": "4.0.2" + "autoprefixer": "^7.1.2", + "balanced-match": "^1.0.0", + "chalk": "^2.0.1", + "cosmiconfig": "^3.1.0", + "debug": "^3.0.0", + "execall": "^1.0.0", + "file-entry-cache": "^2.0.0", + "get-stdin": "^5.0.1", + "globby": "^7.0.0", + "globjoin": "^0.1.4", + "html-tags": "^2.0.0", + "ignore": "^3.3.3", + "imurmurhash": "^0.1.4", + "known-css-properties": "^0.5.0", + "lodash": "^4.17.4", + "log-symbols": "^2.0.0", + "mathml-tag-names": "^2.0.1", + "meow": "^4.0.0", + "micromatch": "^2.3.11", + "normalize-selector": "^0.2.0", + "pify": "^3.0.0", + "postcss": "^6.0.6", + "postcss-html": "^0.12.0", + "postcss-less": "^1.1.0", + "postcss-media-query-parser": "^0.2.3", + "postcss-reporter": "^5.0.0", + "postcss-resolve-nested-selector": "^0.1.1", + "postcss-safe-parser": "^3.0.1", + "postcss-sass": "^0.2.0", + "postcss-scss": "^1.0.2", + "postcss-selector-parser": "^3.1.0", + "postcss-value-parser": "^3.3.0", + "resolve-from": "^4.0.0", + "specificity": "^0.3.1", + "string-width": "^2.1.0", + "style-search": "^0.1.0", + "sugarss": "^1.0.0", + "svg-tags": "^1.0.0", + "table": "^4.0.1" }, "dependencies": { "camelcase": { @@ -15960,9 +16248,9 @@ "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", "dev": true, "requires": { - "camelcase": "4.1.0", - "map-obj": "2.0.0", - "quick-lru": "1.1.0" + "camelcase": "^4.1.0", + "map-obj": "^2.0.0", + "quick-lru": "^1.0.0" } }, "cosmiconfig": { @@ -15971,10 +16259,10 @@ "integrity": "sha512-zedsBhLSbPBms+kE7AH4vHg6JsKDz6epSv2/+5XHs8ILHlgDciSJfSWf8sX9aQ52Jb7KI7VswUTsLpR/G0cr2Q==", "dev": true, "requires": { - "is-directory": "0.3.1", - "js-yaml": "3.12.2", - "parse-json": "3.0.0", - "require-from-string": "2.0.2" + "is-directory": "^0.3.1", + "js-yaml": "^3.9.0", + "parse-json": "^3.0.0", + "require-from-string": "^2.0.1" } }, "debug": { @@ -15983,7 +16271,7 @@ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "dev": true, "requires": { - "ms": "2.1.1" + "ms": "^2.1.1" } }, "get-stdin": { @@ -16004,10 +16292,10 @@ "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "dev": true, "requires": { - "graceful-fs": "4.1.15", - "parse-json": "4.0.0", - "pify": "3.0.0", - "strip-bom": "3.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" }, "dependencies": { "parse-json": { @@ -16016,8 +16304,8 @@ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { - "error-ex": "1.3.2", - "json-parse-better-errors": "1.0.2" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" } } } @@ -16034,15 +16322,15 @@ "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==", "dev": true, "requires": { - "camelcase-keys": "4.2.0", - "decamelize-keys": "1.1.0", - "loud-rejection": "1.6.0", - "minimist": "1.2.0", - "minimist-options": "3.0.2", - "normalize-package-data": "2.5.0", - "read-pkg-up": "3.0.0", - "redent": "2.0.0", - "trim-newlines": "2.0.0" + "camelcase-keys": "^4.0.0", + "decamelize-keys": "^1.0.0", + "loud-rejection": "^1.0.0", + "minimist": "^1.1.3", + "minimist-options": "^3.0.1", + "normalize-package-data": "^2.3.4", + "read-pkg-up": "^3.0.0", + "redent": "^2.0.0", + "trim-newlines": "^2.0.0" } }, "minimist": { @@ -16063,7 +16351,7 @@ "integrity": "sha1-+m9HsY4jgm6tMvJj50TQ4ehH+xM=", "dev": true, "requires": { - "error-ex": "1.3.2" + "error-ex": "^1.3.1" } }, "path-type": { @@ -16072,7 +16360,7 @@ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, "requires": { - "pify": "3.0.0" + "pify": "^3.0.0" } }, "postcss-selector-parser": { @@ -16081,9 +16369,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" } }, "read-pkg": { @@ -16092,9 +16380,9 @@ "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", "dev": true, "requires": { - "load-json-file": "4.0.0", - "normalize-package-data": "2.5.0", - "path-type": "3.0.0" + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" } }, "read-pkg-up": { @@ -16103,8 +16391,8 @@ "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", "dev": true, "requires": { - "find-up": "2.1.0", - "read-pkg": "3.0.0" + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" } }, "redent": { @@ -16113,8 +16401,8 @@ "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", "dev": true, "requires": { - "indent-string": "3.2.0", - "strip-indent": "2.0.0" + "indent-string": "^3.0.0", + "strip-indent": "^2.0.0" } }, "resolve-from": { @@ -16138,18 +16426,18 @@ } }, "stylelint-config-recommended": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-2.1.0.tgz", - "integrity": "sha512-ajMbivOD7JxdsnlS5945KYhvt7L/HwN6YeYF2BH6kE4UCLJR0YvXMf+2j7nQpJyYLZx9uZzU5G1ZOSBiWAc6yA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-2.2.0.tgz", + "integrity": "sha512-bZ+d4RiNEfmoR74KZtCKmsABdBJr4iXRiCso+6LtMJPw5rd/KnxUWTxht7TbafrTJK1YRjNgnN0iVZaJfc3xJA==", "dev": true }, "stylelint-config-standard": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-18.2.0.tgz", - "integrity": "sha512-07x0TaSIzvXlbOioUU4ORkCIM07kyIuojkbSVCyFWNVgXMXYHfhnQSCkqu+oHWJf3YADAnPGWzdJ53NxkoJ7RA==", + "version": "18.3.0", + "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-18.3.0.tgz", + "integrity": "sha512-Tdc/TFeddjjy64LvjPau9SsfVRexmTFqUhnMBrzz07J4p2dVQtmpncRF/o8yZn8ugA3Ut43E6o1GtjX80TFytw==", "dev": true, "requires": { - "stylelint-config-recommended": "2.1.0" + "stylelint-config-recommended": "^2.2.0" } }, "stylis": { @@ -16167,9 +16455,9 @@ "resolved": "https://registry.npmjs.org/subscribe-ui-event/-/subscribe-ui-event-1.1.2.tgz", "integrity": "sha512-K0s0bIYQjVEoheNQJ1wZfRIF11jQ5P8nMdHTYe4ADB87hsHVgJC6bBcL0A/Fb6SS0NC58Hz32ZYKaiADYI12yQ==", "requires": { - "eventemitter3": "2.0.3", - "lodash": "4.17.11", - "raf": "3.4.1" + "eventemitter3": "^2.0.0", + "lodash": "^4.17.10", + "raf": "^3.0.0" }, "dependencies": { "eventemitter3": { @@ -16185,7 +16473,7 @@ "integrity": "sha512-3qgLZytikQQEVn1/FrhY7B68gPUUGY3R1Q1vTiD5xT+Ti1DP/8iZuwFet9ONs5+bmL8pZoDQ6JrQHVgrNlK6mA==", "dev": true, "requires": { - "postcss": "6.0.23" + "postcss": "^6.0.14" } }, "superagent": { @@ -16193,16 +16481,16 @@ "resolved": "https://registry.npmjs.org/superagent/-/superagent-3.8.3.tgz", "integrity": "sha512-GLQtLMCoEIK4eDv6OGtkOoSMt3D+oq0y3dsxMuYuDvaNUvuT8eFBuLmfR0iYYzHC1e8hpzC6ZsxbuP6DIalMFA==", "requires": { - "component-emitter": "1.2.1", - "cookiejar": "2.1.2", - "debug": "3.2.6", - "extend": "3.0.2", - "form-data": "2.3.3", - "formidable": "1.2.1", - "methods": "1.1.2", - "mime": "1.6.0", - "qs": "6.6.0", - "readable-stream": "2.3.6" + "component-emitter": "^1.2.0", + "cookiejar": "^2.1.0", + "debug": "^3.1.0", + "extend": "^3.0.0", + "form-data": "^2.3.1", + "formidable": "^1.2.0", + "methods": "^1.1.1", + "mime": "^1.4.1", + "qs": "^6.5.1", + "readable-stream": "^2.3.5" }, "dependencies": { "debug": { @@ -16210,7 +16498,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "requires": { - "ms": "2.1.1" + "ms": "^2.1.1" } }, "ms": { @@ -16228,13 +16516,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "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" } }, "string_decoder": { @@ -16242,7 +16530,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } } } @@ -16253,7 +16541,7 @@ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } }, "svg-react-loader": { @@ -16274,8 +16562,8 @@ "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.17.tgz", "integrity": "sha1-F76T6q4/O3eTWceVtBlwWogX6Gg=", "requires": { - "sax": "1.2.4", - "xmlbuilder": "4.2.1" + "sax": ">=0.6.0", + "xmlbuilder": "^4.1.0" } }, "xmlbuilder": { @@ -16283,7 +16571,7 @@ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-4.2.1.tgz", "integrity": "sha1-qlijBBoGb5DqoWwvU4n/GfP0YaU=", "requires": { - "lodash": "4.17.11" + "lodash": "^4.0.0" } } } @@ -16300,9 +16588,9 @@ "integrity": "sha1-omRNaLAjGsAK9DGqFjcU/xcQZEc=", "dev": true, "requires": { - "phantomjs-prebuilt": "2.1.16", - "pn": "1.1.0", - "yargs": "3.32.0" + "phantomjs-prebuilt": "^2.1.10", + "pn": "^1.0.0", + "yargs": "^3.31.0" }, "dependencies": { "camelcase": { @@ -16317,9 +16605,9 @@ "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wrap-ansi": "2.1.0" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" } }, "is-fullwidth-code-point": { @@ -16328,7 +16616,7 @@ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "string-width": { @@ -16337,9 +16625,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" } }, "window-size": { @@ -16360,13 +16648,13 @@ "integrity": "sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU=", "dev": true, "requires": { - "camelcase": "2.1.1", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "os-locale": "1.4.0", - "string-width": "1.0.2", - "window-size": "0.1.4", - "y18n": "3.2.1" + "camelcase": "^2.0.1", + "cliui": "^3.0.3", + "decamelize": "^1.1.1", + "os-locale": "^1.4.0", + "string-width": "^1.0.1", + "window-size": "^0.1.4", + "y18n": "^3.2.0" } } } @@ -16377,13 +16665,13 @@ "integrity": "sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U=", "dev": true, "requires": { - "coa": "1.0.4", - "colors": "1.1.2", - "csso": "2.3.2", - "js-yaml": "3.7.0", - "mkdirp": "0.5.1", - "sax": "1.2.4", - "whet.extend": "0.9.9" + "coa": "~1.0.1", + "colors": "~1.1.2", + "csso": "~2.3.1", + "js-yaml": "~3.7.0", + "mkdirp": "~0.5.1", + "sax": "~1.2.1", + "whet.extend": "~0.9.9" }, "dependencies": { "esprima": { @@ -16398,8 +16686,8 @@ "integrity": "sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=", "dev": true, "requires": { - "argparse": "1.0.10", - "esprima": "2.7.3" + "argparse": "^1.0.7", + "esprima": "^2.6.0" } } } @@ -16409,8 +16697,8 @@ "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz", "integrity": "sha1-w5IDpFhzhfrTyFCgvRvK+ggZdOM=", "requires": { - "lower-case": "1.1.4", - "upper-case": "1.1.3" + "lower-case": "^1.1.1", + "upper-case": "^1.1.1" } }, "symbol-observable": { @@ -16430,12 +16718,12 @@ "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", "dev": true, "requires": { - "ajv": "5.5.2", - "ajv-keywords": "2.1.1", - "chalk": "2.4.2", - "lodash": "4.17.11", + "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": { @@ -16444,10 +16732,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" } }, "ajv-keywords": { @@ -16482,27 +16770,28 @@ "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", "dev": true, "requires": { - "block-stream": "0.0.9", - "fstream": "1.0.11", - "inherits": "2.0.3" + "block-stream": "*", + "fstream": "^1.0.2", + "inherits": "2" } }, "tc-accounts": { "version": "git+https://github.com/appirio-tech/accounts-app.git#c7cf3758b0929f73f35781daf856e21acf10a67d", - "requires": { - "@uirouter/angularjs": "1.0.5", - "angucomplete-alt": "2.5.0", - "angular": "1.6.5", - "angular-cookies": "1.6.5", - "angular-messages": "1.6.5", - "appirio-tech-ng-iso-constants": "1.0.6", - "appirio-tech-ng-ui-components": "2.2.5", - "auth0-angular": "4.2.7", - "auth0-js": "6.8.4", - "babel-polyfill": "6.23.0", - "isomorphic-fetch": "2.2.1", - "lodash": "4.17.4", - "ng-onload": "0.2.1" + "from": "git+https://github.com/appirio-tech/accounts-app.git#0.0.11", + "requires": { + "@uirouter/angularjs": "^1.0.0", + "angucomplete-alt": "^2.1.0", + "angular": "^1.4.8", + "angular-cookies": "^1.5.1", + "angular-messages": "^1.5.2", + "appirio-tech-ng-iso-constants": "^1.0.6", + "appirio-tech-ng-ui-components": "^2.2.4", + "auth0-angular": "^4.1.0", + "auth0-js": "^6.8.0", + "babel-polyfill": "^6.7.4", + "isomorphic-fetch": "^2.2.1", + "lodash": "^4.6.1", + "ng-onload": "^0.2.1" }, "dependencies": { "@uirouter/angularjs": { @@ -16533,7 +16822,7 @@ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz", "integrity": "sha512-AOPopplFOUlmUugwiZUCDpOwmqvSgdCyE8iJVLWI4NcB7qfMKQN34dn5xYtlUU03XGG5egRWW4NW5gIxpa5hEA==", "requires": { - "mime-types": "2.1.15", + "mime-types": "~2.1.11", "negotiator": "0.6.1" } }, @@ -16547,7 +16836,7 @@ "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-1.0.9.tgz", "integrity": "sha512-j3/4pkfih8W4NK22gxVSXcEonTpAHOHh0hu5BoZrKcOsW/4oBPxTi4Yk3SAj+FhC1f3+bRTkXdm4019gw1vg9g==", "requires": { - "acorn": "2.7.0" + "acorn": "^2.1.0" }, "dependencies": { "acorn": { @@ -16562,7 +16851,7 @@ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", "integrity": "sha512-AU7pnZkguthwBjKgCg6998ByQNIMjbuDQZ8bb78QAFZwPfmKia8AIzgY/gWgqCjnht8JLdXmB4YxA0KaV60ncQ==", "requires": { - "acorn": "3.3.0" + "acorn": "^3.0.4" }, "dependencies": { "acorn": { @@ -16577,8 +16866,8 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", "integrity": "sha512-I/bSHSNEcFFqXLf91nchoNB9D1Kie3QKcWdchYUaoIg1+1bdWDkdfdlvdIOJbi9U8xR0y+MWc5D+won9v95WlQ==", "requires": { - "co": "4.6.0", - "json-stable-stringify": "1.0.1" + "co": "^4.6.0", + "json-stable-stringify": "^1.0.1" } }, "ajv-keywords": { @@ -16591,9 +16880,9 @@ "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", "integrity": "sha512-GrTZLRpmp6wIC2ztrWW9MjjTgSKccffgFagbNDOX95/dcjEcYZibYTeaOntySQLcdw1ztBoFkviiUvTMbb9MYg==", "requires": { - "kind-of": "3.2.2", - "longest": "1.0.1", - "repeat-string": "1.6.1" + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" } }, "alphanum-sort": { @@ -16655,22 +16944,22 @@ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.0.tgz", "integrity": "sha512-GbRpOH/EMz/3Zq70whK2Q2tkbxbaM5IAU+EZL4zxnEqGtzJWFCJ3leKc6P/w3UmDFIB/GkwfeZJ7ChL7bZMXJw==", "requires": { - "arrify": "1.0.1", - "micromatch": "2.3.11" + "arrify": "^1.0.0", + "micromatch": "^2.1.5" } }, "appirio-styles": { "version": "https://registry.npmjs.org/appirio-styles/-/appirio-styles-0.0.30.tgz", "integrity": "sha512-ewkiMYrW3zF1QmDM/4wp/J2OO8sW5jDZuj0CAuMATCqdqnEMWH3npAJyoaI4RhOwzjzs76wGksozAW5EKekjRQ==", "requires": { - "node-neat": "1.7.2" + "node-neat": "~1.7.1-beta1" } }, "appirio-tech-api-schemas": { "version": "https://registry.npmjs.org/appirio-tech-api-schemas/-/appirio-tech-api-schemas-5.0.70.tgz", "integrity": "sha512-6J2eu0CX0vznOIeDb+xOzbKJ5zQhtCTQmlJjqf337JpRGNxoSFqaNPax9nTieTuqZicdlV0VftpmhGMCD8cpBg==", "requires": { - "auto-config-fake-server": "2.0.604" + "auto-config-fake-server": "2.x.x" } }, "appirio-tech-ng-iso-constants": { @@ -16683,19 +16972,19 @@ "resolved": "https://registry.npmjs.org/appirio-tech-ng-ui-components/-/appirio-tech-ng-ui-components-2.2.5.tgz", "integrity": "sha512-Slz9r5tgwtV1Y2wSRuQ09OYR5+AvSmSvVKFa+O+nXdS9SEohHYdmJm3NTppMTtJ0HCnPA62u29zExF7GVB0UwQ==", "requires": { - "@uirouter/angularjs": "1.0.5", - "angular": "1.4.14", - "angular-scroll": "1.0.2", - "classnames": "2.2.5", - "moment": "2.10.6", - "ngreact": "0.2.0", - "react": "0.14.9", - "react-dom": "0.14.9", - "react-input-autosize": "0.6.13", - "react-redux": "4.4.8", - "react-select": "0.9.1", - "redux": "3.7.2", - "zepto": "0.0.4" + "@uirouter/angularjs": "1.0.x", + "angular": "1.4.x", + "angular-scroll": "1.0.x", + "classnames": "^2.2.1", + "moment": "2.10.x", + "ngreact": "0.2.x", + "react": "0.14.x", + "react-dom": "0.14.x", + "react-input-autosize": "0.6.x", + "react-redux": "^4.1.1", + "react-select": "0.9.x", + "redux": "^3.1.2", + "zepto": "0.0.x" }, "dependencies": { "angular": { @@ -16715,8 +17004,8 @@ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", "integrity": "sha512-QbMPI8teYlZBIBqDgmIWfDKO149dGtQV2ium8WniCaARFFRd1e+IES1LA4sSGcVTFdVL628+163WUbxev7R/aQ==", "requires": { - "delegates": "1.0.0", - "readable-stream": "2.3.3" + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" }, "dependencies": { "isarray": { @@ -16729,13 +17018,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.0.3", + "util-deprecate": "~1.0.1" } }, "string_decoder": { @@ -16743,7 +17032,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "~5.1.0" } } } @@ -16753,7 +17042,7 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", "integrity": "sha512-iK7YPKV+GsvihPUTKcM3hh2gq47zSFCpVDv/Ay2O9mzuD7dfvLV4vhms4XcjZvv4VRgXuGLMEts51IlTjS11/A==", "requires": { - "sprintf-js": "1.0.3" + "sprintf-js": "~1.0.2" } }, "arr-diff": { @@ -16761,7 +17050,7 @@ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", "integrity": "sha512-dtXTVMkh6VkEEA7OhXnN1Ecb8aAGFdZ1LFxtOCoqj4qkyOJMt7+qs6Ahdy6p/NQCPYsRSXXivhSB/J5E9jmYKA==", "requires": { - "arr-flatten": "1.1.0" + "arr-flatten": "^1.0.1" } }, "arr-flatten": { @@ -16784,7 +17073,7 @@ "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", "requires": { - "array-uniq": "1.0.3" + "array-uniq": "^1.0.1" } }, "array-uniq": { @@ -16860,18 +17149,19 @@ "resolved": "https://registry.npmjs.org/auth0-js/-/auth0-js-6.8.4.tgz", "integrity": "sha512-4jfasQlhjDJykbXL6obCO8KBhW1ob8SZnli9JCdTL1yqt+XzRJc+3ZV6dCfe1adyIfDYaJJJcZa/2bRSdiwJLQ==", "requires": { - "Base64": "0.1.4", + "Base64": "~0.1.3", "json-fallback": "0.0.1", - "jsonp": "0.0.4", + "jsonp": "~0.0.4", "qs": "git+https://github.com/jfromaniello/node-querystring.git#5d96513991635e3e22d7aa54a8584d6ce97cace8", - "reqwest": "1.1.6", - "trim": "0.0.1", - "winchan": "0.1.4", - "xtend": "2.1.2" + "reqwest": "^1.1.4", + "trim": "~0.0.1", + "winchan": "^0.1.1", + "xtend": "~2.1.1" }, "dependencies": { "qs": { - "version": "git+https://github.com/jfromaniello/node-querystring.git#5d96513991635e3e22d7aa54a8584d6ce97cace8" + "version": "git+https://github.com/jfromaniello/node-querystring.git#5d96513991635e3e22d7aa54a8584d6ce97cace8", + "from": "git+https://github.com/jfromaniello/node-querystring.git#fix_ie7_bug_with_arrays" } } }, @@ -16888,12 +17178,12 @@ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz", "integrity": "sha512-WKExI/eSGgGAkWAO+wMVdFObZV7hQen54UpD1kCCTN3tvlL3W1jL4+lPP/M7MwoP7Q4RHzKtO3JQ4HxYEcd+xQ==", "requires": { - "browserslist": "1.7.7", - "caniuse-db": "1.0.30000701", - "normalize-range": "0.1.2", - "num2fraction": "1.2.2", - "postcss": "5.2.17", - "postcss-value-parser": "3.3.0" + "browserslist": "^1.7.6", + "caniuse-db": "^1.0.30000634", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^5.2.16", + "postcss-value-parser": "^3.2.3" } }, "aws-sdk": { @@ -16920,9 +17210,9 @@ "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.22.0.tgz", "integrity": "sha512-Dmx3yJCO/UHWgFTKUlBPHUm7h5hCjI5Lfc07gmSv7H4AbUwxS7NHyorp8HN1YEd4xSDCf7P4zqnS63I3aaJTwg==", "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" + "chalk": "^1.1.0", + "esutils": "^2.0.2", + "js-tokens": "^3.0.0" } }, "babel-core": { @@ -16931,25 +17221,25 @@ "integrity": "sha512-wne6XXFyKIfZSLLXN17Zun5aw8x2WZY5ork2NSa5t0UWGxK2EHsJlPd8W1rQQDgpG0tsvEHNdaqmvygEI7Qmmw==", "dev": true, "requires": { - "babel-code-frame": "6.22.0", - "babel-generator": "6.25.0", - "babel-helpers": "6.24.1", - "babel-messages": "6.23.0", - "babel-register": "6.24.1", - "babel-runtime": "6.23.0", - "babel-template": "6.25.0", - "babel-traverse": "6.25.0", - "babel-types": "6.25.0", - "babylon": "6.17.4", - "convert-source-map": "1.5.0", - "debug": "2.6.8", - "json5": "0.5.1", - "lodash": "4.17.4", - "minimatch": "3.0.4", - "path-is-absolute": "1.0.1", - "private": "0.1.7", - "slash": "1.0.0", - "source-map": "0.5.6" + "babel-code-frame": "^6.22.0", + "babel-generator": "^6.25.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.25.0", + "babel-traverse": "^6.25.0", + "babel-types": "^6.25.0", + "babylon": "^6.17.2", + "convert-source-map": "^1.1.0", + "debug": "^2.1.1", + "json5": "^0.5.0", + "lodash": "^4.2.0", + "minimatch": "^3.0.2", + "path-is-absolute": "^1.0.0", + "private": "^0.1.6", + "slash": "^1.0.0", + "source-map": "^0.5.0" }, "dependencies": { "source-map": { @@ -16966,14 +17256,14 @@ "integrity": "sha512-mfylq1PJtHEQBne/B45jQoveo7Vc1xKDM3/3ihNKrag8eym+TeoVl/xJsNtvGPBTlcc076zU0ycHV9plQeDYnw==", "dev": true, "requires": { - "babel-messages": "6.23.0", - "babel-runtime": "6.23.0", - "babel-types": "6.25.0", - "detect-indent": "4.0.0", - "jsesc": "1.3.0", - "lodash": "4.17.4", - "source-map": "0.5.6", - "trim-right": "1.0.1" + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-types": "^6.25.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.2.0", + "source-map": "^0.5.0", + "trim-right": "^1.0.1" }, "dependencies": { "source-map": { @@ -16989,9 +17279,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.24.1.tgz", "integrity": "sha512-TYX2QQATKA6Wssp6j7jqlw4QLmABDN1olRdEHndYvBXdaXM5dcx6j5rN0+nd+aVL+Th40fAEYvvw/Xxd/LETuQ==", "requires": { - "babel-runtime": "6.23.0", - "babel-traverse": "6.25.0", - "babel-types": "6.25.0" + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-builder-binary-assignment-operator-visitor": { @@ -16999,9 +17289,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", "integrity": "sha512-gCtfYORSG1fUMX4kKraymq607FWgMWg+j42IFPc18kFQEsmtaibP4UrqsXt8FlEJle25HUd4tsoDR7H2wDhe9Q==", "requires": { - "babel-helper-explode-assignable-expression": "6.24.1", - "babel-runtime": "6.23.0", - "babel-types": "6.25.0" + "babel-helper-explode-assignable-expression": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-builder-react-jsx": { @@ -17009,9 +17299,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.24.1.tgz", "integrity": "sha512-p9MgcnD7kugw72v85G8D+CscmT87Th3BrsxNomkOVc9+KriJ4RGgsT+GG3Ie4qbF21TdJK6ccQcHOwndqHi6wQ==", "requires": { - "babel-runtime": "6.23.0", - "babel-types": "6.25.0", - "esutils": "2.0.2" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1", + "esutils": "^2.0.0" } }, "babel-helper-call-delegate": { @@ -17019,10 +17309,10 @@ "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", "integrity": "sha512-RL8n2NiEj+kKztlrVJM9JT1cXzzAdvWFh76xh/H1I4nKwunzE4INBXn8ieCZ+wh4zWszZk7NBS1s/8HR5jDkzQ==", "requires": { - "babel-helper-hoist-variables": "6.24.1", - "babel-runtime": "6.23.0", - "babel-traverse": "6.25.0", - "babel-types": "6.25.0" + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-define-map": { @@ -17030,10 +17320,10 @@ "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.24.1.tgz", "integrity": "sha512-20RnzZAeY7TFaKCrGjiVKZlW0kkb4hMZuN8H4qKwoD3AnSnWG3D1uS3YmAR4ONxqUGBNycZoNAwDTTgLvGef3g==", "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.23.0", - "babel-types": "6.25.0", - "lodash": "4.17.4" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1", + "lodash": "^4.2.0" } }, "babel-helper-explode-assignable-expression": { @@ -17041,9 +17331,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", "integrity": "sha512-qe5csbhbvq6ccry9G7tkXbzNtcDiH4r51rrPUbwwoTzZ18AqxWYRZT6AOmxrpxKnQBW0pYlBI/8vh73Z//78nQ==", "requires": { - "babel-runtime": "6.23.0", - "babel-traverse": "6.25.0", - "babel-types": "6.25.0" + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-explode-class": { @@ -17051,10 +17341,10 @@ "resolved": "https://registry.npmjs.org/babel-helper-explode-class/-/babel-helper-explode-class-6.24.1.tgz", "integrity": "sha512-SFbWewr0/0U4AiRzsHqwsbOQeLXVa9T1ELdqEa2efcQB5KopTnunAqoj07TuHlN2lfTQNPGO/rJR4FMln5fVcA==", "requires": { - "babel-helper-bindify-decorators": "6.24.1", - "babel-runtime": "6.23.0", - "babel-traverse": "6.25.0", - "babel-types": "6.25.0" + "babel-helper-bindify-decorators": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-function-name": { @@ -17062,11 +17352,11 @@ "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", "integrity": "sha512-Oo6+e2iX+o9eVvJ9Y5eKL5iryeRdsIkwRYheCuhYdVHsdEQysbc2z2QkqCLIYnNxkT5Ss3ggrHdXiDI7Dhrn4Q==", "requires": { - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.23.0", - "babel-template": "6.25.0", - "babel-traverse": "6.25.0", - "babel-types": "6.25.0" + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-get-function-arity": { @@ -17074,8 +17364,8 @@ "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", "integrity": "sha512-WfgKFX6swFB1jS2vo+DwivRN4NB8XUdM3ij0Y1gnC21y1tdBoe6xjVnd7NSI6alv+gZXCtJqvrTeMW3fR/c0ng==", "requires": { - "babel-runtime": "6.23.0", - "babel-types": "6.25.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-hoist-variables": { @@ -17083,8 +17373,8 @@ "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", "integrity": "sha512-zAYl3tqerLItvG5cKYw7f1SpvIxS9zi7ohyGHaI9cgDUjAT6YcY9jIEH5CstetP5wHIVSceXwNS7Z5BpJg+rOw==", "requires": { - "babel-runtime": "6.23.0", - "babel-types": "6.25.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-optimise-call-expression": { @@ -17092,8 +17382,8 @@ "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", "integrity": "sha512-Op9IhEaxhbRT8MDXx2iNuMgciu2V8lDvYCNQbDGjdBNCjaMvyLf4wl4A3b8IgndCyQF8TwfgsQ8T3VD8aX1/pA==", "requires": { - "babel-runtime": "6.23.0", - "babel-types": "6.25.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-regex": { @@ -17101,9 +17391,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.24.1.tgz", "integrity": "sha512-aEQFemDn4Gjob1XWGzGtjmVHIZkFQMWzGu8jl/lClbA9GIHel7nXpcCwLDL3yJP42+dqbW611v3PTzqf+7GhjQ==", "requires": { - "babel-runtime": "6.23.0", - "babel-types": "6.25.0", - "lodash": "4.17.4" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1", + "lodash": "^4.2.0" } }, "babel-helper-remap-async-to-generator": { @@ -17111,11 +17401,11 @@ "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", "integrity": "sha512-RYqaPD0mQyQIFRu7Ho5wE2yvA/5jxqCIj/Lv4BXNq23mHYu/vxikOy2JueLiBxQknwapwrJeNCesvY0ZcfnlHg==", "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.23.0", - "babel-template": "6.25.0", - "babel-traverse": "6.25.0", - "babel-types": "6.25.0" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-replace-supers": { @@ -17123,12 +17413,12 @@ "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", "integrity": "sha512-sLI+u7sXJh6+ToqDr57Bv973kCepItDhMou0xCP2YPVmR1jkHSCY+p1no8xErbV1Siz5QE8qKT1WIwybSWlqjw==", "requires": { - "babel-helper-optimise-call-expression": "6.24.1", - "babel-messages": "6.23.0", - "babel-runtime": "6.23.0", - "babel-template": "6.25.0", - "babel-traverse": "6.25.0", - "babel-types": "6.25.0" + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helpers": { @@ -17137,18 +17427,18 @@ "integrity": "sha512-n7pFrqQm44TCYvrCDb0MqabAF+JUBq+ijBvNMUxpkLjJaAu32faIexewMumrH5KLLJ1HDyT0PTEqRyAe/GwwuQ==", "dev": true, "requires": { - "babel-runtime": "6.23.0", - "babel-template": "6.25.0" + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-loader": { "version": "https://registry.npmjs.org/babel-loader/-/babel-loader-6.4.1.tgz", "integrity": "sha512-hHvbCsXtwKIznu5Qmqfe/IwZ4O5frqe+j04fN/5u/9Rg48dpWIKyYqAN68N1wwqGSMToo4FhU9/MrH+QZlFdkQ==", "requires": { - "find-cache-dir": "0.1.1", - "loader-utils": "0.2.17", - "mkdirp": "0.5.1", - "object-assign": "4.1.1" + "find-cache-dir": "^0.1.1", + "loader-utils": "^0.2.16", + "mkdirp": "^0.5.1", + "object-assign": "^4.0.1" }, "dependencies": { "object-assign": { @@ -17163,7 +17453,7 @@ "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", "integrity": "sha512-Bl3ZiA+LjqaMtNYopA9TYE9HP1tQ+E5dLxE0XrAzcIJeK2UqF0/EaqXwBn9esd4UmTfEab+P+UYQ1GnioFIb/w==", "requires": { - "babel-runtime": "6.23.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-check-es2015-constants": { @@ -17171,14 +17461,14 @@ "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", "integrity": "sha512-B1M5KBP29248dViEo1owyY32lk1ZSH2DaNNrXLGt8lyjjHm7pBqAdQ7VKUPR6EEDO323+OvT3MQXbCin8ooWdA==", "requires": { - "babel-runtime": "6.23.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-lodash": { "version": "https://registry.npmjs.org/babel-plugin-lodash/-/babel-plugin-lodash-2.3.0.tgz", "integrity": "sha512-azIRaAWHFo5OsyT5HSQmVEN/Nk+9IXlXGahilcVNdR7iVeXiTLWKt61hNwLDepso91BPCie14JOfr7TzCorVLQ==", "requires": { - "lodash": "4.17.4" + "lodash": "^4.0.0" } }, "babel-plugin-syntax-async-functions": { @@ -17236,9 +17526,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz", "integrity": "sha512-uT7eovUxtXe8Q2ufcjRuJIOL0hg6VAUJhiWJBLxH/evYAw+aqoJLcYTR8hqx13iOx/FfbCMHgBmXWZjukbkyPg==", "requires": { - "babel-helper-remap-async-to-generator": "6.24.1", - "babel-plugin-syntax-async-generators": "6.13.0", - "babel-runtime": "6.23.0" + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-generators": "^6.5.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-async-to-generator": { @@ -17246,9 +17536,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", "integrity": "sha512-7BgYJujNCg0Ti3x0c/DL3tStvnKS6ktIYOmo9wginv/dfZOrbSZ+qG4IRRHMBOzZ5Awb1skTiAsQXg/+IWkZYw==", "requires": { - "babel-helper-remap-async-to-generator": "6.24.1", - "babel-plugin-syntax-async-functions": "6.13.0", - "babel-runtime": "6.23.0" + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-functions": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-class-properties": { @@ -17256,10 +17546,10 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz", "integrity": "sha512-n4jtBA3OYBdvG5PRMKsMXJXHfLYw/ZOmtxCLOOwz6Ro5XlrColkStLnz1AS1L2yfPA9BKJ1ZNlmVCLjAL9DSIg==", "requires": { - "babel-helper-function-name": "6.24.1", - "babel-plugin-syntax-class-properties": "6.13.0", - "babel-runtime": "6.23.0", - "babel-template": "6.25.0" + "babel-helper-function-name": "^6.24.1", + "babel-plugin-syntax-class-properties": "^6.8.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-decorators": { @@ -17267,11 +17557,11 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.24.1.tgz", "integrity": "sha512-skQ2CImwDkCHu0mkWvCOlBCpBIHW4/49IZWVwV4A/EnWjL9bB6UBvLyMNe3Td5XDStSZNhe69j4bfEW8dvUbew==", "requires": { - "babel-helper-explode-class": "6.24.1", - "babel-plugin-syntax-decorators": "6.13.0", - "babel-runtime": "6.23.0", - "babel-template": "6.25.0", - "babel-types": "6.25.0" + "babel-helper-explode-class": "^6.24.1", + "babel-plugin-syntax-decorators": "^6.13.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-arrow-functions": { @@ -17279,7 +17569,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", "integrity": "sha512-PCqwwzODXW7JMrzu+yZIaYbPQSKjDTAsNNlK2l5Gg9g4rz2VzLnZsStvp/3c46GfXpwkyufb3NCyG9+50FF1Vg==", "requires": { - "babel-runtime": "6.23.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-block-scoped-functions": { @@ -17287,7 +17577,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", "integrity": "sha512-2+ujAT2UMBzYFm7tidUsYh+ZoIutxJ3pN9IYrF1/H6dCKtECfhmB8UkHVpyxDwkj0CYbQG35ykoz925TUnBc3A==", "requires": { - "babel-runtime": "6.23.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-block-scoping": { @@ -17295,11 +17585,11 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.24.1.tgz", "integrity": "sha512-oiFhXoUIwdxeLf+mIcQ7gIG576Q+vgRY0vdN+98/QgCTtBAE8wPrF7AG27ISkLPMFQHxZj5ow0Cx8pxxRNg2lA==", "requires": { - "babel-runtime": "6.23.0", - "babel-template": "6.25.0", - "babel-traverse": "6.25.0", - "babel-types": "6.25.0", - "lodash": "4.17.4" + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1", + "lodash": "^4.2.0" } }, "babel-plugin-transform-es2015-classes": { @@ -17307,15 +17597,15 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", "integrity": "sha512-5Dy7ZbRinGrNtmWpquZKZ3EGY8sDgIVB4CU8Om8q8tnMLrD/m94cKglVcHps0BCTdZ0TJeeAWOq2TK9MIY6cag==", "requires": { - "babel-helper-define-map": "6.24.1", - "babel-helper-function-name": "6.24.1", - "babel-helper-optimise-call-expression": "6.24.1", - "babel-helper-replace-supers": "6.24.1", - "babel-messages": "6.23.0", - "babel-runtime": "6.23.0", - "babel-template": "6.25.0", - "babel-traverse": "6.25.0", - "babel-types": "6.25.0" + "babel-helper-define-map": "^6.24.1", + "babel-helper-function-name": "^6.24.1", + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-helper-replace-supers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-computed-properties": { @@ -17323,8 +17613,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", "integrity": "sha512-C/uAv4ktFP/Hmh01gMTvYvICrKze0XVX9f2PdIXuriCSvUmV9j+u+BB9f5fJK3+878yMK6dkdcq+Ymr9mrcLzw==", "requires": { - "babel-runtime": "6.23.0", - "babel-template": "6.25.0" + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-destructuring": { @@ -17332,7 +17622,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", "integrity": "sha512-aNv/GDAW0j/f4Uy1OEPZn1mqD+Nfy9viFGBfQ5bZyT35YqOiqx7/tXdyfZkJ1sC21NyEsBdfDY6PYmLHF4r5iA==", "requires": { - "babel-runtime": "6.23.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-duplicate-keys": { @@ -17340,8 +17630,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", "integrity": "sha512-ossocTuPOssfxO2h+Z3/Ea1Vo1wWx31Uqy9vIiJusOP4TbF7tPs9U0sJ9pX9OJPf4lXRGj5+6Gkl/HHKiAP5ug==", "requires": { - "babel-runtime": "6.23.0", - "babel-types": "6.25.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-for-of": { @@ -17349,7 +17639,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", "integrity": "sha512-DLuRwoygCoXx+YfxHLkVx5/NpeSbVwfoTeBykpJK7JhYWlL/O8hgAK/reforUnZDlxasOrVPPJVI/guE3dCwkw==", "requires": { - "babel-runtime": "6.23.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-function-name": { @@ -17357,9 +17647,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", "integrity": "sha512-iFp5KIcorf11iBqu/y/a7DK3MN5di3pNCzto61FqCNnUX4qeBwcV1SLqe10oXNnCaxBUImX3SckX2/o1nsrTcg==", "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.23.0", - "babel-types": "6.25.0" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-literals": { @@ -17367,7 +17657,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", "integrity": "sha512-tjFl0cwMPpDYyoqYA9li1/7mGFit39XiNX5DKC/uCNjBctMxyL1/PT/l4rSlbvBG1pOKI88STRdUsWXB3/Q9hQ==", "requires": { - "babel-runtime": "6.23.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-modules-amd": { @@ -17375,9 +17665,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", "integrity": "sha512-LnIIdGWIKdw7zwckqx+eGjcS8/cl8D74A3BpJbGjKTFFNJSMrjN4bIh22HY1AlkUbeLG6X6OZj56BDvWD+OeFA==", "requires": { - "babel-plugin-transform-es2015-modules-commonjs": "6.24.1", - "babel-runtime": "6.23.0", - "babel-template": "6.25.0" + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-modules-commonjs": { @@ -17385,10 +17675,10 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.24.1.tgz", "integrity": "sha512-nVZMj02WXtBhlY+DKxrDhCo6uD0TSwvLXEq9NFxR9ERBfyQEEPi2CgWLnwJKn5otObFTm2u0j+LPPogfCMZeTA==", "requires": { - "babel-plugin-transform-strict-mode": "6.24.1", - "babel-runtime": "6.23.0", - "babel-template": "6.25.0", - "babel-types": "6.25.0" + "babel-plugin-transform-strict-mode": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-modules-systemjs": { @@ -17396,9 +17686,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", "integrity": "sha512-ONFIPsq8y4bls5PPsAWYXH/21Hqv64TBxdje0FvU3MhIV6QM2j5YS7KvAzg/nTIVLot2D2fmFQrFWCbgHlFEjg==", "requires": { - "babel-helper-hoist-variables": "6.24.1", - "babel-runtime": "6.23.0", - "babel-template": "6.25.0" + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-modules-umd": { @@ -17406,9 +17696,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", "integrity": "sha512-LpVbiT9CLsuAIp3IG0tfbVo81QIhn6pE8xBJ7XSeCtFlMltuar5VuBV6y6Q45tpui9QWcy5i0vLQfCfrnF7Kiw==", "requires": { - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-runtime": "6.23.0", - "babel-template": "6.25.0" + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-object-super": { @@ -17416,8 +17706,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", "integrity": "sha512-8G5hpZMecb53vpD3mjs64NhI1au24TAmokQ4B+TBFBjN9cVoGoOvotdrMMRmHvVZUEvqGUPWL514woru1ChZMA==", "requires": { - "babel-helper-replace-supers": "6.24.1", - "babel-runtime": "6.23.0" + "babel-helper-replace-supers": "^6.24.1", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-parameters": { @@ -17425,12 +17715,12 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", "integrity": "sha512-8HxlW+BB5HqniD+nLkQ4xSAVq3bR/pcYW9IigY+2y0dI+Y7INFeTbfAQr+63T3E4UDsZGjyb+l9txUnABWxlOQ==", "requires": { - "babel-helper-call-delegate": "6.24.1", - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.23.0", - "babel-template": "6.25.0", - "babel-traverse": "6.25.0", - "babel-types": "6.25.0" + "babel-helper-call-delegate": "^6.24.1", + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-shorthand-properties": { @@ -17438,8 +17728,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", "integrity": "sha512-mDdocSfUVm1/7Jw/FIRNw9vPrBQNePy6wZJlR8HAUBLybNp1w/6lr6zZ2pjMShee65t/ybR5pT8ulkLzD1xwiw==", "requires": { - "babel-runtime": "6.23.0", - "babel-types": "6.25.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-spread": { @@ -17447,7 +17737,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", "integrity": "sha512-3Ghhi26r4l3d0Js933E5+IhHwk0A1yiutj9gwvzmFbVV0sPMYk2lekhOufHBswX7NCoSeF4Xrl3sCIuSIa+zOg==", "requires": { - "babel-runtime": "6.23.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-sticky-regex": { @@ -17455,9 +17745,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", "integrity": "sha512-CYP359ADryTo3pCsH0oxRo/0yn6UsEZLqYohHmvLQdfS9xkf+MbCzE3/Kolw9OYIY4ZMilH25z/5CbQbwDD+lQ==", "requires": { - "babel-helper-regex": "6.24.1", - "babel-runtime": "6.23.0", - "babel-types": "6.25.0" + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-template-literals": { @@ -17465,7 +17755,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", "integrity": "sha512-x8b9W0ngnKzDMHimVtTfn5ryimars1ByTqsfBDwAqLibmuuQY6pgBQi5z1ErIsUOWBdw1bW9FSz5RZUojM4apg==", "requires": { - "babel-runtime": "6.23.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-typeof-symbol": { @@ -17473,7 +17763,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", "integrity": "sha512-fz6J2Sf4gYN6gWgRZaoFXmq93X+Li/8vf+fb0sGDVtdeWvxC9y5/bTD7bvfWMEq6zetGEHpWjtzRGSugt5kNqw==", "requires": { - "babel-runtime": "6.23.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-unicode-regex": { @@ -17481,9 +17771,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", "integrity": "sha512-v61Dbbihf5XxnYjtBN04B/JBvsScY37R1cZT5r9permN1cp+b70DY3Ib3fIkgn1DI9U3tGgBJZVD8p/mE/4JbQ==", "requires": { - "babel-helper-regex": "6.24.1", - "babel-runtime": "6.23.0", - "regexpu-core": "2.0.0" + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "regexpu-core": "^2.0.0" } }, "babel-plugin-transform-exponentiation-operator": { @@ -17491,9 +17781,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", "integrity": "sha512-LzXDmbMkklvNhprr20//RStKVcT8Cu+SQtX18eMHLhjHf2yFzwtQ0S2f0jQ+89rokoNdmwoSqYzAhq86FxlLSQ==", "requires": { - "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1", - "babel-plugin-syntax-exponentiation-operator": "6.13.0", - "babel-runtime": "6.23.0" + "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", + "babel-plugin-syntax-exponentiation-operator": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-flow-strip-types": { @@ -17501,8 +17791,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz", "integrity": "sha512-TxIM0ZWNw9oYsoTthL3lvAK3+eTujzktoXJg4ubGvICGbVuXVYv5hHv0XXpz8fbqlJaGYY4q5SVzaSmsg3t4Fg==", "requires": { - "babel-plugin-syntax-flow": "6.18.0", - "babel-runtime": "6.23.0" + "babel-plugin-syntax-flow": "^6.18.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-object-rest-spread": { @@ -17510,8 +17800,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.23.0.tgz", "integrity": "sha512-d765TwySvTEWS8a31U/Z0GWwr702U61+W2UQMCYepibSLamxKjHuITdTYl5gYZ3n1EW84AiURdQ2E8GHEp+GJg==", "requires": { - "babel-plugin-syntax-object-rest-spread": "6.13.0", - "babel-runtime": "6.23.0" + "babel-plugin-syntax-object-rest-spread": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-react-display-name": { @@ -17519,7 +17809,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz", "integrity": "sha512-QLYkLiZeeED2PKd4LuXGg5y9fCgPB5ohF8olWUuETE2ryHNRqqnXlEVP7RPuef89+HTfd3syptMGVHeoAu0Wig==", "requires": { - "babel-runtime": "6.23.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-react-jsx": { @@ -17527,9 +17817,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz", "integrity": "sha512-s+q/Y2u2OgDPHRuod3t6zyLoV8pUHc64i/O7ZNgIOEdYTq+ChPeybcKBi/xk9VI60VriILzFPW+dUxAEbTxh2w==", "requires": { - "babel-helper-builder-react-jsx": "6.24.1", - "babel-plugin-syntax-jsx": "6.18.0", - "babel-runtime": "6.23.0" + "babel-helper-builder-react-jsx": "^6.24.1", + "babel-plugin-syntax-jsx": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-react-jsx-self": { @@ -17537,8 +17827,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz", "integrity": "sha512-Y3ZHP1nunv0U1+ysTNwLK39pabHj6cPVsfN4TRC7BDBfbgbyF4RifP5kd6LnbuMV9wcfedQMe7hn1fyKc7IzTQ==", "requires": { - "babel-plugin-syntax-jsx": "6.18.0", - "babel-runtime": "6.23.0" + "babel-plugin-syntax-jsx": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-react-jsx-source": { @@ -17546,8 +17836,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz", "integrity": "sha512-pcDNDsZ9q/6LJmujQ/OhjeoIlp5Nl546HJ2yiFIJK3mYpgNXhI5/S9mXfVxu5yqWAi7HdI7e/q6a9xtzwL69Vw==", "requires": { - "babel-plugin-syntax-jsx": "6.18.0", - "babel-runtime": "6.23.0" + "babel-plugin-syntax-jsx": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-regenerator": { @@ -17563,8 +17853,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", "integrity": "sha512-j3KtSpjyLSJxNoCDrhwiJad8kw0gJ9REGj8/CqL0HeRyLnvUNYV9zcqluL6QJSXh3nfsLEmSLvwRfGzrgR96Pw==", "requires": { - "babel-runtime": "6.23.0", - "babel-types": "6.25.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-polyfill": { @@ -17572,9 +17862,9 @@ "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.23.0.tgz", "integrity": "sha512-0l7mVU+LrQ2X/ZTUq63T5i3VyR2aTgcRTFmBcD6djQ/Fek6q1A9t5u0F4jZVYHzp78jwWAzGfLpAY1b4/I3lfg==", "requires": { - "babel-runtime": "6.23.0", - "core-js": "2.4.1", - "regenerator-runtime": "0.10.5" + "babel-runtime": "^6.22.0", + "core-js": "^2.4.0", + "regenerator-runtime": "^0.10.0" }, "dependencies": { "core-js": { @@ -17588,30 +17878,30 @@ "version": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", "integrity": "sha512-XfwUqG1Ry6R43m4Wfob+vHbIVBIqTg/TJY4Snku1iIzeH7mUnwHA8Vagmv+ZQbPwhS8HgsdQvy28Py3k5zpoFQ==", "requires": { - "babel-plugin-check-es2015-constants": "6.22.0", - "babel-plugin-transform-es2015-arrow-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoping": "6.24.1", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-es2015-computed-properties": "6.24.1", - "babel-plugin-transform-es2015-destructuring": "6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", - "babel-plugin-transform-es2015-for-of": "6.23.0", - "babel-plugin-transform-es2015-function-name": "6.24.1", - "babel-plugin-transform-es2015-literals": "6.22.0", - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "6.24.1", - "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", - "babel-plugin-transform-es2015-modules-umd": "6.24.1", - "babel-plugin-transform-es2015-object-super": "6.24.1", - "babel-plugin-transform-es2015-parameters": "6.24.1", - "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", - "babel-plugin-transform-es2015-spread": "6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "6.24.1", - "babel-plugin-transform-es2015-template-literals": "6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "6.24.1", - "babel-plugin-transform-regenerator": "6.24.1" + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.24.1", + "babel-plugin-transform-es2015-classes": "^6.24.1", + "babel-plugin-transform-es2015-computed-properties": "^6.24.1", + "babel-plugin-transform-es2015-destructuring": "^6.22.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.24.1", + "babel-plugin-transform-es2015-for-of": "^6.22.0", + "babel-plugin-transform-es2015-function-name": "^6.24.1", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-plugin-transform-es2015-modules-systemjs": "^6.24.1", + "babel-plugin-transform-es2015-modules-umd": "^6.24.1", + "babel-plugin-transform-es2015-object-super": "^6.24.1", + "babel-plugin-transform-es2015-parameters": "^6.24.1", + "babel-plugin-transform-es2015-shorthand-properties": "^6.24.1", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.24.1", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.22.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.24.1", + "babel-plugin-transform-regenerator": "^6.24.1" } }, "babel-preset-flow": { @@ -17619,29 +17909,29 @@ "resolved": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz", "integrity": "sha512-PQZFJXnM3d80Vq4O67OE6EMVKIw2Vmzy8UXovqulNogCtblWU8rzP7Sm5YgHiCg4uejUxzCkHfNXQ4Z6GI+Dhw==", "requires": { - "babel-plugin-transform-flow-strip-types": "6.22.0" + "babel-plugin-transform-flow-strip-types": "^6.22.0" } }, "babel-preset-react": { "version": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz", "integrity": "sha512-phQe3bElbgF887UM0Dhz55d22ob8czTL1kbhZFwpCE6+R/X9kHktfwmx9JZb+bBSVRGphP5tZ9oWhVhlgjrX3Q==", "requires": { - "babel-plugin-syntax-jsx": "6.18.0", - "babel-plugin-transform-react-display-name": "6.25.0", - "babel-plugin-transform-react-jsx": "6.24.1", - "babel-plugin-transform-react-jsx-self": "6.22.0", - "babel-plugin-transform-react-jsx-source": "6.22.0", - "babel-preset-flow": "6.23.0" + "babel-plugin-syntax-jsx": "^6.3.13", + "babel-plugin-transform-react-display-name": "^6.23.0", + "babel-plugin-transform-react-jsx": "^6.24.1", + "babel-plugin-transform-react-jsx-self": "^6.22.0", + "babel-plugin-transform-react-jsx-source": "^6.22.0", + "babel-preset-flow": "^6.23.0" } }, "babel-preset-stage-2": { "version": "https://registry.npmjs.org/babel-preset-stage-2/-/babel-preset-stage-2-6.24.1.tgz", "integrity": "sha512-9F+nquz+37PrlTSBdpeQBKnQfAMNBnryXw+m4qBh35FNbJPfzZz+sjN2G5Uf1CRedU9PH7fJkTbYijxmkLX8Og==", "requires": { - "babel-plugin-syntax-dynamic-import": "6.18.0", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-decorators": "6.24.1", - "babel-preset-stage-3": "6.24.1" + "babel-plugin-syntax-dynamic-import": "^6.18.0", + "babel-plugin-transform-class-properties": "^6.24.1", + "babel-plugin-transform-decorators": "^6.24.1", + "babel-preset-stage-3": "^6.24.1" } }, "babel-preset-stage-3": { @@ -17649,11 +17939,11 @@ "resolved": "https://registry.npmjs.org/babel-preset-stage-3/-/babel-preset-stage-3-6.24.1.tgz", "integrity": "sha512-eCbEOF8uN0KypFXJmZXn2sTk7bPV9uM5xov7G/7BM08TbQEObsVs0cEWfy6NQySlfk7JBi/t+XJP1JkruYfthA==", "requires": { - "babel-plugin-syntax-trailing-function-commas": "6.22.0", - "babel-plugin-transform-async-generator-functions": "6.24.1", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-exponentiation-operator": "6.24.1", - "babel-plugin-transform-object-rest-spread": "6.23.0" + "babel-plugin-syntax-trailing-function-commas": "^6.22.0", + "babel-plugin-transform-async-generator-functions": "^6.24.1", + "babel-plugin-transform-async-to-generator": "^6.24.1", + "babel-plugin-transform-exponentiation-operator": "^6.24.1", + "babel-plugin-transform-object-rest-spread": "^6.22.0" } }, "babel-register": { @@ -17662,13 +17952,13 @@ "integrity": "sha512-mr00+i4WOTiZoG1+CYfemP6mW9ym7Hw97EtEx60Z0/uTADXXPjVc9D4xXYi96zyCZMBALF7EjC0cVAS+63updw==", "dev": true, "requires": { - "babel-core": "6.25.0", - "babel-runtime": "6.23.0", - "core-js": "2.4.1", - "home-or-tmp": "2.0.0", - "lodash": "4.17.4", - "mkdirp": "0.5.1", - "source-map-support": "0.4.15" + "babel-core": "^6.24.1", + "babel-runtime": "^6.22.0", + "core-js": "^2.4.0", + "home-or-tmp": "^2.0.0", + "lodash": "^4.2.0", + "mkdirp": "^0.5.1", + "source-map-support": "^0.4.2" }, "dependencies": { "core-js": { @@ -17684,8 +17974,8 @@ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", "integrity": "sha512-9Vdluea/MpskdLsLYTH10Wtc5z2U0THGHVJeqec0EHUbfEt2q3zM1piQ+/GjMl9h0drUY1hF8zHV9nmH8Kl+Og==", "requires": { - "core-js": "2.4.1", - "regenerator-runtime": "0.10.5" + "core-js": "^2.4.0", + "regenerator-runtime": "^0.10.0" }, "dependencies": { "core-js": { @@ -17700,11 +17990,11 @@ "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.25.0.tgz", "integrity": "sha512-Ak4qz4gxFYXuj3O5m+Um2RvhZw2CUVTDM3sMK5XhrJLRfIFi7nxCwBLCG0RBwqNzo7DVM996bHlo6kSkJ0X/jg==", "requires": { - "babel-runtime": "6.23.0", - "babel-traverse": "6.25.0", - "babel-types": "6.25.0", - "babylon": "6.17.4", - "lodash": "4.17.4" + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.25.0", + "babel-types": "^6.25.0", + "babylon": "^6.17.2", + "lodash": "^4.2.0" } }, "babel-traverse": { @@ -17712,15 +18002,15 @@ "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.25.0.tgz", "integrity": "sha512-nTp4cMQ6tI37rTmE0oUBQKJVxdwKhz0Wzh5KzaV2a+GjdkGDdJV7Vz2aAIWQqGs/fh5lUAiDuKrQontA0Z94IQ==", "requires": { - "babel-code-frame": "6.22.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.23.0", - "babel-types": "6.25.0", - "babylon": "6.17.4", - "debug": "2.6.8", - "globals": "9.18.0", - "invariant": "2.2.2", - "lodash": "4.17.4" + "babel-code-frame": "^6.22.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-types": "^6.25.0", + "babylon": "^6.17.2", + "debug": "^2.2.0", + "globals": "^9.0.0", + "invariant": "^2.2.0", + "lodash": "^4.2.0" } }, "babel-types": { @@ -17728,10 +18018,10 @@ "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.25.0.tgz", "integrity": "sha512-7gcO7CcpZLSylbMXMkKAyVRHMSniXYjDvbFEe6C8yhas7sYFrw/6s+zwuXKpUzrdsNNhQ82HXEiE9MdjSY6uEw==", "requires": { - "babel-runtime": "6.23.0", - "esutils": "2.0.2", - "lodash": "4.17.4", - "to-fast-properties": "1.0.3" + "babel-runtime": "^6.22.0", + "esutils": "^2.0.2", + "lodash": "^4.2.0", + "to-fast-properties": "^1.0.1" } }, "babylon": { @@ -17765,7 +18055,7 @@ "integrity": "sha512-vY4sOrSlpwNZXsinfJ0HpbSkFft4nhSVLeUrQ4j2ydGmBOiVY83aMJStJATBy0C3+XdaYa990kIA1qkC2mUq6g==", "optional": true, "requires": { - "tweetnacl": "0.14.5" + "tweetnacl": "^0.14.3" } }, "big.js": { @@ -17783,7 +18073,7 @@ "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", "integrity": "sha512-OorbnJVPII4DuUKbjARAe8u8EfqOmkEEaSFIyoQ7OjTHn6kafxWl0wLgoZ2rXaYd7MyLcDaU4TmhfxtwgcccMQ==", "requires": { - "inherits": "2.0.3" + "inherits": "~2.0.0" } }, "bluebird": { @@ -17801,7 +18091,7 @@ "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", "integrity": "sha512-KbiZEa9/vofNcVJXGwdWWn25reQ3V3dHBWbS07FTF3/TOehLnm9GEhJV4T6ZvGPkShRpmUqYwnaCrkj0mRnP6Q==", "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "bourbon": { @@ -17819,7 +18109,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", "integrity": "sha512-Dnfc9ROAPrkkeLIUweEbh7LFT9Mc53tO/bbM044rKjhgAEyIGKvKXg97PM/kRizZIfUHaROZIoeEaWao+Unzfw==", "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -17828,9 +18118,9 @@ "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", "integrity": "sha512-xU7bpz2ytJl1bH9cgIurjpg/n8Gohy9GTw81heDYLJQ4RU60dlyJsa+atVF2pI0yMMvKxI9HkKwjePCj5XI1hw==", "requires": { - "expand-range": "1.8.2", - "preserve": "0.2.0", - "repeat-element": "1.1.2" + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" } }, "browserify-aes": { @@ -17838,7 +18128,7 @@ "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-0.4.0.tgz", "integrity": "sha512-hnvbMhZ/Ete34qnoKKyjikiYQfZbl89d5UZ29cz3EG13cv/8VRyM8Zs84luB/O7BRzC3qSng9dVovJ6jghcAvg==", "requires": { - "inherits": "2.0.3" + "inherits": "^2.0.1" } }, "browserify-zlib": { @@ -17846,7 +18136,7 @@ "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", "integrity": "sha512-19OEpq7vWgsH6WkvkBJQDFvJS1uPcbFOQ4v9CU839dO+ZZXUZO6XpE6hNCqvlIIj+4fZvRiJ6DsAQ382GwiyTQ==", "requires": { - "pako": "0.2.9" + "pako": "~0.2.0" } }, "browserslist": { @@ -17854,8 +18144,8 @@ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", "integrity": "sha512-qHJblDE2bXVRYzuDetv/wAeHOJyO97+9wxC1cdCtyzgNuSozOyRCiiLaCR1f71AN66lQdVVBipWm63V+a7bPOw==", "requires": { - "caniuse-db": "1.0.30000701", - "electron-to-chromium": "1.3.15" + "caniuse-db": "^1.0.30000639", + "electron-to-chromium": "^1.2.7" } }, "buffer": { @@ -17863,9 +18153,9 @@ "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", "integrity": "sha512-DNK4ruAqtyHaN8Zne7PkBTO+dD1Lr0YfTduMqlIyjvQIoztBkUxrvL+hKeLW8NXFKHOq/2upkxuoS9znQ9bW9A==", "requires": { - "base64-js": "1.2.1", - "ieee754": "1.1.8", - "isarray": "1.0.0" + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" }, "dependencies": { "isarray": { @@ -17895,7 +18185,7 @@ "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", "integrity": "sha512-UJiE1otjXPF5/x+T3zTnSFiTOEmJoGTD9HmBoxnCUwho61a2eSNn/VwtwuIBDAo2SEOv1AJ7ARI5gCmohFLu/g==", "requires": { - "callsites": "0.2.0" + "callsites": "^0.2.0" } }, "callsites": { @@ -17908,8 +18198,8 @@ "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", "integrity": "sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w==", "requires": { - "no-case": "2.3.1", - "upper-case": "1.1.3" + "no-case": "^2.2.0", + "upper-case": "^1.1.1" } }, "camelcase": { @@ -17922,8 +18212,8 @@ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", "integrity": "sha512-bA/Z/DERHKqoEOrp+qeGKw1QlvEQkGZSc0XaY6VnTxZr+Kv1G5zFwttpjv8qxZ/sBPT4nthwZaAcsAZTJlSKXQ==", "requires": { - "camelcase": "2.1.1", - "map-obj": "1.0.1" + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" }, "dependencies": { "camelcase": { @@ -17938,10 +18228,10 @@ "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.6.1.tgz", "integrity": "sha512-SBTl70K0PkDUIebbkXrxWqZlHNs0wRgRD6QZ8guctShjbh63gEPfF+Wj0Yw+75f5Y8tSzqAI/NcisYv/cCah2Q==", "requires": { - "browserslist": "1.7.7", - "caniuse-db": "1.0.30000701", - "lodash.memoize": "4.1.2", - "lodash.uniq": "4.5.0" + "browserslist": "^1.3.6", + "caniuse-db": "^1.0.30000529", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" } }, "caniuse-db": { @@ -17958,12 +18248,12 @@ "version": "https://registry.npmjs.org/cdnizer/-/cdnizer-1.1.6.tgz", "integrity": "sha512-u9FB6+rAgvbPZwZJOqnwQk4OqPDwDypZg3OR4P80fEbVrYWaZ4+b8vx6ry8sBRyM1wggR+K6sgEk7/aWic3OdQ==", "requires": { - "cdnjs-cdn-data": "0.1.2", - "google-cdn-data": "0.1.25", - "jsdelivr-cdn-data": "0.1.1", - "lodash": "2.4.2", - "minimatch": "3.0.4", - "nomnom": "1.8.1" + "cdnjs-cdn-data": "^0.1.1", + "google-cdn-data": "^0.1.6", + "jsdelivr-cdn-data": "^0.1.1", + "lodash": "~2.4.1", + "minimatch": "^3.0.2", + "nomnom": "^1.8.0" }, "dependencies": { "lodash": { @@ -17978,7 +18268,7 @@ "resolved": "https://registry.npmjs.org/cdnjs-cdn-data/-/cdnjs-cdn-data-0.1.2.tgz", "integrity": "sha512-lTpdCEMbbtxEnRAqj6qVldSo6TN1CEuPWSD1qVOwB/MDd7ClfwICx4G4OsHKbRMp4W++jgLO8ufrKf/SJhWA9w==", "requires": { - "semver": "5.0.3" + "semver": "~5.0.1" }, "dependencies": { "semver": { @@ -17993,8 +18283,8 @@ "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", "integrity": "sha512-Baz3aNe2gd2LP2qk5U+sDk/m4oSuwSDcBfayTCTBoWpfIGO5XFxPmjILQII4NGiZjD6DoDI6kf7gKaxkf7s3VQ==", "requires": { - "align-text": "0.1.4", - "lazy-cache": "1.0.4" + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" } }, "chalk": { @@ -18002,11 +18292,11 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", "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" } }, "character-parser": { @@ -18019,15 +18309,15 @@ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", "integrity": "sha512-mk8fAWcRUOxY7btlLtitj3A45jOwSAxH4tOFOoEGbVsl6cL6pPMWUy7dwZ/canfj3QEdP6FHSnf/l1c6/WkzVg==", "requires": { - "anymatch": "1.3.0", - "async-each": "1.0.1", - "fsevents": "1.1.2", - "glob-parent": "2.0.0", - "inherits": "2.0.3", - "is-binary-path": "1.0.1", - "is-glob": "2.0.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.1.0" + "anymatch": "^1.3.0", + "async-each": "^1.0.0", + "fsevents": "^1.0.0", + "glob-parent": "^2.0.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^2.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0" } }, "circular-json": { @@ -18039,8 +18329,8 @@ "version": "https://registry.npmjs.org/cjsx-loader/-/cjsx-loader-2.1.0.tgz", "integrity": "sha512-fSSF8o8BEb8iCgRmheGe1P3BdjuY80lVQryqqCR+yMb2nASnEuLnpgiBQKf0lyIifhvNpND+lUJnJooeZkSckg==", "requires": { - "coffee-react-transform": "3.3.0", - "loader-utils": "0.2.17" + "coffee-react-transform": "^3.0.0", + "loader-utils": "0.2.x" } }, "clap": { @@ -18048,7 +18338,7 @@ "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.0.tgz", "integrity": "sha512-aHGzQytESd0QZCU3zSeIrffsRKFpiQwrIX1lyixfryDu/vHmGOPyvrhNa8na2KhMkjtpHVfjb7ZEfGcgK8/2Aw==", "requires": { - "chalk": "1.1.3" + "chalk": "^1.1.3" } }, "classnames": { @@ -18061,7 +18351,7 @@ "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.1.7.tgz", "integrity": "sha512-MsypQjYqiZze71/Jo1aIyszUS/incwPF43KN/ESDvjd2PdC4iqibM5rHsmbpYrPQjcfXBO7tgifM/SiWXu933g==", "requires": { - "source-map": "0.5.6" + "source-map": "0.5.x" }, "dependencies": { "source-map": { @@ -18076,7 +18366,7 @@ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", "integrity": "sha512-25tABq090YNKkF6JH7lcwO0zFJTRke4Jcq9iX2nr/Sz0Cjjv4gckmwlW6Ty/aoyFd6z3ysR2hMGC2GFugmBo6A==", "requires": { - "restore-cursor": "1.0.1" + "restore-cursor": "^1.0.1" } }, "cli-width": { @@ -18089,8 +18379,8 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", "integrity": "sha512-GIOYRizG+TGoc7Wgc1LiOTLare95R3mzKgoln+Q/lE4ceiYH19gUpl0l0Ffq4lJDEf3FxujMe6IBfOCs7pfqNA==", "requires": { - "center-align": "0.1.3", - "right-align": "0.1.3", + "center-align": "^0.1.1", + "right-align": "^0.1.1", "wordwrap": "0.0.2" }, "dependencies": { @@ -18116,7 +18406,7 @@ "resolved": "https://registry.npmjs.org/coa/-/coa-1.0.4.tgz", "integrity": "sha512-KAGck/eNAmCL0dcT3BiuYwLbExK6lduR8DxM3C1TyDzaXhZHyZ8ooX5I5+na2e3dPFuibfxrGdorr0/Lr7RYCQ==", "requires": { - "q": "1.5.0" + "q": "^1.1.2" } }, "code-point-at": { @@ -18128,7 +18418,7 @@ "version": "https://registry.npmjs.org/coffee-loader/-/coffee-loader-0.7.3.tgz", "integrity": "sha512-YZlVCkhdf9RJbBq5x0nAIY2lEylIqCXjNhnwMcPVm0mCNhHoe5aZ2UVD0mAgdfJow0TQCBodoHnVfEbDsRXbyg==", "requires": { - "loader-utils": "1.1.0" + "loader-utils": "^1.0.2" }, "dependencies": { "loader-utils": { @@ -18136,9 +18426,9 @@ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", "integrity": "sha512-gkD9aSEG9UGglyPcDJqY9YBTUtCLKaBK6ihD2VP1d1X60lTfFspNZNulGBBbUZLkPygy4LySYHyxBpq+VhjObQ==", "requires": { - "big.js": "3.1.3", - "emojis-list": "2.1.0", - "json5": "0.5.1" + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0" } } } @@ -18157,9 +18447,9 @@ "resolved": "https://registry.npmjs.org/color/-/color-0.11.4.tgz", "integrity": "sha512-Ajpjd8asqZ6EdxQeqGzU5WBhhTfJ/0cA4Wlbre7e5vXfmDSmda7Ov6jeKoru+b0vHcb1CqvuroTHp5zIWzhVMA==", "requires": { - "clone": "1.0.2", - "color-convert": "1.9.0", - "color-string": "0.3.0" + "clone": "^1.0.2", + "color-convert": "^1.3.0", + "color-string": "^0.3.0" } }, "color-convert": { @@ -18167,7 +18457,7 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz", "integrity": "sha512-cBdgwBveAUUexnimWkdqoTDizLaNhyWPRTvsNQI7eg2k5Y8sqQzymwc2V0qGhX0QdsPS9pqR5nOxEiMAE7SmHQ==", "requires": { - "color-name": "1.1.3" + "color-name": "^1.1.1" } }, "color-name": { @@ -18180,7 +18470,7 @@ "resolved": "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz", "integrity": "sha512-sz29j1bmSDfoAxKIEU6zwoIZXN6BrFbAMIhfYCNyiZXBDuU/aiHlN84lp/xDzL2ubyFhLDobHIlU1X70XRrMDA==", "requires": { - "color-name": "1.1.3" + "color-name": "^1.0.0" } }, "colormin": { @@ -18188,9 +18478,9 @@ "resolved": "https://registry.npmjs.org/colormin/-/colormin-1.1.2.tgz", "integrity": "sha512-XSEQUUQUR/lXqGyddiNH3XYFUPYlYr1vXy9rTFMsSOw+J7Q6EQkdlQIrTlYn4TccpsOaUE1PYQNjBn20gwCdgQ==", "requires": { - "color": "0.11.4", + "color": "^0.11.0", "css-color-names": "0.0.4", - "has": "1.0.1" + "has": "^1.0.1" } }, "colors": { @@ -18203,7 +18493,7 @@ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", "integrity": "sha512-JgSRe4l4UzPwpJuxfcPWEK1SCrL4dxNjp1uqrQLMop3QZUVo+hDU8w9BJKA4JPbulTWI+UzrI2UA3tK12yQ6bg==", "requires": { - "delayed-stream": "1.0.0" + "delayed-stream": "~1.0.0" } }, "commander": { @@ -18221,15 +18511,15 @@ "resolved": "https://registry.npmjs.org/commoner/-/commoner-0.10.8.tgz", "integrity": "sha512-3/qHkNMM6o/KGXHITA14y78PcfmXh4+AOCJpSoF73h4VY1JpdGv3CHMS5+JW6SwLhfJt4RhNmLAa7+RRX/62EQ==", "requires": { - "commander": "2.11.0", - "detective": "4.5.0", - "glob": "5.0.15", - "graceful-fs": "4.1.11", - "iconv-lite": "0.4.18", - "mkdirp": "0.5.1", - "private": "0.1.7", - "q": "1.5.0", - "recast": "0.11.23" + "commander": "^2.5.0", + "detective": "^4.3.1", + "glob": "^5.0.15", + "graceful-fs": "^4.1.2", + "iconv-lite": "^0.4.5", + "mkdirp": "^0.5.0", + "private": "^0.1.6", + "q": "^1.1.2", + "recast": "^0.11.17" } }, "compressible": { @@ -18237,7 +18527,7 @@ "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.10.tgz", "integrity": "sha512-SxYuuEiAOQlkIlqzAJj3FHYzE5ygJH6rnYQHtPK8wv1+Qh4gPK+BKMH4v11rurD19Mm7M9+/ViDbN5+qo15QGw==", "requires": { - "mime-db": "1.27.0" + "mime-db": ">= 1.27.0 < 2" } }, "compression": { @@ -18245,20 +18535,20 @@ "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.0.tgz", "integrity": "sha512-EzpIPZX++rTQylMht3iaYigq2NNJbI/e9VaDzR8sLi8vgOCHpvLT93GuvsGYW2ANEd14Ax2nI1Ydi9L5ykGeig==", "requires": { - "accepts": "1.3.3", + "accepts": "~1.3.3", "bytes": "2.5.0", - "compressible": "2.0.10", + "compressible": "~2.0.10", "debug": "2.6.8", - "on-headers": "1.0.1", + "on-headers": "~1.0.1", "safe-buffer": "5.1.1", - "vary": "1.1.1" + "vary": "~1.1.1" } }, "compression-webpack-plugin": { "version": "https://registry.npmjs.org/compression-webpack-plugin/-/compression-webpack-plugin-0.2.0.tgz", "integrity": "sha512-f7yLCof4T+/OHknaogkhSQc2d89OsGI1Z8HkJCC5gFNBNRJb2pUPXnOyiV8RJ5xP9P0oqHbRYN6SQvnu6EXNGw==", "requires": { - "async": "0.2.10" + "async": "0.2.x" } }, "concat-map": { @@ -18271,9 +18561,9 @@ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", "integrity": "sha512-afaQKFIg+fob6EzbytOlXZZTYrdZWaegQx2b6AWg9MoALXgctIcbRQrjcu6Wsh5801lVXaQYVwBw6vlATW0qPA==", "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.3", - "typedarray": "0.0.6" + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" }, "dependencies": { "isarray": { @@ -18286,13 +18576,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.0.3", + "util-deprecate": "~1.0.1" } }, "string_decoder": { @@ -18300,7 +18590,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "~5.1.0" } } } @@ -18315,7 +18605,7 @@ "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", "integrity": "sha512-duS7VP5pvfsNLDvL1O4VOEbw37AI3A4ZUQYemvDlnpGrNu9tprR7BYWpDYwC0Xia0Zxz5ZupdiIrUp0GH1aXfg==", "requires": { - "date-now": "0.1.4" + "date-now": "^0.1.4" } }, "console-control-strings": { @@ -18328,7 +18618,7 @@ "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-3.0.2.tgz", "integrity": "sha512-UnEggAQrmhxuTxlb7n1OsTtagNXWUv2CRlOogZhWOU4jLK4EJEbF8UDSNxuGu+jVtWNtO2j51ab2H1wlBIzF/w==", "requires": { - "acorn": "2.7.0" + "acorn": "^2.1.0" }, "dependencies": { "acorn": { @@ -18384,9 +18674,9 @@ "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.6.0.tgz", "integrity": "sha512-8XEdEaBmu01N8OBpDsonsnzcJtKNUIlwoqePr2W/xkvWcnxOpzAgP9T38B5Svxwxgt0FlYiyfAQc0DbtxsK84w==", "requires": { - "fbjs": "0.8.12", - "loose-envify": "1.3.1", - "object-assign": "4.1.1" + "fbjs": "^0.8.9", + "loose-envify": "^1.3.1", + "object-assign": "^4.1.1" }, "dependencies": { "fbjs": { @@ -18394,13 +18684,13 @@ "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.12.tgz", "integrity": "sha512-SBiP6XPiWIlX1tE5mvU/UeUFoqzJgbf+ezkl0M8D2xk4urDb+2uyjjGB10HAPluLboUqqVHtgUwwyuWakUfMgQ==", "requires": { - "core-js": "1.2.7", - "isomorphic-fetch": "2.2.1", - "loose-envify": "1.3.1", - "object-assign": "4.1.1", - "promise": "7.3.1", - "setimmediate": "1.0.5", - "ua-parser-js": "0.7.13" + "core-js": "^1.0.0", + "isomorphic-fetch": "^2.1.1", + "loose-envify": "^1.0.0", + "object-assign": "^4.1.0", + "promise": "^7.1.1", + "setimmediate": "^1.0.5", + "ua-parser-js": "^0.7.9" } }, "object-assign": { @@ -18415,8 +18705,8 @@ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", "integrity": "sha512-eZ+m1WNhSZutOa/uRblAc9Ut5MQfukFrFMtPSm3bZCA888NmMd5AWXWdgRZ80zd+pTk1P2JrGjg9pUPTvl2PWQ==", "requires": { - "lru-cache": "4.1.1", - "which": "1.2.14" + "lru-cache": "^4.0.1", + "which": "^1.2.9" } }, "cryptiles": { @@ -18424,7 +18714,7 @@ "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", "integrity": "sha512-FFN5KwpvvQTTS5hWPxrU8/QE4kQUc6uwZcrnlMBN82t1MgAtq8mnoDwINBly9Tdr02seeIIhtdF+UH1feBYGog==", "requires": { - "boom": "2.10.1" + "boom": "2.x.x" } }, "crypto-browserify": { @@ -18456,17 +18746,17 @@ "version": "https://registry.npmjs.org/css-loader/-/css-loader-0.23.1.tgz", "integrity": "sha512-626EYKVoY9Jf61On3M6uZHeu2CddHqc4F/C3b7Ingc6Z9YYeCr2QF9aVhSY3GO0SlLX48y4/m4rLkyY7BnkGnw==", "requires": { - "css-selector-tokenizer": "0.5.4", - "cssnano": "3.10.0", - "loader-utils": "0.2.17", - "lodash.camelcase": "3.0.1", - "object-assign": "4.1.1", - "postcss": "5.2.17", - "postcss-modules-extract-imports": "1.1.0", - "postcss-modules-local-by-default": "1.2.0", - "postcss-modules-scope": "1.1.0", - "postcss-modules-values": "1.3.0", - "source-list-map": "0.1.8" + "css-selector-tokenizer": "^0.5.1", + "cssnano": ">=2.6.1 <4", + "loader-utils": "~0.2.2", + "lodash.camelcase": "^3.0.1", + "object-assign": "^4.0.1", + "postcss": "^5.0.6", + "postcss-modules-extract-imports": "^1.0.0", + "postcss-modules-local-by-default": "^1.0.1", + "postcss-modules-scope": "^1.0.0", + "postcss-modules-values": "^1.1.0", + "source-list-map": "^0.1.4" }, "dependencies": { "object-assign": { @@ -18486,10 +18776,10 @@ "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", "integrity": "sha512-dUQOBoqdR7QwV90WysXPLXG5LO7nhYBgiWVfxF80DKPF8zx1t/pUd2FYy73emg3zrjtM6dzmYgbHKfV2rxiHQA==", "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-selector-tokenizer": { @@ -18497,8 +18787,8 @@ "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.5.4.tgz", "integrity": "sha512-4KF0VPHT7x/rSPnmUJ/wSzx1AVRnQAUVcuHJnlR2vo8ZKKp1oSh77iD7S/0PSwvMlBIdre0cTeFwWKvq7pn3KA==", "requires": { - "cssesc": "0.1.0", - "fastparse": "1.1.1" + "cssesc": "^0.1.0", + "fastparse": "^1.1.1" } }, "css-stringify": { @@ -18521,38 +18811,38 @@ "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-3.10.0.tgz", "integrity": "sha512-0o0IMQE0Ezo4b41Yrm8U6Rp9/Ag81vNXY1gZMnT1XhO4DpjEf2utKERqWJbOoz3g1Wdc1d3QSta/cIuJ1wSTEg==", "requires": { - "autoprefixer": "6.7.7", - "decamelize": "1.2.0", - "defined": "1.0.0", - "has": "1.0.1", - "object-assign": "4.1.1", - "postcss": "5.2.17", - "postcss-calc": "5.3.1", - "postcss-colormin": "2.2.2", - "postcss-convert-values": "2.6.1", - "postcss-discard-comments": "2.0.4", - "postcss-discard-duplicates": "2.1.0", - "postcss-discard-empty": "2.1.0", - "postcss-discard-overridden": "0.1.1", - "postcss-discard-unused": "2.2.3", - "postcss-filter-plugins": "2.0.2", - "postcss-merge-idents": "2.1.7", - "postcss-merge-longhand": "2.0.2", - "postcss-merge-rules": "2.1.2", - "postcss-minify-font-values": "1.0.5", - "postcss-minify-gradients": "1.0.5", - "postcss-minify-params": "1.2.2", - "postcss-minify-selectors": "2.1.1", - "postcss-normalize-charset": "1.1.1", - "postcss-normalize-url": "3.0.8", - "postcss-ordered-values": "2.2.3", - "postcss-reduce-idents": "2.4.0", - "postcss-reduce-initial": "1.0.1", - "postcss-reduce-transforms": "1.0.4", - "postcss-svgo": "2.1.6", - "postcss-unique-selectors": "2.0.2", - "postcss-value-parser": "3.3.0", - "postcss-zindex": "2.2.0" + "autoprefixer": "^6.3.1", + "decamelize": "^1.1.2", + "defined": "^1.0.0", + "has": "^1.0.1", + "object-assign": "^4.0.1", + "postcss": "^5.0.14", + "postcss-calc": "^5.2.0", + "postcss-colormin": "^2.1.8", + "postcss-convert-values": "^2.3.4", + "postcss-discard-comments": "^2.0.4", + "postcss-discard-duplicates": "^2.0.1", + "postcss-discard-empty": "^2.0.1", + "postcss-discard-overridden": "^0.1.1", + "postcss-discard-unused": "^2.2.1", + "postcss-filter-plugins": "^2.0.0", + "postcss-merge-idents": "^2.1.5", + "postcss-merge-longhand": "^2.0.1", + "postcss-merge-rules": "^2.0.3", + "postcss-minify-font-values": "^1.0.2", + "postcss-minify-gradients": "^1.0.1", + "postcss-minify-params": "^1.0.4", + "postcss-minify-selectors": "^2.0.4", + "postcss-normalize-charset": "^1.1.0", + "postcss-normalize-url": "^3.0.7", + "postcss-ordered-values": "^2.1.0", + "postcss-reduce-idents": "^2.2.2", + "postcss-reduce-initial": "^1.0.0", + "postcss-reduce-transforms": "^1.0.3", + "postcss-svgo": "^2.1.1", + "postcss-unique-selectors": "^2.0.2", + "postcss-value-parser": "^3.2.3", + "postcss-zindex": "^2.0.1" }, "dependencies": { "object-assign": { @@ -18567,8 +18857,8 @@ "resolved": "https://registry.npmjs.org/csso/-/csso-2.3.2.tgz", "integrity": "sha512-FmCI/hmqDeHHLaIQckMhMZneS84yzUZdrWDAvJVVxOwcKE1P1LF9FGmzr1ktIQSxOw6fl3PaQsmfg+GN+VvR3w==", "requires": { - "clap": "1.2.0", - "source-map": "0.5.6" + "clap": "^1.0.9", + "source-map": "^0.5.3" }, "dependencies": { "source-map": { @@ -18583,7 +18873,7 @@ "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", "integrity": "sha512-/fITjgjGU50vjQ4FH6eUoYu+iUoUKIXws2hL15JJpIR+BbTxaXQsMuuyjtNh2WqsSBS5nsaZHFsFecyw5CCAng==", "requires": { - "array-find-index": "1.0.2" + "array-find-index": "^1.0.1" } }, "d": { @@ -18591,7 +18881,7 @@ "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", "integrity": "sha512-9x1NruMD5YQ7xccKbGEy/bjitRfn5LEIhJIXIOAXC8I1laA5gfezUMVES1/vjLxfGzZjirLLBzEqxMO2/LzGxQ==", "requires": { - "es5-ext": "0.10.24" + "es5-ext": "^0.10.9" } }, "dashdash": { @@ -18599,7 +18889,7 @@ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" }, "dependencies": { "assert-plus": { @@ -18642,13 +18932,13 @@ "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", "integrity": "sha512-Z4fzpbIRjOu7lO5jCETSWoqUDVe0IPOlfugBsF6suen2LKDlVb4QZpKEM9P+buNJ4KI1eN7I083w/pbKUpsrWQ==", "requires": { - "globby": "5.0.0", - "is-path-cwd": "1.0.0", - "is-path-in-cwd": "1.0.0", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "rimraf": "2.6.1" + "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": { "object-assign": { @@ -18684,7 +18974,7 @@ "integrity": "sha512-BDKtmHlOzwI7iRuEkhzsnPoi5ypEhWAJB5RvHWe1kMr06js3uK5B3734i3ui5Yd+wOJV1cpE4JnivPD283GU/A==", "dev": true, "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, "detective": { @@ -18692,16 +18982,16 @@ "resolved": "https://registry.npmjs.org/detective/-/detective-4.5.0.tgz", "integrity": "sha512-+asa9kUmHJNNUj5rsWwYSwQY3IU4bwdzJvy9VsHWa4O+kxgRPCn3tWrVF/KookvhQ+D4TZuMBkEkFLhMhEErXg==", "requires": { - "acorn": "4.0.13", - "defined": "1.0.0" + "acorn": "^4.0.3", + "defined": "^1.0.0" } }, "doctrine": { "version": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", "integrity": "sha512-lsGyRuYr4/PIB0txi+Fy2xOMI2dGaTguCaotzFGkVZuKR5usKfcRWIFKNM3QNrU7hh/+w2bwTW+ZeXPK5l8uVg==", "requires": { - "esutils": "2.0.2", - "isarray": "1.0.0" + "esutils": "^2.0.2", + "isarray": "^1.0.0" }, "dependencies": { "isarray": { @@ -18716,7 +19006,7 @@ "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.1.4.tgz", "integrity": "sha512-I9NW33o3V92b9u0AAZQnn0Q422DhQfNPH4enTExENtXfroxVfVIEcdeJfNe41ROHye3+ZzkNIg2uvsFNE6U8ZA==", "requires": { - "utila": "0.3.3" + "utila": "~0.3" }, "dependencies": { "utila": { @@ -18731,8 +19021,8 @@ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", "integrity": "sha512-Fql7PX6CmQNVmoLfp7DlmvFMIL5cwLbm302SycA2iAMr95t1ITX4ilIsUG75rYtMiVLb4EMC5b2o7ApEpIXROg==", "requires": { - "domelementtype": "1.1.3", - "entities": "1.1.1" + "domelementtype": "~1.1.1", + "entities": "~1.1.1" }, "dependencies": { "domelementtype": { @@ -18757,7 +19047,7 @@ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.1.0.tgz", "integrity": "sha512-4Qr6GTzdsnKVGdYferZT3na5zkswztvfsoyprP/j2bLf1l3pUTamwYvNVldkEYFG6Ll+3eV5mVk0zgRr6iI+SA==", "requires": { - "domelementtype": "1.3.0" + "domelementtype": "1" } }, "domutils": { @@ -18765,8 +19055,8 @@ "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", "integrity": "sha512-gSu5Oi/I+3wDENBsOWBiRK1eoGxcywYSqg3rR960/+EfY0CF4EX1VPkgHOZ3WiS/Jg2DtliF6BhWcHlfpYUcGw==", "requires": { - "dom-serializer": "0.1.0", - "domelementtype": "1.3.0" + "dom-serializer": "0", + "domelementtype": "1" } }, "duplexer2": { @@ -18774,7 +19064,7 @@ "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", "integrity": "sha512-+AWBwjGadtksxjOQSFDhPNQbed7icNXApT4+2BNpsXzcCBiInq2H9XW0O8sfHFaPmnQRs7cg/P0fAr2IWQSW0g==", "requires": { - "readable-stream": "1.1.14" + "readable-stream": "~1.1.9" }, "dependencies": { "readable-stream": { @@ -18782,10 +19072,10 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", "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" } } } @@ -18796,7 +19086,7 @@ "integrity": "sha512-8Pvg9QY16SYajEL9W1Lk+9yM7XCK/MOq2wibslLZYAAEEkbAIO6mLkW+GFYbvvw8qTuDFzFMg40rS9IxkNCWPg==", "optional": true, "requires": { - "jsbn": "0.1.1" + "jsbn": "~0.1.0" } }, "ee-first": { @@ -18824,7 +19114,7 @@ "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", "integrity": "sha512-bl1LAgiQc4ZWr++pNYUdRe/alecaHFeHxIJ/pNciqGdKXghaTCOwKkbKp6ye7pKZGu/GcaSXFk8PBVhgs+dJdA==", "requires": { - "iconv-lite": "0.4.18" + "iconv-lite": "~0.4.13" } }, "enhanced-resolve": { @@ -18832,9 +19122,9 @@ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz", "integrity": "sha512-kxpoMgrdtkXZ5h0SeraBS1iRntpTpQ3R8ussdb38+UAFnMGX5DDyJXePm+OCHOcoXvHDw7mc2erbJBpDnl7TPw==", "requires": { - "graceful-fs": "4.1.11", - "memory-fs": "0.2.0", - "tapable": "0.1.10" + "graceful-fs": "^4.1.2", + "memory-fs": "^0.2.0", + "tapable": "^0.1.8" }, "dependencies": { "memory-fs": { @@ -18859,8 +19149,8 @@ "resolved": "https://registry.npmjs.org/envify/-/envify-3.4.1.tgz", "integrity": "sha512-XLiBFsLtNF0MOZl+vWU59yPb3C2JtrQY2CNJn22KH75zPlHWY5ChcAQuf4knJeWT/lLkrx3sqvhP/J349bt4Bw==", "requires": { - "jstransform": "11.0.3", - "through": "2.3.8" + "jstransform": "^11.0.3", + "through": "~2.3.4" } }, "errno": { @@ -18868,7 +19158,7 @@ "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz", "integrity": "sha512-B6ww/BgkeBIfyIaOKPMW2zteXdAeXSfOTPv6kGhl3luYw4BOTopQ0EjdGFePGdajvBjLQZq12axGLtHnrp+/Pg==", "requires": { - "prr": "0.0.0" + "prr": "~0.0.0" } }, "error-ex": { @@ -18876,7 +19166,7 @@ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", "integrity": "sha512-FfmVxYsm1QOFoPI2xQmNnEH10Af42mCxtGrKvS1JfDTXlPLYiAz2T+QpjHPxf+OGniMfWZah9ULAhPoKQ3SEqg==", "requires": { - "is-arrayish": "0.2.1" + "is-arrayish": "^0.2.1" } }, "es5-ext": { @@ -18884,8 +19174,8 @@ "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.24.tgz", "integrity": "sha512-qHKgM1mKhstIAZ1cxefVIOmWREJ2rgQv7aGg9BuCLq9G1vRjkV1K8M4LcSklsYPJwo2dqnOfb3IuNGOp3DxgUw==", "requires": { - "es6-iterator": "2.0.1", - "es6-symbol": "3.1.1" + "es6-iterator": "2", + "es6-symbol": "~3.1" } }, "es6-iterator": { @@ -18893,9 +19183,9 @@ "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.1.tgz", "integrity": "sha512-6QdxKjEfkAutL86ORbUgbZjfmssn3hfrFZDz5utw2BH9EJWYCVVqn9dN/WvsWSzsZ7Ox/fMrHXexX96fF5vEsw==", "requires": { - "d": "1.0.0", - "es5-ext": "0.10.24", - "es6-symbol": "3.1.1" + "d": "1", + "es5-ext": "^0.10.14", + "es6-symbol": "^3.1" } }, "es6-map": { @@ -18903,12 +19193,12 @@ "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", "integrity": "sha512-mz3UqCh0uPCIqsw1SSAkB/p0rOzF/M0V++vyN7JqlPtSW/VsYgQBvVvqMLmfBuyMzTpLnNqi6JmcSizs4jy19A==", "requires": { - "d": "1.0.0", - "es5-ext": "0.10.24", - "es6-iterator": "2.0.1", - "es6-set": "0.1.5", - "es6-symbol": "3.1.1", - "event-emitter": "0.3.5" + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", + "es6-set": "~0.1.5", + "es6-symbol": "~3.1.1", + "event-emitter": "~0.3.5" } }, "es6-set": { @@ -18916,11 +19206,11 @@ "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", "integrity": "sha512-7S8YXIcUfPMOr3rqJBVMePAbRsD1nWeSMQ86K/lDI76S3WKXz+KWILvTIPbTroubOkZTGh+b+7/xIIphZXNYbA==", "requires": { - "d": "1.0.0", - "es5-ext": "0.10.24", - "es6-iterator": "2.0.1", + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", "es6-symbol": "3.1.1", - "event-emitter": "0.3.5" + "event-emitter": "~0.3.5" } }, "es6-symbol": { @@ -18928,8 +19218,8 @@ "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", "integrity": "sha512-exfuQY8UGtn/N+gL1iKkH8fpNd5sJ760nJq6mmZAHldfxMD5kX07lbQuYlspoXsuknXNv9Fb7y2GsPOnQIbxHg==", "requires": { - "d": "1.0.0", - "es5-ext": "0.10.24" + "d": "1", + "es5-ext": "~0.10.14" } }, "es6-weak-map": { @@ -18937,10 +19227,10 @@ "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", "integrity": "sha512-rx4zGKCKP7e3n3BtHemBtuJ9DCFw5jfjtdSM132RsGxlBgJvudmL/ogowl2Je/dJDbGws+od3J3PHOTAleo27w==", "requires": { - "d": "1.0.0", - "es5-ext": "0.10.24", - "es6-iterator": "2.0.1", - "es6-symbol": "3.1.1" + "d": "1", + "es5-ext": "^0.10.14", + "es6-iterator": "^2.0.1", + "es6-symbol": "^3.1.1" } }, "escape-html": { @@ -18958,10 +19248,10 @@ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.3.3.tgz", "integrity": "sha512-z9FWgKc48wjMlpzF5ymKS1AF8OIgnKLp9VyN7KbdtyrP/9lndwUFqCtMm+TAJmJf7KJFFYc4cFJfVTTGkKEwsA==", "requires": { - "esprima": "1.1.1", - "estraverse": "1.5.1", - "esutils": "1.0.0", - "source-map": "0.1.43" + "esprima": "~1.1.1", + "estraverse": "~1.5.0", + "esutils": "~1.0.0", + "source-map": "~0.1.33" }, "dependencies": { "esprima": { @@ -18980,7 +19270,7 @@ "integrity": "sha512-VtCvB9SIQhk3aF6h+N85EaqIaBFIAfZ9Cu+NJHHVvc8BbEcnvDcFw6sqQ2dQrT6SlOrZq3tIvyD9+EGq/lJryQ==", "optional": true, "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } } } @@ -18989,10 +19279,10 @@ "version": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", "integrity": "sha512-75IUQsusDdalQEW/G/2esa87J7raqdJF+Ca0/Xm5C3Q58Nr4yVYjZGp/P1+2xiEVgXRrA39dpRb8LcshajbqDQ==", "requires": { - "es6-map": "0.1.5", - "es6-weak-map": "2.0.2", - "esrecurse": "4.2.0", - "estraverse": "4.2.0" + "es6-map": "^0.1.3", + "es6-weak-map": "^2.0.1", + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" }, "dependencies": { "estraverse": { @@ -19006,8 +19296,8 @@ "version": "https://registry.npmjs.org/espree/-/espree-3.4.3.tgz", "integrity": "sha512-Xqn0i9fqQLP/vV+/kw/kg94qSqoQME0xuoroSuTieHOC3SoYVumn/zq+aoqc0EkK0IqiFhsfN+R+ACt6RExJgg==", "requires": { - "acorn": "5.1.1", - "acorn-jsx": "3.0.1" + "acorn": "^5.0.1", + "acorn-jsx": "^3.0.0" }, "dependencies": { "acorn": { @@ -19027,8 +19317,8 @@ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz", "integrity": "sha512-TLXkx8hhh1f3PBJQAV24x0JJpOAWvGW/n2KyIRuGOpt5dcl9fuRLY8Lv3zB2psFfqJBT2ZN0Ss4aNSTf9lLqwA==", "requires": { - "estraverse": "4.2.0", - "object-assign": "4.1.1" + "estraverse": "^4.1.0", + "object-assign": "^4.0.1" }, "dependencies": { "estraverse": { @@ -19063,8 +19353,8 @@ "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", "requires": { - "d": "1.0.0", - "es5-ext": "0.10.24" + "d": "1", + "es5-ext": "~0.10.14" } }, "eventemitter3": { @@ -19082,7 +19372,7 @@ "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-0.1.6.tgz", "integrity": "sha512-bbB5tEuvC+SuRUG64X8ghvjgiRniuA4WlehWbFnoN4z6TxDXpyX+BMHF7rMgZAqoe+EbyNRUbHN0uuP9phy5jQ==", "requires": { - "original": "1.0.0" + "original": ">=0.0.5" } }, "exit-hook": { @@ -19095,7 +19385,7 @@ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", "integrity": "sha512-hxx03P2dJxss6ceIeri9cmYOT4SRs3Zk3afZwWpOsRqLqprhTR8u++SlC+sFGsQr7WGFPdMF7Gjc1njDLDK6UA==", "requires": { - "is-posix-bracket": "0.1.1" + "is-posix-bracket": "^0.1.0" } }, "expand-range": { @@ -19103,7 +19393,7 @@ "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", "integrity": "sha512-AFASGfIlnIbkKPQwX1yHaDjFvh/1gyKJODme52V6IORh69uEYgZp0o9C+qsIGNVEiuuhQU0CSSl++Rlegg1qvA==", "requires": { - "fill-range": "2.2.3" + "fill-range": "^2.1.0" } }, "express": { @@ -19111,34 +19401,34 @@ "resolved": "https://registry.npmjs.org/express/-/express-4.15.3.tgz", "integrity": "sha512-eyQPXY6coAN6NpdZhXZsAvoGSvWZtYq1S6YCBA86+RTwzzecvLvgPR/Jm+MR0otFUzLnmI/lfv79aoIMDpWW8w==", "requires": { - "accepts": "1.3.3", + "accepts": "~1.3.3", "array-flatten": "1.1.1", "content-disposition": "0.5.2", - "content-type": "1.0.2", + "content-type": "~1.0.2", "cookie": "0.3.1", "cookie-signature": "1.0.6", "debug": "2.6.7", - "depd": "1.1.0", - "encodeurl": "1.0.1", - "escape-html": "1.0.3", - "etag": "1.8.0", - "finalhandler": "1.0.3", + "depd": "~1.1.0", + "encodeurl": "~1.0.1", + "escape-html": "~1.0.3", + "etag": "~1.8.0", + "finalhandler": "~1.0.3", "fresh": "0.5.0", "merge-descriptors": "1.0.1", - "methods": "1.1.2", - "on-finished": "2.3.0", - "parseurl": "1.3.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.1", "path-to-regexp": "0.1.7", - "proxy-addr": "1.1.4", + "proxy-addr": "~1.1.4", "qs": "6.4.0", - "range-parser": "1.2.0", + "range-parser": "~1.2.0", "send": "0.15.3", "serve-static": "1.12.3", "setprototypeof": "1.0.3", - "statuses": "1.3.1", - "type-is": "1.6.15", + "statuses": "~1.3.1", + "type-is": "~1.6.15", "utils-merge": "1.0.0", - "vary": "1.1.1" + "vary": "~1.1.1" }, "dependencies": { "debug": { @@ -19166,15 +19456,15 @@ "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", "integrity": "sha512-1FOj1LOwn42TMrruOHGt18HemVnbwAmAak7krWk+wa93KXxGbK+2jpezm+ytJYDaBX0/SPLZFHKM7m+tKobWGg==", "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "extract-text-webpack-plugin": { "version": "https://registry.npmjs.org/extract-text-webpack-plugin/-/extract-text-webpack-plugin-0.9.1.tgz", "integrity": "sha512-V/frRUkP87cGy6gG+PetSeUYqpwKjfYBpMJXY4RCh5eWCyNhj4QsVqWx9rZea3C9nxRNuLDCCetJWGgdadBjrw==", "requires": { - "async": "1.5.2", - "loader-utils": "0.2.17" + "async": "^1.5.0", + "loader-utils": "^0.2.3" }, "dependencies": { "async": { @@ -19194,10 +19484,10 @@ "resolved": "https://registry.npmjs.org/falafel/-/falafel-2.1.0.tgz", "integrity": "sha512-6WM5fROvojK2PNz5l6pnkbkjiRRsSIRwiaavq0rywy1oLOcFrx5fBTgpDyUNG4TdqtKNM002FuoT/I2ww0XBqw==", "requires": { - "acorn": "5.1.1", - "foreach": "2.0.5", + "acorn": "^5.0.0", + "foreach": "^2.0.5", "isarray": "0.0.1", - "object-keys": "1.0.11" + "object-keys": "^1.0.6" }, "dependencies": { "acorn": { @@ -19227,7 +19517,7 @@ "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", "integrity": "sha512-Xhj93RXbMSq8urNCUq4p9l0P6hnySJ/7YNRhYNug0bLOuii7pKO7xQFb5mx9xZXWCar88pLPb805PvUkwrLZpQ==", "requires": { - "websocket-driver": "0.6.5" + "websocket-driver": ">=0.5.1" } }, "fbjs": { @@ -19235,11 +19525,11 @@ "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.6.1.tgz", "integrity": "sha512-4KW7tT33ytfazK3Ekvesbsa4A5J79hUrdXONQGZ0wM6i3PFc70YknF9kj1eyx3mDupgJ7Z+ifFhcMJ+ps2eZIw==", "requires": { - "core-js": "1.2.7", - "loose-envify": "1.3.1", - "promise": "7.3.1", - "ua-parser-js": "0.7.13", - "whatwg-fetch": "0.9.0" + "core-js": "^1.0.0", + "loose-envify": "^1.0.0", + "promise": "^7.0.3", + "ua-parser-js": "^0.7.9", + "whatwg-fetch": "^0.9.0" } }, "fd-slicer": { @@ -19247,7 +19537,7 @@ "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", "integrity": "sha512-MX1ZLPIuKED51hrI4++K+1B0VX87Cs4EkybD2q12Ysuf5p4vkmHqMvQJRlDwROqFr4D2Pzyit5wGQxf30grIcw==", "requires": { - "pend": "1.2.0" + "pend": "~1.2.0" } }, "figures": { @@ -19255,8 +19545,8 @@ "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", "integrity": "sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ==", "requires": { - "escape-string-regexp": "1.0.5", - "object-assign": "4.1.1" + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" }, "dependencies": { "object-assign": { @@ -19270,8 +19560,8 @@ "version": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-1.3.1.tgz", "integrity": "sha512-JyVk7P0Hvw6uEAwH4Y0j+rZMvaMWvLBYRmRGAF2S6jKTycf0mMDcC7d21Y2KyrKJk3XI8YghSsk5KmRdbvg0VQ==", "requires": { - "flat-cache": "1.2.2", - "object-assign": "4.1.1" + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" }, "dependencies": { "object-assign": { @@ -19285,7 +19575,7 @@ "version": "https://registry.npmjs.org/file-loader/-/file-loader-0.8.5.tgz", "integrity": "sha512-yDylQzd/QOaMm249awSL+JjsLRDfFghwmm+YCALH0uLXqAazD/alHnhbIE+UyVtbI+bIVYVdgDApSJ9blouFDg==", "requires": { - "loader-utils": "0.2.17" + "loader-utils": "~0.2.5" } }, "filename-regex": { @@ -19298,11 +19588,11 @@ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", "integrity": "sha512-P1WnpaJQ8BQdSEIjEmgyCHm9ESwkO6sMu+0Moa4s0u9B+iQ5M9tBbbCYvWmF7vRvqyMO2ENqC+w4Hev8wErQcg==", "requires": { - "is-number": "2.1.0", - "isobject": "2.1.0", - "randomatic": "1.1.7", - "repeat-element": "1.1.2", - "repeat-string": "1.6.1" + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^1.1.3", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" } }, "finalhandler": { @@ -19311,12 +19601,12 @@ "integrity": "sha512-Crb5GWw1cfFnZlZ3LJYAQCMbrfsKoV7+DNSvCQpwbybd+8tkrjHad5JuCJhunq8gJ80AqqsvbWxQSDBYxkr5tw==", "requires": { "debug": "2.6.7", - "encodeurl": "1.0.1", - "escape-html": "1.0.3", - "on-finished": "2.3.0", - "parseurl": "1.3.1", - "statuses": "1.3.1", - "unpipe": "1.0.0" + "encodeurl": "~1.0.1", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.1", + "statuses": "~1.3.1", + "unpipe": "~1.0.0" }, "dependencies": { "debug": { @@ -19334,9 +19624,9 @@ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", "integrity": "sha512-Z9XSBoNE7xQiV6MSgPuCfyMokH2K7JdpRkOYE1+mu3d4BFJtx3GW+f6Bo4q8IX6rlf5MYbLBKW0pjl2cWdkm2A==", "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": { @@ -19344,8 +19634,8 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==", "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "findit2": { @@ -19358,10 +19648,10 @@ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.2.2.tgz", "integrity": "sha512-JzMp5lzDuF/1qgd3g+awLvXlVxAcWxL4L2NfZe9r19bwjKqGjXg5waNXG8wuP9skmVmiKhAo/lN+FDJxVKNDgQ==", "requires": { - "circular-json": "0.3.1", - "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": { @@ -19379,7 +19669,7 @@ "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", "integrity": "sha512-SKmowqGTJoPzLO1T0BBJpkfp3EMacCMOuH40hOUbrbzElVktk4DioXVM99QkLCyKoiuOmyjgcWMpVz2xjE7LZw==", "requires": { - "for-in": "1.0.2" + "for-in": "^1.0.1" } }, "foreach": { @@ -19397,9 +19687,9 @@ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", "integrity": "sha512-8HWGSLAPr+AG0hBpsqi5Ob8HrLStN/LWeqhpFl14d7FJgHK48TmgLoALPz69XSUR65YJzDfLUX/BM8+MLJLghQ==", "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.15" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.12" } }, "formatio": { @@ -19407,7 +19697,7 @@ "resolved": "https://registry.npmjs.org/formatio/-/formatio-1.1.1.tgz", "integrity": "sha512-cPh7is6k3d8tIUh+pnXXuAbD/uhSXGgqLPw0UrYpv5lfdJ+MMMSjx40JNpqP7Top9Nt25YomWEiRmkHbOvkCaA==", "requires": { - "samsam": "1.1.2" + "samsam": "~1.1" } }, "forwarded": { @@ -19431,8 +19721,8 @@ "integrity": "sha512-Sn44E5wQW4bTHXvQmvSHwqbuiXtduD6Rrjm2ZtUEGbyrig+nUH3t/QD4M4/ZXViY556TBpRgZkHLDx3JxPwxiw==", "optional": true, "requires": { - "nan": "2.6.2", - "node-pre-gyp": "0.6.36" + "nan": "^2.3.0", + "node-pre-gyp": "^0.6.36" }, "dependencies": { "abbrev": { @@ -19447,8 +19737,8 @@ "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", "optional": true, "requires": { - "co": "4.6.0", - "json-stable-stringify": "1.0.1" + "co": "^4.6.0", + "json-stable-stringify": "^1.0.1" } }, "ansi-regex": { @@ -19468,8 +19758,8 @@ "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", "optional": true, "requires": { - "delegates": "1.0.0", - "readable-stream": "2.2.9" + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" } }, "asn1": { @@ -19513,7 +19803,7 @@ "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", "optional": true, "requires": { - "tweetnacl": "0.14.5" + "tweetnacl": "^0.14.3" } }, "block-stream": { @@ -19521,7 +19811,7 @@ "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", "requires": { - "inherits": "2.0.3" + "inherits": "~2.0.0" } }, "boom": { @@ -19529,7 +19819,7 @@ "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "brace-expansion": { @@ -19537,7 +19827,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz", "integrity": "sha1-Pv/DxQ4ABTH7cg6v+A8K6O8jz1k=", "requires": { - "balanced-match": "0.4.2", + "balanced-match": "^0.4.1", "concat-map": "0.0.1" } }, @@ -19568,7 +19858,7 @@ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", "requires": { - "delayed-stream": "1.0.0" + "delayed-stream": "~1.0.0" } }, "concat-map": { @@ -19592,7 +19882,7 @@ "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", "optional": true, "requires": { - "boom": "2.10.1" + "boom": "2.x.x" } }, "dashdash": { @@ -19601,7 +19891,7 @@ "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "optional": true, "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" }, "dependencies": { "assert-plus": { @@ -19644,7 +19934,7 @@ "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", "optional": true, "requires": { - "jsbn": "0.1.1" + "jsbn": "~0.1.0" } }, "extend": { @@ -19670,9 +19960,9 @@ "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", "optional": true, "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.15" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.12" } }, "fs.realpath": { @@ -19685,10 +19975,10 @@ "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", "requires": { - "graceful-fs": "4.1.11", - "inherits": "2.0.3", - "mkdirp": "0.5.1", - "rimraf": "2.6.1" + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" } }, "fstream-ignore": { @@ -19697,9 +19987,9 @@ "integrity": "sha1-nDHa40dnAY/h0kmyTa2mfQktoQU=", "optional": true, "requires": { - "fstream": "1.0.11", - "inherits": "2.0.3", - "minimatch": "3.0.4" + "fstream": "^1.0.0", + "inherits": "2", + "minimatch": "^3.0.0" } }, "gauge": { @@ -19708,14 +19998,14 @@ "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "optional": true, "requires": { - "aproba": "1.1.1", - "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" } }, "getpass": { @@ -19724,7 +20014,7 @@ "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "optional": true, "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" }, "dependencies": { "assert-plus": { @@ -19740,12 +20030,12 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "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" } }, "graceful-fs": { @@ -19765,8 +20055,8 @@ "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", "optional": true, "requires": { - "ajv": "4.11.8", - "har-schema": "1.0.5" + "ajv": "^4.9.1", + "har-schema": "^1.0.5" } }, "has-unicode": { @@ -19781,10 +20071,10 @@ "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", "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" } }, "hoek": { @@ -19798,9 +20088,9 @@ "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", "optional": true, "requires": { - "assert-plus": "0.2.0", - "jsprim": "1.4.0", - "sshpk": "1.13.0" + "assert-plus": "^0.2.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, "inflight": { @@ -19808,8 +20098,8 @@ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -19828,7 +20118,7 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-typedarray": { @@ -19854,7 +20144,7 @@ "integrity": "sha1-BtSRIlUJNBlHfUJWM2BuDpB4KWc=", "optional": true, "requires": { - "jsbn": "0.1.1" + "jsbn": "~0.1.0" } }, "jsbn": { @@ -19875,7 +20165,7 @@ "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", "optional": true, "requires": { - "jsonify": "0.0.0" + "jsonify": "~0.0.0" } }, "json-stringify-safe": { @@ -19920,7 +20210,7 @@ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz", "integrity": "sha1-pOv1BkCUVpI3uM9wBGd20J/JKu0=", "requires": { - "mime-db": "1.27.0" + "mime-db": "~1.27.0" } }, "minimatch": { @@ -19928,7 +20218,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "brace-expansion": "1.1.7" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -19956,15 +20246,15 @@ "integrity": "sha1-22BBEst04NR3VU6bUFsXq936t4Y=", "optional": true, "requires": { - "mkdirp": "0.5.1", - "nopt": "4.0.1", - "npmlog": "4.1.0", - "rc": "1.2.1", - "request": "2.81.0", - "rimraf": "2.6.1", - "semver": "5.3.0", - "tar": "2.2.1", - "tar-pack": "3.4.0" + "mkdirp": "^0.5.1", + "nopt": "^4.0.1", + "npmlog": "^4.0.2", + "rc": "^1.1.7", + "request": "^2.81.0", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^2.2.1", + "tar-pack": "^3.4.0" } }, "nopt": { @@ -19973,8 +20263,8 @@ "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", "optional": true, "requires": { - "abbrev": "1.1.0", - "osenv": "0.1.4" + "abbrev": "1", + "osenv": "^0.1.4" } }, "npmlog": { @@ -19983,10 +20273,10 @@ "integrity": "sha512-ocolIkZYZt8UveuiDS0yAkkIjid1o7lPG8cYm05yNYzBn8ykQtaiPMEGp8fY9tKdDgm8okpdKzkvu1y9hUYugA==", "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": { @@ -20011,7 +20301,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "os-homedir": { @@ -20032,8 +20322,8 @@ "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=", "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": { @@ -20070,10 +20360,10 @@ "integrity": "sha1-LgPo5C7kULjLPc5lvhv4l04d/ZU=", "optional": true, "requires": { - "deep-extend": "0.4.2", - "ini": "1.3.4", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" + "deep-extend": "~0.4.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" }, "dependencies": { "minimist": { @@ -20089,13 +20379,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz", "integrity": "sha1-z3jsb0ptHrQ9JkiMrJfwQudLf8g=", "requires": { - "buffer-shims": "1.0.0", - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "string_decoder": "1.0.1", - "util-deprecate": "1.0.2" + "buffer-shims": "~1.0.0", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~1.0.0", + "util-deprecate": "~1.0.1" } }, "request": { @@ -20104,28 +20394,28 @@ "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", "optional": true, "requires": { - "aws-sign2": "0.6.0", - "aws4": "1.6.0", - "caseless": "0.12.0", - "combined-stream": "1.0.5", - "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.15", - "oauth-sign": "0.8.2", - "performance-now": "0.2.0", - "qs": "6.4.0", - "safe-buffer": "5.0.1", - "stringstream": "0.0.5", - "tough-cookie": "2.3.2", - "tunnel-agent": "0.6.0", - "uuid": "3.0.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" } }, "rimraf": { @@ -20133,7 +20423,7 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "safe-buffer": { @@ -20165,7 +20455,7 @@ "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", "optional": true, "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "sshpk": { @@ -20174,15 +20464,15 @@ "integrity": "sha1-/yo+T9BEl1Vf7Zezmg/YL6+zozw=", "optional": 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", - "jodid25519": "1.0.2", - "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", + "jodid25519": "^1.0.0", + "jsbn": "~0.1.0", + "tweetnacl": "~0.14.0" }, "dependencies": { "assert-plus": { @@ -20198,9 +20488,9 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "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": { @@ -20208,7 +20498,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz", "integrity": "sha1-YuIA8DmVWmgQ2N8KM//A8BNmLZg=", "requires": { - "safe-buffer": "5.0.1" + "safe-buffer": "^5.0.1" } }, "stringstream": { @@ -20222,7 +20512,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-json-comments": { @@ -20236,9 +20526,9 @@ "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", "requires": { - "block-stream": "0.0.9", - "fstream": "1.0.11", - "inherits": "2.0.3" + "block-stream": "*", + "fstream": "^1.0.2", + "inherits": "2" } }, "tar-pack": { @@ -20247,14 +20537,14 @@ "integrity": "sha1-I74tf2cagzk3bL2wuP4/3r8xeYQ=", "optional": true, "requires": { - "debug": "2.6.8", - "fstream": "1.0.11", - "fstream-ignore": "1.0.5", - "once": "1.4.0", - "readable-stream": "2.2.9", - "rimraf": "2.6.1", - "tar": "2.2.1", - "uid-number": "0.0.6" + "debug": "^2.2.0", + "fstream": "^1.0.10", + "fstream-ignore": "^1.0.5", + "once": "^1.3.3", + "readable-stream": "^2.1.4", + "rimraf": "^2.5.1", + "tar": "^2.2.1", + "uid-number": "^0.0.6" } }, "tough-cookie": { @@ -20263,7 +20553,7 @@ "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", "optional": true, "requires": { - "punycode": "1.4.1" + "punycode": "^1.4.1" } }, "tunnel-agent": { @@ -20272,7 +20562,7 @@ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "optional": true, "requires": { - "safe-buffer": "5.0.1" + "safe-buffer": "^5.0.1" } }, "tweetnacl": { @@ -20313,7 +20603,7 @@ "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", "optional": true, "requires": { - "string-width": "1.0.2" + "string-width": "^1.0.2" } }, "wrappy": { @@ -20328,10 +20618,10 @@ "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", "integrity": "sha512-2Xg8XA70uvyriqd1J6T/6V74WeQWHCn65hTSAWcZgKCOCo7nN6hoqgFrYPLJ9Yzbryrp/VIruHXsDyZIqZ1SvQ==", "requires": { - "graceful-fs": "4.1.11", - "inherits": "2.0.3", - "mkdirp": "0.5.1", - "rimraf": "2.6.1" + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" } }, "function-bind": { @@ -20344,14 +20634,14 @@ "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", "integrity": "sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==", "requires": { - "aproba": "1.1.2", - "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" }, "dependencies": { "object-assign": { @@ -20366,7 +20656,7 @@ "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.2.tgz", "integrity": "sha512-38Jtqi8EsWt2l0x6iiL1NWN3/llOwWEv0NC3HGb/gPHLJkLq0N2c/TtuLrSfRXHwV6VkYmxAJj9YBdF33Et5hg==", "requires": { - "globule": "1.2.0" + "globule": "^1.0.0" } }, "generate-function": { @@ -20379,7 +20669,7 @@ "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", "integrity": "sha512-TuOwZWgJ2VAMEGJvAyPWvpqxSANF0LDpmyHauMjFYzaACvn+QTT/AZomvPCzVBV7yDN3OmwHQ5OvHaeLKre3JQ==", "requires": { - "is-property": "1.0.2" + "is-property": "^1.0.0" } }, "get-caller-file": { @@ -20397,7 +20687,7 @@ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" }, "dependencies": { "assert-plus": { @@ -20412,11 +20702,11 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", "integrity": "sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA==", "requires": { - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "glob-base": { @@ -20424,8 +20714,8 @@ "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", "integrity": "sha512-ab1S1g1EbO7YzauaJLkgLp7DZVAqj9M/dvKlTt8DkXA2tiOIcSMrlVI2J1RZyB5iJVccEscjGn+kpOG9788MHA==", "requires": { - "glob-parent": "2.0.0", - "is-glob": "2.0.1" + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" } }, "glob-parent": { @@ -20433,7 +20723,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", "integrity": "sha512-JDYOvfxio/t42HKdxkAYaCiBN7oYiuxykOxKxdaUW5Qn0zaYN3gRQWolrwdnf0shM9/EP0ebuuTmyoXNr1cC5w==", "requires": { - "is-glob": "2.0.1" + "is-glob": "^2.0.0" } }, "globals": { @@ -20446,12 +20736,12 @@ "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", "integrity": "sha512-HJRTIH2EeH44ka+LWig+EqT2ONSYpVlNfx6pyd592/VF1TbfljJ7elwie7oSwcViLGqOdWocSdu2txwBF9bjmQ==", "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": { "glob": { @@ -20459,12 +20749,12 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "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" } }, "object-assign": { @@ -20479,9 +20769,9 @@ "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.0.tgz", "integrity": "sha512-vKZYpzBvzTaSLsgvRUL2D4fvs3jglHo8ubovdD0y11rHme/7R+BcG3oXKFSZ+kntsO68sIaZvhARCJ50RUoy2g==", "requires": { - "glob": "7.1.2", - "lodash": "4.17.4", - "minimatch": "3.0.4" + "glob": "~7.1.1", + "lodash": "~4.17.4", + "minimatch": "~3.0.2" }, "dependencies": { "glob": { @@ -20489,12 +20779,12 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "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" } } } @@ -20524,8 +20814,8 @@ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", "integrity": "sha512-5Gbp6RAftMYYV3UEI4c4Vv3+a4dQ7taVyvHt+/L6kRt+f4HX1GweAk5UDWN0SvdVnRBzGQ6OG89pGaD9uSFnVw==", "requires": { - "ajv": "4.11.8", - "har-schema": "1.0.5" + "ajv": "^4.9.1", + "har-schema": "^1.0.5" } }, "has": { @@ -20533,7 +20823,7 @@ "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", "integrity": "sha512-8wpov6mGFPJ/SYWGQIFo6t0yuNWoO9MkSq3flX8LhiGmbIUhDETp9knPMcIm0Xig1ybWsw6gq2w0gCz1JHD+Qw==", "requires": { - "function-bind": "1.1.0" + "function-bind": "^1.0.2" } }, "has-ansi": { @@ -20541,7 +20831,7 @@ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "has-color": { @@ -20564,10 +20854,10 @@ "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", "integrity": "sha512-X8xbmTc1cbPXcQV4WkLcRMALuyoxhfpFATmyuCxJPOAvrDS4DNnsTAOmKUxMTOWU6TzrTOkxPKwIx5ZOpJVSrg==", "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": { @@ -20591,8 +20881,8 @@ "integrity": "sha512-ycURW7oUxE2sNiPVw1HVEFsW+ecOpJ5zaj7eC0RlwhibhRBod20muUN8qu/gzx956YrLolVvs1MTXwKgC2rVEg==", "dev": true, "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.1" } }, "hosted-git-info": { @@ -20610,14 +20900,14 @@ "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.2.tgz", "integrity": "sha512-CpXODZQ75jOxqF5CR0vqPKV9LuHw96ijVRbEsSPTPFs4gKd5uuMNEUsAvRgz9OSXS/D4fItq0X8362oXMyjZPw==", "requires": { - "camel-case": "3.0.0", - "clean-css": "4.1.7", - "commander": "2.9.0", - "he": "1.1.1", - "ncname": "1.0.0", - "param-case": "2.1.1", - "relateurl": "0.2.7", - "uglify-js": "3.0.25" + "camel-case": "3.0.x", + "clean-css": "4.1.x", + "commander": "2.9.x", + "he": "1.1.x", + "ncname": "1.0.x", + "param-case": "2.1.x", + "relateurl": "0.2.x", + "uglify-js": "3.0.x" }, "dependencies": { "commander": { @@ -20625,7 +20915,7 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", "integrity": "sha512-bmkUukX8wAOjHdN26xj5c4ctEV22TQ7dQYhSmuckKhToXrkUn0iIaolHdIxYYqD55nhpSPA9zPQ1yP57GdXP2A==", "requires": { - "graceful-readlink": "1.0.1" + "graceful-readlink": ">= 1.0.0" } } } @@ -20634,12 +20924,12 @@ "version": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-2.29.0.tgz", "integrity": "sha512-XgOxN8H7nDeLQzD9FQOWWQLVL0GDq5reeREx8jpLZcEZND7kM5j3o/mFhjOcSfZ89HwU3+yBqSQyK7ZvvYFZ/w==", "requires": { - "bluebird": "3.5.0", - "html-minifier": "3.5.2", - "loader-utils": "0.2.17", - "lodash": "4.17.4", - "pretty-error": "2.1.1", - "toposort": "1.0.3" + "bluebird": "^3.4.7", + "html-minifier": "^3.2.3", + "loader-utils": "^0.2.16", + "lodash": "^4.17.3", + "pretty-error": "^2.0.2", + "toposort": "^1.0.0" } }, "htmlparser2": { @@ -20647,10 +20937,10 @@ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.3.0.tgz", "integrity": "sha512-Z8i63n7seuPvRe1PQyrjmoVStv7bjMa0skrOl/k6tnT/5WpPNrzWLB1Hg/dJxBXH/M6KZvm25JQGVCiQGxURLQ==", "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": { @@ -20658,7 +20948,7 @@ "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.1.6.tgz", "integrity": "sha512-ZeagMzMKyk9GSFMqV3x3uHgRN36hLpSOF6LIRXmftce0UUqFsAx/azJAJ4Jc+9DYKmwROH5HLOcOu1OPARWwNg==", "requires": { - "domelementtype": "1.3.0" + "domelementtype": "1" } } } @@ -20671,7 +20961,7 @@ "depd": "1.1.0", "inherits": "2.0.3", "setprototypeof": "1.0.3", - "statuses": "1.3.1" + "statuses": ">= 1.3.1 < 2" } }, "http-proxy": { @@ -20679,8 +20969,8 @@ "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.16.2.tgz", "integrity": "sha512-mVtRyhMoqY5UCrvvqTTIfQPgRO+dDR1qHbuBYk8fjUpA51KUzesT++tRQSdiEhjBBobO4PCnP4ITc/BFsBkm6w==", "requires": { - "eventemitter3": "1.2.0", - "requires-port": "1.0.0" + "eventemitter3": "1.x.x", + "requires-port": "1.x.x" } }, "http-proxy-middleware": { @@ -20688,10 +20978,10 @@ "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.17.4.tgz", "integrity": "sha512-JtH3UZju4oXDdca28/kknbm/CFmt35vy0YV0PNOMWWWpn3rT9WV95IXN451xwBGSjy9L0Cah1O9TCMytboLdfw==", "requires": { - "http-proxy": "1.16.2", - "is-glob": "3.1.0", - "lodash": "4.17.4", - "micromatch": "2.3.11" + "http-proxy": "^1.16.2", + "is-glob": "^3.1.0", + "lodash": "^4.17.2", + "micromatch": "^2.3.11" }, "dependencies": { "is-extglob": { @@ -20704,7 +20994,7 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.0" } } } @@ -20714,9 +21004,9 @@ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", "integrity": "sha512-iUn0NcRULlDGtqNLN1Jxmzayk8ogm7NToldASyZBpM2qggbphjXzNOiw3piN8tgz+e/DRs6X5gAzFwTI6BCRcg==", "requires": { - "assert-plus": "0.2.0", - "jsprim": "1.4.0", - "sshpk": "1.13.1" + "assert-plus": "^0.2.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, "https-browserify": { @@ -20757,7 +21047,7 @@ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", "integrity": "sha512-aqwDFWSgSgfRaEwao5lg5KEcVd/2a+D1rvoG7NdilmYz0NwRk6StWpWdz/Hpk34MKPpx7s8XxUqimfcQK6gGlg==", "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, "indexes-of": { @@ -20775,8 +21065,8 @@ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -20788,19 +21078,19 @@ "version": "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz", "integrity": "sha512-bOetEz5+/WpgaW4D1NYOk1aD+JCqRjqu/FwRFgnIfiP7FC/zinsrfyO1vlS3nyH/R7S0IH3BIHBu4DBIDSqiGQ==", "requires": { - "ansi-escapes": "1.4.0", - "ansi-regex": "2.1.1", - "chalk": "1.1.3", - "cli-cursor": "1.0.2", - "cli-width": "2.1.0", - "figures": "1.7.0", - "lodash": "4.17.4", - "readline2": "1.0.1", - "run-async": "0.1.0", - "rx-lite": "3.1.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "through": "2.3.8" + "ansi-escapes": "^1.1.0", + "ansi-regex": "^2.0.0", + "chalk": "^1.0.0", + "cli-cursor": "^1.0.1", + "cli-width": "^2.0.0", + "figures": "^1.3.5", + "lodash": "^4.3.0", + "readline2": "^1.0.1", + "run-async": "^0.1.0", + "rx-lite": "^3.1.2", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.0", + "through": "^2.3.6" } }, "interpret": { @@ -20813,7 +21103,7 @@ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", "integrity": "sha512-FUiAFCOgp7bBzHfa/fK+Uc/vqywvdN9Wg3CiTprLcE630mrhxjDS5MlBkHzeI6+bC/6bq9VX/hxBt05fPAT5WA==", "requires": { - "loose-envify": "1.3.1" + "loose-envify": "^1.0.0" } }, "invert-kv": { @@ -20841,7 +21131,7 @@ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", "requires": { - "binary-extensions": "1.8.0" + "binary-extensions": "^1.0.0" } }, "is-buffer": { @@ -20854,7 +21144,7 @@ "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", "integrity": "sha512-C2wz7Juo5pUZTFQVer9c+9b4qw3I5T/CHQxQyhVu7BJel6C22FmsLIWsdseYyOw6xz9Pqy9eJWSkQ7+3iN1HVw==", "requires": { - "builtin-modules": "1.1.1" + "builtin-modules": "^1.0.0" } }, "is-dotfile": { @@ -20867,7 +21157,7 @@ "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", "integrity": "sha512-0EygVC5qPvIyb+gSz7zdD5/AAoS6Qrx1e//6N4yv4oNm30kqvdmG66oZFWVlQHUWe5OjP08FuTw2IdT0EOTcYA==", "requires": { - "is-primitive": "2.0.0" + "is-primitive": "^2.0.0" } }, "is-extendable": { @@ -20885,7 +21175,7 @@ "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", "integrity": "sha512-e+gU0KGrlbqjEcV80SAqg4g7PQYOm3/IrdwAJ+kPwHqGhLKhtuTJGGxGtrsc8RXlHt2A8Vlnv+79Vq2B1GQasg==", "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-fullwidth-code-point": { @@ -20893,7 +21183,7 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-glob": { @@ -20901,17 +21191,17 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "is-my-json-valid": { "version": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.0.tgz", "integrity": "sha512-6AFGaggK+pZhYW+jXVPxaDgMuZvq0HbinaSrA9ecxKwg1WVKpchZRs0nRkvMiv+hIOFYeyLQ75RVs6Qs+KFk8Q==", "requires": { - "generate-function": "2.0.0", - "generate-object-property": "1.2.0", - "jsonpointer": "4.0.1", - "xtend": "4.0.1" + "generate-function": "^2.0.0", + "generate-object-property": "^1.1.0", + "jsonpointer": "^4.0.0", + "xtend": "^4.0.0" }, "dependencies": { "xtend": { @@ -20926,7 +21216,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", "integrity": "sha512-QUzH43Gfb9+5yckcrSA0VBDwEtDUchrk4F6tfJZQuNzDJbEDB9cZNzSfXGQ1jqmdDY/kl41lUOWM9syA8z8jlg==", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-path-cwd": { @@ -20939,7 +21229,7 @@ "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz", "integrity": "sha512-XSig+5QTx0ReXCURjvzGsLUFT8V36AjyVkc6axI1r5QT3BMVR0MptnXBNU7iyfn2aQIgm8/vP4h58RVIsL7rEw==", "requires": { - "is-path-inside": "1.0.0" + "is-path-inside": "^1.0.0" } }, "is-path-inside": { @@ -20947,7 +21237,7 @@ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz", "integrity": "sha512-WdiHWLVPHbn+QOQdJXqJS7TtArj7yXvKb8ZyFZ7AaIuW7KOfLLyR5glFAR+b1Q6PhSOTL8lpQvIoV2klU0nE9g==", "requires": { - "path-is-inside": "1.0.2" + "path-is-inside": "^1.0.1" } }, "is-plain-obj": { @@ -20979,7 +21269,7 @@ "version": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.0.0.tgz", "integrity": "sha512-9FcOmO8DNEuvfwr4zahMkx1NNWBG+r8MUz+1t608iNqHEjflcvwl368niaBjuIUug3njonc6loJ6r8ReIfwYbQ==", "requires": { - "tryit": "1.0.3" + "tryit": "^1.0.1" } }, "is-stream": { @@ -20992,7 +21282,7 @@ "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-2.1.0.tgz", "integrity": "sha512-Ya1giYJUkcL/94quj0+XGcmts6cETPBW1MiFz1ReJrnDJ680F52qpAEGAEGU0nq96FRGIGPx6Yo1CyPXcOoyGw==", "requires": { - "html-comment-regex": "1.1.1" + "html-comment-regex": "^1.1.0" } }, "is-typedarray": { @@ -21035,8 +21325,8 @@ "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", "integrity": "sha512-9c4TNAKYXM5PRyVcwUZrF3W09nQ+sO7+jydgs4ZGW9dhsLG2VOlISJABombdQqQRXCwuYG3sYV/puGf5rp0qmA==", "requires": { - "node-fetch": "1.7.1", - "whatwg-fetch": "2.0.3" + "node-fetch": "^1.0.1", + "whatwg-fetch": ">=0.10.0" }, "dependencies": { "whatwg-fetch": { @@ -21056,15 +21346,15 @@ "integrity": "sha512-J76sbGKeLtu7uwW97Ntzb1UvGnpKTDplYa9ROr2gNRhM+SxvlBSG0Ees3TQ8+7ya2UVkzMEeFxhRhEpN68s7Tg==", "requires": { "character-parser": "1.2.1", - "clean-css": "3.4.28", - "commander": "2.6.0", - "constantinople": "3.0.2", + "clean-css": "^3.1.9", + "commander": "~2.6.0", + "constantinople": "~3.0.1", "jstransformer": "0.0.2", - "mkdirp": "0.5.1", + "mkdirp": "~0.5.0", "transformers": "2.1.0", - "uglify-js": "2.8.29", - "void-elements": "2.0.1", - "with": "4.0.3" + "uglify-js": "^2.4.19", + "void-elements": "~2.0.1", + "with": "~4.0.0" }, "dependencies": { "clean-css": { @@ -21072,8 +21362,8 @@ "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-3.4.28.tgz", "integrity": "sha512-aTWyttSdI2mYi07kWqHi24NUU9YlELFKGOAgFzZjDN1064DMAOy2FBuoyGmkKRlXkbpXd0EVHmiVkbKhKoirTw==", "requires": { - "commander": "2.8.1", - "source-map": "0.4.4" + "commander": "2.8.x", + "source-map": "0.4.x" }, "dependencies": { "commander": { @@ -21081,7 +21371,7 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz", "integrity": "sha512-+pJLBFVk+9ZZdlAOB5WuIElVPPth47hILFkmGym57aq8kwxsowvByvB0DHs1vQAhyMZzdcpTtF0VDKGkSDR4ZQ==", "requires": { - "graceful-readlink": "1.0.1" + "graceful-readlink": ">= 1.0.0" } } } @@ -21096,9 +21386,9 @@ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", "integrity": "sha512-qLq/4y2pjcU3vhlhseXGGJ7VbFO4pBANu0kwl8VCa9KEI0V8VfZIx2Fy3w01iSTA/pGwKZSmu/+I4etLNDdt5w==", "requires": { - "source-map": "0.5.6", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" }, "dependencies": { "source-map": { @@ -21114,22 +21404,22 @@ "version": "https://registry.npmjs.org/jade-html-loader/-/jade-html-loader-0.0.3.tgz", "integrity": "sha512-Kxp0Pc9Uv2qX9Rj7awHKhcX8JIoEKCaAWm/Q4xMeO8o9LfWwdi8Q6RZDcCBUuoE4PaChYhGPSbz0pxzvxvVaHA==", "requires": { - "loader-utils": "0.2.17" + "loader-utils": "0.2.x" } }, "jade-loader": { "version": "https://registry.npmjs.org/jade-loader/-/jade-loader-0.8.0.tgz", "integrity": "sha512-Y6+6CVfLj6+kniWIQjk5QPosoG2qz9Hh2OMQnvwYFpaavcnvu1OudSgZHVjMC2ioG9JBWJspT/t/H6g53M2DWw==", "requires": { - "loader-utils": "0.2.17" + "loader-utils": "~0.2.5" } }, "jade-react-loader": { "version": "https://registry.npmjs.org/jade-react-loader/-/jade-react-loader-1.0.2.tgz", "integrity": "sha512-HD4/Ri6J/cEKLdsWLKS3/R1rcYYehXrBENs4fBVPKBokAhSXDghsxqlqk5YOsk0n1ugEKb6G5/bZq4jEJd9FIA==", "requires": { - "loader-utils": "0.2.17", - "react-jade": "2.5.0" + "loader-utils": "^0.2.9", + "react-jade": "^2.4.0" } }, "js-base64": { @@ -21152,8 +21442,8 @@ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz", "integrity": "sha512-eIlkGty7HGmntbV6P/ZlAsoncFLGsNoM27lkTzS+oneY/EiNhj+geqD9ezg/ip+SW6Var0BJU2JtV0vEUZpWVQ==", "requires": { - "argparse": "1.0.9", - "esprima": "2.7.3" + "argparse": "^1.0.7", + "esprima": "^2.6.0" }, "dependencies": { "esprima": { @@ -21174,7 +21464,7 @@ "resolved": "https://registry.npmjs.org/jsdelivr-cdn-data/-/jsdelivr-cdn-data-0.1.1.tgz", "integrity": "sha512-LvHc5bfu/aoSrcwxQzAbZz0rY/3IxRhcwdDTpjSSEAYBa7exvzBqBQ1joVU0DOYneDia8u9J1TKe2jXC0A2ZsA==", "requires": { - "semver": "2.2.1" + "semver": "~2.2.1" }, "dependencies": { "semver": { @@ -21209,7 +21499,7 @@ "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", "integrity": "sha512-i/J297TW6xyj7sDFa7AmBPkQvLIxWr2kKPWI26tXydnZrzVAocNqn5DMNT1Mzk0vit1V5UkRM7C1KdVNp7Lmcg==", "requires": { - "jsonify": "0.0.0" + "jsonify": "~0.0.0" } }, "json-stringify-safe": { @@ -21237,7 +21527,7 @@ "resolved": "https://registry.npmjs.org/jsonp/-/jsonp-0.0.4.tgz", "integrity": "sha512-Pyo6SxnTXngwXJbpZkv+936u4Pq3BGZ5tuA77rLLppWQC09KjBsopGsD7uQZmCCaXjLx5C/XqksUh0yGyr4wog==", "requires": { - "debug": "2.6.8" + "debug": "*" } }, "jsonpointer": { @@ -21268,11 +21558,11 @@ "resolved": "https://registry.npmjs.org/jstransform/-/jstransform-11.0.3.tgz", "integrity": "sha512-LGm87w0A8E92RrcXt94PnNHkFqHmgDy3mKHvNZOG7QepKCTCH/VB6S+IEN+bT4uLN3gVpOT0vvOOVd96osG71g==", "requires": { - "base62": "1.2.0", - "commoner": "0.10.8", - "esprima-fb": "15001.1.0-dev-harmony-fb", - "object-assign": "2.1.1", - "source-map": "0.4.4" + "base62": "^1.1.0", + "commoner": "^0.10.1", + "esprima-fb": "^15001.1.0-dev-harmony-fb", + "object-assign": "^2.0.0", + "source-map": "^0.4.2" } }, "jstransformer": { @@ -21280,8 +21570,8 @@ "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-0.0.2.tgz", "integrity": "sha512-b7tmf91j1ChMuYhwbPBnNgB62dmHuqiHpOdd6QLKzde8HydZqm+ud3qWreGWecSxPBFFNOf1Ozjx0xo2plFdHA==", "requires": { - "is-promise": "2.1.0", - "promise": "6.1.0" + "is-promise": "^2.0.0", + "promise": "^6.0.1" }, "dependencies": { "asap": { @@ -21294,7 +21584,7 @@ "resolved": "https://registry.npmjs.org/promise/-/promise-6.1.0.tgz", "integrity": "sha512-O+uwGKreKNKkshzZv2P7N64lk6EP17iXBn0PbUnNQhk+Q0AHLstiTrjkx3v5YBd3cxUe7Sq6KyRhl/A0xUjk7Q==", "requires": { - "asap": "1.0.0" + "asap": "~1.0.0" } } } @@ -21304,7 +21594,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "requires": { - "is-buffer": "1.1.5" + "is-buffer": "^1.1.5" } }, "lazy-cache": { @@ -21317,7 +21607,7 @@ "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", "integrity": "sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw==", "requires": { - "invert-kv": "1.0.0" + "invert-kv": "^1.0.0" } }, "levn": { @@ -21325,8 +21615,8 @@ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", "requires": { - "prelude-ls": "1.1.2", - "type-check": "0.3.2" + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" } }, "load-json-file": { @@ -21334,11 +21624,11 @@ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", "integrity": "sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==", "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" } }, "loader-utils": { @@ -21346,10 +21636,10 @@ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", "integrity": "sha512-tiv66G0SmiOx+pLWMtGEkfSEejxvb6N6uRrQjfWJIT79W9GMpgKeCAmm9aVBKtd4WEgntciI8CsGqjpDoCWJug==", "requires": { - "big.js": "3.1.3", - "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" }, "dependencies": { "object-assign": { @@ -21374,8 +21664,8 @@ "resolved": "https://registry.npmjs.org/lodash._createcompounder/-/lodash._createcompounder-3.0.0.tgz", "integrity": "sha512-D6HOkfALqHY2Qe/CXda7I1SVo8714LG1Ayo7VP2RQs8oha08eXSbAYnTg/fxtaOI7RX6GVIAJ2Gw3rkr02HXhQ==", "requires": { - "lodash.deburr": "3.2.0", - "lodash.words": "3.2.0" + "lodash.deburr": "^3.0.0", + "lodash.words": "^3.0.0" } }, "lodash._root": { @@ -21393,7 +21683,7 @@ "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-3.0.1.tgz", "integrity": "sha512-9wNcnz9dBpQ4laWW4je9Lqtjaj3n2QrWLK8fVTjSRfQlUcIrqYxbKxsiDtXV80abRfdlnLLvtOGMd6B+brC3AA==", "requires": { - "lodash._createcompounder": "3.0.0" + "lodash._createcompounder": "^3.0.0" } }, "lodash.clonedeep": { @@ -21406,7 +21696,7 @@ "resolved": "https://registry.npmjs.org/lodash.deburr/-/lodash.deburr-3.2.0.tgz", "integrity": "sha512-MGjyYe8cBGUmPnE+AeeRychzUak8pUIe48Zli95iExeCC3qgRzEf3DiI3A/i5KnSWPPmaB2samsdm6gvACmCTg==", "requires": { - "lodash._root": "3.0.1" + "lodash._root": "^3.0.0" } }, "lodash.memoize": { @@ -21424,7 +21714,7 @@ "resolved": "https://registry.npmjs.org/lodash.words/-/lodash.words-3.2.0.tgz", "integrity": "sha512-ZsfO33BwfQ0Eq3YDX7TJOwRC9/owKfKaCyKm5bWxBePVf8kKhlJBkOSGrj4+NM6XU07Mq2lYnyJGZ8zyeu/m3Q==", "requires": { - "lodash._root": "3.0.1" + "lodash._root": "^3.0.0" } }, "lolex": { @@ -21442,7 +21732,7 @@ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", "integrity": "sha512-iG/U770U9HaHmy0u+fSyxSIclZ3d9WPFtGjV2drWW0SthBnQ1Fa/SCKIaGLAVwYzrBGEPx9gen047er+MCUgnQ==", "requires": { - "js-tokens": "3.0.2" + "js-tokens": "^3.0.0" } }, "loud-rejection": { @@ -21450,8 +21740,8 @@ "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", "integrity": "sha512-RPNliZOFkqFumDhvYqOaNY4Uz9oJM2K9tC6JWsJJsNdhuONW4LQHRBpb0qf4pJApVffI5N39SwzWZJuEhfd7eQ==", "requires": { - "currently-unhandled": "0.4.1", - "signal-exit": "3.0.2" + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" } }, "lower-case": { @@ -21464,8 +21754,8 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, "macaddress": { @@ -21493,8 +21783,8 @@ "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.3.0.tgz", "integrity": "sha512-QTNXnl79X97kZ9jJk/meJrtDuvgvRakX5LU7HZW1L7MsXHuSTwoMIzN9tOLLH3Xfsj/gbsSqX/ovnsqz246zKQ==", "requires": { - "errno": "0.1.4", - "readable-stream": "2.3.3" + "errno": "^0.1.3", + "readable-stream": "^2.0.1" }, "dependencies": { "isarray": { @@ -21507,13 +21797,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.0.3", + "util-deprecate": "~1.0.1" } }, "string_decoder": { @@ -21521,7 +21811,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "~5.1.0" } } } @@ -21531,16 +21821,16 @@ "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", "integrity": "sha512-TNdwZs0skRlpPpCUK25StC4VH+tP5GgeY1HQOOGP+lQ2xtdkN2VtT/5tiX9k3IWpkBPV9b3LsAWXn4GGi/PrSA==", "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": { @@ -21570,19 +21860,19 @@ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", "integrity": "sha512-LnU2XFEk9xxSJ6rfgAry/ty5qwUTyHYOBU0g4R6tIw5ljwgGIBmiKhRWLw5NpMOnrgUNcDJ4WMp8rl3sYVHLNA==", "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.3" + "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" } }, "mime": { @@ -21600,7 +21890,7 @@ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz", "integrity": "sha512-PjleM8evsL+OvsuE6EXom+8QAcSYALjmw+vYFqH8I+/+wNlewVgbM7/O1wcdCVL/ta8SC6l6BEK7A0/mZywpfg==", "requires": { - "mime-db": "1.27.0" + "mime-db": "~1.27.0" } }, "minimatch": { @@ -21608,7 +21898,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "brace-expansion": "1.1.8" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -21654,7 +21944,7 @@ "resolved": "https://registry.npmjs.org/ncname/-/ncname-1.0.0.tgz", "integrity": "sha512-VLkyYr2kmPzVzrmkER9i13RJIdGbjNr855gfh2VvuboO1eYnb9k+nFS+JygfSVgtbo/HMpLz5pEYLK4Xjy7XGg==", "requires": { - "xml-char-classes": "1.0.0" + "xml-char-classes": "^1.0.0" } }, "negotiator": { @@ -21672,9 +21962,9 @@ "resolved": "https://registry.npmjs.org/ngreact/-/ngreact-0.2.0.tgz", "integrity": "sha512-Rdg6caMs/7yLv7WG6rhAWVRklChH+sNr3NuG1ZUujRlvJcb1b+RNP2V5+w1eisO3JGvwlfckY7c2jr1SmD0VfA==", "requires": { - "angular": "1.6.5", - "react": "0.14.9", - "react-dom": "0.14.9" + "angular": "<2.0.0", + "react": ">=0.14.0", + "react-dom": ">=0.14.0" } }, "no-case": { @@ -21682,7 +21972,7 @@ "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.1.tgz", "integrity": "sha512-vrocvkI2VAPhpucX5FveFqhANk9Ef5UyJjRLNSlDGdnC/hLD2VVMjk5cQd8RJ1d7MumA244OWRPN5bHu8Wp6dQ==", "requires": { - "lower-case": "1.1.4" + "lower-case": "^1.1.1" } }, "node-bourbon": { @@ -21690,7 +21980,7 @@ "resolved": "https://registry.npmjs.org/node-bourbon/-/node-bourbon-4.2.8.tgz", "integrity": "sha512-T00WCJch3/1X74Athq1DGs3n2S0cV8yv28/AN+PTS48CHmGpu0clcsW8bFcGTsavYoILMGmgQlTwSUISgEr2qQ==", "requires": { - "bourbon": "4.3.4" + "bourbon": "^4.2.6" } }, "node-fetch": { @@ -21698,8 +21988,8 @@ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.1.tgz", "integrity": "sha512-j8XsFGCLw79vWXkZtMSmmLaOk9z5SQ9bV/tkbZVCqvgwzrjAGq66igobLofHtF63NvMTp2WjytpsNTGKa+XRIQ==", "requires": { - "encoding": "0.1.12", - "is-stream": "1.1.0" + "encoding": "^0.1.11", + "is-stream": "^1.0.1" } }, "node-gyp": { @@ -21707,19 +21997,19 @@ "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.6.2.tgz", "integrity": "sha512-H2jweTVLBshL/W6sWru9f/GmquoMyh9zjyfsznfX00q0S5XKLrrD1M+pyowuXzpwaOclU7eo37pOaQklbFDQBw==", "requires": { - "fstream": "1.0.11", - "glob": "7.1.2", - "graceful-fs": "4.1.11", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "nopt": "3.0.6", - "npmlog": "4.1.2", - "osenv": "0.1.4", - "request": "2.81.0", - "rimraf": "2.6.1", - "semver": "5.3.0", - "tar": "2.2.1", - "which": "1.2.14" + "fstream": "^1.0.0", + "glob": "^7.0.3", + "graceful-fs": "^4.1.2", + "minimatch": "^3.0.2", + "mkdirp": "^0.5.0", + "nopt": "2 || 3", + "npmlog": "0 || 1 || 2 || 3 || 4", + "osenv": "0", + "request": "2", + "rimraf": "2", + "semver": "~5.3.0", + "tar": "^2.0.0", + "which": "1" }, "dependencies": { "glob": { @@ -21727,12 +22017,12 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "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" } } } @@ -21742,28 +22032,28 @@ "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-0.7.0.tgz", "integrity": "sha512-V0EeBff5/nauAta4yGYMdn/CYXpn2KYcE8r6rwU9qJDXG6wMrBhtWVfoKWphSvsnX+mZk6DzaGSO+Yz/MGBAGQ==", "requires": { - "assert": "1.4.1", - "browserify-zlib": "0.1.4", - "buffer": "4.9.1", - "console-browserify": "1.1.0", - "constants-browserify": "1.0.0", + "assert": "^1.1.1", + "browserify-zlib": "^0.1.4", + "buffer": "^4.9.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", "crypto-browserify": "3.3.0", - "domain-browser": "1.1.7", - "events": "1.1.1", + "domain-browser": "^1.1.1", + "events": "^1.0.0", "https-browserify": "0.0.1", - "os-browserify": "0.2.1", + "os-browserify": "^0.2.0", "path-browserify": "0.0.0", - "process": "0.11.10", - "punycode": "1.4.1", - "querystring-es3": "0.2.1", - "readable-stream": "2.3.3", - "stream-browserify": "2.0.1", - "stream-http": "2.7.2", - "string_decoder": "0.10.31", - "timers-browserify": "2.0.2", + "process": "^0.11.0", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.0.5", + "stream-browserify": "^2.0.1", + "stream-http": "^2.3.1", + "string_decoder": "^0.10.25", + "timers-browserify": "^2.0.2", "tty-browserify": "0.0.0", - "url": "0.11.0", - "util": "0.10.3", + "url": "^0.11.0", + "util": "^0.10.3", "vm-browserify": "0.0.4" }, "dependencies": { @@ -21777,13 +22067,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.0.3", + "util-deprecate": "~1.0.1" }, "dependencies": { "string_decoder": { @@ -21791,7 +22081,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "~5.1.0" } } } @@ -21804,29 +22094,29 @@ "integrity": "sha512-lyjB1kBv1iO3hDq3ZicExcR4zKiDr58v1IvcAahq90TD3mE+Lk7LHC7BkJ8lgMxbB2HVZxd/LV1fJqqUv7Xf1A==", "requires": { "bourbon-neat": "1.7.2", - "node-bourbon": "4.2.8" + "node-bourbon": "^4.2.3" } }, "node-sass": { "version": "https://registry.npmjs.org/node-sass/-/node-sass-3.13.1.tgz", "integrity": "sha512-RKe1FM3F8uSIU8ZBRwjUsnV28rysWeWSik156fppyPss0/7B0KfLwJ7Ds5t2wzG0yyON/RbTceHHgMHJP1jvUw==", "requires": { - "async-foreach": "0.1.3", - "chalk": "1.1.3", - "cross-spawn": "3.0.1", - "gaze": "1.1.2", - "get-stdin": "4.0.1", - "glob": "7.1.2", - "in-publish": "2.0.0", - "lodash.assign": "4.2.0", - "lodash.clonedeep": "4.5.0", - "meow": "3.7.0", - "mkdirp": "0.5.1", - "nan": "2.6.2", - "node-gyp": "3.6.2", - "npmlog": "4.1.2", - "request": "2.81.0", - "sass-graph": "2.2.4" + "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.assign": "^4.2.0", + "lodash.clonedeep": "^4.3.2", + "meow": "^3.7.0", + "mkdirp": "^0.5.1", + "nan": "^2.3.2", + "node-gyp": "^3.3.1", + "npmlog": "^4.0.0", + "request": "^2.61.0", + "sass-graph": "^2.1.1" }, "dependencies": { "glob": { @@ -21834,12 +22124,12 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "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" } } } @@ -21849,8 +22139,8 @@ "resolved": "https://registry.npmjs.org/nomnom/-/nomnom-1.8.1.tgz", "integrity": "sha512-5s0JxqhDx9/rksG2BTMVN1enjWSvPidpoSgViZU4ZXULyTe+7jxcCRLB6f42Z0l1xYJpleCBtSyY6Lwg3uu5CQ==", "requires": { - "chalk": "0.4.0", - "underscore": "1.6.0" + "chalk": "~0.4.0", + "underscore": "~1.6.0" }, "dependencies": { "ansi-styles": { @@ -21863,9 +22153,9 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.4.0.tgz", "integrity": "sha512-sQfYDlfv2DGVtjdoQqxS0cEZDroyG8h6TamA6rvxwlrU5BaSLDx9xhatBYl2pxZ7gmpNaPFVwBtdGdu5rQ+tYQ==", "requires": { - "ansi-styles": "1.0.0", - "has-color": "0.1.7", - "strip-ansi": "0.1.1" + "ansi-styles": "~1.0.0", + "has-color": "~0.1.0", + "strip-ansi": "~0.1.0" } }, "strip-ansi": { @@ -21880,7 +22170,7 @@ "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", "integrity": "sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg==", "requires": { - "abbrev": "1.1.0" + "abbrev": "1" } }, "normalize-package-data": { @@ -21888,10 +22178,10 @@ "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==", "requires": { - "hosted-git-info": "2.5.0", - "is-builtin-module": "1.0.0", - "semver": "5.3.0", - "validate-npm-package-license": "3.0.1" + "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": { @@ -21899,7 +22189,7 @@ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", "requires": { - "remove-trailing-separator": "1.0.2" + "remove-trailing-separator": "^1.0.1" } }, "normalize-range": { @@ -21912,10 +22202,10 @@ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", "integrity": "sha512-A48My/mtCklowHBlI8Fq2jFWK4tX4lJ5E6ytFsSOq1fzpvT0SQSgKhSg7lN5c2uYFOrUAOQp6zhhJnpp1eMloQ==", "requires": { - "object-assign": "4.1.1", - "prepend-http": "1.0.4", - "query-string": "4.3.4", - "sort-keys": "1.1.2" + "object-assign": "^4.0.1", + "prepend-http": "^1.0.0", + "query-string": "^4.1.0", + "sort-keys": "^1.0.0" }, "dependencies": { "object-assign": { @@ -21930,10 +22220,10 @@ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", "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" } }, "nth-check": { @@ -21941,7 +22231,7 @@ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz", "integrity": "sha512-lTD1gl0OIJzVFadNdZ1Tc+Z1vqRlYr6syYgCvhtoOxl5T3c8mufKaJ0XEiaJ+HQSYbCaSH/NP5m5p+so/nTOOA==", "requires": { - "boolbase": "1.0.0" + "boolbase": "~1.0.0" } }, "num2fraction": { @@ -21979,8 +22269,8 @@ "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", "integrity": "sha512-UiAM5mhmIuKLsOvrL+B0U2d1hXHF3bFYWIuH1LMpuV2EJEHG1Ntz06PgLEHjm6VFd87NpH8rastvPoyv6UW2fA==", "requires": { - "for-own": "0.1.5", - "is-extendable": "0.1.1" + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" } }, "on-finished": { @@ -22001,7 +22291,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "onetime": { @@ -22019,19 +22309,19 @@ "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.3.7.tgz", "integrity": "sha512-TCx0dXQzVtSCg2OgY/bO9hjM9cV4XYx09TVK+s3+FhkjT6LovsLe+pPMzpWf+6yXK/hUizs2gUoTw3jHM0VaTQ==", "requires": { - "wordwrap": "0.0.3" + "wordwrap": "~0.0.2" } }, "optionator": { "version": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", "integrity": "sha512-oCOQ8AIC2ciLy/sE2ehafRBleBgDLvzGhBRRev87sP7ovnbvQfqpc3XFI0DhHey2OfVoNV91W+GPC6B3540/5Q==", "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" }, "dependencies": { "wordwrap": { @@ -22046,7 +22336,7 @@ "resolved": "https://registry.npmjs.org/original/-/original-1.0.0.tgz", "integrity": "sha512-uSGdLwcsvxUcF9GuxWpO3Aji9aWbuvUvVkjOgc1QF5FUxa1dh3uwLW7IyBilw5teR3odBp16PPO2tGKyCsDdfw==", "requires": { - "url-parse": "1.0.5" + "url-parse": "1.0.x" }, "dependencies": { "url-parse": { @@ -22054,8 +22344,8 @@ "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.0.5.tgz", "integrity": "sha512-NoHik+qrUN108kCFLzM/7M6+GO1BohhYsi1lHV5lkB2VmzIl8fdGTmW6uTy3ivNlO5cu/YLq1JcVc0RKT6SyzQ==", "requires": { - "querystringify": "0.0.4", - "requires-port": "1.0.0" + "querystringify": "0.0.x", + "requires-port": "1.0.x" } } } @@ -22075,7 +22365,7 @@ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", "integrity": "sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g==", "requires": { - "lcid": "1.0.0" + "lcid": "^1.0.0" } }, "os-tmpdir": { @@ -22088,8 +22378,8 @@ "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", "integrity": "sha512-W6FhbLxEWdiyX2/fCl2YBZUJOYWaCHJa+jJwUVMX0iFYJmwyd0uzKx4NxFdj3xo9C0pumQ6G/fvd1MbNhsqQbQ==", "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" } }, "pako": { @@ -22102,7 +22392,7 @@ "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", "integrity": "sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w==", "requires": { - "no-case": "2.3.1" + "no-case": "^2.2.0" } }, "parse-glob": { @@ -22110,10 +22400,10 @@ "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", "integrity": "sha512-FC5TeK0AwXzq3tUBFtH74naWkPQCEWs4K+xMxWZBlKDWu0bVHXGZa+KKqxKidd7xwhdZ19ZNuF2uO1M/r196HA==", "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": { @@ -22121,7 +22411,7 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", "requires": { - "error-ex": "1.3.1" + "error-ex": "^1.2.0" } }, "parseurl": { @@ -22139,7 +22429,7 @@ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==", "requires": { - "pinkie-promise": "2.0.1" + "pinkie-promise": "^2.0.0" } }, "path-is-absolute": { @@ -22167,9 +22457,9 @@ "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", "integrity": "sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==", "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" } }, "pbkdf2-compat": { @@ -22202,7 +22492,7 @@ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } }, "pkg-dir": { @@ -22210,7 +22500,7 @@ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", "integrity": "sha512-c6pv3OE78mcZ92ckebVDqg0aWSoKhOTbwCV6qbCWMk546mAL9pZln0+QsN/yQ7fkucd4+yJPLrCBXNt8Ruk+Eg==", "requires": { - "find-up": "1.1.2" + "find-up": "^1.0.0" } }, "pluralize": { @@ -22222,10 +22512,10 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz", "integrity": "sha512-0n4/a5Exgod60L1TjXAYJYqb8kwohUsXqUxYKOUqpRL8h2xL+vhQEuxxkvnWz8PtQiX1Qon3Xfzkx8yeJBBLLw==", "requires": { - "chalk": "1.1.3", - "js-base64": "2.1.9", - "source-map": "0.5.6", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" }, "dependencies": { "source-map": { @@ -22238,7 +22528,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==", "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -22248,9 +22538,9 @@ "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-5.3.1.tgz", "integrity": "sha512-iBcptYFq+QUh9gzP7ta2btw50o40s4uLI4UDVgd5yRAZtUDWc5APdl5yQDd2h/TyiZNbJrv0HiYhT102CMgN7Q==", "requires": { - "postcss": "5.2.17", - "postcss-message-helpers": "2.0.0", - "reduce-css-calc": "1.3.0" + "postcss": "^5.0.2", + "postcss-message-helpers": "^2.0.0", + "reduce-css-calc": "^1.2.6" } }, "postcss-colormin": { @@ -22258,9 +22548,9 @@ "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-2.2.2.tgz", "integrity": "sha512-XXitQe+jNNPf+vxvQXIQ1+pvdQKWKgkx8zlJNltcMEmLma1ypDRDQwlLt+6cP26fBreihNhZxohh1rcgCH2W5w==", "requires": { - "colormin": "1.1.2", - "postcss": "5.2.17", - "postcss-value-parser": "3.3.0" + "colormin": "^1.0.5", + "postcss": "^5.0.13", + "postcss-value-parser": "^3.2.3" } }, "postcss-convert-values": { @@ -22268,8 +22558,8 @@ "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz", "integrity": "sha512-SE7mf25D3ORUEXpu3WUqQqy0nCbMuM5BEny+ULE/FXdS/0UMA58OdzwvzuHJRpIFlk1uojt16JhaEogtP6W2oA==", "requires": { - "postcss": "5.2.17", - "postcss-value-parser": "3.3.0" + "postcss": "^5.0.11", + "postcss-value-parser": "^3.1.2" } }, "postcss-discard-comments": { @@ -22277,7 +22567,7 @@ "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz", "integrity": "sha512-yGbyBDo5FxsImE90LD8C87vgnNlweQkODMkUZlDVM/CBgLr9C5RasLGJxxh9GjVOBeG8NcCMatoqI1pXg8JNXg==", "requires": { - "postcss": "5.2.17" + "postcss": "^5.0.14" } }, "postcss-discard-duplicates": { @@ -22285,7 +22575,7 @@ "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz", "integrity": "sha512-+lk5W1uqO8qIUTET+UETgj9GWykLC3LOldr7EehmymV0Wu36kyoHimC4cILrAAYpHQ+fr4ypKcWcVNaGzm0reA==", "requires": { - "postcss": "5.2.17" + "postcss": "^5.0.4" } }, "postcss-discard-empty": { @@ -22293,7 +22583,7 @@ "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz", "integrity": "sha512-IBFoyrwk52dhF+5z/ZAbzq5Jy7Wq0aLUsOn69JNS+7YeuyHaNzJwBIYE0QlUH/p5d3L+OON72Fsexyb7OK/3og==", "requires": { - "postcss": "5.2.17" + "postcss": "^5.0.14" } }, "postcss-discard-overridden": { @@ -22301,7 +22591,7 @@ "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz", "integrity": "sha512-IyKoDL8QNObOiUc6eBw8kMxBHCfxUaERYTUe2QF8k7j/xiirayDzzkmlR6lMQjrAM1p1DDRTvWrS7Aa8lp6/uA==", "requires": { - "postcss": "5.2.17" + "postcss": "^5.0.16" } }, "postcss-discard-unused": { @@ -22309,8 +22599,8 @@ "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz", "integrity": "sha512-nCbFNfqYAbKCw9J6PSJubpN9asnrwVLkRDFc4KCwyUEdOtM5XDE/eTW3OpqHrYY1L4fZxgan7LLRAAYYBzwzrg==", "requires": { - "postcss": "5.2.17", - "uniqs": "2.0.0" + "postcss": "^5.0.14", + "uniqs": "^2.0.0" } }, "postcss-filter-plugins": { @@ -22318,8 +22608,8 @@ "resolved": "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.2.tgz", "integrity": "sha512-tD/LpXw5VuGpLuWVLYd7lGQ4phLOUzJjw1gqRDojgxTACNIAXlD3M9KvdgGSpZ3yfMbyYly0VZmyCVT/c9k0wg==", "requires": { - "postcss": "5.2.17", - "uniqid": "4.1.1" + "postcss": "^5.0.4", + "uniqid": "^4.0.0" } }, "postcss-merge-idents": { @@ -22327,9 +22617,9 @@ "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz", "integrity": "sha512-9DHmfCZ7/hNHhIKnNkz4CU0ejtGen5BbTRJc13Z2uHfCedeCUsK2WEQoAJRBL+phs68iWK6Qf8Jze71anuysWA==", "requires": { - "has": "1.0.1", - "postcss": "5.2.17", - "postcss-value-parser": "3.3.0" + "has": "^1.0.1", + "postcss": "^5.0.10", + "postcss-value-parser": "^3.1.1" } }, "postcss-merge-longhand": { @@ -22337,7 +22627,7 @@ "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz", "integrity": "sha512-ma7YvxjdLQdifnc1HFsW/AW6fVfubGyR+X4bE3FOSdBVMY9bZjKVdklHT+odknKBB7FSCfKIHC3yHK7RUAqRPg==", "requires": { - "postcss": "5.2.17" + "postcss": "^5.0.4" } }, "postcss-merge-rules": { @@ -22345,11 +22635,11 @@ "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz", "integrity": "sha512-Wgg2FS6W3AYBl+5L9poL6ZUISi5YzL+sDCJfM7zNw/Q1qsyVQXXZ2cbVui6mu2cYJpt1hOKCGj1xA4mq/obz/Q==", "requires": { - "browserslist": "1.7.7", - "caniuse-api": "1.6.1", - "postcss": "5.2.17", - "postcss-selector-parser": "2.2.3", - "vendors": "1.0.1" + "browserslist": "^1.5.2", + "caniuse-api": "^1.5.2", + "postcss": "^5.0.4", + "postcss-selector-parser": "^2.2.2", + "vendors": "^1.0.0" } }, "postcss-message-helpers": { @@ -22362,9 +22652,9 @@ "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz", "integrity": "sha512-vFSPzrJhNe6/8McOLU13XIsERohBJiIFFuC1PolgajOZdRWqRgKITP/A4Z/n4GQhEmtbxmO9NDw3QLaFfE1dFQ==", "requires": { - "object-assign": "4.1.1", - "postcss": "5.2.17", - "postcss-value-parser": "3.3.0" + "object-assign": "^4.0.1", + "postcss": "^5.0.4", + "postcss-value-parser": "^3.0.2" }, "dependencies": { "object-assign": { @@ -22379,8 +22669,8 @@ "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz", "integrity": "sha512-DZhT0OE+RbVqVyGsTIKx84rU/5cury1jmwPa19bViqYPQu499ZU831yMzzsyC8EhiZVd73+h5Z9xb/DdaBpw7Q==", "requires": { - "postcss": "5.2.17", - "postcss-value-parser": "3.3.0" + "postcss": "^5.0.12", + "postcss-value-parser": "^3.3.0" } }, "postcss-minify-params": { @@ -22388,10 +22678,10 @@ "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz", "integrity": "sha512-hhJdMVgP8vasrHbkKAk+ab28vEmPYgyuDzRl31V3BEB3QOR3L5TTIVEWLDNnZZ3+fiTi9d6Ker8GM8S1h8p2Ow==", "requires": { - "alphanum-sort": "1.0.2", - "postcss": "5.2.17", - "postcss-value-parser": "3.3.0", - "uniqs": "2.0.0" + "alphanum-sort": "^1.0.1", + "postcss": "^5.0.2", + "postcss-value-parser": "^3.0.2", + "uniqs": "^2.0.0" } }, "postcss-minify-selectors": { @@ -22399,10 +22689,10 @@ "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz", "integrity": "sha512-e13vxPBSo3ZaPne43KVgM+UETkx3Bs4/Qvm6yXI9HQpQp4nyb7HZ0gKpkF+Wn2x+/dbQ+swNpCdZSbMOT7+TIA==", "requires": { - "alphanum-sort": "1.0.2", - "has": "1.0.1", - "postcss": "5.2.17", - "postcss-selector-parser": "2.2.3" + "alphanum-sort": "^1.0.2", + "has": "^1.0.1", + "postcss": "^5.0.14", + "postcss-selector-parser": "^2.0.0" } }, "postcss-modules-extract-imports": { @@ -22410,7 +22700,7 @@ "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz", "integrity": "sha512-zF9+UIEvtpeqMGxhpeT9XaIevQSrBBCz9fi7SwfkmjVacsSj8DY5eFVgn+wY8I9vvdDDwK5xC8Myq4UkoLFIkA==", "requires": { - "postcss": "6.0.6" + "postcss": "^6.0.1" }, "dependencies": { "ansi-styles": { @@ -22418,7 +22708,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.1.0.tgz", "integrity": "sha512-1jXmDD7l38qjk7yqmpFMLvs94InTmzcupUKdP2N4YjuDy5gNRJc1J5zb3Q/ur6FKxep0GW+2vK2qL82GEAwwCQ==", "requires": { - "color-convert": "1.9.0" + "color-convert": "^1.0.0" } }, "chalk": { @@ -22426,9 +22716,9 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.0.1.tgz", "integrity": "sha512-Mp+FXEI+FrwY/XYV45b2YD3E8i3HwnEAoFcM0qlZzq/RZ9RwWitt2Y/c7cqRAz70U7hfekqx6qNYthuKFO6K0g==", "requires": { - "ansi-styles": "3.1.0", - "escape-string-regexp": "1.0.5", - "supports-color": "4.2.0" + "ansi-styles": "^3.1.0", + "escape-string-regexp": "^1.0.5", + "supports-color": "^4.0.0" } }, "has-flag": { @@ -22441,9 +22731,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.6.tgz", "integrity": "sha512-KkYn44ZVVsqOheFhNxu1XVxmBu6egkdxZdqfxsA1AJGSqpJiCVsC3SWiUq+xn6m/G70V1WDNC/ZH8ccZJTupTQ==", "requires": { - "chalk": "2.0.1", - "source-map": "0.5.6", - "supports-color": "4.2.0" + "chalk": "^2.0.1", + "source-map": "^0.5.6", + "supports-color": "^4.1.0" } }, "source-map": { @@ -22456,7 +22746,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.2.0.tgz", "integrity": "sha512-Ts0Mu/A1S1aZxEJNG88I4Oc9rcZSBFNac5e27yh4j2mqbhZSSzR1Ah79EYwSn9Zuh7lrlGD2cVGzw1RKGzyLSg==", "requires": { - "has-flag": "2.0.0" + "has-flag": "^2.0.0" } } } @@ -22466,8 +22756,8 @@ "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", "integrity": "sha512-X4cquUPIaAd86raVrBwO8fwRfkIdbwFu7CTfEOjiZQHVQwlHRSkTgH5NLDmMm5+1hQO8u6dZ+TOOJDbay1hYpA==", "requires": { - "css-selector-tokenizer": "0.7.0", - "postcss": "6.0.6" + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" }, "dependencies": { "ansi-styles": { @@ -22475,7 +22765,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.1.0.tgz", "integrity": "sha512-1jXmDD7l38qjk7yqmpFMLvs94InTmzcupUKdP2N4YjuDy5gNRJc1J5zb3Q/ur6FKxep0GW+2vK2qL82GEAwwCQ==", "requires": { - "color-convert": "1.9.0" + "color-convert": "^1.0.0" } }, "chalk": { @@ -22483,9 +22773,9 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.0.1.tgz", "integrity": "sha512-Mp+FXEI+FrwY/XYV45b2YD3E8i3HwnEAoFcM0qlZzq/RZ9RwWitt2Y/c7cqRAz70U7hfekqx6qNYthuKFO6K0g==", "requires": { - "ansi-styles": "3.1.0", - "escape-string-regexp": "1.0.5", - "supports-color": "4.2.0" + "ansi-styles": "^3.1.0", + "escape-string-regexp": "^1.0.5", + "supports-color": "^4.0.0" } }, "css-selector-tokenizer": { @@ -22493,9 +22783,9 @@ "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz", "integrity": "sha512-hdt7t8U5UYaieb0BcK+1wosGqzyLQTgy8cvfzwIYk9RLZ2SuMMuIC5rXINM2dBE2aF+5S+4oft7hh/2qY0ahKw==", "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" } }, "has-flag": { @@ -22508,9 +22798,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.6.tgz", "integrity": "sha512-KkYn44ZVVsqOheFhNxu1XVxmBu6egkdxZdqfxsA1AJGSqpJiCVsC3SWiUq+xn6m/G70V1WDNC/ZH8ccZJTupTQ==", "requires": { - "chalk": "2.0.1", - "source-map": "0.5.6", - "supports-color": "4.2.0" + "chalk": "^2.0.1", + "source-map": "^0.5.6", + "supports-color": "^4.1.0" } }, "regexpu-core": { @@ -22518,9 +22808,9 @@ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz", "integrity": "sha512-Ci+lDRlvAElKjFp5keqmVUaJLqZiHywekXhshT6wVUyDObGPdymNPhxBmf38ZVsaUGOnZ3Fot9YzxvoI31ymYw==", "requires": { - "regenerate": "1.3.2", - "regjsgen": "0.2.0", - "regjsparser": "0.1.5" + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" } }, "source-map": { @@ -22533,7 +22823,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.2.0.tgz", "integrity": "sha512-Ts0Mu/A1S1aZxEJNG88I4Oc9rcZSBFNac5e27yh4j2mqbhZSSzR1Ah79EYwSn9Zuh7lrlGD2cVGzw1RKGzyLSg==", "requires": { - "has-flag": "2.0.0" + "has-flag": "^2.0.0" } } } @@ -22543,8 +22833,8 @@ "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", "integrity": "sha512-LTYwnA4C1He1BKZXIx1CYiHixdSe9LWYVKadq9lK5aCCMkoOkFyZ7aigt+srfjlRplJY3gIol6KUNefdMQJdlw==", "requires": { - "css-selector-tokenizer": "0.7.0", - "postcss": "6.0.6" + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" }, "dependencies": { "ansi-styles": { @@ -22552,7 +22842,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.1.0.tgz", "integrity": "sha512-1jXmDD7l38qjk7yqmpFMLvs94InTmzcupUKdP2N4YjuDy5gNRJc1J5zb3Q/ur6FKxep0GW+2vK2qL82GEAwwCQ==", "requires": { - "color-convert": "1.9.0" + "color-convert": "^1.0.0" } }, "chalk": { @@ -22560,9 +22850,9 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.0.1.tgz", "integrity": "sha512-Mp+FXEI+FrwY/XYV45b2YD3E8i3HwnEAoFcM0qlZzq/RZ9RwWitt2Y/c7cqRAz70U7hfekqx6qNYthuKFO6K0g==", "requires": { - "ansi-styles": "3.1.0", - "escape-string-regexp": "1.0.5", - "supports-color": "4.2.0" + "ansi-styles": "^3.1.0", + "escape-string-regexp": "^1.0.5", + "supports-color": "^4.0.0" } }, "css-selector-tokenizer": { @@ -22570,9 +22860,9 @@ "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz", "integrity": "sha512-hdt7t8U5UYaieb0BcK+1wosGqzyLQTgy8cvfzwIYk9RLZ2SuMMuIC5rXINM2dBE2aF+5S+4oft7hh/2qY0ahKw==", "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" } }, "has-flag": { @@ -22585,9 +22875,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.6.tgz", "integrity": "sha512-KkYn44ZVVsqOheFhNxu1XVxmBu6egkdxZdqfxsA1AJGSqpJiCVsC3SWiUq+xn6m/G70V1WDNC/ZH8ccZJTupTQ==", "requires": { - "chalk": "2.0.1", - "source-map": "0.5.6", - "supports-color": "4.2.0" + "chalk": "^2.0.1", + "source-map": "^0.5.6", + "supports-color": "^4.1.0" } }, "regexpu-core": { @@ -22595,9 +22885,9 @@ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz", "integrity": "sha512-Ci+lDRlvAElKjFp5keqmVUaJLqZiHywekXhshT6wVUyDObGPdymNPhxBmf38ZVsaUGOnZ3Fot9YzxvoI31ymYw==", "requires": { - "regenerate": "1.3.2", - "regjsgen": "0.2.0", - "regjsparser": "0.1.5" + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" } }, "source-map": { @@ -22610,7 +22900,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.2.0.tgz", "integrity": "sha512-Ts0Mu/A1S1aZxEJNG88I4Oc9rcZSBFNac5e27yh4j2mqbhZSSzR1Ah79EYwSn9Zuh7lrlGD2cVGzw1RKGzyLSg==", "requires": { - "has-flag": "2.0.0" + "has-flag": "^2.0.0" } } } @@ -22620,8 +22910,8 @@ "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", "integrity": "sha512-i7IFaR9hlQ6/0UgFuqM6YWaCfA1Ej8WMg8A5DggnH1UGKJvTV/ugqq/KaULixzzOi3T/tF6ClBXcHGCzdd5unA==", "requires": { - "icss-replace-symbols": "1.1.0", - "postcss": "6.0.6" + "icss-replace-symbols": "^1.1.0", + "postcss": "^6.0.1" }, "dependencies": { "ansi-styles": { @@ -22629,7 +22919,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.1.0.tgz", "integrity": "sha512-1jXmDD7l38qjk7yqmpFMLvs94InTmzcupUKdP2N4YjuDy5gNRJc1J5zb3Q/ur6FKxep0GW+2vK2qL82GEAwwCQ==", "requires": { - "color-convert": "1.9.0" + "color-convert": "^1.0.0" } }, "chalk": { @@ -22637,9 +22927,9 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.0.1.tgz", "integrity": "sha512-Mp+FXEI+FrwY/XYV45b2YD3E8i3HwnEAoFcM0qlZzq/RZ9RwWitt2Y/c7cqRAz70U7hfekqx6qNYthuKFO6K0g==", "requires": { - "ansi-styles": "3.1.0", - "escape-string-regexp": "1.0.5", - "supports-color": "4.2.0" + "ansi-styles": "^3.1.0", + "escape-string-regexp": "^1.0.5", + "supports-color": "^4.0.0" } }, "has-flag": { @@ -22652,9 +22942,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.6.tgz", "integrity": "sha512-KkYn44ZVVsqOheFhNxu1XVxmBu6egkdxZdqfxsA1AJGSqpJiCVsC3SWiUq+xn6m/G70V1WDNC/ZH8ccZJTupTQ==", "requires": { - "chalk": "2.0.1", - "source-map": "0.5.6", - "supports-color": "4.2.0" + "chalk": "^2.0.1", + "source-map": "^0.5.6", + "supports-color": "^4.1.0" } }, "source-map": { @@ -22667,7 +22957,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.2.0.tgz", "integrity": "sha512-Ts0Mu/A1S1aZxEJNG88I4Oc9rcZSBFNac5e27yh4j2mqbhZSSzR1Ah79EYwSn9Zuh7lrlGD2cVGzw1RKGzyLSg==", "requires": { - "has-flag": "2.0.0" + "has-flag": "^2.0.0" } } } @@ -22677,7 +22967,7 @@ "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz", "integrity": "sha512-RKgjEks83l8w4yEhztOwNZ+nLSrJ+NvPNhpS+mVDzoaiRHZQVoG7NF2TP5qjwnaN9YswUhj6m1E0S0Z+WDCgEQ==", "requires": { - "postcss": "5.2.17" + "postcss": "^5.0.5" } }, "postcss-normalize-url": { @@ -22685,10 +22975,10 @@ "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz", "integrity": "sha512-WqtWG6GV2nELsQEFES0RzfL2ebVwmGl/M8VmMbshKto/UClBo+mznX8Zi4/hkThdqx7ijwv+O8HWPdpK7nH/Ig==", "requires": { - "is-absolute-url": "2.1.0", - "normalize-url": "1.9.1", - "postcss": "5.2.17", - "postcss-value-parser": "3.3.0" + "is-absolute-url": "^2.0.0", + "normalize-url": "^1.4.0", + "postcss": "^5.0.14", + "postcss-value-parser": "^3.2.3" } }, "postcss-ordered-values": { @@ -22696,8 +22986,8 @@ "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz", "integrity": "sha512-5RB1IUZhkxDCfa5fx/ogp/A82mtq+r7USqS+7zt0e428HJ7+BHCxyeY39ClmkkUtxdOd3mk8gD6d9bjH2BECMg==", "requires": { - "postcss": "5.2.17", - "postcss-value-parser": "3.3.0" + "postcss": "^5.0.4", + "postcss-value-parser": "^3.0.1" } }, "postcss-reduce-idents": { @@ -22705,8 +22995,8 @@ "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz", "integrity": "sha512-0+Ow9e8JLtffjumJJFPqvN4qAvokVbdQPnijUDSOX8tfTwrILLP4ETvrZcXZxAtpFLh/U0c+q8oRMJLr1Kiu4w==", "requires": { - "postcss": "5.2.17", - "postcss-value-parser": "3.3.0" + "postcss": "^5.0.4", + "postcss-value-parser": "^3.0.2" } }, "postcss-reduce-initial": { @@ -22714,7 +23004,7 @@ "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz", "integrity": "sha512-jJFrV1vWOPCQsIVitawGesRgMgunbclERQ/IRGW7r93uHrVzNQQmHQ7znsOIjJPZ4yWMzs5A8NFhp3AkPHPbDA==", "requires": { - "postcss": "5.2.17" + "postcss": "^5.0.4" } }, "postcss-reduce-transforms": { @@ -22722,9 +23012,9 @@ "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz", "integrity": "sha512-lGgRqnSuAR5i5uUg1TA33r9UngfTadWxOyL2qx1KuPoCQzfmtaHjp9PuwX7yVyRxG3BWBzeFUaS5uV9eVgnEgQ==", "requires": { - "has": "1.0.1", - "postcss": "5.2.17", - "postcss-value-parser": "3.3.0" + "has": "^1.0.1", + "postcss": "^5.0.8", + "postcss-value-parser": "^3.0.1" } }, "postcss-selector-parser": { @@ -22732,9 +23022,9 @@ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz", "integrity": "sha512-3pqyakeGhrO0BQ5+/tGTfvi5IAUAhHRayGK8WFSu06aEv2BmHoXw/Mhb+w7VY5HERIuC+QoUI7wgrCcq2hqCVA==", "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": { @@ -22742,10 +23032,10 @@ "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-2.1.6.tgz", "integrity": "sha512-y5AdQdgBoF4rbpdbeWAJuxE953g/ylRfVNp6mvAi61VCN/Y25Tu9p5mh3CyI42WbTRIiwR9a1GdFtmDnNPeskQ==", "requires": { - "is-svg": "2.1.0", - "postcss": "5.2.17", - "postcss-value-parser": "3.3.0", - "svgo": "0.7.2" + "is-svg": "^2.0.0", + "postcss": "^5.0.14", + "postcss-value-parser": "^3.2.3", + "svgo": "^0.7.0" } }, "postcss-unique-selectors": { @@ -22753,9 +23043,9 @@ "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz", "integrity": "sha512-WZX8r1M0+IyljoJOJleg3kYm10hxNYF9scqAT7v/xeSX1IdehutOM85SNO0gP9K+bgs86XERr7Ud5u3ch4+D8g==", "requires": { - "alphanum-sort": "1.0.2", - "postcss": "5.2.17", - "uniqs": "2.0.0" + "alphanum-sort": "^1.0.1", + "postcss": "^5.0.4", + "uniqs": "^2.0.0" } }, "postcss-value-parser": { @@ -22768,9 +23058,9 @@ "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-2.2.0.tgz", "integrity": "sha512-uhRZ2hRgj0lorxm9cr62B01YzpUe63h0RXMXQ4gWW3oa2rpJh+FJAiEAytaFCPU/VgaBS+uW2SJ1XKyDNz1h4w==", "requires": { - "has": "1.0.1", - "postcss": "5.2.17", - "uniqs": "2.0.0" + "has": "^1.0.1", + "postcss": "^5.0.4", + "uniqs": "^2.0.0" } }, "prelude-ls": { @@ -22793,8 +23083,8 @@ "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz", "integrity": "sha512-FjthfAXdfqTrBLus270RxrQIdxGOY9qYO/MMTg3T1stG56EGWbNc9cUT4J3ov6aYSn5XwdRjBBvVKPmnUGl2Cg==", "requires": { - "renderkid": "2.0.1", - "utila": "0.4.0" + "renderkid": "^2.0.1", + "utila": "~0.4" } }, "private": { @@ -22821,7 +23111,7 @@ "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", "requires": { - "asap": "2.0.6" + "asap": "~2.0.3" } }, "prop-types": { @@ -22829,8 +23119,8 @@ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.5.10.tgz", "integrity": "sha512-vCFzoUFaZkVNeFkhK1KbSq4cn97GDrpfBt9K2qLkGnPAEFhEv3M61Lk5t+B7c0QfMLWo0fPkowk/4SuXerh26Q==", "requires": { - "fbjs": "0.8.12", - "loose-envify": "1.3.1" + "fbjs": "^0.8.9", + "loose-envify": "^1.3.1" }, "dependencies": { "fbjs": { @@ -22838,13 +23128,13 @@ "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.12.tgz", "integrity": "sha512-SBiP6XPiWIlX1tE5mvU/UeUFoqzJgbf+ezkl0M8D2xk4urDb+2uyjjGB10HAPluLboUqqVHtgUwwyuWakUfMgQ==", "requires": { - "core-js": "1.2.7", - "isomorphic-fetch": "2.2.1", - "loose-envify": "1.3.1", - "object-assign": "4.1.1", - "promise": "7.3.1", - "setimmediate": "1.0.5", - "ua-parser-js": "0.7.13" + "core-js": "^1.0.0", + "isomorphic-fetch": "^2.1.1", + "loose-envify": "^1.0.0", + "object-assign": "^4.1.0", + "promise": "^7.1.1", + "setimmediate": "^1.0.5", + "ua-parser-js": "^0.7.9" } }, "object-assign": { @@ -22859,7 +23149,7 @@ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.1.4.tgz", "integrity": "sha512-G/noElq/twFBfS4WnyIyGwJgBeUTmsiMnpy1H8jRsBBcP0vn9ncxIZKA2PkK5guEUbb+98BduZnrupe1AN3ziw==", "requires": { - "forwarded": "0.1.0", + "forwarded": "~0.1.0", "ipaddr.js": "1.3.0" } }, @@ -22888,8 +23178,8 @@ "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", "integrity": "sha512-O2XLNDBIg1DnTOa+2XrIwSiXEV8h2KImXUnjhhn2+UsvZ+Es2uyd5CCRTNQlDGbzUQOW3aYCBx9rVA6dzsiY7Q==", "requires": { - "object-assign": "4.1.1", - "strict-uri-encode": "1.1.0" + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" }, "dependencies": { "object-assign": { @@ -22920,7 +23210,7 @@ "integrity": "sha512-m4VtvjAMx00wgAS6eOy50ZDat1EBQeFKBIrtF/oxUt0MenEI33y7runJcRiOihc+JBBIt2aFFJhILIh4e9shJA==", "requires": { "minimist": "0.0.8", - "through2": "0.4.2" + "through2": "~0.4.1" } }, "randomatic": { @@ -22928,8 +23218,8 @@ "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" + "is-number": "^3.0.0", + "kind-of": "^4.0.0" }, "dependencies": { "is-number": { @@ -22937,7 +23227,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -22945,7 +23235,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "requires": { - "is-buffer": "1.1.5" + "is-buffer": "^1.1.5" } } } @@ -22955,7 +23245,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", "requires": { - "is-buffer": "1.1.5" + "is-buffer": "^1.1.5" } } } @@ -22970,8 +23260,8 @@ "resolved": "https://registry.npmjs.org/react/-/react-0.14.9.tgz", "integrity": "sha512-X4U9NShyynSMSS345m3e+fWAWfMjt+FvBJq6qfcwj1uq7oPFukmIHninQ7LVyUV25P/9PRCtnzWt2/bJKytabw==", "requires": { - "envify": "3.4.1", - "fbjs": "0.6.1" + "envify": "^3.0.0", + "fbjs": "^0.6.1" } }, "react-dom": { @@ -22989,15 +23279,15 @@ "resolved": "https://registry.npmjs.org/react-jade/-/react-jade-2.5.0.tgz", "integrity": "sha512-gfRkF00pfutaCcsSCLSlKEMRIqViQIE0aoe3DZpwPbXlFZTc/ci+cg759GL7je3tLdYwP+tKEPYEBRrIrPSpmA==", "requires": { - "acorn": "1.2.2", - "constantinople": "3.0.2", - "ent": "2.2.0", + "acorn": "^1.1.0", + "constantinople": "^3.0.1", + "ent": "^2.2.0", "jade": "1.9.2", - "js-stringify": "1.0.2", - "resolve": "1.3.3", - "static-module": "1.4.0", - "uglify-js": "2.8.29", - "with": "5.1.1" + "js-stringify": "^1.0.1", + "resolve": "^1.1.6", + "static-module": "^1.1.2", + "uglify-js": "^2.4.21", + "with": "^5.0.0" }, "dependencies": { "acorn": { @@ -23016,12 +23306,12 @@ "integrity": "sha512-MhDlh3ZW0a06RiI2T/sDEYPUXTnfOkSIECRsPLiZtebz+Fi2ZaB0IVdJxSGDt6lWg4jHMEiHuq/0cPpppt1kqQ==", "requires": { "character-parser": "1.2.1", - "commander": "2.6.0", - "constantinople": "3.0.2", - "mkdirp": "0.5.1", + "commander": "~2.6.0", + "constantinople": "~3.0.1", + "mkdirp": "~0.5.0", "transformers": "2.1.0", - "void-elements": "2.0.1", - "with": "4.0.3" + "void-elements": "~2.0.1", + "with": "~4.0.0" }, "dependencies": { "with": { @@ -23029,8 +23319,8 @@ "resolved": "https://registry.npmjs.org/with/-/with-4.0.3.tgz", "integrity": "sha512-mJZFpyEc1JTAdxhi/vhVeAM2S7vsltEKDiexDDo1HuAzlYKhcVUU6cwY8cHrFYdt82ZNkfKCeyhA3IYFegI0Kg==", "requires": { - "acorn": "1.2.2", - "acorn-globals": "1.0.9" + "acorn": "^1.0.1", + "acorn-globals": "^1.0.3" } } } @@ -23045,9 +23335,9 @@ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", "integrity": "sha512-qLq/4y2pjcU3vhlhseXGGJ7VbFO4pBANu0kwl8VCa9KEI0V8VfZIx2Fy3w01iSTA/pGwKZSmu/+I4etLNDdt5w==", "requires": { - "source-map": "0.5.6", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" } }, "with": { @@ -23055,8 +23345,8 @@ "resolved": "https://registry.npmjs.org/with/-/with-5.1.1.tgz", "integrity": "sha512-uAnSsFGfSpF6DNhBXStvlZILfHJfJu4eUkfbRGk94kGO1Ta7bg6FwfvoOhhyHAJuFbCw+0xk4uJ3u57jLvlCJg==", "requires": { - "acorn": "3.3.0", - "acorn-globals": "3.1.0" + "acorn": "^3.1.0", + "acorn-globals": "^3.0.0" }, "dependencies": { "acorn": { @@ -23069,7 +23359,7 @@ "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz", "integrity": "sha512-uWttZCk96+7itPxK8xCzY86PnxKTMrReKDqrHzv42VQY0K30PUO8WY13WMOuI+cOdX4EIdzdvQ8k6jkuGRFMYw==", "requires": { - "acorn": "4.0.13" + "acorn": "^4.0.4" }, "dependencies": { "acorn": { @@ -23088,12 +23378,12 @@ "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-4.4.8.tgz", "integrity": "sha512-VRWfz+wSPQmnTaWXL+Y9GNA3mc7Pjb9b9IKp2kDMZNmcwigebgqdU4q2dn7wmE08iXr9hirwXGV4ONsBUKY6Dw==", "requires": { - "create-react-class": "15.6.0", - "hoist-non-react-statics": "1.2.0", - "invariant": "2.2.2", - "lodash": "4.17.4", - "loose-envify": "1.3.1", - "prop-types": "15.5.10" + "create-react-class": "^15.5.1", + "hoist-non-react-statics": "^1.0.3", + "invariant": "^2.0.0", + "lodash": "^4.2.0", + "loose-envify": "^1.1.0", + "prop-types": "^15.5.4" } }, "react-select": { @@ -23101,8 +23391,8 @@ "resolved": "https://registry.npmjs.org/react-select/-/react-select-0.9.1.tgz", "integrity": "sha512-fvYdkfxbaf3G9H4WFCJCm8rwq37TzEW+UPIMI8Xs8NMvW2obQN7qr97zBuHK9Lplhh9SxkfturaIM9FgTtLB7g==", "requires": { - "classnames": "2.2.5", - "react-input-autosize": "0.6.13" + "classnames": "^2.2.0", + "react-input-autosize": "^0.6.2" } }, "read-pkg": { @@ -23110,9 +23400,9 @@ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", "integrity": "sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==", "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" } }, "read-pkg-up": { @@ -23120,8 +23410,8 @@ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", "integrity": "sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==", "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" } }, "readable-stream": { @@ -23129,10 +23419,10 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", "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" } }, "readdirp": { @@ -23140,10 +23430,10 @@ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", "integrity": "sha512-LgQ8mdp6hbxJUZz27qxVl7gmFM/0DfHRO52c5RUbKAgMvr81tour7YYWW1JYNmrXyD/o0Myy9/DC3fUYkqnyzg==", "requires": { - "graceful-fs": "4.1.11", - "minimatch": "3.0.4", - "readable-stream": "2.3.3", - "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" }, "dependencies": { "isarray": { @@ -23156,13 +23446,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.0.3", + "util-deprecate": "~1.0.1" } }, "string_decoder": { @@ -23170,7 +23460,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "~5.1.0" } } } @@ -23180,8 +23470,8 @@ "resolved": "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz", "integrity": "sha512-8/td4MmwUB6PkZUbV25uKz7dfrmjYWxsW8DVfibWdlHRk/l/DfHKn4pU+dfcoGLFgWOdyGCzINRQD7jn+Bv+/g==", "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", "mute-stream": "0.0.5" } }, @@ -23191,9 +23481,9 @@ "integrity": "sha512-+nixG+3NugceyR8O1bLU45qs84JgI3+8EauyRZafLgC9XbdAOIVgwV1Pe2da0YzGo62KzWoZwUpVEQf6qNAXWA==", "requires": { "ast-types": "0.9.6", - "esprima": "3.1.3", - "private": "0.1.7", - "source-map": "0.5.6" + "esprima": "~3.1.0", + "private": "~0.1.5", + "source-map": "~0.5.0" }, "dependencies": { "esprima": { @@ -23213,8 +23503,8 @@ "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", "integrity": "sha512-qtW5hKzGQZqKoh6JNSD+4lfitfPKGz42e6QwiRmPM5mmKtR0N41AbJRYu0xJi7nhOJ4WDgRkKvAk6tw4WIwR4g==", "requires": { - "indent-string": "2.1.0", - "strip-indent": "1.0.1" + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" } }, "reduce-css-calc": { @@ -23222,9 +23512,9 @@ "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz", "integrity": "sha512-0dVfwYVOlf/LBA2ec4OwQ6p3X9mYxn/wOl2xTcLwjnPYrkgEfPx3VI4eGCH3rQLlPISG5v9I9bkZosKsNRTRKA==", "requires": { - "balanced-match": "0.4.2", - "math-expression-evaluator": "1.2.17", - "reduce-function-call": "1.0.2" + "balanced-match": "^0.4.2", + "math-expression-evaluator": "^1.2.14", + "reduce-function-call": "^1.0.1" }, "dependencies": { "balanced-match": { @@ -23239,7 +23529,7 @@ "resolved": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.2.tgz", "integrity": "sha512-oDG9BTdyqrUcOeUafoT4LoUP13n6vDx2I6jx+yumkTlQQhvoxysJINKmmjZHGaV9cYg4zZdk2xXTnfBTBq+dKg==", "requires": { - "balanced-match": "0.4.2" + "balanced-match": "^0.4.2" }, "dependencies": { "balanced-match": { @@ -23254,10 +23544,10 @@ "resolved": "https://registry.npmjs.org/redux/-/redux-3.7.2.tgz", "integrity": "sha512-pNqnf9q1hI5HHZRBkj3bAngGZW/JMCmexDlOxw4XagXY2o1327nHH54LoTjiPJ0gizoqPDRqWyX/00g0hD6w+A==", "requires": { - "lodash": "4.17.4", - "lodash-es": "4.17.4", - "loose-envify": "1.3.1", - "symbol-observable": "1.0.4" + "lodash": "^4.2.1", + "lodash-es": "^4.2.1", + "loose-envify": "^1.1.0", + "symbol-observable": "^1.0.3" } }, "regenerate": { @@ -23275,9 +23565,9 @@ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.9.11.tgz", "integrity": "sha512-mBYWw6lTiHC5EVHo5yBiBgOUU6kgi7QGb3kQVyRw3of/REGxoELtLDSEQQ96ZFo084w7pOFw1nv85Jvo36ZP9A==", "requires": { - "babel-runtime": "6.23.0", - "babel-types": "6.25.0", - "private": "0.1.7" + "babel-runtime": "^6.18.0", + "babel-types": "^6.19.0", + "private": "^0.1.6" } }, "regex-cache": { @@ -23285,8 +23575,8 @@ "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz", "integrity": "sha512-mD03Qv3Lb7ncwijS5zPvJUIrIXA1XBrxIuB6/XoesvWlyJBNCk7WZa9fCnIOpTKzd6C1L+rpaxrr6t0CYFDQ+Q==", "requires": { - "is-equal-shallow": "0.1.3", - "is-primitive": "2.0.0" + "is-equal-shallow": "^0.1.3", + "is-primitive": "^2.0.0" } }, "regexpu-core": { @@ -23294,9 +23584,9 @@ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", "integrity": "sha512-tJ9+S4oKjxY8IZ9jmjnp/mtytu1u3iyIQAfmI51IKWH6bFf7XR1ybtaO6j7INhZKXOTYADk7V5qxaqLkmNxiZQ==", "requires": { - "regenerate": "1.3.2", - "regjsgen": "0.2.0", - "regjsparser": "0.1.5" + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" } }, "regjsgen": { @@ -23309,7 +23599,7 @@ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", "integrity": "sha512-jlQ9gYLfk2p3V5Ag5fYhA7fv7OHzd1KUH0PRP46xc3TgwjwgROIW572AfYg/X9kaNq/LJnu6oJcFRXlIrGoTRw==", "requires": { - "jsesc": "0.5.0" + "jsesc": "~0.5.0" }, "dependencies": { "jsesc": { @@ -23334,11 +23624,11 @@ "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.1.tgz", "integrity": "sha512-vEQAYVNYfvhfTKtGP5RfYgtZ3wi2CAZg3snP/ythLWNFeA8//lgwqbN4yo6/sSvimM/lzyd7Cer5tbg8l0HorA==", "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": { "utila": { @@ -23363,7 +23653,7 @@ "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", "integrity": "sha512-ZqtSMuVybkISo2OWvqvm7iHSWngvdaW3IpsT9/uP8v4gMi591LY6h35wdOfvQdWCKFWZWm2Y1Opp4kV7vQKT6A==", "requires": { - "is-finite": "1.0.2" + "is-finite": "^1.0.0" } }, "request": { @@ -23371,28 +23661,28 @@ "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", "integrity": "sha512-IZnsR7voF0miGSu29EXPRgPTuEsI/+aibNSBbN1pplrfartF5wDYGADz3iD9vmBVf2r00rckWZf8BtS5kk7Niw==", "requires": { - "aws-sign2": "0.6.0", - "aws4": "1.6.0", - "caseless": "0.12.0", - "combined-stream": "1.0.5", - "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.15", - "oauth-sign": "0.8.2", - "performance-now": "0.2.0", - "qs": "6.4.0", - "safe-buffer": "5.1.1", - "stringstream": "0.0.5", - "tough-cookie": "2.3.2", - "tunnel-agent": "0.6.0", - "uuid": "3.1.0" + "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" }, "dependencies": { "qs": { @@ -23416,8 +23706,8 @@ "version": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", "integrity": "sha512-Xct+41K3twrbBHdxAgMoOS+cNcoqIjfM2/VxBF4LL2hVph7YsF8VSKyQ3BDFZwEVbok9yeDl2le/qo0S77WG2w==", "requires": { - "caller-path": "0.1.0", - "resolve-from": "1.0.1" + "caller-path": "^0.1.0", + "resolve-from": "^1.0.0" } }, "requires-port": { @@ -23435,7 +23725,7 @@ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.3.3.tgz", "integrity": "sha512-1p/C+O7k1Gt16zZRRp8wWxNr8N/7hBP25g3OcUxgYB18hUx0k1vHaIvI9wtVfCNYogxKAYLdpLF8MMB5eh4IGA==", "requires": { - "path-parse": "1.0.5" + "path-parse": "^1.0.5" } }, "resolve-from": { @@ -23448,8 +23738,8 @@ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", "integrity": "sha512-reSjH4HuiFlxlaBaFCiS6O76ZGG2ygKoSlCsipKdaZuKSPx/+bt9mULkn4l0asVzbEfQQmXRg6Wp6gv6m0wElw==", "requires": { - "exit-hook": "1.1.1", - "onetime": "1.1.0" + "exit-hook": "^1.0.0", + "onetime": "^1.0.0" } }, "right-align": { @@ -23457,7 +23747,7 @@ "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", "integrity": "sha512-yqINtL/G7vs2v+dFIZmFUDbnVyFUJFKd6gK22Kgo6R4jfJGFtisKyncWDDULgjfqf4ASQuIQyjJ7XZ+3aWpsAg==", "requires": { - "align-text": "0.1.4" + "align-text": "^0.1.1" } }, "rimraf": { @@ -23465,7 +23755,7 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", "integrity": "sha512-5QIcndZ8am2WyseL6lln/utl51SwRBQs/at+zi1UnhsnPyZcAID+g0PZrKdb+kJn2fo/CwgyJweR8sP36Jer5g==", "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" }, "dependencies": { "glob": { @@ -23473,12 +23763,12 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "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" } } } @@ -23493,7 +23783,7 @@ "resolved": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz", "integrity": "sha512-qOX+w+IxFgpUpJfkv2oGN0+ExPs68F4sZHfaRRx4dDexAQkG83atugKVEylyT5ARees3HBbfmuvnjbrd8j9Wjw==", "requires": { - "once": "1.4.0" + "once": "^1.3.0" } }, "rx-lite": { @@ -23505,15 +23795,15 @@ "version": "https://registry.npmjs.org/s3/-/s3-4.4.0.tgz", "integrity": "sha512-6dF5TENLScyHkqu6O5AH5wuZX1kzcEUoQXFfmzb/gyV+rh+aPkNwl4uGoy+GvD984q0DumfE+TX93airqyUfWw==", "requires": { - "aws-sdk": "2.0.31", - "fd-slicer": "1.0.1", - "findit2": "2.2.3", - "graceful-fs": "3.0.11", - "mime": "1.2.11", - "mkdirp": "0.5.1", - "pend": "1.2.0", - "rimraf": "2.2.8", - "streamsink": "1.2.0" + "aws-sdk": "~2.0.31", + "fd-slicer": "~1.0.0", + "findit2": "~2.2.3", + "graceful-fs": "~3.0.5", + "mime": "~1.2.11", + "mkdirp": "~0.5.0", + "pend": "~1.2.0", + "rimraf": "~2.2.8", + "streamsink": "~1.2.0" }, "dependencies": { "graceful-fs": { @@ -23521,7 +23811,7 @@ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz", "integrity": "sha512-TUMHqvtdbiU5R8XmiHolgo/9mrFPzGlPSDgw9inIIGpCkOPcG3BmRmPdnVuzbBvWIgmVsJQ8ig2cwIpbtr6+ZA==", "requires": { - "natives": "1.1.0" + "natives": "^1.1.0" } }, "mime": { @@ -23551,10 +23841,10 @@ "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", "integrity": "sha512-XNoU0z8bcokFaCU8WjiIQmI0Bgoe4AsdP3FxnBnCxI7GtmQVvig8h9ksTtjuGiE3c0P++kiUuqH9yk917jgslg==", "requires": { - "glob": "7.1.2", - "lodash": "4.17.4", - "scss-tokenizer": "0.2.3", - "yargs": "7.1.0" + "glob": "^7.0.0", + "lodash": "^4.0.0", + "scss-tokenizer": "^0.2.3", + "yargs": "^7.0.0" }, "dependencies": { "camelcase": { @@ -23567,9 +23857,9 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", "integrity": "sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w==", "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wrap-ansi": "2.1.0" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" } }, "glob": { @@ -23577,12 +23867,12 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "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" } }, "yargs": { @@ -23590,19 +23880,19 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", "integrity": "sha512-JHLTJJ5uqdt0peYp5mHzmSNV4uHXWphgSlKk5jg3sY5XYPTBw0hzw0SDNnYISn7pAXeAv5pKT4CNY+EcCTptBg==", "requires": { - "camelcase": "3.0.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.2", - "os-locale": "1.4.0", - "read-pkg-up": "1.0.1", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "1.0.2", - "which-module": "1.0.0", - "y18n": "3.2.1", - "yargs-parser": "5.0.0" + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^5.0.0" } } } @@ -23611,9 +23901,9 @@ "version": "https://registry.npmjs.org/sass-loader/-/sass-loader-3.2.3.tgz", "integrity": "sha512-D3V3fwheYiVuwE5yy4ljXRRfGAo04qSsx3XapCvrRjEDGa9zeE7W7pPgiU9C9KWKzIyYBPYbSWX4WxUPbhbGXA==", "requires": { - "async": "1.5.2", - "loader-utils": "0.2.17", - "object-assign": "4.1.1" + "async": "^1.4.0", + "loader-utils": "^0.2.5", + "object-assign": "^4.0.1" }, "dependencies": { "async": { @@ -23638,8 +23928,8 @@ "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", "integrity": "sha512-dYE8LhncfBUar6POCxMTm0Ln+erjeczqEvCJib5/7XNkdw1FkUGgwMPY360FY0FgPWQxHWCx29Jl3oejyGLM9Q==", "requires": { - "js-base64": "2.1.9", - "source-map": "0.4.4" + "js-base64": "^2.1.8", + "source-map": "^0.4.2" } }, "semver": { @@ -23653,18 +23943,18 @@ "integrity": "sha512-w21BXI1HgOfW8PQmKAU7yQJJmTPaXN3zwsAnRXkawmSC+W+pUeAE0rgt3dO5bM+ia3Gy8CDekD1FE/ZZMtlewQ==", "requires": { "debug": "2.6.7", - "depd": "1.1.0", - "destroy": "1.0.4", - "encodeurl": "1.0.1", - "escape-html": "1.0.3", - "etag": "1.8.0", + "depd": "~1.1.0", + "destroy": "~1.0.4", + "encodeurl": "~1.0.1", + "escape-html": "~1.0.3", + "etag": "~1.8.0", "fresh": "0.5.0", - "http-errors": "1.6.1", + "http-errors": "~1.6.1", "mime": "1.3.4", "ms": "2.0.0", - "on-finished": "2.3.0", - "range-parser": "1.2.0", - "statuses": "1.3.1" + "on-finished": "~2.3.0", + "range-parser": "~1.2.0", + "statuses": "~1.3.1" }, "dependencies": { "debug": { @@ -23682,13 +23972,13 @@ "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.0.tgz", "integrity": "sha512-btXPFKITJiodQ9CaH6RrvVFMNAT8TcYz5DHpXdtY/7rpG5EXUV5Bw8Pu8GVUzCHlkEXOhEOLntXLzMhirMsBXw==", "requires": { - "accepts": "1.3.3", + "accepts": "~1.3.3", "batch": "0.6.1", "debug": "2.6.8", - "escape-html": "1.0.3", - "http-errors": "1.6.1", - "mime-types": "2.1.15", - "parseurl": "1.3.1" + "escape-html": "~1.0.3", + "http-errors": "~1.6.1", + "mime-types": "~2.1.15", + "parseurl": "~1.3.1" } }, "serve-static": { @@ -23696,9 +23986,9 @@ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.12.3.tgz", "integrity": "sha512-M83Sy74z4RJdcXeZUvNjuv/AtjE/38BNYR8h8mgCC8w32QA6hcQx9Efr/YIlmqIDnxNkS1/fcxNJJtK+g9O+QQ==", "requires": { - "encodeurl": "1.0.1", - "escape-html": "1.0.3", - "parseurl": "1.3.1", + "encodeurl": "~1.0.1", + "escape-html": "~1.0.3", + "parseurl": "~1.3.1", "send": "0.15.3" } }, @@ -23750,7 +24040,7 @@ "lolex": "1.3.2", "samsam": "1.1.2", "text-encoding": "0.5.2", - "util": "0.10.3" + "util": ">=0.10.3 <1" } }, "slash": { @@ -23769,7 +24059,7 @@ "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", "integrity": "sha512-7bgVOAnPj3XjrKY577S+puCKGCRlUrcrEdsMeRXlg9Ghf5df/xNi6sONUa43WrHUd3TjJBF7O04jYoiY0FVa0A==", "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "sockjs": { @@ -23777,8 +24067,8 @@ "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.18.tgz", "integrity": "sha512-TYOxY9QjCiFd+9/Yj0QPMbl2xoO7wSggt0QQDff/5kcXf5ROXZo2tEsjHtRI0biEUJ2viLxI9JjCyTyr8q6h0A==", "requires": { - "faye-websocket": "0.10.0", - "uuid": "2.0.3" + "faye-websocket": "^0.10.0", + "uuid": "^2.0.2" }, "dependencies": { "uuid": { @@ -23793,12 +24083,12 @@ "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.1.4.tgz", "integrity": "sha512-hkDiI0wOmGmoUG3TSIrbDt8AhyzhePuNT3nogc5+c0amyUHu091y+jRK2h/e36olKRG+tSbhlQYHWqdsuW0CtQ==", "requires": { - "debug": "2.6.8", + "debug": "^2.6.6", "eventsource": "0.1.6", - "faye-websocket": "0.11.1", - "inherits": "2.0.3", - "json3": "3.3.2", - "url-parse": "1.1.9" + "faye-websocket": "~0.11.0", + "inherits": "^2.0.1", + "json3": "^3.3.2", + "url-parse": "^1.1.8" }, "dependencies": { "faye-websocket": { @@ -23806,7 +24096,7 @@ "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.1.tgz", "integrity": "sha512-UfAKYOloAKPtWgu0YZtyRR0y1XQmZq2vZ0piJVMnJLfDctlqx2oIX4qoZDsiP7phmVpZ7gpqIwh1k2vfbbZBsg==", "requires": { - "websocket-driver": "0.6.5" + "websocket-driver": ">=0.5.1" } } } @@ -23816,7 +24106,7 @@ "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", "integrity": "sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg==", "requires": { - "is-plain-obj": "1.1.0" + "is-plain-obj": "^1.0.0" } }, "source-list-map": { @@ -23829,7 +24119,7 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", "integrity": "sha512-Y8nIfcb1s/7DcobUz1yOO1GSp7gyL+D9zLHDehT7iRESqGSxjJ448Sg7rvfgsRJCnKLdSl11uGf0s9X80cH0/A==", "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } }, "source-map-support": { @@ -23838,7 +24128,7 @@ "integrity": "sha512-oRP/tYo0d1l3D4f/bRWkWeLg80AxAqE225Vf1tbkuHZxANSgSQwfDHzDuhpS7U0ocKfwggp4PSAnMoRKsAgIZg==", "dev": true, "requires": { - "source-map": "0.5.6" + "source-map": "^0.5.6" }, "dependencies": { "source-map": { @@ -23854,7 +24144,7 @@ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", "integrity": "sha512-A6UuuDdsSvKK2bqmUetv33zJVv0iczyaQZ536YL9+GAvbC4HceGKvXDtptnU9YZ/zGgryaFFsR4YaUCq+N/53g==", "requires": { - "spdx-license-ids": "1.2.2" + "spdx-license-ids": "^1.0.2" } }, "spdx-expression-parse": { @@ -23877,14 +24167,14 @@ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", "integrity": "sha512-oKPL4k+ld5d737ZPB4VM99bqNb3JH+ZkxwWXR1iSPtqYbZv81hkLD7v8gmclrgR7aA8uh8ar+q0IF7gHFHg7PQ==", "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": { @@ -23899,7 +24189,7 @@ "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-0.2.4.tgz", "integrity": "sha512-6dWWPfa/0+1zULdQi7ssT5EQZHsGK8LygBzhE/HdafNCo4e/Ibt7vLPfxBw9VcdVV+t0ARtN4ZAJKtApVc0A5Q==", "requires": { - "escodegen": "0.0.28" + "escodegen": "~0.0.24" }, "dependencies": { "escodegen": { @@ -23907,9 +24197,9 @@ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-0.0.28.tgz", "integrity": "sha512-6ioQhg16lFs5c7XJlJFXIDxBjO4yRvXC9yK6dLNNGuhI3a/fJukHanPF6qtpjGDgAFzI8Wuq3PSIarWmaOq/5A==", "requires": { - "esprima": "1.0.4", - "estraverse": "1.3.2", - "source-map": "0.4.4" + "esprima": "~1.0.2", + "estraverse": "~1.3.0", + "source-map": ">= 0.1.2" } }, "esprima": { @@ -23929,17 +24219,17 @@ "resolved": "https://registry.npmjs.org/static-module/-/static-module-1.4.0.tgz", "integrity": "sha512-vsYLDQksG5xil7dVs5/mF0tS0ogwz0qWIACxRwve9z9lmJm9TOOli28h7lbjw1AOEBBz4TJNnbeuXfm5uhS9YQ==", "requires": { - "concat-stream": "1.6.0", - "duplexer2": "0.0.2", - "escodegen": "1.3.3", - "falafel": "2.1.0", - "has": "1.0.1", - "object-inspect": "0.4.0", - "quote-stream": "0.0.0", - "readable-stream": "1.0.34", - "shallow-copy": "0.0.1", - "static-eval": "0.2.4", - "through2": "0.4.2" + "concat-stream": "~1.6.0", + "duplexer2": "~0.0.2", + "escodegen": "~1.3.2", + "falafel": "^2.1.0", + "has": "^1.0.0", + "object-inspect": "~0.4.0", + "quote-stream": "~0.0.0", + "readable-stream": "~1.0.27-1", + "shallow-copy": "~0.0.1", + "static-eval": "~0.2.0", + "through2": "~0.4.1" } }, "statuses": { @@ -23952,8 +24242,8 @@ "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", "integrity": "sha512-nmQnY9D9TlnfQIkYJCCWxvCcQODilFRZIw14gCMYQVXOiY4E1Ze1VMxB+6y3qdXHpTordULo2qWloHmNcNAQYw==", "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.3" + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" }, "dependencies": { "isarray": { @@ -23966,13 +24256,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.0.3", + "util-deprecate": "~1.0.1" } }, "string_decoder": { @@ -23980,7 +24270,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "~5.1.0" } } } @@ -23995,11 +24285,11 @@ "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.7.2.tgz", "integrity": "sha512-c0yTD2rbQzXtSsFSVhtpvY/vS6u066PcXOX9kBB3mSO76RiUQzL340uJkGBWnlBg4/HZzqiUXtaVA7wcRcJgEw==", "requires": { - "builtin-status-codes": "3.0.0", - "inherits": "2.0.3", - "readable-stream": "2.3.3", - "to-arraybuffer": "1.0.1", - "xtend": "4.0.1" + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.2.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" }, "dependencies": { "isarray": { @@ -24012,13 +24302,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.0.3", + "util-deprecate": "~1.0.1" } }, "string_decoder": { @@ -24026,7 +24316,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "~5.1.0" } }, "xtend": { @@ -24051,9 +24341,9 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", "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": { @@ -24071,7 +24361,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-bom": { @@ -24079,7 +24369,7 @@ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.0" } }, "strip-indent": { @@ -24087,7 +24377,7 @@ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", "integrity": "sha512-I5iQq6aFMM62fBEAIB/hXzwJD6EEZ0xEGCX2t7oXqaKPIRgt4WruAQ285BISgdkP+HLGWyeGmNJcpIwFeRYRUA==", "requires": { - "get-stdin": "4.0.1" + "get-stdin": "^4.0.1" } }, "strip-json-comments": { @@ -24098,7 +24388,7 @@ "version": "https://registry.npmjs.org/style-loader/-/style-loader-0.13.2.tgz", "integrity": "sha512-0lN0o7DS1G/HRoYJQMEO3yP+tNCuAnNuX1mt/2Yw4edSok45vebtyJoHUyBREasuPYBtZpC3d8wvgY/WD68ZJg==", "requires": { - "loader-utils": "1.1.0" + "loader-utils": "^1.0.2" }, "dependencies": { "loader-utils": { @@ -24106,9 +24396,9 @@ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", "integrity": "sha512-gkD9aSEG9UGglyPcDJqY9YBTUtCLKaBK6ihD2VP1d1X60lTfFspNZNulGBBbUZLkPygy4LySYHyxBpq+VhjObQ==", "requires": { - "big.js": "3.1.3", - "emojis-list": "2.1.0", - "json5": "0.5.1" + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0" } } } @@ -24123,13 +24413,13 @@ "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.7.2.tgz", "integrity": "sha512-jT/g9FFMoe9lu2IT6HtAxTA7RR2XOrmcrmCtGnyB/+GQnV6ZjNn+KOHZbZ35yL81+1F/aB6OeEsJztzBQ2EEwA==", "requires": { - "coa": "1.0.4", - "colors": "1.1.2", - "csso": "2.3.2", - "js-yaml": "3.7.0", - "mkdirp": "0.5.1", - "sax": "1.2.4", - "whet.extend": "0.9.9" + "coa": "~1.0.1", + "colors": "~1.1.2", + "csso": "~2.3.1", + "js-yaml": "~3.7.0", + "mkdirp": "~0.5.1", + "sax": "~1.2.1", + "whet.extend": "~0.9.9" } }, "symbol-observable": { @@ -24141,12 +24431,12 @@ "version": "https://registry.npmjs.org/table/-/table-3.8.3.tgz", "integrity": "sha512-RZuzIOtzFbprLCE0AXhkI0Xi42ZJLZhCC+qkwuMLf/Vjz3maWpA8gz1qMdbmNoI9cOROT2Am/DxeRyXenrL11g==", "requires": { - "ajv": "4.11.8", - "ajv-keywords": "1.5.1", - "chalk": "1.1.3", - "lodash": "4.17.4", + "ajv": "^4.7.0", + "ajv-keywords": "^1.0.0", + "chalk": "^1.1.1", + "lodash": "^4.0.0", "slice-ansi": "0.0.4", - "string-width": "2.1.0" + "string-width": "^2.0.0" }, "dependencies": { "ansi-regex": { @@ -24164,8 +24454,8 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.0.tgz", "integrity": "sha512-+kN/kDJ6eIiJHUx7CjQFo1Nlj019tKM3GNhx4uKXpVGfQiRh8hNmaZNOJpy6YhSdcBm+vmOGOkfJdNddNAcdrA==", "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": { @@ -24173,7 +24463,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -24188,9 +24478,9 @@ "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", "integrity": "sha512-2Tw2uNtZqQTSHTIMbKHKFeAPmKcljrNKqKiIN7pu3V/CxYqRgS8DLXvMkFRrbtXlg6mTOQcuTX7DMj18Xi0dtg==", "requires": { - "block-stream": "0.0.9", - "fstream": "1.0.11", - "inherits": "2.0.3" + "block-stream": "*", + "fstream": "^1.0.2", + "inherits": "2" } }, "text-encoding": { @@ -24212,8 +24502,8 @@ "resolved": "https://registry.npmjs.org/through2/-/through2-0.4.2.tgz", "integrity": "sha512-45Llu+EwHKtAZYTPPVn3XZHBgakWMN3rokhEv5hu596XP+cNgplMg+Gj+1nmAvj+L0K7+N49zBKx5rah5u0QIQ==", "requires": { - "readable-stream": "1.0.34", - "xtend": "2.1.2" + "readable-stream": "~1.0.17", + "xtend": "~2.1.1" } }, "timers-browserify": { @@ -24221,7 +24511,7 @@ "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.2.tgz", "integrity": "sha512-O7UB405+hxP2OWqlBdlUMxZVEdsi8NOWL2c730Cs6zeO1l1AkxygvTm6yC4nTw84iGbFcqxbIkkrdNKzq/3Fvg==", "requires": { - "setimmediate": "1.0.5" + "setimmediate": "^1.0.4" } }, "to-arraybuffer": { @@ -24244,14 +24534,14 @@ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", "integrity": "sha512-42UXjmzk88F7URyg9wDV/dlQ7hXtl/SDV6xIMVdDq82cnDGQDyg8mI8xGBPOwpEfbhvrja6cJ8H1wr0xxykBKA==", "requires": { - "punycode": "1.4.1" + "punycode": "^1.4.1" } }, "transform-loader": { "version": "https://registry.npmjs.org/transform-loader/-/transform-loader-0.2.4.tgz", "integrity": "sha512-zdeb90cBkXoAwGvMRMYqS8lNNdZ9dYnEKxtXCi0ZmQ8OL1XF1b4BvuqjcVcm8ZJRsXSQCrSnGgd5gfaKTlGpcw==", "requires": { - "loader-utils": "1.1.0" + "loader-utils": "^1.0.2" }, "dependencies": { "loader-utils": { @@ -24259,9 +24549,9 @@ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", "integrity": "sha512-gkD9aSEG9UGglyPcDJqY9YBTUtCLKaBK6ihD2VP1d1X60lTfFspNZNulGBBbUZLkPygy4LySYHyxBpq+VhjObQ==", "requires": { - "big.js": "3.1.3", - "emojis-list": "2.1.0", - "json5": "0.5.1" + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0" } } } @@ -24271,9 +24561,9 @@ "resolved": "https://registry.npmjs.org/transformers/-/transformers-2.1.0.tgz", "integrity": "sha512-zJf5m2EIOngmBbDe2fhTPpCjzM2qkZVqrFJZc2jaln+KBeEaYKhS2QMOIkfVrNUyoOwqgbTwOHATzr3jZRQDyg==", "requires": { - "css": "1.0.8", - "promise": "2.0.0", - "uglify-js": "2.2.5" + "css": "~1.0.8", + "promise": "~2.0", + "uglify-js": "~2.2.5" }, "dependencies": { "is-promise": { @@ -24286,7 +24576,7 @@ "resolved": "https://registry.npmjs.org/promise/-/promise-2.0.0.tgz", "integrity": "sha512-OgMc+sxI3zWF8D5BJGtA0z7/IsrDy1/0cPaDv6HPpqa2fSTo7AdON5U10NbZCUeF+zCAj3PtfPE50Hf02386aA==", "requires": { - "is-promise": "1.0.1" + "is-promise": "~1" } }, "source-map": { @@ -24294,7 +24584,7 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", "integrity": "sha512-VtCvB9SIQhk3aF6h+N85EaqIaBFIAfZ9Cu+NJHHVvc8BbEcnvDcFw6sqQ2dQrT6SlOrZq3tIvyD9+EGq/lJryQ==", "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } }, "uglify-js": { @@ -24302,8 +24592,8 @@ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.2.5.tgz", "integrity": "sha512-viLk+/8G0zm2aKt1JJAVcz5J/5ytdiNaIsKgrre3yvSUjwVG6ZUujGH7E2TiPigZUwLYCe7eaIUEP2Zka2VJPA==", "requires": { - "optimist": "0.3.7", - "source-map": "0.1.43" + "optimist": "~0.3.5", + "source-map": "~0.1.7" } } } @@ -24339,7 +24629,7 @@ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "^5.0.1" } }, "tweetnacl": { @@ -24353,7 +24643,7 @@ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", "requires": { - "prelude-ls": "1.1.2" + "prelude-ls": "~1.1.2" } }, "type-is": { @@ -24362,7 +24652,7 @@ "integrity": "sha512-0uqZYZDiBICTVXEsNcDLueZLPgZ8FgGe8lmVDQ0FcVFUeaxsPbFWiz60ZChVw8VELIt7iGuCehOrZSYjYteWKQ==", "requires": { "media-typer": "0.3.0", - "mime-types": "2.1.15" + "mime-types": "~2.1.15" } }, "typedarray": { @@ -24380,8 +24670,8 @@ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.0.25.tgz", "integrity": "sha512-JO1XE0WZ9m6UpDkN7WCyPNAWI6EN3K0g40ekcoJKejViYmryJ0BaLxXjvra1IsAeIlJfq72scTbhl0jknsT2GA==", "requires": { - "commander": "2.9.0", - "source-map": "0.5.6" + "commander": "~2.9.0", + "source-map": "~0.5.1" }, "dependencies": { "commander": { @@ -24389,7 +24679,7 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", "integrity": "sha512-bmkUukX8wAOjHdN26xj5c4ctEV22TQ7dQYhSmuckKhToXrkUn0iIaolHdIxYYqD55nhpSPA9zPQ1yP57GdXP2A==", "requires": { - "graceful-readlink": "1.0.1" + "graceful-readlink": ">= 1.0.0" } }, "source-map": { @@ -24419,7 +24709,7 @@ "resolved": "https://registry.npmjs.org/uniqid/-/uniqid-4.1.1.tgz", "integrity": "sha512-jdaD46X0I0Q3NOlPEnZ+dfsiAE4L8mBg7UB7mpzc6JN2ERQd4TtpXXsTOO2RqwTFwPifyYv6zTMl/sODGfdcxA==", "requires": { - "macaddress": "0.2.8" + "macaddress": "^0.2.8" } }, "uniqs": { @@ -24458,8 +24748,8 @@ "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.1.9.tgz", "integrity": "sha512-gBwhoU2/umBG1wPK3MgGwLlaifJxzISumU7imrW9OV2hU7MMkmSfGQdN8AFnhBm1P/zamF7xt58Xq35/+pPrEg==", "requires": { - "querystringify": "1.0.0", - "requires-port": "1.0.0" + "querystringify": "~1.0.0", + "requires-port": "1.0.x" }, "dependencies": { "querystringify": { @@ -24473,7 +24763,7 @@ "version": "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz", "integrity": "sha512-KMWqdlOcjCYdtIJpicDSFBQ8nFwS2i9sslAd6f4+CBGcU4gist2REnr2fxj2YocvJFxSF3ZOHLYLVZnUxv4BZQ==", "requires": { - "os-homedir": "1.0.2" + "os-homedir": "^1.0.0" } }, "util": { @@ -24516,8 +24806,8 @@ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", "integrity": "sha512-VD0zBfAttoSxzPa+I+rF6ckOEEPSbifYNTSgRW5BsyfaD7gSE/uge00r2Xqa0d/yhF1MyHnMPHqLUdQRNimR2A==", "requires": { - "spdx-correct": "1.0.2", - "spdx-expression-parse": "1.0.4" + "spdx-correct": "~1.0.0", + "spdx-expression-parse": "~1.0.0" } }, "vary": { @@ -24556,9 +24846,9 @@ "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-0.2.9.tgz", "integrity": "sha512-hmLWdxNfe0Ou1xaRj+ublbOYUaZJfVz1VuHQfERLVlUrLS21gUaGa2gWRl8L5Ej1aUS3KxFN+1qoWK4kZLMvKw==", "requires": { - "async": "0.9.2", - "chokidar": "1.7.0", - "graceful-fs": "4.1.11" + "async": "^0.9.0", + "chokidar": "^1.0.0", + "graceful-fs": "^4.1.2" }, "dependencies": { "async": { @@ -24572,21 +24862,21 @@ "version": "https://registry.npmjs.org/webpack/-/webpack-1.15.0.tgz", "integrity": "sha512-+8bxNSHMZCWBa6hi++2A2pw9GmLUWY6lII+aIXlgUPpB+ClNrUKgP8hx0w+hxjWhX81hclUYPGFg+7NxgLTUYQ==", "requires": { - "acorn": "3.3.0", - "async": "1.5.2", - "clone": "1.0.2", - "enhanced-resolve": "0.9.1", - "interpret": "0.6.6", - "loader-utils": "0.2.17", - "memory-fs": "0.3.0", - "mkdirp": "0.5.1", - "node-libs-browser": "0.7.0", - "optimist": "0.6.1", - "supports-color": "3.2.3", - "tapable": "0.1.10", - "uglify-js": "2.7.5", - "watchpack": "0.2.9", - "webpack-core": "0.6.9" + "acorn": "^3.0.0", + "async": "^1.3.0", + "clone": "^1.0.2", + "enhanced-resolve": "~0.9.0", + "interpret": "^0.6.4", + "loader-utils": "^0.2.11", + "memory-fs": "~0.3.0", + "mkdirp": "~0.5.0", + "node-libs-browser": "^0.7.0", + "optimist": "~0.6.0", + "supports-color": "^3.1.0", + "tapable": "~0.1.8", + "uglify-js": "~2.7.3", + "watchpack": "^0.2.1", + "webpack-core": "~0.6.9" }, "dependencies": { "acorn": { @@ -24604,8 +24894,8 @@ "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", "integrity": "sha512-snN4O4TkigujZphWLN0E//nQmm7790RYaE53DdL7ZYwee2D8DDo9/EyYiKUfN3rneWUjhJnueija3G9I2i0h3g==", "requires": { - "minimist": "0.0.8", - "wordwrap": "0.0.3" + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" } }, "source-map": { @@ -24618,7 +24908,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==", "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } }, "uglify-js": { @@ -24626,10 +24916,10 @@ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.7.5.tgz", "integrity": "sha512-RvbIYn4DIadCg1MV7YP7OrpxnVrtEieZzbK0KSQvwWGAHojqWJxInkQhmtYGRo9PTwwkJkljIgzMyA1VitEc4Q==", "requires": { - "async": "0.2.10", - "source-map": "0.5.6", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" + "async": "~0.2.6", + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" }, "dependencies": { "async": { @@ -24646,8 +24936,8 @@ "resolved": "https://registry.npmjs.org/webpack-core/-/webpack-core-0.6.9.tgz", "integrity": "sha512-P6ZUGXn5buTEZyTStCHHLwtWGKSm/jA629Zgp4pcHSsy60CCsT9MaHDxNIPL+GGJ2KwOgI6ORwQtHcrYHAt2UQ==", "requires": { - "source-list-map": "0.1.8", - "source-map": "0.4.4" + "source-list-map": "~0.1.7", + "source-map": "~0.4.1" } }, "webpack-dev-middleware": { @@ -24655,10 +24945,10 @@ "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-1.11.0.tgz", "integrity": "sha512-51YARPK2lHMRml5qcfNukC01RF4Dqi/ajM3DsqHK77pC0icIg2A922ZxpgP//Ks2QcLmnbabz2cj/qK/28v0/Q==", "requires": { - "memory-fs": "0.4.1", - "mime": "1.3.4", - "path-is-absolute": "1.0.1", - "range-parser": "1.2.0" + "memory-fs": "~0.4.1", + "mime": "^1.3.4", + "path-is-absolute": "^1.0.0", + "range-parser": "^1.0.3" }, "dependencies": { "isarray": { @@ -24671,8 +24961,8 @@ "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", "integrity": "sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ==", "requires": { - "errno": "0.1.4", - "readable-stream": "2.3.3" + "errno": "^0.1.3", + "readable-stream": "^2.0.1" } }, "readable-stream": { @@ -24680,13 +24970,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.0.3", + "util-deprecate": "~1.0.1" } }, "string_decoder": { @@ -24694,7 +24984,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "~5.1.0" } } } @@ -24703,19 +24993,19 @@ "version": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-1.16.5.tgz", "integrity": "sha512-on9j8SBuJXa2lzyIAv0DasJT8SteshUrEjjKc/mc8D68U7RN0mIBZksAcjnPW72RSJa9scWZ+C+Dme76LDH+lA==", "requires": { - "compression": "1.7.0", - "connect-history-api-fallback": "1.3.0", - "express": "4.15.3", - "http-proxy-middleware": "0.17.4", + "compression": "^1.5.2", + "connect-history-api-fallback": "^1.3.0", + "express": "^4.13.3", + "http-proxy-middleware": "~0.17.1", "open": "0.0.5", - "optimist": "0.6.1", - "serve-index": "1.9.0", - "sockjs": "0.3.18", - "sockjs-client": "1.1.4", - "stream-cache": "0.0.2", - "strip-ansi": "3.0.1", - "supports-color": "3.2.3", - "webpack-dev-middleware": "1.11.0" + "optimist": "~0.6.1", + "serve-index": "^1.7.2", + "sockjs": "^0.3.15", + "sockjs-client": "^1.0.3", + "stream-cache": "~0.0.1", + "strip-ansi": "^3.0.0", + "supports-color": "^3.1.1", + "webpack-dev-middleware": "^1.10.2" }, "dependencies": { "optimist": { @@ -24723,8 +25013,8 @@ "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", "integrity": "sha512-snN4O4TkigujZphWLN0E//nQmm7790RYaE53DdL7ZYwee2D8DDo9/EyYiKUfN3rneWUjhJnueija3G9I2i0h3g==", "requires": { - "minimist": "0.0.8", - "wordwrap": "0.0.3" + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" } }, "supports-color": { @@ -24732,7 +25022,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==", "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -24742,7 +25032,7 @@ "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz", "integrity": "sha512-oBx6ZM1Gs5q2jwZuSN/Qxyy/fbgomV8+vqsmipaPKB/74hjHlKuM07jNmRhn4qa2AdUwsgxrltq+gaPsHgcl0Q==", "requires": { - "websocket-extensions": "0.1.1" + "websocket-extensions": ">=0.1.1" } }, "websocket-extensions": { @@ -24765,7 +25055,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-1.2.14.tgz", "integrity": "sha512-16uPglFkRPzgiUXYMi1Jf8Z5EzN1iB4V0ZtMXcHZnwsBtQhhHeCqoWw7tsUY42hJGNDWtUsVLTjakIa5BgAxCw==", "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { @@ -24778,7 +25068,7 @@ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", "requires": { - "string-width": "1.0.2" + "string-width": "^1.0.2" } }, "winchan": { @@ -24796,8 +25086,8 @@ "resolved": "https://registry.npmjs.org/with/-/with-4.0.3.tgz", "integrity": "sha512-mJZFpyEc1JTAdxhi/vhVeAM2S7vsltEKDiexDDo1HuAzlYKhcVUU6cwY8cHrFYdt82ZNkfKCeyhA3IYFegI0Kg==", "requires": { - "acorn": "1.2.2", - "acorn-globals": "1.0.9" + "acorn": "^1.0.1", + "acorn-globals": "^1.0.3" }, "dependencies": { "acorn": { @@ -24817,8 +25107,8 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "integrity": "sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==", "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" } }, "wrappy": { @@ -24831,7 +25121,7 @@ "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", "integrity": "sha512-CJ17OoULEKXpA5pef3qLj5AxTJ6mSt7g84he2WIskKwqFO4T97d5V7Tadl0DYDk7qyUOQD5WlUlOMChaYrhxeA==", "requires": { - "mkdirp": "0.5.1" + "mkdirp": "^0.5.1" } }, "xml-char-classes": { @@ -24864,7 +25154,7 @@ "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", "integrity": "sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ==", "requires": { - "object-keys": "0.4.0" + "object-keys": "~0.4.0" } }, "y18n": { @@ -24882,9 +25172,9 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", "integrity": "sha512-QFzUah88GAGy9lyDKGBqZdkYApt63rCXYBGYnEP4xDJPXNqXXnBDACnbrXnViV6jRSqAePwrATi2i8mfYm4L1A==", "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", "window-size": "0.1.0" } }, @@ -24893,7 +25183,7 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", "integrity": "sha512-YQY9oiTXNdi9y+RJMjqIwQklfEc4flSuVCuXZS6bRTEAY76eL3bKsZbs6KTsWxHsGXJdSgp1Jj/8AmLpGStEnQ==", "requires": { - "camelcase": "3.0.0" + "camelcase": "^3.0.0" }, "dependencies": { "camelcase": { @@ -24912,19 +25202,20 @@ }, "tc-ui": { "version": "git+https://github.com/appirio-tech/tc-ui.git#e577a0e704136f1e9ecce92ce4c0626aab932691", - "requires": { - "classnames": "2.2.6", - "lodash": "4.17.11", - "moment": "2.24.0", - "node-neat": "1.7.2", - "react": "0.14.9", - "react-datetime": "2.7.1", - "react-dom": "0.14.9", - "react-dropzone": "3.13.4", - "react-redux": "4.4.9", - "react-router": "2.8.1", - "react-select": "0.9.1", - "redux": "3.7.2" + "from": "git+https://github.com/appirio-tech/tc-ui.git#feature/connectv2", + "requires": { + "classnames": "^2.2.3", + "lodash": "^4.0.0", + "moment": "^2.11.2", + "node-neat": "~1.7.1-beta1", + "react": "^0.14.7", + "react-datetime": "^2.0.2", + "react-dom": "^0.14.7", + "react-dropzone": "^3.3.2", + "react-redux": "^4.2.1", + "react-router": "^2.0.0-rc6", + "react-select": "^0.9.1", + "redux": "^3.3.1" }, "dependencies": { "fbjs": { @@ -25033,7 +25324,7 @@ "resolved": "https://registry.npmjs.org/tcomb-validation/-/tcomb-validation-3.4.1.tgz", "integrity": "sha512-urVVMQOma4RXwiVCa2nM2eqrAomHROHvWPuj6UkDGz/eb5kcy0x6P0dVt6kzpUZtYMNoAqJLWmz1BPtxrtjtrA==", "requires": { - "tcomb": "3.2.29" + "tcomb": "^3.0.0" } }, "text-encoding": { @@ -25064,8 +25355,8 @@ "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "dev": true, "requires": { - "readable-stream": "2.3.6", - "xtend": "4.0.1" + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" }, "dependencies": { "process-nextick-args": { @@ -25080,13 +25371,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" } }, "string_decoder": { @@ -25095,7 +25386,7 @@ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } } } @@ -25118,9 +25409,19 @@ "integrity": "sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==", "dev": true, "requires": { - "setimmediate": "1.0.5" + "setimmediate": "^1.0.4" } }, + "tiny-invariant": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.0.4.tgz", + "integrity": "sha512-lMhRd/djQJ3MoaHEBrw8e2/uM4rs9YMNk0iOr8rHQ0QdbM7D4l0gFl3szKdeixrlyfm9Zqi4dxHCM2qVG8ND5g==" + }, + "tiny-warning": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.2.tgz", + "integrity": "sha512-rru86D9CpQRLvsFG5XFdy0KdLAvjdQDyZCsRcuu60WtzFylDM3eAWSxEVz5kzL2Gp544XiUvPbVKtOA/txLi9Q==" + }, "tinycolor2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.1.tgz", @@ -25131,8 +25432,8 @@ "resolved": "https://registry.npmjs.org/title-case/-/title-case-1.1.2.tgz", "integrity": "sha1-+uSmrlRr+iLQg6DuqRCkDRLtT1o=", "requires": { - "sentence-case": "1.1.3", - "upper-case": "1.1.3" + "sentence-case": "^1.1.1", + "upper-case": "^1.0.3" } }, "tlds": { @@ -25146,7 +25447,7 @@ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, "requires": { - "os-tmpdir": "1.0.2" + "os-tmpdir": "~1.0.2" } }, "to-arraybuffer": { @@ -25166,10 +25467,10 @@ "integrity": "sha1-yzhIXxNvS+yJ4l+Jeh1gjAlik+k=", "dev": true, "requires": { - "arrify": "1.0.1", - "image-size": "0.5.5", - "parse-png": "1.1.2", - "resize-img": "1.1.2" + "arrify": "^1.0.1", + "image-size": "^0.5.0", + "parse-png": "^1.0.0", + "resize-img": "^1.1.0" }, "dependencies": { "image-size": { @@ -25192,7 +25493,7 @@ "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "to-regex": { @@ -25201,10 +25502,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": { @@ -25213,8 +25514,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": { @@ -25223,7 +25524,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } } } @@ -25233,15 +25534,15 @@ "resolved": "https://registry.npmjs.org/topcoder-react-utils/-/topcoder-react-utils-0.0.39.tgz", "integrity": "sha512-7H2O7PIZ1zeDYiD3BxaqoB/ChzQQyLmMt/vfl9kP9zyJ5S9WeH9Ro8i5Rm3TUdGWzqmvJxT3RCAgBoAQIb04ug==", "requires": { - "babel-runtime": "6.26.0", - "lodash": "4.17.11", - "moment": "2.24.0", - "prop-types": "15.7.2", - "react": "16.8.3", - "react-css-super-themr": "2.2.0", - "react-dom": "16.8.3", - "react-router-dom": "4.3.1", - "url-parse": "1.4.4" + "babel-runtime": "^6.26.0", + "lodash": "^4.17.4", + "moment": "^2.20.1", + "prop-types": "^15.6.0", + "react": "^16.1.1", + "react-css-super-themr": "^2.2.0", + "react-dom": "^16.1.1", + "react-router-dom": "^4.2.2", + "url-parse": "^1.2.0" }, "dependencies": { "object-assign": { @@ -25250,25 +25551,25 @@ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, "react": { - "version": "16.8.3", - "resolved": "https://registry.npmjs.org/react/-/react-16.8.3.tgz", - "integrity": "sha512-3UoSIsEq8yTJuSu0luO1QQWYbgGEILm+eJl2QN/VLDi7hL+EN18M3q3oVZwmVzzBJ3DkM7RMdRwBmZZ+b4IzSA==", + "version": "16.8.6", + "resolved": "https://registry.npmjs.org/react/-/react-16.8.6.tgz", + "integrity": "sha512-pC0uMkhLaHm11ZSJULfOBqV4tIZkx87ZLvbbQYunNixAAvjnC+snJCg0XQXn9VIsttVsbZP/H/ewzgsd5fxKXw==", "requires": { - "loose-envify": "1.4.0", - "object-assign": "4.1.1", - "prop-types": "15.7.2", - "scheduler": "0.13.3" + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "scheduler": "^0.13.6" } }, "react-dom": { - "version": "16.8.3", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.8.3.tgz", - "integrity": "sha512-ttMem9yJL4/lpItZAQ2NTFAbV7frotHk5DZEHXUOws2rMmrsvh1Na7ThGT0dTzUIl6pqTOi5tYREfL8AEna3lA==", + "version": "16.8.6", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.8.6.tgz", + "integrity": "sha512-1nL7PIq9LTL3fthPqwkvr2zY7phIPjYrT0jp4HjyEQrEROnw4dG41VVwi/wfoCneoleqrNX7iAD+pXebJZwrwA==", "requires": { - "loose-envify": "1.4.0", - "object-assign": "4.1.1", - "prop-types": "15.7.2", - "scheduler": "0.13.3" + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "scheduler": "^0.13.6" } } } @@ -25284,7 +25585,7 @@ "resolved": "https://registry.npmjs.org/touch/-/touch-2.0.2.tgz", "integrity": "sha512-qjNtvsFXTRq7IuMLweVgFxmEuQ6gLbRs2jQxL80TtZ31dEKWYIxRXquij6w6VimyDek5hD3PytljHmEtAs2u0A==", "requires": { - "nopt": "1.0.10" + "nopt": "~1.0.10" } }, "tough-cookie": { @@ -25293,8 +25594,8 @@ "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", "dev": true, "requires": { - "psl": "1.1.31", - "punycode": "2.1.1" + "psl": "^1.1.28", + "punycode": "^2.1.1" } }, "tr46": { @@ -25344,7 +25645,7 @@ "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", "dev": true, "requires": { - "glob": "7.1.3" + "glob": "^7.1.2" }, "dependencies": { "glob": { @@ -25353,12 +25654,12 @@ "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "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" } } } @@ -25380,7 +25681,7 @@ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "dev": true, "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.0.1" } }, "tweetnacl": { @@ -25395,7 +25696,7 @@ "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "dev": true, "requires": { - "prelude-ls": "1.1.2" + "prelude-ls": "~1.1.2" } }, "type-detect": { @@ -25411,7 +25712,7 @@ "dev": true, "requires": { "media-typer": "0.3.0", - "mime-types": "2.1.22" + "mime-types": "~2.1.18" } }, "typedarray": { @@ -25434,10 +25735,10 @@ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.6.4.tgz", "integrity": "sha1-ZeovswWck5RpLxX+2HwrNsFrmt8=", "requires": { - "async": "0.2.10", - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" + "async": "~0.2.6", + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" }, "dependencies": { "source-map": { @@ -25458,14 +25759,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.6.1", - "source-map": "0.6.1", - "uglify-es": "3.3.9", - "webpack-sources": "1.3.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": { @@ -25480,8 +25781,8 @@ "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", "dev": true, "requires": { - "ajv": "6.10.0", - "ajv-keywords": "3.4.0" + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0" } }, "source-map": { @@ -25496,8 +25797,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" } } } @@ -25507,7 +25808,7 @@ "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-6.1.0.tgz", "integrity": "sha512-2TzEm0pLKauMBZfAZXsgQvLpZHEp95891frCZdGDrSG7dWYaIQhedwLAzi0X8pR8KHNqlmuYEb2cEgbQzr050A==", "requires": { - "invariant": "2.2.4" + "invariant": "^2.2.4" } }, "underscore": { @@ -25526,8 +25827,8 @@ "integrity": "sha512-+XZuV691Cn4zHsK0vkKYwBEwB74T3IZIcxrgn2E4rKwTfFyI1zCh7X7grwh9Re08fdPlarIdyWgI8aVB3F5A5g==", "dev": true, "requires": { - "inherits": "2.0.3", - "xtend": "4.0.1" + "inherits": "^2.0.1", + "xtend": "^4.0.1" } }, "unified": { @@ -25536,12 +25837,12 @@ "integrity": "sha512-1k+KPhlVtqmG99RaTbAv/usu85fcSRu3wY8X+vnsEhIxNP5VbVIDiXnLqyKIG+UMdyTg0ZX9EI6k2AfjJkHPtA==", "dev": true, "requires": { - "bail": "1.0.3", - "extend": "3.0.2", - "is-plain-obj": "1.1.0", - "trough": "1.0.3", - "vfile": "2.3.0", - "x-is-string": "0.1.0" + "bail": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^1.1.0", + "trough": "^1.0.0", + "vfile": "^2.0.0", + "x-is-string": "^0.1.0" } }, "union-class-names": { @@ -25555,10 +25856,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": { @@ -25567,7 +25868,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "set-value": { @@ -25576,10 +25877,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" } } } @@ -25602,7 +25903,7 @@ "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", "dev": true, "requires": { - "unique-slug": "2.0.1" + "unique-slug": "^2.0.0" } }, "unique-slug": { @@ -25611,7 +25912,7 @@ "integrity": "sha512-n9cU6+gITaVu7VGj1Z8feKMmfAjEAQGhwD9fE3zvpRRa0wEIx8ODYkVGfSc94M2OX00tUFV8wH3zYbm1I8mxFg==", "dev": true, "requires": { - "imurmurhash": "0.1.4" + "imurmurhash": "^0.1.4" } }, "unist-util-find-all-after": { @@ -25620,7 +25921,7 @@ "integrity": "sha512-nDl79mKpffXojLpCimVXnxhlH/jjaTnDuScznU9J4jjsaUtBdDbxmlc109XtcqxY4SDO0SwzngsxxW8DIISt1w==", "dev": true, "requires": { - "unist-util-is": "2.1.2" + "unist-util-is": "^2.0.0" } }, "unist-util-is": { @@ -25635,7 +25936,7 @@ "integrity": "sha512-XxoNOBvq1WXRKXxgnSYbtCF76TJrRoe5++pD4cCBsssSiWSnPEktyFrFLE8LTk3JW5mt9hB0Sk5zn4x/JeWY7Q==", "dev": true, "requires": { - "unist-util-visit": "1.4.0" + "unist-util-visit": "^1.1.0" } }, "unist-util-stringify-position": { @@ -25650,7 +25951,7 @@ "integrity": "sha512-FiGu34ziNsZA3ZUteZxSFaczIjGmksfSgdKqBfOejrrfzyUy5b7YrlzT1Bcvi+djkYDituJDy2XB7tGTeBieKw==", "dev": true, "requires": { - "unist-util-visit-parents": "2.0.1" + "unist-util-visit-parents": "^2.0.0" } }, "unist-util-visit-parents": { @@ -25659,7 +25960,7 @@ "integrity": "sha512-6B0UTiMfdWql4cQ03gDTCSns+64Zkfo2OCbK31Ov0uMizEz+CJeAp0cgZVb5Fhmcd7Bct2iRNywejT0orpbqUA==", "dev": true, "requires": { - "unist-util-is": "2.1.2" + "unist-util-is": "^2.1.2" } }, "unpipe": { @@ -25674,8 +25975,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": { @@ -25684,9 +25985,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": { @@ -25709,9 +26010,9 @@ } }, "upath": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.0.tgz", - "integrity": "sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.2.tgz", + "integrity": "sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q==", "dev": true }, "upper-case": { @@ -25724,7 +26025,7 @@ "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz", "integrity": "sha1-XXm+3P8UQZUY/S7bCgUHybaFkRU=", "requires": { - "upper-case": "1.1.3" + "upper-case": "^1.1.1" } }, "uri-js": { @@ -25732,7 +26033,7 @@ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", "requires": { - "punycode": "2.1.1" + "punycode": "^2.1.0" } }, "urix": { @@ -25759,12 +26060,12 @@ } }, "url-parse": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.4.tgz", - "integrity": "sha512-/92DTTorg4JjktLNLe6GPS2/RvAd/RGr6LuktmWSMLEOa6rjnlrFXNgSbSmkNvCoL2T028A0a1JaJLzRMlFoHg==", + "version": "1.4.6", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.6.tgz", + "integrity": "sha512-/B8AD9iQ01seoXmXf9z/MjLZQIdOoYl/+gvsQF6+mpnxaTfG9P7srYaiqaDMyKkR36XMXfhqSHss5MyFAO8lew==", "requires": { - "querystringify": "2.1.0", - "requires-port": "1.0.0" + "querystringify": "^2.0.0", + "requires-port": "^1.0.0" } }, "url-regex": { @@ -25773,7 +26074,7 @@ "integrity": "sha1-260eDJ4p4QXdCx8J9oYvf9tIJyQ=", "dev": true, "requires": { - "ip-regex": "1.0.3" + "ip-regex": "^1.0.1" } }, "use": { @@ -25825,7 +26126,7 @@ "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", "dev": true, "requires": { - "user-home": "1.1.1" + "user-home": "^1.1.1" } }, "validate-npm-package-license": { @@ -25834,8 +26135,8 @@ "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dev": true, "requires": { - "spdx-correct": "3.1.0", - "spdx-expression-parse": "3.0.0" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, "value-equal": { @@ -25848,8 +26149,8 @@ "resolved": "https://registry.npmjs.org/vanilla-picker/-/vanilla-picker-2.4.2.tgz", "integrity": "sha512-fAjOGwruYIrRSWtMfriwE2zya2IDHcI7ncundd1NWh/Py3WzuNIAcj6dwaoG7f72ZT9YHRCAfy84f0BoJb0tyA==", "requires": { - "@sphinxxxx/color-conversion": "2.2.1", - "drag-tracker": "1.0.0" + "@sphinxxxx/color-conversion": "^2.1.1", + "drag-tracker": "^1.0.0" } }, "vary": { @@ -25870,9 +26171,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" } }, "vfile": { @@ -25881,10 +26182,10 @@ "integrity": "sha512-ASt4mBUHcTpMKD/l5Q+WJXNtshlWxOogYyGYYrg4lt/vuRjC1EFQtlAofL5VmtVNIZJzWYFJjzGWZ0Gw8pzW1w==", "dev": true, "requires": { - "is-buffer": "1.1.6", + "is-buffer": "^1.1.4", "replace-ext": "1.0.0", - "unist-util-stringify-position": "1.1.2", - "vfile-message": "1.1.1" + "unist-util-stringify-position": "^1.0.0", + "vfile-message": "^1.0.0" }, "dependencies": { "replace-ext": { @@ -25907,7 +26208,7 @@ "integrity": "sha512-1WmsopSGhWt5laNir+633LszXvZ+Z/lxveBf6yhGsqnQIhlhzooZae7zV6YVM1Sdkw68dtAW3ow0pOdPANugvA==", "dev": true, "requires": { - "unist-util-stringify-position": "1.1.2" + "unist-util-stringify-position": "^1.1.1" } }, "vinyl": { @@ -25916,8 +26217,8 @@ "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", "dev": true, "requires": { - "clone": "1.0.4", - "clone-stats": "0.0.1", + "clone": "^1.0.0", + "clone-stats": "^0.0.1", "replace-ext": "0.0.1" } }, @@ -25935,7 +26236,7 @@ "resolved": "https://registry.npmjs.org/warning/-/warning-2.1.0.tgz", "integrity": "sha1-ISINnGOvx3qMkhEeARr3Bc4MaQE=", "requires": { - "loose-envify": "1.4.0" + "loose-envify": "^1.0.0" } }, "watch-run": { @@ -25944,9 +26245,9 @@ "integrity": "sha1-ldNaqn9Zdcj9yP/Tzzv/9YY8oEw=", "dev": true, "requires": { - "commander": "2.9.0", - "debug": "2.6.9", - "gaze": "1.1.3" + "commander": "~2.9.0", + "debug": "~2.6.0", + "gaze": "~1.1.2" } }, "watchpack": { @@ -25955,9 +26256,9 @@ "integrity": "sha1-Yuqkq15bo1/fwBgnVibjwPXj+ws=", "dev": true, "requires": { - "async": "0.9.2", - "chokidar": "1.7.0", - "graceful-fs": "4.1.15" + "async": "^0.9.0", + "chokidar": "^1.0.0", + "graceful-fs": "^4.1.2" }, "dependencies": { "async": { @@ -25974,7 +26275,7 @@ "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", "dev": true, "requires": { - "minimalistic-assert": "1.0.1" + "minimalistic-assert": "^1.0.0" } }, "webidl-conversions": { @@ -25989,28 +26290,28 @@ "integrity": "sha512-Sw7MdIIOv/nkzPzee4o0EdvCuPmxT98+vVpIvwtcwcF1Q4SDSNp92vwcKc4REe7NItH9f1S4ra9FuQ7yuYZ8bQ==", "dev": true, "requires": { - "acorn": "5.7.3", - "acorn-dynamic-import": "2.0.2", - "ajv": "6.10.0", - "ajv-keywords": "3.4.0", - "async": "2.6.2", - "enhanced-resolve": "3.4.1", - "escope": "3.6.0", - "interpret": "1.2.0", - "json-loader": "0.5.7", - "json5": "0.5.1", - "loader-runner": "2.4.0", - "loader-utils": "1.1.0", - "memory-fs": "0.4.1", - "mkdirp": "0.5.1", - "node-libs-browser": "2.2.0", - "source-map": "0.5.7", - "supports-color": "4.5.0", - "tapable": "0.2.9", - "uglifyjs-webpack-plugin": "0.4.6", - "watchpack": "1.6.0", - "webpack-sources": "1.3.0", - "yargs": "8.0.2" + "acorn": "^5.0.0", + "acorn-dynamic-import": "^2.0.0", + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0", + "async": "^2.1.2", + "enhanced-resolve": "^3.4.0", + "escope": "^3.6.0", + "interpret": "^1.0.0", + "json-loader": "^0.5.4", + "json5": "^0.5.1", + "loader-runner": "^2.3.0", + "loader-utils": "^1.1.0", + "memory-fs": "~0.4.1", + "mkdirp": "~0.5.0", + "node-libs-browser": "^2.0.0", + "source-map": "^0.5.3", + "supports-color": "^4.2.1", + "tapable": "^0.2.7", + "uglifyjs-webpack-plugin": "^0.4.6", + "watchpack": "^1.4.0", + "webpack-sources": "^1.0.1", + "yargs": "^8.0.2" }, "dependencies": { "anymatch": { @@ -26019,8 +26320,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": { "normalize-path": { @@ -26029,7 +26330,7 @@ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "dev": true, "requires": { - "remove-trailing-separator": "1.1.0" + "remove-trailing-separator": "^1.0.1" } } } @@ -26052,7 +26353,7 @@ "integrity": "sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==", "dev": true, "requires": { - "lodash": "4.17.11" + "lodash": "^4.17.11" } }, "braces": { @@ -26061,16 +26362,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": { @@ -26079,7 +26380,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -26090,27 +26391,27 @@ "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", "dev": true, "requires": { - "pako": "1.0.10" + "pako": "~1.0.5" } }, "chokidar": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.2.tgz", - "integrity": "sha512-IwXUx0FXc5ibYmPC2XeEj5mpXoV66sR+t3jqu2NS2GYwCktt3KF1/Qqjws/NkegajBA4RbZ5+DDwlOiJsxDHEg==", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.5.tgz", + "integrity": "sha512-i0TprVWp+Kj4WRPtInjexJ8Q+BqTE909VpH8xVhXrJkoc5QC8VO9TryGOqTr+2hljzc1sC62t22h5tZePodM/A==", "dev": true, "requires": { - "anymatch": "2.0.0", - "async-each": "1.0.1", - "braces": "2.3.2", - "fsevents": "1.2.7", - "glob-parent": "3.1.0", - "inherits": "2.0.3", - "is-binary-path": "1.0.1", - "is-glob": "4.0.0", - "normalize-path": "3.0.0", - "path-is-absolute": "1.0.1", - "readdirp": "2.2.1", - "upath": "1.1.0" + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" } }, "crypto-browserify": { @@ -26119,17 +26420,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.17", - "public-encrypt": "4.0.3", - "randombytes": "2.1.0", - "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" } }, "enhanced-resolve": { @@ -26138,10 +26439,10 @@ "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=", "dev": true, "requires": { - "graceful-fs": "4.1.15", - "memory-fs": "0.4.1", - "object-assign": "4.1.1", - "tapable": "0.2.9" + "graceful-fs": "^4.1.2", + "memory-fs": "^0.4.0", + "object-assign": "^4.0.1", + "tapable": "^0.2.7" } }, "events": { @@ -26156,13 +26457,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": { @@ -26171,7 +26472,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -26180,7 +26481,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { @@ -26189,7 +26490,7 @@ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -26198,7 +26499,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -26209,7 +26510,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -26218,7 +26519,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -26229,9 +26530,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": { @@ -26248,14 +26549,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": { @@ -26264,7 +26565,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { @@ -26273,7 +26574,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -26284,10 +26585,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": { @@ -26296,7 +26597,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -26307,8 +26608,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": { @@ -26317,7 +26618,7 @@ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "dev": true, "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.0" } } } @@ -26346,7 +26647,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -26355,7 +26656,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -26364,9 +26665,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": { @@ -26381,16 +26682,16 @@ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-glob": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", - "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", "dev": true, "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.1" } }, "is-number": { @@ -26399,7 +26700,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -26408,7 +26709,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -26425,8 +26726,8 @@ "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", "dev": true, "requires": { - "errno": "0.1.7", - "readable-stream": "2.0.6" + "errno": "^0.1.3", + "readable-stream": "^2.0.1" } }, "micromatch": { @@ -26435,19 +26736,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" } }, "node-libs-browser": { @@ -26456,28 +26757,28 @@ "integrity": "sha512-5MQunG/oyOaBdttrL40dA7bUfPORLRWMUJLQtMg7nluxUvk5XwnLdL9twQHFAjRx/y7mIMkLKT9++qPbbk6BZA==", "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": "3.0.0", - "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": "^3.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.2", - "stream-http": "2.8.3", - "string_decoder": "1.2.0", - "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.11.1", + "url": "^0.11.0", + "util": "^0.11.0", "vm-browserify": "0.0.4" }, "dependencies": { @@ -26487,13 +26788,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" }, "dependencies": { "string_decoder": { @@ -26502,7 +26803,7 @@ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } } } @@ -26533,9 +26834,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" } }, "pako": { @@ -26574,7 +26875,7 @@ "integrity": "sha512-6YqyX6ZWEYguAxgZzHGL7SsCeGx3V2TtOTqZz1xSTSWnqsbWwbptafNyvf/ACquZUXV3DANr5BDIwNYe1mN42w==", "dev": true, "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } }, "supports-color": { @@ -26583,7 +26884,7 @@ "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", "dev": true, "requires": { - "has-flag": "2.0.0" + "has-flag": "^2.0.0" } }, "tapable": { @@ -26598,9 +26899,9 @@ "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", "dev": true, "requires": { - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" }, "dependencies": { "yargs": { @@ -26609,9 +26910,9 @@ "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", "dev": true, "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", "window-size": "0.1.0" } } @@ -26623,9 +26924,9 @@ "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=", "dev": true, "requires": { - "source-map": "0.5.7", - "uglify-js": "2.8.29", - "webpack-sources": "1.3.0" + "source-map": "^0.5.6", + "uglify-js": "^2.8.29", + "webpack-sources": "^1.0.1" } }, "watchpack": { @@ -26634,9 +26935,9 @@ "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==", "dev": true, "requires": { - "chokidar": "2.1.2", - "graceful-fs": "4.1.15", - "neo-async": "2.6.0" + "chokidar": "^2.0.2", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0" } }, "which-module": { @@ -26657,19 +26958,19 @@ "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", "dev": true, "requires": { - "camelcase": "4.1.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.3", - "os-locale": "2.1.0", - "read-pkg-up": "2.0.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": "7.0.0" + "camelcase": "^4.1.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "read-pkg-up": "^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": "^7.0.0" }, "dependencies": { "camelcase": { @@ -26684,9 +26985,9 @@ "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wrap-ansi": "2.1.0" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" }, "dependencies": { "string-width": { @@ -26695,9 +26996,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" } } } @@ -26710,7 +27011,7 @@ "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", "dev": true, "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" }, "dependencies": { "camelcase": { @@ -26729,8 +27030,8 @@ "integrity": "sha1-/FcViMhVjad76e+23r3Fo7FyvcI=", "dev": true, "requires": { - "source-list-map": "0.1.8", - "source-map": "0.4.4" + "source-list-map": "~0.1.7", + "source-map": "~0.4.1" }, "dependencies": { "source-list-map": { @@ -26747,11 +27048,11 @@ "integrity": "sha512-FCrqPy1yy/sN6U/SaEZcHKRXGlqU0DUaEBL45jkUYoB8foVb6wCnbIJ1HKIx+qUFTW+3JpVcCJCxZ8VATL4e+A==", "dev": true, "requires": { - "memory-fs": "0.4.1", - "mime": "1.6.0", - "path-is-absolute": "1.0.1", - "range-parser": "1.2.0", - "time-stamp": "2.2.0" + "memory-fs": "~0.4.1", + "mime": "^1.5.0", + "path-is-absolute": "^1.0.0", + "range-parser": "^1.0.3", + "time-stamp": "^2.0.0" }, "dependencies": { "memory-fs": { @@ -26760,43 +27061,43 @@ "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", "dev": true, "requires": { - "errno": "0.1.7", - "readable-stream": "2.0.6" + "errno": "^0.1.3", + "readable-stream": "^2.0.1" } } } }, "webpack-dev-server": { - "version": "2.11.3", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-2.11.3.tgz", - "integrity": "sha512-Qz22YEFhWx+M2vvJ+rQppRv39JA0h5NNbOOdODApdX6iZ52Diz7vTPXjF7kJlfn+Uc24Qr48I3SZ9yncQwRycg==", + "version": "2.11.5", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-2.11.5.tgz", + "integrity": "sha512-7TdOKKt7G3sWEhPKV0zP+nD0c4V9YKUJ3wDdBwQsZNo58oZIRoVIu66pg7PYkBW8A74msP9C2kLwmxGHndz/pw==", "dev": true, "requires": { "ansi-html": "0.0.7", - "array-includes": "3.0.3", - "bonjour": "3.5.0", - "chokidar": "2.1.2", - "compression": "1.7.3", - "connect-history-api-fallback": "1.6.0", - "debug": "3.2.6", - "del": "3.0.0", - "express": "4.16.4", - "html-entities": "1.2.1", - "http-proxy-middleware": "0.17.4", - "import-local": "1.0.0", + "array-includes": "^3.0.3", + "bonjour": "^3.5.0", + "chokidar": "^2.1.2", + "compression": "^1.7.3", + "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.19.1", + "import-local": "^1.0.0", "internal-ip": "1.2.0", - "ip": "1.1.5", - "killable": "1.0.1", - "loglevel": "1.6.1", - "opn": "5.4.0", - "portfinder": "1.0.20", - "selfsigned": "1.10.4", - "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.9.1", "sockjs": "0.3.19", "sockjs-client": "1.1.5", - "spdy": "3.4.7", - "strip-ansi": "3.0.1", - "supports-color": "5.5.0", + "spdy": "^4.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^5.1.0", "webpack-dev-middleware": "1.12.2", "yargs": "6.6.0" }, @@ -26807,8 +27108,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": { "normalize-path": { @@ -26817,7 +27118,7 @@ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "dev": true, "requires": { - "remove-trailing-separator": "1.1.0" + "remove-trailing-separator": "^1.0.1" } } } @@ -26840,16 +27141,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": { @@ -26858,7 +27159,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -26870,23 +27171,23 @@ "dev": true }, "chokidar": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.2.tgz", - "integrity": "sha512-IwXUx0FXc5ibYmPC2XeEj5mpXoV66sR+t3jqu2NS2GYwCktt3KF1/Qqjws/NkegajBA4RbZ5+DDwlOiJsxDHEg==", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.5.tgz", + "integrity": "sha512-i0TprVWp+Kj4WRPtInjexJ8Q+BqTE909VpH8xVhXrJkoc5QC8VO9TryGOqTr+2hljzc1sC62t22h5tZePodM/A==", "dev": true, "requires": { - "anymatch": "2.0.0", - "async-each": "1.0.1", - "braces": "2.3.2", - "fsevents": "1.2.7", - "glob-parent": "3.1.0", - "inherits": "2.0.3", - "is-binary-path": "1.0.1", - "is-glob": "4.0.0", - "normalize-path": "3.0.0", - "path-is-absolute": "1.0.1", - "readdirp": "2.2.1", - "upath": "1.1.0" + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" } }, "cliui": { @@ -26895,9 +27196,9 @@ "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wrap-ansi": "2.1.0" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" } }, "debug": { @@ -26906,7 +27207,7 @@ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "dev": true, "requires": { - "ms": "2.1.1" + "ms": "^2.1.1" }, "dependencies": { "ms": { @@ -26923,13 +27224,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": { "debug": { @@ -26947,7 +27248,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -26956,7 +27257,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { @@ -26965,7 +27266,7 @@ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -26974,7 +27275,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -26985,7 +27286,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -26994,7 +27295,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -27005,9 +27306,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": { @@ -27024,14 +27325,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": { @@ -27040,7 +27341,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { @@ -27049,7 +27350,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -27060,10 +27361,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": { @@ -27072,7 +27373,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -27083,8 +27384,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" } }, "glob-parent": { @@ -27093,8 +27394,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": { @@ -27103,7 +27404,7 @@ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "dev": true, "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.0" } } } @@ -27114,7 +27415,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -27123,7 +27424,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -27132,9 +27433,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": { @@ -27149,16 +27450,16 @@ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-glob": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", - "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", "dev": true, "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.1" } }, "is-number": { @@ -27167,7 +27468,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -27176,7 +27477,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -27193,11 +27494,11 @@ "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "dev": true, "requires": { - "graceful-fs": "4.1.15", - "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" } }, "micromatch": { @@ -27206,19 +27507,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" } }, "normalize-path": { @@ -27233,7 +27534,7 @@ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "dev": true, "requires": { - "error-ex": "1.3.2" + "error-ex": "^1.2.0" } }, "path-exists": { @@ -27242,7 +27543,7 @@ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "dev": true, "requires": { - "pinkie-promise": "2.0.1" + "pinkie-promise": "^2.0.0" } }, "path-type": { @@ -27251,9 +27552,9 @@ "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", "dev": true, "requires": { - "graceful-fs": "4.1.15", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "pify": { @@ -27268,9 +27569,9 @@ "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", "dev": true, "requires": { - "load-json-file": "1.1.0", - "normalize-package-data": "2.5.0", - "path-type": "1.1.0" + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" } }, "read-pkg-up": { @@ -27279,8 +27580,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" } }, "string-width": { @@ -27289,9 +27590,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" } }, "strip-bom": { @@ -27300,7 +27601,7 @@ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "dev": true, "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.0" } }, "y18n": { @@ -27315,19 +27616,19 @@ "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=", "dev": true, "requires": { - "camelcase": "3.0.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.3", - "os-locale": "1.4.0", - "read-pkg-up": "1.0.1", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "1.0.2", - "which-module": "1.0.0", - "y18n": "3.2.1", - "yargs-parser": "4.2.1" + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^4.2.0" } }, "yargs-parser": { @@ -27336,7 +27637,7 @@ "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=", "dev": true, "requires": { - "camelcase": "3.0.0" + "camelcase": "^3.0.0" } } } @@ -27348,9 +27649,9 @@ "dev": true, "requires": { "ansi-html": "0.0.7", - "html-entities": "1.2.1", - "querystring": "0.2.0", - "strip-ansi": "3.0.1" + "html-entities": "^1.2.0", + "querystring": "^0.2.0", + "strip-ansi": "^3.0.0" } }, "webpack-merge": { @@ -27359,7 +27660,7 @@ "integrity": "sha512-4p8WQyS98bUJcCvFMbdGZyZmsKuWjWVnVHnAS3FFg0HDaRVrPbkivx2RYCre8UiemD67RsiFFLfn4JhLAin8Vw==", "dev": true, "requires": { - "lodash": "4.17.11" + "lodash": "^4.17.5" } }, "webpack-sources": { @@ -27368,8 +27669,8 @@ "integrity": "sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA==", "dev": true, "requires": { - "source-list-map": "2.0.1", - "source-map": "0.6.1" + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" }, "dependencies": { "source-map": { @@ -27386,8 +27687,8 @@ "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=", "dev": true, "requires": { - "http-parser-js": "0.5.0", - "websocket-extensions": "0.1.3" + "http-parser-js": ">=0.4.0", + "websocket-extensions": ">=0.1.1" } }, "websocket-extensions": { @@ -27407,7 +27708,7 @@ "integrity": "sha1-AImBEa9om7CXVBzVpFymyHmERb8=", "dev": true, "requires": { - "tr46": "0.0.3" + "tr46": "~0.0.1" } }, "whet.extend": { @@ -27422,7 +27723,7 @@ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { @@ -27437,7 +27738,7 @@ "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", "dev": true, "requires": { - "string-width": "2.1.1" + "string-width": "^1.0.2 || 2" } }, "window-size": { @@ -27456,7 +27757,7 @@ "integrity": "sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ==", "dev": true, "requires": { - "errno": "0.1.7" + "errno": "~0.1.7" } }, "wrap-ansi": { @@ -27465,8 +27766,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" }, "dependencies": { "is-fullwidth-code-point": { @@ -27475,7 +27776,7 @@ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "string-width": { @@ -27484,9 +27785,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" } } } @@ -27502,7 +27803,7 @@ "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", "dev": true, "requires": { - "mkdirp": "0.5.1" + "mkdirp": "^0.5.1" } }, "x-is-string": { @@ -27517,10 +27818,10 @@ "integrity": "sha512-4nlO/14t3BNUZRXIXfXe+3N6w3s1KoxcJUUURctd64BLRe67E4gRwp4PjywtDY72fXpZ1y6Ch0VZQRY/gMPzzQ==", "dev": true, "requires": { - "global": "4.3.2", - "is-function": "1.0.1", - "parse-headers": "2.0.2", - "xtend": "4.0.1" + "global": "~4.3.0", + "is-function": "^1.0.1", + "parse-headers": "^2.0.0", + "xtend": "^4.0.0" } }, "xml-char-classes": { @@ -27545,8 +27846,8 @@ "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz", "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==", "requires": { - "sax": "1.2.4", - "xmlbuilder": "9.0.7" + "sax": ">=0.6.0", + "xmlbuilder": "~9.0.1" } }, "xmlbuilder": { @@ -27577,9 +27878,9 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", "window-size": "0.1.0" } }, @@ -27589,7 +27890,7 @@ "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", "dev": true, "requires": { - "camelcase": "3.0.0" + "camelcase": "^3.0.0" }, "dependencies": { "camelcase": { @@ -27606,7 +27907,7 @@ "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=", "dev": true, "requires": { - "fd-slicer": "1.0.1" + "fd-slicer": "~1.0.1" } } } diff --git a/package.json b/package.json index dc2657fc7..c3f2088a4 100644 --- a/package.json +++ b/package.json @@ -91,6 +91,7 @@ "draft-js-mention-plugin": "^2.0.0-rc2", "draft-js-plugins-editor": "^2.0.0-rc2", "draft-js-utils": "^0.1.7", + "expression-evaluator": "git+https://github.com/topcoder-platform/expression-evaluator.git#master", "fbemitter": "^2.1.1", "fbjs": "^0.8.12", "filesize": "^3.3.0", diff --git a/src/config/projectWizard/index.js b/src/config/projectWizard/index.js index 1ba8ddbb7..228c54b07 100644 --- a/src/config/projectWizard/index.js +++ b/src/config/projectWizard/index.js @@ -1,6 +1,6 @@ import _ from 'lodash' import typeToSpecification from '../projectSpecification/typeToSpecification' -import { evaluate } from '../../helpers/dependentQuestionsHelper' +import { evaluate } from 'expression-evaluator' import { removeValuesOfHiddenNodes } from '../../helpers/wizardHelper' import { flatten } from 'flat' diff --git a/src/helpers/dependentQuestionsHelper.js b/src/helpers/dependentQuestionsHelper.js deleted file mode 100644 index 9ddbd6136..000000000 --- a/src/helpers/dependentQuestionsHelper.js +++ /dev/null @@ -1,308 +0,0 @@ -import _ from 'lodash' - -/** - * Stack datastructure to perform required operations - - * push, pop, peek, empty to perform arithmatic/logical operaitons - * - * Adding new operator to be supported - * 1. Add the symbol/keyword of operation in allowedOps array - * 2. Add new 'case' in the switch present inside the method for newly added operator applyOp - * 3. If required, decide the precendence inside the method hasPrecedence - * - */ - -class Stack { - constructor() { - this.top = -1 - this.items = [] - } - - push(item) { - const idx = this.top - this.items[idx+1] = item - this.top = idx + 1 - } - - pop() { - const popIdx = this.top - const item = this.items[popIdx] - this.top = popIdx - 1 - return item - } - - peek() { - return this.items[this.top] - } - - empty() { - if(this.top === -1) - return true - return false - } -} -/*eslint quote-props: ["error", "always"]*/ -const precedence = { - '(' : 8, - ')' : 8, - - '!' : 7, - - '^' : 6, - - '*' : 5, - '/' : 5, - - '+' : 4, - '-' : 4, - - 'contains' : 3, - 'hasLength' : 3, - '>' : 3, - '<' : 3, - - '==' : 2, - '!=' : 2, - - '&&' : 1, - '||' : 1, -} - -/** - * ex - 4 * 5 - 2 - * @param opStackTop peeked from ops - * @param currentOp found in the expression - * - * TODO implementation could be more precise and can be based on JS operator precedence values - * see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence - * - * @returns true if 'opStackTop' has higher or same precedence as 'currentOp', otherwise returns false - */ -function hasPrecedence(currentOp, opStackTop) { - if (opStackTop === '(' || opStackTop === ')') - return false - return precedence[opStackTop] >= precedence[currentOp] -} -/** - * A utility method to apply an operation 'op' on operands - * @param op operator - * @param b operand - * @param a operand - * - * @returns result of operation applied - */ -function applyOp(op, b, a) { - switch (op) { - case '+': - return a + b - case '-': - return a - b - case '*': - return a * b - case '/': - //should we handle the case of b == 0 ? - return a / b - case '==': - return a === b - case '!=': - return a !== b - case '&&': - return a && b - case '||': - return a || b - case '>': - return a > b - case '<': - return a < b - case '!': - return !b - case 'contains': { - try { - const bJSON = JSON.parse(b) - return _.some(a || [], bJSON) - } catch(e) { - return (a || []).indexOf(b) > -1 - } - } - case 'hasLength': - return (a || []).length === b - } - return 0 -} - -// list of operations allowed by the parser -const allowedOps = ['+', '-', '*', '/', '==', '!=', '&&', '||', '>', '<', 'contains', 'hasLength', '!'] -// operators that work only with one param -const oneParamOps = ['!'] - -// will split expression into tokens mainly using spaces -// additionally we let "(", ")", "!" to be used without spaces around -// for "!" we check that next symbol is not "=", to avoid splitting "!=" -const opsSplitters = ['\\s+', '\\(', '\\)', '!(?!=)'] -const splitRegexp = new RegExp('(' + opsSplitters.join('|') + ')') - -/** - * Javascript parser to parse the logical/arithmetic opertaion provided - * this is based on javascript implementation of "Shunting Yard Algo" - * - * @param expression an expression to be evaluated - * @param data data json to fetch the operands value - * - * @returns true, if the expression evaluates to true otherwise false - * - */ -export function evaluate(expression, data) { - const tokens = expression - .split(splitRegexp) - // remove unnecessary spaces around tokens - .map((token) => token.trim()) - // remove empty tokens - .filter((token) => token !== '') - - // Stack for operands: 'values' - const values = new Stack() - - // Stack for Operators: 'ops' - const ops = new Stack() - - // Keep track of unbalanced parenthesis - const unbalancedParens = [] - - for (let i = 0; i < tokens.length; i++) { - if (tokens[i] === '(') { - ops.push(tokens[i]) - unbalancedParens.push(i) - - // Closing brace encountered, solve expression since the last opening brace - } else if (tokens[i] === ')') { - - while (ops.peek() !== '(' && !ops.empty()) { - const op = ops.pop() - if (oneParamOps.indexOf(op) !== -1) { - values.push(applyOp(op, values.pop())) - } else { - values.push(applyOp(op, values.pop(), values.pop())) - } - } - - // if the ops array is empty means there is an unbalanced closing parenthesis - if (ops.empty()) { - unbalancedParens.push(i) - } else { - unbalancedParens.pop() - ops.pop()//removing opening brace - } - - // Current token is an operator. - } else if (allowedOps.indexOf(tokens[i]) > -1) { - /** - * While top of 'ops' has same or greater precedence to current token, - * Apply operator on top of 'ops' to top two elements in values stack - */ - while (!ops.empty() && hasPrecedence(tokens[i], ops.peek())) { - const op = ops.pop() - if (oneParamOps.indexOf(op) !== -1) { - values.push(applyOp(op, values.pop())) - } else { - values.push(applyOp(op, values.pop(), values.pop())) - } - } - - // Push current token to ops - ops.push(tokens[i]) - - } else { - //console.log(tokens[i]) - if (tokens[i] in data) { - //console.log("val : ",data[tokens[i]]) - values.push(_.get(data, tokens[i])) - } else { - if (!isNaN(tokens[i])) { - values.push(parseInt(tokens[i])) - } else { - //removing single quotes around the text values - let literal = tokens[i].replace(/'/g, '') - literal = literal === 'true' || (literal === 'false' ? false : literal) - values.push(literal) - } - } - } - } - - // if there are unbalanced parenthesis throw an error - if (unbalancedParens.length !== 0) { - throw new Error(`Parens with the following token indexes are unbalanced: ${unbalancedParens}`) - } - - - //debugger - // Parsed expression tokens are pushed to values/ops respectively, - // Running while loop to evaluate the expression - while (!ops.empty()) { - const op = ops.pop() - if (oneParamOps.indexOf(op) !== -1) { - values.push(applyOp(op, values.pop())) - } else { - values.push(applyOp(op, values.pop(), values.pop())) - } - } - // Top contains result, return it - return values.pop() -} - -/** - * Parses expression to find variable names in format of domain name: - * string1.string2.string3 and so on. Minimum one dot "." is required. - * - * TODO this should be improved as we can have variables without "." like "name" for project name - * - * @param {String} expression expression - * - * @returns {Array} list of variable names - */ -export function getFieldNamesFromExpression(expression) { - const re = /([a-z]+[a-z0-9]*(?:\.[a-z]+[a-z0-9]*)+)/ig - let match - const fieldNames = [] - - do { - match = re.exec(expression) - if (match) { - fieldNames.push(match[1]) - } - } while (match) - - return fieldNames -} - -/** - * Replace prepared conditions inside expression - * - * @example - * const expression = 'preparedCondition1 == 1' - * const preparedConditions = { - * preparedCondition1: '(2 - 1)' - * } - * - * const output = populatePreparedConditions(expression, preparedConditions) - * - * // output => '(2 - 1) == 1' - * - * @param {String} expression expression - * @param {Object} preparedConditions prepared conditions - * - * @returns {String} expression - */ -export function populatePreparedConditions(expression, preparedConditions) { - // in the Regexp we describe situations when preparedCondition can be replaced, - // instead of defining situations when it cannot be replaced - const allowedBefore = ['^', '\\s', '\\(', '!'].join('|') - const allowedAfter = ['$', '\\s', '\\)'].join('|') - - preparedConditions && _.forEach(preparedConditions, (value, key) => { - // as JS RegExp doesn't support lookbehind, we use some workaround here - const regex = new RegExp(`(${allowedBefore})` + key + `(?=${allowedAfter})`, 'g') - expression = expression.replace(regex, `$1${value}`) - }) - - return expression -} \ No newline at end of file diff --git a/src/helpers/dependentQuestionsHelper.spec.js b/src/helpers/dependentQuestionsHelper.spec.js deleted file mode 100644 index b9393c2a4..000000000 --- a/src/helpers/dependentQuestionsHelper.spec.js +++ /dev/null @@ -1,765 +0,0 @@ -/* eslint quotes: 0 */ -import chai from 'chai' -import { evaluate, populatePreparedConditions } from './dependentQuestionsHelper' - -chai.should() - -const testData = { - text: 'string', - textEmpty: '', - a: 1, - stringa: '1', - b: 2, - c: 3, - d: -1, - zero: 0, - someArray: [1, 2, 3], - someArrayWithText: ['a', 'b', 'c'], - f: false, - t: true, - nestedObject: { - textProperty: 'test', - PREPARED_CONDITION_1: 'fake prepared condition property', - propertyWithObject: { - PREPARED_CONDITION_2: 'fake prepared condition property' - }, - } -} - -const preparedConditions = { - PREPARED_CONDITION_1: '(someArray hasLength 3)', - PREPARED_CONDITION_2: `((someArrayWithText contains 'a') || (someArrayWithText contains 'b'))` -} - -describe('Evaluate: ', () => { - describe('operator', () => { - it('hasLength (true)', () => { - const expression = 'someArray hasLength 3' - const result = evaluate(expression, testData) - - result.should.equal(true) - }) - - it('hasLength (false)', () => { - const expression = 'someArray hasLength 4' - const result = evaluate(expression, testData) - - result.should.equal(false) - }) - - it('!false => true', () => { - const expression = '!f' - const result = evaluate(expression, testData) - - result.should.equal(true) - }) - - it('!true => false', () => { - const expression = '!t' - const result = evaluate(expression, testData) - - result.should.equal(false) - }) - - it('! with conditions', () => { - const expression = '!t || !f' - const result = evaluate(expression, testData) - - result.should.equal(true) - }) - - it('!textEmpty => true', () => { - const expression = '!textEmpty' - const result = evaluate(expression, testData) - - result.should.equal(true) - }) - - it('!text => false', () => { - const expression = '!text' - const result = evaluate(expression, testData) - - result.should.equal(false) - }) - - it('== (true)', () => { - const expression = 'f == f' - const result = evaluate(expression, testData) - - result.should.equal(true) - }) - - it('== (false)', () => { - const expression = 'f == t' - const result = evaluate(expression, testData) - - result.should.equal(false) - }) - - it('!= (true)', () => { - const expression = 'f != t' - const result = evaluate(expression, testData) - - result.should.equal(true) - }) - - it('!= (false)', () => { - const expression = 'f != f' - const result = evaluate(expression, testData) - - result.should.equal(false) - }) - }) - - describe('logical operators', () => { - - it('test plain conditions', () => { - const expression = '(someArrayWithText contains \'a\' || someArrayWithText contains \'d\')' - const result = evaluate(expression, testData) - - result.should.equal(true) - }) - - it('contains \'a\' && hasLength (true)', () => { - const expression = '(someArrayWithText contains \'a\') && (someArrayWithText hasLength 3)' - const result = evaluate(expression, testData) - - result.should.equal(true) - }) - - it('contains \'a\' || contains \'b\'', () => { - const expression = 'someArrayWithText contains \'d\' && someArrayWithText contains \'b\'' - const result = evaluate(expression, testData) - - result.should.equal(false) - }) - - it('contains \'a\' && hasLength (true) && contains \'b\'', () => { - const expression = 'someArrayWithText contains \'a\' && someArrayWithText hasLength 3 && someArrayWithText contains \'b\'' - const result = evaluate(expression, testData) - - result.should.equal(true) - }) - - it('contains \'a\' && hasLength (false)', () => { - const expression = '(someArrayWithText contains \'a\') && (someArrayWithText hasLength 2)' - const result = evaluate(expression, testData) - - result.should.equal(false) - }) - - it('contains \'a\' && hasLength (false) && contains \'b\'', () => { - const expression = '((someArrayWithText contains \'a\') && (someArrayWithText hasLength 1) && (someArrayWithText contains \'b\'))' - const result = evaluate(expression, testData) - - result.should.equal(false) - }) - }) - - describe('expression format', () => { - it('no spaces near parenthesis', () => { - const expression = 'someArray contains (a + b) * 2' - const result = evaluate(expression, testData) - - result.should.equal(false) - }) - - it('no spaces near parenthesis with conditions', () => { - const expression = `(someArrayWithText contains 'a') || (someArrayWithText contains 'b') || (someArrayWithText contains 'c')` - const result = evaluate(expression, testData) - - result.should.equal(true) - }) - - xit('multiple spaces', () => { - const expression = 'someArray contains ( b - a ) * 2' - const result = evaluate(expression, testData) - - result.should.equal(true) - }) - }) - - describe ('+ operator', () => { - it ('should do simple addition', () => { - const expression = 'a + b' - const result = evaluate(expression, testData) - - result.should.equal(testData.a + testData.b) - }) - - xit ('should be read as separate from other tokens even if there are no spaces in between', () => { - const expression = 'a+b' - const result = evaluate(expression, testData) - - result.should.equal(testData.a + testData.b) - }) - - xit ('should identify signs in numbers', () => { - const expression = '- a + ( + b)' - const result = evaluate(expression, testData) - - result.should.equal(-testData.a + testData.b) - }) - - it ('should be commutative', () => { - const res1 = evaluate('a + b', testData) - const res2 = evaluate('b + a', testData) - - res1.should.equal(res2) - }) - - it ('should be associative', () => { - const res1 = evaluate('a + (b + c)', testData) - const res2 = evaluate('(a + b) + c', testData) - - res1.should.equal(res2) - }) - - it ('should be distributive', () => { - const res1 = evaluate('a * (b + c)', testData) - const res2 = evaluate('(a * b) + (a * c)', testData) - - res1.should.equal(res2) - }) - - it ('should have additive identity', () => { - const result = evaluate('a + 0', testData) - - result.should.equal(testData.a) - }) - - xit ('should return same if an argument is null', () => { - const result = evaluate('a + null', testData) - - result.should.equal(testData.a) - }) - - it ('should return NaN if an argument is undefined', () => { - const result = evaluate('a + undefined', testData) - - result.should.be.NaN - }) - - it ('should return NaN if an argument is NaN', () => { - const result = evaluate('a + NaN', testData) - - result.should.be.NaN - }) - - it ('should add true to numbers', () => { - const res = evaluate('t + 5', testData) - res.should.equal(6) - }) - }) - - describe ('- operator', () => { - it ('should do simple subtraction', () => { - const result = evaluate('a - b', testData) - result.should.equal(testData.a - testData.b) - }) - - xit ('should be read as separate from other tokens even if there are no spaces in between', () => { - const expression = 'a-b' - const result = evaluate(expression, testData) - - result.should.equal(testData.a - testData.b) - }) - - it ('should be distributive', () => { - const res1 = evaluate('a * (b - c)', testData) - const res2 = evaluate('(a * b) - (a * c)', testData) - - res1.should.equal(res2) - }) - - it ('should have additive identity', () => { - const result = evaluate('a - 0', testData) - - result.should.equal(testData.a) - }) - - xit ('should return 0 if an argument is null', () => { - const result = evaluate('a - null', testData) - - result.should.equal(testData.a) - }) - - it ('should return NaN if an argument is undefined', () => { - const result = evaluate('a - undefined', testData) - - result.should.be.NaN - }) - - it ('should return NaN if an argument is NaN', () => { - const result = evaluate('a - NaN', testData) - - result.should.be.NaN - }) - - it ('should subtract true from numbers', () => { - const res = evaluate('f - 5', testData) - res.should.equal(-5) - }) - }) - - describe ('* operator', () => { - it ('should do simple multiplication', () => { - const result = evaluate('a * b', testData) - result.should.equal(testData.a * testData.b) - }) - - xit ('should be read as separate from other tokens even if there are no spaces in between', () => { - const result = evaluate('a*b', testData) - result.should.equal(testData.a * testData.b) - }) - - xit ('should identify signs', () => { - const result = evaluate('a * (- b)', testData) - result.should.equal(testData.a * (-testData.b)) - }) - - it ('should be commutative', () => { - const res1 = evaluate('a * b', testData) - const res2 = evaluate('b * a', testData) - res1.should.equal(res2) - }) - - it ('should be associative', () => { - const res1 = evaluate('a * (b * c)', testData) - const res2 = evaluate('(a * b) * c', testData) - res1.should.equal(res2) - }) - - it ('should have multiplicative identity', () => { - const res = evaluate('b * 1', testData) - res.should.equal(testData.b) - }) - - xit ('should return 0 if an argument is null', () => { - const result = evaluate('a * null', testData) - - result.should.equal(0) - }) - - it ('should return NaN if an argument is undefined', () => { - const result = evaluate('a * undefined', testData) - - result.should.be.NaN - }) - - it ('should return NaN if an argument is NaN', () => { - const result = evaluate('a * NaN', testData) - - result.should.be.NaN - }) - - xit ('should flip the sign of Infinity', () => { - const res = evaluate('d * Infinity', testData) - res.should.equal(-Infinity) - // (-Infinity).should.equal(-1*Infinity) - }) - - it ('should return NaN when multiplying 0 and Infinity', () => { - const res = evaluate('0 * Infinity', testData) - isNaN(res).should.equal(true) - }) - }) - - describe ('/ operator', () => { - it ('should do simple division', () => { - const res = evaluate('a / b', testData) - res.should.equal(testData.a / testData.b) - }) - - xit ('should be read as separate from other tokens even if there are no spaces in between', () => { - const result = evaluate('a/b', testData) - result.should.equal(testData.a * testData.b) - }) - - it ('should return Infinity when dividing be 0', () => { - const result = evaluate('a / 0', testData) - result.should.equal(Infinity) - }) - - xit ('should identify sign in its arguments', () => { - const result = evaluate('- a / b', testData) - result.should.equal(-testData.a / testData.b) - }) - - it ('should take precedence over addition and subtraction', () => { - const result = evaluate('a + b / c - d * b', testData) - result.should.equal(testData.a + testData.b / testData.c - testData.d * testData.b) - }) - - xit ('should return 0 when dividing by Infinity', () => { - const result = evaluate('a / Infinity', testData) - result.should.equal(0) - }) - - it ('should do 0 / 0 == NaN', () => { - const result = evaluate('0 / 0', testData) - isNaN(result).should.equal(true) - }) - - it ('should do Infinity / Infinity == NaN', () => { - const result = evaluate('Infinity / Infinity', testData) - isNaN(result).should.equal(true) - }) - - xit ('should return Infinity if an argument is null', () => { - const result = evaluate('a / null', testData) - - result.should.equal(0) - }) - - it ('should return NaN if an argument is undefined', () => { - const result = evaluate('a / undefined', testData) - - result.should.be.NaN - }) - - it ('should return NaN if an argument is NaN', () => { - const result = evaluate('a / NaN', testData) - - result.should.be.NaN - }) - }) - - describe('== operator', () => { - xit('should compare NaNs', () => { - const res = evaluate('NaN == NaN', testData) - res.should.equal(false) - }) - - xit('should compare Infinities', () => { - const res = evaluate('Infinity == Infinity', testData) - res.should.equal(true) - }) - - it('should compare nulls', () => { - const res = evaluate('null == null', testData) - res.should.equal(true) - }) - - it('should compare undefined', () => { - const res = evaluate('undefined == undefined', testData) - res.should.equal(true) - }) - - it('should compare boolean true', () => { - const res = evaluate('t == true', testData) - res.should.equal(true) - }) - - it('should compare boolean false', () => { - const res = evaluate('f == false', testData) - res.should.equal(true) - }) - - it ('should compare string and number', () => { - const res = evaluate('stringa == a', testData) - res.should.equal(false) - }) - - xit ('should compare boolean and number', () => { - const res = evaluate('zero == f', testData) - res.should.equal(true) - }) - }) - - describe('!= operator', () => { - xit('should compare NaNs', () => { - const res = evaluate('NaN != NaN', testData) - res.should.equal(true) - }) - - xit('should compare Infinities', () => { - const res = evaluate('Infinity != Infinity', testData) - res.should.equal(false) - }) - - it('should compare nulls', () => { - const res = evaluate('null != null', testData) - res.should.equal(false) - }) - - it('should compare undefined', () => { - const res = evaluate('undefined != undefined', testData) - res.should.equal(false) - }) - - it ('should compare string and number', () => { - const res = evaluate('stringa != a', testData) - res.should.equal(true) - }) - - it('should compare inequality for boolean true', () => { - const res = evaluate('t != true', testData) - res.should.equal(false) - }) - - it('should compare inequality for boolean false', () => { - const res = evaluate('f != false', testData) - res.should.equal(false) - }) - - xit ('should compare boolean and number', () => { - const res = evaluate('zero != f', testData) - res.should.equal(false) - }) - }) - - describe('&& operator', () => { - it ('true && true => true', () => { - const res = evaluate('t && t', testData) - res.should.equal(true) - }) - - it ('true && false => false', () => { - const res = evaluate('t && f', testData) - res.should.equal(false) - }) - - it ('false && true => false', () => { - const res = evaluate('f && t', testData) - res.should.equal(false) - }) - - it ('false && false => false', () => { - const res = evaluate('f && f', testData) - res.should.equal(false) - }) - }) - - describe('|| operator', () => { - it ('true || true => true', () => { - const res = evaluate('t || t', testData) - res.should.equal(true) - }) - - it ('true || false => true', () => { - const res = evaluate('t || f', testData) - res.should.equal(true) - }) - - it ('false || true => true', () => { - const res = evaluate('f || t', testData) - res.should.equal(true) - }) - - it ('false || false => false', () => { - const res = evaluate('f || f', testData) - res.should.equal(false) - }) - }) - - describe('parser', () => { - it('should parse literal constants like numbers', () => { - const res = evaluate('4 + 2', testData) - res.should.equal(4 + 2) - }) - - it('should throw error if one opening parenthesis is unbalanced', () => { - const expression = `((someArrayWithText contains 'a') || (someArrayWithText contains 'b') || (someArrayWithText contains 'c')` - - try { - evaluate(expression, testData) - } catch(error) { - error.message.should.equal('Parens with the following token indexes are unbalanced: 0') - } - }) - - it('should throw error if multiple opening parenthesis are unbalanced', () => { - const expression = `(someArrayWithText contains 'a') || ((someArrayWithText contains 'b') || ((someArrayWithText contains 'c')` - - try { - evaluate(expression, testData) - } catch(error) { - error.message.should.equal('Parens with the following token indexes are unbalanced: 6,13') - } - }) - - it('should throw error if one closing parenthesis is unbalanced', () => { - const expression = `(someArrayWithText contains 'a')) || (someArrayWithText contains 'b') || (someArrayWithText contains 'c')` - - try { - evaluate(expression, testData) - } catch(error) { - error.message.should.equal('Parens with the following token indexes are unbalanced: 5') - } - }) - - it('should throw error if multiple closing parenthesis are unbalanced', () => { - const expression = `(someArrayWithText contains 'a') || (someArrayWithText contains 'b')) || (someArrayWithText contains 'c'))` - - try { - evaluate(expression, testData) - } catch(error) { - error.message.should.equal('Parens with the following token indexes are unbalanced: 11,18') - } - }) - - xit('should parse literal constants like numbers with decimal numbers', () => { - const res = evaluate('4.2 + 2.3', testData) - res.should.equal(4.2 + 2.3) - }) - - xit ('should parse literal constants like booleans', () => { - const res = evaluate('true && true', testData) - res.should.equal(true) - }) - - xit ('should treat unknown variables as undefined', () => { - const res = evaluate('unknownVariable', testData) - - res.should.be.undefined - }) - }) - - describe('! operator', () => { - it ('!true => false', () => { - const res = evaluate('!t', testData) - res.should.equal(false) - }) - - it ('!false => true', () => { - const res = evaluate('!f', testData) - res.should.equal(true) - }) - - xit ('!undefined => true', () => { - const res = evaluate('!undefined', testData) - res.should.equal(true) - }) - - xit ('!null => true', () => { - const res = evaluate('! null', testData) - res.should.equal(true) - }) - }) - - describe('> operator', () => { - it ('should compare numbers', () => { - const res = evaluate('a > b', testData) - res.should.equal(testData.a > testData.b) - }) - - it ('should compare strings', () => { - const res = evaluate("'absfd' > 'fsb'", testData) - res.should.equal('absfd' > 'fsb') - }) - - it ('should compare numbers and strings', () => { - const res = evaluate("'absfd' > 1", testData) - res.should.equal('absfd' > 1) - }) - - it ('should compare undefined', () => { - const res = evaluate("undefined > 1", testData) - res.should.equal(undefined > 1) - }) - - it ('should compare null', () => { - const res = evaluate("null > 1", testData) - res.should.equal(null > 1) - }) - - it ('should compare NaN', () => { - const nanval = NaN - const res = evaluate("NaN > 1", testData) - res.should.equal(nanval > 1) - }) - }) - - describe('< operator', () => { - it ('should compare numbers', () => { - const res = evaluate('a < b', testData) - res.should.equal(testData.a < testData.b) - }) - - it ('should compare strings', () => { - const res = evaluate("'absfd' < 'fsb'", testData) - res.should.equal('absfd' < 'fsb') - }) - - it ('should compare numbers and strings', () => { - const res = evaluate("'absfd' < 1", testData) - res.should.equal('absfd' < 1) - }) - - it ('should compare undefined', () => { - const res = evaluate("undefined < 1", testData) - res.should.equal(undefined < 1) - }) - - xit ('should compare null', () => { - const res = evaluate("null < 1", testData) - res.should.equal(null < 1) - }) - - it ('should compare NaN', () => { - const nanval = NaN - const res = evaluate("NaN < 1", testData) - res.should.equal(nanval < 1) - }) - }) - -}) - -describe('Replace prepared conditions: ', () => { - it('should replace single prepared condition', () => { - const expression = 'PREPARED_CONDITION_1' - const populatedExpression = populatePreparedConditions(expression, preparedConditions) - - populatedExpression.should.equal(preparedConditions.PREPARED_CONDITION_1) - }) - - it('should replace multiple prepared conditions', () => { - const expression = 'PREPARED_CONDITION_1 && PREPARED_CONDITION_2' - const populatedExpression = populatePreparedConditions(expression, preparedConditions) - - populatedExpression.should.equal(`${preparedConditions.PREPARED_CONDITION_1} && ${preparedConditions.PREPARED_CONDITION_2}`) - }) - - it('should not replace prepared condition inside text literals', () => { - const expression = `someArray contains 'PREPARED_CONDITION_1' && a == PREPARED_CONDITION_2` - const populatedExpression = populatePreparedConditions(expression, preparedConditions) - - populatedExpression.should.equal(`someArray contains 'PREPARED_CONDITION_1' && a == ${preparedConditions.PREPARED_CONDITION_2}`) - }) - - it('should not replace prepared condition inside object properties level 1', () => { - const expression = `nestedObject.PREPARED_CONDITION_1 && a == PREPARED_CONDITION_2` - const populatedExpression = populatePreparedConditions(expression, preparedConditions) - - populatedExpression.should.equal(`nestedObject.PREPARED_CONDITION_1 && a == ${preparedConditions.PREPARED_CONDITION_2}`) - }) - - it('should not replace prepared condition inside object properties level 2', () => { - const expression = `nestedObject.propertyWithObject.PREPARED_CONDITION_1 && a == PREPARED_CONDITION_2` - const populatedExpression = populatePreparedConditions(expression, preparedConditions) - - populatedExpression.should.equal(`nestedObject.propertyWithObject.PREPARED_CONDITION_1 && a == ${preparedConditions.PREPARED_CONDITION_2}`) - }) - - it('should not replace prepared condition in the part of another prepared condition variable', () => { - const expression = `SUFFIX_PREPARED_CONDITION_2 && PREPARED_CONDITION_2 && PREPARED_CONDITION_2_POSTFIX` - const populatedExpression = populatePreparedConditions(expression, preparedConditions) - - populatedExpression.should.equal(`SUFFIX_PREPARED_CONDITION_2 && ${preparedConditions.PREPARED_CONDITION_2} && PREPARED_CONDITION_2_POSTFIX`) - }) - - it('should not replace prepared condition delimited by parentheses', () => { - const expression = `(PREPARED_CONDITION_2)` - const populatedExpression = populatePreparedConditions(expression, preparedConditions) - - populatedExpression.should.equal(`(${preparedConditions.PREPARED_CONDITION_2})`) - }) - - it('should not replace prepared condition delimited preceded by "!"', () => { - const expression = `!PREPARED_CONDITION_2` - const populatedExpression = populatePreparedConditions(expression, preparedConditions) - - populatedExpression.should.equal(`!${preparedConditions.PREPARED_CONDITION_2}`) - }) -}) diff --git a/src/helpers/wizardHelper.js b/src/helpers/wizardHelper.js index 4314d3ca7..8f2ebd86d 100644 --- a/src/helpers/wizardHelper.js +++ b/src/helpers/wizardHelper.js @@ -21,7 +21,7 @@ */ import _ from 'lodash' import update from 'react-addons-update' -import { evaluate, getFieldNamesFromExpression, populatePreparedConditions } from './dependentQuestionsHelper' +import { evaluate, getFieldNamesFromExpression, populatePreparedConditions } from 'expression-evaluator' import { flatten, unflatten } from 'flat' /** @@ -408,7 +408,7 @@ export const initWizard = (template, project, productTemplates, incompleteWizard currentWizardStep = lastWizardStep || currentWizardStep } - + return { template: wizardTemplate, currentWizardStep, @@ -958,7 +958,7 @@ export const updateNodesByConditions = (template, project, productTemplates) => hiddenByCondition: { $set: false } } } - + addOnSection.subSections.forEach(subSection => { subSection.questions.forEach(q => { @@ -977,7 +977,7 @@ export const updateNodesByConditions = (template, project, productTemplates) => }) // skip intermediate summary step if no add-ons step found - // NOTE At the moment we can theoretically have other questions in the add-ons section so we don't hide it explicitly here. + // NOTE At the moment we can theoretically have other questions in the add-ons section so we don't hide it explicitly here. // But as at the moment add-ons section has only add-ons questions, it would be hided automatically as a section without any visible question. if (!hasActiveAddOnSection) { updatedTemplate = updateNodeObject(updatedTemplate, summaryIntermediateSection.__wizard.node, hideByConditionUpdateRule) diff --git a/src/projects/create/components/ProjectEstimation.js b/src/projects/create/components/ProjectEstimation.js index bfc1da9ec..80c1a90ed 100644 --- a/src/projects/create/components/ProjectEstimation.js +++ b/src/projects/create/components/ProjectEstimation.js @@ -4,7 +4,7 @@ import PT from 'prop-types' import { flatten } from 'flat' import cn from 'classnames' -import { evaluate } from '../../../helpers/dependentQuestionsHelper' +import { evaluate } from 'expression-evaluator' import { getProductEstimate } from '../../../config/projectWizard' import './ProjectEstimation.scss' From a0e7df30fa8832384f8b03dc67b79c88855387a1 Mon Sep 17 00:00:00 2001 From: Maksym Mykhailenko Date: Wed, 24 Apr 2019 19:20:56 +0800 Subject: [PATCH 02/89] use dev branch of expression-evaluator package for quick development --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9697df261..c45353d00 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5216,7 +5216,7 @@ }, "expression-evaluator": { "version": "git+https://github.com/topcoder-platform/expression-evaluator.git#96689d21aa722ee5684f9dc9109bed72b2dddc02", - "from": "git+https://github.com/topcoder-platform/expression-evaluator.git#master", + "from": "git+https://github.com/topcoder-platform/expression-evaluator.git#dev", "requires": { "lodash": "^4.17.11" } diff --git a/package.json b/package.json index c3f2088a4..eaa4f7e58 100644 --- a/package.json +++ b/package.json @@ -91,7 +91,7 @@ "draft-js-mention-plugin": "^2.0.0-rc2", "draft-js-plugins-editor": "^2.0.0-rc2", "draft-js-utils": "^0.1.7", - "expression-evaluator": "git+https://github.com/topcoder-platform/expression-evaluator.git#master", + "expression-evaluator": "git+https://github.com/topcoder-platform/expression-evaluator.git#dev", "fbemitter": "^2.1.1", "fbjs": "^0.8.12", "filesize": "^3.3.0", From 253b35efdeadcfc92d885b7b6e7ae324f7cc0f9b Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Fri, 26 Apr 2019 12:01:41 +0530 Subject: [PATCH 03/89] Added more details to the project and product templates list views --- .../components/ProductTemplatesGridView.jsx | 27 +++++++++++++++++++ .../components/ProjectTemplatesGridView.jsx | 27 +++++++++++++++++++ 2 files changed, 54 insertions(+) diff --git a/src/routes/metadata/components/ProductTemplatesGridView.jsx b/src/routes/metadata/components/ProductTemplatesGridView.jsx index c612b3299..ec21fe27c 100644 --- a/src/routes/metadata/components/ProductTemplatesGridView.jsx +++ b/src/routes/metadata/components/ProductTemplatesGridView.jsx @@ -47,6 +47,33 @@ const ProductTemplatesGridView = props => { ) } + }, { + id: 'templateKey', + headerLabel: 'Key', + classes: 'item-key', + sortable: false, + renderText: item => { + const url = `/metadata/productTemplates/${item.id}` + return ( +
+
+ {_.unescape(item.productKey)} +
+
+ ) + } + }, { + id: 'templateAliases', + headerLabel: 'Aliases', + classes: 'item-key', + sortable: false, + renderText: item => { + return ( +
+
{_.unescape(item.aliases)}
+
+ ) + } }, { id: 'updatedAt', headerLabel: 'Updated At', diff --git a/src/routes/metadata/components/ProjectTemplatesGridView.jsx b/src/routes/metadata/components/ProjectTemplatesGridView.jsx index 9564eb0b3..8ea7bf455 100644 --- a/src/routes/metadata/components/ProjectTemplatesGridView.jsx +++ b/src/routes/metadata/components/ProjectTemplatesGridView.jsx @@ -47,6 +47,33 @@ const ProjectTemplatesGridView = props => { ) } + }, { + id: 'templateKey', + headerLabel: 'Key', + classes: 'item-key', + sortable: false, + renderText: item => { + const url = `/metadata/projectTemplates/${item.id}` + return ( +
+
+ {_.unescape(item.key)} +
+
+ ) + } + }, { + id: 'templateAliases', + headerLabel: 'Aliases', + classes: 'item-key', + sortable: false, + renderText: item => { + return ( +
+
{_.unescape(item.aliases)}
+
+ ) + } }, { id: 'updatedAt', headerLabel: 'Updated At', From 8a18c3f571fa2e40d91ff0cd27f9e3656ba26cd4 Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Fri, 26 Apr 2019 12:45:49 +0530 Subject: [PATCH 04/89] Lint fix --- src/routes/metadata/components/ProductTemplatesGridView.jsx | 2 +- src/routes/metadata/components/ProjectTemplatesGridView.jsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/routes/metadata/components/ProductTemplatesGridView.jsx b/src/routes/metadata/components/ProductTemplatesGridView.jsx index ec21fe27c..4c6b402fd 100644 --- a/src/routes/metadata/components/ProductTemplatesGridView.jsx +++ b/src/routes/metadata/components/ProductTemplatesGridView.jsx @@ -70,7 +70,7 @@ const ProductTemplatesGridView = props => { renderText: item => { return (
-
{_.unescape(item.aliases)}
+
{_.unescape(item.aliases)}
) } diff --git a/src/routes/metadata/components/ProjectTemplatesGridView.jsx b/src/routes/metadata/components/ProjectTemplatesGridView.jsx index 8ea7bf455..bca6f035f 100644 --- a/src/routes/metadata/components/ProjectTemplatesGridView.jsx +++ b/src/routes/metadata/components/ProjectTemplatesGridView.jsx @@ -70,7 +70,7 @@ const ProjectTemplatesGridView = props => { renderText: item => { return (
-
{_.unescape(item.aliases)}
+
{_.unescape(item.aliases)}
) } From 4731ce2308f599aa148e82f8d7081dc39307974d Mon Sep 17 00:00:00 2001 From: Maksym Mykhailenko Date: Mon, 29 Apr 2019 17:54:08 +0700 Subject: [PATCH 05/89] fix topics re-rendering on every symbol typing --- src/components/Feed/Feed.jsx | 5 ++ .../detail/containers/FeedContainer.js | 55 ++++++++--------- .../detail/containers/SingleFeedContainer.jsx | 59 +++++++++++++++++++ 3 files changed, 90 insertions(+), 29 deletions(-) create mode 100644 src/projects/detail/containers/SingleFeedContainer.jsx diff --git a/src/components/Feed/Feed.jsx b/src/components/Feed/Feed.jsx index 2a4b09e33..000fa8abc 100644 --- a/src/components/Feed/Feed.jsx +++ b/src/components/Feed/Feed.jsx @@ -82,6 +82,11 @@ class Feed extends React.Component { } } + shouldComponentUpdate(nextProps) { + // avoid re-rendering of this heavy component if no properties are changed + return !_.isEqual(this.props, nextProps) + } + render() { const { id, user, currentUser, topicMessage, totalComments, hasMoreComments, onLoadMoreComments, isLoadingComments, diff --git a/src/projects/detail/containers/FeedContainer.js b/src/projects/detail/containers/FeedContainer.js index a2ad10de6..d06962793 100644 --- a/src/projects/detail/containers/FeedContainer.js +++ b/src/projects/detail/containers/FeedContainer.js @@ -27,10 +27,10 @@ import PostsRefreshPrompt from '../components/PostsRefreshPrompt' import MediaQuery from 'react-responsive' import ChatButton from '../../../components/ChatButton/ChatButton' import NewPostMobile from '../../../components/Feed/NewPostMobile' -import ScrollableFeed from '../../../components/Feed/ScrollableFeed' import FullscreenFeedContainer from '../containers/FullscreenFeedContainer' import Section from '../components/Section' import SectionTitle from '../components/SectionTitle' +import SingleFeedContainer from './SingleFeedContainer' import { scrollToHash } from '../../../components/ScrollToAnchors' import { isSystemUser } from '../../../helpers/tcHelpers' @@ -403,25 +403,24 @@ class FeedView extends React.Component { this.enterFullscreen(feed.id) }} > - {feeds.map((feed) => (
-
diff --git a/src/projects/detail/containers/SingleFeedContainer.jsx b/src/projects/detail/containers/SingleFeedContainer.jsx new file mode 100644 index 000000000..3835c9907 --- /dev/null +++ b/src/projects/detail/containers/SingleFeedContainer.jsx @@ -0,0 +1,59 @@ +/** + * The main purpose of this component is to bind methods which require feed.id + * so that we don't re-create them on every render like: + * onNewCommentChange: onNewCommentChange.bind(this, feed.id) + * So inside Feed component we can use shouldComponentUpdate to compare properties + * and only render if properties are changed. + * + * If we define methods like this + * onNewCommentChange: onNewCommentChange.bind(this, feed.id) + * then such function would be recreated on every render and shouldComponentUpdate + * will return true for every render. + */ +import React from 'react' +import _ from 'lodash' + +import ScrollableFeed from '../../../components/Feed/ScrollableFeed' + +const bindMethods = [ + 'onNewCommentChange', + 'onAddNewComment', + 'onLoadMoreComments', + 'onEditMessage', + 'onSaveMessageChange', + 'onSaveMessage', + 'onDeleteMessage', + 'onEditTopic', + 'onTopicChange', + 'onSaveTopic', + 'onDeleteTopic', + 'onEnterFullscreenClick', +] + +class SingleFeedContainer extends React.Component { + constructor(props) { + super(props) + + bindMethods.forEach((method) => { + this[method] = () => this.props[method](this.props.id) + }) + } + + render() { + const nonBindProps = _.omit(this.props, bindMethods) + const bindProps = _.zipObject(bindMethods, bindMethods.map((method) => this[method])) + + return ( + + ) + } +} + +export default SingleFeedContainer \ No newline at end of file From e1acdf05d0b11bd5949d2945a7b6acb2e219fb7f Mon Sep 17 00:00:00 2001 From: Maksym Mykhailenko Date: Mon, 29 Apr 2019 17:55:31 +0700 Subject: [PATCH 06/89] fix topics re-rendering on every click also some formatting for easier reading --- src/components/RichTextArea/RichTextArea.jsx | 31 ++++++++++++++++---- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/src/components/RichTextArea/RichTextArea.jsx b/src/components/RichTextArea/RichTextArea.jsx index 733e873d1..fe9f9354f 100644 --- a/src/components/RichTextArea/RichTextArea.jsx +++ b/src/components/RichTextArea/RichTextArea.jsx @@ -55,7 +55,15 @@ const blocks = [ class RichTextArea extends React.Component { constructor(props) { super(props) - this.state = {editorExpanded: false, editorState: EditorState.createEmpty(), titleValue: '', suggestions: [], allSuggestions:[], isPrivate: false} + this.state = { + editorExpanded: false, + editorState: EditorState.createEmpty(), + titleValue: '', + suggestions: [], + allSuggestions:[], + isPrivate: false + } + this.onTitleChange = this.onTitleChange.bind(this) this.onEditorChange = this.onEditorChange.bind(this) this.handleKeyCommand = this.handleKeyCommand.bind(this) @@ -139,14 +147,17 @@ class RichTextArea extends React.Component { do { if (currNode.className && currNode.className.indexOf - && currNode.className.indexOf('btn-close') > -1) { + && currNode.className.indexOf('btn-close') > -1 + ) { isCloseButton = true } if (currNode.className && currNode.className.indexOf - && currNode.className.indexOf('btn-close-creat') > -1) { - isCloseButton = true, + && currNode.className.indexOf('btn-close-creat') > -1 + ) { + isCloseButton = true + this.setState({ titleValue: '', editorState: EditorState.createEmpty(), @@ -170,7 +181,17 @@ class RichTextArea extends React.Component { if (!isEditor && !isCloseButton && hasContent) { return } - this.setState({editorExpanded: isEditor && !isCloseButton, isPrivate: isEditor && !isCloseButton ? this.state.isPrivate : false}) + + const editorExpanded = isEditor && !isCloseButton + const isPrivate = isEditor && !isCloseButton ? this.state.isPrivate : false + + // to avoid unnecessary re-rendering on every click, only update state if any of the values is updated + if (editorExpanded !== this.state.editorExpanded || isPrivate !== this.state.isPrivate) { + this.setState({ + editorExpanded, + isPrivate, + }) + } } handleKeyCommand(command) { From ae0f34c9381697717834aceefdd79b38d4d29d51 Mon Sep 17 00:00:00 2001 From: Maksym Mykhailenko Date: Wed, 1 May 2019 17:57:05 +0700 Subject: [PATCH 07/89] fix some actions with posts after fixing re-rendering --- src/components/Feed/Feed.jsx | 1 + src/projects/detail/containers/FeedContainer.js | 4 ++++ src/projects/detail/containers/SingleFeedContainer.jsx | 6 +++++- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/components/Feed/Feed.jsx b/src/components/Feed/Feed.jsx index 000fa8abc..6d5f201fd 100644 --- a/src/components/Feed/Feed.jsx +++ b/src/components/Feed/Feed.jsx @@ -1,4 +1,5 @@ import React from 'react' +import _ from 'lodash' import cn from 'classnames' import moment from 'moment' import PropTypes from 'prop-types' diff --git a/src/projects/detail/containers/FeedContainer.js b/src/projects/detail/containers/FeedContainer.js index d06962793..017dfcbdc 100644 --- a/src/projects/detail/containers/FeedContainer.js +++ b/src/projects/detail/containers/FeedContainer.js @@ -58,6 +58,10 @@ class FeedView extends React.Component { this.onNewPostChange = this.onNewPostChange.bind(this) this.onEditMessage = this.onEditMessage.bind(this) this.onSaveMessageChange = this.onSaveMessageChange.bind(this) + this.onSaveMessage = this.onSaveMessage.bind(this) + this.onDeleteMessage = this.onDeleteMessage.bind(this) + this.onSaveTopic = this.onSaveTopic.bind(this) + this.onDeleteTopic = this.onDeleteTopic.bind(this) this.onEditTopic = this.onEditTopic.bind(this) this.onTopicChange = this.onTopicChange.bind(this) this.onRefreshFeeds = this.onRefreshFeeds.bind(this) diff --git a/src/projects/detail/containers/SingleFeedContainer.jsx b/src/projects/detail/containers/SingleFeedContainer.jsx index 3835c9907..844b9671c 100644 --- a/src/projects/detail/containers/SingleFeedContainer.jsx +++ b/src/projects/detail/containers/SingleFeedContainer.jsx @@ -35,7 +35,11 @@ class SingleFeedContainer extends React.Component { super(props) bindMethods.forEach((method) => { - this[method] = () => this.props[method](this.props.id) + // We cannot use an arrow function here, as later other component can apply .bind to these methods + this[method] = function() { + // we cannot use .bind here as we already bound "this" in these methods to another React component and we don't want to override it + return this.props[method](...[this.props.id, ...arguments]) + }.bind(this) }) } From 0f03cbc901a35402e3ff4e0af03feee709fbd92f Mon Sep 17 00:00:00 2001 From: Samir Date: Fri, 10 May 2019 05:03:09 +0200 Subject: [PATCH 08/89] post attachment features --- package-lock.json | 190 ++++++++-- src/api/messages.js | 37 +- src/components/ActionCard/ActionCard.jsx | 5 +- src/components/ActionCard/AddComment.jsx | 5 +- src/components/ActionCard/Comment.jsx | 53 ++- src/components/ActionCard/Comment.scss | 82 ++++- src/components/Feed/Feed.jsx | 4 +- src/components/Feed/FeedComments.jsx | 2 +- src/components/Feed/NewPost.jsx | 1 + src/components/Feed/NewPostMobile.jsx | 147 +++++++- src/components/Feed/NewPostMobile.scss | 81 ++++- src/components/FileDownload.jsx | 24 +- src/components/RichTextArea/RichTextArea.jsx | 324 +++++++++++++----- src/components/RichTextArea/RichTextArea.scss | 102 +++++- .../detail/containers/FeedContainer.js | 22 +- .../detail/containers/MessagesContainer.js | 17 +- .../detail/containers/PhaseFeedHOC.jsx | 10 +- src/projects/reducers/phasesTopics.js | 1 + src/projects/reducers/projectTopics.js | 1 + src/projects/routes.jsx | 1 + 20 files changed, 930 insertions(+), 179 deletions(-) diff --git a/package-lock.json b/package-lock.json index c45353d00..90d089252 100644 --- a/package-lock.json +++ b/package-lock.json @@ -440,7 +440,6 @@ "react-textarea-autosize": "^5.2.1", "react-transition-group": "^2.2.1", "redux-thunk": "^2.1.0", - "tc-ui": "git+https://github.com/appirio-tech/tc-ui.git#e577a0e704136f1e9ecce92ce4c0626aab932691", "uncontrollable": "^4.0.1" }, "dependencies": { @@ -449,6 +448,64 @@ "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.12.7.tgz", "integrity": "sha512-fLeEhqwymYat/MpTPUjSKHVYYl0ec2mOyALEMLmzr5i1isuG+6jfI2j2d5oBO3VIzgUXgBVIcOT9uH1TFxBckw==" }, + "fbjs": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.6.1.tgz", + "integrity": "sha1-lja3cF9bqWhNRLcveDISVK/IYPc=", + "requires": { + "core-js": "^1.0.0", + "loose-envify": "^1.0.0", + "promise": "^7.0.3", + "ua-parser-js": "^0.7.9", + "whatwg-fetch": "^0.9.0" + } + }, + "history": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/history/-/history-2.1.2.tgz", + "integrity": "sha1-SqLeiXoOSGfkU5hDvm7Nsphr/ew=", + "requires": { + "deep-equal": "^1.0.0", + "invariant": "^2.0.0", + "query-string": "^3.0.0", + "warning": "^2.0.0" + }, + "dependencies": { + "warning": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/warning/-/warning-2.1.0.tgz", + "integrity": "sha1-ISINnGOvx3qMkhEeARr3Bc4MaQE=", + "requires": { + "loose-envify": "^1.0.0" + } + } + } + }, + "hoist-non-react-statics": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-1.2.0.tgz", + "integrity": "sha1-qkSM8JhtVcxAdzsXF0t90GbLfPs=" + }, + "query-string": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-3.0.3.tgz", + "integrity": "sha1-ri4UtNBQcdTpuetIc8NbDc1C5jg=", + "requires": { + "strict-uri-encode": "^1.0.0" + } + }, + "react-router": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-2.8.1.tgz", + "integrity": "sha1-c+lJH2zrMW0Pd5gpCBhj43juTtc=", + "requires": { + "history": "^2.1.2", + "hoist-non-react-statics": "^1.2.0", + "invariant": "^2.2.1", + "loose-envify": "^1.2.0", + "warning": "^3.0.0" + } + }, "react-select": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/react-select/-/react-select-0.9.1.tgz", @@ -458,6 +515,40 @@ "react-input-autosize": "^0.6.2" } }, + "tc-ui": { + "version": "git+https://github.com/appirio-tech/tc-ui.git#e577a0e704136f1e9ecce92ce4c0626aab932691", + "from": "git+https://github.com/appirio-tech/tc-ui.git#e577a0e704136f1e9ecce92ce4c0626aab932691", + "requires": { + "classnames": "^2.2.3", + "lodash": "^4.0.0", + "moment": "^2.11.2", + "node-neat": "~1.7.1-beta1", + "react": "^0.14.7", + "react-datetime": "^2.0.2", + "react-dom": "^0.14.7", + "react-dropzone": "^3.3.2", + "react-redux": "^4.2.1", + "react-router": "^2.0.0-rc6", + "react-select": "^0.9.1", + "redux": "^3.3.1" + }, + "dependencies": { + "react": { + "version": "0.14.9", + "resolved": "https://registry.npmjs.org/react/-/react-0.14.9.tgz", + "integrity": "sha1-kRCmSXxJ1EuhwO3TF67CnC4NkdE=", + "requires": { + "envify": "^3.0.0", + "fbjs": "^0.6.1" + } + }, + "react-dom": { + "version": "0.14.9", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-0.14.9.tgz", + "integrity": "sha1-BQZKPc8PsYgKOyv8nVjFXY2fYpM=" + } + } + }, "uncontrollable": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-4.1.0.tgz", @@ -465,6 +556,19 @@ "requires": { "invariant": "^2.1.0" } + }, + "warning": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", + "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=", + "requires": { + "loose-envify": "^1.0.0" + } + }, + "whatwg-fetch": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-0.9.0.tgz", + "integrity": "sha1-DjaExsuZlbQ+/J3wPkw2XZX9nMA=" } } }, @@ -6053,12 +6157,14 @@ "balanced-match": { "version": "1.0.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, "dev": true, + "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -6073,17 +6179,20 @@ "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "core-util-is": { "version": "1.0.2", @@ -6200,7 +6309,8 @@ "inherits": { "version": "2.0.3", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "ini": { "version": "1.3.5", @@ -6212,6 +6322,7 @@ "version": "1.0.0", "bundled": true, "dev": true, + "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -6226,6 +6337,7 @@ "version": "3.0.4", "bundled": true, "dev": true, + "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -6233,12 +6345,14 @@ "minimist": { "version": "0.0.8", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "minipass": { "version": "2.3.5", "bundled": true, "dev": true, + "optional": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -6257,6 +6371,7 @@ "version": "0.5.1", "bundled": true, "dev": true, + "optional": true, "requires": { "minimist": "0.0.8" } @@ -6337,7 +6452,8 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "object-assign": { "version": "4.1.1", @@ -6349,6 +6465,7 @@ "version": "1.4.0", "bundled": true, "dev": true, + "optional": true, "requires": { "wrappy": "1" } @@ -6470,6 +6587,7 @@ "version": "1.0.2", "bundled": true, "dev": true, + "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -17152,17 +17270,10 @@ "Base64": "~0.1.3", "json-fallback": "0.0.1", "jsonp": "~0.0.4", - "qs": "git+https://github.com/jfromaniello/node-querystring.git#5d96513991635e3e22d7aa54a8584d6ce97cace8", "reqwest": "^1.1.4", "trim": "~0.0.1", "winchan": "^0.1.1", "xtend": "~2.1.1" - }, - "dependencies": { - "qs": { - "version": "git+https://github.com/jfromaniello/node-querystring.git#5d96513991635e3e22d7aa54a8584d6ce97cace8", - "from": "git+https://github.com/jfromaniello/node-querystring.git#fix_ie7_bug_with_arrays" - } } }, "auto-config-fake-server": { @@ -19810,6 +19921,7 @@ "version": "0.0.9", "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "optional": true, "requires": { "inherits": "~2.0.0" } @@ -19818,6 +19930,7 @@ "version": "2.10.1", "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "optional": true, "requires": { "hoek": "2.x.x" } @@ -19834,7 +19947,8 @@ "buffer-shims": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", - "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=" + "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=", + "optional": true }, "caseless": { "version": "0.12.0", @@ -19851,12 +19965,14 @@ "code-point-at": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "optional": true }, "combined-stream": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", + "optional": true, "requires": { "delayed-stream": "~1.0.0" } @@ -19869,12 +19985,14 @@ "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=" + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "optional": true }, "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "optional": true }, "cryptiles": { "version": "2.0.5", @@ -19920,7 +20038,8 @@ "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "optional": true }, "delegates": { "version": "1.0.0", @@ -19946,7 +20065,8 @@ "extsprintf": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", - "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA=" + "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA=", + "optional": true }, "forever-agent": { "version": "0.6.1", @@ -20117,6 +20237,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -20130,7 +20251,8 @@ "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "optional": true }, "isstream": { "version": "0.1.2", @@ -20203,12 +20325,14 @@ "mime-db": { "version": "1.27.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz", - "integrity": "sha1-gg9XIpa70g7CXtVeW13oaeVDbrE=" + "integrity": "sha1-gg9XIpa70g7CXtVeW13oaeVDbrE=", + "optional": true }, "mime-types": { "version": "2.1.15", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz", "integrity": "sha1-pOv1BkCUVpI3uM9wBGd20J/JKu0=", + "optional": true, "requires": { "mime-db": "~1.27.0" } @@ -20282,7 +20406,8 @@ "number-is-nan": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "optional": true }, "oauth-sign": { "version": "0.8.2", @@ -20340,7 +20465,8 @@ "process-nextick-args": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", + "optional": true }, "punycode": { "version": "1.4.1", @@ -20378,6 +20504,7 @@ "version": "2.2.9", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz", "integrity": "sha1-z3jsb0ptHrQ9JkiMrJfwQudLf8g=", + "optional": true, "requires": { "buffer-shims": "~1.0.0", "core-util-is": "~1.0.0", @@ -20429,7 +20556,8 @@ "safe-buffer": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", - "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=" + "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=", + "optional": true }, "semver": { "version": "5.3.0", @@ -20487,6 +20615,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -20497,6 +20626,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz", "integrity": "sha1-YuIA8DmVWmgQ2N8KM//A8BNmLZg=", + "optional": true, "requires": { "safe-buffer": "^5.0.1" } @@ -20525,6 +20655,7 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", + "optional": true, "requires": { "block-stream": "*", "fstream": "^1.0.2", @@ -20580,7 +20711,8 @@ "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "optional": true }, "uuid": { "version": "3.0.1", @@ -23173,6 +23305,10 @@ "resolved": "https://registry.npmjs.org/q/-/q-1.5.0.tgz", "integrity": "sha512-VVMcd+HnuWZalHPycK7CsbVJ+sSrrrnCvHcW38YJVK9Tywnb5DUWJjONi81bLUj7aqDjIXnePxBl5t1r/F/ncg==" }, + "qs": { + "version": "git+https://github.com/jfromaniello/node-querystring.git#5d96513991635e3e22d7aa54a8584d6ce97cace8", + "from": "git+https://github.com/jfromaniello/node-querystring.git#5d96513991635e3e22d7aa54a8584d6ce97cace8" + }, "query-string": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", diff --git a/src/api/messages.js b/src/api/messages.js index 554b32b43..06ce533d8 100644 --- a/src/api/messages.js +++ b/src/api/messages.js @@ -76,7 +76,11 @@ export function deleteTopic(topicId) { } export function addTopicPost(topicId, post) { - return axios.post(`${apiBaseUrl}/topics/${topicId}/posts/create`, { post: post.content }, { timeout } ) + const payload = { + post: post.content, + attachmentIds: post.attachmentIds + } + return axios.post(`${apiBaseUrl}/topics/${topicId}/posts/create`, payload, { timeout } ) .then( resp => { return { topicId, @@ -86,7 +90,11 @@ export function addTopicPost(topicId, post) { } export function saveTopicPost(topicId, post) { - return axios.post(`${apiBaseUrl}/topics/${topicId}/posts/${post.id}/edit`, { post: post.content }, { timeout } ) + const payload = { + post: post.content, + attachmentIds: post.attachmentIds + } + return axios.post(`${apiBaseUrl}/topics/${topicId}/posts/${post.id}/edit`, payload, { timeout } ) .then( resp => { return { topicId, @@ -149,3 +157,28 @@ export function getTopicsWithComments(reference, referenceId, tag, removeCoderBo }) } + +export function createTopicAttachment(attachment) { + return axios.post(`${apiBaseUrl}/topics/attachments/create`, attachment, { timeout } ) + .then( resp => { + return { + result : _.get(resp.data, 'result.content', {}) + } + }) +} + +export function getTopicAttachment(attachmentId) { + return axios.get(`${apiBaseUrl}/topics/attachments/${attachmentId}/read`, { timeout } ) + .then( resp => { + return _.get(resp.data, 'result.content.url', "") + }) +} + +export function deleteTopicAttachment(attachmentId) { + return axios.delete(`${apiBaseUrl}/topics/attachments/${attachmentId}/delete`, { timeout } ) + .then( resp => { + return { + result : _.get(resp.data, 'result.content', {}) + } + }) +} diff --git a/src/components/ActionCard/ActionCard.jsx b/src/components/ActionCard/ActionCard.jsx index 2ca005e78..f9de21360 100644 --- a/src/components/ActionCard/ActionCard.jsx +++ b/src/components/ActionCard/ActionCard.jsx @@ -42,8 +42,8 @@ class Header extends React.Component{ onTopicChange(title, content) { this.props.onTopicChange(this.props.topicMessage.id, title, content, true) } - onSaveTopic({title, content}) { - this.props.onSaveTopic(this.props.topicMessage.id, title, content) + onSaveTopic({title, content, onSaveTopic}) { + this.props.onSaveTopic(this.props.topicMessage.id, title, content, onSaveTopic) } render() { @@ -67,6 +67,7 @@ class Header extends React.Component{ avatarUrl={this.props.avatarUrl} authorName={this.props.authorName} cancelEdit={this.cancelEditTopic} + canUploadAttachment /> ) } diff --git a/src/components/ActionCard/AddComment.jsx b/src/components/ActionCard/AddComment.jsx index 94326165c..72fbab580 100644 --- a/src/components/ActionCard/AddComment.jsx +++ b/src/components/ActionCard/AddComment.jsx @@ -16,8 +16,8 @@ export default class AddComment extends React.Component { } } - onPost({content}) { - this.props.onAdd(content) + onPost({ content, attachmentIds }) { + this.props.onAdd(content, attachmentIds) } onChange(title, content) { @@ -40,6 +40,7 @@ export default class AddComment extends React.Component { authorName={authorName} allMembers={allMembers} projectMembers={projectMembers} + canUploadAttachment /> ) } diff --git a/src/components/ActionCard/Comment.jsx b/src/components/ActionCard/Comment.jsx index 331e903ee..7b6c097f3 100644 --- a/src/components/ActionCard/Comment.jsx +++ b/src/components/ActionCard/Comment.jsx @@ -3,17 +3,19 @@ import PropTypes from 'prop-types' import cn from 'classnames' import UserTooltip from '../User/UserTooltip' import RichTextArea from '../RichTextArea/RichTextArea' -import { Link } from 'react-router-dom' +import { Link, withRouter } from 'react-router-dom' import CommentEditToggle from './CommentEditToggle' import _ from 'lodash' import moment from 'moment' import NotificationsReader from '../../components/NotificationsReader' -import { +import { POST_TIME_FORMAT, - EVENT_TYPE, + EVENT_TYPE, + CONNECT_MESSAGE_API_URL, } from '../../config/constants.js' import './Comment.scss' +import { PROJECT_ATTACHMENTS_FOLDER } from '../../config/constants' class Comment extends React.Component { @@ -25,18 +27,24 @@ class Comment extends React.Component { this.edit = this.edit.bind(this) this.delete = this.delete.bind(this) this.cancelEdit = this.cancelEdit.bind(this) + this.getDownloadAttachmentUrl = this.getDownloadAttachmentUrl.bind(this) + this.getDownloadAttachmentFilename = this.getDownloadAttachmentFilename.bind(this) } componentWillMount() { - this.setState({editMode: this.props.message && this.props.message.editMode || this.props.isSaving}) + const projectId = this.props.match.params.projectId + this.setState({ + editMode: this.props.message && this.props.message.editMode || this.props.isSaving, + attachmentsStorePath: `${PROJECT_ATTACHMENTS_FOLDER}/${projectId}/` + }) } componentWillReceiveProps(nextProps) { this.setState({editMode: nextProps.message && nextProps.message.editMode || nextProps.isSaving}) } - onSave({content}) { - this.props.onSave(this.props.message, content) + onSave({content, attachmentIds}) { + this.props.onSave(this.props.message, content, attachmentIds) } onChange(title, content) { @@ -57,6 +65,16 @@ class Comment extends React.Component { this.props.onChange(null, false) } + getDownloadAttachmentUrl(attachmentId) { + return `/projects/messages/attachments/${attachmentId}` + } + + getDownloadAttachmentFilename(attachmentOriginalFilename) { + const regex = new RegExp(`^${_.escapeRegExp(this.state.attachmentsStorePath)}.[a-zA-Z0-9]*.(.*.)`, 'g') + const match = regex.exec(attachmentOriginalFilename) + return match[1] + } + render() { const {message, author, date, edited, children, noInfo, self, isSaving, hasError, readonly, allMembers, canDelete, projectMembers, commentAnchorPrefix} = this.props const messageAnchor = commentAnchorPrefix + message.id @@ -86,6 +104,8 @@ class Comment extends React.Component { allMembers={allMembers} projectMembers={projectMembers} editingTopic = {false} + canUploadAttachment + attachments={message.attachments} /> ) @@ -93,11 +113,11 @@ class Comment extends React.Component { return (
- @@ -130,6 +150,19 @@ class Comment extends React.Component {
{children}
+ { message.attachments && +
+ +
+ } {isDeleting &&
Deleting post ...
@@ -214,4 +247,4 @@ Comment.propTypes = { commentAnchorPrefix: PropTypes.string, } -export default Comment +export default withRouter(Comment) diff --git a/src/components/ActionCard/Comment.scss b/src/components/ActionCard/Comment.scss index 4d3972578..d459ba765 100644 --- a/src/components/ActionCard/Comment.scss +++ b/src/components/ActionCard/Comment.scss @@ -35,7 +35,7 @@ min-width: 0; } -.text { +.text { a, a:hover { color:$tc-dark-blue-110; @@ -120,3 +120,83 @@ line-height: 20px; } } + +.download-attachment-files { + margin-top: 10px; + width: 50%; + li{ + @include roboto; + font-size: $tc-label-md; + color: $tc-dark-blue-110; + line-height: 1; + padding: $base-unit 0 $base-unit 0; + display: flex; + + &.clickable { + cursor: pointer; + } + + &.is-active { + background-color: $tc-gray-neutral-dark; + + &:not(.delete-confirmation-modal):hover { + background-color: $tc-gray-neutral-dark; + } + } + + .button-group { + margin-left: auto; + padding-left:20px; + width: 110px; + } + + .buttons{ + visibility: hidden; + margin-right: 5px; + margin-left: auto; + button { + padding: 0; + background: transparent; + border: none; + cursor: pointer; + opacity: 0.4; + height: 16px; + width: 16px; + background-size: 16px; + display: inline-block; + margin-left: 15px; + } + } + a { + color: $tc-dark-blue-110; + line-height: $base-unit*4; + max-width: 220px; + text-overflow: ellipsis; + overflow-x: hidden; + + &:visited { + color: $tc-dark-blue-110; + } + } + } + @media screen and (min-width: $screen-md) { + li:hover{ + background: $tc-gray-neutral-light; + color: $tc-dark-blue; + + .buttons{ + display: block; + } + .link-buttons{ + visibility: visible; + } + } + } + + li:before { + content: '\b7\a0'; + font-size: 200%; + color: $tc-dark-blue-110; + line-height: $base-unit*3; + } +} diff --git a/src/components/Feed/Feed.jsx b/src/components/Feed/Feed.jsx index 6d5f201fd..1a61f8ef1 100644 --- a/src/components/Feed/Feed.jsx +++ b/src/components/Feed/Feed.jsx @@ -67,8 +67,8 @@ class Feed extends React.Component { this.props.onTopicChange(this.props.topicMessage.id, title, content, true) } - onSaveTopic({title, content}) { - this.props.onSaveTopic(this.props.topicMessage.id, title, content) + onSaveTopic({title, content, attachmentIds}) { + this.props.onSaveTopic(this.props.topicMessage.id, title, content, attachmentIds) } updateHeaderHeight() { diff --git a/src/components/Feed/FeedComments.jsx b/src/components/Feed/FeedComments.jsx index c4aa2ef10..99cd122e0 100644 --- a/src/components/Feed/FeedComments.jsx +++ b/src/components/Feed/FeedComments.jsx @@ -425,7 +425,7 @@ class FeedComments extends React.Component { submitText="Post" nextStepText="Add a post" onClose={this.toggleNewCommentMobile} - onPost={({ content }) => onAddNewComment(content)} + onPost={({ content, attachmentIds }) => onAddNewComment(content, attachmentIds)} isCreating={isAddingComment} hasError={error} onNewPostChange={this.onNewCommentChange} diff --git a/src/components/Feed/NewPost.jsx b/src/components/Feed/NewPost.jsx index 482c67794..165896a25 100644 --- a/src/components/Feed/NewPost.jsx +++ b/src/components/Feed/NewPost.jsx @@ -40,6 +40,7 @@ class NewPost extends React.Component { allMembers={allMembers} projectMembers={projectMembers} hasPrivateSwitch={canAccessPrivatePosts} + canUploadAttachment /> ) } diff --git a/src/components/Feed/NewPostMobile.jsx b/src/components/Feed/NewPostMobile.jsx index 1367aaa85..37acea72f 100644 --- a/src/components/Feed/NewPostMobile.jsx +++ b/src/components/Feed/NewPostMobile.jsx @@ -16,12 +16,27 @@ import MobilePage from '../MobilePage/MobilePage' import SwitchButton from 'appirio-tech-react-components/components/SwitchButton/SwitchButton' import XMartIcon from '../../assets/icons/x-mark.svg' import './NewPostMobile.scss' +import * as filepicker from 'filestack-js' +import { + FILE_PICKER_API_KEY, + FILE_PICKER_CNAME, + FILE_PICKER_FROM_SOURCES, + FILE_PICKER_SUBMISSION_CONTAINER_NAME, PROJECT_ATTACHMENTS_FOLDER +} from '../../config/constants' +import BtnRemove from '../../assets/icons/ui-16px-1_trash-simple.svg' +import _ from 'lodash' +import { withRouter } from 'react-router-dom' +import { createTopicAttachment } from '../../api/messages' export const NEW_POST_STEP = { STATUS: 'STATUS', COMMENT: 'COMMENT' } +const fileUploadClient = filepicker.init(FILE_PICKER_API_KEY, { + cname: FILE_PICKER_CNAME +}) + // we need it to calulate body height based on the actual mobile browser viewport height const HEADER_HEIGHT = 50 @@ -29,17 +44,25 @@ class NewPostMobile extends React.Component { constructor(props) { super(props) + const projectId = props.match.params.projectId this.state = { step: props.step, statusValue: '', commentValue: '', browserActualViewportHeigth: document.documentElement.clientHeight, - isPrivate: false + isPrivate: false, + isAttachmentUploaderOpen: false, + rawFiles: [], + attachmentsStorePath: `${PROJECT_ATTACHMENTS_FOLDER}/${projectId}/`, } this.setStep = this.setStep.bind(this) this.onValueChange = this.onValueChange.bind(this) this.updateBrowserHeight = this.updateBrowserHeight.bind(this) + this.openFileUpload = this.openFileUpload.bind(this) + this.processUploadedFiles = this.processUploadedFiles.bind(this) + this.removeRawFile = this.removeRawFile.bind(this) + this.onPost = this.onPost.bind(this) } componentWillMount() { @@ -79,12 +102,85 @@ class NewPostMobile extends React.Component { } } + openFileUpload() { + if (fileUploadClient) { + if (this.state.isAttachmentUploaderOpen) return + const picker = fileUploadClient.picker({ + storeTo: { + location: 's3', + path: this.state.attachmentsStorePath, + container: FILE_PICKER_SUBMISSION_CONTAINER_NAME, + region: 'us-east-1' + }, + maxFiles: 4, + fromSources: FILE_PICKER_FROM_SOURCES, + uploadInBackground: false, + onFileUploadFinished: (files) => { + this.processUploadedFiles(files) + }, + onOpen: () => { + this.setState({isAttachmentUploaderOpen: true}) + }, + onClose: () => { + this.setState({isAttachmentUploaderOpen: false}) + } + }) + + picker.open() + } + } + + processUploadedFiles(fpFiles) { + fpFiles = _.isArray(fpFiles) ? fpFiles : [fpFiles] + const rawFiles = fpFiles.map(f => ({ + filename: f.key, + bucket: f.container, + title: f.filename + })) + + this.setState({ rawFiles }) + } + + removeRawFile(index) { + const rawFiles = _.cloneDeep(this.state.rawFiles) + rawFiles.splice(index, 1) + this.setState({ + rawFiles + }) + } + + onPost() { + const { statusValue, commentValue, isPrivate, rawFiles } = this.state + if (rawFiles.length > 0) { + const promises = rawFiles.map(f => createTopicAttachment(_.omit(f, ['title']))) + Promise.all(promises) + .then(results => { + const rawFilesattachmentIds = results.map(content => content.result.id) + const attachmentIds = [ + ...rawFilesattachmentIds + ] + this.props.onPost({ + title: statusValue, + content: commentValue, + isPrivate, + attachmentIds + }) + }) + } else { + this.props.onPost({ + title: statusValue, + content: commentValue, + isPrivate + }) + } + } + render() { const { - statusTitle, commentTitle, commentPlaceholder, submitText, onPost, onClose, + statusTitle, commentTitle, commentPlaceholder, submitText, onClose, isCreating, nextStepText, statusPlaceholder, canAccessPrivatePosts } = this.props - const { step, statusValue, commentValue, browserActualViewportHeigth, isPrivate } = this.state + const { step, statusValue, commentValue, browserActualViewportHeigth, isPrivate, rawFiles } = this.state let value let title @@ -104,11 +200,7 @@ class NewPostMobile extends React.Component { value = commentValue title = commentTitle placeholder = commentPlaceholder - onBtnClick = () => onPost({ - title: statusValue, - content: commentValue, - isPrivate - }) + onBtnClick = () => { this.onPost() } btnText = submitText } @@ -136,12 +228,37 @@ class NewPostMobile extends React.Component { onChange={this.onValueChange} disabled={isCreating} /> -
- +
+
+
+
    + { + rawFiles.map((f, index) => ( +
  • + {f.title} +
    +
    + +
    +
    +
  • + )) + } +
+
+ +
+
+ +
@@ -167,4 +284,4 @@ NewPostMobile.propTypes = { canAccessPrivatePosts: PropTypes.bool, } -export default NewPostMobile +export default withRouter(NewPostMobile) diff --git a/src/components/Feed/NewPostMobile.scss b/src/components/Feed/NewPostMobile.scss index 13f66dbc8..12d9f78e2 100644 --- a/src/components/Feed/NewPostMobile.scss +++ b/src/components/Feed/NewPostMobile.scss @@ -73,7 +73,7 @@ padding: 4 * $base-unit; resize: none; - &::placholder { + &::placeholder { color: $tc-gray-40; } } @@ -134,3 +134,82 @@ } } } + +.attachment-files-mobile { + width: 50%; + li{ + @include roboto; + font-size: $tc-label-md; + color: $tc-dark-blue-110; + line-height: 1; + padding: $base-unit 0 $base-unit 0; + display: flex; + + &.clickable { + cursor: pointer; + } + + &.is-active { + background-color: $tc-gray-neutral-dark; + } + + .button-group { + margin-left: auto; + padding-left:20px; + width: 110px; + } + + .buttons{ + margin-right: 5px; + margin-left: auto; + button { + padding: 0; + background: transparent; + border: none; + cursor: pointer; + opacity: 0.4; + height: 16px; + width: 16px; + background-size: 16px; + display: inline-block; + margin-left: 15px; + } + } + a { + color: $tc-dark-blue-110; + line-height: $base-unit*4; + max-width: 220px; + text-overflow: ellipsis; + overflow-x: hidden; + + &:visited { + color: $tc-dark-blue-110; + } + } + } + + li:before { + content: '\b7\a0'; + font-size: 200%; + color: $tc-dark-blue-110; + line-height: $base-unit*3; + } +} + +.tc-attachment-button { + width: 50%; + a{ + float: right; + cursor: pointer; + color: $tc-dark-blue; + &:hover { + text-decoration: underline; + } + } + margin-right: 20px; +} + +.attachment-wrapper { + padding: 10px; + display: flex; +} diff --git a/src/components/FileDownload.jsx b/src/components/FileDownload.jsx index 26741cde5..691cc88cf 100644 --- a/src/components/FileDownload.jsx +++ b/src/components/FileDownload.jsx @@ -1,5 +1,6 @@ import React from 'react' import { getProjectAttachment } from '../api/projectAttachments' +import { getTopicAttachment } from '../api/messages' import { withRouter } from 'react-router-dom' class FileDownload extends React.Component { @@ -15,13 +16,22 @@ class FileDownload extends React.Component { } download() { - const projectId = this.props.match.params.projectId - const attachmentId = this.props.match.params.attachmentId - getProjectAttachment(projectId, attachmentId).then((url) => { - window.location = url - }).catch(() => { - this.setState({loaded:true, error:'File unavailable'}) - }) + if (this.props.match.params.messageAttachmentId){ + const attachmentId = this.props.match.params.messageAttachmentId + getTopicAttachment(attachmentId).then((url) => { + window.location = url + }).catch(() => { + this.setState({loaded:true, error:'File unavailable'}) + }) + } else { + const projectId = this.props.match.params.projectId + const attachmentId = this.props.match.params.attachmentId + getProjectAttachment(projectId, attachmentId).then((url) => { + window.location = url + }).catch(() => { + this.setState({loaded:true, error:'File unavailable'}) + }) + } } render() { diff --git a/src/components/RichTextArea/RichTextArea.jsx b/src/components/RichTextArea/RichTextArea.jsx index fe9f9354f..ae0ad3172 100644 --- a/src/components/RichTextArea/RichTextArea.jsx +++ b/src/components/RichTextArea/RichTextArea.jsx @@ -22,6 +22,17 @@ import _ from 'lodash' import { getAvatarResized } from '../../helpers/tcHelpers' import SwitchButton from 'appirio-tech-react-components/components/SwitchButton/SwitchButton' +import { + FILE_PICKER_API_KEY, + FILE_PICKER_CNAME, FILE_PICKER_FROM_SOURCES, + FILE_PICKER_SUBMISSION_CONTAINER_NAME, + PROJECT_ATTACHMENTS_FOLDER +} from '../../config/constants' +import * as filepicker from 'filestack-js' +import BtnRemove from '../../assets/icons/ui-16px-1_trash-simple.svg' +import { createTopicAttachment } from '../../api/messages' +import { withRouter } from 'react-router-dom' + const linkPlugin = createLinkPlugin() const blockDndPlugin = createBlockDndPlugin() @@ -52,18 +63,22 @@ const blocks = [ {className: 'code', style: 'code-block'} ] +const fileUploadClient = filepicker.init(FILE_PICKER_API_KEY, { + cname: FILE_PICKER_CNAME +}) + class RichTextArea extends React.Component { constructor(props) { super(props) this.state = { - editorExpanded: false, - editorState: EditorState.createEmpty(), - titleValue: '', - suggestions: [], - allSuggestions:[], + editorExpanded: false, + editorState: EditorState.createEmpty(), + titleValue: '', + suggestions: [], + allSuggestions:[], isPrivate: false } - + this.onTitleChange = this.onTitleChange.bind(this) this.onEditorChange = this.onEditorChange.bind(this) this.handleKeyCommand = this.handleKeyCommand.bind(this) @@ -78,6 +93,11 @@ class RichTextArea extends React.Component { this.setUploadState = this.setUploadState.bind(this) this.onSearchChange = this.onSearchChange.bind(this) this.onAddMention = this.onAddMention.bind(this) + this.openFileUpload = this.openFileUpload.bind(this) + this.processUploadedFiles = this.processUploadedFiles.bind(this) + this.getDownloadAttachmentFilename = this.getDownloadAttachmentFilename.bind(this) + this.removeRawFile = this.removeRawFile.bind(this) + this.removeFile = this.removeFile.bind(this) this.mentionPlugin = createMentionPlugin({mentionPrefix: '@'}) this.plugins = plugins.slice(0) this.plugins.push(this.mentionPlugin) @@ -90,6 +110,7 @@ class RichTextArea extends React.Component { componentWillMount() { const suggestions = _.map(_.values(this.props.projectMembers), (e) => { return {name: e.firstName + ' ' + e.lastName, handle: e.handle, userId: e.userId, link:'/users/'+e.handle} }) + const projectId = this.props.match.params.projectId this.setState({ editorExpanded: this.props.editMode, titleValue: this.props.title || '', @@ -97,7 +118,11 @@ class RichTextArea extends React.Component { currentMDContent: this.props.content, oldMDContent: this.props.oldContent, suggestions, - allSuggestions:suggestions + allSuggestions:suggestions, + isAttachmentUploaderOpen: false, + rawFiles: [], + attachmentsStorePath: `${PROJECT_ATTACHMENTS_FOLDER}/${projectId}/`, + files: _.cloneDeep(this.props.attachments || []) }) } @@ -106,7 +131,6 @@ class RichTextArea extends React.Component { } componentWillReceiveProps(nextProps) { - if (nextProps.isCreating !== this.props.isCreating && !nextProps.isCreating && !nextProps.hasError) { this.clearState() } else if ((nextProps.isGettingComment !== this.props.isGettingComment && !nextProps.isGettingComment) @@ -117,7 +141,8 @@ class RichTextArea extends React.Component { titleValue: nextProps.title || '', editorState, currentMDContent: nextProps.content, - oldMDContent: nextProps.oldContent + oldMDContent: nextProps.oldContent, + files: _.cloneDeep(nextProps.attachments || []) }) } } @@ -184,11 +209,11 @@ class RichTextArea extends React.Component { const editorExpanded = isEditor && !isCloseButton const isPrivate = isEditor && !isCloseButton ? this.state.isPrivate : false - + // to avoid unnecessary re-rendering on every click, only update state if any of the values is updated if (editorExpanded !== this.state.editorExpanded || isPrivate !== this.state.isPrivate) { this.setState({ - editorExpanded, + editorExpanded, isPrivate, }) } @@ -241,19 +266,32 @@ class RichTextArea extends React.Component { this.props.onPostChange(this.refs.title.value, this.state.currentMDContent) } } - onPost() { + const { isCreating, disableTitle, disableContent, onPost, canUploadAttachment } = this.props + const { titleValue: title, currentMDContent: content, isPrivate, rawFiles, files } = this.state // if post creation is already in progress - if (this.props.isCreating) { + if (isCreating) { return } - const title = this.state.titleValue - const content = this.state.currentMDContent - const isPrivate = this.state.isPrivate - - if ((this.props.disableTitle || title) && (this.props.disableContent || content)) { - this.props.onPost({title, content, isPrivate}) + if (canUploadAttachment && rawFiles.length > 0) { + const promises = rawFiles.map(f => createTopicAttachment(_.omit(f, ['title']))) + Promise.all(promises) + .then(results => { + const rawFilesattachmentIds = results.map(content => content.result.id) + const filesattachmentIds = files.map(f => f.id) + const attachmentIds = [ + ...filesattachmentIds, + ...rawFilesattachmentIds + ] + if ((disableTitle || title) && (disableContent || content)) { + onPost({ title, content, isPrivate, attachmentIds }) + } + }) + } else { + if ((disableTitle || title) && (disableContent || content)) { + onPost({ title, content, isPrivate, attachmentIds: files.map(f => f.id) }) + } } } onSearchChange({value}){ @@ -264,6 +302,9 @@ class RichTextArea extends React.Component { onAddMention() { } cancelEdit() { + this.setState({ + rawFiles: [] + }) this.props.cancelEdit() } getEditorState() { @@ -275,15 +316,77 @@ class RichTextArea extends React.Component { setUploadState(uploading) { this.setState({uploading}) } + openFileUpload() { + if (fileUploadClient) { + if (this.state.isAttachmentUploaderOpen) return + const picker = fileUploadClient.picker({ + storeTo: { + location: 's3', + path: this.state.attachmentsStorePath, + container: FILE_PICKER_SUBMISSION_CONTAINER_NAME, + region: 'us-east-1' + }, + maxFiles: 4, + fromSources: FILE_PICKER_FROM_SOURCES, + uploadInBackground: false, + onFileUploadFinished: (files) => { + this.processUploadedFiles(files) + }, + onOpen: () => { + this.setState({isAttachmentUploaderOpen: true}) + }, + onClose: () => { + this.setState({isAttachmentUploaderOpen: false}) + } + }) + + picker.open() + } + } + processUploadedFiles(fpFiles) { + fpFiles = _.isArray(fpFiles) ? fpFiles : [fpFiles] + let rawFiles = fpFiles.map(f => ({ + filename: f.key, + bucket: f.container, + title: f.filename + })) + if (this.state.rawFiles){ + rawFiles = this.state.rawFiles.concat(rawFiles); + } + + this.setState({ rawFiles, editorExpanded: true }) + } + removeRawFile(index) { + const rawFiles = _.cloneDeep(this.state.rawFiles) + rawFiles.splice(index, 1) + this.setState({ + editorExpanded: true, + rawFiles + }) + } + removeFile(index) { + const files = _.cloneDeep(this.state.files) + files.splice(index, 1) + this.setState({ + editorExpanded: true, + files + }) + } + getDownloadAttachmentFilename(attachmentOriginalFilename) { + const regex = new RegExp(`^${_.escapeRegExp(this.state.attachmentsStorePath)}.[a-zA-Z0-9]*.(.*.)`, 'g') + const match = regex.exec(attachmentOriginalFilename) + return match[1] + } render() { const {MentionSuggestions} = this.mentionPlugin const {className, avatarUrl, authorName, titlePlaceholder, contentPlaceholder, editMode, isCreating, - isGettingComment, disableTitle, disableContent, expandedTitlePlaceholder, editingTopic, hasPrivateSwitch } = this.props - const {editorExpanded, editorState, titleValue, oldMDContent, currentMDContent, uploading, isPrivate} = this.state + isGettingComment, disableTitle, disableContent, expandedTitlePlaceholder, editingTopic, hasPrivateSwitch, canUploadAttachment } = this.props + const {editorExpanded, editorState, titleValue, oldMDContent, currentMDContent, uploading, isPrivate, rawFiles, files} = this.state let canSubmit = (disableTitle || titleValue.trim()) && (disableContent || editorState.getCurrentContent().hasText()) if (editMode && canSubmit) { canSubmit = (!disableTitle && titleValue !== this.props.oldTitle) || (!disableContent && oldMDContent !== currentMDContent) + || rawFiles.length > 0; } const currentStyle = editorState.getCurrentInlineStyle() const blockType = RichUtils.getCurrentBlockType(editorState) @@ -361,83 +464,120 @@ class RichTextArea extends React.Component { }
- {!disableContent && -
- {styles.map((item) => ( - - ))} -
- {blocks.map((item) => ( - - ))} - - { allowImages &&
} - { allowImages && +
+ {!disableContent && +
+ {styles.map((item) => ( + + ))} +
+ {blocks.map((item) => ( + + ))} - } -
- } -
- {hasPrivateSwitch && - this.setState({isPrivate: evt.target.checked})} - checked={isPrivate} - label="Private" - /> + { allowImages &&
} + { allowImages && + + } +
} - {!editMode && - - } - {editMode && !isCreating && - + } + {editMode && !isCreating && + + } + { editMode && + - } - { editMode && - - } - { !editMode && - - } + } + { !editMode && + + } +
+ {canUploadAttachment &&
+
    + { + files.map((f, index) => ( +
  • + {this.getDownloadAttachmentFilename(f.originalFileName)} +
    +
    + +
    +
    +
  • + )) + } + { + rawFiles.map((f, index) => ( +
  • + {f.title} +
    +
    + +
    +
    +
  • + )) + } +
+
}
@@ -471,6 +611,8 @@ RichTextArea.propTypes = { projectMembers: PropTypes.object, editingTopic: PropTypes.bool, hasPrivateSwitch: PropTypes.bool, + canUploadAttachment: PropTypes.bool, + attachments: PropTypes.array } -export default RichTextArea +export default withRouter(RichTextArea) diff --git a/src/components/RichTextArea/RichTextArea.scss b/src/components/RichTextArea/RichTextArea.scss index 21bc5848f..a651ecd03 100644 --- a/src/components/RichTextArea/RichTextArea.scss +++ b/src/components/RichTextArea/RichTextArea.scss @@ -8,10 +8,13 @@ &.expanded { .tc-textarea .textarea-footer .textarea-footer-inner { - display: flex; + display: block; - @media screen and (max-width: $screen-rg - 1px) { - display: block; + .textarea-footer-inner-top { + display: flex; + @media screen and (max-width: $screen-rg - 1px) { + display: block; + } } } @@ -212,6 +215,19 @@ margin-left: auto; } + .tc-attachment { + &-button { + a{ + cursor: pointer; + color: $tc-dark-blue; + &:hover { + text-decoration: underline; + } + } + margin-right: 20px; + } + } + .tc-btns { display: flex; align-items: center; @@ -294,4 +310,84 @@ .tool-inactive { background-color: transparent; } + + .attachment-files { + margin-top: 10px; + width: 50%; + li{ + @include roboto; + font-size: $tc-label-md; + color: $tc-dark-blue-110; + line-height: 1; + padding: $base-unit 0 $base-unit 0; + display: flex; + + &.clickable { + cursor: pointer; + } + + &.is-active { + background-color: $tc-gray-neutral-dark; + + &:not(.delete-confirmation-modal):hover { + background-color: $tc-gray-neutral-dark; + } + } + + .button-group { + margin-left: auto; + padding-left:20px; + width: 110px; + } + + .buttons{ + visibility: hidden; + margin-right: 5px; + margin-left: auto; + button { + padding: 0; + background: transparent; + border: none; + cursor: pointer; + opacity: 0.4; + height: 16px; + width: 16px; + background-size: 16px; + display: inline-block; + margin-left: 15px; + } + } + a { + color: $tc-dark-blue-110; + line-height: $base-unit*4; + max-width: 220px; + text-overflow: ellipsis; + overflow-x: hidden; + + &:visited { + color: $tc-dark-blue-110; + } + } + } + @media screen and (min-width: $screen-md) { + li:hover{ + background: $tc-gray-neutral-light; + color: $tc-dark-blue; + + .buttons{ + display: block; + } + .link-buttons{ + visibility: visible; + } + } + } + + li:before { + content: '\b7\a0'; + font-size: 200%; + color: $tc-dark-blue-110; + line-height: $base-unit*3; + } + } } diff --git a/src/projects/detail/containers/FeedContainer.js b/src/projects/detail/containers/FeedContainer.js index 017dfcbdc..624477588 100644 --- a/src/projects/detail/containers/FeedContainer.js +++ b/src/projects/detail/containers/FeedContainer.js @@ -149,7 +149,8 @@ class FeedView extends React.Component { date, createdAt: p.date, edited, - author: isSystemUser(p.userId) ? SYSTEM_USER : commentAuthor + author: isSystemUser(p.userId) ? SYSTEM_USER : commentAuthor, + attachments: p.attachments || [] } const prevComment = prevFeed ? _.find(prevFeed.posts, t => p.id === t.id) : null if (prevComment && prevComment.isSavingComment && !comment.isSavingComment && !comment.error) { @@ -236,13 +237,16 @@ class FeedView extends React.Component { }) } - onNewPost({title, content, isPrivate = false}) { + onNewPost({title, content, isPrivate = false, attachmentIds}) { const { project } = this.props const newFeed = { title, body: content, tag: isPrivate ? PROJECT_FEED_TYPE_MESSAGES : PROJECT_FEED_TYPE_PRIMARY } + if (attachmentIds) { + Object.assign(newFeed, { attachmentIds }) + } this.props.createProjectTopic(project.id, newFeed) } @@ -284,13 +288,16 @@ class FeedView extends React.Component { } } - onAddNewComment(feedId, content) { + onAddNewComment(feedId, content, attachmentIds) { const { currentUser, feeds } = this.props const feed = _.find(feeds, { id: feedId }) const newComment = { date: new Date(), userId: parseInt(currentUser.id), - content + content, + } + if (attachmentIds) { + Object.assign(newComment, { attachmentIds }) } this.props.addFeedComment(feedId, feed.tag, newComment) } @@ -312,11 +319,11 @@ class FeedView extends React.Component { }) } - onSaveMessage(feedId, message, content) { + onSaveMessage(feedId, message, content, attachmentIds) { const newMessage = {...message} const { feeds } = this.state const feed = _.find(feeds, { id: feedId }) - newMessage.content = content + Object.assign(newMessage, {content, attachmentIds}) this.props.saveFeedComment(feedId, feed.tag, newMessage) } @@ -363,7 +370,8 @@ class FeedView extends React.Component { onSaveTopic(feedId, postId, title, content) { const { feeds } = this.state const feed = _.find(feeds, { id: feedId }) - this.props.saveProjectTopic(feedId, feed.tag, {postId, title, content}) + const newTopic = { postId, title, content } + this.props.saveProjectTopic(feedId, feed.tag, newTopic) } onDeleteTopic(feedId) { diff --git a/src/projects/detail/containers/MessagesContainer.js b/src/projects/detail/containers/MessagesContainer.js index 5103d0bcb..1267a4d40 100644 --- a/src/projects/detail/containers/MessagesContainer.js +++ b/src/projects/detail/containers/MessagesContainer.js @@ -319,13 +319,16 @@ class MessagesView extends React.Component { }) } - onAddNewMessage(threadId, content) { + onAddNewMessage(threadId, content, attachmentIds) { const { currentUser } = this.props const newMessage = { date: new Date(), userId: parseInt(currentUser.id), content } + if (attachmentIds) { + Object.assign(newMessage, { attachmentIds }) + } this.props.addFeedComment(threadId, PROJECT_FEED_TYPE_MESSAGES, newMessage) } @@ -346,9 +349,9 @@ class MessagesView extends React.Component { }) } - onSaveMessage(threadId, message, content) { + onSaveMessage(threadId, message, content, attachmentIds) { const newMessage = {...message} - newMessage.content = content + Object.assign(newMessage, {content, attachmentIds}) this.props.saveFeedComment(threadId, PROJECT_FEED_TYPE_MESSAGES, newMessage) } @@ -389,20 +392,24 @@ class MessagesView extends React.Component { } onSaveTopic(threadId, postId, title, content) { - this.props.saveProjectTopic(threadId, PROJECT_FEED_TYPE_MESSAGES, {postId, title, content}) + const newTopic = { postId, title, content } + this.props.saveProjectTopic(threadId, PROJECT_FEED_TYPE_MESSAGES, newTopic) } onDeleteTopic(threadId) { this.props.deleteProjectTopic(threadId, PROJECT_FEED_TYPE_MESSAGES) } - onNewThread({title, content}) { + onNewThread({title, content, attachmentIds}) { const { project } = this.props const newThread = { title, body: content, tag: PROJECT_FEED_TYPE_MESSAGES } + if (attachmentIds) { + Object.assign(newThread, { attachmentIds }) + } this.props.createProjectTopic(project.id, newThread).then(() => { this.setState({ isCreateNewMessage : false diff --git a/src/projects/detail/containers/PhaseFeedHOC.jsx b/src/projects/detail/containers/PhaseFeedHOC.jsx index 64f218ecb..74e1127d0 100644 --- a/src/projects/detail/containers/PhaseFeedHOC.jsx +++ b/src/projects/detail/containers/PhaseFeedHOC.jsx @@ -125,7 +125,7 @@ const phaseFeedHOC = (Component) => { }) } - onAddNewComment(content) { + onAddNewComment(content, attachmentIds) { const { phase, topic, currentUser, addPhaseFeedComment } = this.props const newComment = { @@ -134,6 +134,10 @@ const phaseFeedHOC = (Component) => { content, } + if (attachmentIds) { + Object.assign(newComment, { attachmentIds }) + } + addPhaseFeedComment(phase.id, topic.id, newComment) } @@ -143,10 +147,10 @@ const phaseFeedHOC = (Component) => { deletePhaseFeedComment(phase.id, topic.id, postId) } - onSaveMessage(message, content) { + onSaveMessage(message, content, attachmentIds) { const { phase, topic, savePhaseFeedComment } = this.props const updatedMessage = {...message} - updatedMessage.content = content + Object.assign(updatedMessage, {content, attachmentIds}) savePhaseFeedComment(phase.id, topic.id, updatedMessage) } diff --git a/src/projects/reducers/phasesTopics.js b/src/projects/reducers/phasesTopics.js index 7579f659c..d9c09d563 100644 --- a/src/projects/reducers/phasesTopics.js +++ b/src/projects/reducers/phasesTopics.js @@ -245,6 +245,7 @@ export const phasesTopics = function (state=initialState, action) { error: { $set: false }, rawContent: { $set : rawContent }, body: { $set : savedComment.body }, + attachments: { $set : savedComment.attachments }, updatedDate: { $set : savedComment.updatedDate }, edited: {$set : true } }) diff --git a/src/projects/reducers/projectTopics.js b/src/projects/reducers/projectTopics.js index 268bcad60..c8c7957cb 100644 --- a/src/projects/reducers/projectTopics.js +++ b/src/projects/reducers/projectTopics.js @@ -462,6 +462,7 @@ export const projectTopics = function (state=initialState, action) { error: { $set : false }, rawContent: { $set : rawContent }, body: { $set : savedComment.body }, + attachments: { $set : savedComment.attachments }, updatedDate: { $set : savedComment.updatedDate }, edited: {$set : true } }) diff --git a/src/projects/routes.jsx b/src/projects/routes.jsx index 14fe6d4d9..81c6ec80e 100644 --- a/src/projects/routes.jsx +++ b/src/projects/routes.jsx @@ -41,6 +41,7 @@ const projectRoutes = ( path="/projects" render={() => ( + , null)} /> , null)} /> , )} /> , )} /> From 574231d25b0f9a66c9b7e4bc254dd97c23880da5 Mon Sep 17 00:00:00 2001 From: Samir Date: Fri, 10 May 2019 05:06:34 +0200 Subject: [PATCH 09/89] fint fix and deploy feature branch --- .circleci/config.yml | 2 +- src/api/messages.js | 2 +- src/components/ActionCard/Comment.jsx | 1 - src/components/RichTextArea/RichTextArea.jsx | 4 ++-- 4 files changed, 4 insertions(+), 5 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index bc2544019..f340988ea 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -127,7 +127,7 @@ workflows: - build-dev filters: branches: - only: ['dev', 'dev-msinteg', 'feature/form-redesign'] + only: ['dev', 'dev-msinteg', 'feature/form-redesign', 'feature/postAttachments'] - deployProd: context : org-global diff --git a/src/api/messages.js b/src/api/messages.js index 06ce533d8..941c5e1bd 100644 --- a/src/api/messages.js +++ b/src/api/messages.js @@ -170,7 +170,7 @@ export function createTopicAttachment(attachment) { export function getTopicAttachment(attachmentId) { return axios.get(`${apiBaseUrl}/topics/attachments/${attachmentId}/read`, { timeout } ) .then( resp => { - return _.get(resp.data, 'result.content.url', "") + return _.get(resp.data, 'result.content.url', '') }) } diff --git a/src/components/ActionCard/Comment.jsx b/src/components/ActionCard/Comment.jsx index 7b6c097f3..01f31b98d 100644 --- a/src/components/ActionCard/Comment.jsx +++ b/src/components/ActionCard/Comment.jsx @@ -11,7 +11,6 @@ import NotificationsReader from '../../components/NotificationsReader' import { POST_TIME_FORMAT, EVENT_TYPE, - CONNECT_MESSAGE_API_URL, } from '../../config/constants.js' import './Comment.scss' diff --git a/src/components/RichTextArea/RichTextArea.jsx b/src/components/RichTextArea/RichTextArea.jsx index ae0ad3172..39ee0af5d 100644 --- a/src/components/RichTextArea/RichTextArea.jsx +++ b/src/components/RichTextArea/RichTextArea.jsx @@ -351,7 +351,7 @@ class RichTextArea extends React.Component { title: f.filename })) if (this.state.rawFiles){ - rawFiles = this.state.rawFiles.concat(rawFiles); + rawFiles = this.state.rawFiles.concat(rawFiles) } this.setState({ rawFiles, editorExpanded: true }) @@ -386,7 +386,7 @@ class RichTextArea extends React.Component { && (disableContent || editorState.getCurrentContent().hasText()) if (editMode && canSubmit) { canSubmit = (!disableTitle && titleValue !== this.props.oldTitle) || (!disableContent && oldMDContent !== currentMDContent) - || rawFiles.length > 0; + || rawFiles.length > 0 } const currentStyle = editorState.getCurrentInlineStyle() const blockType = RichUtils.getCurrentBlockType(editorState) From 68116cfcac289f3a097665f2c955bd2453d662f9 Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Fri, 10 May 2019 15:05:21 +0530 Subject: [PATCH 10/89] =?UTF-8?q?Github=20issue#3019,=20https://github.com?= =?UTF-8?q?/appirio-tech/connect-app/issues/3019=20=E2=80=94=20Fixed?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/projects/create/containers/CreateContainer.jsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/projects/create/containers/CreateContainer.jsx b/src/projects/create/containers/CreateContainer.jsx index 9224e9bec..a72b1906e 100644 --- a/src/projects/create/containers/CreateContainer.jsx +++ b/src/projects/create/containers/CreateContainer.jsx @@ -27,7 +27,7 @@ import { NEW_PROJECT_PATH, GA_CLIENT_ID, GA_CLICK_ID, - CONNECT_MAIN_PAGE_URL, + ACCOUNTS_APP_LOGIN_URL, PROJECT_CATALOG_URL } from '../../../config/constants' @@ -85,7 +85,7 @@ class CreateContainer extends React.Component { this.createContainerView = this.createContainerView.bind(this) if (!props.userRoles || props.userRoles.length <= 0) { - window.location = CONNECT_MAIN_PAGE_URL + window.location = ACCOUNTS_APP_LOGIN_URL } } From 0bea7299d59ec2ca8ef815d9a2b34785da678555 Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Fri, 10 May 2019 15:27:07 +0530 Subject: [PATCH 11/89] Removing unused feature branch from being deployed. --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index f340988ea..4aaaeb6f8 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -127,7 +127,7 @@ workflows: - build-dev filters: branches: - only: ['dev', 'dev-msinteg', 'feature/form-redesign', 'feature/postAttachments'] + only: ['dev', 'dev-msinteg'] - deployProd: context : org-global From 4aebd7220045ba1f37101750e42ff9516c95cc9e Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Fri, 10 May 2019 15:30:29 +0530 Subject: [PATCH 12/89] Maintaining the return URL --- src/projects/create/containers/CreateContainer.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/projects/create/containers/CreateContainer.jsx b/src/projects/create/containers/CreateContainer.jsx index a72b1906e..a870abe54 100644 --- a/src/projects/create/containers/CreateContainer.jsx +++ b/src/projects/create/containers/CreateContainer.jsx @@ -85,7 +85,7 @@ class CreateContainer extends React.Component { this.createContainerView = this.createContainerView.bind(this) if (!props.userRoles || props.userRoles.length <= 0) { - window.location = ACCOUNTS_APP_LOGIN_URL + window.location = `${ACCOUNTS_APP_LOGIN_URL}?retUrl=${window.URL}` } } From f65e72d80a221f81c27e9e8df9da207f8a5a8297 Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Fri, 10 May 2019 15:41:08 +0530 Subject: [PATCH 13/89] Fixed the URL accessor --- src/projects/create/containers/CreateContainer.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/projects/create/containers/CreateContainer.jsx b/src/projects/create/containers/CreateContainer.jsx index a870abe54..b400d8cf6 100644 --- a/src/projects/create/containers/CreateContainer.jsx +++ b/src/projects/create/containers/CreateContainer.jsx @@ -85,7 +85,7 @@ class CreateContainer extends React.Component { this.createContainerView = this.createContainerView.bind(this) if (!props.userRoles || props.userRoles.length <= 0) { - window.location = `${ACCOUNTS_APP_LOGIN_URL}?retUrl=${window.URL}` + window.location = `${ACCOUNTS_APP_LOGIN_URL}?retUrl=${window.location.href}` } } From 597033de5b65f7f8b080180d8a26d861877fb8a1 Mon Sep 17 00:00:00 2001 From: sumitdaga Date: Sat, 11 May 2019 09:14:59 +0530 Subject: [PATCH 14/89] fixes issue 2984 --- src/components/Feed/FeedComments.scss | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/components/Feed/FeedComments.scss b/src/components/Feed/FeedComments.scss index 1b3498fa9..e97eef98b 100644 --- a/src/components/Feed/FeedComments.scss +++ b/src/components/Feed/FeedComments.scss @@ -17,6 +17,10 @@ padding-top: (40px - 25px) / 2; /* input height minus line-height */ line-height: 25px; } + + .Dropdown { + z-index: 4; + } } &.is-fullscreen { From 7ac782a30d3daf047f615bdcb05784dcea0f4daf Mon Sep 17 00:00:00 2001 From: sumitdaga Date: Sat, 11 May 2019 09:31:32 +0530 Subject: [PATCH 15/89] fixes issue 2981 --- src/components/Feed/Feed.jsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/components/Feed/Feed.jsx b/src/components/Feed/Feed.jsx index 1a61f8ef1..0eeb25d1f 100644 --- a/src/components/Feed/Feed.jsx +++ b/src/components/Feed/Feed.jsx @@ -3,6 +3,7 @@ import _ from 'lodash' import cn from 'classnames' import moment from 'moment' import PropTypes from 'prop-types' +import { Link } from 'react-router-dom' import FeedComments from './FeedComments' import CommentEditToggle from '../ActionCard/CommentEditToggle' import RichTextArea from '../RichTextArea/RichTextArea' @@ -106,6 +107,7 @@ class Feed extends React.Component { const self = user && user.userId === currentUser.userId const title = this.props.newTitle === null || this.props.newTitle === undefined ? this.props.title : this.props.newTitle const content = topicMessage.newContent === null || topicMessage.newContent === undefined ? topicMessage.rawContent : topicMessage.newContent + const feedLink = window.location.pathname.substr(0, window.location.pathname.indexOf('#')) + `#feed-${id}` topicHeader = (
@@ -138,7 +140,7 @@ class Feed extends React.Component {
{title}
- {moment(topicMessage.date).format('MMM D YYYY')} + {moment(topicMessage.date).format('MMM D YYYY')} {comments.length} post{comments.length !== 1 ? 's' : ''}
From 2829ab8378a2b0a71d822034fa5137f0521d6341 Mon Sep 17 00:00:00 2001 From: rashmi73 Date: Sat, 11 May 2019 10:22:32 +0530 Subject: [PATCH 16/89] issu 2895 fix --- src/components/ActionCard/Comment.scss | 1 - 1 file changed, 1 deletion(-) diff --git a/src/components/ActionCard/Comment.scss b/src/components/ActionCard/Comment.scss index d459ba765..f25f44b33 100644 --- a/src/components/ActionCard/Comment.scss +++ b/src/components/ActionCard/Comment.scss @@ -97,7 +97,6 @@ .comment-editor { background-color: $tc-gray-neutral-light; - padding-left: 8 * $base-unit; } .deleting-layer { From cdfad33e2094d401d263f6a07ff41871eb82354e Mon Sep 17 00:00:00 2001 From: rashmi73 Date: Sat, 11 May 2019 15:26:44 +0530 Subject: [PATCH 17/89] issue 3010 fix --- src/components/Feed/draftjs.scss | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/components/Feed/draftjs.scss b/src/components/Feed/draftjs.scss index 07d782493..50ccd8ef6 100644 --- a/src/components/Feed/draftjs.scss +++ b/src/components/Feed/draftjs.scss @@ -133,5 +133,9 @@ img { max-width: 600px; } + + a { + color: $tc-dark-blue !important; + } } } From bc881e2e5d5969d078fc1cdb633049c5690f0b81 Mon Sep 17 00:00:00 2001 From: prakashdurlabhji Date: Sat, 11 May 2019 21:06:12 +0530 Subject: [PATCH 18/89] issue 2969 fix --- src/projects/detail/components/timeline/Form/Form.jsx | 2 +- .../detail/components/timeline/Milestone/Milestone.jsx | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/projects/detail/components/timeline/Form/Form.jsx b/src/projects/detail/components/timeline/Form/Form.jsx index 4e88cbd02..c36e670bb 100644 --- a/src/projects/detail/components/timeline/Form/Form.jsx +++ b/src/projects/detail/components/timeline/Form/Form.jsx @@ -89,7 +89,7 @@ class Form extends React.Component { ) case 'number': return ( - + ) default: return null diff --git a/src/projects/detail/components/timeline/Milestone/Milestone.jsx b/src/projects/detail/components/timeline/Milestone/Milestone.jsx index fcf56e07c..3d092febe 100644 --- a/src/projects/detail/components/timeline/Milestone/Milestone.jsx +++ b/src/projects/detail/components/timeline/Milestone/Milestone.jsx @@ -232,7 +232,8 @@ class Milestone extends React.Component { validations: { isRequired: true }, - validationError: 'Duration is required' + validationError: 'Duration is required', + disabled: isCompleted }, { label: 'Planned text', placeholder: 'Planned text', @@ -315,7 +316,7 @@ class Milestone extends React.Component { {(matches) => (matches ? (
- {checkPermission(PERMISSIONS.EDIT_PROJECT_PLAN, project) && !isCompleted && this.state.isHoverHeader && !isUpdating && + {checkPermission(PERMISSIONS.EDIT_PROJECT_PLAN, project) && this.state.isHoverHeader && !isUpdating && (
Edit milestone properties
) @@ -324,7 +325,7 @@ class Milestone extends React.Component { ) : (
{ - checkPermission(PERMISSIONS.EDIT_PROJECT_PLAN, project) && !isCompleted && !isUpdating && + checkPermission(PERMISSIONS.EDIT_PROJECT_PLAN, project) && !isUpdating && (
) }
From d0850d2c07e924d51bd9cc5d1562067ded62dfa7 Mon Sep 17 00:00:00 2001 From: Abhishek Kumar Date: Sun, 12 May 2019 01:38:34 +0530 Subject: [PATCH 19/89] added new copy-webpack-plugin and static images files, modified webpack/common.js to copy static files to build path --- config/webpack/common.js | 18 +++++++++++++----- package.json | 1 + src/static/comment.jpg | Bin 0 -> 1045 bytes 3 files changed, 14 insertions(+), 5 deletions(-) create mode 100644 src/static/comment.jpg diff --git a/config/webpack/common.js b/config/webpack/common.js index a6b4c7a53..d07316fbd 100644 --- a/config/webpack/common.js +++ b/config/webpack/common.js @@ -9,6 +9,7 @@ const _ = require('lodash') const path = require('path') const webpack = require('webpack') +const CopyPlugin = require('copy-webpack-plugin') const HtmlWebpackPlugin = require('html-webpack-plugin') const constants = require('../constants') @@ -37,10 +38,10 @@ module.exports = { '.cjsx' ], alias: { - /* - Connect app uses handlebars which has some issue with webpack - We have to create an alias to concrete file in order to import it - */ + /* + Connect app uses handlebars which has some issue with webpack + We have to create an alias to concrete file in order to import it + */ handlebars: 'handlebars/dist/handlebars.min.js' } }, @@ -95,6 +96,13 @@ module.exports = { /* Remove some unused files to reduce bundle size */ - new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/) + new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/), + + /* + Copy files from source to destination. + */ + new CopyPlugin([ + { from: 'src/static', to: 'static' } + ]) ] } diff --git a/package.json b/package.json index eaa4f7e58..9ca79c383 100644 --- a/package.json +++ b/package.json @@ -36,6 +36,7 @@ "cjsx-loader": "^3.0.0", "coffee-loader": "^0.8.0", "compression-webpack-plugin": "^1.0.1", + "copy-webpack-plugin": "^4.2.3", "cross-env": "^1.0.7", "css-loader": "^0.28.9", "deep-freeze-node": "^1.1.2", diff --git a/src/static/comment.jpg b/src/static/comment.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3466cab1e925831b19f6975ccb1d179b5aef654a GIT binary patch literal 1045 zcmex=LK$;OGwtxvPE3kkW!3HV(|CYfbAS1sdzc?emK*3ngfWgAa)0YKg8W4cl zs$izT71^Gf{S2E}UN&&fc=N-l?*9P>K@J811_5S9B?cxzMrJ|A|3?_)fp)Sof&o|? zkYHqDW?^Mx=iubx1}fMpz`(@F%*@2X%*qO~hOrhX&%h$cDx_%W$R-?^$gWfnAuRebI{N?Mn?>~P20{IIVo)B*V zNr=zT{3QtV7ZVE$GYdP&UyMxUAdd^Ouqqm|2{{I`Cl(4T88vc8f2KE_o9%~}YXK;@p{B@hb8JMs@fC-40nV5i4#S8>2Kra9RD;p~q zut5Pk7;u09Cmj3-8Ui+fiHQY>IN4a);BrJW{@(>AOUD1V7ULb8GD-j&LW@Nzu6_HnV(YMU36Cbh7AI&gc7*wcfy z(~t4re0}Ji_}_VZ;y@E{ z^*4F$eTH@C<9SPBl^@-2u~C2gpMmv9ly~nx*Dc$t*6!VV=d8))1-l%@L_73W?9^JU z&amUnp33y!f&XsQ^Oou=AHJ2>{%}9*>r1ZR;@>8h>{@;Mph>aHj}99zl@u0j4Qqdv zCYk>X<&P|G3;$j0FX=6^Z}rO(@x-zoTMQ_(F|D-A>yzr~! l!>q*n*KE52m#w(G-+t56;^J>L*S^hKsWtuCrwjjY0ssj{X`BE6 literal 0 HcmV?d00001 From bd088354466c9e483948f6b908aae68c532aa0af Mon Sep 17 00:00:00 2001 From: prakashdurlabhji Date: Sun, 12 May 2019 04:09:31 +0530 Subject: [PATCH 20/89] issue 2991 fix --- src/components/CoderBot/CoderBot.jsx | 33 +++++++++++++++++++++++++--- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/src/components/CoderBot/CoderBot.jsx b/src/components/CoderBot/CoderBot.jsx index 1fb8eed79..c1ae7443c 100644 --- a/src/components/CoderBot/CoderBot.jsx +++ b/src/components/CoderBot/CoderBot.jsx @@ -18,15 +18,34 @@ const getHeading = code => { } } -const getMessage = code => { +const getMessage = (code, heading, message) => { + const subject = "Topcoder Connect Issue Report"; + let body = heading || getHeading(code); + if (message) { + body = `${body}
${message}`; + } switch(code) { case 200: return 'Operation performed successfully!!' default: - return 'Sorry about that, mate! Please try reloading the page again. If things don’t work or you’re sure it is Coder’s fault, send us a note at support@topcoder.com and we’ll fix it for you.' + return `Sorry about that, mate! Please try reloading the page again. If things don’t work or you’re sure it is Coder’s fault, send us a note at support@topcoder.com and we’ll fix it for you.` } } +const copyToClipboard = (code, heading, message) => { + const subject = "Topcoder Connect Issue Report"; + let body = heading || getHeading(code); + if (message) { + body = `${body}
${message}`; + } + const textField = document.createElement('textarea') + textField.innerText = `${subject} ${body}` + document.body.appendChild(textField) + textField.select() + document.execCommand('copy') + textField.remove() +} + const CoderBot = ({code, message, heading, children}) => { return (
@@ -34,9 +53,17 @@ const CoderBot = ({code, message, heading, children}) => {

{ heading || getHeading(code) }

-

+

{children}
+
+ +
{code !== 200 ? : } {code !== 200 && code}
From 7d6ac327e0c5568e49b1f566707f4b410964035b Mon Sep 17 00:00:00 2001 From: PrakashDurlabhji Date: Sun, 12 May 2019 04:14:40 +0530 Subject: [PATCH 21/89] Update CoderBot.jsx --- src/components/CoderBot/CoderBot.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/CoderBot/CoderBot.jsx b/src/components/CoderBot/CoderBot.jsx index c1ae7443c..291039d52 100644 --- a/src/components/CoderBot/CoderBot.jsx +++ b/src/components/CoderBot/CoderBot.jsx @@ -53,7 +53,7 @@ const CoderBot = ({code, message, heading, children}) => {

{ heading || getHeading(code) }

-

+

{children}
From 74e537f5c420ee8ebb091ca0e3b1121b7f536ec1 Mon Sep 17 00:00:00 2001 From: applehit16 Date: Sat, 11 May 2019 15:46:37 -0700 Subject: [PATCH 22/89] private mention --- src/components/Feed/Feed.jsx | 14 ++++++++++---- src/projects/detail/containers/FeedContainer.js | 8 +++++++- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/components/Feed/Feed.jsx b/src/components/Feed/Feed.jsx index 1a61f8ef1..cdac5f247 100644 --- a/src/components/Feed/Feed.jsx +++ b/src/components/Feed/Feed.jsx @@ -8,7 +8,7 @@ import CommentEditToggle from '../ActionCard/CommentEditToggle' import RichTextArea from '../RichTextArea/RichTextArea' import NotificationsReader from '../../components/NotificationsReader' -import { EVENT_TYPE, PROJECT_FEED_TYPE_MESSAGES } from '../../config/constants' +import { EVENT_TYPE, PROJECT_FEED_TYPE_MESSAGES, PROJECT_ROLE_CUSTOMER } from '../../config/constants' import XMarkIcon from '../../assets/icons/x-mark.svg' import FullscreenIcon from '../../assets/icons/ui-fullscreen.svg' @@ -28,6 +28,7 @@ class Feed extends React.Component { this.onTopicChange = this.onTopicChange.bind(this) this.onSaveTopic = this.onSaveTopic.bind(this) this.updateHeaderHeight = this.updateHeaderHeight.bind(this) + this.filterProjectMembers = this.filterProjectMembers.bind(this) } componentDidMount() { @@ -88,6 +89,10 @@ class Feed extends React.Component { return !_.isEqual(this.props, nextProps) } + filterProjectMembers(projectMembers, isPrivate) { + return isPrivate ? _.pickBy(projectMembers, pm => pm.role !== PROJECT_ROLE_CUSTOMER) : projectMembers + } + render() { const { id, user, currentUser, topicMessage, totalComments, hasMoreComments, onLoadMoreComments, isLoadingComments, @@ -102,13 +107,14 @@ class Feed extends React.Component { } let topicHeader = null + const isPrivate = tag === PROJECT_FEED_TYPE_MESSAGES if (topicMessage) { const self = user && user.userId === currentUser.userId const title = this.props.newTitle === null || this.props.newTitle === undefined ? this.props.title : this.props.newTitle const content = topicMessage.newContent === null || topicMessage.newContent === undefined ? topicMessage.rawContent : topicMessage.newContent topicHeader = ( -
+
- {tag === PROJECT_FEED_TYPE_MESSAGES &&
} + {isPrivate &&
}
{title}
@@ -185,7 +191,7 @@ class Feed extends React.Component { onSaveMessage={onSaveMessage} onDeleteMessage={onDeleteMessage} allMembers={allMembers} - projectMembers={projectMembers} + projectMembers={this.filterProjectMembers(projectMembers, isPrivate)} isFullScreen={isFullScreen} headerHeight={headerHeight} commentId={commentId} diff --git a/src/projects/detail/containers/FeedContainer.js b/src/projects/detail/containers/FeedContainer.js index 624477588..98dad244c 100644 --- a/src/projects/detail/containers/FeedContainer.js +++ b/src/projects/detail/containers/FeedContainer.js @@ -560,7 +560,13 @@ FeedContainer.PropTypes = { const mapStateToProps = ({ projectTopics, members, loadUser, notifications, projectState }) => { const project = projectState.project - const projectMembers = _.filter(members.members, m => _.some(project.members, pm => pm.userId === m.userId)) + const projectMembersMap = _.keyBy(project.members, 'userId') + const projectMembers = Object.values(members.members) + .filter(m => projectMembersMap.hasOwnProperty(m.userId)) + .map(m => ({ + ...m, + role:projectMembersMap[m.userId].role + })) // all feeds includes primary as well as private topics if user has access to private topics let allFeed = projectTopics.feeds[PROJECT_FEED_TYPE_PRIMARY].topics const canAccessPrivatePosts = checkPermission(PERMISSIONS.ACCESS_PRIVATE_POST) From 829ea1bb9640a91cca01fb4aa28da7658dfde24d Mon Sep 17 00:00:00 2001 From: Maksym Mykhailenko Date: Sun, 12 May 2019 10:23:12 +0800 Subject: [PATCH 23/89] fix issue #3000 - Need ability to show sub text of form question just below the title --- src/config/form-schemas/form-v2.json | 3 +++ .../components/SpecQuestionList/SpecQuestionList.jsx | 3 +++ .../components/SpecQuestionList/SpecQuestionList.scss | 10 ++++++++++ src/projects/detail/components/SpecQuestions.jsx | 1 + 4 files changed, 17 insertions(+) diff --git a/src/config/form-schemas/form-v2.json b/src/config/form-schemas/form-v2.json index 0a5ed37de..d6fd5ab85 100755 --- a/src/config/form-schemas/form-v2.json +++ b/src/config/form-schemas/form-v2.json @@ -144,6 +144,9 @@ "description": { "type": "string" }, + "introduction": { + "type": "string" + }, "fieldName": { "type": "string" }, diff --git a/src/projects/detail/components/SpecQuestionList/SpecQuestionList.jsx b/src/projects/detail/components/SpecQuestionList/SpecQuestionList.jsx index 0b39ed697..70166abba 100644 --- a/src/projects/detail/components/SpecQuestionList/SpecQuestionList.jsx +++ b/src/projects/detail/components/SpecQuestionList/SpecQuestionList.jsx @@ -46,6 +46,7 @@ const SpecQuestionListItem = ({ hideDescription, hideTitle, help, + introduction, }) => { let shouldShowTitle = true let shouldShowRequire = false @@ -62,6 +63,7 @@ const SpecQuestionListItem = ({ {!!titleAside &&
{titleAside}
} { help && () } } + {!!introduction &&

{introduction}

} {children &&
{children}
} {!hideDescription &&

{description}

} {shouldShowRequire && (
{required ? 'Required' : 'Optional'}
) } @@ -78,6 +80,7 @@ SpecQuestionListItem.propTypes = { type: PropTypes.string, additionalClass: PropTypes.string, hideTitle: PropTypes.bool, + introduction: PropTypes.string, } SpecQuestionListItem.defaultProps = { diff --git a/src/projects/detail/components/SpecQuestionList/SpecQuestionList.scss b/src/projects/detail/components/SpecQuestionList/SpecQuestionList.scss index 432864660..95fd64293 100644 --- a/src/projects/detail/components/SpecQuestionList/SpecQuestionList.scss +++ b/src/projects/detail/components/SpecQuestionList/SpecQuestionList.scss @@ -123,6 +123,16 @@ } } + .introduction { + @include roboto-light; + font-size: $tc-body-sm; + color: $tc-gray-50; + font-weight: 400; + font-style: italic; + line-height: 1.5; + margin-top: $base-unit; + } + .description { margin-bottom: $base-unit * 4; } diff --git a/src/projects/detail/components/SpecQuestions.jsx b/src/projects/detail/components/SpecQuestions.jsx index d0dc2e100..bebe435fb 100644 --- a/src/projects/detail/components/SpecQuestions.jsx +++ b/src/projects/detail/components/SpecQuestions.jsx @@ -308,6 +308,7 @@ const SpecQuestions = ({ hideDescription={elemProps.hideDescription} hideTitle={elemProps.hideTitle} help={q.help} + introduction={q.introduction} > From d6943608d9a606a8b46e0293a0a9f77eb7207979 Mon Sep 17 00:00:00 2001 From: Maksym Mykhailenko Date: Sun, 12 May 2019 10:42:10 +0800 Subject: [PATCH 24/89] New DraftJs Link Editor functionality (like in Google Docs) which would also help to fulfill the requirements of #2937 --- package-lock.json | 194 +++++-- package.json | 3 +- src/components/RichTextArea/AddLinkButton.jsx | 86 +-- .../LinkPlugin/EditLinkPopover/EditLink.scss | 99 ++++ .../EditLinkPopover/EditLinkPopover.jsx | 276 ++++++++++ .../EditLinkPopoverWrapper.jsx | 521 ++++++++++++++++++ .../RichTextArea/LinkPlugin/Link/Link.jsx | 104 ++++ .../RichTextArea/LinkPlugin/Link/Link.scss | 8 + .../RichTextArea/LinkPlugin/LinkPlugin.js | 27 + .../RichTextArea/LinkPlugin/linkStrategy.js | 9 + .../LinkPlugin/utils/createLink.js | 134 +++++ .../RichTextArea/LinkPlugin/utils/utils.js | 413 ++++++++++++++ src/components/RichTextArea/RichTextArea.jsx | 42 +- src/helpers/markdownToState.js | 24 +- 14 files changed, 1807 insertions(+), 133 deletions(-) create mode 100644 src/components/RichTextArea/LinkPlugin/EditLinkPopover/EditLink.scss create mode 100644 src/components/RichTextArea/LinkPlugin/EditLinkPopover/EditLinkPopover.jsx create mode 100644 src/components/RichTextArea/LinkPlugin/EditLinkPopoverWrapper/EditLinkPopoverWrapper.jsx create mode 100644 src/components/RichTextArea/LinkPlugin/Link/Link.jsx create mode 100644 src/components/RichTextArea/LinkPlugin/Link/Link.scss create mode 100644 src/components/RichTextArea/LinkPlugin/LinkPlugin.js create mode 100644 src/components/RichTextArea/LinkPlugin/linkStrategy.js create mode 100644 src/components/RichTextArea/LinkPlugin/utils/createLink.js create mode 100644 src/components/RichTextArea/LinkPlugin/utils/utils.js diff --git a/package-lock.json b/package-lock.json index c45353d00..94f5fe2d0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -440,7 +440,6 @@ "react-textarea-autosize": "^5.2.1", "react-transition-group": "^2.2.1", "redux-thunk": "^2.1.0", - "tc-ui": "git+https://github.com/appirio-tech/tc-ui.git#e577a0e704136f1e9ecce92ce4c0626aab932691", "uncontrollable": "^4.0.1" }, "dependencies": { @@ -449,6 +448,73 @@ "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.12.7.tgz", "integrity": "sha512-fLeEhqwymYat/MpTPUjSKHVYYl0ec2mOyALEMLmzr5i1isuG+6jfI2j2d5oBO3VIzgUXgBVIcOT9uH1TFxBckw==" }, + "fbjs": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.6.1.tgz", + "integrity": "sha1-lja3cF9bqWhNRLcveDISVK/IYPc=", + "requires": { + "core-js": "^1.0.0", + "loose-envify": "^1.0.0", + "promise": "^7.0.3", + "ua-parser-js": "^0.7.9", + "whatwg-fetch": "^0.9.0" + } + }, + "history": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/history/-/history-2.1.2.tgz", + "integrity": "sha1-SqLeiXoOSGfkU5hDvm7Nsphr/ew=", + "requires": { + "deep-equal": "^1.0.0", + "invariant": "^2.0.0", + "query-string": "^3.0.0", + "warning": "^2.0.0" + }, + "dependencies": { + "warning": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/warning/-/warning-2.1.0.tgz", + "integrity": "sha1-ISINnGOvx3qMkhEeARr3Bc4MaQE=", + "requires": { + "loose-envify": "^1.0.0" + } + } + } + }, + "hoist-non-react-statics": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-1.2.0.tgz", + "integrity": "sha1-qkSM8JhtVcxAdzsXF0t90GbLfPs=" + }, + "query-string": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-3.0.3.tgz", + "integrity": "sha1-ri4UtNBQcdTpuetIc8NbDc1C5jg=", + "requires": { + "strict-uri-encode": "^1.0.0" + } + }, + "react-popper": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/react-popper/-/react-popper-0.7.5.tgz", + "integrity": "sha512-ya9dhhGCf74JTOB2uyksEHhIGw7w9tNZRUJF73lEq2h4H5JT6MBa4PdT4G+sx6fZwq+xKZAL/sVNAIuojPn7Dg==", + "requires": { + "popper.js": "^1.12.5", + "prop-types": "^15.5.10" + } + }, + "react-router": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-2.8.1.tgz", + "integrity": "sha1-c+lJH2zrMW0Pd5gpCBhj43juTtc=", + "requires": { + "history": "^2.1.2", + "hoist-non-react-statics": "^1.2.0", + "invariant": "^2.2.1", + "loose-envify": "^1.2.0", + "warning": "^3.0.0" + } + }, "react-select": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/react-select/-/react-select-0.9.1.tgz", @@ -458,6 +524,40 @@ "react-input-autosize": "^0.6.2" } }, + "tc-ui": { + "version": "git+https://github.com/appirio-tech/tc-ui.git#e577a0e704136f1e9ecce92ce4c0626aab932691", + "from": "git+https://github.com/appirio-tech/tc-ui.git#e577a0e704136f1e9ecce92ce4c0626aab932691", + "requires": { + "classnames": "^2.2.3", + "lodash": "^4.0.0", + "moment": "^2.11.2", + "node-neat": "~1.7.1-beta1", + "react": "^0.14.7", + "react-datetime": "^2.0.2", + "react-dom": "^0.14.7", + "react-dropzone": "^3.3.2", + "react-redux": "^4.2.1", + "react-router": "^2.0.0-rc6", + "react-select": "^0.9.1", + "redux": "^3.3.1" + }, + "dependencies": { + "react": { + "version": "0.14.9", + "resolved": "https://registry.npmjs.org/react/-/react-0.14.9.tgz", + "integrity": "sha1-kRCmSXxJ1EuhwO3TF67CnC4NkdE=", + "requires": { + "envify": "^3.0.0", + "fbjs": "^0.6.1" + } + }, + "react-dom": { + "version": "0.14.9", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-0.14.9.tgz", + "integrity": "sha1-BQZKPc8PsYgKOyv8nVjFXY2fYpM=" + } + } + }, "uncontrollable": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-4.1.0.tgz", @@ -465,6 +565,19 @@ "requires": { "invariant": "^2.1.0" } + }, + "warning": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", + "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=", + "requires": { + "loose-envify": "^1.0.0" + } + }, + "whatwg-fetch": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-0.9.0.tgz", + "integrity": "sha1-DjaExsuZlbQ+/J3wPkw2XZX9nMA=" } } }, @@ -3306,6 +3419,15 @@ } } }, + "create-react-context": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/create-react-context/-/create-react-context-0.2.2.tgz", + "integrity": "sha512-KkpaLARMhsTsgp0d2NA/R94F/eDLbhXERdIq3LvX2biCAXcDvHYoOqHfWCHf1+OLj+HKBotLG3KqaOOf+C1C+A==", + "requires": { + "fbjs": "^0.8.0", + "gud": "^1.0.0" + } + }, "cross-env": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-1.0.8.tgz", @@ -4312,31 +4434,6 @@ "union-class-names": "^1.0.0" } }, - "draft-js-link-plugin": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/draft-js-link-plugin/-/draft-js-link-plugin-1.2.2.tgz", - "integrity": "sha1-AZOfpiKneM2xQPn8KM1exM3k6uM=", - "requires": { - "decorate-component-with-props": "^1.0.2", - "linkify-it": "2.0.0", - "tlds": "1.159.0" - }, - "dependencies": { - "linkify-it": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.0.0.tgz", - "integrity": "sha1-Yd41xfIsNjMYmnXTxAzT3Jasu5Q=", - "requires": { - "uc.micro": "^1.0.1" - } - }, - "tlds": { - "version": "1.159.0", - "resolved": "https://registry.npmjs.org/tlds/-/tlds-1.159.0.tgz", - "integrity": "sha1-bPXa9DebPfsJywukNnKTNVvG42g=" - } - } - }, "draft-js-mention-plugin": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/draft-js-mention-plugin/-/draft-js-mention-plugin-2.0.1.tgz", @@ -6841,6 +6938,11 @@ "integrity": "sha1-Dqd0NxXbjY3ixe3hd14bRayFwC8=", "dev": true }, + "gud": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gud/-/gud-1.0.0.tgz", + "integrity": "sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw==" + }, "handle-thing": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.0.tgz", @@ -13801,12 +13903,26 @@ } }, "react-popper": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/react-popper/-/react-popper-0.7.5.tgz", - "integrity": "sha512-ya9dhhGCf74JTOB2uyksEHhIGw7w9tNZRUJF73lEq2h4H5JT6MBa4PdT4G+sx6fZwq+xKZAL/sVNAIuojPn7Dg==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/react-popper/-/react-popper-1.3.3.tgz", + "integrity": "sha512-ynMZBPkXONPc5K4P5yFWgZx5JGAUIP3pGGLNs58cfAPgK67olx7fmLp+AdpZ0+GoQ+ieFDa/z4cdV6u7sioH6w==", "requires": { - "popper.js": "^1.12.5", - "prop-types": "^15.5.10" + "@babel/runtime": "^7.1.2", + "create-react-context": "<=0.2.2", + "popper.js": "^1.14.4", + "prop-types": "^15.6.1", + "typed-styles": "^0.0.7", + "warning": "^4.0.2" + }, + "dependencies": { + "warning": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "requires": { + "loose-envify": "^1.0.0" + } + } } }, "react-prop-types": { @@ -17152,17 +17268,10 @@ "Base64": "~0.1.3", "json-fallback": "0.0.1", "jsonp": "~0.0.4", - "qs": "git+https://github.com/jfromaniello/node-querystring.git#5d96513991635e3e22d7aa54a8584d6ce97cace8", "reqwest": "^1.1.4", "trim": "~0.0.1", "winchan": "^0.1.1", "xtend": "~2.1.1" - }, - "dependencies": { - "qs": { - "version": "git+https://github.com/jfromaniello/node-querystring.git#5d96513991635e3e22d7aa54a8584d6ce97cace8", - "from": "git+https://github.com/jfromaniello/node-querystring.git#fix_ie7_bug_with_arrays" - } } }, "auto-config-fake-server": { @@ -23173,6 +23282,10 @@ "resolved": "https://registry.npmjs.org/q/-/q-1.5.0.tgz", "integrity": "sha512-VVMcd+HnuWZalHPycK7CsbVJ+sSrrrnCvHcW38YJVK9Tywnb5DUWJjONi81bLUj7aqDjIXnePxBl5t1r/F/ncg==" }, + "qs": { + "version": "git+https://github.com/jfromaniello/node-querystring.git#5d96513991635e3e22d7aa54a8584d6ce97cace8", + "from": "git+https://github.com/jfromaniello/node-querystring.git#5d96513991635e3e22d7aa54a8584d6ce97cace8" + }, "query-string": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", @@ -25715,6 +25828,11 @@ "mime-types": "~2.1.18" } }, + "typed-styles": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/typed-styles/-/typed-styles-0.0.7.tgz", + "integrity": "sha512-pzP0PWoZUhsECYjABgCGQlRGL1n7tOHsgwYv3oIiEpJwGhFTuty/YNeduxQYzXXa3Ge5BdT6sHYIQYpl4uJ+5Q==" + }, "typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", diff --git a/package.json b/package.json index eaa4f7e58..706f279c7 100644 --- a/package.json +++ b/package.json @@ -84,10 +84,10 @@ "brace": "^0.11.1", "classnames": "^2.2.3", "coffeescript": "^1.12.7", + "decorate-component-with-props": "^1.1.0", "draft-js": "^0.10.1", "draft-js-drag-n-drop-plugin": "^2.0.0-rc2", "draft-js-image-plugin": "^2.0.0-rc2", - "draft-js-link-plugin": "^1.2.2", "draft-js-mention-plugin": "^2.0.0-rc2", "draft-js-plugins-editor": "^2.0.0-rc2", "draft-js-utils": "^0.1.7", @@ -125,6 +125,7 @@ "react-infinite-scroller": "^1.1.1", "react-layout-pane": "^0.1.16", "react-modal": "^1.9.7", + "react-popper": "^1.3.3", "react-redux": "^4.4.5", "react-responsive": "^4.1.0", "react-router-dom": "^4.2.2", diff --git a/src/components/RichTextArea/AddLinkButton.jsx b/src/components/RichTextArea/AddLinkButton.jsx index dfad577c7..c844e9fa1 100644 --- a/src/components/RichTextArea/AddLinkButton.jsx +++ b/src/components/RichTextArea/AddLinkButton.jsx @@ -1,10 +1,9 @@ import React from 'react' import ReactDOM from 'react-dom' -import {EditorState, RichUtils, SelectionState} from 'draft-js' +import {EditorState, RichUtils} from 'draft-js' import addImage from 'draft-js-image-plugin/lib/modifiers/addImage' import linkifyIt from 'linkify-it' import tlds from 'tlds' -import {hasEntity, getCurrentEntity} from '../../helpers/draftJSHelper' import EditorIcons from './EditorIcons' import Alert from 'react-s-alert' @@ -175,31 +174,6 @@ class LinkModal extends React.Component { } } -class AddLinkModal extends React.Component { - render () { - const editorState = this.props.getEditorState() - const entitySelected = hasEntity('LINK', editorState) - const entity = getCurrentEntity(editorState) - let entityData = null - - if (entitySelected && entity) { - entityData = entity.getData() - } - const url = entityData ? entityData.url : null - - return ( -
- -
- ) - } -} - class AddImageModal extends React.Component { render () { return ( @@ -224,51 +198,20 @@ export default class AddLinkButton extends React.Component { } toggleAddLink() { - const editorState = this.props.getEditorState() - const selection = editorState.getSelection() - if (selection.isCollapsed()) { - Alert.error('Please select some piece of text .') - } - if (!selection.getHasFocus()) { - return - } - if (this.props.type === 'link' && selection.isCollapsed()) { - const currentEntity = getCurrentEntity(editorState) - if (currentEntity && currentEntity.getType() === 'LINK') { - return + if (this.props.type !== 'link') { + const editorState = this.props.getEditorState() + const selection = editorState.getSelection() + if (selection.isCollapsed()) { + Alert.error('Please select some piece of text .') } - - const key = selection.getAnchorKey() - const block = editorState - .getCurrentContent() - .getBlockForKey(key) - const text = block.getText() - const match = linkify.match(text) - - if (!match || !match.length) { + if (!selection.getHasFocus()) { return } - const contentState = editorState.getCurrentContent() - const contentStateWithEntity = contentState.createEntity('LINK', 'MUTABLE', {url: match[0].url}) - const entityKey = contentStateWithEntity.getLastCreatedEntityKey() - - const selectionState = SelectionState.createEmpty(key) - const updatedSelection = selectionState.merge({ - anchorOffset: 0, - focusOffset: block.getLength() - }) - - const newState = RichUtils.toggleLink( - editorState, - updatedSelection, - entityKey - ) - this.props.setEditorState(newState) - return + this.show() + } else { + this.props.onEditLink() } - - this.show() } show() { @@ -296,15 +239,6 @@ export default class AddLinkButton extends React.Component { EditorIcons.render(type, active || modalVisible) } - { - modalVisible && type === 'link' && - - } { modalVisible && type === 'image' && + {multiLineEdit ? null : ( +
+ + (this.textEl = el)} + id="editLinkTitle" + type="text" + value={text || ''} + onChange={onTextChange} + className={styles.formControl} + /> +
+ )} +
+ + (this.urlEl = el)} + id="editLinkUrl" + type="text" + placeholder="Paste a link" + value={url || ''} + onChange={onUrlChange} + className={styles.formControl} + /> +
+
+ +
+ + ) + } +} + +/** + * Component to show Change / Remove options initially + * + * params + * url - url value + * text - link text value + * change - calback to notify Change / Add text click action + * remove - callback to notify Remov click action + */ +function EditOptions({ url, text, change, remove }) { + const decodedUrl = decodeURI(url) + return ( +
+ + {decodedUrl} + +  -  + change()} className={styles.actionBtnLink}> + {text ? 'Change' : 'Add text'} + +  |  + remove()} className={styles.actionBtnLink}> + Remove + +
+ ) +} + +/** + * A Wrapper component to include initial edit options and + * Edit form components in popover. + */ +export default class EditLink extends React.Component { + constructor(props) { + super(props) + this.state = { + text: '', + url: '', + editing: false + } + + this.currentlyEditingEntity = null + this.selfClick = false + + this.onSelfClick = this.onSelfClick.bind(this) + this.onDocClick = this.onDocClick.bind(this) + } + + componentDidMount(props = this.props) { + const { editing, text, url, entityKey } = props + + this.currentlyEditingEntity = entityKey + this.setState({ + text, + url, + editing + }) + + // ignore the first click to open + setTimeout(() => { + document.addEventListener('mousedown', this.onDocClick) + }) + } + + componentWillReceiveProps(newProps) { + const { editing, text, url, entityKey } = newProps || {} + + if (entityKey !== this.currentlyEditingEntity) { + this.currentlyEditingEntity = entityKey + this.setState({ + text, + url, + editing + }) + } else if (text !== this.props.text) { + this.setState({ + text + }) + } + } + + onSelfClick() { + this.selfClick = true + } + + onDocClick() { + if (!this.selfClick) { + this.props.onOutsideClick() + } else { + this.selfClick = false + } + } + + componentWillUnmount() { + this.props.close && this.props.close() + document.removeEventListener('mousedown', this.onDocClick) + } + + setFormFieldState(field, value) { + this.setState({ + [field]: value + }) + } + + edit(editing) { + this.setState({ + editing + }) + } + + render() { + const { editing, url, text } = this.state + const { + anchorEl, + entityKey, + onRemove, + onUpdate, + focusUrl, + multiLineEdit, + focusText, + onEdit, + popoverOnTop + } = this.props + + const editFormProps = { + text, + url, + focusUrl, + focusText, + multiLineEdit, + onFormSubmit: () => + onUpdate({ + url: encodeURI(linkifyIt.match(url)[0].url), + text, + entityKey + }), + onUrlChange: e => this.setFormFieldState('url', e.target.value), + onTextChange: e => this.setFormFieldState('text', e.target.value) + } + const editOptionProps = { + url, + text, + change: () => { + this.edit(true) + onEdit && onEdit() + }, + remove: () => onRemove({ entityKey }) + } + + return ( + + + {({ ref, style, placement, arrowProps }) => ( +
+ + {editing ? ( + + ) : ( + + )} +
+ )} +
+
+ ) + } +} diff --git a/src/components/RichTextArea/LinkPlugin/EditLinkPopoverWrapper/EditLinkPopoverWrapper.jsx b/src/components/RichTextArea/LinkPlugin/EditLinkPopoverWrapper/EditLinkPopoverWrapper.jsx new file mode 100644 index 000000000..1d5fa3398 --- /dev/null +++ b/src/components/RichTextArea/LinkPlugin/EditLinkPopoverWrapper/EditLinkPopoverWrapper.jsx @@ -0,0 +1,521 @@ +import React from 'react' +import { isEqual, last } from 'lodash' +import { RichUtils, SelectionState, EditorState } from 'draft-js' +import { + getSelectionBlock, + getEntityAt, + updateLink, + removeLink, + applyLink, + insertLink, + getEntityForKey, + applyMultiLineLink, + updateMultilineLink, + getEntityOffsets, + removeHighlight +} from '../utils/utils' +import EditLinkPopover from '../EditLinkPopover/EditLinkPopover' + +/** + * A wrapper component that detects editor state changes and shows/hides the popover as required + */ +export default class EditLinkPopoverWrapper extends React.Component { + constructor(props) { + super(props) + + this.state = { + isOpen: false, + editing: false, + entity: null, + entityKey: null, + focusUrl: false, + focusText: false, + autoPopover: false, + popoverOnTop: false + } + + this.lastEditorState = null + this.lastCreatedEntity = null + this.lastEditorStateCheckpoint = null + this.lastOpenState = null + this.lastSelectionState = null + + this.openTimeout = null + this.updatingLink = false + + this.multiLineEditing = false + this.multiLineEntities = [] + this.multiLineSelections = [] + + this.onKeyup = this.onKeyup.bind(this) + this.onKeydown = this.onKeydown.bind(this) + } + + componentWillReceiveProps(newProps) { + const { editorState, open } = newProps + + if (open && this.lastOpenState !== open) { + // If link button is clicked from the toolbar + this.storeLastValues(open, editorState) + this.onExternalEditCommand(editorState) + } else if (!open && editorState !== this.lastEditorState) { + // If editor state changed + const lastCreatedEntity = this.lastCreatedEntity + + this.storeLastValues(open, editorState) + this.onEditorStateChange(editorState, lastCreatedEntity) + } else { + this.storeLastValues(open, editorState) + } + } + + // We have to store the last values to detect the significant changes. + storeLastValues(open, editorState) { + const contentState = editorState.getCurrentContent() + this.lastCreatedEntity = contentState.getLastCreatedEntityKey() + + this.lastOpenState = open + this.lastEditorState = editorState + } + + componentDidMount() { + document.addEventListener('keydown', this.onKeydown) + document.addEventListener('keyup', this.onKeyup) + } + + componentWillUnmount() { + document.removeEventListener('keydown', this.onKeydown) + document.removeEventListener('keyup', this.onKeyup) + } + + onKeyup(evt) { + // Escape should close the popover without committing any changes + if (evt.key === 'Escape' || evt.key === 'Esc') { + this.hideEditWithoutSaving() + this.setState({ + autoPopover: false, + popoverOnTop: false + }) + } else if (evt.key === 'Backspace') { + // Backspace should close the popover as it may delete the created link entity + this.setState({ + autoPopover: false, + popoverOnTop: false + }) + } else if (evt.key === 'Enter') { + // When we press enter, the auto popover can block the view of new line. So, push it above the link + this.setState({ + popoverOnTop: true + }) + } + } + + onKeydown(evt) { + // When ctrl + k or cmd + k is pressed while some text is selected, open popover + if ( + (evt.ctrlKey || evt.metaKey) && + evt.key && + evt.key.toLowerCase() === 'k' + ) { + // Some browsers use ctrl + k for triggering a google search. Prevent it. + evt.preventDefault() + + const { editorState, open } = this.props + const selectionState = editorState.getSelection() + const hasFocus = selectionState.getHasFocus() + const textSelected = !selectionState.isCollapsed() + + // All the post editors will receive the event. So, check focus. + if (hasFocus && textSelected) { + this.storeLastValues(open, editorState) + this.onExternalEditCommand(editorState) + } + } + } + + /** + * Invoked when user types / deletes the content or moves the cursor around + * @param {Object} editorState the current editor state + * @param {string} prevLastCreatedEntityKey The key for the entity created before the last one + */ + onEditorStateChange(editorState, prevLastCreatedEntityKey) { + const selectionState = editorState.getSelection() + + // If cursor moved + if ( + this.isSelectionChanged(selectionState) && + selectionState.getHasFocus() + ) { + const contentState = editorState.getCurrentContent() + + const startBlock = getSelectionBlock(selectionState, contentState) + const endBlock = getSelectionBlock(selectionState, contentState, true) + + const selectionStart = selectionState.getStartOffset() + const selectionEnd = selectionState.getEndOffset() + + const startEntity = getEntityAt(startBlock, contentState, selectionStart) + const endEntity = getEntityAt( + endBlock, + contentState, + selectionState.isCollapsed() ? selectionEnd : selectionEnd - 1 + ) + + // If the cursor is on a link or whole/part of the link is selected + if ( + startEntity && + endEntity === startEntity && + startEntity.getType() === 'LINK' + ) { + this.editExistingLink( + startBlock.getEntityAt(selectionStart), + contentState + ) + } else if (selectionState.isCollapsed()) { + const lastCreatedEntityKey = contentState.getLastCreatedEntityKey() + const lastCreatedEntity = getEntityForKey( + contentState, + lastCreatedEntityKey + ) + + const entityData = lastCreatedEntity && lastCreatedEntity.getData() + const entityType = lastCreatedEntity && lastCreatedEntity.getType() + const newEntityCreated = + lastCreatedEntityKey && + prevLastCreatedEntityKey !== lastCreatedEntityKey + + // If a new link entity created, auto show the popover + if ( + newEntityCreated && + entityType === 'LINK' && + entityData && + entityData.url + ) { + this.openAutoPopover(lastCreatedEntityKey, contentState) + + // If enter is pressed, the cursor would be in the start of the line. So, text till cursor will be empty ('') + const isEnter = !endBlock.getText().slice(0, selectionEnd) + if (!isEnter) { + this.setState({ + popoverOnTop: false + }) + } + } else { + this.hideEdit() + } + } else { + this.hideEdit() + } + } + } + + /** + * Invoked when the link button from the toolbar is clicked + * @param {Object} editorState The current editor state + */ + onExternalEditCommand(editorState) { + this.lastEditorStateCheckpoint = editorState + editorState = RichUtils.toggleInlineStyle(editorState, 'LINKHIGHLIGHT') + + const selectionState = editorState.getSelection() + const contentState = editorState.getCurrentContent() + + const startBlock = getSelectionBlock(selectionState, contentState) + const endBlock = getSelectionBlock(selectionState, contentState, true) + + const selectionStart = selectionState.getStartOffset() + const selectionEnd = selectionState.getEndOffset() + + const startEntity = getEntityAt(startBlock, contentState, selectionStart) + const endEntity = getEntityAt(endBlock, contentState, selectionEnd - 1) + + // Cursor in single link. Should remove the link + if ( + startEntity && + endEntity === startEntity && + startEntity.getType() === 'LINK' + ) { + const { url, text } = startEntity.getData() + this.onRemove({ url, text }) + this.hideEdit() + this.props.onClose() + } else { + // Cursor not on a link. + + // Selection is on a single line + if (selectionState.getStartKey() === selectionState.getEndKey()) { + const textSelected = !selectionState.isCollapsed() + + // Apply placeholder links + const { updatedState, entityKey, contentStateWithEntity } = textSelected + ? applyLink(editorState, contentState, selectionState) // apply link to selected text + : insertLink(editorState, contentState, selectionState) // insert link at curosr position + + this.setEditorState(updatedState) + + // Wait for the editor to accept the updatedState + setTimeout(() => { + const selectionState = updatedState.getSelection() + const contentState = updatedState.getCurrentContent() + const startBlock = getSelectionBlock(selectionState, contentState) + const selectionStart = selectionState.getStartOffset() + + const entity = getEntityAt( + startBlock, + contentStateWithEntity, + selectionStart + ) + this.setState({ + isOpen: true, + entity, + entityKey, + editing: true, + [textSelected ? 'focusUrl' : 'focusText']: true + }) + }) + } else { + // Selection is multiline + const { + entityKeys, + updatedState, + selectionStates + } = applyMultiLineLink(editorState, contentState, selectionState) + + this.setEditorState(updatedState) + + // Wait for the editor to accept the updatedState + setTimeout(() => { + const contentState = updatedState.getCurrentContent() + + this.multiLineEditing = true + this.multiLineEntities = entityKeys.map(key => + getEntityForKey(contentState, key) + ) + this.multiLineSelections = selectionStates + + const entity = last(this.multiLineEntities) + this.setState({ + isOpen: true, + entity, + entityKey: last(entityKeys), + editing: true, + focusUrl: true + }) + }) + } + } + } + + /** + * Opens the auto popover when a new link is created automatically + * @param {string} lastCreatedEntityKey the key of the last created entity + * @param {Object} contentState the content state of the editor + */ + openAutoPopover(lastCreatedEntityKey, contentState) { + const { enableAutoPopover } = this.props + if (enableAutoPopover) { + const autoShowing = true + this.editExistingLink(lastCreatedEntityKey, contentState, autoShowing) + } + } + + /** + * Opens the popover for the link under cursor (OR) Opens the popover for the last created link + * @param {string} entityKey key of the link entity being edited + * @param {Object} contentState the content state of the editor + * @param {boolean} autoPopover Is the popover opening automatically + */ + editExistingLink(entityKey, contentState, autoPopover) { + this.clearOpenTimeout() + + // to avoid flickering where draftjs cursor position goes to last position when focused + this.openTimeout = setTimeout(() => { + const entity = getEntityForKey(contentState, entityKey) + this.updatingLink = true + + this.setState({ + isOpen: true, + focusText: true, + entity, + entityKey, + autoPopover + }) + }, 150) + } + + clearOpenTimeout() { + if (this.openTimeout) { + clearTimeout(this.openTimeout) + this.openTimeout = null + } + } + + hideEditWithoutSaving() { + if (this.lastEditorStateCheckpoint) { + this.setEditorState(this.lastEditorStateCheckpoint) + } + this.hideEdit() + } + + hideEdit() { + this.clearOpenTimeout() + + if (this.props.open) { + this.props.onClose() + } + + this.multiLineEditing = false + this.lastEditorStateCheckpoint = null + this.updatingLink = false + this.setState({ + isOpen: false, + editing: false, + focusText: false, + focusUrl: false + }) + } + + isSelectionChanged(selectionState) { + const currentSelection = this.getSelectionProps(selectionState) + if (!isEqual(this.lastSelectionState, currentSelection)) { + this.lastSelectionState = currentSelection + return true + } + + return false + } + + getSelectionProps(selectionState) { + return ( + selectionState && { + selectionStartKey: selectionState.getStartKey(), + selectionEndKey: selectionState.getEndKey(), + selectionStartOffset: selectionState.getStartOffset(), + selectionEndOffset: selectionState.getEndOffset(), + hasFocus: selectionState.getHasFocus() + } + ) + } + + onRemove(data) { + const { editorState } = this.props + const { entityKey } = this.state + const updatedEditorState = removeLink(editorState, entityKey, data) + + this.setEditorState(updatedEditorState) + this.setState({ + entity: null, + entityKey: null, + autoPopover: false, + popoverOnTop: false + }) + this.hideEdit() + } + + onUpdate(entityData) { + const { editorState } = this.props + let updatedEditorState = editorState + if (this.multiLineEditing) { + updatedEditorState = updateMultilineLink( + this.lastEditorStateCheckpoint, + entityData, + this.multiLineEntities, + this.multiLineSelections + ) + } else { + const { entityKey } = this.state + updatedEditorState = updateLink( + editorState, + editorState.getCurrentContent(), + entityKey, + entityData + ) + } + + this.setEditorState(updatedEditorState) + + this.hideEdit() + this.setState({ + autoPopover: false, + popoverOnTop: false + }) + + const currentEditorState = updatedEditorState + const afterRemoval = removeHighlight(currentEditorState) + if (currentEditorState !== afterRemoval) { + this.setEditorState(afterRemoval) + } + } + + onEdit() { + const { editorState } = this.props + this.lastEditorStateCheckpoint = editorState + + const { entityKey } = this.state + const contentState = editorState.getCurrentContent() + const selectionState = editorState.getSelection() + const block = getSelectionBlock(selectionState, contentState) + + const [startOffset, endOffset] = getEntityOffsets(block, entityKey) + const selection = SelectionState.createEmpty(block.key).merge({ + anchorOffset: startOffset, + focusOffset: endOffset + }) + + this.props.setEditorState( + RichUtils.toggleInlineStyle( + EditorState.forceSelection(editorState, selection), + 'LINKHIGHLIGHT' + ) + ) + } + + setEditorState(state) { + if (state) { + this.props.setEditorState(state) + } + } + + onOutsideClick() { + this.hideEditWithoutSaving() + this.setState({ + autoPopover: false, + popoverOnTop: false + }) + } + + render() { + const { + isOpen, + entity, + entityKey, + editing, + focusText, + focusUrl, + popoverOnTop, + autoPopover + } = this.state + + const { enableAutoPopoverPositioning } = this.props + + const { el, url, text } = entity ? entity.getData() : {} + return isOpen || autoPopover ? ( + this.onEdit()} + onRemove={() => this.onRemove({ url, text })} + onUpdate={entityData => this.onUpdate(entityData)} + onOutsideClick={() => this.onOutsideClick()} + close={() => this.hideEdit()} + editing={editing} + focusText={focusText} + focusUrl={focusUrl} + multiLineEdit={this.multiLineEditing} + popoverOnTop={popoverOnTop && enableAutoPopoverPositioning} + /> + ) : null + } +} diff --git a/src/components/RichTextArea/LinkPlugin/Link/Link.jsx b/src/components/RichTextArea/LinkPlugin/Link/Link.jsx new file mode 100644 index 000000000..0a7d1aec5 --- /dev/null +++ b/src/components/RichTextArea/LinkPlugin/Link/Link.jsx @@ -0,0 +1,104 @@ +import React, { Component } from 'react' +import linkifyIt from 'linkify-it' +import tlds from 'tlds' + +import styles from './Link.scss' + +const linkify = linkifyIt() +linkify.tlds(tlds) + +// The component we render when we encounter a hyperlink in the text +export default class Link extends Component { + constructor(props) { + super(props) + + this.state = { + editingLink: false + } + this.lastDecoratedText = null + } + + componentDidMount() { + const { contentState, entityKey, decoratedText } = this.props + this.lastDecoratedText = decoratedText + this.setElementGetter(contentState, entityKey) + } + + setElementGetter(contentState, entityKey) { + contentState.mergeEntityData(entityKey, { + el: () => this.element + }) + } + + componentWillUpdate(newProps) { + this.updateEntityData(newProps) + } + + getData(contentState, entityKey) { + const entity = contentState.getEntity(entityKey) + const data = entity.getData() + return data + } + + updateEntityData(props = this.props) { + const { contentState, decoratedText, entityKey } = props + const data = this.getData(contentState, entityKey) + + if ( + this.lastDecoratedText !== decoratedText && + data.url && + data.url.replace(/https?:\/\//, '') !== decoratedText && + data.url !== decoratedText + ) { + this.lastDecoratedText = decoratedText + contentState.mergeEntityData(entityKey, { + text: decoratedText + }) + } + + if (!data.el) { + this.setElementGetter(contentState, entityKey) + } + } + + onLinkClick() { + this.setState(({ editingLink }) => + !editingLink + ? { + editingLink: true + } + : {} + ) + } + + render() { + const { + target = '_self', + rel = 'noreferrer noopener', + entityKey, + contentState, + children + } = this.props + + const data = contentState.getEntity(entityKey).getData() + const href = data.url + + const props = { + href, + target, + rel, + className: styles.link, + children + } + + return ( + { + this.element = el + }} + > + this.onLinkClick()} /> + + ) + } +} diff --git a/src/components/RichTextArea/LinkPlugin/Link/Link.scss b/src/components/RichTextArea/LinkPlugin/Link/Link.scss new file mode 100644 index 000000000..3358a69a8 --- /dev/null +++ b/src/components/RichTextArea/LinkPlugin/Link/Link.scss @@ -0,0 +1,8 @@ +@import '~tc-ui/src/styles/tc-includes'; + +.link:link, +.link:active, +.link:visited { + color: $tc-dark-blue-110; + text-decoration: underline; +} \ No newline at end of file diff --git a/src/components/RichTextArea/LinkPlugin/LinkPlugin.js b/src/components/RichTextArea/LinkPlugin/LinkPlugin.js new file mode 100644 index 000000000..4cf79275b --- /dev/null +++ b/src/components/RichTextArea/LinkPlugin/LinkPlugin.js @@ -0,0 +1,27 @@ +import decorateComponentWithProps from 'decorate-component-with-props' + +import Link from './Link/Link' +import linkStrategy from './linkStrategy' + +import createLinkEntity from './utils/createLink' + +/** + * Creates link plugin + */ +export default function createLinkPlugin() { + return { + customStyleMap: { + LINKHIGHLIGHT: { + background: 'rgb(0, 0, 0, 0.15)', + color: 'black' + } + }, + decorators: [ + { + strategy: linkStrategy, + component: decorateComponentWithProps(Link, {}) + } + ], + onChange: createLinkEntity + } +} diff --git a/src/components/RichTextArea/LinkPlugin/linkStrategy.js b/src/components/RichTextArea/LinkPlugin/linkStrategy.js new file mode 100644 index 000000000..92443d72f --- /dev/null +++ b/src/components/RichTextArea/LinkPlugin/linkStrategy.js @@ -0,0 +1,9 @@ +// Gets all the link entities in the text, and returns them via the callback +const linkStrategy = (contentBlock, callback, contentState) => { + contentBlock.findEntityRanges(character => { + const entityKey = character.getEntity() + return entityKey !== null && contentState.getEntity(entityKey).getType() === 'LINK' + }, callback) +} + +export default linkStrategy \ No newline at end of file diff --git a/src/components/RichTextArea/LinkPlugin/utils/createLink.js b/src/components/RichTextArea/LinkPlugin/utils/createLink.js new file mode 100644 index 000000000..99cbd5ab4 --- /dev/null +++ b/src/components/RichTextArea/LinkPlugin/utils/createLink.js @@ -0,0 +1,134 @@ +import { Modifier, EditorState } from 'draft-js' + +import newLinkifyIt from 'linkify-it' +import tlds from 'tlds' +import { last } from 'lodash' + +import { + getLastChar, + entityTypeAt, + getLastWord, + getSelectionBlock +} from './utils' + +let lastContentState +const linkifyIt = newLinkifyIt() +linkifyIt.tlds(tlds) + +/** + * Create link when pasted or typed into the draftjs editor + * @param {Object} editorState - the editor state + */ +export default function createLinkEntity(editorState) { + const currentContentState = editorState.getCurrentContent() + const selectionState = editorState.getSelection() + const cursorPosition = selectionState.getEndOffset() + + if ( + lastContentState === currentContentState || + !selectionState.isCollapsed() + ) { + return editorState + } + + const currentBlock = getSelectionBlock(selectionState, currentContentState) + const prevBlockState = + lastContentState && getSelectionBlock(selectionState, lastContentState) + const key = getLastChar(currentBlock, cursorPosition) + + const isNonUrlChar = + !isValidUrlCharacter(key) && + prevBlockState && + currentBlock.getText().length === prevBlockState.getText().length + 1 + const isEnter = + key === '' && + lastContentState && + currentContentState.getBlocksAsArray().length === + lastContentState.getBlocksAsArray().length + 1 + + lastContentState = currentContentState + + if (!isNonUrlChar && !isEnter) { + return editorState + } + + // when the user enters a non url character, we detect the link just like google docs does + const operatingSelecton = isEnter + ? currentContentState.getSelectionBefore() + : selectionState + const operatingBlock = isEnter + ? getSelectionBlock(operatingSelecton, currentContentState) // if enter pressed, operate on the previous block as enter creates a new empty block + : currentBlock + const operatingCursorPos = isEnter + ? operatingBlock.getText().length // If enter pressed, consider last position of previous block + : cursorPosition - 1 + const entityTypeAtCurrentLocation = entityTypeAt( + operatingBlock, + currentContentState, + operatingCursorPos - 1 // entity is identifyable only if the cursor is before at least one character. + ) + + if (entityTypeAtCurrentLocation === 'LINK') { + return editorState + } + + const lastWordBeforeCursor = getLastWord(operatingBlock, operatingCursorPos) + if (!lastWordBeforeCursor) { + return editorState + } + + const link = last(linkifyIt.match(lastWordBeforeCursor) || []) + if (!link) { + return editorState + } + + const { index, lastIndex } = link + const linkText = lastWordBeforeCursor.slice(index, lastIndex) + + const contentStateWithEntity = currentContentState.createEntity( + 'LINK', + 'MUTABLE', + { url: link.url, text: null } + ) + const entityKey = contentStateWithEntity.getLastCreatedEntityKey() + + const lastWordStartOffset = operatingCursorPos - lastWordBeforeCursor.length + + // link character offsets in the original text block + const linkStartOffset = lastWordStartOffset + index + const linkEndOffset = lastWordStartOffset + lastIndex + + let linkTextSelection = operatingSelecton.merge({ + anchorOffset: linkStartOffset, + focusOffset: linkEndOffset + }) + + const replacedContent = Modifier.replaceText( + editorState.getCurrentContent(), + linkTextSelection, + linkText, + null, + entityKey + ) + + linkTextSelection = selectionState.merge({ + anchorOffset: cursorPosition, + focusOffset: cursorPosition + }) + + const newEditorState = EditorState.forceSelection( + EditorState.push(editorState, replacedContent, 'insert-link'), + linkTextSelection + ) + + return newEditorState +} + +function isValidUrlCharacter(char) { + // Valid url characters: A-Z, a-z, 0-9,% -._~:/?#[]@!$&'()*+,;= + // Refer: http://tools.ietf.org/html/rfc3986#section-2 + return ( + typeof char === 'string' && + /^[A-Za-z0-9]|[-._~:/?#[\]@!$&'()*+,;=%]$/.test(char) + ) +} diff --git a/src/components/RichTextArea/LinkPlugin/utils/utils.js b/src/components/RichTextArea/LinkPlugin/utils/utils.js new file mode 100644 index 000000000..0096b9377 --- /dev/null +++ b/src/components/RichTextArea/LinkPlugin/utils/utils.js @@ -0,0 +1,413 @@ +import { last } from 'lodash' +import { EditorState, Modifier, SelectionState, RichUtils } from 'draft-js' + +/** + * Get the block corresponding to the selection state + * @param {Object} selectionState - the selection state + * @param {Object} contentState the contentState + * @param {boolean} useFocusKey - true means, focus key is used to get the block instead of anchor key + */ +export function getSelectionBlock(selectionState, contentState, useFocusKey) { + const key = useFocusKey + ? selectionState.getFocusKey() + : selectionState.getAnchorKey() + const currentBlock = contentState.getBlockForKey(key) + return currentBlock +} + +/** + * Gets the type of the Entity at given cursor position + * @param {Object} currentBlock - the current block + * @param {Object} contentState - the content state + * @param {number} cursorPosition - the cursor offset in current block + */ +export function entityTypeAt(currentBlock, contentState, cursorPosition) { + const entityAtCurrentLocation = getEntityAt( + currentBlock, + contentState, + cursorPosition + ) + return entityAtCurrentLocation && entityAtCurrentLocation.getType() +} + +/** + * Gets the last word from the given cursor position + * @param {Object} currentBlock - the current block + * @param {number} cursorPosition - the cursor offset in current block + */ +export function getLastWord(currentBlock, cursorPosition) { + const currentBlockText = currentBlock.getText() + const lastWord = last(currentBlockText.slice(0, cursorPosition).split(' ')) + return lastWord +} + +/** + * Get the last character from the given cursor position + * @param {Object} currentBlock - the current block + * @param {number} cursorPosition - the cursor offset in current block + */ +export function getLastChar(currentBlock, cursorPosition) { + const currentBlockText = currentBlock.getText() + const lastChar = currentBlockText.slice(cursorPosition - 1, cursorPosition) + return lastChar +} + +/** + * Get Entity at the given cursor position + * @param {Object} currentBlock - the current block + * @param {Object} contentState - the current contentstate + * @param {number} cursorPosition - the cursorPosition in the block + */ +export function getEntityAt(currentBlock, contentState, cursorPosition) { + const entityKeyAtCurrentLocation = currentBlock.getEntityAt(cursorPosition) + const entityAtCurrentLocation = getEntityForKey( + contentState, + entityKeyAtCurrentLocation + ) + return entityAtCurrentLocation +} + +/** + * Gets the entity for the given key + * @param {Object} contentState The content state of the editor + * @param {string} entityKey The key of the target entity + */ +export function getEntityForKey(contentState, entityKey) { + try { + return entityKey && contentState.getEntity(entityKey) + } catch (ex) { + return null + } +} + +/** + * Get the offsets of entityrange in the given block + * @param {Object} currentBlock - the current block + * @param {string} {entityKey} - the entitykey + */ +export function getEntityOffsets(currentBlock, entityKey) { + let offsets + currentBlock.findEntityRanges( + character => character.getEntity() === entityKey, + (start, end) => { + offsets = [start, end] + } + ) + return offsets +} + +/** + * Get the block corresponding to the target entity + * @param {Object} contentState The state of the content of the editor + * @param {string} entityKey The key of the target entity + */ +export function getEntityBlock(contentState, entityKey) { + const blocks = contentState.getBlocksAsArray() + let block + + for (let i = 0; i < blocks.length; i++) { + block = getEntityOffsets(blocks[i], entityKey ) ? blocks[i] : null + if (block) { + break + } + } + + return block +} + +/** + * Updates the given entity data and updates the decorated text + * @param {Object} editorState - the editor statae + * @param {Object} contentState - the content state of the editor + * @param {string} entityKey - the entity key + * @param {Object} data - the entity data + */ +export function updateLink(editorState, contentState, entityKey, data) { + let selectionState = editorState.getSelection() + + const startBlock = getSelectionBlock(selectionState, contentState) + let offsetKey = startBlock.getKey() + let offsets = getEntityOffsets(startBlock, entityKey ) + let entityBlock = startBlock + + if (!offsets) { + entityBlock = getEntityBlock(contentState, entityKey) + offsets = getEntityOffsets(entityBlock, entityKey ) + offsetKey = entityBlock.getKey() + } + + const [startOffset, endOffset] = offsets + const currentDecoratedText = entityBlock + .getText() + .slice(startOffset, endOffset) + const currentEntity = getEntityForKey(contentState, entityKey) + const currentEntityData = currentEntity && currentEntity.getData() + + let decoratedText = data.text || currentDecoratedText + + // text is intentionally removed. Now, consider url for displaying + if (currentEntityData && currentEntityData.text && !data.text) { + decoratedText = data.url + } + + contentState.mergeEntityData(entityKey, data) + + selectionState = SelectionState.createEmpty(offsetKey).merge({ + anchorOffset: startOffset, + focusOffset: endOffset + }) + + const replacedContent = Modifier.replaceText( + contentState, + selectionState, + decoratedText, + null, + entityKey + ) + + return EditorState.push(editorState, replacedContent, 'update-link') +} + +/** + * Applies a url on a multi line selection + * @param {Object} editorState The editor state + * @param {Object} entityData the data associated with the link entity + * @param {Object[]} entities The list of entity objects + * @param {Object[]} selections The list of editor selections + */ +export function updateMultilineLink( + editorState, + entityData, + entities, + selections +) { + let contentState = editorState.getCurrentContent() + selections.forEach((selection, i) => { + const oldEntityData = entities[i].getData() + const contentStateWithEntity = contentState.createEntity( + 'LINK', + 'MUTABLE', + { url: entityData.url, text: oldEntityData.text } + ) + const entityKey = contentStateWithEntity.getLastCreatedEntityKey() + + contentState = Modifier.replaceText( + contentState, + selection, + oldEntityData.text, + null, + entityKey + ) + }) + + return EditorState.push( + editorState, + contentState, + 'apply-entity' + ) +} + +/** + * Removes the link from current cursor position + * @param {Object} editorState the editor state + * @param {string} entityKey the entity key + */ +export function removeLink(editorState, entityKey) { + const contentState = editorState.getCurrentContent() + let selectionState = editorState.getSelection() + const initialSelection = selectionState + + const startBlock = getSelectionBlock(selectionState, contentState) + let offsets = getEntityOffsets(startBlock, entityKey ) + + let offsetKey = startBlock.getKey() + + // Entity not found in current block. + // This happens when you move around with arrow keys or enter key while autopopover is on. + if (!offsets) { + const entityBlock = getEntityBlock(contentState, entityKey) + offsets = getEntityOffsets(entityBlock, entityKey ) + offsetKey = entityBlock.getKey() + } + + const [startOffset, endOffset] = offsets + + selectionState = selectionState.merge({ + anchorOffset: startOffset, + focusOffset: endOffset, + anchorKey: offsetKey, + focusKey: offsetKey, + isBackward: false + }) + + const replacedContent = Modifier.applyEntity( + contentState, + selectionState, + null + ) + + return EditorState.forceSelection( + EditorState.push(editorState, replacedContent, 'update-link'), + initialSelection + ) +} + +/** + * Applies link entity to the selection + * @param {Object} editorState - the editor state + * @param {Object} contentState - the editor state + * @param {Object} selectionState - the selection state + */ +export function applyLink(editorState, contentState, selectionState) { + const selectionStart = selectionState.getStartOffset() + const selectionEnd = selectionState.getEndOffset() + const startBlock = getSelectionBlock(selectionState, contentState) + + const contentStateWithEntity = contentState.createEntity('LINK', 'MUTABLE', { + text: startBlock.getText().slice(selectionStart, selectionEnd) + }) + const entityKey = contentStateWithEntity.getLastCreatedEntityKey() + + const newContentState = Modifier.applyEntity( + contentState, + selectionState, + entityKey + ) + + const updatedState = EditorState.push( + editorState, + newContentState, + 'apply-entity' + ) + + return { updatedState, entityKey, contentStateWithEntity, newContentState } +} + +/** + * Apply placeholder links for a multi line selection + * @param {Object} editorState The editor state + * @param {Object} contentState The content state of the editor + * @param {Object} selectionState The selection state of the editor + */ +export function applyMultiLineLink(editorState, contentState, selectionState) { + const startKey = selectionState.getStartKey() + const endKey = selectionState.getEndKey() + + const startOffset = selectionState.getStartOffset() + const endOffset = selectionState.getEndOffset() + + const entityKeys = [] + const selectionStates = [] + + const startBlock = contentState.getBlockForKey(startKey) + let _selectionState = SelectionState.createEmpty(startKey).merge({ + anchorOffset: startOffset, + focusOffset: startBlock.getLength() + }) + + let key = startKey + let { updatedState: state, entityKey, newContentState } = applyLink( + editorState, + contentState, + _selectionState + ) + entityKeys.push(entityKey) + selectionStates.push(_selectionState) + do { + key = newContentState.getKeyAfter(key) + const block = newContentState.getBlockForKey(key) + _selectionState = SelectionState.createEmpty(key).merge({ + anchorOffset: 0, + focusOffset: key === endKey ? endOffset : block.getLength() + }) + ;({ updatedState: state, entityKey, newContentState } = applyLink( + state, + newContentState, + _selectionState + )) + entityKeys.push(entityKey) + selectionStates.push(_selectionState) + } while (key !== endKey) + return { + updatedState: state, + entityKeys, + contentStateWithEntity: state.getCurrentContent(), + selectionStates + } +} + +/** + * Inserts link entity at the given cursor position + * @param {Object} editorState - the editor state + * @param {Object} contentState - the content state + * @param {Object} selectionState - the selection state + */ +export function insertLink(editorState, contentState, selectionState) { + const placeholderText = ' ' + const contentStateWithEntity = contentState.createEntity('LINK', 'MUTABLE', { + text: '' + }) + const entityKey = contentStateWithEntity.getLastCreatedEntityKey() + + const selectionStart = selectionState.getStartOffset() + const selectionEnd = selectionState.getEndOffset() + + const newContentState = Modifier.insertText( + contentState, + selectionState, + placeholderText, + null, + entityKey + ) + + const updatedState = EditorState.forceSelection( + EditorState.push(editorState, newContentState, 'insert-link'), + + selectionState.merge({ + anchorOffset: selectionStart, + focusOffset: selectionEnd + 1, // replace placeholder space when applied + isBackward: false + }) + ) + + return { updatedState, entityKey, contentStateWithEntity } +} + +/** + * Removes all link editing highlights from the editor + * @param {Object} editorState The current editor state + */ +export function removeHighlight(editorState) { + const contentState = editorState.getCurrentContent() + const blocks = contentState.getBlocksAsArray() + const initialSelection = editorState.getSelection() + + const highlightStyleName = 'LINKHIGHLIGHT' + let removedHighlights = false + blocks.forEach(block => { + block.findStyleRanges( + char => char.hasStyle(highlightStyleName), + (start, end) => { + removedHighlights = true + const selection = SelectionState.createEmpty(block.key).merge({ + anchorOffset: start, + focusOffset: end + }) + + editorState = EditorState.forceSelection(editorState, selection) + editorState = RichUtils.toggleInlineStyle( + editorState, + highlightStyleName + ) + } + ) + }) + + return removedHighlights + ? EditorState.push( + EditorState.forceSelection(editorState, initialSelection), + editorState.getCurrentContent(), + 'change-inline-style' + ) + : null +} diff --git a/src/components/RichTextArea/RichTextArea.jsx b/src/components/RichTextArea/RichTextArea.jsx index fe9f9354f..dffd4fffb 100644 --- a/src/components/RichTextArea/RichTextArea.jsx +++ b/src/components/RichTextArea/RichTextArea.jsx @@ -4,7 +4,7 @@ import Editor, {composeDecorators} from 'draft-js-plugins-editor' import {EditorState, RichUtils} from 'draft-js' import Avatar from 'appirio-tech-react-components/components/Avatar/Avatar' import cn from 'classnames' -import createLinkPlugin from 'draft-js-link-plugin' +import createLinkPlugin from './LinkPlugin/LinkPlugin' import createImagePlugin from 'draft-js-image-plugin' import createBlockDndPlugin from 'draft-js-drag-n-drop-plugin' import imageUploadPlugin from './ImageUploadPlugin' @@ -13,7 +13,6 @@ import AddLinkButton from './AddLinkButton' import {getCurrentEntity} from '../../helpers/draftJSHelper' import markdownToState from '../../helpers/markdownToState' import stateToMarkdown from '../../helpers/stateToMarkdown' -import 'draft-js-link-plugin/lib/plugin.css' import EditorIcons from './EditorIcons' import './RichTextArea.scss' import 'draft-js-mention-plugin/lib/plugin.css' @@ -21,6 +20,7 @@ import createMentionPlugin, { defaultSuggestionsFilter } from 'draft-js-mention- import _ from 'lodash' import { getAvatarResized } from '../../helpers/tcHelpers' import SwitchButton from 'appirio-tech-react-components/components/SwitchButton/SwitchButton' +import EditLinkPopoverWrapper from './LinkPlugin/EditLinkPopoverWrapper/EditLinkPopoverWrapper' const linkPlugin = createLinkPlugin() const blockDndPlugin = createBlockDndPlugin() @@ -56,14 +56,14 @@ class RichTextArea extends React.Component { constructor(props) { super(props) this.state = { - editorExpanded: false, - editorState: EditorState.createEmpty(), - titleValue: '', - suggestions: [], - allSuggestions:[], + editorExpanded: false, + editorState: EditorState.createEmpty(), + titleValue: '', + suggestions: [], + allSuggestions:[], isPrivate: false } - + this.onTitleChange = this.onTitleChange.bind(this) this.onEditorChange = this.onEditorChange.bind(this) this.handleKeyCommand = this.handleKeyCommand.bind(this) @@ -97,7 +97,8 @@ class RichTextArea extends React.Component { currentMDContent: this.props.content, oldMDContent: this.props.oldContent, suggestions, - allSuggestions:suggestions + allSuggestions:suggestions, + isAddLinkOpen: false }) } @@ -184,11 +185,11 @@ class RichTextArea extends React.Component { const editorExpanded = isEditor && !isCloseButton const isPrivate = isEditor && !isCloseButton ? this.state.isPrivate : false - + // to avoid unnecessary re-rendering on every click, only update state if any of the values is updated if (editorExpanded !== this.state.editorExpanded || isPrivate !== this.state.isPrivate) { this.setState({ - editorExpanded, + editorExpanded, isPrivate, }) } @@ -263,6 +264,11 @@ class RichTextArea extends React.Component { } onAddMention() { } + onEditLink(value) { + this.setState({ + isAddLinkOpen: value + }) + } cancelEdit() { this.props.cancelEdit() } @@ -279,7 +285,7 @@ class RichTextArea extends React.Component { const {MentionSuggestions} = this.mentionPlugin const {className, avatarUrl, authorName, titlePlaceholder, contentPlaceholder, editMode, isCreating, isGettingComment, disableTitle, disableContent, expandedTitlePlaceholder, editingTopic, hasPrivateSwitch } = this.props - const {editorExpanded, editorState, titleValue, oldMDContent, currentMDContent, uploading, isPrivate} = this.state + const {editorExpanded, editorState, titleValue, oldMDContent, currentMDContent, uploading, isPrivate, isAddLinkOpen} = this.state let canSubmit = (disableTitle || titleValue.trim()) && (disableContent || editorState.getCurrentContent().hasText()) if (editMode && canSubmit) { @@ -288,6 +294,7 @@ class RichTextArea extends React.Component { const currentStyle = editorState.getCurrentInlineStyle() const blockType = RichUtils.getCurrentBlockType(editorState) const currentEntity = getCurrentEntity(editorState) + const selectionState = editorState.getSelection() const disableForCodeBlock = blockType === 'code-block' const editButtonText = editingTopic ? 'Update title' : 'Update post' @@ -357,6 +364,14 @@ class RichTextArea extends React.Component { onAddMention={this.onAddMention} entryComponent={Entry} /> + this.onEditLink(false) } + setEditorState={ this.setEditorState } + enableAutoPopover + enableAutoPopoverPositioning={false} + />
}
@@ -397,7 +412,8 @@ class RichTextArea extends React.Component { getEditorState={this.getEditorState} setEditorState={this.setEditorState} disabled={disableForCodeBlock} - active={currentEntity && 'LINK' === currentEntity.getType()} + onEditLink={() => this.onEditLink(true)} + active={currentEntity && 'LINK' === currentEntity.getType() && selectionState.isCollapsed()} /> { allowImages &&
} { allowImages && diff --git a/src/helpers/markdownToState.js b/src/helpers/markdownToState.js index 5d7841418..add00b803 100644 --- a/src/helpers/markdownToState.js +++ b/src/helpers/markdownToState.js @@ -64,7 +64,7 @@ const DefaultBlockTypes = { // again. In this case, key is remarkable key, value is // meethod that returns the draftjs key + any data needed. const DefaultBlockEntities = { - link_open: (item) => { //eslint-disable-line + link_open: (item, followingItems) => { //eslint-disable-line if (item.title && item.title.startsWith('@')){ return { @@ -79,11 +79,24 @@ const DefaultBlockEntities = { } } + const linkEndIndex = followingItems.map(item => item.type).indexOf('link_close') + + let text = '' + if (linkEndIndex !== -1) { + text = followingItems.slice(0, linkEndIndex).map(item => item.content).join(' ') + } + + // Ignore auto link title + if (item.href && (text === item.href.replace(/^https?:\/\//, '') || text === item.href)) { + text = '' + } + return { type: 'LINK', mutability: 'MUTABLE', data: { - url: item.href + url: item.href, + text } } }, @@ -137,7 +150,7 @@ function parseInline(inlineItem, BlockEntities, BlockStyles) { const blockEntities = {} const blockEntityRanges = [] const blockInlineStyleRanges = [] - inlineItem.children.forEach((child) => { + inlineItem.children.forEach((child, i) => { if (child.type === 'text') { content += child.content } else if (child.type === 'softbreak') { @@ -159,7 +172,8 @@ function parseInline(inlineItem, BlockEntities, BlockStyles) { } else if (BlockEntities[child.type]) { const key = generateUniqueKey() - blockEntities[key] = BlockEntities[child.type](child) + const followingItems = inlineItem.children.slice(i + 1, inlineItem.children.length) + blockEntities[key] = BlockEntities[child.type](child, followingItems) blockEntityRanges.push({ offset: child.type === 'image' ? 0 : content.length || 0, @@ -200,7 +214,7 @@ function parseInline(inlineItem, BlockEntities, BlockStyles) { export function markdownToHTML(markdown) { const md = new Remarkable('full', { html: true, - linkify: true, + linkify: false, // typographer: true, }) // Replace the BBCode [u][/u] to markdown '++' for underline style From 77e596a80146f1f15591f3c36e8bc996ed395788 Mon Sep 17 00:00:00 2001 From: Abhishek Kumar Date: Sun, 12 May 2019 11:23:12 +0530 Subject: [PATCH 25/89] add logo.jpg --- src/static/logo.jpg | Bin 0 -> 5205 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/static/logo.jpg diff --git a/src/static/logo.jpg b/src/static/logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a9ea987f3c060944b7d0b485675af349f4fa76d6 GIT binary patch literal 5205 zcmbVPc{r5c+kcp`E6I{2M%E$;*-9p43tv*nk|s+SLRm7R8Af&zLQz@DUUo*vVC<6Y zA!d-Y%rHt!W_zFdz1R1>uJ^C^dO!2bGxznJGxvQy=iKLW?uY$>O#=3vGq*AaI5+^n z68r${CBViEh4cmhTU$UC003TqBLN9OK@02xNP%AffE0275b&4d&$B|#e_Q( zFfTYDKM03Bz$wfD5$0g`05C8n7sp@x{Tq1W;DkWAxOsT__yxcYP5S^&4hV!33gP1V z6Nck1*bYF2x%MB@H0BmL@6IECOH?Z+qlj0*q^?WMVT`J%?GcRS;}<_5At|M#taA8> z>IofPJ$-|drf1E}EiA3hUATD3@v@V%i>KFhZy#TzUr1=!?Qm4Yo!EPE@d=4Z$(dOX zvvYDEJ+t)uZI5a*nIW;}=VRmk5dF9jU=d~|i zzis~bx%F#%hxU8-4=->&|3eGB|A*QC;w237;)FsWP@X@$I5@-q5Eq7W9n$39Z+xD| z{g#NlRt&GGNk&m!7oUQ*169l;c#L0M@x+qS<{xT*nf>30VgFyu{w4N5yygK@FtPrC z6TBdtoZwPHKtMqXAh@`>{(}3z!Sffqf57)I*r1cY9ymFn;Kj$y#r<#F|Jh(KfN9CY zo&y9S9AGj*gaJ6fnm$}J2%8^e3Aoew*+7?(p$QuhLaX{8$YTSko@riL1QskNaGiA7 zZ6NTf)gfH$O}TrS=at7L4ms>WYkk90!*jb(K`y67NX@ug0Sqm>Dp!-WZz<414ADC; z1w!X7#^(xQVbm}Ua^0qX-<%zxY9kJ<7wa?=SX5hw8z1j?KvoAHv=H?x{X9G9bB%jS zMWy7f9vk2?Wdqn~hTLXQg5i0(U=%O&d6Wh zoYIl5$}hH#7=OE=Yw?Yic%JuQTxiqDh42<3nu-QPMxzW>aJiOt0i?HYoU)a4Owv82Ps-4yxhoy`CT<#O z&PShcT{TuXUW_Hs#i?tFjMFQ7IEQ=DA|1HNtvBa**8`4G6rBs7NnSh=Y$m_I`u+>C z>x%n=_h7O{$sj*y5jYXC=&9xm{{mi?q#yo6a9KXHp|bL;OHg)dV^vtx`+oVupMIN- z7V0p;1nW{|okCf#cz+dtgK^^n(&y4UPmacI?ES96k3vTh_kH}b^F#lm+0;v=0MDo_ zLv_h?w4$Slm&TLlAB4z($qX2?15Uyd8{lNVP5UV6%^GaGbB!NPTzsx1jgso9R)TO^ zDE(5c9=Ny>T9+xQcT_RZQF0l7LYWQ3zA@UTzGRKT-XXZIZ8X;f)}*^(KcvzF8GaEG zun%{|80+XEJT*jvAu_t1xOu4{nsJv|Lmj?|&v1_qxN|t)7I`qbGAQ8F1GCJCh?Qi` zgIuu+C($%%&e3VFbRulw5ClV6Ph#0`aB~CB+rKSpl z?}OlW^}SAJ6X+B1rB#S*OV>uR0T%zSP1*4yzXG_3-7o?2`a>-@RNk(*2=Rvd&yu({ zZA=(GsxV2|pW5HEsIY+)rN(HA@g zQIgCeqm!(6i%JNID4xyuIug@npUtk>r|DD@Mi8rfUVgVK-a%hMj48z$gf|IM2EnX9 z(-hlDY}_FeN?8-FoH2fjNBs2}230PHPu+qg7K?9}+lQ>mRDX&ZnVg~2Fhp>yJ;lr% zjCYkaED_d(n`Nn?rc4F`l+C5Mo;Jzkzzs9JsyJjpH^6vESm4q&=U;ev+OS6;z-3-)%%f0q@YHvLFy zvV~l3YM%UcN?A_Zn2XXl7|2+KXc=`v0v~Q()u!7qxM=y{9!scu-NHV1${tfbHlT6dX;w4Edj7tmmzf-63>(2(DzEqqVZ_6cHMGNUN(J40aafNcvk7zA zlxa+Bqn}=*8$C%d7;@4 zS$=awhK#t?tu+4R&5Qn+dPH`HU|V2kxN~RAkSdkJelJy<1a@xrUh|^dRbBln_$-oZXq9iYbI$ zEXH@<9J8`v`$QrrfQnMK4!@aSFSd=lBt{`p9r3dl2$=eCN=c0`LU72I1d}x8Noj}O z;$`-<9;+3k9=%%E&GO>ElbtFuod@}8g1?Iv#&ntCNv~MKwDU{p{88|ku(#j8x|!$lQ_Xw_YF~vM8%TFEKOv`>$`RD? zQDeOnILLXBbF%~^j;Ef(eArmtAxF?n7*5P8JQ4xUMaE*Df8WN9M|@fRheWA z%gFL_Vvi|g+G%DwSyyiynS5YevxO?Iur7qHeFax`2UMj{Hh|oiSL+LAjbW(v0%@k5 zXqo9C#mV&>W%keHr%GBL46C&V9}!nmXb_K>9I~@K<1WWq#rW9G=91v#$JC)w5*r|I zEahtm_=-oRM4tVBU`XXK>J5zqLj<#E zvy8>}cFcD-Kk(UFS9m75;c2=GUH7vo>weD`*84{=+WC;ZD9Z``9?^jB$D|XfmLm{5 zS_Nsr$CB1YSNr~bscOV%cL=pn%}}ecn?T-Zg(5`Y7LG{1ZX@T*9OE^;*4(-^+>6Q_ic# zO!F}_<#itRI4h?^7CZ^9;NEN?3DKOMjCThsFCwPbYRO-~bsF!VqFuK5W+0s@J~qBo zlDVu-%Y+{mQ(es7UQ1@UFKKXm(WaI4pDZa&E18S-Ztr+@3Z(!g9msLKc;%Ua4r7Kj zT+pCL{$7mfA|Rx^n;5g7$FOXLT<(HB|vPSNx zFhs+2LyD$v}3~|B= zk^Gu|{7fFAn@BTld=u#~cH_}gxb>#ARe)4KG~#+pDK5uZQuKcQttR0MBP==eJ7U8O zMTZUWNYU~;VT}n1TWmn|t0SKGRg-{>-i6T|>w4z6(SVFQm&i~}j2*Enbrx8oPW` zPeu;m%52}$*03GG3e^3%b0-7=Fo2*vQD8}gwI5*vg4b74Hj=il9-!WDF;uEq%(!(c zLMM5FnR)cZ`Knj#1M1H?HGiC~dZ&fSpJL`>Jbr=75CLCm*>=TrljfOtFh>Sn2T_PL zD>l%y{Tty={Jg$EuTh)W`S24SVR8m@bLzJccoH7~<7IwCzh#Njf-2D?cXHzx&Ucp) zNqH*RumSH!L}v2Lh5KJu58YTV_6;JXVQlh=~osq(% zHwh)oo!x!jDHzgqtS~33vYrC;jrFQ`DVaR%Gymv?K7yV@)ZxgdsM6c!%w!{V^gEZm z+1Hm(WBRWO+_&`@x7&K-GQB*z9=O&*C@^G}cqk1ODB^S4#F}#@b|CaidA_ffk!#ly zqZ_mj0z8VDcQ~%7#26ioQm2*3OcDj#txHg8N3U1}&$)d%fIVQ)J>VYx;iIfHPwZDj zB9R)bcOO&(IE!zFJC~HSIAgo1kiM8pyc9!#TGI)GMCqPLyI?!Lg%?B>X&`#?TwP)XyQd1{s-?zn zCtrRX-VkV>L6fxNU~1E{mNf_)+(ctA1FlXqR^^wMwZuygmltMQzIrfdm{_lsWBK4f zM)V=k{XP8NxtnTB?{KBA-(8O3OBbCN&t`QQ9We;r(g_1}r? zCf09s3PEX}|4@D64Ap%+OTLQN&N|Oq;JtLWzbGW@42#?|w@4~^JU_EDG=m2^U zBZ5c%c?q3GYfuYwmo4J=>yw*M$JQy2UY<%dL0x++S1|nX_U}5p1dl2p6Hc+FOQT0% z%>~$i4j6huRiJi`I~K-wufff2(Wa0RnNn4u^vta-|C*0#e!j2teT<3` zC?{P<)#3hjG_|!9BTe)K8p4{VnMP8l=WQmMG|L5?J!cB>xUhY9Ge4_+@p8rJN5nYl zIt)0)&tVE%58DVq{_O4R#Ar+%sDr~nSWss%@vqv|m)ekCE#l1-#WckqD^U}++Jh&? zYcDzcXw#j#^lr-DD1ceY21pNywR)7;P0=V98lB3LxzH0NczZ@~8<#s5ihFPtu&ibg zZUL|DD=Q7(zZJV=%n#JO|8}_LU`-5T4~ZC$7MeiAqE3%f8r_5}aMsq+()u~lkthXe z2mO^ZVi)&z;|)r{4XT0Z((XHjJH(nG17+=}^OWCSuyY8XnjiBn2;`Y09}s^sjn&sZ+? z@@o1$JSiSQwT3~yi+9LT*SgEy-%R|n4)7TAp3?D&w63xetYtoFTGBkL=t1FMKC+jn zDWMv`^eIk>>58(axlzBbAPCIMONicA;uAea2d7E8J9BrpJe*WgA9QNr!mdd=xo1aT zKNPJ1o;0(uEIvCrl+_R4SFnr&Us6aCjWxo&Qsaxe>)UjPobiPpQfj7{TkzSb7*!ir zrwUao2Qzg1m{})PNQO0x=j>393Z`DBD6QNTpmgZaZs*p~BG1z=O=3LV%oVua|B%nV Ymism}o4FN)tE3pt;K$75;OyD|0wtmOLI3~& literal 0 HcmV?d00001 From 5090e3f2883e65c5147c97d59aecacb7f9118674 Mon Sep 17 00:00:00 2001 From: rashmi73 Date: Sun, 12 May 2019 22:58:49 +0530 Subject: [PATCH 26/89] issue 2936 fix --- .../NotificationBadge/NotificationBadge.jsx | 41 +++++++++++++++++++ .../NotificationBadge/NotificationBadge.scss | 14 +++++++ .../components/Projects/ProjectsGridView.jsx | 4 ++ .../components/Projects/ProjectsGridView.scss | 7 ++++ 4 files changed, 66 insertions(+) create mode 100644 src/components/NotificationBadge/NotificationBadge.jsx create mode 100644 src/components/NotificationBadge/NotificationBadge.scss diff --git a/src/components/NotificationBadge/NotificationBadge.jsx b/src/components/NotificationBadge/NotificationBadge.jsx new file mode 100644 index 000000000..7d3c2246a --- /dev/null +++ b/src/components/NotificationBadge/NotificationBadge.jsx @@ -0,0 +1,41 @@ +/** + * Notification Badge + */ +import React from 'react' +import PropTypes from 'prop-types' + +import Tooltip from 'appirio-tech-react-components/components/Tooltip/Tooltip' +import { TOOLTIP_DEFAULT_DELAY } from '../../../config/constants' + +import './NotificationBadge.scss' + +const getBadge = (number) => { + return (
{number}
) +} + +const NotificationBadge = ({count, text}) => { + if (text) { + return ( + +
+ {getBadge(count)} +
+
+ {text} +
+
+ ) + } else { + return ( + getBadge(count) + ) + } +} + +NotificationBadge.propTypes = { + count: PropTypes.number.isRequired, + text: PropTypes.string, + id: PropTypes.number +} +export default NotificationBadge + \ No newline at end of file diff --git a/src/components/NotificationBadge/NotificationBadge.scss b/src/components/NotificationBadge/NotificationBadge.scss new file mode 100644 index 000000000..25756757c --- /dev/null +++ b/src/components/NotificationBadge/NotificationBadge.scss @@ -0,0 +1,14 @@ +@import '~tc-ui/src/styles/tc-includes'; + +.badge { + display: inline-flex; + background: $tc-red-70; + color: white; + @include roboto-bold; + border-radius: 100%; + height: 20px; + justify-content: center; + align-items: center; + width: 20px; + font-size: 10px; +} \ No newline at end of file diff --git a/src/projects/list/components/Projects/ProjectsGridView.jsx b/src/projects/list/components/Projects/ProjectsGridView.jsx index 0fe59679b..a5972cd50 100644 --- a/src/projects/list/components/Projects/ProjectsGridView.jsx +++ b/src/projects/list/components/Projects/ProjectsGridView.jsx @@ -24,6 +24,7 @@ import ProjectTypeIcon from '../../../../components/ProjectTypeIcon' import IconProjectStatusTitle from '../../../../assets/icons/status-ico.svg' import './ProjectsGridView.scss' +import NotificationBadge from '../../../../components/NotificationBadge/NotificationBadge'; const EnhancedProjectStatus = editableProjectStatus(ProjectStatus) @@ -88,6 +89,9 @@ const ProjectsGridView = props => { {(recentlyCreated || unreadProjectUpdate.length > 0) && }
{_.unescape(item.name)} + + +
Date: Mon, 13 May 2019 14:43:05 +0800 Subject: [PATCH 27/89] remove usage of "decorate-component-with-props" --- package-lock.json | 14 +++++++++----- package.json | 1 - .../RichTextArea/LinkPlugin/LinkPlugin.js | 4 +--- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index 94f5fe2d0..b9a245d77 100644 --- a/package-lock.json +++ b/package-lock.json @@ -440,6 +440,7 @@ "react-textarea-autosize": "^5.2.1", "react-transition-group": "^2.2.1", "redux-thunk": "^2.1.0", + "tc-ui": "git+https://github.com/appirio-tech/tc-ui.git#e577a0e704136f1e9ecce92ce4c0626aab932691", "uncontrollable": "^4.0.1" }, "dependencies": { @@ -526,7 +527,7 @@ }, "tc-ui": { "version": "git+https://github.com/appirio-tech/tc-ui.git#e577a0e704136f1e9ecce92ce4c0626aab932691", - "from": "git+https://github.com/appirio-tech/tc-ui.git#e577a0e704136f1e9ecce92ce4c0626aab932691", + "from": "git+https://github.com/appirio-tech/tc-ui.git#feature/connectv2", "requires": { "classnames": "^2.2.3", "lodash": "^4.0.0", @@ -17268,10 +17269,17 @@ "Base64": "~0.1.3", "json-fallback": "0.0.1", "jsonp": "~0.0.4", + "qs": "git+https://github.com/jfromaniello/node-querystring.git#5d96513991635e3e22d7aa54a8584d6ce97cace8", "reqwest": "^1.1.4", "trim": "~0.0.1", "winchan": "^0.1.1", "xtend": "~2.1.1" + }, + "dependencies": { + "qs": { + "version": "git+https://github.com/jfromaniello/node-querystring.git#5d96513991635e3e22d7aa54a8584d6ce97cace8", + "from": "git+https://github.com/jfromaniello/node-querystring.git#fix_ie7_bug_with_arrays" + } } }, "auto-config-fake-server": { @@ -23282,10 +23290,6 @@ "resolved": "https://registry.npmjs.org/q/-/q-1.5.0.tgz", "integrity": "sha512-VVMcd+HnuWZalHPycK7CsbVJ+sSrrrnCvHcW38YJVK9Tywnb5DUWJjONi81bLUj7aqDjIXnePxBl5t1r/F/ncg==" }, - "qs": { - "version": "git+https://github.com/jfromaniello/node-querystring.git#5d96513991635e3e22d7aa54a8584d6ce97cace8", - "from": "git+https://github.com/jfromaniello/node-querystring.git#5d96513991635e3e22d7aa54a8584d6ce97cace8" - }, "query-string": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", diff --git a/package.json b/package.json index 706f279c7..96f8790bc 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,6 @@ "brace": "^0.11.1", "classnames": "^2.2.3", "coffeescript": "^1.12.7", - "decorate-component-with-props": "^1.1.0", "draft-js": "^0.10.1", "draft-js-drag-n-drop-plugin": "^2.0.0-rc2", "draft-js-image-plugin": "^2.0.0-rc2", diff --git a/src/components/RichTextArea/LinkPlugin/LinkPlugin.js b/src/components/RichTextArea/LinkPlugin/LinkPlugin.js index 4cf79275b..7c29ff3dd 100644 --- a/src/components/RichTextArea/LinkPlugin/LinkPlugin.js +++ b/src/components/RichTextArea/LinkPlugin/LinkPlugin.js @@ -1,5 +1,3 @@ -import decorateComponentWithProps from 'decorate-component-with-props' - import Link from './Link/Link' import linkStrategy from './linkStrategy' @@ -19,7 +17,7 @@ export default function createLinkPlugin() { decorators: [ { strategy: linkStrategy, - component: decorateComponentWithProps(Link, {}) + component: Link, } ], onChange: createLinkEntity From 56c157d9f3058ebb3a49e6eb0c13c9156d3aee33 Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Mon, 13 May 2019 15:14:26 +0530 Subject: [PATCH 28/89] Added default color of development phase for non standard phases e.g. for API scope form we need to show the timeline with different phases --- src/projects/create/components/ProjectEstimation.scss | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/projects/create/components/ProjectEstimation.scss b/src/projects/create/components/ProjectEstimation.scss index 519ce22d0..60b1e77fe 100644 --- a/src/projects/create/components/ProjectEstimation.scss +++ b/src/projects/create/components/ProjectEstimation.scss @@ -71,6 +71,9 @@ $timeline-colors: (design: #5A52A3, development: #306BE1, qa: #35A3BC, deploymen li:global { &.selected { + background-color: #306BE1; + color: white; + border: 0 none; @each $type, $bg-color in $timeline-colors { &.type-#{$type} { background-color: $bg-color; From 0711473bc1ea70cf03034d8fdc47dedbf11b814b Mon Sep 17 00:00:00 2001 From: Maksym Mykhailenko Date: Tue, 14 May 2019 09:26:07 +0800 Subject: [PATCH 29/89] issue #2999 - Support markdown for various texts in Form components --- .../SpecQuestionList/SpecQuestionList.jsx | 5 ++-- .../SpecQuestionList/SpecQuestionList.scss | 26 ++++++++++++++++--- 2 files changed, 26 insertions(+), 5 deletions(-) diff --git a/src/projects/detail/components/SpecQuestionList/SpecQuestionList.jsx b/src/projects/detail/components/SpecQuestionList/SpecQuestionList.jsx index 70166abba..1554aaf88 100644 --- a/src/projects/detail/components/SpecQuestionList/SpecQuestionList.jsx +++ b/src/projects/detail/components/SpecQuestionList/SpecQuestionList.jsx @@ -4,6 +4,7 @@ import cn from 'classnames' import _ from 'lodash' import HelpModal from '../../../create/components/HelpModal' +import { markdownToHTML } from '../../../../helpers/markdownToState' import './SpecQuestionList.scss' @@ -63,9 +64,9 @@ const SpecQuestionListItem = ({ {!!titleAside &&
{titleAside}
} { help && () } } - {!!introduction &&

{introduction}

} + {!!introduction &&
} {children &&
{children}
} - {!hideDescription &&

{description}

} + {!hideDescription && description &&
} {shouldShowRequire && (
{required ? 'Required' : 'Optional'}
) }
diff --git a/src/projects/detail/components/SpecQuestionList/SpecQuestionList.scss b/src/projects/detail/components/SpecQuestionList/SpecQuestionList.scss index 95fd64293..da2306559 100644 --- a/src/projects/detail/components/SpecQuestionList/SpecQuestionList.scss +++ b/src/projects/detail/components/SpecQuestionList/SpecQuestionList.scss @@ -105,7 +105,6 @@ } } - > p, .description { @include roboto-light; font-size: 12px; @@ -133,8 +132,29 @@ margin-top: $base-unit; } - .description { - margin-bottom: $base-unit * 4; + .markdown { + ol { + list-style: outside decimal; + padding-left: 5 * $base-unit; + } + + ul { + list-style: outside disc; + padding-left: 5 * $base-unit; + } + + strong { + font-weight: bold; + } + + code { + background: $tc-gray-neutral-light; + color: $tc-gray-100; + font-family: 'Courier New', Courier, monospace; + font-style: normal; + border-radius: 3px; + padding: .2em .4em; + } } .child-component { From 7e8afa0e0e71137bbf7476728d9c94b5f673ca79 Mon Sep 17 00:00:00 2001 From: Abhishek Kumar Date: Tue, 14 May 2019 13:03:45 +0530 Subject: [PATCH 30/89] able to delete attachments now --- src/components/RichTextArea/RichTextArea.jsx | 115 ++++++++++--------- 1 file changed, 58 insertions(+), 57 deletions(-) diff --git a/src/components/RichTextArea/RichTextArea.jsx b/src/components/RichTextArea/RichTextArea.jsx index 39ee0af5d..9968becb9 100644 --- a/src/components/RichTextArea/RichTextArea.jsx +++ b/src/components/RichTextArea/RichTextArea.jsx @@ -1,7 +1,7 @@ import React from 'react' import PropTypes from 'prop-types' -import Editor, {composeDecorators} from 'draft-js-plugins-editor' -import {EditorState, RichUtils} from 'draft-js' +import Editor, { composeDecorators } from 'draft-js-plugins-editor' +import { EditorState, RichUtils } from 'draft-js' import Avatar from 'appirio-tech-react-components/components/Avatar/Avatar' import cn from 'classnames' import createLinkPlugin from 'draft-js-link-plugin' @@ -10,7 +10,7 @@ import createBlockDndPlugin from 'draft-js-drag-n-drop-plugin' import imageUploadPlugin from './ImageUploadPlugin' import handleDropPlugin from './HandleDropPlugin' import AddLinkButton from './AddLinkButton' -import {getCurrentEntity} from '../../helpers/draftJSHelper' +import { getCurrentEntity } from '../../helpers/draftJSHelper' import markdownToState from '../../helpers/markdownToState' import stateToMarkdown from '../../helpers/stateToMarkdown' import 'draft-js-link-plugin/lib/plugin.css' @@ -41,7 +41,7 @@ const decorator = composeDecorators( ) const allowImages = false const plugins = [linkPlugin, blockDndPlugin] -if (allowImages){ +if (allowImages) { const imagePlugin = createImagePlugin({ decorator }) plugins.push(handleDropPlugin) plugins.push(imagePlugin) @@ -51,16 +51,16 @@ if (allowImages){ const styles = [ - {className: 'bold', style: 'BOLD'}, - {className: 'italic', style: 'ITALIC'}, - {className: 'underline', style: 'UNDERLINE'} + { className: 'bold', style: 'BOLD' }, + { className: 'italic', style: 'ITALIC' }, + { className: 'underline', style: 'UNDERLINE' } ] const blocks = [ - {className: 'ordered-list', style: 'ordered-list-item'}, - {className: 'unordered-list', style: 'unordered-list-item'}, - {className: 'quote', style: 'blockquote'}, - {className: 'code', style: 'code-block'} + { className: 'ordered-list', style: 'ordered-list-item' }, + { className: 'unordered-list', style: 'unordered-list-item' }, + { className: 'quote', style: 'blockquote' }, + { className: 'code', style: 'code-block' } ] const fileUploadClient = filepicker.init(FILE_PICKER_API_KEY, { @@ -75,7 +75,7 @@ class RichTextArea extends React.Component { editorState: EditorState.createEmpty(), titleValue: '', suggestions: [], - allSuggestions:[], + allSuggestions: [], isPrivate: false } @@ -98,7 +98,7 @@ class RichTextArea extends React.Component { this.getDownloadAttachmentFilename = this.getDownloadAttachmentFilename.bind(this) this.removeRawFile = this.removeRawFile.bind(this) this.removeFile = this.removeFile.bind(this) - this.mentionPlugin = createMentionPlugin({mentionPrefix: '@'}) + this.mentionPlugin = createMentionPlugin({ mentionPrefix: '@' }) this.plugins = plugins.slice(0) this.plugins.push(this.mentionPlugin) } @@ -109,7 +109,7 @@ class RichTextArea extends React.Component { } componentWillMount() { - const suggestions = _.map(_.values(this.props.projectMembers), (e) => { return {name: e.firstName + ' ' + e.lastName, handle: e.handle, userId: e.userId, link:'/users/'+e.handle} }) + const suggestions = _.map(_.values(this.props.projectMembers), (e) => { return { name: e.firstName + ' ' + e.lastName, handle: e.handle, userId: e.userId, link: '/users/' + e.handle } }) const projectId = this.props.match.params.projectId this.setState({ editorExpanded: this.props.editMode, @@ -118,7 +118,7 @@ class RichTextArea extends React.Component { currentMDContent: this.props.content, oldMDContent: this.props.oldContent, suggestions, - allSuggestions:suggestions, + allSuggestions: suggestions, isAttachmentUploaderOpen: false, rawFiles: [], attachmentsStorePath: `${PROJECT_ATTACHMENTS_FOLDER}/${projectId}/`, @@ -200,7 +200,7 @@ class RichTextArea extends React.Component { if (!currNode) break - } while(currNode.tagName) + } while (currNode.tagName) // if editor has content, do not proceed if (!isEditor && !isCloseButton && hasContent) { @@ -220,7 +220,7 @@ class RichTextArea extends React.Component { } handleKeyCommand(command) { - const {editorState} = this.state + const { editorState } = this.state const newState = RichUtils.handleKeyCommand(editorState, command) if (newState) { this.onEditorChange(newState) @@ -261,7 +261,7 @@ class RichTextArea extends React.Component { } onTitleChange() { - this.setState({titleValue: this.refs.title.value}) + this.setState({ titleValue: this.refs.title.value }) if (this.props.onPostChange) { this.props.onPostChange(this.refs.title.value, this.state.currentMDContent) } @@ -294,7 +294,7 @@ class RichTextArea extends React.Component { } } } - onSearchChange({value}){ + onSearchChange({ value }) { this.setState({ suggestions: defaultSuggestionsFilter(value, this.state.allSuggestions) }) @@ -314,7 +314,7 @@ class RichTextArea extends React.Component { this.onEditorChange(editorState) } setUploadState(uploading) { - this.setState({uploading}) + this.setState({ uploading }) } openFileUpload() { if (fileUploadClient) { @@ -333,10 +333,10 @@ class RichTextArea extends React.Component { this.processUploadedFiles(files) }, onOpen: () => { - this.setState({isAttachmentUploaderOpen: true}) + this.setState({ isAttachmentUploaderOpen: true }) }, onClose: () => { - this.setState({isAttachmentUploaderOpen: false}) + this.setState({ isAttachmentUploaderOpen: false }) } }) @@ -350,7 +350,7 @@ class RichTextArea extends React.Component { bucket: f.container, title: f.filename })) - if (this.state.rawFiles){ + if (this.state.rawFiles) { rawFiles = this.state.rawFiles.concat(rawFiles) } @@ -378,15 +378,16 @@ class RichTextArea extends React.Component { return match[1] } render() { - const {MentionSuggestions} = this.mentionPlugin - const {className, avatarUrl, authorName, titlePlaceholder, contentPlaceholder, editMode, isCreating, - isGettingComment, disableTitle, disableContent, expandedTitlePlaceholder, editingTopic, hasPrivateSwitch, canUploadAttachment } = this.props - const {editorExpanded, editorState, titleValue, oldMDContent, currentMDContent, uploading, isPrivate, rawFiles, files} = this.state + const { MentionSuggestions } = this.mentionPlugin + const { className, avatarUrl, authorName, titlePlaceholder, contentPlaceholder, editMode, isCreating, + isGettingComment, disableTitle, disableContent, expandedTitlePlaceholder, editingTopic, hasPrivateSwitch, + attachments, canUploadAttachment } = this.props + const { editorExpanded, editorState, titleValue, oldMDContent, currentMDContent, uploading, isPrivate, rawFiles, files } = this.state let canSubmit = (disableTitle || titleValue.trim()) - && (disableContent || editorState.getCurrentContent().hasText()) + && (disableContent || editorState.getCurrentContent().hasText()) if (editMode && canSubmit) { canSubmit = (!disableTitle && titleValue !== this.props.oldTitle) || (!disableContent && oldMDContent !== currentMDContent) - || rawFiles.length > 0 + || (rawFiles.length > 0 || files.length < attachments.length) } const currentStyle = editorState.getCurrentInlineStyle() const blockType = RichUtils.getCurrentBlockType(editorState) @@ -408,7 +409,7 @@ class RichTextArea extends React.Component {
- {mention.get('name') +' - '+mention.get('handle')} + {mention.get('name') + ' - ' + mention.get('handle')}
@@ -417,14 +418,14 @@ class RichTextArea extends React.Component { } return ( -
+
{(isCreating || isGettingComment) && -
+
} {uploading && -
-
Uploading image {uploading}%
-
+
+
Uploading image {uploading}%
+
}
@@ -433,10 +434,10 @@ class RichTextArea extends React.Component {
} -
+
))} -
+
{blocks.map((item) => ( } {editMode && !isCreating && - + } - { editMode && - + {editMode && + } - { !editMode && - + {!editMode && + }
@@ -554,8 +555,8 @@ class RichTextArea extends React.Component { {this.getDownloadAttachmentFilename(f.originalFileName)}
-
@@ -568,8 +569,8 @@ class RichTextArea extends React.Component { {f.title}
-
@@ -596,7 +597,7 @@ RichTextArea.propTypes = { isCreating: PropTypes.bool, disableTitle: PropTypes.bool, disableContent: PropTypes.bool, - editMode:PropTypes.bool, + editMode: PropTypes.bool, hasError: PropTypes.bool, avatarUrl: PropTypes.string, authorName: PropTypes.string, From dacd54b94de0f73c4bbaa857d8207fd5d684a655 Mon Sep 17 00:00:00 2001 From: Maksym Mykhailenko Date: Tue, 14 May 2019 16:05:14 +0800 Subject: [PATCH 31/89] Revert "Revert "List post links on the sidebar"" This reverts commit dae60fff36f72a4ed5dad235e62b06fc4e86d51d. --- src/components/LinksMenu/LinksMenu.jsx | 5 +- .../LinksMenu/LinksMenuAccordion.jsx | 52 ++++++++ .../LinksMenu/LinksMenuAccordion.scss | 40 ++++++ .../detail/containers/ProjectInfoContainer.js | 121 +++++++++++++++++- 4 files changed, 214 insertions(+), 4 deletions(-) create mode 100644 src/components/LinksMenu/LinksMenuAccordion.jsx create mode 100644 src/components/LinksMenu/LinksMenuAccordion.scss diff --git a/src/components/LinksMenu/LinksMenu.jsx b/src/components/LinksMenu/LinksMenu.jsx index 090662664..a81e0e245 100644 --- a/src/components/LinksMenu/LinksMenu.jsx +++ b/src/components/LinksMenu/LinksMenu.jsx @@ -6,6 +6,7 @@ import Panel from '../Panel/Panel' import AddLink from './AddLink' import DeleteLinkModal from './DeleteLinkModal' import EditLinkModal from './EditLinkModal' +import LinksMenuAccordion from './LinksMenuAccordion' import uncontrollable from 'uncontrollable' import MobileExpandable from '../MobileExpandable/MobileExpandable' import cn from 'classnames' @@ -100,7 +101,9 @@ const LinksMenu = ({ } const onEditCancel = () => onEditIntent(-1) const handleEditClick = () => onEditIntent(idx) - if (linkToDelete === idx) { + if (Array.isArray(link.children) && link.children.length > 0) { + return () + } else if (linkToDelete === idx) { return (
  • +
    + + {link.title} +
    + {isOpen &&
    +
      + { + link.children.map((childLink, i) => { + return
    • {renderLink(childLink)}
    • + }) + } +
    +
    } +
  • + ) + } +} + +LinksMenuAccordion.propTypes = { + link: PropTypes.object.isRequired, + renderLink: PropTypes.func.isRequired +} + +export default LinksMenuAccordion diff --git a/src/components/LinksMenu/LinksMenuAccordion.scss b/src/components/LinksMenu/LinksMenuAccordion.scss new file mode 100644 index 000000000..66f968c41 --- /dev/null +++ b/src/components/LinksMenu/LinksMenuAccordion.scss @@ -0,0 +1,40 @@ +@import '~tc-ui/src/styles/tc-includes'; +@import '../../styles/includes'; + +.link-accordion { + padding: 0 20px; + font-weight: 400; + font-size: 13px; +} + +.link-accordion-content li { + padding-left: 15px; +} + +.link-accordion-head { + padding: 10px 0; + cursor: pointer; + display: flex; +} + +.link-accordion-head .icon { + transform: rotate(-90deg); +} + +.link-accordion-head .icon.active { + transform: rotate(0); +} + +.link-accordion-title { + margin-left: 5px; +} + +.link-accordion-head:hover { + background: $tc-gray-neutral-light; +} + +@media screen and (max-width: $screen-md - 1px) { + .link-accordion-head { + padding: 20px 0; + } +} diff --git a/src/projects/detail/containers/ProjectInfoContainer.js b/src/projects/detail/containers/ProjectInfoContainer.js index 9c6140720..5ad8f2587 100644 --- a/src/projects/detail/containers/ProjectInfoContainer.js +++ b/src/projects/detail/containers/ProjectInfoContainer.js @@ -16,7 +16,7 @@ import { PROJECT_ROLE_OWNER, PROJECT_ROLE_COPILOT, PROJECT_ROLE_MANAGER, import PERMISSIONS from '../../../config/permissions' import { checkPermission } from '../../../helpers/permissions' import ProjectInfo from '../../../components/ProjectInfo/ProjectInfo' -import { +import { addProjectAttachment, updateProjectAttachment, uploadProjectAttachments, discardAttachments, changeAttachmentPermission, removeProjectAttachment } from '../../actions/projectAttachment' @@ -38,6 +38,10 @@ class ProjectInfoContainer extends React.Component { this.onUploadAttachment = this.onUploadAttachment.bind(this) this.removeAttachment = this.removeAttachment.bind(this) this.onSubmitForReview = this.onSubmitForReview.bind(this) + this.extractLinksFromPosts = this.extractLinksFromPosts.bind(this) + this.extractMarkdownLink = this.extractMarkdownLink.bind(this) + this.extractHtmlLink = this.extractHtmlLink.bind(this) + this.extractRawLink = this.extractRawLink.bind(this) } shouldComponentUpdate(nextProps, nextState) { // eslint-disable-line no-unused-vars @@ -156,13 +160,110 @@ class ProjectInfoContainer extends React.Component { updateProject(project.id, { status: 'in_review'}) } + extractHtmlLink(str) { + const links = [] + const regex = /]+href="(.*?)"[^>]*>([\s\S]*?)<\/a>/gm + const urlRegex = /^(?:http(s)?:\/\/)?[\w.-]+(?:\.[\w\.-]+)+[\w\-\._~:/?#[\]@!\$&'\(\)\*\+,;=.]+$/gm // eslint-disable-line no-useless-escape + const rawLinks = regex.exec(str) + + if (Array.isArray(rawLinks)) { + let i = 0 + while (i < rawLinks.length) { + const title = rawLinks[i + 2] + const address = rawLinks[i + 1] + + if (urlRegex.test(address)) { + links.push({ + title, + address + }) + } + + i = i + 3 + } + } + + return links + } + + extractMarkdownLink(str) { + const links = [] + const regex = /(?:__|[*#])|\[(.*?)\]\((.*?)\)/gm + const urlRegex = /^(?:http(s)?:\/\/)?[\w.-]+(?:\.[\w\.-]+)+[\w\-\._~:/?#[\]@!\$&'\(\)\*\+,;=.]+$/gm // eslint-disable-line no-useless-escape + const rawLinks = regex.exec(str) + + if (Array.isArray(rawLinks)) { + let i = 0 + while (i < rawLinks.length) { + const title = rawLinks[i + 1] + const address = rawLinks[i + 2] + + if (urlRegex.test(address)) { + links.push({ + title, + address + }) + } + + i = i + 3 + } + } + + return links + } + + extractRawLink(str) { + let links = [] + const regex = /(\s|^)(https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|www\.[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9]+\.[^\s]{2,}|www\.[a-zA-Z0-9]+\.[^\s]{2,}[\s])(\s|$)/igm // eslint-disable-line no-useless-escape + const rawLinks = str.match(regex) + + if (Array.isArray(rawLinks)) { + links = rawLinks + .filter(link => !link.includes(']')) + .map(link => { + const name = link.trim() + const url = !/^https?:\/\//i.test(name) ? 'http://' + name : name + + return { + title: name, + address: url + } + }) + } + + return links + } + + extractLinksFromPosts(feeds) { + const links = [] + feeds.forEach(feed => { + let childrenLinks = [] + feed.posts.forEach(post => { + childrenLinks = childrenLinks.concat([ + ...this.extractHtmlLink(post.rawContent), + ...this.extractMarkdownLink(post.rawContent), + ...this.extractRawLink(post.rawContent) + ]) + }) + + if (childrenLinks.length > 0) { + links.push({ + title: feed.title, + children: childrenLinks + }) + } + }) + + return links + } + render() { const { duration } = this.state const { project, currentMemberRole, isSuperUser, phases, feeds, hideInfo, hideLinks, hideMembers, onChannelClick, activeChannelId, productsTimelines, isManageUser, phasesTopics, isProjectPlan, isProjectProcessing, projectTemplates, attachmentsAwaitingPermission, addProjectAttachment, discardAttachments, attachmentPermissions, - changeAttachmentPermission, projectMembers, loggedInUser, isSharingAttachment } = this.props + changeAttachmentPermission, projectMembers, loggedInUser, isSharingAttachment, canAccessPrivatePosts } = this.props let directLinks = null // check if direct links need to be added const isMemberOrCopilot = _.indexOf([PROJECT_ROLE_COPILOT, PROJECT_ROLE_MANAGER], currentMemberRole) > -1 @@ -251,6 +352,20 @@ class ProjectInfoContainer extends React.Component { }) } + // extract links from posts + const topicLinks = this.extractLinksFromPosts(feeds) + const publicTopicLinks = topicLinks.filter(link => link.tag !== PROJECT_FEED_TYPE_MESSAGES) + const privateTopicLinks = topicLinks.filter(link => link.tag === PROJECT_FEED_TYPE_MESSAGES) + const phaseLinks = this.extractLinksFromPosts(phaseFeeds) + + let links = [] + links = links.concat(project.bookmarks) + links = links.concat(publicTopicLinks) + if (canAccessPrivatePosts) { + links = links.concat(privateTopicLinks) + } + links = links.concat(phaseLinks) + return (
    @@ -300,7 +415,7 @@ class ProjectInfoContainer extends React.Component { } {!hideLinks && Date: Tue, 14 May 2019 15:24:18 +0530 Subject: [PATCH 32/89] fixes issue 3020 --- src/projects/detail/components/Accordion/Accordion.jsx | 4 +++- src/projects/detail/components/SpecQuestions.jsx | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/projects/detail/components/Accordion/Accordion.jsx b/src/projects/detail/components/Accordion/Accordion.jsx index d1706b97b..fa5b59a85 100644 --- a/src/projects/detail/components/Accordion/Accordion.jsx +++ b/src/projects/detail/components/Accordion/Accordion.jsx @@ -19,7 +19,9 @@ import './Accordion.scss' const TYPE = { CHECKBOX_GROUP: 'checkbox-group', RADIO_GROUP: 'radio-group', - ADD_ONS: 'add-ons' + ADD_ONS: 'add-ons', + TEXTINPUT: 'textinput', + TEXTBOX: 'textbox' } /** diff --git a/src/projects/detail/components/SpecQuestions.jsx b/src/projects/detail/components/SpecQuestions.jsx index bebe435fb..68661059a 100644 --- a/src/projects/detail/components/SpecQuestions.jsx +++ b/src/projects/detail/components/SpecQuestions.jsx @@ -331,7 +331,7 @@ const SpecQuestions = ({ // hide question in edit mode if configured (isCreation || !question.hiddenOnEdit) ).map((q, index) => ( - _.includes(['checkbox-group', 'radio-group', 'add-ons'], q.type) && q.visibilityForRendering === STEP_VISIBILITY.READ_OPTIMIZED ? ( + _.includes(['checkbox-group', 'radio-group', 'add-ons', 'textinput', 'textbox'], q.type) && q.visibilityForRendering === STEP_VISIBILITY.READ_OPTIMIZED ? ( Date: Tue, 14 May 2019 20:58:03 +0530 Subject: [PATCH 33/89] WIP issue 2177 --- src/projects/detail/ProjectDetail.jsx | 6 ++---- .../detail/containers/DashboardContainer.jsx | 2 ++ .../detail/containers/ProjectInfoContainer.js | 19 ++++++++++++++++++- 3 files changed, 22 insertions(+), 5 deletions(-) diff --git a/src/projects/detail/ProjectDetail.jsx b/src/projects/detail/ProjectDetail.jsx index 1191dc1f6..a4183060b 100644 --- a/src/projects/detail/ProjectDetail.jsx +++ b/src/projects/detail/ProjectDetail.jsx @@ -64,9 +64,7 @@ const ProjectDetailView = (props) => { if (!currentMemberRole && props.currentUserRoles && props.currentUserRoles.length > 0) { currentMemberRole = props.currentUserRoles[0] } - const regex = /#(feed-([0-9]+)|comment-([0-9]+))/ - const match = props.location.hash.match(regex) - const ids = match ? { feedId: match[2], commentId: match[3] } : {} + const locationHash = window.location.hash ? window.location.hash.substring(1) : null const { component: Component } = props const componentProps = { @@ -79,7 +77,7 @@ const ProjectDetailView = (props) => { isProcessing: props.isProcessing, allProductTemplates: props.allProductTemplates, productsTimelines: props.productsTimelines, - ...ids + locationHash } return } diff --git a/src/projects/detail/containers/DashboardContainer.jsx b/src/projects/detail/containers/DashboardContainer.jsx index a0ffb55df..49c125091 100644 --- a/src/projects/detail/containers/DashboardContainer.jsx +++ b/src/projects/detail/containers/DashboardContainer.jsx @@ -112,6 +112,7 @@ class DashboardContainer extends React.Component { phasesTopics, expandProjectPhase, collapseProjectPhase, + locationHash, } = this.props // system notifications @@ -135,6 +136,7 @@ class DashboardContainer extends React.Component { productsTimelines={productsTimelines} phasesTopics={phasesTopics} isProjectProcessing={isProcessing} + locationHash={locationHash} /> ) diff --git a/src/projects/detail/containers/ProjectInfoContainer.js b/src/projects/detail/containers/ProjectInfoContainer.js index 9c6140720..73732cb8d 100644 --- a/src/projects/detail/containers/ProjectInfoContainer.js +++ b/src/projects/detail/containers/ProjectInfoContainer.js @@ -81,8 +81,25 @@ class ProjectInfoContainer extends React.Component { }) } - componentWillReceiveProps({project}) { + componentWillReceiveProps(props) { + const { project, locationHash, feeds, canAccessPrivatePosts, loadDashboardFeeds, loadProjectMessages } = props this.setDuration(project) + if (locationHash && locationHash !== this.props.locationHash) { + const hashParts = _.split(locationHash, '-') + if (hashParts[0] === 'comment') { + let commentFound = false + _.forEach(feeds, feed => _.forEach(feed.posts, post => { + if (post.id === hashParts[1]) { + commentFound = true + return false + } + })) + if (!commentFound) { + loadDashboardFeeds(project.id) + canAccessPrivatePosts && loadProjectMessages(project.id) + } + } + } } onChangeStatus(projectId, status, reason) { From 1e24a051eb3e504b11d8b146274e335662dda5c8 Mon Sep 17 00:00:00 2001 From: Vigneshkumar Chinnachamy M Date: Tue, 14 May 2019 21:09:04 +0530 Subject: [PATCH 34/89] fix draftjs link editor opening autopopover without link text --- .../LinkPlugin/EditLinkPopover/EditLinkPopover.jsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/RichTextArea/LinkPlugin/EditLinkPopover/EditLinkPopover.jsx b/src/components/RichTextArea/LinkPlugin/EditLinkPopover/EditLinkPopover.jsx index 4637bbf44..14532124b 100644 --- a/src/components/RichTextArea/LinkPlugin/EditLinkPopover/EditLinkPopover.jsx +++ b/src/components/RichTextArea/LinkPlugin/EditLinkPopover/EditLinkPopover.jsx @@ -140,8 +140,8 @@ export default class EditLink extends React.Component { this.onDocClick = this.onDocClick.bind(this) } - componentDidMount(props = this.props) { - const { editing, text, url, entityKey } = props + componentDidMount() { + const { editing, text, url, entityKey } = this.props this.currentlyEditingEntity = entityKey this.setState({ From e66d59b6525e96d4bda215b3edcdbe177733d1b8 Mon Sep 17 00:00:00 2001 From: Maksym Mykhailenko Date: Wed, 15 May 2019 08:34:35 +0800 Subject: [PATCH 35/89] Revert "Revert "List post links on the sidebar"" This reverts commit dae60fff36f72a4ed5dad235e62b06fc4e86d51d. --- src/components/LinksMenu/LinksMenu.jsx | 5 +- .../LinksMenu/LinksMenuAccordion.jsx | 52 ++++++++ .../LinksMenu/LinksMenuAccordion.scss | 40 ++++++ .../detail/containers/ProjectInfoContainer.js | 121 +++++++++++++++++- 4 files changed, 214 insertions(+), 4 deletions(-) create mode 100644 src/components/LinksMenu/LinksMenuAccordion.jsx create mode 100644 src/components/LinksMenu/LinksMenuAccordion.scss diff --git a/src/components/LinksMenu/LinksMenu.jsx b/src/components/LinksMenu/LinksMenu.jsx index 090662664..a81e0e245 100644 --- a/src/components/LinksMenu/LinksMenu.jsx +++ b/src/components/LinksMenu/LinksMenu.jsx @@ -6,6 +6,7 @@ import Panel from '../Panel/Panel' import AddLink from './AddLink' import DeleteLinkModal from './DeleteLinkModal' import EditLinkModal from './EditLinkModal' +import LinksMenuAccordion from './LinksMenuAccordion' import uncontrollable from 'uncontrollable' import MobileExpandable from '../MobileExpandable/MobileExpandable' import cn from 'classnames' @@ -100,7 +101,9 @@ const LinksMenu = ({ } const onEditCancel = () => onEditIntent(-1) const handleEditClick = () => onEditIntent(idx) - if (linkToDelete === idx) { + if (Array.isArray(link.children) && link.children.length > 0) { + return () + } else if (linkToDelete === idx) { return (
  • +
    + + {link.title} +
    + {isOpen &&
    +
      + { + link.children.map((childLink, i) => { + return
    • {renderLink(childLink)}
    • + }) + } +
    +
    } +
  • + ) + } +} + +LinksMenuAccordion.propTypes = { + link: PropTypes.object.isRequired, + renderLink: PropTypes.func.isRequired +} + +export default LinksMenuAccordion diff --git a/src/components/LinksMenu/LinksMenuAccordion.scss b/src/components/LinksMenu/LinksMenuAccordion.scss new file mode 100644 index 000000000..66f968c41 --- /dev/null +++ b/src/components/LinksMenu/LinksMenuAccordion.scss @@ -0,0 +1,40 @@ +@import '~tc-ui/src/styles/tc-includes'; +@import '../../styles/includes'; + +.link-accordion { + padding: 0 20px; + font-weight: 400; + font-size: 13px; +} + +.link-accordion-content li { + padding-left: 15px; +} + +.link-accordion-head { + padding: 10px 0; + cursor: pointer; + display: flex; +} + +.link-accordion-head .icon { + transform: rotate(-90deg); +} + +.link-accordion-head .icon.active { + transform: rotate(0); +} + +.link-accordion-title { + margin-left: 5px; +} + +.link-accordion-head:hover { + background: $tc-gray-neutral-light; +} + +@media screen and (max-width: $screen-md - 1px) { + .link-accordion-head { + padding: 20px 0; + } +} diff --git a/src/projects/detail/containers/ProjectInfoContainer.js b/src/projects/detail/containers/ProjectInfoContainer.js index 9c6140720..5ad8f2587 100644 --- a/src/projects/detail/containers/ProjectInfoContainer.js +++ b/src/projects/detail/containers/ProjectInfoContainer.js @@ -16,7 +16,7 @@ import { PROJECT_ROLE_OWNER, PROJECT_ROLE_COPILOT, PROJECT_ROLE_MANAGER, import PERMISSIONS from '../../../config/permissions' import { checkPermission } from '../../../helpers/permissions' import ProjectInfo from '../../../components/ProjectInfo/ProjectInfo' -import { +import { addProjectAttachment, updateProjectAttachment, uploadProjectAttachments, discardAttachments, changeAttachmentPermission, removeProjectAttachment } from '../../actions/projectAttachment' @@ -38,6 +38,10 @@ class ProjectInfoContainer extends React.Component { this.onUploadAttachment = this.onUploadAttachment.bind(this) this.removeAttachment = this.removeAttachment.bind(this) this.onSubmitForReview = this.onSubmitForReview.bind(this) + this.extractLinksFromPosts = this.extractLinksFromPosts.bind(this) + this.extractMarkdownLink = this.extractMarkdownLink.bind(this) + this.extractHtmlLink = this.extractHtmlLink.bind(this) + this.extractRawLink = this.extractRawLink.bind(this) } shouldComponentUpdate(nextProps, nextState) { // eslint-disable-line no-unused-vars @@ -156,13 +160,110 @@ class ProjectInfoContainer extends React.Component { updateProject(project.id, { status: 'in_review'}) } + extractHtmlLink(str) { + const links = [] + const regex = /]+href="(.*?)"[^>]*>([\s\S]*?)<\/a>/gm + const urlRegex = /^(?:http(s)?:\/\/)?[\w.-]+(?:\.[\w\.-]+)+[\w\-\._~:/?#[\]@!\$&'\(\)\*\+,;=.]+$/gm // eslint-disable-line no-useless-escape + const rawLinks = regex.exec(str) + + if (Array.isArray(rawLinks)) { + let i = 0 + while (i < rawLinks.length) { + const title = rawLinks[i + 2] + const address = rawLinks[i + 1] + + if (urlRegex.test(address)) { + links.push({ + title, + address + }) + } + + i = i + 3 + } + } + + return links + } + + extractMarkdownLink(str) { + const links = [] + const regex = /(?:__|[*#])|\[(.*?)\]\((.*?)\)/gm + const urlRegex = /^(?:http(s)?:\/\/)?[\w.-]+(?:\.[\w\.-]+)+[\w\-\._~:/?#[\]@!\$&'\(\)\*\+,;=.]+$/gm // eslint-disable-line no-useless-escape + const rawLinks = regex.exec(str) + + if (Array.isArray(rawLinks)) { + let i = 0 + while (i < rawLinks.length) { + const title = rawLinks[i + 1] + const address = rawLinks[i + 2] + + if (urlRegex.test(address)) { + links.push({ + title, + address + }) + } + + i = i + 3 + } + } + + return links + } + + extractRawLink(str) { + let links = [] + const regex = /(\s|^)(https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|www\.[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9]+\.[^\s]{2,}|www\.[a-zA-Z0-9]+\.[^\s]{2,}[\s])(\s|$)/igm // eslint-disable-line no-useless-escape + const rawLinks = str.match(regex) + + if (Array.isArray(rawLinks)) { + links = rawLinks + .filter(link => !link.includes(']')) + .map(link => { + const name = link.trim() + const url = !/^https?:\/\//i.test(name) ? 'http://' + name : name + + return { + title: name, + address: url + } + }) + } + + return links + } + + extractLinksFromPosts(feeds) { + const links = [] + feeds.forEach(feed => { + let childrenLinks = [] + feed.posts.forEach(post => { + childrenLinks = childrenLinks.concat([ + ...this.extractHtmlLink(post.rawContent), + ...this.extractMarkdownLink(post.rawContent), + ...this.extractRawLink(post.rawContent) + ]) + }) + + if (childrenLinks.length > 0) { + links.push({ + title: feed.title, + children: childrenLinks + }) + } + }) + + return links + } + render() { const { duration } = this.state const { project, currentMemberRole, isSuperUser, phases, feeds, hideInfo, hideLinks, hideMembers, onChannelClick, activeChannelId, productsTimelines, isManageUser, phasesTopics, isProjectPlan, isProjectProcessing, projectTemplates, attachmentsAwaitingPermission, addProjectAttachment, discardAttachments, attachmentPermissions, - changeAttachmentPermission, projectMembers, loggedInUser, isSharingAttachment } = this.props + changeAttachmentPermission, projectMembers, loggedInUser, isSharingAttachment, canAccessPrivatePosts } = this.props let directLinks = null // check if direct links need to be added const isMemberOrCopilot = _.indexOf([PROJECT_ROLE_COPILOT, PROJECT_ROLE_MANAGER], currentMemberRole) > -1 @@ -251,6 +352,20 @@ class ProjectInfoContainer extends React.Component { }) } + // extract links from posts + const topicLinks = this.extractLinksFromPosts(feeds) + const publicTopicLinks = topicLinks.filter(link => link.tag !== PROJECT_FEED_TYPE_MESSAGES) + const privateTopicLinks = topicLinks.filter(link => link.tag === PROJECT_FEED_TYPE_MESSAGES) + const phaseLinks = this.extractLinksFromPosts(phaseFeeds) + + let links = [] + links = links.concat(project.bookmarks) + links = links.concat(publicTopicLinks) + if (canAccessPrivatePosts) { + links = links.concat(privateTopicLinks) + } + links = links.concat(phaseLinks) + return (
    @@ -300,7 +415,7 @@ class ProjectInfoContainer extends React.Component { } {!hideLinks && Date: Wed, 15 May 2019 21:01:14 +0530 Subject: [PATCH 36/89] fix for issue 2177 --- src/projects/detail/ProjectDetail.jsx | 2 - .../detail/containers/DashboardContainer.jsx | 2 - .../detail/containers/FeedContainer.js | 2 +- .../detail/containers/ProjectInfoContainer.js | 74 +++++++++++++------ 4 files changed, 54 insertions(+), 26 deletions(-) diff --git a/src/projects/detail/ProjectDetail.jsx b/src/projects/detail/ProjectDetail.jsx index a4183060b..56b4710c8 100644 --- a/src/projects/detail/ProjectDetail.jsx +++ b/src/projects/detail/ProjectDetail.jsx @@ -64,7 +64,6 @@ const ProjectDetailView = (props) => { if (!currentMemberRole && props.currentUserRoles && props.currentUserRoles.length > 0) { currentMemberRole = props.currentUserRoles[0] } - const locationHash = window.location.hash ? window.location.hash.substring(1) : null const { component: Component } = props const componentProps = { @@ -77,7 +76,6 @@ const ProjectDetailView = (props) => { isProcessing: props.isProcessing, allProductTemplates: props.allProductTemplates, productsTimelines: props.productsTimelines, - locationHash } return } diff --git a/src/projects/detail/containers/DashboardContainer.jsx b/src/projects/detail/containers/DashboardContainer.jsx index 49c125091..a0ffb55df 100644 --- a/src/projects/detail/containers/DashboardContainer.jsx +++ b/src/projects/detail/containers/DashboardContainer.jsx @@ -112,7 +112,6 @@ class DashboardContainer extends React.Component { phasesTopics, expandProjectPhase, collapseProjectPhase, - locationHash, } = this.props // system notifications @@ -136,7 +135,6 @@ class DashboardContainer extends React.Component { productsTimelines={productsTimelines} phasesTopics={phasesTopics} isProjectProcessing={isProcessing} - locationHash={locationHash} /> ) diff --git a/src/projects/detail/containers/FeedContainer.js b/src/projects/detail/containers/FeedContainer.js index 624477588..0f35f074f 100644 --- a/src/projects/detail/containers/FeedContainer.js +++ b/src/projects/detail/containers/FeedContainer.js @@ -226,7 +226,7 @@ class FeedView extends React.Component { } const scrollTo = window.location.hash ? window.location.hash.substring(1) : null if (scrollTo) { - scrollToHash(scrollTo) + setTimeout(() => scrollToHash(scrollTo), 0) } }) } diff --git a/src/projects/detail/containers/ProjectInfoContainer.js b/src/projects/detail/containers/ProjectInfoContainer.js index 73732cb8d..960aee397 100644 --- a/src/projects/detail/containers/ProjectInfoContainer.js +++ b/src/projects/detail/containers/ProjectInfoContainer.js @@ -1,12 +1,13 @@ import React from 'react' import PropTypes from 'prop-types' import { connect } from 'react-redux' +import { withRouter } from 'react-router-dom' import update from 'react-addons-update' import _ from 'lodash' import LinksMenu from '../../../components/LinksMenu/LinksMenu' import FileLinksMenu from '../../../components/LinksMenu/FileLinksMenu' import TeamManagementContainer from './TeamManagementContainer' -import { updateProject, deleteProject } from '../../actions/project' +import { updateProject, deleteProject, loadProjectPhasesWithProducts } from '../../actions/project' import { loadDashboardFeeds, loadProjectMessages } from '../../actions/projectTopics' import { loadPhaseFeed } from '../../actions/phasesTopics' import { setDuration } from '../../../helpers/projectHelper' @@ -60,16 +61,14 @@ class ProjectInfoContainer extends React.Component { } componentWillMount() { - const { project, isFeedsLoading, feeds, loadDashboardFeeds, - loadProjectMessages, phases, phasesTopics, loadPhaseFeed, canAccessPrivatePosts } = this.props + const { project, isFeedsLoading, feeds, phases, phasesTopics, loadPhaseFeed } = this.props this.setDuration(project) // load feeds from dashboard if they are not currently loading or loaded yet // also it will load feeds, if we already loaded them, but it was 0 feeds before if (!isFeedsLoading && feeds.length < 1) { - loadDashboardFeeds(project.id) - canAccessPrivatePosts && loadProjectMessages(project.id) + this.loadAllFeeds() } // load phases feeds if they are not loaded yet @@ -82,26 +81,59 @@ class ProjectInfoContainer extends React.Component { } componentWillReceiveProps(props) { - const { project, locationHash, feeds, canAccessPrivatePosts, loadDashboardFeeds, loadProjectMessages } = props + const { project, phases, feeds, loadProjectPhasesWithProducts, loadPhaseFeed, location } = props + this.setDuration(project) - if (locationHash && locationHash !== this.props.locationHash) { - const hashParts = _.split(locationHash, '-') - if (hashParts[0] === 'comment') { - let commentFound = false - _.forEach(feeds, feed => _.forEach(feed.posts, post => { - if (post.id === hashParts[1]) { - commentFound = true - return false - } - })) - if (!commentFound) { - loadDashboardFeeds(project.id) - canAccessPrivatePosts && loadProjectMessages(project.id) + + if (!_.isEmpty(location.hash) && location.hash !== this.props.location.hash) { + const hashParts = _.split(location.hash.substring(1), '-') + const hashPrimaryId = parseInt(hashParts[1], 10) + + switch (hashParts[0]) { + case 'comment': + if (!this.foundCommentInFeeds(feeds, hashPrimaryId)) { + this.loadAllFeeds() } + break + + case 'feed': + if (!_.some(feeds, { id: hashPrimaryId})) { + this.loadAllFeeds() + } + break + + case 'phase': + if (!_.some(phases, { id: hashPrimaryId})) { + loadProjectPhasesWithProducts(project.id) + .then(({ value: newPhases }) => { + _.some(newPhases, { id: hashPrimaryId}) && loadPhaseFeed(project.id, hashPrimaryId) + }) + } + break } } } + loadAllFeeds() { + const { canAccessPrivatePosts, loadDashboardFeeds, loadProjectMessages, project } = this.props + + loadDashboardFeeds(project.id) + canAccessPrivatePosts && loadProjectMessages(project.id) + } + + foundCommentInFeeds(feeds, commentId) { + let commentFound = false + + _.forEach(feeds, feed => _.forEach(feed.posts, post => { + if (post.id === commentId) { + commentFound = true + return false + } + })) + + return commentFound + } + onChangeStatus(projectId, status, reason) { const delta = {status} if (reason && status === PROJECT_STATUS_CANCELLED) { @@ -366,6 +398,6 @@ const mapStateToProps = ({ templates, projectState, members, loadUser }) => { const mapDispatchToProps = { updateProject, deleteProject, addProjectAttachment, updateProjectAttachment, loadProjectMessages, discardAttachments, uploadProjectAttachments, loadDashboardFeeds, loadPhaseFeed, changeAttachmentPermission, - removeProjectAttachment } + removeProjectAttachment, loadProjectPhasesWithProducts } -export default connect(mapStateToProps, mapDispatchToProps)(ProjectInfoContainer) +export default connect(mapStateToProps, mapDispatchToProps)(withRouter(ProjectInfoContainer)) From 3f94f43d756aa093b218b0fcdc6890f32c0adcf5 Mon Sep 17 00:00:00 2001 From: sumitdaga Date: Wed, 15 May 2019 23:25:07 +0530 Subject: [PATCH 37/89] fixed layout --- src/components/Feed/Feed.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/Feed/Feed.scss b/src/components/Feed/Feed.scss index ff241f535..b08f263d5 100644 --- a/src/components/Feed/Feed.scss +++ b/src/components/Feed/Feed.scss @@ -111,7 +111,7 @@ margin-top: $base-unit; white-space: nowrap; - > span + span::before { + > span::before { content: " • "; display: inline; margin: 0 2px; From 92d0f51257db888ce83f575c068e12700e0c33e8 Mon Sep 17 00:00:00 2001 From: rashmi73 Date: Thu, 16 May 2019 02:49:31 +0530 Subject: [PATCH 38/89] issue 2936 notification filtering --- .../list/components/Projects/ProjectsGridView.jsx | 5 ++++- src/routes/notifications/helpers/notifications.js | 10 ++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/projects/list/components/Projects/ProjectsGridView.jsx b/src/projects/list/components/Projects/ProjectsGridView.jsx index a5972cd50..0fb557091 100644 --- a/src/projects/list/components/Projects/ProjectsGridView.jsx +++ b/src/projects/list/components/Projects/ProjectsGridView.jsx @@ -6,6 +6,7 @@ import moment from 'moment' import { filterReadNotifications, filterNotificationsByProjectId, + filterPostsMentionNotifications } from '../../../../routes/notifications/helpers/notifications' import ProjectListTimeSortColHeader from './ProjectListTimeSortColHeader' import ProjectListFilterColHeader from './ProjectListFilterColHeader' @@ -83,6 +84,8 @@ const ProjectsGridView = props => { // project notifications const notReadNotifications = filterReadNotifications(notifications) const unreadProjectUpdate = filterNotificationsByProjectId(notReadNotifications, item.id) + const unreadMentions = filterPostsMentionNotifications(unreadProjectUpdate) + const unreadMentionsCount = unreadMentions.length; const recentlyCreated = moment().diff(item.createdAt, 'seconds') < 3600 return (
    @@ -90,7 +93,7 @@ const ProjectsGridView = props => {
    {_.unescape(item.name)} - + { unreadMentionsCount > 0 && }
    diff --git a/src/routes/notifications/helpers/notifications.js b/src/routes/notifications/helpers/notifications.js index 9df2d7407..58f10b989 100644 --- a/src/routes/notifications/helpers/notifications.js +++ b/src/routes/notifications/helpers/notifications.js @@ -240,6 +240,16 @@ export const filterTopicAndPostChangedNotifications = (notifications) => _.filte notification.eventType === EVENT_TYPE.POST.MENTION }) +/** + * Filter notification about post mentions + * @param {Array} notifications list of notifications + * + * @return {Array} notifications list filtered by post mention event type + */ +export const filterPostsMentionNotifications = (notifications) => _.filter(notifications, (notification) => { + return notification.eventType === EVENT_TYPE.POST.MENTION +}) + /** * Filter notifications about the project * From 5cdc3319e8f9587be4a43d6dda5308969c1b4ad6 Mon Sep 17 00:00:00 2001 From: sumitdaga Date: Thu, 16 May 2019 16:25:53 +0530 Subject: [PATCH 39/89] fixes issue 3014 --- .../NotificationsDropdownContainer.jsx | 53 ++++++++++++++----- src/config/constants.js | 3 -- src/routes/notifications/actions/index.js | 19 ------- src/routes/notifications/reducers/index.js | 20 ------- 4 files changed, 39 insertions(+), 56 deletions(-) diff --git a/src/components/NotificationsDropdown/NotificationsDropdownContainer.jsx b/src/components/NotificationsDropdown/NotificationsDropdownContainer.jsx index e11229003..e90b7a4b9 100644 --- a/src/components/NotificationsDropdown/NotificationsDropdownContainer.jsx +++ b/src/components/NotificationsDropdown/NotificationsDropdownContainer.jsx @@ -8,9 +8,8 @@ import { Link } from 'react-router-dom' import { connect } from 'react-redux' import _ from 'lodash' import { TransitionGroup, Transition } from 'react-transition-group' -import { getNotifications, visitNotifications, toggleNotificationSeen, markAllNotificationsRead, - toggleNotificationRead, toggleBundledNotificationRead, viewOlderNotifications, - toggleNotificationsDropdownMobile, toggleNotificationsDropdownWeb, hideOlderNotifications } from '../../routes/notifications/actions' +import { getNotifications, toggleNotificationSeen, markAllNotificationsRead, toggleNotificationRead, + toggleBundledNotificationRead, viewOlderNotifications, hideOlderNotifications } from '../../routes/notifications/actions' import { splitNotificationsBySources, filterReadNotifications, @@ -251,6 +250,19 @@ const NotificationsDropdownContainerView = (props) => { } class NotificationsDropdownContainer extends React.Component { + constructor(props) { + super(props) + this.state = { + lastVisited: new Date(0), + isDropdownWebOpen: false, + isDropdownMobileOpen: false, + } + + this.onToggleNotificationsDropdownWeb = this.onToggleNotificationsDropdownWeb.bind(this) + this.onToggleNotificationsDropdownMobile = this.onToggleNotificationsDropdownMobile.bind(this) + this.onVisitNotifications = this.onVisitNotifications.bind(this) + } + componentDidMount() { this.props.getNotifications() this.autoRefreshNotifications = setInterval(() => this.props.getNotifications(), REFRESH_NOTIFICATIONS_INTERVAL) @@ -259,8 +271,8 @@ class NotificationsDropdownContainer extends React.Component { componentWillUnmount() { clearInterval(this.autoRefreshNotifications) // hide notifications dropdown for mobile, when this component is unmounted - this.props.toggleNotificationsDropdownMobile(false) - this.props.toggleNotificationsDropdownWeb(false) + this.onToggleNotificationsDropdownMobile(false) + this.onToggleNotificationsDropdownWeb(false) this.props.hideOlderNotifications() } @@ -271,22 +283,38 @@ class NotificationsDropdownContainer extends React.Component { if (currentPathname !== nextPathname) { // hide notifications dropdown for mobile, // when this component persist but URL changed - this.props.toggleNotificationsDropdownMobile(false) - this.props.toggleNotificationsDropdownWeb(false) + this.onToggleNotificationsDropdownMobile(false) + this.onToggleNotificationsDropdownWeb(false) this.props.hideOlderNotifications() } } + onToggleNotificationsDropdownWeb(isOpen) { + this.setState({ isDropdownWebOpen: !_.isUndefined(isOpen) ? isOpen : !this.state.isDropdownWebOpen}) + } + + onToggleNotificationsDropdownMobile(isOpen) { + this.setState({ isDropdownMobileOpen: !_.isUndefined(isOpen) ? isOpen : !this.state.isDropdownMobileOpen}) + } + + onVisitNotifications() { + this.setState({ lastVisited: _.maxBy(_.map(this.props.notifications, n => new Date(n.date))) }) + } + render() { const { notifications, ...restProps } = this.props const preRenderedNotifications = preRenderNotifications(notifications) return ( ) } @@ -297,15 +325,12 @@ const mapStateToProps = ({ notifications }) => notifications const mapDispatchToProps = { getNotifications, - visitNotifications, toggleNotificationSeen, markAllNotificationsRead, toggleNotificationRead, toggleBundledNotificationRead, viewOlderNotifications, hideOlderNotifications, - toggleNotificationsDropdownMobile, - toggleNotificationsDropdownWeb } export default connect(mapStateToProps, mapDispatchToProps)(NotificationsDropdownContainer) diff --git a/src/config/constants.js b/src/config/constants.js index 72570c13c..52dd2e76c 100644 --- a/src/config/constants.js +++ b/src/config/constants.js @@ -15,7 +15,6 @@ export const LOAD_ORG_CONFIG_FAILURE = 'LOAD_ORG_CONFIG_FAILURE' export const GET_NOTIFICATIONS_PENDING = 'GET_NOTIFICATIONS_PENDING' export const GET_NOTIFICATIONS_SUCCESS = 'GET_NOTIFICATIONS_SUCCESS' export const GET_NOTIFICATIONS_FAILURE = 'GET_NOTIFICATIONS_FAILURE' -export const VISIT_NOTIFICATIONS = 'VISIT_NOTIFICATIONS' export const SET_NOTIFICATIONS_FILTER_BY = 'SET_NOTIFICATIONS_FILTER_BY' export const MARK_ALL_NOTIFICATIONS_READ = 'MARK_ALL_NOTIFICATIONS_READ' export const TOGGLE_NOTIFICATION_READ = 'TOGGLE_NOTIFICATION_READ' @@ -23,8 +22,6 @@ export const TOGGLE_NOTIFICATION_SEEN = 'TOGGLE_NOTIFICATION_SEEN' export const VIEW_OLDER_NOTIFICATIONS_SUCCESS = 'VIEW_OLDER_NOTIFICATIONS_SUCCESS' export const HIDE_OLDER_NOTIFICATIONS_SUCCESS = 'HIDE_OLDER_NOTIFICATIONS_SUCCESS' export const NOTIFICATIONS_PENDING = 'NOTIFICATIONS_PENDING' -export const TOGGLE_NOTIFICATIONS_DROPDOWN_MOBILE = 'TOGGLE_NOTIFICATIONS_DROPDOWN_MOBILE' -export const TOGGLE_NOTIFICATIONS_DROPDOWN_WEB = 'TOGGLE_NOTIFICATIONS_DROPDOWN_WEB' export const MARK_NOTIFICATIONS_READ = 'MARK_NOTIFICATIONS_READ' // Settings diff --git a/src/routes/notifications/actions/index.js b/src/routes/notifications/actions/index.js index 56216e921..d94a65779 100644 --- a/src/routes/notifications/actions/index.js +++ b/src/routes/notifications/actions/index.js @@ -5,7 +5,6 @@ import { GET_NOTIFICATIONS_PENDING, GET_NOTIFICATIONS_SUCCESS, GET_NOTIFICATIONS_FAILURE, - VISIT_NOTIFICATIONS, TOGGLE_NOTIFICATION_SEEN, SET_NOTIFICATIONS_FILTER_BY, MARK_ALL_NOTIFICATIONS_READ, @@ -14,8 +13,6 @@ import { VIEW_OLDER_NOTIFICATIONS_SUCCESS, HIDE_OLDER_NOTIFICATIONS_SUCCESS, NOTIFICATIONS_PENDING, - TOGGLE_NOTIFICATIONS_DROPDOWN_MOBILE, - TOGGLE_NOTIFICATIONS_DROPDOWN_WEB, } from '../../../config/constants' import notificationsService from '../services/notifications.js' import { @@ -53,12 +50,6 @@ export const getNotifications = () => (dispatch) => { }) } -export const visitNotifications = () => (dispatch) => { - dispatch({ - type: VISIT_NOTIFICATIONS - }) -} - export const setNotificationsFilterBy = (filterBy) => (dispatch) => dispatch({ type: SET_NOTIFICATIONS_FILTER_BY, payload: filterBy @@ -128,16 +119,6 @@ export const hideOlderNotifications = () => (dispatch) => dispatch({ type: HIDE_OLDER_NOTIFICATIONS_SUCCESS }) -export const toggleNotificationsDropdownMobile = (isOpen) => (dispatch) => dispatch({ - type: TOGGLE_NOTIFICATIONS_DROPDOWN_MOBILE, - payload: isOpen -}) - -export const toggleNotificationsDropdownWeb = (isOpen) => (dispatch) => dispatch({ - type: TOGGLE_NOTIFICATIONS_DROPDOWN_WEB, - payload: isOpen -}) - export const markNotificationsReadByCriteria = (criteria) => (dispatch, getState) => { const notifications = getState().notifications.notifications const notificationsToRead = filterReadNotifications(filterNotificationsByCriteria(notifications, criteria)) diff --git a/src/routes/notifications/reducers/index.js b/src/routes/notifications/reducers/index.js index 3f3955294..b2996fcf9 100644 --- a/src/routes/notifications/reducers/index.js +++ b/src/routes/notifications/reducers/index.js @@ -5,7 +5,6 @@ import { GET_NOTIFICATIONS_PENDING, GET_NOTIFICATIONS_SUCCESS, GET_NOTIFICATIONS_FAILURE, - VISIT_NOTIFICATIONS, TOGGLE_NOTIFICATION_SEEN, SET_NOTIFICATIONS_FILTER_BY, MARK_ALL_NOTIFICATIONS_READ, @@ -13,8 +12,6 @@ import { VIEW_OLDER_NOTIFICATIONS_SUCCESS, HIDE_OLDER_NOTIFICATIONS_SUCCESS, NOTIFICATIONS_PENDING, - TOGGLE_NOTIFICATIONS_DROPDOWN_MOBILE, - TOGGLE_NOTIFICATIONS_DROPDOWN_WEB, MARK_NOTIFICATIONS_READ, } from '../../../config/constants' import _ from 'lodash' @@ -28,11 +25,7 @@ const initialState = { notifications: [], // ids of sources that will also show old notifications oldSourceIds: [], - lastVisited: new Date(0), pending: false, - // indicates if notifications dropdown opened for mobile devices - isDropdownMobileOpen: false, - isDropdownWebOpen: false, readers: {}, } @@ -78,9 +71,6 @@ export default (state = initialState, action) => { case GET_NOTIFICATIONS_FAILURE: return { ...state, isLoading: false } - case VISIT_NOTIFICATIONS: - return {...state, lastVisited: _.maxBy(_.map(state.notifications, n => new Date(n.date)))} - case TOGGLE_NOTIFICATION_SEEN: { const ids = action.payload.split('-') const newState = { @@ -146,16 +136,6 @@ export default (state = initialState, action) => { oldSourceIds: [] } - case TOGGLE_NOTIFICATIONS_DROPDOWN_MOBILE: - return {...state, - isDropdownMobileOpen: !_.isUndefined(action.payload) ? action.payload : !state.isDropdownMobileOpen - } - - case TOGGLE_NOTIFICATIONS_DROPDOWN_WEB: - return {...state, - isDropdownWebOpen: !_.isUndefined(action.payload) ? action.payload : !state.isDropdownWebOpen - } - default: return state } From 1b8deca10539ffb50f12f74398132044485a6528 Mon Sep 17 00:00:00 2001 From: sumitdaga Date: Thu, 16 May 2019 16:52:24 +0530 Subject: [PATCH 40/89] fix lastVisited read/unread status --- .../NotificationsDropdownContainer.jsx | 11 +++++++++-- src/config/constants.js | 1 + src/routes/notifications/actions/index.js | 7 +++++++ src/routes/notifications/reducers/index.js | 5 +++++ 4 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/components/NotificationsDropdown/NotificationsDropdownContainer.jsx b/src/components/NotificationsDropdown/NotificationsDropdownContainer.jsx index e90b7a4b9..c086ffc3a 100644 --- a/src/components/NotificationsDropdown/NotificationsDropdownContainer.jsx +++ b/src/components/NotificationsDropdown/NotificationsDropdownContainer.jsx @@ -8,7 +8,7 @@ import { Link } from 'react-router-dom' import { connect } from 'react-redux' import _ from 'lodash' import { TransitionGroup, Transition } from 'react-transition-group' -import { getNotifications, toggleNotificationSeen, markAllNotificationsRead, toggleNotificationRead, +import { getNotifications, toggleNotificationSeen, markAllNotificationsRead, toggleNotificationRead, visitNotifications, toggleBundledNotificationRead, viewOlderNotifications, hideOlderNotifications } from '../../routes/notifications/actions' import { splitNotificationsBySources, @@ -256,6 +256,7 @@ class NotificationsDropdownContainer extends React.Component { lastVisited: new Date(0), isDropdownWebOpen: false, isDropdownMobileOpen: false, + notificationsVisited: false, } this.onToggleNotificationsDropdownWeb = this.onToggleNotificationsDropdownWeb.bind(this) @@ -266,6 +267,7 @@ class NotificationsDropdownContainer extends React.Component { componentDidMount() { this.props.getNotifications() this.autoRefreshNotifications = setInterval(() => this.props.getNotifications(), REFRESH_NOTIFICATIONS_INTERVAL) + this.setState({ lastVisited: this.props.lastVisited }) } componentWillUnmount() { @@ -274,6 +276,7 @@ class NotificationsDropdownContainer extends React.Component { this.onToggleNotificationsDropdownMobile(false) this.onToggleNotificationsDropdownWeb(false) this.props.hideOlderNotifications() + this.state.notificationsVisited && this.props.visitNotifications() } componentWillReceiveProps(nextProps) { @@ -298,7 +301,10 @@ class NotificationsDropdownContainer extends React.Component { } onVisitNotifications() { - this.setState({ lastVisited: _.maxBy(_.map(this.props.notifications, n => new Date(n.date))) }) + this.setState({ + lastVisited: _.maxBy(_.map(this.props.notifications, n => new Date(n.date))), + notificationsVisited: true + }) } render() { @@ -325,6 +331,7 @@ const mapStateToProps = ({ notifications }) => notifications const mapDispatchToProps = { getNotifications, + visitNotifications, toggleNotificationSeen, markAllNotificationsRead, toggleNotificationRead, diff --git a/src/config/constants.js b/src/config/constants.js index 52dd2e76c..1a919b577 100644 --- a/src/config/constants.js +++ b/src/config/constants.js @@ -15,6 +15,7 @@ export const LOAD_ORG_CONFIG_FAILURE = 'LOAD_ORG_CONFIG_FAILURE' export const GET_NOTIFICATIONS_PENDING = 'GET_NOTIFICATIONS_PENDING' export const GET_NOTIFICATIONS_SUCCESS = 'GET_NOTIFICATIONS_SUCCESS' export const GET_NOTIFICATIONS_FAILURE = 'GET_NOTIFICATIONS_FAILURE' +export const VISIT_NOTIFICATIONS = 'VISIT_NOTIFICATIONS' export const SET_NOTIFICATIONS_FILTER_BY = 'SET_NOTIFICATIONS_FILTER_BY' export const MARK_ALL_NOTIFICATIONS_READ = 'MARK_ALL_NOTIFICATIONS_READ' export const TOGGLE_NOTIFICATION_READ = 'TOGGLE_NOTIFICATION_READ' diff --git a/src/routes/notifications/actions/index.js b/src/routes/notifications/actions/index.js index d94a65779..eb23f9dc5 100644 --- a/src/routes/notifications/actions/index.js +++ b/src/routes/notifications/actions/index.js @@ -5,6 +5,7 @@ import { GET_NOTIFICATIONS_PENDING, GET_NOTIFICATIONS_SUCCESS, GET_NOTIFICATIONS_FAILURE, + VISIT_NOTIFICATIONS, TOGGLE_NOTIFICATION_SEEN, SET_NOTIFICATIONS_FILTER_BY, MARK_ALL_NOTIFICATIONS_READ, @@ -50,6 +51,12 @@ export const getNotifications = () => (dispatch) => { }) } +export const visitNotifications = () => (dispatch) => { + dispatch({ + type: VISIT_NOTIFICATIONS + }) +} + export const setNotificationsFilterBy = (filterBy) => (dispatch) => dispatch({ type: SET_NOTIFICATIONS_FILTER_BY, payload: filterBy diff --git a/src/routes/notifications/reducers/index.js b/src/routes/notifications/reducers/index.js index b2996fcf9..b6ebff8a2 100644 --- a/src/routes/notifications/reducers/index.js +++ b/src/routes/notifications/reducers/index.js @@ -5,6 +5,7 @@ import { GET_NOTIFICATIONS_PENDING, GET_NOTIFICATIONS_SUCCESS, GET_NOTIFICATIONS_FAILURE, + VISIT_NOTIFICATIONS, TOGGLE_NOTIFICATION_SEEN, SET_NOTIFICATIONS_FILTER_BY, MARK_ALL_NOTIFICATIONS_READ, @@ -25,6 +26,7 @@ const initialState = { notifications: [], // ids of sources that will also show old notifications oldSourceIds: [], + lastVisited: new Date(0), pending: false, readers: {}, } @@ -71,6 +73,9 @@ export default (state = initialState, action) => { case GET_NOTIFICATIONS_FAILURE: return { ...state, isLoading: false } + case VISIT_NOTIFICATIONS: + return {...state, lastVisited: _.maxBy(_.map(state.notifications, n => new Date(n.date)))} + case TOGGLE_NOTIFICATION_SEEN: { const ids = action.payload.split('-') const newState = { From 3c7663add2777bb470e1274cc341de617bb97aed Mon Sep 17 00:00:00 2001 From: prakashdurlabhji Date: Thu, 16 May 2019 23:01:56 +0530 Subject: [PATCH 41/89] issue 2969 patch --- src/projects/detail/components/timeline/Form/Form.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/projects/detail/components/timeline/Form/Form.jsx b/src/projects/detail/components/timeline/Form/Form.jsx index c36e670bb..4e88cbd02 100644 --- a/src/projects/detail/components/timeline/Form/Form.jsx +++ b/src/projects/detail/components/timeline/Form/Form.jsx @@ -89,7 +89,7 @@ class Form extends React.Component { ) case 'number': return ( - + ) default: return null From 4a0472ddfd7d02b93e81181eb2033ce5587e3a14 Mon Sep 17 00:00:00 2001 From: prakashdurlabhji Date: Fri, 17 May 2019 02:17:46 +0530 Subject: [PATCH 42/89] issue 2991 error msg --- src/components/CoderBot/CoderBot.jsx | 25 ++++++++++++++++++------- src/components/CoderBot/CoderBot.scss | 2 +- src/projects/reducers/projectSearch.js | 2 +- 3 files changed, 20 insertions(+), 9 deletions(-) diff --git a/src/components/CoderBot/CoderBot.jsx b/src/components/CoderBot/CoderBot.jsx index 291039d52..e33e6a607 100644 --- a/src/components/CoderBot/CoderBot.jsx +++ b/src/components/CoderBot/CoderBot.jsx @@ -18,12 +18,18 @@ const getHeading = code => { } } -const getMessage = (code, heading, message) => { - const subject = "Topcoder Connect Issue Report"; +const getMessage = (code, heading, message, error) => { + let subject = "Topcoder Connect Issue Report"; let body = heading || getHeading(code); if (message) { body = `${body}
    ${message}`; } + if (error) { + body = `${body} ${error}`; + } + + subject = encodeURIComponent(subject); + body = encodeURIComponent(body); switch(code) { case 200: return 'Operation performed successfully!!' @@ -32,12 +38,17 @@ const getMessage = (code, heading, message) => { } } -const copyToClipboard = (code, heading, message) => { - const subject = "Topcoder Connect Issue Report"; +const copyToClipboard = (code, heading, message, error) => { + let subject = "Topcoder Connect Issue Report"; let body = heading || getHeading(code); if (message) { body = `${body}
    ${message}`; } + if (error) { + body = `${body} ${error}`; + } + subject = encodeURIComponent(subject); + body = encodeURIComponent(body); const textField = document.createElement('textarea') textField.innerText = `${subject} ${body}` document.body.appendChild(textField) @@ -46,19 +57,19 @@ const copyToClipboard = (code, heading, message) => { textField.remove() } -const CoderBot = ({code, message, heading, children}) => { +const CoderBot = ({code, message, heading, children, error}) => { return (

    { heading || getHeading(code) }

    -

    +

    {children}
    +
    } +
    + ) }) } @@ -46,7 +56,9 @@ class LinksMenuAccordion extends React.Component { LinksMenuAccordion.propTypes = { link: PropTypes.object.isRequired, - renderLink: PropTypes.func.isRequired + renderLink: PropTypes.func.isRequired, + canEdit: PropTypes.bool, + onDelete: PropTypes.func, } export default LinksMenuAccordion diff --git a/src/projects/detail/containers/ProjectInfoContainer.js b/src/projects/detail/containers/ProjectInfoContainer.js index 5ad8f2587..c9d0b93dc 100644 --- a/src/projects/detail/containers/ProjectInfoContainer.js +++ b/src/projects/detail/containers/ProjectInfoContainer.js @@ -42,6 +42,8 @@ class ProjectInfoContainer extends React.Component { this.extractMarkdownLink = this.extractMarkdownLink.bind(this) this.extractHtmlLink = this.extractHtmlLink.bind(this) this.extractRawLink = this.extractRawLink.bind(this) + this.getFileAttachmentName = this.getFileAttachmentName.bind(this) + this.extractAttachmentLinksFromPosts = this.extractAttachmentLinksFromPosts.bind(this) } shouldComponentUpdate(nextProps, nextState) { // eslint-disable-line no-unused-vars @@ -257,6 +259,39 @@ class ProjectInfoContainer extends React.Component { return links } + getFileAttachmentName(originalFileName) { + const arr = originalFileName.split('/') + return arr[arr.length - 1] + } + + extractAttachmentLinksFromPosts(feeds) { + const attachmentLinks = [] + feeds.forEach(feed => { + const attachmentLinksPerFeed = [] + feed.posts.forEach(post => { + post.attachments.forEach(attachment => { + attachmentLinksPerFeed.push({ + title: this.getFileAttachmentName(attachment.originalFileName), + address: attachment.originalFileName, + id: attachment.id, + attachment: true, + deletable: true, + createdBy: attachment.createdBy + }) + }) + }) + + if (attachmentLinksPerFeed.length > 0) { + attachmentLinks.push({ + title: feed.title, + children: attachmentLinksPerFeed + }) + } + }) + + return attachmentLinks + } + render() { const { duration } = this.state const { project, currentMemberRole, isSuperUser, phases, feeds, @@ -366,6 +401,13 @@ class ProjectInfoContainer extends React.Component { } links = links.concat(phaseLinks) + // extract attachment from posts + attachments = [ + ...attachments, + ...this.extractAttachmentLinksFromPosts(feeds), + ...this.extractAttachmentLinksFromPosts(phaseFeeds) + ] + return (
    From 9d9754974de3390f0d61d8790dcf62c4e8abc32c Mon Sep 17 00:00:00 2001 From: Muhamad Fikri Alhawarizmi Date: Tue, 21 May 2019 15:25:44 +0700 Subject: [PATCH 49/89] implement deletion modal --- src/components/LinksMenu/FileLinksMenu.jsx | 6 +-- src/components/LinksMenu/LinksMenu.scss | 4 +- .../LinksMenu/LinksMenuAccordion.jsx | 37 +++++++++++++++++-- .../LinksMenu/LinksMenuAccordion.scss | 6 +++ 4 files changed, 43 insertions(+), 10 deletions(-) diff --git a/src/components/LinksMenu/FileLinksMenu.jsx b/src/components/LinksMenu/FileLinksMenu.jsx index 475f53f0c..46355f5cd 100644 --- a/src/components/LinksMenu/FileLinksMenu.jsx +++ b/src/components/LinksMenu/FileLinksMenu.jsx @@ -134,10 +134,6 @@ const FileLinksMenu = ({ } } - const onDeleteAttachment = (link) => { - console.dir(link) - } - return ( = 0)}, 'panel-links-container')}> @@ -185,7 +181,7 @@ const FileLinksMenu = ({ const handleEditClick = () => onEditIntent(idx) const canEdit = `${link.createdBy}` === `${loggedInUser.userId}` if (Array.isArray(link.children) && link.children.length > 0) { - return () + return () } else if(linkToDelete === idx) { return (
  • diff --git a/src/components/LinksMenu/LinksMenu.scss b/src/components/LinksMenu/LinksMenu.scss index f4fcda911..8a5619765 100644 --- a/src/components/LinksMenu/LinksMenu.scss +++ b/src/components/LinksMenu/LinksMenu.scss @@ -16,7 +16,7 @@ font-size: $tc-label-md; color: $tc-dark-blue-110; line-height: 1; - padding: $base-unit 0 $base-unit $base-unit*4; + padding: $base-unit 20px $base-unit $base-unit*4; display: flex; &.clickable { @@ -56,7 +56,6 @@ display: none; margin-right: 5px; margin-left: auto; - float: right; button { padding: 0; background: transparent; @@ -84,6 +83,7 @@ } .link-buttons{ display: inline-block; + float: right; } } } diff --git a/src/components/LinksMenu/LinksMenuAccordion.jsx b/src/components/LinksMenu/LinksMenuAccordion.jsx index ce7042638..c50189063 100644 --- a/src/components/LinksMenu/LinksMenuAccordion.jsx +++ b/src/components/LinksMenu/LinksMenuAccordion.jsx @@ -3,6 +3,7 @@ import PropTypes from 'prop-types' import IconCarretDownNormal from '../../assets/icons/arrow-6px-carret-down-normal.svg' import './LinksMenuAccordion.scss' import BtnRemove from '../../assets/icons/ui-16px-1_trash-simple.svg' +import DeleteFileLinkModal from './DeleteFileLinkModal' class LinksMenuAccordion extends React.Component { @@ -10,9 +11,13 @@ class LinksMenuAccordion extends React.Component { super(props) this.state = { isOpen: false, + linkToDelete: -1 } this.toggleAccordion = this.toggleAccordion.bind(this) + this.onDeleteConfirm = this.onDeleteConfirm.bind(this) + this.onDeleteCancel = this.onDeleteCancel.bind(this) + this.deleteLink = this.deleteLink.bind(this) } toggleAccordion() { @@ -21,9 +26,25 @@ class LinksMenuAccordion extends React.Component { }) } + onDeleteConfirm() { + console.log('ok') + } + + onDeleteCancel() { + this.setState({ + linkToDelete: -1 + }) + } + + deleteLink(idx) { + this.setState({ + linkToDelete: idx + }) + } + render() { - const { link, renderLink, canEdit, onDelete } = this.props - const { isOpen } = this.state + const { link, renderLink, canEdit } = this.props + const { isOpen, linkToDelete } = this.state const iconClasses = `icon ${isOpen ? 'active' : ''}` return (
    @@ -35,6 +56,17 @@ class LinksMenuAccordion extends React.Component {
      { link.children.map((childLink, i) => { + if (linkToDelete === i) { + return ( +
    • + +
    • + ) + } return (
    • {renderLink(childLink)}
      @@ -58,7 +90,6 @@ LinksMenuAccordion.propTypes = { link: PropTypes.object.isRequired, renderLink: PropTypes.func.isRequired, canEdit: PropTypes.bool, - onDelete: PropTypes.func, } export default LinksMenuAccordion diff --git a/src/components/LinksMenu/LinksMenuAccordion.scss b/src/components/LinksMenu/LinksMenuAccordion.scss index 66f968c41..62c543f8d 100644 --- a/src/components/LinksMenu/LinksMenuAccordion.scss +++ b/src/components/LinksMenu/LinksMenuAccordion.scss @@ -7,8 +7,14 @@ font-size: 13px; } +.link-accordion li .button-group { + display: flex; + align-items: center; +} + .link-accordion-content li { padding-left: 15px; + padding-right: 5px; } .link-accordion-head { From dc9da26f5e6c2ca9aca990a967e09fdaca6beca6 Mon Sep 17 00:00:00 2001 From: sumitdaga Date: Tue, 21 May 2019 18:46:36 +0530 Subject: [PATCH 50/89] fixes project plan tab --- .../detail/components/PhaseFeed/PhaseFeed.jsx | 54 +++++++++++++----- .../detail/components/ProjectStage.jsx | 36 +++++++----- .../detail/components/ProjectStages.jsx | 7 ++- .../detail/containers/FeedContainer.js | 2 +- .../detail/containers/PhaseFeedHOC.jsx | 4 +- .../detail/containers/ProjectInfoContainer.js | 55 +++++++++++++------ .../containers/ProjectPlanContainer.jsx | 36 +++++------- 7 files changed, 123 insertions(+), 71 deletions(-) diff --git a/src/projects/detail/components/PhaseFeed/PhaseFeed.jsx b/src/projects/detail/components/PhaseFeed/PhaseFeed.jsx index 1fbeb0bc7..629a91089 100644 --- a/src/projects/detail/components/PhaseFeed/PhaseFeed.jsx +++ b/src/projects/detail/components/PhaseFeed/PhaseFeed.jsx @@ -5,26 +5,54 @@ */ import React from 'react' import _ from 'lodash' +import { withRouter } from 'react-router-dom' import ScrollableFeed from '../../../../components/Feed/ScrollableFeed' import spinnerWhileLoading from '../../../../components/LoadingSpinner' +import { scrollToHash } from '../../../../components/ScrollToAnchors' import './PhaseFeed.scss' -const PhaseFeedView = (props) => ( -
      - -
      -) +class PhaseFeedView extends React.Component { + constructor(props) { + super(props) + } + + componentWillMount() { + !_.isEmpty(this.props.location.hash) && this.handleUrlHash(this.props) + } + + componentWillReceiveProps(props) { + if (!_.isEmpty(location.hash) && props.location.hash !== this.props.location.hash) { + this.handleUrlHash(props) + } + } + + handleUrlHash(props) { + const hashParts = _.split(location.hash.substring(1), '-') + const phaseId = hashParts[0] === 'phase' ? parseInt(hashParts[1], 10) : null + if (phaseId === props.phaseId) { + setTimeout(() => scrollToHash(props.location.hash), 100) + } + } + + render() { + return ( +
      + +
      + ) + } +} const enhance = spinnerWhileLoading(props => !props.isLoading) -const EnhancedPhaseFeedView = enhance(PhaseFeedView) +const EnhancedPhaseFeedView = enhance(withRouter(PhaseFeedView)) export default EnhancedPhaseFeedView diff --git a/src/projects/detail/components/ProjectStage.jsx b/src/projects/detail/components/ProjectStage.jsx index fea286765..0d7214aa8 100644 --- a/src/projects/detail/components/ProjectStage.jsx +++ b/src/projects/detail/components/ProjectStage.jsx @@ -5,6 +5,7 @@ import React from 'react' import PT from 'prop-types' import _ from 'lodash' import uncontrollable from 'uncontrollable' +import { withRouter } from 'react-router-dom' import { formatNumberWithCommas } from '../../../helpers/format' import { getPhaseActualData } from '../../../helpers/projectHelper' @@ -22,7 +23,6 @@ import ProductTimelineContainer from '../containers/ProductTimelineContainer' import NotificationsReader from '../../../components/NotificationsReader' import { phaseFeedHOC } from '../containers/PhaseFeedHOC' import spinnerWhileLoading from '../../../components/LoadingSpinner' -import { scrollToHash } from '../../../components/ScrollToAnchors' const enhance = spinnerWhileLoading(props => !props.processing) const EnhancedEditProjectForm = enhance(EditProjectForm) @@ -130,23 +130,26 @@ class ProjectStage extends React.Component{ expandProjectPhase(phase.id, tab) } - componentDidUpdate() { - const { phaseState } = this.props - if (_.get(phaseState, 'isExpanded')) { - const scrollTo = window.location.hash ? window.location.hash.substring(1) : null - if (scrollTo) { - scrollToHash(scrollTo) - } + componentWillReceiveProps(props) { + if (!_.isEmpty(location.hash) && props.location.hash !== this.props.location.hash) { + this.handleUrlHash(props) } } - componentWillReceiveProps(nextProps) { - const { feedId, commentId, phase, phaseState, expandProjectPhase } = this.props - const { feed } = nextProps - if (!_.get(phaseState, 'isExpanded') && feed && (feed.id === parseInt(feedId) || feed.postIds.includes(parseInt(commentId)))){ - expandProjectPhase(phase.id, 'posts') - } + componentWillMount() { + !_.isEmpty(this.props.location.hash) && this.handleUrlHash(this.props) + } + + handleUrlHash(props) { + const { expandProjectPhase, phase, location } = props + const hashParts = _.split(location.hash.substring(1), '-') + const phaseId = hashParts[0] === 'phase' ? parseInt(hashParts[1], 10) : null + + if (phaseId && phase.id === phaseId) { + const tab = hashParts[2] + expandProjectPhase(phaseId, tab) + } } render() { @@ -169,6 +172,7 @@ class ProjectStage extends React.Component{ collapseProjectPhase, expandProjectPhase, commentAnchorPrefix, + isLoading, // comes from phaseFeedHOC currentUser, @@ -253,6 +257,8 @@ class ProjectStage extends React.Component{ projectMembers={projectMembers} onSaveMessage={onSaveMessage} commentAnchorPrefix={commentAnchorPrefix} + phaseId={phase.id} + isLoading={isLoading} /> )} @@ -311,7 +317,7 @@ ProjectStage.propTypes = { commentAnchorPrefix: PT.string, } -const ProjectStageUncontrollable = uncontrollable(ProjectStage, { +const ProjectStageUncontrollable = uncontrollable(withRouter(ProjectStage), { activeTab: 'onTabClick', }) diff --git a/src/projects/detail/components/ProjectStages.jsx b/src/projects/detail/components/ProjectStages.jsx index 744a368f9..fc4ea7c04 100644 --- a/src/projects/detail/components/ProjectStages.jsx +++ b/src/projects/detail/components/ProjectStages.jsx @@ -10,6 +10,7 @@ import { withRouter } from 'react-router-dom' import { formatNumberWithCommas } from '../../../helpers/format' import { getPhaseActualData } from '../../../helpers/projectHelper' +import spinnerWhileLoading from '../../../components/LoadingSpinner' import Section from '../components/Section' import ProjectStage from '../components/ProjectStage' import PhaseCardListHeader from '../components/PhaseCardListHeader' @@ -151,6 +152,10 @@ ProjectStages.propTypes = { updateProductAttachment: PT.func.isRequired, removeProductAttachment: PT.func.isRequired, deleteProjectPhase: PT.func.isRequired, + isLoadingPhases: PT.func.isRequired, } -export default withRouter(ProjectStages) +const enhance = spinnerWhileLoading(props => !props.isLoadingPhases) +const EnhancedProjectStages = enhance(ProjectStages) + +export default withRouter(EnhancedProjectStages) diff --git a/src/projects/detail/containers/FeedContainer.js b/src/projects/detail/containers/FeedContainer.js index 0f35f074f..4631e45ed 100644 --- a/src/projects/detail/containers/FeedContainer.js +++ b/src/projects/detail/containers/FeedContainer.js @@ -226,7 +226,7 @@ class FeedView extends React.Component { } const scrollTo = window.location.hash ? window.location.hash.substring(1) : null if (scrollTo) { - setTimeout(() => scrollToHash(scrollTo), 0) + setTimeout(() => scrollToHash(scrollTo), 100) } }) } diff --git a/src/projects/detail/containers/PhaseFeedHOC.jsx b/src/projects/detail/containers/PhaseFeedHOC.jsx index 74e1127d0..d7f957d65 100644 --- a/src/projects/detail/containers/PhaseFeedHOC.jsx +++ b/src/projects/detail/containers/PhaseFeedHOC.jsx @@ -43,9 +43,9 @@ const phaseFeedHOC = (Component) => { } componentWillMount() { - const { isLoading, loadPhaseFeed, phase, project } = this.props + const { isLoading, topic, loadPhaseFeed, phase, project } = this.props - if (!isLoading) { + if (!isLoading && !topic) { loadPhaseFeed(project.id, phase.id) } } diff --git a/src/projects/detail/containers/ProjectInfoContainer.js b/src/projects/detail/containers/ProjectInfoContainer.js index 960aee397..357504743 100644 --- a/src/projects/detail/containers/ProjectInfoContainer.js +++ b/src/projects/detail/containers/ProjectInfoContainer.js @@ -61,7 +61,7 @@ class ProjectInfoContainer extends React.Component { } componentWillMount() { - const { project, isFeedsLoading, feeds, phases, phasesTopics, loadPhaseFeed } = this.props + const { project, isFeedsLoading, feeds, phases, phasesTopics, loadPhaseFeed, location } = this.props this.setDuration(project) @@ -78,39 +78,60 @@ class ProjectInfoContainer extends React.Component { loadPhaseFeed(project.id, phase.id) } }) + + // handle url hash + if (!_.isEmpty(location.hash)) { + this.handleUrlHash(this.props) + } } componentWillReceiveProps(props) { - const { project, phases, feeds, loadProjectPhasesWithProducts, loadPhaseFeed, location } = props + const { project, location } = props this.setDuration(project) if (!_.isEmpty(location.hash) && location.hash !== this.props.location.hash) { - const hashParts = _.split(location.hash.substring(1), '-') - const hashPrimaryId = parseInt(hashParts[1], 10) + this.handleUrlHash(props) + } + } - switch (hashParts[0]) { - case 'comment': - if (!this.foundCommentInFeeds(feeds, hashPrimaryId)) { - this.loadAllFeeds() - } - break + // this is just to see if the comment/feed/post/phase the url hash is attempting to scroll to is loaded or not + // if its not loaded then we load the appropriate item + handleUrlHash(props) { + const { project, isFeedsLoading, phases, phasesTopics, feeds, loadProjectPhasesWithProducts, loadPhaseFeed, location } = props + const hashParts = _.split(location.hash.substring(1), '-') + const hashPrimaryId = parseInt(hashParts[1], 10) + + switch (hashParts[0]) { + case 'comment': { + if (!isFeedsLoading && !this.foundCommentInFeeds(feeds, hashPrimaryId)) { + this.loadAllFeeds() + } + break + } - case 'feed': - if (!_.some(feeds, { id: hashPrimaryId})) { - this.loadAllFeeds() - } - break + case 'feed': { + if (!isFeedsLoading && !_.some(feeds, { id: hashPrimaryId})) { + this.loadAllFeeds() + } + break + } + + case 'phase': { + const postId = parseInt(hashParts[3], 10) - case 'phase': + if (phases && phasesTopics) { if (!_.some(phases, { id: hashPrimaryId})) { loadProjectPhasesWithProducts(project.id) .then(({ value: newPhases }) => { _.some(newPhases, { id: hashPrimaryId}) && loadPhaseFeed(project.id, hashPrimaryId) }) + } else if(postId && !(phasesTopics[hashPrimaryId].topic && phasesTopics[hashPrimaryId].topic.postIds.includes(postId))) { + loadPhaseFeed(project.id, hashPrimaryId) } - break } + break + } } } diff --git a/src/projects/detail/containers/ProjectPlanContainer.jsx b/src/projects/detail/containers/ProjectPlanContainer.jsx index 460530cbd..1ea96fe6d 100644 --- a/src/projects/detail/containers/ProjectPlanContainer.jsx +++ b/src/projects/detail/containers/ProjectPlanContainer.jsx @@ -7,6 +7,7 @@ import React from 'react' import PT from 'prop-types' import { connect } from 'react-redux' +import { withRouter } from 'react-router-dom' import _ from 'lodash' import { @@ -63,30 +64,20 @@ class ProjectPlanContainer extends React.Component { } componentDidMount() { - const { expandProjectPhase } = this.props - const scrollTo = window.location.hash ? window.location.hash.substring(1) : null - if (scrollTo) { - const hashParts = _.split(scrollTo, '-') - const phaseId = hashParts[0] === 'phase' ? parseInt(hashParts[1], 10) : null - if (phaseId) { - let tab = hashParts[2] - tab = tab === scrollTo ? 'timeline' : tab - // we just open tab, while smooth scrolling has to be caused by URL hash - expandProjectPhase(phaseId, tab) - } - } else { - // if the user is a customer and its not a direct link to a particular phase - // then by default expand all phases which are active - if (this.props.isCustomerUser) { - _.forEach(this.props.phases, phase => { - if (phase.status === PHASE_STATUS_ACTIVE) { - expandProjectPhase(phase.id) - } - }) - } + const { expandProjectPhase, location } = this.props + + // if the user is a customer and its not a direct link to a particular phase + // then by default expand all phases which are active + if (_.isEmpty(location.hash) && this.props.isCustomerUser) { + _.forEach(this.props.phases, phase => { + if (phase.status === PHASE_STATUS_ACTIVE) { + expandProjectPhase(phase.id) + } + }) } } + componentWillUnmount() { const { collapseAllProjectPhases } = this.props @@ -208,6 +199,7 @@ const mapStateToProps = ({ projectState, projectTopics, phasesTopics, templates isFeedsLoading: projectTopics.isLoading, phasesTopics, phasesStates: projectState.phasesStates, + isLoadingPhases: projectState.isLoadingPhases, } } @@ -224,4 +216,4 @@ const mapDispatchToProps = { collapseAllProjectPhases, } -export default connect(mapStateToProps, mapDispatchToProps)(ProjectPlanContainer) +export default connect(mapStateToProps, mapDispatchToProps)(withRouter(ProjectPlanContainer)) From 46ec7308322f9506728a3512f150401d5296519b Mon Sep 17 00:00:00 2001 From: sumitdaga Date: Tue, 21 May 2019 19:27:18 +0530 Subject: [PATCH 51/89] removed check in phaseFeedHOC --- src/projects/detail/containers/PhaseFeedHOC.jsx | 4 ++-- src/projects/detail/containers/ProjectPlanContainer.jsx | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/projects/detail/containers/PhaseFeedHOC.jsx b/src/projects/detail/containers/PhaseFeedHOC.jsx index d7f957d65..74e1127d0 100644 --- a/src/projects/detail/containers/PhaseFeedHOC.jsx +++ b/src/projects/detail/containers/PhaseFeedHOC.jsx @@ -43,9 +43,9 @@ const phaseFeedHOC = (Component) => { } componentWillMount() { - const { isLoading, topic, loadPhaseFeed, phase, project } = this.props + const { isLoading, loadPhaseFeed, phase, project } = this.props - if (!isLoading && !topic) { + if (!isLoading) { loadPhaseFeed(project.id, phase.id) } } diff --git a/src/projects/detail/containers/ProjectPlanContainer.jsx b/src/projects/detail/containers/ProjectPlanContainer.jsx index 1ea96fe6d..2d069ce26 100644 --- a/src/projects/detail/containers/ProjectPlanContainer.jsx +++ b/src/projects/detail/containers/ProjectPlanContainer.jsx @@ -77,7 +77,6 @@ class ProjectPlanContainer extends React.Component { } } - componentWillUnmount() { const { collapseAllProjectPhases } = this.props From 2b00d18608a8a9fb98b0c6d93dcfa8c3f7e06c02 Mon Sep 17 00:00:00 2001 From: Muhamad Fikri Alhawarizmi Date: Wed, 22 May 2019 09:17:14 +0700 Subject: [PATCH 52/89] fix order, name, and link address of post attachments --- src/projects/detail/containers/ProjectInfoContainer.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/projects/detail/containers/ProjectInfoContainer.js b/src/projects/detail/containers/ProjectInfoContainer.js index c9d0b93dc..c26b1c5d6 100644 --- a/src/projects/detail/containers/ProjectInfoContainer.js +++ b/src/projects/detail/containers/ProjectInfoContainer.js @@ -260,8 +260,7 @@ class ProjectInfoContainer extends React.Component { } getFileAttachmentName(originalFileName) { - const arr = originalFileName.split('/') - return arr[arr.length - 1] + return /^.*.\/[^_]+_(.*.)$/.exec(originalFileName)[1] } extractAttachmentLinksFromPosts(feeds) { @@ -270,9 +269,9 @@ class ProjectInfoContainer extends React.Component { const attachmentLinksPerFeed = [] feed.posts.forEach(post => { post.attachments.forEach(attachment => { - attachmentLinksPerFeed.push({ + attachmentLinksPerFeed.unshift({ title: this.getFileAttachmentName(attachment.originalFileName), - address: attachment.originalFileName, + address: `/projects/messages/attachments/${attachment.id}`, id: attachment.id, attachment: true, deletable: true, From 480fbea76ace8fdd8536dedf81961799793f7db3 Mon Sep 17 00:00:00 2001 From: Muhamad Fikri Alhawarizmi Date: Wed, 22 May 2019 11:23:23 +0700 Subject: [PATCH 53/89] implement delete topic attachments --- src/components/LinksMenu/FileLinksMenu.jsx | 11 ++++- .../LinksMenu/LinksMenuAccordion.jsx | 11 ++++- .../detail/containers/ProjectInfoContainer.js | 40 +++++++++++++++++-- 3 files changed, 56 insertions(+), 6 deletions(-) diff --git a/src/components/LinksMenu/FileLinksMenu.jsx b/src/components/LinksMenu/FileLinksMenu.jsx index 46355f5cd..cf637a2ac 100644 --- a/src/components/LinksMenu/FileLinksMenu.jsx +++ b/src/components/LinksMenu/FileLinksMenu.jsx @@ -51,6 +51,7 @@ const FileLinksMenu = ({ pendingAttachments, projectMembers, loggedInUser, + onDeletePostAttachment }) => { const fileUploadClient = filepicker.init(FILE_PICKER_API_KEY, { @@ -181,7 +182,14 @@ const FileLinksMenu = ({ const handleEditClick = () => onEditIntent(idx) const canEdit = `${link.createdBy}` === `${loggedInUser.userId}` if (Array.isArray(link.children) && link.children.length > 0) { - return () + return ( + ) } else if(linkToDelete === idx) { return (
    • @@ -273,6 +281,7 @@ FileLinksMenu.propTypes = { onDelete: PropTypes.func, title: PropTypes.string, loggedInUser: PropTypes.object.isRequired, + onDeletePostAttachment: PropTypes.func, } FileLinksMenu.defaultProps = { diff --git a/src/components/LinksMenu/LinksMenuAccordion.jsx b/src/components/LinksMenu/LinksMenuAccordion.jsx index c50189063..d62f2b040 100644 --- a/src/components/LinksMenu/LinksMenuAccordion.jsx +++ b/src/components/LinksMenu/LinksMenuAccordion.jsx @@ -27,7 +27,13 @@ class LinksMenuAccordion extends React.Component { } onDeleteConfirm() { - console.log('ok') + const link = this.props.link.children[this.state.linkToDelete] + if (link) { + this.props.onDeletePostAttachment({ topicId: link.topicId, postId: link.postId, attachmentId: link.attachmentId, topicTag: link.topicTag }) + .then(() => { + this.onDeleteCancel() + }) + } } onDeleteCancel() { @@ -71,7 +77,7 @@ class LinksMenuAccordion extends React.Component { {renderLink(childLink)}
      {canEdit && childLink.deletable &&
      -
      } @@ -90,6 +96,7 @@ LinksMenuAccordion.propTypes = { link: PropTypes.object.isRequired, renderLink: PropTypes.func.isRequired, canEdit: PropTypes.bool, + onDeletePostAttachment: PropTypes.func } export default LinksMenuAccordion diff --git a/src/projects/detail/containers/ProjectInfoContainer.js b/src/projects/detail/containers/ProjectInfoContainer.js index c26b1c5d6..a196280b9 100644 --- a/src/projects/detail/containers/ProjectInfoContainer.js +++ b/src/projects/detail/containers/ProjectInfoContainer.js @@ -20,6 +20,7 @@ import { addProjectAttachment, updateProjectAttachment, uploadProjectAttachments, discardAttachments, changeAttachmentPermission, removeProjectAttachment } from '../../actions/projectAttachment' +import { saveFeedComment } from '../../actions/projectTopics' class ProjectInfoContainer extends React.Component { @@ -44,6 +45,7 @@ class ProjectInfoContainer extends React.Component { this.extractRawLink = this.extractRawLink.bind(this) this.getFileAttachmentName = this.getFileAttachmentName.bind(this) this.extractAttachmentLinksFromPosts = this.extractAttachmentLinksFromPosts.bind(this) + this.deletePostAttachment = this.deletePostAttachment.bind(this) } shouldComponentUpdate(nextProps, nextState) { // eslint-disable-line no-unused-vars @@ -272,10 +274,13 @@ class ProjectInfoContainer extends React.Component { attachmentLinksPerFeed.unshift({ title: this.getFileAttachmentName(attachment.originalFileName), address: `/projects/messages/attachments/${attachment.id}`, - id: attachment.id, + attachmentId: attachment.id, attachment: true, deletable: true, - createdBy: attachment.createdBy + createdBy: attachment.createdBy, + postId: post.id, + topicId: feed.id, + topicTag: feed.tag }) }) }) @@ -291,6 +296,34 @@ class ProjectInfoContainer extends React.Component { return attachmentLinks } + deletePostAttachment({ topicId, postId, attachmentId, topicTag }) { + const { feeds, phasesTopics, saveFeedComment } = this.props + + let feed + if (topicTag === 'PRIMARY') { + feed = feeds.find(feed => feed.id === topicId) + } else { + const phaseFeeds = Object.keys(phasesTopics) + .map(key => phasesTopics[key].topic) + feed = phaseFeeds.find(feed => feed.id && feed.id === topicId) + } + if (feed) { + const post = feed.posts.find(post => post.id === postId) + if (post) { + const attachments = post.attachments + .filter(attachment => attachment.id !== attachmentId) + const attachmentIds = attachments.map(attachment => attachment.id) + return saveFeedComment(topicId, feed.tag, { + id: postId, + content: post.rawContent, + attachmentIds + }).then(() => { + post.attachments = attachments + }) + } + } + } + render() { const { duration } = this.state const { project, currentMemberRole, isSuperUser, phases, feeds, @@ -452,6 +485,7 @@ class ProjectInfoContainer extends React.Component { moreText="view all files" noDots attachmentsStorePath={attachmentsStorePath} + onDeletePostAttachment={this.deletePostAttachment} /> } {!hideLinks && @@ -505,6 +539,6 @@ const mapStateToProps = ({ templates, projectState, members, loadUser }) => { const mapDispatchToProps = { updateProject, deleteProject, addProjectAttachment, updateProjectAttachment, loadProjectMessages, discardAttachments, uploadProjectAttachments, loadDashboardFeeds, loadPhaseFeed, changeAttachmentPermission, - removeProjectAttachment } + removeProjectAttachment, saveFeedComment } export default connect(mapStateToProps, mapDispatchToProps)(ProjectInfoContainer) From 99e9ab8197bdb194d347742151d824887ae5efed Mon Sep 17 00:00:00 2001 From: Muhamad Fikri Alhawarizmi Date: Wed, 22 May 2019 15:33:47 +0700 Subject: [PATCH 54/89] fix post attachment deletion bugs --- src/components/LinksMenu/FileLinksMenu.jsx | 2 +- .../LinksMenu/LinksMenuAccordion.jsx | 18 +++++++++++------- .../detail/containers/ProjectInfoContainer.js | 5 ++--- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/src/components/LinksMenu/FileLinksMenu.jsx b/src/components/LinksMenu/FileLinksMenu.jsx index cf637a2ac..7ff5313fc 100644 --- a/src/components/LinksMenu/FileLinksMenu.jsx +++ b/src/components/LinksMenu/FileLinksMenu.jsx @@ -187,8 +187,8 @@ const FileLinksMenu = ({ key={`link-menu-accordion-${idx}`} link={ link } renderLink={ renderLink } - canEdit={canEdit} onDeletePostAttachment={onDeletePostAttachment} + loggedInUser={loggedInUser} />) } else if(linkToDelete === idx) { return ( diff --git a/src/components/LinksMenu/LinksMenuAccordion.jsx b/src/components/LinksMenu/LinksMenuAccordion.jsx index d62f2b040..4e40376c0 100644 --- a/src/components/LinksMenu/LinksMenuAccordion.jsx +++ b/src/components/LinksMenu/LinksMenuAccordion.jsx @@ -18,6 +18,7 @@ class LinksMenuAccordion extends React.Component { this.onDeleteConfirm = this.onDeleteConfirm.bind(this) this.onDeleteCancel = this.onDeleteCancel.bind(this) this.deleteLink = this.deleteLink.bind(this) + this.hasAccess = this.hasAccess.bind(this) } toggleAccordion() { @@ -30,9 +31,7 @@ class LinksMenuAccordion extends React.Component { const link = this.props.link.children[this.state.linkToDelete] if (link) { this.props.onDeletePostAttachment({ topicId: link.topicId, postId: link.postId, attachmentId: link.attachmentId, topicTag: link.topicTag }) - .then(() => { - this.onDeleteCancel() - }) + this.onDeleteCancel() } } @@ -48,8 +47,13 @@ class LinksMenuAccordion extends React.Component { }) } + hasAccess(createdBy) { + const { loggedInUser } = this.props + return Number.parseInt(createdBy) === loggedInUser.userId + } + render() { - const { link, renderLink, canEdit } = this.props + const { link, renderLink } = this.props const { isOpen, linkToDelete } = this.state const iconClasses = `icon ${isOpen ? 'active' : ''}` return ( @@ -76,7 +80,7 @@ class LinksMenuAccordion extends React.Component { return (
    • {renderLink(childLink)}
      - {canEdit && childLink.deletable &&
      + {this.hasAccess(childLink.createdBy) && childLink.deletable &&
      @@ -95,8 +99,8 @@ class LinksMenuAccordion extends React.Component { LinksMenuAccordion.propTypes = { link: PropTypes.object.isRequired, renderLink: PropTypes.func.isRequired, - canEdit: PropTypes.bool, - onDeletePostAttachment: PropTypes.func + onDeletePostAttachment: PropTypes.func, + loggedInUser: PropTypes.object } export default LinksMenuAccordion diff --git a/src/projects/detail/containers/ProjectInfoContainer.js b/src/projects/detail/containers/ProjectInfoContainer.js index a196280b9..168de6d5f 100644 --- a/src/projects/detail/containers/ProjectInfoContainer.js +++ b/src/projects/detail/containers/ProjectInfoContainer.js @@ -313,12 +313,10 @@ class ProjectInfoContainer extends React.Component { const attachments = post.attachments .filter(attachment => attachment.id !== attachmentId) const attachmentIds = attachments.map(attachment => attachment.id) - return saveFeedComment(topicId, feed.tag, { + saveFeedComment(topicId, feed.tag, { id: postId, content: post.rawContent, attachmentIds - }).then(() => { - post.attachments = attachments }) } } @@ -439,6 +437,7 @@ class ProjectInfoContainer extends React.Component { ...this.extractAttachmentLinksFromPosts(feeds), ...this.extractAttachmentLinksFromPosts(phaseFeeds) ] + console.dir(attachments) return (
      From d322a4e4a528eb8a5afc2612e12b55e2b5bab7a8 Mon Sep 17 00:00:00 2001 From: sumitdaga Date: Wed, 22 May 2019 21:19:52 +0530 Subject: [PATCH 55/89] improved code and fixed couple of issues in project plan tab --- .../detail/components/PhaseFeed/PhaseFeed.jsx | 12 +++++++----- src/projects/detail/components/ProjectStage.jsx | 14 ++++++++------ src/projects/detail/containers/FeedContainer.js | 7 ++----- src/projects/detail/containers/PhaseFeedHOC.jsx | 4 ++-- 4 files changed, 19 insertions(+), 18 deletions(-) diff --git a/src/projects/detail/components/PhaseFeed/PhaseFeed.jsx b/src/projects/detail/components/PhaseFeed/PhaseFeed.jsx index 629a91089..b244d5772 100644 --- a/src/projects/detail/components/PhaseFeed/PhaseFeed.jsx +++ b/src/projects/detail/components/PhaseFeed/PhaseFeed.jsx @@ -18,21 +18,23 @@ class PhaseFeedView extends React.Component { super(props) } - componentWillMount() { + componentDidMount() { !_.isEmpty(this.props.location.hash) && this.handleUrlHash(this.props) } - componentWillReceiveProps(props) { - if (!_.isEmpty(location.hash) && props.location.hash !== this.props.location.hash) { - this.handleUrlHash(props) + componentDidUpdate(prevProps) { + const { location } = this.props + if (!_.isEmpty(location.hash) && location.hash !== prevProps.location.hash) { + this.handleUrlHash(this.props) } } + // when the phase feed is actually loaded/rendered scroll to the appropriate post depending on url hash handleUrlHash(props) { const hashParts = _.split(location.hash.substring(1), '-') const phaseId = hashParts[0] === 'phase' ? parseInt(hashParts[1], 10) : null if (phaseId === props.phaseId) { - setTimeout(() => scrollToHash(props.location.hash), 100) + scrollToHash(props.location.hash) } } diff --git a/src/projects/detail/components/ProjectStage.jsx b/src/projects/detail/components/ProjectStage.jsx index 0d7214aa8..78a62c576 100644 --- a/src/projects/detail/components/ProjectStage.jsx +++ b/src/projects/detail/components/ProjectStage.jsx @@ -130,16 +130,18 @@ class ProjectStage extends React.Component{ expandProjectPhase(phase.id, tab) } - componentWillReceiveProps(props) { - if (!_.isEmpty(location.hash) && props.location.hash !== this.props.location.hash) { - this.handleUrlHash(props) - } + componentDidMount() { + !_.isEmpty(this.props.location.hash) && this.handleUrlHash(this.props) } - componentWillMount() { - !_.isEmpty(this.props.location.hash) && this.handleUrlHash(this.props) + componentDidUpdate(prevProps) { + const { location } = this.props + if (!_.isEmpty(location.hash) && location.hash !== prevProps.location.hash) { + this.handleUrlHash(this.props) + } } + // expand a phase if necessary depending on the url hash handleUrlHash(props) { const { expandProjectPhase, phase, location } = props diff --git a/src/projects/detail/containers/FeedContainer.js b/src/projects/detail/containers/FeedContainer.js index 4631e45ed..156dfbd53 100644 --- a/src/projects/detail/containers/FeedContainer.js +++ b/src/projects/detail/containers/FeedContainer.js @@ -79,9 +79,6 @@ class FeedView extends React.Component { componentDidMount() { window.addEventListener('beforeunload', this.onLeave) - } - - componentWillMount() { this.init(this.props) } @@ -201,7 +198,7 @@ class FeedView extends React.Component { return item } - init(props, prevProps) { + init(props, prevProps) {console.log('infinite') const { feeds } = props let resetNewPost = false if (prevProps) { @@ -226,7 +223,7 @@ class FeedView extends React.Component { } const scrollTo = window.location.hash ? window.location.hash.substring(1) : null if (scrollTo) { - setTimeout(() => scrollToHash(scrollTo), 100) + scrollToHash(scrollTo) } }) } diff --git a/src/projects/detail/containers/PhaseFeedHOC.jsx b/src/projects/detail/containers/PhaseFeedHOC.jsx index 74e1127d0..d7f957d65 100644 --- a/src/projects/detail/containers/PhaseFeedHOC.jsx +++ b/src/projects/detail/containers/PhaseFeedHOC.jsx @@ -43,9 +43,9 @@ const phaseFeedHOC = (Component) => { } componentWillMount() { - const { isLoading, loadPhaseFeed, phase, project } = this.props + const { isLoading, topic, loadPhaseFeed, phase, project } = this.props - if (!isLoading) { + if (!isLoading && !topic) { loadPhaseFeed(project.id, phase.id) } } From b84c5cabdff5723ba2e74b5090e5631e2d8eea38 Mon Sep 17 00:00:00 2001 From: sumitdaga Date: Thu, 23 May 2019 12:51:53 +0530 Subject: [PATCH 56/89] fixed specification tab auto scrolling --- src/components/ScrollToAnchors.jsx | 2 +- .../detail/components/EditProjectForm/EditProjectForm.jsx | 7 +++++-- src/projects/detail/components/ProjectStage.jsx | 1 + src/projects/detail/components/SpecSection.jsx | 1 + src/projects/detail/containers/FeedContainer.js | 2 +- 5 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/components/ScrollToAnchors.jsx b/src/components/ScrollToAnchors.jsx index 19058226c..90ba4db22 100644 --- a/src/components/ScrollToAnchors.jsx +++ b/src/components/ScrollToAnchors.jsx @@ -43,7 +43,7 @@ export function scrollToAnchors(Component) { componentDidMount() { const { hash } = window.location - if (hash !== '') { + if (!this.props.disableAutoScrolling && hash !== '') { // Push onto callback queue so it runs after the DOM is updated, // this is required when navigating from a different page so that // the element is rendered on the page before trying to getElementById. diff --git a/src/projects/detail/components/EditProjectForm/EditProjectForm.jsx b/src/projects/detail/components/EditProjectForm/EditProjectForm.jsx index 9f6bb7eeb..584045f7b 100644 --- a/src/projects/detail/components/EditProjectForm/EditProjectForm.jsx +++ b/src/projects/detail/components/EditProjectForm/EditProjectForm.jsx @@ -268,7 +268,7 @@ class EditProjectForm extends Component { render() { - const { isEdittable, showHidden, productTemplates, productCategories } = this.props + const { isEdittable, showHidden, productTemplates, productCategories, disableAutoScrolling } = this.props const { template } = this.state const { project, dirtyProject } = this.state const onLeaveMessage = this.onLeave() || '' @@ -287,6 +287,7 @@ class EditProjectForm extends Component { sectionNumber={idx + 1} resetFeatures={this.onFeaturesSaveAttachedClick} showFeaturesDialog={this.showFeaturesDialog} + disableAutoScrolling={disableAutoScrolling} // TODO we shoudl not update the props (section is coming from props) validate={(isInvalid) => section.isInvalid = isInvalid} showHidden={showHidden} @@ -353,7 +354,8 @@ class EditProjectForm extends Component { } EditProjectForm.defaultProps = { - shouldUpdateTemplate: false + shouldUpdateTemplate: false, + disableAutoScrolling: false, } EditProjectForm.propTypes = { @@ -371,6 +373,7 @@ EditProjectForm.propTypes = { updateAttachment: PropTypes.func.isRequired, removeAttachment: PropTypes.func.isRequired, shouldUpdateTemplate: PropTypes.bool, + disableAutoScrolling: PropTypes.bool, } export default EditProjectForm diff --git a/src/projects/detail/components/ProjectStage.jsx b/src/projects/detail/components/ProjectStage.jsx index 78a62c576..4985afe91 100644 --- a/src/projects/detail/components/ProjectStage.jsx +++ b/src/projects/detail/components/ProjectStage.jsx @@ -286,6 +286,7 @@ class ProjectStage extends React.Component{ removeAttachment={this.removeProductAttachment} attachmentsStorePath={attachmentsStorePath} canManageAttachments={!!currentMemberRole} + disableAutoScrolling={true} />
      } diff --git a/src/projects/detail/components/SpecSection.jsx b/src/projects/detail/components/SpecSection.jsx index da9efb25e..ed278e4b5 100644 --- a/src/projects/detail/components/SpecSection.jsx +++ b/src/projects/detail/components/SpecSection.jsx @@ -425,6 +425,7 @@ SpecSection.propTypes = { updateAttachment: PropTypes.func, removeAttachment: PropTypes.func, productCategories: PropTypes.array.isRequired, + disableAutoScrolling: PropTypes.bool, } export default scrollToAnchors(SpecSection) diff --git a/src/projects/detail/containers/FeedContainer.js b/src/projects/detail/containers/FeedContainer.js index 156dfbd53..ec34c9b0b 100644 --- a/src/projects/detail/containers/FeedContainer.js +++ b/src/projects/detail/containers/FeedContainer.js @@ -198,7 +198,7 @@ class FeedView extends React.Component { return item } - init(props, prevProps) {console.log('infinite') + init(props, prevProps) { const { feeds } = props let resetNewPost = false if (prevProps) { From 78e67b889ae09ac81649ae3c35ed194722cc2d4d Mon Sep 17 00:00:00 2001 From: sumitdaga Date: Thu, 23 May 2019 12:55:43 +0530 Subject: [PATCH 57/89] lint fix --- src/projects/detail/components/ProjectStage.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/projects/detail/components/ProjectStage.jsx b/src/projects/detail/components/ProjectStage.jsx index 4985afe91..96df9bfb3 100644 --- a/src/projects/detail/components/ProjectStage.jsx +++ b/src/projects/detail/components/ProjectStage.jsx @@ -286,7 +286,7 @@ class ProjectStage extends React.Component{ removeAttachment={this.removeProductAttachment} attachmentsStorePath={attachmentsStorePath} canManageAttachments={!!currentMemberRole} - disableAutoScrolling={true} + disableAutoScrolling />
      } From af91c328503328b08d7d67090b92dc64a9a850ef Mon Sep 17 00:00:00 2001 From: sumitdaga Date: Thu, 23 May 2019 19:53:54 +0530 Subject: [PATCH 58/89] smooth scrolling fixed --- src/projects/detail/components/PhaseFeed/PhaseFeed.jsx | 2 +- src/projects/detail/components/ProjectStages.jsx | 2 +- src/projects/detail/containers/FeedContainer.js | 2 +- src/projects/detail/containers/ProjectInfoContainer.js | 1 - src/projects/detail/containers/ProjectPlanContainer.jsx | 3 ++- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/projects/detail/components/PhaseFeed/PhaseFeed.jsx b/src/projects/detail/components/PhaseFeed/PhaseFeed.jsx index b244d5772..dc69db229 100644 --- a/src/projects/detail/components/PhaseFeed/PhaseFeed.jsx +++ b/src/projects/detail/components/PhaseFeed/PhaseFeed.jsx @@ -34,7 +34,7 @@ class PhaseFeedView extends React.Component { const hashParts = _.split(location.hash.substring(1), '-') const phaseId = hashParts[0] === 'phase' ? parseInt(hashParts[1], 10) : null if (phaseId === props.phaseId) { - scrollToHash(props.location.hash) + setTimeout(() => scrollToHash(props.location.hash), 100) } } diff --git a/src/projects/detail/components/ProjectStages.jsx b/src/projects/detail/components/ProjectStages.jsx index fc4ea7c04..6c4005df2 100644 --- a/src/projects/detail/components/ProjectStages.jsx +++ b/src/projects/detail/components/ProjectStages.jsx @@ -152,7 +152,7 @@ ProjectStages.propTypes = { updateProductAttachment: PT.func.isRequired, removeProductAttachment: PT.func.isRequired, deleteProjectPhase: PT.func.isRequired, - isLoadingPhases: PT.func.isRequired, + isLoadingPhases: PT.bool.isRequired, } const enhance = spinnerWhileLoading(props => !props.isLoadingPhases) diff --git a/src/projects/detail/containers/FeedContainer.js b/src/projects/detail/containers/FeedContainer.js index 0c0250c16..124d462c5 100644 --- a/src/projects/detail/containers/FeedContainer.js +++ b/src/projects/detail/containers/FeedContainer.js @@ -223,7 +223,7 @@ class FeedView extends React.Component { } const scrollTo = window.location.hash ? window.location.hash.substring(1) : null if (scrollTo) { - scrollToHash(scrollTo) + setTimeout(() => scrollToHash(scrollTo), 100) } }) } diff --git a/src/projects/detail/containers/ProjectInfoContainer.js b/src/projects/detail/containers/ProjectInfoContainer.js index 69bb04a36..92e26d96e 100644 --- a/src/projects/detail/containers/ProjectInfoContainer.js +++ b/src/projects/detail/containers/ProjectInfoContainer.js @@ -507,7 +507,6 @@ class ProjectInfoContainer extends React.Component { ...this.extractAttachmentLinksFromPosts(feeds), ...this.extractAttachmentLinksFromPosts(phaseFeeds) ] - console.dir(attachments) return (
      diff --git a/src/projects/detail/containers/ProjectPlanContainer.jsx b/src/projects/detail/containers/ProjectPlanContainer.jsx index 2d069ce26..cc5b550bd 100644 --- a/src/projects/detail/containers/ProjectPlanContainer.jsx +++ b/src/projects/detail/containers/ProjectPlanContainer.jsx @@ -96,6 +96,7 @@ class ProjectPlanContainer extends React.Component { productsTimelines, phasesTopics, isProcessing, + isLoadingPhases } = this.props // manager user sees all phases @@ -161,7 +162,7 @@ class ProjectPlanContainer extends React.Component { ) : ( )} - {isProjectLive && checkPermission(PERMISSIONS.EDIT_PROJECT_PLAN, project, phases) && (
      + {isProjectLive && checkPermission(PERMISSIONS.EDIT_PROJECT_PLAN, project, phases) && !isLoadingPhases && (
      Add New Phase
      )} From 197b5f54fdfd0999daa63c0fa01fba466ab165d9 Mon Sep 17 00:00:00 2001 From: sumitdaga Date: Fri, 24 May 2019 13:56:23 +0530 Subject: [PATCH 59/89] fix timeline on new phase --- src/projects/actions/projectDashboard.js | 55 ++---------------- src/projects/actions/projectPlan.js | 58 +++++++++++++++++++ .../detail/containers/ProjectInfoContainer.js | 14 ++--- 3 files changed, 69 insertions(+), 58 deletions(-) create mode 100644 src/projects/actions/projectPlan.js diff --git a/src/projects/actions/projectDashboard.js b/src/projects/actions/projectDashboard.js index d20494ed1..131e3706b 100644 --- a/src/projects/actions/projectDashboard.js +++ b/src/projects/actions/projectDashboard.js @@ -1,15 +1,9 @@ import _ from 'lodash' import { loadMembers } from '../../actions/members' -import { loadProject, loadProjectInvite, loadDirectProjectData, loadProjectPhasesWithProducts } from './project' +import { loadProject, loadProjectInvite, loadDirectProjectData } from './project' +import { loadProjectPlan } from './projectPlan' import { loadProjectsMetadata } from '../../actions/templates' -import { loadProductTimelineWithMilestones } from './productsTimelines' -import { loadFeedsForPhases } from './phasesTopics' -import { LOAD_PROJECT_DASHBOARD, - LOAD_ADDITIONAL_PROJECT_DATA, - DISCOURSE_BOT_USERID, - CODER_BOT_USERID, - TC_SYSTEM_USERID -} from '../../config/constants' +import { LOAD_PROJECT_DASHBOARD, LOAD_ADDITIONAL_PROJECT_DATA } from '../../config/constants' /** * Load all project data to paint the dashboard @@ -44,28 +38,7 @@ const getDashboardData = (dispatch, getState, projectId, isOnlyLoadProjectInfo) // for new projects load phases, products, project template and product templates if (project.version === 'v3') { promises.push( - dispatch(loadProjectPhasesWithProducts(projectId)) - .then(({ value: phases }) => { - loadFeedsForPhases(projectId, phases, dispatch) - .then((phaseFeeds) => { - let phaseUserIds = [] - _.forEach(phaseFeeds, phaseFeed => { - phaseUserIds = _.union(phaseUserIds, _.map(phaseFeed.topics, 'userId')) - _.forEach(phaseFeed.topics, topic => { - phaseUserIds = _.union(phaseUserIds, _.map(topic.posts, 'userId')) - }) - // this is to remove any nulls from the list (dev had some bad data) - _.remove(phaseUserIds, i => !i || [DISCOURSE_BOT_USERID, CODER_BOT_USERID, TC_SYSTEM_USERID].indexOf(i) > -1) - }) - // take difference of userIds identified from project members - phaseUserIds = _.difference(phaseUserIds, userIds) - - dispatch(loadMembers(phaseUserIds)) - }) - // load timelines for phase products here together with all dashboard data - // as we need to know timeline data not only inside timeline container - loadTimelinesForPhasesProducts(phases, dispatch) - }) + dispatch(loadProjectPlan(projectId, userIds)) ) } @@ -96,26 +69,6 @@ const getData = (dispatch, getState, projectId, isOnlyLoadProjectInfo) => { .catch(() => getDashboardData(dispatch, getState, projectId, isOnlyLoadProjectInfo)) } -/** - * Load timelines for phase's products - * - * @param {Array} phases list of phases - * @param {Function} dispatch dispatch function - */ -function loadTimelinesForPhasesProducts(phases, dispatch) { - const products = [] - - phases.forEach((phase) => { - phase.products.forEach((product) => { - products.push(product) - }) - }) - - return Promise.all( - products.map((product) => dispatch(loadProductTimelineWithMilestones(product.id))) - ) -} - export function loadProjectDashboard(projectId, isOnlyLoadProjectInfo = false) { return (dispatch, getState) => { return dispatch({ diff --git a/src/projects/actions/projectPlan.js b/src/projects/actions/projectPlan.js new file mode 100644 index 000000000..324a7615b --- /dev/null +++ b/src/projects/actions/projectPlan.js @@ -0,0 +1,58 @@ +import _ from 'lodash' +import { loadMembers } from '../../actions/members' +import { loadProjectPhasesWithProducts } from './project' +import { loadFeedsForPhases } from './phasesTopics' +import { loadProductTimelineWithMilestones } from './productsTimelines' +import { + DISCOURSE_BOT_USERID, + CODER_BOT_USERID, + TC_SYSTEM_USERID +} from '../../config/constants' + + +/** + * Load timelines for phase's products + * + * @param {Array} phases list of phases + * @param {Function} dispatch dispatch function + */ +function loadTimelinesForPhasesProducts(phases, dispatch) { + const products = [] + + phases.forEach((phase) => { + phase.products.forEach((product) => { + products.push(product) + }) + }) + + return Promise.all( + products.map((product) => dispatch(loadProductTimelineWithMilestones(product.id))) + ) +} + +export function loadProjectPlan(projectId, existingUserIds) { + return (dispatch) => {console.log('projectPlan') + return dispatch(loadProjectPhasesWithProducts(projectId)) + .then(({ value: phases }) => { + loadFeedsForPhases(projectId, phases, dispatch) + .then((phaseFeeds) => { + let phaseUserIds = [] + _.forEach(phaseFeeds, phaseFeed => { + phaseUserIds = _.union(phaseUserIds, _.map(phaseFeed.topics, 'userId')) + _.forEach(phaseFeed.topics, topic => { + phaseUserIds = _.union(phaseUserIds, _.map(topic.posts, 'userId')) + }) + // this is to remove any nulls from the list (dev had some bad data) + _.remove(phaseUserIds, i => !i || [DISCOURSE_BOT_USERID, CODER_BOT_USERID, TC_SYSTEM_USERID].indexOf(i) > -1) + }) + // take difference of existingUserIds identified from project members + phaseUserIds = _.difference(phaseUserIds, existingUserIds) + + dispatch(loadMembers(phaseUserIds)) + }) + // load timelines for phase products here together with all dashboard data + // as we need to know timeline data not only inside timeline container + loadTimelinesForPhasesProducts(phases, dispatch) + }) + } +} diff --git a/src/projects/detail/containers/ProjectInfoContainer.js b/src/projects/detail/containers/ProjectInfoContainer.js index 92e26d96e..bca064cf8 100644 --- a/src/projects/detail/containers/ProjectInfoContainer.js +++ b/src/projects/detail/containers/ProjectInfoContainer.js @@ -7,9 +7,10 @@ import _ from 'lodash' import LinksMenu from '../../../components/LinksMenu/LinksMenu' import FileLinksMenu from '../../../components/LinksMenu/FileLinksMenu' import TeamManagementContainer from './TeamManagementContainer' -import { updateProject, deleteProject, loadProjectPhasesWithProducts } from '../../actions/project' +import { updateProject, deleteProject } from '../../actions/project' import { loadDashboardFeeds, loadProjectMessages } from '../../actions/projectTopics' import { loadPhaseFeed } from '../../actions/phasesTopics' +import { loadProjectPlan } from '../../actions/projectPlan' import { setDuration } from '../../../helpers/projectHelper' import { PROJECT_ROLE_OWNER, PROJECT_ROLE_COPILOT, PROJECT_ROLE_MANAGER, DIRECT_PROJECT_URL, SALESFORCE_PROJECT_LEAD_LINK, PROJECT_STATUS_CANCELLED, PROJECT_ATTACHMENTS_FOLDER, @@ -106,7 +107,7 @@ class ProjectInfoContainer extends React.Component { // this is just to see if the comment/feed/post/phase the url hash is attempting to scroll to is loaded or not // if its not loaded then we load the appropriate item handleUrlHash(props) { - const { project, isFeedsLoading, phases, phasesTopics, feeds, loadProjectPhasesWithProducts, loadPhaseFeed, location } = props + const { project, isFeedsLoading, phases, phasesTopics, feeds, loadProjectPlan, loadPhaseFeed, location } = props const hashParts = _.split(location.hash.substring(1), '-') const hashPrimaryId = parseInt(hashParts[1], 10) @@ -130,10 +131,9 @@ class ProjectInfoContainer extends React.Component { if (phases && phasesTopics) { if (!_.some(phases, { id: hashPrimaryId})) { - loadProjectPhasesWithProducts(project.id) - .then(({ value: newPhases }) => { - _.some(newPhases, { id: hashPrimaryId}) && loadPhaseFeed(project.id, hashPrimaryId) - }) + let existingUserIds = _.map(project.members, 'userId') + existingUserIds= _.union(existingUserIds, _.map(project.invites, 'userId')) + loadProjectPlan(project.id, existingUserIds) } else if(postId && !(phasesTopics[hashPrimaryId].topic && phasesTopics[hashPrimaryId].topic.postIds.includes(postId))) { loadPhaseFeed(project.id, hashPrimaryId) } @@ -607,6 +607,6 @@ const mapStateToProps = ({ templates, projectState, members, loadUser }) => { const mapDispatchToProps = { updateProject, deleteProject, addProjectAttachment, updateProjectAttachment, loadProjectMessages, discardAttachments, uploadProjectAttachments, loadDashboardFeeds, loadPhaseFeed, changeAttachmentPermission, - removeProjectAttachment, loadProjectPhasesWithProducts, saveFeedComment } + removeProjectAttachment, loadProjectPlan, saveFeedComment } export default connect(mapStateToProps, mapDispatchToProps)(withRouter(ProjectInfoContainer)) From 0b279f58ef09fc79e25b756cfb1e049b06521c5a Mon Sep 17 00:00:00 2001 From: sumitdaga Date: Fri, 24 May 2019 14:08:51 +0530 Subject: [PATCH 60/89] remove console --- src/projects/actions/projectPlan.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/projects/actions/projectPlan.js b/src/projects/actions/projectPlan.js index 324a7615b..71707f9da 100644 --- a/src/projects/actions/projectPlan.js +++ b/src/projects/actions/projectPlan.js @@ -31,7 +31,7 @@ function loadTimelinesForPhasesProducts(phases, dispatch) { } export function loadProjectPlan(projectId, existingUserIds) { - return (dispatch) => {console.log('projectPlan') + return (dispatch) => { return dispatch(loadProjectPhasesWithProducts(projectId)) .then(({ value: phases }) => { loadFeedsForPhases(projectId, phases, dispatch) From 562d156ea8cd60b67111941a9f60e10533ce49a2 Mon Sep 17 00:00:00 2001 From: sumitdaga Date: Sat, 25 May 2019 21:30:38 +0530 Subject: [PATCH 61/89] fix issues --- src/projects/detail/ProjectDetail.jsx | 1 + src/projects/detail/components/PhaseFeed/PhaseFeed.jsx | 7 ------- src/projects/detail/components/ProjectStages.jsx | 2 ++ src/projects/detail/containers/DashboardContainer.jsx | 2 ++ src/projects/detail/containers/ProjectPlanContainer.jsx | 4 +++- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/projects/detail/ProjectDetail.jsx b/src/projects/detail/ProjectDetail.jsx index 56b4710c8..ae164f9eb 100644 --- a/src/projects/detail/ProjectDetail.jsx +++ b/src/projects/detail/ProjectDetail.jsx @@ -76,6 +76,7 @@ const ProjectDetailView = (props) => { isProcessing: props.isProcessing, allProductTemplates: props.allProductTemplates, productsTimelines: props.productsTimelines, + location: props.location, } return } diff --git a/src/projects/detail/components/PhaseFeed/PhaseFeed.jsx b/src/projects/detail/components/PhaseFeed/PhaseFeed.jsx index dc69db229..0269568ff 100644 --- a/src/projects/detail/components/PhaseFeed/PhaseFeed.jsx +++ b/src/projects/detail/components/PhaseFeed/PhaseFeed.jsx @@ -22,13 +22,6 @@ class PhaseFeedView extends React.Component { !_.isEmpty(this.props.location.hash) && this.handleUrlHash(this.props) } - componentDidUpdate(prevProps) { - const { location } = this.props - if (!_.isEmpty(location.hash) && location.hash !== prevProps.location.hash) { - this.handleUrlHash(this.props) - } - } - // when the phase feed is actually loaded/rendered scroll to the appropriate post depending on url hash handleUrlHash(props) { const hashParts = _.split(location.hash.substring(1), '-') diff --git a/src/projects/detail/components/ProjectStages.jsx b/src/projects/detail/components/ProjectStages.jsx index 6c4005df2..595cf0aa3 100644 --- a/src/projects/detail/components/ProjectStages.jsx +++ b/src/projects/detail/components/ProjectStages.jsx @@ -94,6 +94,7 @@ const ProjectStages = ({ collapseProjectPhase, feedId, commentId, + location }) => (
      @@ -101,6 +102,7 @@ const ProjectStages = ({ { phases.map((phase, index) => ( Date: Sun, 26 May 2019 10:51:55 +0800 Subject: [PATCH 62/89] send project estimation during project creation to the server --- src/config/projectWizard/index.js | 5 ++++- .../create/containers/CreateContainer.jsx | 21 +++++++++++++++---- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/src/config/projectWizard/index.js b/src/config/projectWizard/index.js index 228c54b07..ad7b28821 100644 --- a/src/config/projectWizard/index.js +++ b/src/config/projectWizard/index.js @@ -557,7 +557,10 @@ function getFilteredBuildingBlocks(priceConfig, buildingBlocks, preparedConditio } } _.forEach(filterdBlocks, fb => { - const bb = buildingBlocks[fb] + const bb = { + ...buildingBlocks[fb], + buildingBlockKey: fb, + } matchedBlocks.push(bb) }) }) diff --git a/src/projects/create/containers/CreateContainer.jsx b/src/projects/create/containers/CreateContainer.jsx index b400d8cf6..82b08bf81 100644 --- a/src/projects/create/containers/CreateContainer.jsx +++ b/src/projects/create/containers/CreateContainer.jsx @@ -17,6 +17,7 @@ import { ViewTypes } from 'appirio-tech-react-components/components/Wizard/Wizar import './CreateContainer.scss' import ProjectTypeIcon from '../../../components/ProjectTypeIcon' import { getNewProjectLink } from '../../../helpers/projectHelper' +import { getProductEstimate } from '../../../config/projectWizard' import { CREATE_PROJECT_FAILURE, @@ -136,9 +137,11 @@ class CreateContainer extends React.Component { componentWillMount() { const { processing, userRoles, match, history, templates } = this.props + let projectTemplate // if we are on the project page validate project param if (match.path === '/new-project/:project?/:status?') { const project = match.params.project + projectTemplate = getProjectTemplateByAlias(templates.projectTemplates, project) if ( // if project is defined in URL @@ -149,7 +152,7 @@ class CreateContainer extends React.Component { // project templates are loaded templates.projectTemplates && // if project template doesn't exist - !getProjectTemplateByAlias(templates.projectTemplates, project) + !projectTemplate ) { history.replace('/404') } @@ -163,7 +166,12 @@ class CreateContainer extends React.Component { // if project wizard is loaded after redirection from register page // TODO should we validate the project again? console.log('calling createProjectAction...') - this.props.createProjectAction(incompleteProject, PROJECT_STATUS_IN_REVIEW) + const projectEstimation = getProductEstimate(projectTemplate, incompleteProject) + const projectWithEstimation = { + ...incompleteProject, + estimation: _.get(projectEstimation, 'estimateBlocks', []), + } + this.props.createProjectAction(projectWithEstimation, PROJECT_STATUS_IN_REVIEW) } } else { // if there is not incomplete project, clear the exisitng project from the redux state @@ -241,12 +249,17 @@ class CreateContainer extends React.Component { */ createProject(project) { const { templates: { projectTemplates }} = this.props - const projectTemplate = _.find(projectTemplates, _.get(project, 'templateId')) + const projectTemplate = _.find(projectTemplates, { id: _.get(project, 'templateId') }) this.setState({ creatingProject: true }, () => { if (this.props.userRoles && this.props.userRoles.length > 0) { this.prepareProjectForCreation(project, projectTemplate) - this.props.createProjectAction(project) + const projectEstimation = getProductEstimate(projectTemplate, project) + const projectWithEstimation = { + ...project, + estimation: _.get(projectEstimation, 'estimateBlocks', []), + } + this.props.createProjectAction(projectWithEstimation) } else { // redirect to registration/login page const retUrl = window.location.origin + '/new-project-callback' From bbb76911399edbff3bbe05cc00e2335db791c349 Mon Sep 17 00:00:00 2001 From: Maksym Mykhailenko Date: Sun, 26 May 2019 17:25:38 +0800 Subject: [PATCH 63/89] support buildingBlocks with a price as an expression --- src/config/projectWizard/index.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/config/projectWizard/index.js b/src/config/projectWizard/index.js index 228c54b07..fca95a9fc 100644 --- a/src/config/projectWizard/index.js +++ b/src/config/projectWizard/index.js @@ -596,7 +596,8 @@ export function getProductEstimate(projectTemplate, projectData) { maxTime = _.get(projectTemplate, 'scope.baseTimeEstimateMax', 0) } else { _.forEach(matchedBlocks, bb => { - price += bb.price + const bbPrice = _.isString(bb.price) ? evaluate(bb.price, flatProjectData) : bb.price + price += bbPrice minTime += bb.minTime maxTime += bb.maxTime }) From aa07ff5022faabca4e6e46b92e2ef22d6cd4edec Mon Sep 17 00:00:00 2001 From: Maksym Mykhailenko Date: Mon, 27 May 2019 11:22:52 +0800 Subject: [PATCH 64/89] fix merged file --- src/components/RichTextArea/RichTextArea.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/RichTextArea/RichTextArea.jsx b/src/components/RichTextArea/RichTextArea.jsx index 1342e0ccc..38394ac7c 100644 --- a/src/components/RichTextArea/RichTextArea.jsx +++ b/src/components/RichTextArea/RichTextArea.jsx @@ -386,7 +386,7 @@ class RichTextArea extends React.Component { render() { const {MentionSuggestions} = this.mentionPlugin const {className, avatarUrl, authorName, titlePlaceholder, contentPlaceholder, editMode, isCreating, - isGettingComment, disableTitle, disableContent, expandedTitlePlaceholder, editingTopic, hasPrivateSwitch, canUploadAttachment } = this.props + isGettingComment, disableTitle, disableContent, expandedTitlePlaceholder, editingTopic, hasPrivateSwitch, canUploadAttachment, attachments } = this.props const {editorExpanded, editorState, titleValue, oldMDContent, currentMDContent, uploading, isPrivate, isAddLinkOpen, rawFiles, files} = this.state let canSubmit = (disableTitle || titleValue.trim()) && (disableContent || editorState.getCurrentContent().hasText()) From 678b94096724f9580838d604968da17364b2e6b8 Mon Sep 17 00:00:00 2001 From: Maksym Mykhailenko Date: Mon, 27 May 2019 14:25:31 +0800 Subject: [PATCH 65/89] removed console.log --- src/projects/detail/containers/ProjectInfoContainer.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/projects/detail/containers/ProjectInfoContainer.js b/src/projects/detail/containers/ProjectInfoContainer.js index 168de6d5f..73bd4f3a9 100644 --- a/src/projects/detail/containers/ProjectInfoContainer.js +++ b/src/projects/detail/containers/ProjectInfoContainer.js @@ -437,7 +437,6 @@ class ProjectInfoContainer extends React.Component { ...this.extractAttachmentLinksFromPosts(feeds), ...this.extractAttachmentLinksFromPosts(phaseFeeds) ] - console.dir(attachments) return (
      From f7ea4241963ed3b075f7f254927a9042cd218d55 Mon Sep 17 00:00:00 2001 From: sumitdaga Date: Mon, 27 May 2019 13:10:19 +0530 Subject: [PATCH 66/89] moved scrollTo to singleFeedContainer --- src/projects/detail/containers/FeedContainer.js | 10 ---------- src/projects/detail/containers/SingleFeedContainer.jsx | 9 +++++++++ 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/src/projects/detail/containers/FeedContainer.js b/src/projects/detail/containers/FeedContainer.js index 124d462c5..9eddbaee6 100644 --- a/src/projects/detail/containers/FeedContainer.js +++ b/src/projects/detail/containers/FeedContainer.js @@ -32,7 +32,6 @@ import Section from '../components/Section' import SectionTitle from '../components/SectionTitle' import SingleFeedContainer from './SingleFeedContainer' -import { scrollToHash } from '../../../components/ScrollToAnchors' import { isSystemUser } from '../../../helpers/tcHelpers' import { checkPermission } from '../../../helpers/permissions' import PERMISSIONS from '../../../config/permissions' @@ -216,15 +215,6 @@ class FeedView extends React.Component { const resetNewComment = prevFeed && prevFeed.isAddingComment && !feed.isAddingComment && !feed.error return this.mapFeed(feed, this.state.showAll.indexOf(feed.id) > -1, resetNewComment, prevProps) }).filter(item => item) - }, () => { - if (prevProps) { - // only scroll at first time - return - } - const scrollTo = window.location.hash ? window.location.hash.substring(1) : null - if (scrollTo) { - setTimeout(() => scrollToHash(scrollTo), 100) - } }) } diff --git a/src/projects/detail/containers/SingleFeedContainer.jsx b/src/projects/detail/containers/SingleFeedContainer.jsx index 844b9671c..692fb31d2 100644 --- a/src/projects/detail/containers/SingleFeedContainer.jsx +++ b/src/projects/detail/containers/SingleFeedContainer.jsx @@ -14,6 +14,7 @@ import React from 'react' import _ from 'lodash' import ScrollableFeed from '../../../components/Feed/ScrollableFeed' +import { scrollToHash } from '../../../components/ScrollToAnchors' const bindMethods = [ 'onNewCommentChange', @@ -43,6 +44,14 @@ class SingleFeedContainer extends React.Component { }) } + componentDidMount() { + // we use this to just scroll to a feed block or comment in a feed block, if there is a url hash + const scrollTo = window.location.hash ? window.location.hash.substring(1) : null + if (scrollTo) { + setTimeout(() => scrollToHash(scrollTo), 100) + } + } + render() { const nonBindProps = _.omit(this.props, bindMethods) const bindProps = _.zipObject(bindMethods, bindMethods.map((method) => this[method])) From 2bde4297f3db027a3e68a3ae7242e0ec821ea03b Mon Sep 17 00:00:00 2001 From: sumitdaga Date: Mon, 27 May 2019 13:52:02 +0530 Subject: [PATCH 67/89] check on scrollTo --- .../detail/containers/SingleFeedContainer.jsx | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/projects/detail/containers/SingleFeedContainer.jsx b/src/projects/detail/containers/SingleFeedContainer.jsx index 692fb31d2..84f4687fa 100644 --- a/src/projects/detail/containers/SingleFeedContainer.jsx +++ b/src/projects/detail/containers/SingleFeedContainer.jsx @@ -45,10 +45,18 @@ class SingleFeedContainer extends React.Component { } componentDidMount() { - // we use this to just scroll to a feed block or comment in a feed block, if there is a url hash + // we use this to just scroll to a feed block or comment in a feed block, + // only if there is a url hash and the feed id and comment id match this feed const scrollTo = window.location.hash ? window.location.hash.substring(1) : null if (scrollTo) { - setTimeout(() => scrollToHash(scrollTo), 100) + const hashParts = _.split(scrollTo, '-') + const hashId = parseInt(hashParts[1], 10) + if ( + (hashParts[0] === 'feed' && hashId === this.props.id) || + (hashParts[0] === 'comment' && this.props.comments && _.some(this.props.comments, { id: hashId })) + ) { + setTimeout(() => scrollToHash(scrollTo), 100) + } } } From b33a32717a0b52ddb5ddafd9f61f2982182e0efa Mon Sep 17 00:00:00 2001 From: sumitdaga Date: Tue, 28 May 2019 10:29:42 +0530 Subject: [PATCH 68/89] small fix --- src/projects/detail/containers/FeedContainer.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/projects/detail/containers/FeedContainer.js b/src/projects/detail/containers/FeedContainer.js index 9eddbaee6..ff0978d81 100644 --- a/src/projects/detail/containers/FeedContainer.js +++ b/src/projects/detail/containers/FeedContainer.js @@ -78,6 +78,9 @@ class FeedView extends React.Component { componentDidMount() { window.addEventListener('beforeunload', this.onLeave) + } + + componentWillMount() { this.init(this.props) } From 79fc9b9ef4b0ce67e9d17abe28424afff2917531 Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Wed, 29 May 2019 16:35:59 +0530 Subject: [PATCH 69/89] =?UTF-8?q?Github=20issue#3067,=20Need=20to=20suppor?= =?UTF-8?q?t=20quantity=20for=20addons=20=E2=80=94=20initial=20commit=20fo?= =?UTF-8?q?r=20the=20feature?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/config/projectWizard/index.js | 15 ++++- .../components/AddonOptions/AddonOptions.jsx | 66 ++++++++++++++----- .../components/AddonOptions/AddonOptions.scss | 42 ++++++++++++ .../detail/components/SpecQuestions.jsx | 1 + 4 files changed, 105 insertions(+), 19 deletions(-) diff --git a/src/config/projectWizard/index.js b/src/config/projectWizard/index.js index f755827d2..4d3f34575 100644 --- a/src/config/projectWizard/index.js +++ b/src/config/projectWizard/index.js @@ -592,6 +592,19 @@ export function getProductEstimate(projectTemplate, projectData) { }) const baseBlocks = getFilteredBuildingBlocks(priceConfig, buildingBlocks, preparedConditions, flatProjectData) const addonBlocks = getFilteredBuildingBlocks(addonPriceConfig, buildingBlocks, preparedConditions, flatProjectData, true) + // for each addon block, check if user has specified quantity for the selected addons + addonBlocks.forEach((addonBlock) => { + // retrieves productKey for the addon + const addonKey = addonBlock.metadata.addonProductKey + // retrieves the location of storing the selected addons details + const addonLocation = addonBlock.metadata.addonLocation + const addonsData = flatProjectData[addonLocation] + // finds the addon details for the current addon block + const addon = _.find(addonsData, ad => ad.productKey === addonKey) + if (addon.qty) { + addonBlock.quantity = addon.qty + } + }) matchedBlocks = matchedBlocks.concat(baseBlocks, addonBlocks) if (!matchedBlocks || matchedBlocks.length === 0) { price = _.get(projectTemplate, 'scope.basePriceEstimate', 0) @@ -600,7 +613,7 @@ export function getProductEstimate(projectTemplate, projectData) { } else { _.forEach(matchedBlocks, bb => { const bbPrice = _.isString(bb.price) ? evaluate(bb.price, flatProjectData) : bb.price - price += bbPrice + price += (bbPrice * (bb.quantity ? bb.quantity : 1)) minTime += bb.minTime maxTime += bb.maxTime }) diff --git a/src/projects/detail/components/AddonOptions/AddonOptions.jsx b/src/projects/detail/components/AddonOptions/AddonOptions.jsx index dba495911..9a9c31e0d 100644 --- a/src/projects/detail/components/AddonOptions/AddonOptions.jsx +++ b/src/projects/detail/components/AddonOptions/AddonOptions.jsx @@ -1,6 +1,8 @@ +import _ from 'lodash' import React, { Component, PropTypes } from 'react' import { HOC as hoc } from 'formsy-react' import cn from 'classnames' + import './AddonOptions.scss' class AddonOptions extends Component { @@ -8,52 +10,80 @@ class AddonOptions extends Component { constructor(props) { super(props) this.changeValue = this.changeValue.bind(this) + this.quantityOptions = _.range(1, 11).map(i => ({ title: i, value: i })) } changeValue() { - const { options } = this.props + const { options, allowMultiple } = this.props const value = [] options.forEach(subCategory => { subCategory.options.forEach((option, i) => { if (this['element-' + subCategory.key + '-' + i].checked) { - value.push(option.value) + const val = { ...option.value } + if (allowMultiple) { + val.qty = this['element-' + subCategory.key + '-' + i + '-qty'].value + if (isNaN(val.qty)) { + delete val.qty + } else { + val.qty = parseInt(val.qty) + } + } + value.push(val) } }) }) - this.props.setValue(value) this.props.onChange(this.props.name, value) } render() { - const { label, name, options, title, description, wrapperClass } = this.props + const { label, name, options, title, description, wrapperClass, allowMultiple } = this.props const hasError = !this.props.isPristine() && !this.props.isValid() const errorMessage = this.props.getErrorMessage() || this.props.validationError const getId = s => s.id - const renderOption = (group, cb, key) => { + const renderOption = (group, allowMultiple, cb, key) => { const curValue = this.props.getValue() || [] + const optValue = curValue.find((v) => v.id === cb.value.id) const checked = curValue.map(getId).indexOf(getId(cb.value)) !== -1 const disabled = this.props.isFormDisabled() || cb.disabled || this.props.disabled const rClass = cn('checkbox-group-item', { disabled, selected: checked }) const id = name+'-opt-'+group+'-'+key const setRef = (c) => this['element-' + group + '-' + key] = c + const setQtyRef = (c) => this['element-' + group + '-' + key + '-qty'] = c return (
      -
      - -
      diff --git a/src/projects/detail/components/AddonOptions/AddonOptions.scss b/src/projects/detail/components/AddonOptions/AddonOptions.scss index e7e34be28..136d946e9 100644 --- a/src/projects/detail/components/AddonOptions/AddonOptions.scss +++ b/src/projects/detail/components/AddonOptions/AddonOptions.scss @@ -34,3 +34,45 @@ font-size: $tc-heading-sm; line-height: 25px; } + +.addon-row { + display: flex; + justify-content: space-between; +} + +.addon-checkbox { + display: flex; + align-items: center; +} + +:global(.checkbox-group-item) .addon-checkbox :global(.tc-checkbox) { + vertical-align: middle; +} + +.addon-label + div:not(:global(.checkbox-option-description)) { + display: inline-block; + width: 70px; + margin-left: 20px; +} + +.subcategory .addon-label + div :global(.dropdown-wrap.SelectDropdown.default) { + max-width: 70px; + min-width: 70px; +} + +.addon-qty { + display: flex; + justify-content: flex-end; + align-items: center; +} + +.addon-qty-label { + +} + +.addon-row .addon-qty .addon-qty-input { + width: 70px; + height: 30px; + margin: 0px; + margin-left: 20px; +} \ No newline at end of file diff --git a/src/projects/detail/components/SpecQuestions.jsx b/src/projects/detail/components/SpecQuestions.jsx index 68661059a..7d30f9af4 100644 --- a/src/projects/detail/components/SpecQuestions.jsx +++ b/src/projects/detail/components/SpecQuestions.jsx @@ -257,6 +257,7 @@ const SpecQuestions = ({ hideTitle: true, hideDescription: true, description: q.description, + allowMultiple: q.allowMultiple, options: buildAddonsOptions(q, productTemplates, productCategories), wrapperClass: q.theme }) From 154a6b860037370f437134c409347332df75d213 Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Wed, 29 May 2019 16:42:29 +0530 Subject: [PATCH 70/89] Formatting --- src/projects/detail/components/AddonOptions/AddonOptions.jsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/projects/detail/components/AddonOptions/AddonOptions.jsx b/src/projects/detail/components/AddonOptions/AddonOptions.jsx index 9a9c31e0d..6596bd43c 100644 --- a/src/projects/detail/components/AddonOptions/AddonOptions.jsx +++ b/src/projects/detail/components/AddonOptions/AddonOptions.jsx @@ -10,7 +10,6 @@ class AddonOptions extends Component { constructor(props) { super(props) this.changeValue = this.changeValue.bind(this) - this.quantityOptions = _.range(1, 11).map(i => ({ title: i, value: i })) } changeValue() { @@ -76,7 +75,8 @@ class AddonOptions extends Component { type="number" styleName="addon-qty-input" name={`${name}-qty`} - ref={setQtyRef} value={optValue && optValue.qty ? optValue.qty : 1} + ref={setQtyRef} + value={optValue && optValue.qty ? optValue.qty : 1} onChange={this.changeValue} min={1} max={100} From 9cb0ed8e9dbf09aa4fab6cb25e11b6525ff6156f Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Wed, 29 May 2019 16:47:33 +0530 Subject: [PATCH 71/89] Lint fix --- src/projects/detail/components/AddonOptions/AddonOptions.jsx | 1 - 1 file changed, 1 deletion(-) diff --git a/src/projects/detail/components/AddonOptions/AddonOptions.jsx b/src/projects/detail/components/AddonOptions/AddonOptions.jsx index 6596bd43c..eb94572bf 100644 --- a/src/projects/detail/components/AddonOptions/AddonOptions.jsx +++ b/src/projects/detail/components/AddonOptions/AddonOptions.jsx @@ -1,4 +1,3 @@ -import _ from 'lodash' import React, { Component, PropTypes } from 'react' import { HOC as hoc } from 'formsy-react' import cn from 'classnames' From eef5e38823917195b8635706116b220d29f350be Mon Sep 17 00:00:00 2001 From: Maksym Mykhailenko Date: Thu, 30 May 2019 11:29:51 +0800 Subject: [PATCH 72/89] fix addon qty --- src/config/projectWizard/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/config/projectWizard/index.js b/src/config/projectWizard/index.js index 4d3f34575..a33ae175e 100644 --- a/src/config/projectWizard/index.js +++ b/src/config/projectWizard/index.js @@ -601,7 +601,7 @@ export function getProductEstimate(projectTemplate, projectData) { const addonsData = flatProjectData[addonLocation] // finds the addon details for the current addon block const addon = _.find(addonsData, ad => ad.productKey === addonKey) - if (addon.qty) { + if (addon && addon.qty) { addonBlock.quantity = addon.qty } }) From 644c40a9e8b47628bd66889706849a29b7068c5f Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Thu, 30 May 2019 11:03:12 +0530 Subject: [PATCH 73/89] One more safety check to avoid run time error for add on blocks which does not want to consider the quantity of the add-on. --- src/config/projectWizard/index.js | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/config/projectWizard/index.js b/src/config/projectWizard/index.js index a33ae175e..6a1b3a45f 100644 --- a/src/config/projectWizard/index.js +++ b/src/config/projectWizard/index.js @@ -598,11 +598,13 @@ export function getProductEstimate(projectTemplate, projectData) { const addonKey = addonBlock.metadata.addonProductKey // retrieves the location of storing the selected addons details const addonLocation = addonBlock.metadata.addonLocation - const addonsData = flatProjectData[addonLocation] - // finds the addon details for the current addon block - const addon = _.find(addonsData, ad => ad.productKey === addonKey) - if (addon && addon.qty) { - addonBlock.quantity = addon.qty + if (addonKey && addonLocation) { // if addon block is configured to pick quantity of the addon + const addonsData = flatProjectData[addonLocation] + // finds the addon details for the current addon block + const addon = _.find(addonsData, ad => ad.productKey === addonKey) + if (addon && addon.qty) { + addonBlock.quantity = addon.qty + } } }) matchedBlocks = matchedBlocks.concat(baseBlocks, addonBlocks) From 09a092277c6240e56e4a7302709d2c04f90cb0a4 Mon Sep 17 00:00:00 2001 From: sumitdaga Date: Thu, 30 May 2019 12:41:30 +0530 Subject: [PATCH 74/89] fixes issue 3065 --- src/components/RichTextArea/RichTextArea.jsx | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/components/RichTextArea/RichTextArea.jsx b/src/components/RichTextArea/RichTextArea.jsx index 38394ac7c..b1e44bd15 100644 --- a/src/components/RichTextArea/RichTextArea.jsx +++ b/src/components/RichTextArea/RichTextArea.jsx @@ -155,7 +155,8 @@ class RichTextArea extends React.Component { editorState: EditorState.push(this.state.editorState, EditorState.createEmpty().getCurrentContent()), currentMDContent: null, oldMDContent: null, - isPrivate: false + isPrivate: false, + rawFiles: [] }) } @@ -168,7 +169,7 @@ class RichTextArea extends React.Component { let isEditor = false let isCloseButton = false const title = this.state.titleValue - const hasContent = (title && title.trim().length > 0) || this.state.editorState.getCurrentContent().hasText() + const hasContent = (title && title.trim().length > 0) || this.state.editorState.getCurrentContent().hasText() || this.state.rawFiles.length > 0 do { if (currNode.className @@ -188,7 +189,8 @@ class RichTextArea extends React.Component { titleValue: '', editorState: EditorState.createEmpty(), currentMDContent: null, - oldMDContent: null + oldMDContent: null, + rawFiles: [] }) } From fca35871afb28bc6972d3fb79b645d2697d5f32f Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Thu, 30 May 2019 14:16:42 +0530 Subject: [PATCH 75/89] Supporting specifying min, max and default values for a number input type form component. --- .../detail/components/SpecQuestions.jsx | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/src/projects/detail/components/SpecQuestions.jsx b/src/projects/detail/components/SpecQuestions.jsx index 7d30f9af4..883ea78a8 100644 --- a/src/projects/detail/components/SpecQuestions.jsx +++ b/src/projects/detail/components/SpecQuestions.jsx @@ -168,16 +168,32 @@ const SpecQuestions = ({ // child = break } - case 'numberinput': + case 'numberinput': { ChildElem = TCFormFields.TextInput elemProps.wrapperClass = 'row' elemProps.type = 'number' + if (!isNaN(q.minValue)) { + elemProps.minValue = q.minValue + } + if (!isNaN(q.maxValue)) { + elemProps.maxValue = q.maxValue + } + if (!isNaN(q.defaultValue)) { + elemProps.value = q.defaultValue + } break + } case 'numberinputpositive': ChildElem = TCFormFields.TextInput - elemProps.wrapperClass = 'rowchut' + elemProps.wrapperClass = 'row' elemProps.type = 'number' elemProps.minValue = 0 + if (!isNaN(q.maxValue)) { + elemProps.maxValue = q.maxValue + } + if (!isNaN(q.defaultValue)) { + elemProps.value = q.defaultValue + } break case 'textbox': ChildElem = TCFormFields.Textarea From 590463d3eef858f28f2b6e9e24380feace215d06 Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Fri, 31 May 2019 10:39:11 +0530 Subject: [PATCH 76/89] Added number input to be shows in summary screen --- src/projects/detail/components/SpecQuestions.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/projects/detail/components/SpecQuestions.jsx b/src/projects/detail/components/SpecQuestions.jsx index 883ea78a8..a3f317b5a 100644 --- a/src/projects/detail/components/SpecQuestions.jsx +++ b/src/projects/detail/components/SpecQuestions.jsx @@ -348,7 +348,7 @@ const SpecQuestions = ({ // hide question in edit mode if configured (isCreation || !question.hiddenOnEdit) ).map((q, index) => ( - _.includes(['checkbox-group', 'radio-group', 'add-ons', 'textinput', 'textbox'], q.type) && q.visibilityForRendering === STEP_VISIBILITY.READ_OPTIMIZED ? ( + _.includes(['checkbox-group', 'radio-group', 'add-ons', 'textinput', 'textbox', 'numberinput'], q.type) && q.visibilityForRendering === STEP_VISIBILITY.READ_OPTIMIZED ? ( Date: Fri, 31 May 2019 10:49:24 +0530 Subject: [PATCH 77/89] Handling NaN in project estimate --- src/config/projectWizard/index.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/config/projectWizard/index.js b/src/config/projectWizard/index.js index 6a1b3a45f..3edc546de 100644 --- a/src/config/projectWizard/index.js +++ b/src/config/projectWizard/index.js @@ -614,7 +614,10 @@ export function getProductEstimate(projectTemplate, projectData) { maxTime = _.get(projectTemplate, 'scope.baseTimeEstimateMax', 0) } else { _.forEach(matchedBlocks, bb => { - const bbPrice = _.isString(bb.price) ? evaluate(bb.price, flatProjectData) : bb.price + let bbPrice = _.isString(bb.price) ? evaluate(bb.price, flatProjectData) : bb.price + if (isNaN(bbPrice)) { // if we are unable to parse price as numeric value, set it as ZERO + bbPrice = 0 + } price += (bbPrice * (bb.quantity ? bb.quantity : 1)) minTime += bb.minTime maxTime += bb.maxTime From f2647172aef383699c8f46f81d16f239c4fa1cf7 Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Fri, 31 May 2019 16:48:57 +0530 Subject: [PATCH 78/89] =?UTF-8?q?Github=20issue#3070,=20Project=20Creation?= =?UTF-8?q?=20Summary=20Screen:=20Show=20N/A=20when=20a=20question=20does?= =?UTF-8?q?=20not=20have=20answer=20=E2=80=94=20Possible=20fix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/projects/detail/components/Accordion/Accordion.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/projects/detail/components/Accordion/Accordion.jsx b/src/projects/detail/components/Accordion/Accordion.jsx index fa5b59a85..3597a14b5 100644 --- a/src/projects/detail/components/Accordion/Accordion.jsx +++ b/src/projects/detail/components/Accordion/Accordion.jsx @@ -105,7 +105,7 @@ class Accordion extends React.Component { const mapValue = createValueMapper(valuesMap) if (!value) { - return value + return "N/A"//value } switch (type) { From 9e15ae577b50a2be27c2b9efdadacaffdc554ae0 Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Fri, 31 May 2019 17:06:50 +0530 Subject: [PATCH 79/89] Added type constant for consistency --- src/projects/detail/components/Accordion/Accordion.jsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/projects/detail/components/Accordion/Accordion.jsx b/src/projects/detail/components/Accordion/Accordion.jsx index 3597a14b5..5d5918759 100644 --- a/src/projects/detail/components/Accordion/Accordion.jsx +++ b/src/projects/detail/components/Accordion/Accordion.jsx @@ -21,7 +21,8 @@ const TYPE = { RADIO_GROUP: 'radio-group', ADD_ONS: 'add-ons', TEXTINPUT: 'textinput', - TEXTBOX: 'textbox' + TEXTBOX: 'textbox', + NUMBERINPUT: 'numberinput' } /** From b59283a0b4d454b0150c964dc181417ec0f3c5dc Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Fri, 31 May 2019 17:49:50 +0530 Subject: [PATCH 80/89] Graceful error handling when the author is missing for the feed item because of missing data from member service. --- src/components/Feed/FeedComments.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/Feed/FeedComments.jsx b/src/components/Feed/FeedComments.jsx index 99cd122e0..e988aff0d 100644 --- a/src/components/Feed/FeedComments.jsx +++ b/src/components/Feed/FeedComments.jsx @@ -231,7 +231,7 @@ class FeedComments extends React.Component { const prevComment = comments[idx - 1] const prevCreatedAt = prevComment && moment(prevComment.createdAt) const isSameDay = prevCreatedAt && prevCreatedAt.isSame(createdAt, 'day') - const isSameAuthor = _.get(prevComment, 'author.userId') === item.author.userId + const isSameAuthor = _.get(prevComment, 'author.userId') === _.get(item, 'author.userId') const isFirstUnread = prevComment && !prevComment.unread && item.unread const timeDiffComment = bundleCreatedAt && createdAt.diff(bundleCreatedAt) From 0de3c17fa9703276f202329b3d52c19956d6ab08 Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Fri, 31 May 2019 17:57:04 +0530 Subject: [PATCH 81/89] Graceful error handling when the template for an existing project is deleted. --- src/helpers/templates.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/helpers/templates.js b/src/helpers/templates.js index 001dd8db8..adb87b165 100644 --- a/src/helpers/templates.js +++ b/src/helpers/templates.js @@ -96,7 +96,7 @@ export function getProjectProductTemplates(productTemplates, projectTemplates, p } const projectTemplate = getProjectTemplateById(projectTemplates, project.templateId) - const { phases } = projectTemplate + const phases = _.get(projectTemplate, 'phases', []) // TODO we can log error details here for missing project template const projectProductTemplates = [] Object.keys(phases).forEach((phaseName) => { From 4e89b26d3064df3a1a423aa4e53d07fc07bea0bc Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Mon, 3 Jun 2019 09:59:34 +0530 Subject: [PATCH 82/89] Lint fix --- src/projects/detail/components/Accordion/Accordion.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/projects/detail/components/Accordion/Accordion.jsx b/src/projects/detail/components/Accordion/Accordion.jsx index 5d5918759..906bf6432 100644 --- a/src/projects/detail/components/Accordion/Accordion.jsx +++ b/src/projects/detail/components/Accordion/Accordion.jsx @@ -106,7 +106,7 @@ class Accordion extends React.Component { const mapValue = createValueMapper(valuesMap) if (!value) { - return "N/A"//value + return 'N/A"'//value } switch (type) { From f8b72ae94933e999fb68ebb5cb0f6d7f59309c82 Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Mon, 3 Jun 2019 11:27:37 +0530 Subject: [PATCH 83/89] fixed typo --- src/projects/detail/components/Accordion/Accordion.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/projects/detail/components/Accordion/Accordion.jsx b/src/projects/detail/components/Accordion/Accordion.jsx index 906bf6432..29c1352dd 100644 --- a/src/projects/detail/components/Accordion/Accordion.jsx +++ b/src/projects/detail/components/Accordion/Accordion.jsx @@ -106,7 +106,7 @@ class Accordion extends React.Component { const mapValue = createValueMapper(valuesMap) if (!value) { - return 'N/A"'//value + return 'N/A'//value } switch (type) { From bffdcf56bead56caf408892eaa1c23f4182d1dfc Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Mon, 3 Jun 2019 12:17:42 +0530 Subject: [PATCH 84/89] Adding UL to the same style which we have for p in help modal --- src/projects/create/components/HelpModal.scss | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/projects/create/components/HelpModal.scss b/src/projects/create/components/HelpModal.scss index d9c6a29d2..dd9825dac 100644 --- a/src/projects/create/components/HelpModal.scss +++ b/src/projects/create/components/HelpModal.scss @@ -48,11 +48,11 @@ text-align: center; color: $tc-black; } - & p { + & p, ul { margin: 3*$base-unit 36*$base-unit; color: $tc-black; } - & p:last-child { + & p:last-child, ul:last-child { margin-bottom: 32*$base-unit; } } \ No newline at end of file From e2a76e61123ca878ab786a62b75e253036344e8f Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Mon, 3 Jun 2019 12:42:17 +0530 Subject: [PATCH 85/89] Increasing height of project type card by 20px to accommodate slightly bigger text than what we can currently have --- src/projects/create/components/ProjectTypeCard.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/projects/create/components/ProjectTypeCard.scss b/src/projects/create/components/ProjectTypeCard.scss index 19a5d475b..553adaa4c 100644 --- a/src/projects/create/components/ProjectTypeCard.scss +++ b/src/projects/create/components/ProjectTypeCard.scss @@ -8,7 +8,7 @@ display: flex; flex-direction: column; align-items: center; - height: 260px; + height: 280px; width: 230px; margin: 10px 10px 0; position: relative; From d0dc4f5e5901903dd41b3f4e89351ff3e61e88a8 Mon Sep 17 00:00:00 2001 From: Maksym Mykhailenko Date: Tue, 4 Jun 2019 11:34:39 +0800 Subject: [PATCH 86/89] fix defaultValue for `numberinput` and `numberinputpositive` question type for the project wizard form --- src/projects/detail/components/SpecQuestions.jsx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/projects/detail/components/SpecQuestions.jsx b/src/projects/detail/components/SpecQuestions.jsx index a3f317b5a..0c0916964 100644 --- a/src/projects/detail/components/SpecQuestions.jsx +++ b/src/projects/detail/components/SpecQuestions.jsx @@ -178,7 +178,8 @@ const SpecQuestions = ({ if (!isNaN(q.maxValue)) { elemProps.maxValue = q.maxValue } - if (!isNaN(q.defaultValue)) { + // update with default value only if we don't have any value yet + if (!elemProps.value && !isNaN(q.defaultValue)) { elemProps.value = q.defaultValue } break @@ -191,7 +192,8 @@ const SpecQuestions = ({ if (!isNaN(q.maxValue)) { elemProps.maxValue = q.maxValue } - if (!isNaN(q.defaultValue)) { + // update with default value only if we don't have any value yet + if (!elemProps.value && !isNaN(q.defaultValue)) { elemProps.value = q.defaultValue } break From 5b5567c0a007a1bb41489b3446f78af5f7a03d82 Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Tue, 4 Jun 2019 11:34:15 +0530 Subject: [PATCH 87/89] Enabling the required question indications (red asterisks) --- .../components/SpecQuestionList/SpecQuestionList.scss | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/projects/detail/components/SpecQuestionList/SpecQuestionList.scss b/src/projects/detail/components/SpecQuestionList/SpecQuestionList.scss index da2306559..82348599c 100644 --- a/src/projects/detail/components/SpecQuestionList/SpecQuestionList.scss +++ b/src/projects/detail/components/SpecQuestionList/SpecQuestionList.scss @@ -349,9 +349,9 @@ font-size: $tc-heading-sm; line-height: 25px; - > span { - display: none; - } + // > span { + // display: none; + // } } } } From b27c424c6f8693728c97fe0d67020d5d446e2f7f Mon Sep 17 00:00:00 2001 From: Maksym Mykhailenko Date: Tue, 4 Jun 2019 17:06:27 +0800 Subject: [PATCH 88/89] when validating if user has been already invited by the email, check emails case-insensetive way --- .../TeamManagement/ProjectManagementDialog.js | 7 +++--- .../TopcoderManagementDialog.js | 7 +++--- src/helpers/utils.js | 24 +++++++++++++++++++ 3 files changed, 32 insertions(+), 6 deletions(-) diff --git a/src/components/TeamManagement/ProjectManagementDialog.js b/src/components/TeamManagement/ProjectManagementDialog.js index 8547df19d..79f93bfe5 100644 --- a/src/components/TeamManagement/ProjectManagementDialog.js +++ b/src/components/TeamManagement/ProjectManagementDialog.js @@ -6,6 +6,7 @@ import Modal from 'react-modal' import XMarkIcon from '../../assets/icons/icon-x-mark.svg' import Avatar from 'appirio-tech-react-components/components/Avatar/Avatar' import {getAvatarResized} from '../../helpers/tcHelpers' +import { compareEmail } from '../../helpers/utils' import AutocompleteInputContainer from './AutocompleteInputContainer' class ProjectManagementDialog extends React.Component { @@ -39,8 +40,8 @@ class ProjectManagementDialog extends React.Component { const { projectTeamInvites, members, topcoderTeamInvites } = this.props const present = _.some(selectedMembers, (selectedMember) => ( - this.isSelectedMemberAlreadyInvited(members, selectedMember) - || this.isSelectedMemberAlreadyInvited(topcoderTeamInvites, selectedMember) + this.isSelectedMemberAlreadyInvited(members, selectedMember) + || this.isSelectedMemberAlreadyInvited(topcoderTeamInvites, selectedMember) || this.isSelectedMemberAlreadyInvited(projectTeamInvites, selectedMember) )) @@ -55,7 +56,7 @@ class ProjectManagementDialog extends React.Component { isSelectedMemberAlreadyInvited(projectTeamInvites = [], selectedMember) { return !!projectTeamInvites.find((invite) => ( - (invite.email && invite.email === selectedMember.label) || + (invite.email && compareEmail(invite.email, selectedMember.label)) || (invite.userId && this.resolveUserHandle(invite.userId) === selectedMember.label) )) } diff --git a/src/components/TeamManagement/TopcoderManagementDialog.js b/src/components/TeamManagement/TopcoderManagementDialog.js index d40c161f3..55af258c3 100644 --- a/src/components/TeamManagement/TopcoderManagementDialog.js +++ b/src/components/TeamManagement/TopcoderManagementDialog.js @@ -13,6 +13,7 @@ import AutocompleteInputContainer from './AutocompleteInputContainer' import {PROJECT_MEMBER_INVITE_STATUS_REQUESTED, PROJECT_MEMBER_INVITE_STATUS_PENDING} from '../../config/constants' import PERMISSIONS from '../../config/permissions' import {checkPermission} from '../../helpers/permissions' +import { compareEmail } from '../../helpers/utils' class TopcoderManagementDialog extends React.Component { constructor(props) { @@ -67,8 +68,8 @@ class TopcoderManagementDialog extends React.Component { const { projectTeamInvites, members, topcoderTeamInvites } = this.props const present = _.some(selectedMembers, (selectedMember) => ( - this.isSelectedMemberAlreadyInvited(members, selectedMember) - || this.isSelectedMemberAlreadyInvited(topcoderTeamInvites, selectedMember) + this.isSelectedMemberAlreadyInvited(members, selectedMember) + || this.isSelectedMemberAlreadyInvited(topcoderTeamInvites, selectedMember) || this.isSelectedMemberAlreadyInvited(projectTeamInvites, selectedMember) )) @@ -98,7 +99,7 @@ class TopcoderManagementDialog extends React.Component { isSelectedMemberAlreadyInvited(topcoderTeamInvites = [], selectedMember) { return !!topcoderTeamInvites.find((invite) => ( - (invite.email && invite.email === selectedMember.label) || + (invite.email && compareEmail(invite.email, selectedMember.label)) || (invite.userId && this.resolveUserHandle(invite.userId) === selectedMember.label) )) } diff --git a/src/helpers/utils.js b/src/helpers/utils.js index d2e35a958..cb4b5b38e 100644 --- a/src/helpers/utils.js +++ b/src/helpers/utils.js @@ -20,3 +20,27 @@ export function difference(object, base) { } return changes(object, base) } + +/** + * Helper method to check the uniqueness of two emails + * + * @param {String} email1 first email to compare + * @param {String} email2 second email to compare + * @param {Object} options the options + * + * @returns {Boolean} true if two emails are same + */ +export const compareEmail = (email1, email2, options = { UNIQUE_GMAIL_VALIDATION: false }) => { + if (options.UNIQUE_GMAIL_VALIDATION) { + // email is gmail + const emailSplit = /(^[\w.+-]+)(@gmail\.com|@googlemail\.com)$/g.exec(_.toLower(email1)) + if (emailSplit) { + const address = emailSplit[1].replace('.', '') + const emailDomain = emailSplit[2].replace('.', '\\.') + const regexAddress = address.split('').join('\\.?') + const regex = new RegExp(`${regexAddress}${emailDomain}`) + return regex.test(_.toLower(email2)) + } + } + return _.toLower(email1) === _.toLower(email2) +} \ No newline at end of file From 46f25e80e97af072c1f787f37f9a393986cb0cad Mon Sep 17 00:00:00 2001 From: Maksym Mykhailenko Date: Tue, 4 Jun 2019 17:13:58 +0800 Subject: [PATCH 89/89] when validating if user has been already invited by the handle, check hanldes case-insensetive way --- .../TeamManagement/ProjectManagementDialog.js | 4 ++-- .../TeamManagement/TopcoderManagementDialog.js | 4 ++-- src/helpers/utils.js | 14 +++++++++++++- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/components/TeamManagement/ProjectManagementDialog.js b/src/components/TeamManagement/ProjectManagementDialog.js index 79f93bfe5..03d4327d3 100644 --- a/src/components/TeamManagement/ProjectManagementDialog.js +++ b/src/components/TeamManagement/ProjectManagementDialog.js @@ -6,7 +6,7 @@ import Modal from 'react-modal' import XMarkIcon from '../../assets/icons/icon-x-mark.svg' import Avatar from 'appirio-tech-react-components/components/Avatar/Avatar' import {getAvatarResized} from '../../helpers/tcHelpers' -import { compareEmail } from '../../helpers/utils' +import { compareEmail, compareHandles } from '../../helpers/utils' import AutocompleteInputContainer from './AutocompleteInputContainer' class ProjectManagementDialog extends React.Component { @@ -57,7 +57,7 @@ class ProjectManagementDialog extends React.Component { isSelectedMemberAlreadyInvited(projectTeamInvites = [], selectedMember) { return !!projectTeamInvites.find((invite) => ( (invite.email && compareEmail(invite.email, selectedMember.label)) || - (invite.userId && this.resolveUserHandle(invite.userId) === selectedMember.label) + (invite.userId && compareHandles(this.resolveUserHandle(invite.userId), selectedMember.label)) )) } diff --git a/src/components/TeamManagement/TopcoderManagementDialog.js b/src/components/TeamManagement/TopcoderManagementDialog.js index 55af258c3..56c13f942 100644 --- a/src/components/TeamManagement/TopcoderManagementDialog.js +++ b/src/components/TeamManagement/TopcoderManagementDialog.js @@ -13,7 +13,7 @@ import AutocompleteInputContainer from './AutocompleteInputContainer' import {PROJECT_MEMBER_INVITE_STATUS_REQUESTED, PROJECT_MEMBER_INVITE_STATUS_PENDING} from '../../config/constants' import PERMISSIONS from '../../config/permissions' import {checkPermission} from '../../helpers/permissions' -import { compareEmail } from '../../helpers/utils' +import { compareEmail, compareHandles } from '../../helpers/utils' class TopcoderManagementDialog extends React.Component { constructor(props) { @@ -100,7 +100,7 @@ class TopcoderManagementDialog extends React.Component { isSelectedMemberAlreadyInvited(topcoderTeamInvites = [], selectedMember) { return !!topcoderTeamInvites.find((invite) => ( (invite.email && compareEmail(invite.email, selectedMember.label)) || - (invite.userId && this.resolveUserHandle(invite.userId) === selectedMember.label) + (invite.userId && compareHandles(this.resolveUserHandle(invite.userId), selectedMember.label)) )) } diff --git a/src/helpers/utils.js b/src/helpers/utils.js index cb4b5b38e..7e56cda89 100644 --- a/src/helpers/utils.js +++ b/src/helpers/utils.js @@ -43,4 +43,16 @@ export const compareEmail = (email1, email2, options = { UNIQUE_GMAIL_VALIDATION } } return _.toLower(email1) === _.toLower(email2) -} \ No newline at end of file +} + +/** + * Helper method to check the uniqueness of two user handles + * + * @param {String} handle1 first user handle to compare + * @param {String} handle2 second user handle to compare + * + * @returns {Boolean} true if two user handles are same + */ +export const compareHandles = (handle1, handle2) => ( + (handle1 || '').toLowerCase() === (handle2 || '').toLowerCase() +) \ No newline at end of file