diff --git a/Dockerfile b/Dockerfile index dacb7a34..6c32ea36 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,6 +11,12 @@ COPY . . RUN yarn install RUN yarn run build +RUN \ + VERSION=$(git describe --tags --always --dirty=+) && \ + DATE=$(date +%Y-%m-%dT%H:%M:%S) && \ + sed -i "s/@@__VERSION__@@/${VERSION}/g;s/@@__BUILT__@@/${DATE}/g" ./dist/index.html + + # Install `serve` to run the application. RUN npm install -g serve diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..9ecb50e6 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,3863 @@ +{ + "name": "inowas-dss-client", + "version": "0.0.1", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "npm": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/npm/-/npm-5.8.0.tgz", + "integrity": "sha512-DowXzQwtSWDtbAjuWecuEiismR0VdNEYaL3VxNTYTdW6AGkYxfGk9LUZ/rt6etEyiH4IEk95HkJeGfXE5Rz9xQ==", + "requires": { + "JSONStream": "1.3.2", + "abbrev": "1.1.1", + "ansi-regex": "3.0.0", + "ansicolors": "0.3.2", + "ansistyles": "0.1.3", + "aproba": "1.2.0", + "archy": "1.0.0", + "bin-links": "1.1.0", + "bluebird": "3.5.1", + "cacache": "10.0.4", + "call-limit": "1.1.0", + "chownr": "1.0.1", + "cli-table2": "0.2.0", + "cmd-shim": "2.0.2", + "columnify": "1.5.4", + "config-chain": "1.1.11", + "debuglog": "1.0.1", + "detect-indent": "5.0.0", + "detect-newline": "2.1.0", + "dezalgo": "1.0.3", + "editor": "1.0.0", + "find-npm-prefix": "1.0.2", + "fs-vacuum": "1.2.10", + "fs-write-stream-atomic": "1.0.10", + "gentle-fs": "2.0.1", + "glob": "7.1.2", + "graceful-fs": "4.1.11", + "has-unicode": "2.0.1", + "hosted-git-info": "2.6.0", + "iferr": "0.1.5", + "imurmurhash": "0.1.4", + "inflight": "1.0.6", + "inherits": "2.0.3", + "ini": "1.3.5", + "init-package-json": "1.10.3", + "is-cidr": "1.0.0", + "json-parse-better-errors": "1.0.1", + "lazy-property": "1.0.0", + "libcipm": "1.6.0", + "libnpx": "10.0.1", + "lockfile": "1.0.3", + "lodash._baseindexof": "3.1.0", + "lodash._baseuniq": "4.6.0", + "lodash._bindcallback": "3.0.1", + "lodash._cacheindexof": "3.0.2", + "lodash._createcache": "3.1.2", + "lodash._getnative": "3.9.1", + "lodash.clonedeep": "4.5.0", + "lodash.restparam": "3.6.1", + "lodash.union": "4.6.0", + "lodash.uniq": "4.5.0", + "lodash.without": "4.4.0", + "lru-cache": "4.1.1", + "meant": "1.0.1", + "mississippi": "3.0.0", + "mkdirp": "0.5.1", + "move-concurrently": "1.0.1", + "nopt": "4.0.1", + "normalize-package-data": "2.4.0", + "npm-cache-filename": "1.0.2", + "npm-install-checks": "3.0.0", + "npm-lifecycle": "2.0.1", + "npm-package-arg": "6.0.0", + "npm-packlist": "1.1.10", + "npm-profile": "3.0.1", + "npm-registry-client": "8.5.1", + "npm-user-validate": "1.0.0", + "npmlog": "4.1.2", + "once": "1.4.0", + "opener": "1.4.3", + "osenv": "0.1.5", + "pacote": "7.6.1", + "path-is-inside": "1.0.2", + "promise-inflight": "1.0.1", + "qrcode-terminal": "0.11.0", + "query-string": "5.1.0", + "qw": "1.0.1", + "read": "1.0.7", + "read-cmd-shim": "1.0.1", + "read-installed": "4.0.3", + "read-package-json": "2.0.13", + "read-package-tree": "5.1.6", + "readable-stream": "2.3.5", + "readdir-scoped-modules": "1.0.2", + "request": "2.83.0", + "retry": "0.10.1", + "rimraf": "2.6.2", + "safe-buffer": "5.1.1", + "semver": "5.5.0", + "sha": "2.0.1", + "slide": "1.1.6", + "sorted-object": "2.0.1", + "sorted-union-stream": "2.1.3", + "ssri": "5.2.4", + "strip-ansi": "4.0.0", + "tar": "4.4.0", + "text-table": "0.2.0", + "uid-number": "0.0.6", + "umask": "1.1.0", + "unique-filename": "1.1.0", + "unpipe": "1.0.0", + "update-notifier": "2.3.0", + "uuid": "3.2.1", + "validate-npm-package-license": "3.0.1", + "validate-npm-package-name": "3.0.0", + "which": "1.3.0", + "worker-farm": "1.5.4", + "wrappy": "1.0.2", + "write-file-atomic": "2.3.0" + }, + "dependencies": { + "JSONStream": { + "version": "1.3.2", + "bundled": true, + "requires": { + "jsonparse": "1.3.1", + "through": "2.3.8" + }, + "dependencies": { + "jsonparse": { + "version": "1.3.1", + "bundled": true + }, + "through": { + "version": "2.3.8", + "bundled": true + } + } + }, + "abbrev": { + "version": "1.1.1", + "bundled": true + }, + "ansi-regex": { + "version": "3.0.0", + "bundled": true + }, + "ansicolors": { + "version": "0.3.2", + "bundled": true + }, + "ansistyles": { + "version": "0.1.3", + "bundled": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true + }, + "archy": { + "version": "1.0.0", + "bundled": true + }, + "bin-links": { + "version": "1.1.0", + "bundled": true, + "requires": { + "bluebird": "3.5.1", + "cmd-shim": "2.0.2", + "fs-write-stream-atomic": "1.0.10", + "gentle-fs": "2.0.1", + "graceful-fs": "4.1.11", + "slide": "1.1.6" + } + }, + "bluebird": { + "version": "3.5.1", + "bundled": true + }, + "cacache": { + "version": "10.0.4", + "bundled": true, + "requires": { + "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": { + "mississippi": { + "version": "2.0.0", + "bundled": true, + "requires": { + "concat-stream": "1.6.1", + "duplexify": "3.5.4", + "end-of-stream": "1.4.1", + "flush-write-stream": "1.0.2", + "from2": "2.3.0", + "parallel-transform": "1.1.0", + "pump": "2.0.1", + "pumpify": "1.4.0", + "stream-each": "1.2.2", + "through2": "2.0.3" + }, + "dependencies": { + "concat-stream": { + "version": "1.6.1", + "bundled": true, + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.3.5", + "typedarray": "0.0.6" + }, + "dependencies": { + "typedarray": { + "version": "0.0.6", + "bundled": true + } + } + }, + "duplexify": { + "version": "3.5.4", + "bundled": true, + "requires": { + "end-of-stream": "1.4.1", + "inherits": "2.0.3", + "readable-stream": "2.3.5", + "stream-shift": "1.0.0" + }, + "dependencies": { + "stream-shift": { + "version": "1.0.0", + "bundled": true + } + } + }, + "end-of-stream": { + "version": "1.4.1", + "bundled": true, + "requires": { + "once": "1.4.0" + } + }, + "flush-write-stream": { + "version": "1.0.2", + "bundled": true, + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.3.5" + } + }, + "from2": { + "version": "2.3.0", + "bundled": true, + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.3.5" + } + }, + "parallel-transform": { + "version": "1.1.0", + "bundled": true, + "requires": { + "cyclist": "0.2.2", + "inherits": "2.0.3", + "readable-stream": "2.3.5" + }, + "dependencies": { + "cyclist": { + "version": "0.2.2", + "bundled": true + } + } + }, + "pump": { + "version": "2.0.1", + "bundled": true, + "requires": { + "end-of-stream": "1.4.1", + "once": "1.4.0" + } + }, + "pumpify": { + "version": "1.4.0", + "bundled": true, + "requires": { + "duplexify": "3.5.4", + "inherits": "2.0.3", + "pump": "2.0.1" + } + }, + "stream-each": { + "version": "1.2.2", + "bundled": true, + "requires": { + "end-of-stream": "1.4.1", + "stream-shift": "1.0.0" + }, + "dependencies": { + "stream-shift": { + "version": "1.0.0", + "bundled": true + } + } + }, + "through2": { + "version": "2.0.3", + "bundled": true, + "requires": { + "readable-stream": "2.3.5", + "xtend": "4.0.1" + }, + "dependencies": { + "xtend": { + "version": "4.0.1", + "bundled": true + } + } + } + } + }, + "y18n": { + "version": "4.0.0", + "bundled": true + } + } + }, + "call-limit": { + "version": "1.1.0", + "bundled": true + }, + "chownr": { + "version": "1.0.1", + "bundled": true + }, + "cli-table2": { + "version": "0.2.0", + "bundled": true, + "requires": { + "colors": "1.1.2", + "lodash": "3.10.1", + "string-width": "1.0.2" + }, + "dependencies": { + "colors": { + "version": "1.1.2", + "bundled": true, + "optional": true + }, + "lodash": { + "version": "3.10.1", + "bundled": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + }, + "dependencies": { + "code-point-at": { + "version": "1.1.0", + "bundled": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "requires": { + "number-is-nan": "1.0.1" + }, + "dependencies": { + "number-is-nan": { + "version": "1.0.1", + "bundled": true + } + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "requires": { + "ansi-regex": "2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "bundled": true + } + } + } + } + } + } + }, + "cmd-shim": { + "version": "2.0.2", + "bundled": true, + "requires": { + "graceful-fs": "4.1.11", + "mkdirp": "0.5.1" + } + }, + "columnify": { + "version": "1.5.4", + "bundled": true, + "requires": { + "strip-ansi": "3.0.1", + "wcwidth": "1.0.1" + }, + "dependencies": { + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "requires": { + "ansi-regex": "2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "bundled": true + } + } + }, + "wcwidth": { + "version": "1.0.1", + "bundled": true, + "requires": { + "defaults": "1.0.3" + }, + "dependencies": { + "defaults": { + "version": "1.0.3", + "bundled": true, + "requires": { + "clone": "1.0.2" + }, + "dependencies": { + "clone": { + "version": "1.0.2", + "bundled": true + } + } + } + } + } + } + }, + "config-chain": { + "version": "1.1.11", + "bundled": true, + "requires": { + "ini": "1.3.5", + "proto-list": "1.2.4" + }, + "dependencies": { + "proto-list": { + "version": "1.2.4", + "bundled": true + } + } + }, + "debuglog": { + "version": "1.0.1", + "bundled": true + }, + "detect-indent": { + "version": "5.0.0", + "bundled": true + }, + "detect-newline": { + "version": "2.1.0", + "bundled": true + }, + "dezalgo": { + "version": "1.0.3", + "bundled": true, + "requires": { + "asap": "2.0.5", + "wrappy": "1.0.2" + }, + "dependencies": { + "asap": { + "version": "2.0.5", + "bundled": true + } + } + }, + "editor": { + "version": "1.0.0", + "bundled": true + }, + "find-npm-prefix": { + "version": "1.0.2", + "bundled": true + }, + "fs-vacuum": { + "version": "1.2.10", + "bundled": true, + "requires": { + "graceful-fs": "4.1.11", + "path-is-inside": "1.0.2", + "rimraf": "2.6.2" + } + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "bundled": true, + "requires": { + "graceful-fs": "4.1.11", + "iferr": "0.1.5", + "imurmurhash": "0.1.4", + "readable-stream": "2.3.5" + } + }, + "gentle-fs": { + "version": "2.0.1", + "bundled": true, + "requires": { + "aproba": "1.2.0", + "fs-vacuum": "1.2.10", + "graceful-fs": "4.1.11", + "iferr": "0.1.5", + "mkdirp": "0.5.1", + "path-is-inside": "1.0.2", + "read-cmd-shim": "1.0.1", + "slide": "1.1.6" + } + }, + "glob": { + "version": "7.1.2", + "bundled": 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" + }, + "dependencies": { + "fs.realpath": { + "version": "1.0.0", + "bundled": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "requires": { + "brace-expansion": "1.1.8" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.8", + "bundled": true, + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + }, + "dependencies": { + "balanced-match": { + "version": "1.0.0", + "bundled": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true + } + } + } + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true + } + } + }, + "graceful-fs": { + "version": "4.1.11", + "bundled": true + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true + }, + "hosted-git-info": { + "version": "2.6.0", + "bundled": true + }, + "iferr": { + "version": "0.1.5", + "bundled": true + }, + "imurmurhash": { + "version": "0.1.4", + "bundled": true + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true + }, + "ini": { + "version": "1.3.5", + "bundled": true + }, + "init-package-json": { + "version": "1.10.3", + "bundled": true, + "requires": { + "glob": "7.1.2", + "npm-package-arg": "6.0.0", + "promzard": "0.3.0", + "read": "1.0.7", + "read-package-json": "2.0.13", + "semver": "5.5.0", + "validate-npm-package-license": "3.0.1", + "validate-npm-package-name": "3.0.0" + }, + "dependencies": { + "promzard": { + "version": "0.3.0", + "bundled": true, + "requires": { + "read": "1.0.7" + } + } + } + }, + "is-cidr": { + "version": "1.0.0", + "bundled": true, + "requires": { + "cidr-regex": "1.0.6" + }, + "dependencies": { + "cidr-regex": { + "version": "1.0.6", + "bundled": true + } + } + }, + "json-parse-better-errors": { + "version": "1.0.1", + "bundled": true + }, + "lazy-property": { + "version": "1.0.0", + "bundled": true + }, + "libcipm": { + "version": "1.6.0", + "bundled": true, + "requires": { + "bin-links": "1.1.0", + "bluebird": "3.5.1", + "find-npm-prefix": "1.0.2", + "graceful-fs": "4.1.11", + "lock-verify": "2.0.0", + "npm-lifecycle": "2.0.1", + "npm-logical-tree": "1.2.1", + "npm-package-arg": "6.0.0", + "pacote": "7.6.1", + "protoduck": "5.0.0", + "read-package-json": "2.0.13", + "rimraf": "2.6.2", + "worker-farm": "1.5.4" + }, + "dependencies": { + "lock-verify": { + "version": "2.0.0", + "bundled": true, + "requires": { + "npm-package-arg": "5.1.2", + "semver": "5.5.0" + }, + "dependencies": { + "npm-package-arg": { + "version": "5.1.2", + "bundled": true, + "requires": { + "hosted-git-info": "2.6.0", + "osenv": "0.1.5", + "semver": "5.5.0", + "validate-npm-package-name": "3.0.0" + } + } + } + }, + "npm-logical-tree": { + "version": "1.2.1", + "bundled": true + }, + "protoduck": { + "version": "5.0.0", + "bundled": true, + "requires": { + "genfun": "4.0.1" + }, + "dependencies": { + "genfun": { + "version": "4.0.1", + "bundled": true + } + } + }, + "worker-farm": { + "version": "1.5.4", + "bundled": true, + "requires": { + "errno": "0.1.7", + "xtend": "4.0.1" + }, + "dependencies": { + "errno": { + "version": "0.1.7", + "bundled": true, + "requires": { + "prr": "1.0.1" + }, + "dependencies": { + "prr": { + "version": "1.0.1", + "bundled": true + } + } + }, + "xtend": { + "version": "4.0.1", + "bundled": true + } + } + } + } + }, + "libnpx": { + "version": "10.0.1", + "bundled": true, + "requires": { + "dotenv": "5.0.1", + "npm-package-arg": "6.0.0", + "rimraf": "2.6.2", + "safe-buffer": "5.1.1", + "update-notifier": "2.3.0", + "which": "1.3.0", + "y18n": "4.0.0", + "yargs": "11.0.0" + }, + "dependencies": { + "dotenv": { + "version": "5.0.1", + "bundled": true + }, + "y18n": { + "version": "4.0.0", + "bundled": true + }, + "yargs": { + "version": "11.0.0", + "bundled": true, + "requires": { + "cliui": "4.0.0", + "decamelize": "1.2.0", + "find-up": "2.1.0", + "get-caller-file": "1.0.2", + "os-locale": "2.1.0", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "2.1.1", + "which-module": "2.0.0", + "y18n": "3.2.1", + "yargs-parser": "9.0.2" + }, + "dependencies": { + "cliui": { + "version": "4.0.0", + "bundled": true, + "requires": { + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "wrap-ansi": "2.1.0" + }, + "dependencies": { + "wrap-ansi": { + "version": "2.1.0", + "bundled": true, + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1" + }, + "dependencies": { + "string-width": { + "version": "1.0.2", + "bundled": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + }, + "dependencies": { + "code-point-at": { + "version": "1.1.0", + "bundled": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "requires": { + "number-is-nan": "1.0.1" + }, + "dependencies": { + "number-is-nan": { + "version": "1.0.1", + "bundled": true + } + } + } + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "requires": { + "ansi-regex": "2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "bundled": true + } + } + } + } + } + } + }, + "decamelize": { + "version": "1.2.0", + "bundled": true + }, + "find-up": { + "version": "2.1.0", + "bundled": true, + "requires": { + "locate-path": "2.0.0" + }, + "dependencies": { + "locate-path": { + "version": "2.0.0", + "bundled": true, + "requires": { + "p-locate": "2.0.0", + "path-exists": "3.0.0" + }, + "dependencies": { + "p-locate": { + "version": "2.0.0", + "bundled": true, + "requires": { + "p-limit": "1.2.0" + }, + "dependencies": { + "p-limit": { + "version": "1.2.0", + "bundled": true, + "requires": { + "p-try": "1.0.0" + }, + "dependencies": { + "p-try": { + "version": "1.0.0", + "bundled": true + } + } + } + } + }, + "path-exists": { + "version": "3.0.0", + "bundled": true + } + } + } + } + }, + "get-caller-file": { + "version": "1.0.2", + "bundled": true + }, + "os-locale": { + "version": "2.1.0", + "bundled": true, + "requires": { + "execa": "0.7.0", + "lcid": "1.0.0", + "mem": "1.1.0" + }, + "dependencies": { + "execa": { + "version": "0.7.0", + "bundled": 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" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "bundled": true, + "requires": { + "lru-cache": "4.1.1", + "shebang-command": "1.2.0", + "which": "1.3.0" + }, + "dependencies": { + "shebang-command": { + "version": "1.2.0", + "bundled": true, + "requires": { + "shebang-regex": "1.0.0" + }, + "dependencies": { + "shebang-regex": { + "version": "1.0.0", + "bundled": true + } + } + } + } + }, + "get-stream": { + "version": "3.0.0", + "bundled": true + }, + "is-stream": { + "version": "1.1.0", + "bundled": true + }, + "npm-run-path": { + "version": "2.0.2", + "bundled": true, + "requires": { + "path-key": "2.0.1" + }, + "dependencies": { + "path-key": { + "version": "2.0.1", + "bundled": true + } + } + }, + "p-finally": { + "version": "1.0.0", + "bundled": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true + }, + "strip-eof": { + "version": "1.0.0", + "bundled": true + } + } + }, + "lcid": { + "version": "1.0.0", + "bundled": true, + "requires": { + "invert-kv": "1.0.0" + }, + "dependencies": { + "invert-kv": { + "version": "1.0.0", + "bundled": true + } + } + }, + "mem": { + "version": "1.1.0", + "bundled": true, + "requires": { + "mimic-fn": "1.2.0" + }, + "dependencies": { + "mimic-fn": { + "version": "1.2.0", + "bundled": true + } + } + } + } + }, + "require-directory": { + "version": "2.1.1", + "bundled": true + }, + "require-main-filename": { + "version": "1.0.1", + "bundled": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true + }, + "string-width": { + "version": "2.1.1", + "bundled": true, + "requires": { + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "2.0.0", + "bundled": true + } + } + }, + "which-module": { + "version": "2.0.0", + "bundled": true + }, + "y18n": { + "version": "3.2.1", + "bundled": true + }, + "yargs-parser": { + "version": "9.0.2", + "bundled": true, + "requires": { + "camelcase": "4.1.0" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "bundled": true + } + } + } + } + } + } + }, + "lockfile": { + "version": "1.0.3", + "bundled": true + }, + "lodash._baseindexof": { + "version": "3.1.0", + "bundled": true + }, + "lodash._baseuniq": { + "version": "4.6.0", + "bundled": true, + "requires": { + "lodash._createset": "4.0.3", + "lodash._root": "3.0.1" + }, + "dependencies": { + "lodash._createset": { + "version": "4.0.3", + "bundled": true + }, + "lodash._root": { + "version": "3.0.1", + "bundled": true + } + } + }, + "lodash._bindcallback": { + "version": "3.0.1", + "bundled": true + }, + "lodash._cacheindexof": { + "version": "3.0.2", + "bundled": true + }, + "lodash._createcache": { + "version": "3.1.2", + "bundled": true, + "requires": { + "lodash._getnative": "3.9.1" + } + }, + "lodash._getnative": { + "version": "3.9.1", + "bundled": true + }, + "lodash.clonedeep": { + "version": "4.5.0", + "bundled": true + }, + "lodash.restparam": { + "version": "3.6.1", + "bundled": true + }, + "lodash.union": { + "version": "4.6.0", + "bundled": true + }, + "lodash.uniq": { + "version": "4.5.0", + "bundled": true + }, + "lodash.without": { + "version": "4.4.0", + "bundled": true + }, + "lru-cache": { + "version": "4.1.1", + "bundled": true, + "requires": { + "pseudomap": "1.0.2", + "yallist": "2.1.2" + }, + "dependencies": { + "pseudomap": { + "version": "1.0.2", + "bundled": true + }, + "yallist": { + "version": "2.1.2", + "bundled": true + } + } + }, + "meant": { + "version": "1.0.1", + "bundled": true + }, + "mississippi": { + "version": "3.0.0", + "bundled": true, + "requires": { + "concat-stream": "1.6.1", + "duplexify": "3.5.4", + "end-of-stream": "1.4.1", + "flush-write-stream": "1.0.2", + "from2": "2.3.0", + "parallel-transform": "1.1.0", + "pump": "3.0.0", + "pumpify": "1.4.0", + "stream-each": "1.2.2", + "through2": "2.0.3" + }, + "dependencies": { + "concat-stream": { + "version": "1.6.1", + "bundled": true, + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.3.5", + "typedarray": "0.0.6" + }, + "dependencies": { + "typedarray": { + "version": "0.0.6", + "bundled": true + } + } + }, + "duplexify": { + "version": "3.5.4", + "bundled": true, + "requires": { + "end-of-stream": "1.4.1", + "inherits": "2.0.3", + "readable-stream": "2.3.5", + "stream-shift": "1.0.0" + }, + "dependencies": { + "stream-shift": { + "version": "1.0.0", + "bundled": true + } + } + }, + "end-of-stream": { + "version": "1.4.1", + "bundled": true, + "requires": { + "once": "1.4.0" + } + }, + "flush-write-stream": { + "version": "1.0.2", + "bundled": true, + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.3.5" + } + }, + "from2": { + "version": "2.3.0", + "bundled": true, + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.3.5" + } + }, + "parallel-transform": { + "version": "1.1.0", + "bundled": true, + "requires": { + "cyclist": "0.2.2", + "inherits": "2.0.3", + "readable-stream": "2.3.5" + }, + "dependencies": { + "cyclist": { + "version": "0.2.2", + "bundled": true + } + } + }, + "pump": { + "version": "3.0.0", + "bundled": true, + "requires": { + "end-of-stream": "1.4.1", + "once": "1.4.0" + } + }, + "pumpify": { + "version": "1.4.0", + "bundled": true, + "requires": { + "duplexify": "3.5.4", + "inherits": "2.0.3", + "pump": "2.0.1" + }, + "dependencies": { + "pump": { + "version": "2.0.1", + "bundled": true, + "requires": { + "end-of-stream": "1.4.1", + "once": "1.4.0" + } + } + } + }, + "stream-each": { + "version": "1.2.2", + "bundled": true, + "requires": { + "end-of-stream": "1.4.1", + "stream-shift": "1.0.0" + }, + "dependencies": { + "stream-shift": { + "version": "1.0.0", + "bundled": true + } + } + }, + "through2": { + "version": "2.0.3", + "bundled": true, + "requires": { + "readable-stream": "2.3.5", + "xtend": "4.0.1" + }, + "dependencies": { + "xtend": { + "version": "4.0.1", + "bundled": true + } + } + } + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "requires": { + "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "bundled": true + } + } + }, + "move-concurrently": { + "version": "1.0.1", + "bundled": true, + "requires": { + "aproba": "1.2.0", + "copy-concurrently": "1.0.5", + "fs-write-stream-atomic": "1.0.10", + "mkdirp": "0.5.1", + "rimraf": "2.6.2", + "run-queue": "1.0.3" + }, + "dependencies": { + "copy-concurrently": { + "version": "1.0.5", + "bundled": true, + "requires": { + "aproba": "1.2.0", + "fs-write-stream-atomic": "1.0.10", + "iferr": "0.1.5", + "mkdirp": "0.5.1", + "rimraf": "2.6.2", + "run-queue": "1.0.3" + } + }, + "run-queue": { + "version": "1.0.3", + "bundled": true, + "requires": { + "aproba": "1.2.0" + } + } + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "requires": { + "abbrev": "1.1.1", + "osenv": "0.1.5" + } + }, + "normalize-package-data": { + "version": "2.4.0", + "bundled": true, + "requires": { + "hosted-git-info": "2.6.0", + "is-builtin-module": "1.0.0", + "semver": "5.5.0", + "validate-npm-package-license": "3.0.1" + }, + "dependencies": { + "is-builtin-module": { + "version": "1.0.0", + "bundled": true, + "requires": { + "builtin-modules": "1.1.1" + }, + "dependencies": { + "builtin-modules": { + "version": "1.1.1", + "bundled": true + } + } + } + } + }, + "npm-cache-filename": { + "version": "1.0.2", + "bundled": true + }, + "npm-install-checks": { + "version": "3.0.0", + "bundled": true, + "requires": { + "semver": "5.5.0" + } + }, + "npm-lifecycle": { + "version": "2.0.1", + "bundled": true, + "requires": { + "byline": "5.0.0", + "graceful-fs": "4.1.11", + "node-gyp": "3.6.2", + "resolve-from": "4.0.0", + "slide": "1.1.6", + "uid-number": "0.0.6", + "umask": "1.1.0", + "which": "1.3.0" + }, + "dependencies": { + "byline": { + "version": "5.0.0", + "bundled": true + }, + "node-gyp": { + "version": "3.6.2", + "bundled": true, + "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.5", + "request": "2.83.0", + "rimraf": "2.6.2", + "semver": "5.3.0", + "tar": "2.2.1", + "which": "1.3.0" + }, + "dependencies": { + "fstream": { + "version": "1.0.11", + "bundled": true, + "requires": { + "graceful-fs": "4.1.11", + "inherits": "2.0.3", + "mkdirp": "0.5.1", + "rimraf": "2.6.2" + } + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "requires": { + "brace-expansion": "1.1.11" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + }, + "dependencies": { + "balanced-match": { + "version": "1.0.0", + "bundled": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true + } + } + } + } + }, + "nopt": { + "version": "3.0.6", + "bundled": true, + "requires": { + "abbrev": "1.1.1" + } + }, + "semver": { + "version": "5.3.0", + "bundled": true + }, + "tar": { + "version": "2.2.1", + "bundled": true, + "requires": { + "block-stream": "0.0.9", + "fstream": "1.0.11", + "inherits": "2.0.3" + }, + "dependencies": { + "block-stream": { + "version": "0.0.9", + "bundled": true, + "requires": { + "inherits": "2.0.3" + } + } + } + } + } + }, + "resolve-from": { + "version": "4.0.0", + "bundled": true + } + } + }, + "npm-package-arg": { + "version": "6.0.0", + "bundled": true, + "requires": { + "hosted-git-info": "2.6.0", + "osenv": "0.1.5", + "semver": "5.5.0", + "validate-npm-package-name": "3.0.0" + } + }, + "npm-packlist": { + "version": "1.1.10", + "bundled": true, + "requires": { + "ignore-walk": "3.0.1", + "npm-bundled": "1.0.3" + }, + "dependencies": { + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "requires": { + "minimatch": "3.0.4" + }, + "dependencies": { + "minimatch": { + "version": "3.0.4", + "bundled": true, + "requires": { + "brace-expansion": "1.1.8" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.8", + "bundled": true, + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + }, + "dependencies": { + "balanced-match": { + "version": "1.0.0", + "bundled": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true + } + } + } + } + } + } + }, + "npm-bundled": { + "version": "1.0.3", + "bundled": true + } + } + }, + "npm-profile": { + "version": "3.0.1", + "bundled": true, + "requires": { + "aproba": "1.2.0", + "make-fetch-happen": "2.6.0" + }, + "dependencies": { + "make-fetch-happen": { + "version": "2.6.0", + "bundled": true, + "requires": { + "agentkeepalive": "3.3.0", + "cacache": "10.0.4", + "http-cache-semantics": "3.8.1", + "http-proxy-agent": "2.0.0", + "https-proxy-agent": "2.1.1", + "lru-cache": "4.1.1", + "mississippi": "1.3.1", + "node-fetch-npm": "2.0.2", + "promise-retry": "1.1.1", + "socks-proxy-agent": "3.0.1", + "ssri": "5.2.4" + }, + "dependencies": { + "agentkeepalive": { + "version": "3.3.0", + "bundled": true, + "requires": { + "humanize-ms": "1.2.1" + }, + "dependencies": { + "humanize-ms": { + "version": "1.2.1", + "bundled": true, + "requires": { + "ms": "2.1.1" + }, + "dependencies": { + "ms": { + "version": "2.1.1", + "bundled": true + } + } + } + } + }, + "http-cache-semantics": { + "version": "3.8.1", + "bundled": true + }, + "http-proxy-agent": { + "version": "2.0.0", + "bundled": true, + "requires": { + "agent-base": "4.2.0", + "debug": "2.6.9" + }, + "dependencies": { + "agent-base": { + "version": "4.2.0", + "bundled": true, + "requires": { + "es6-promisify": "5.0.0" + }, + "dependencies": { + "es6-promisify": { + "version": "5.0.0", + "bundled": true, + "requires": { + "es6-promise": "4.2.4" + }, + "dependencies": { + "es6-promise": { + "version": "4.2.4", + "bundled": true + } + } + } + } + }, + "debug": { + "version": "2.6.9", + "bundled": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "bundled": true + } + } + } + } + }, + "https-proxy-agent": { + "version": "2.1.1", + "bundled": true, + "requires": { + "agent-base": "4.2.0", + "debug": "3.1.0" + }, + "dependencies": { + "agent-base": { + "version": "4.2.0", + "bundled": true, + "requires": { + "es6-promisify": "5.0.0" + }, + "dependencies": { + "es6-promisify": { + "version": "5.0.0", + "bundled": true, + "requires": { + "es6-promise": "4.2.4" + }, + "dependencies": { + "es6-promise": { + "version": "4.2.4", + "bundled": true + } + } + } + } + }, + "debug": { + "version": "3.1.0", + "bundled": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "bundled": true + } + } + } + } + }, + "mississippi": { + "version": "1.3.1", + "bundled": true, + "requires": { + "concat-stream": "1.6.0", + "duplexify": "3.5.3", + "end-of-stream": "1.4.1", + "flush-write-stream": "1.0.2", + "from2": "2.3.0", + "parallel-transform": "1.1.0", + "pump": "1.0.3", + "pumpify": "1.4.0", + "stream-each": "1.2.2", + "through2": "2.0.3" + }, + "dependencies": { + "concat-stream": { + "version": "1.6.0", + "bundled": true, + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.3.5", + "typedarray": "0.0.6" + }, + "dependencies": { + "typedarray": { + "version": "0.0.6", + "bundled": true + } + } + }, + "duplexify": { + "version": "3.5.3", + "bundled": true, + "requires": { + "end-of-stream": "1.4.1", + "inherits": "2.0.3", + "readable-stream": "2.3.5", + "stream-shift": "1.0.0" + }, + "dependencies": { + "stream-shift": { + "version": "1.0.0", + "bundled": true + } + } + }, + "end-of-stream": { + "version": "1.4.1", + "bundled": true, + "requires": { + "once": "1.4.0" + } + }, + "flush-write-stream": { + "version": "1.0.2", + "bundled": true, + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.3.5" + } + }, + "from2": { + "version": "2.3.0", + "bundled": true, + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.3.5" + } + }, + "parallel-transform": { + "version": "1.1.0", + "bundled": true, + "requires": { + "cyclist": "0.2.2", + "inherits": "2.0.3", + "readable-stream": "2.3.5" + }, + "dependencies": { + "cyclist": { + "version": "0.2.2", + "bundled": true + } + } + }, + "pump": { + "version": "1.0.3", + "bundled": true, + "requires": { + "end-of-stream": "1.4.1", + "once": "1.4.0" + } + }, + "pumpify": { + "version": "1.4.0", + "bundled": true, + "requires": { + "duplexify": "3.5.3", + "inherits": "2.0.3", + "pump": "2.0.1" + }, + "dependencies": { + "pump": { + "version": "2.0.1", + "bundled": true, + "requires": { + "end-of-stream": "1.4.1", + "once": "1.4.0" + } + } + } + }, + "stream-each": { + "version": "1.2.2", + "bundled": true, + "requires": { + "end-of-stream": "1.4.1", + "stream-shift": "1.0.0" + }, + "dependencies": { + "stream-shift": { + "version": "1.0.0", + "bundled": true + } + } + }, + "through2": { + "version": "2.0.3", + "bundled": true, + "requires": { + "readable-stream": "2.3.5", + "xtend": "4.0.1" + }, + "dependencies": { + "xtend": { + "version": "4.0.1", + "bundled": true + } + } + } + } + }, + "node-fetch-npm": { + "version": "2.0.2", + "bundled": true, + "requires": { + "encoding": "0.1.12", + "json-parse-better-errors": "1.0.1", + "safe-buffer": "5.1.1" + }, + "dependencies": { + "encoding": { + "version": "0.1.12", + "bundled": true, + "requires": { + "iconv-lite": "0.4.19" + }, + "dependencies": { + "iconv-lite": { + "version": "0.4.19", + "bundled": true + } + } + }, + "json-parse-better-errors": { + "version": "1.0.1", + "bundled": true + } + } + }, + "promise-retry": { + "version": "1.1.1", + "bundled": true, + "requires": { + "err-code": "1.1.2", + "retry": "0.10.1" + }, + "dependencies": { + "err-code": { + "version": "1.1.2", + "bundled": true + } + } + }, + "socks-proxy-agent": { + "version": "3.0.1", + "bundled": true, + "requires": { + "agent-base": "4.2.0", + "socks": "1.1.10" + }, + "dependencies": { + "agent-base": { + "version": "4.2.0", + "bundled": true, + "requires": { + "es6-promisify": "5.0.0" + }, + "dependencies": { + "es6-promisify": { + "version": "5.0.0", + "bundled": true, + "requires": { + "es6-promise": "4.2.4" + }, + "dependencies": { + "es6-promise": { + "version": "4.2.4", + "bundled": true + } + } + } + } + }, + "socks": { + "version": "1.1.10", + "bundled": true, + "requires": { + "ip": "1.1.5", + "smart-buffer": "1.1.15" + }, + "dependencies": { + "ip": { + "version": "1.1.5", + "bundled": true + }, + "smart-buffer": { + "version": "1.1.15", + "bundled": true + } + } + } + } + } + } + } + } + }, + "npm-registry-client": { + "version": "8.5.1", + "bundled": true, + "requires": { + "concat-stream": "1.6.1", + "graceful-fs": "4.1.11", + "normalize-package-data": "2.4.0", + "npm-package-arg": "6.0.0", + "npmlog": "4.1.2", + "once": "1.4.0", + "request": "2.83.0", + "retry": "0.10.1", + "safe-buffer": "5.1.1", + "semver": "5.5.0", + "slide": "1.1.6", + "ssri": "5.2.4" + }, + "dependencies": { + "concat-stream": { + "version": "1.6.1", + "bundled": true, + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.3.5", + "typedarray": "0.0.6" + }, + "dependencies": { + "typedarray": { + "version": "0.0.6", + "bundled": true + } + } + } + } + }, + "npm-user-validate": { + "version": "1.0.0", + "bundled": true + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "requires": { + "are-we-there-yet": "1.1.4", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" + }, + "dependencies": { + "are-we-there-yet": { + "version": "1.1.4", + "bundled": true, + "requires": { + "delegates": "1.0.0", + "readable-stream": "2.3.5" + }, + "dependencies": { + "delegates": { + "version": "1.0.0", + "bundled": true + } + } + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "requires": { + "aproba": "1.2.0", + "console-control-strings": "1.1.0", + "has-unicode": "2.0.1", + "object-assign": "4.1.1", + "signal-exit": "3.0.2", + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wide-align": "1.1.2" + }, + "dependencies": { + "object-assign": { + "version": "4.1.1", + "bundled": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + }, + "dependencies": { + "code-point-at": { + "version": "1.1.0", + "bundled": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "requires": { + "number-is-nan": "1.0.1" + }, + "dependencies": { + "number-is-nan": { + "version": "1.0.1", + "bundled": true + } + } + } + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "requires": { + "ansi-regex": "2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "bundled": true + } + } + }, + "wide-align": { + "version": "1.1.2", + "bundled": true, + "requires": { + "string-width": "1.0.2" + } + } + } + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true + } + } + }, + "once": { + "version": "1.4.0", + "bundled": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "opener": { + "version": "1.4.3", + "bundled": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + }, + "dependencies": { + "os-homedir": { + "version": "1.0.2", + "bundled": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true + } + } + }, + "pacote": { + "version": "7.6.1", + "bundled": true, + "requires": { + "bluebird": "3.5.1", + "cacache": "10.0.4", + "get-stream": "3.0.0", + "glob": "7.1.2", + "lru-cache": "4.1.1", + "make-fetch-happen": "2.6.0", + "minimatch": "3.0.4", + "mississippi": "3.0.0", + "mkdirp": "0.5.1", + "normalize-package-data": "2.4.0", + "npm-package-arg": "6.0.0", + "npm-packlist": "1.1.10", + "npm-pick-manifest": "2.1.0", + "osenv": "0.1.5", + "promise-inflight": "1.0.1", + "promise-retry": "1.1.1", + "protoduck": "5.0.0", + "rimraf": "2.6.2", + "safe-buffer": "5.1.1", + "semver": "5.5.0", + "ssri": "5.2.4", + "tar": "4.4.0", + "unique-filename": "1.1.0", + "which": "1.3.0" + }, + "dependencies": { + "get-stream": { + "version": "3.0.0", + "bundled": true + }, + "make-fetch-happen": { + "version": "2.6.0", + "bundled": true, + "requires": { + "agentkeepalive": "3.4.0", + "cacache": "10.0.4", + "http-cache-semantics": "3.8.1", + "http-proxy-agent": "2.1.0", + "https-proxy-agent": "2.2.0", + "lru-cache": "4.1.1", + "mississippi": "1.3.1", + "node-fetch-npm": "2.0.2", + "promise-retry": "1.1.1", + "socks-proxy-agent": "3.0.1", + "ssri": "5.2.4" + }, + "dependencies": { + "agentkeepalive": { + "version": "3.4.0", + "bundled": true, + "requires": { + "humanize-ms": "1.2.1" + }, + "dependencies": { + "humanize-ms": { + "version": "1.2.1", + "bundled": true, + "requires": { + "ms": "2.1.1" + }, + "dependencies": { + "ms": { + "version": "2.1.1", + "bundled": true + } + } + } + } + }, + "http-cache-semantics": { + "version": "3.8.1", + "bundled": true + }, + "http-proxy-agent": { + "version": "2.1.0", + "bundled": true, + "requires": { + "agent-base": "4.2.0", + "debug": "3.1.0" + }, + "dependencies": { + "agent-base": { + "version": "4.2.0", + "bundled": true, + "requires": { + "es6-promisify": "5.0.0" + }, + "dependencies": { + "es6-promisify": { + "version": "5.0.0", + "bundled": true, + "requires": { + "es6-promise": "4.2.4" + }, + "dependencies": { + "es6-promise": { + "version": "4.2.4", + "bundled": true + } + } + } + } + }, + "debug": { + "version": "3.1.0", + "bundled": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "bundled": true + } + } + } + } + }, + "https-proxy-agent": { + "version": "2.2.0", + "bundled": true, + "requires": { + "agent-base": "4.2.0", + "debug": "3.1.0" + }, + "dependencies": { + "agent-base": { + "version": "4.2.0", + "bundled": true, + "requires": { + "es6-promisify": "5.0.0" + }, + "dependencies": { + "es6-promisify": { + "version": "5.0.0", + "bundled": true, + "requires": { + "es6-promise": "4.2.4" + }, + "dependencies": { + "es6-promise": { + "version": "4.2.4", + "bundled": true + } + } + } + } + }, + "debug": { + "version": "3.1.0", + "bundled": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "bundled": true + } + } + } + } + }, + "mississippi": { + "version": "1.3.1", + "bundled": true, + "requires": { + "concat-stream": "1.6.1", + "duplexify": "3.5.4", + "end-of-stream": "1.4.1", + "flush-write-stream": "1.0.2", + "from2": "2.3.0", + "parallel-transform": "1.1.0", + "pump": "1.0.3", + "pumpify": "1.4.0", + "stream-each": "1.2.2", + "through2": "2.0.3" + }, + "dependencies": { + "concat-stream": { + "version": "1.6.1", + "bundled": true, + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.3.5", + "typedarray": "0.0.6" + }, + "dependencies": { + "typedarray": { + "version": "0.0.6", + "bundled": true + } + } + }, + "duplexify": { + "version": "3.5.4", + "bundled": true, + "requires": { + "end-of-stream": "1.4.1", + "inherits": "2.0.3", + "readable-stream": "2.3.5", + "stream-shift": "1.0.0" + }, + "dependencies": { + "stream-shift": { + "version": "1.0.0", + "bundled": true + } + } + }, + "end-of-stream": { + "version": "1.4.1", + "bundled": true, + "requires": { + "once": "1.4.0" + } + }, + "flush-write-stream": { + "version": "1.0.2", + "bundled": true, + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.3.5" + } + }, + "from2": { + "version": "2.3.0", + "bundled": true, + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.3.5" + } + }, + "parallel-transform": { + "version": "1.1.0", + "bundled": true, + "requires": { + "cyclist": "0.2.2", + "inherits": "2.0.3", + "readable-stream": "2.3.5" + }, + "dependencies": { + "cyclist": { + "version": "0.2.2", + "bundled": true + } + } + }, + "pump": { + "version": "1.0.3", + "bundled": true, + "requires": { + "end-of-stream": "1.4.1", + "once": "1.4.0" + } + }, + "pumpify": { + "version": "1.4.0", + "bundled": true, + "requires": { + "duplexify": "3.5.4", + "inherits": "2.0.3", + "pump": "2.0.1" + }, + "dependencies": { + "pump": { + "version": "2.0.1", + "bundled": true, + "requires": { + "end-of-stream": "1.4.1", + "once": "1.4.0" + } + } + } + }, + "stream-each": { + "version": "1.2.2", + "bundled": true, + "requires": { + "end-of-stream": "1.4.1", + "stream-shift": "1.0.0" + }, + "dependencies": { + "stream-shift": { + "version": "1.0.0", + "bundled": true + } + } + }, + "through2": { + "version": "2.0.3", + "bundled": true, + "requires": { + "readable-stream": "2.3.5", + "xtend": "4.0.1" + }, + "dependencies": { + "xtend": { + "version": "4.0.1", + "bundled": true + } + } + } + } + }, + "node-fetch-npm": { + "version": "2.0.2", + "bundled": true, + "requires": { + "encoding": "0.1.12", + "json-parse-better-errors": "1.0.1", + "safe-buffer": "5.1.1" + }, + "dependencies": { + "encoding": { + "version": "0.1.12", + "bundled": true, + "requires": { + "iconv-lite": "0.4.19" + }, + "dependencies": { + "iconv-lite": { + "version": "0.4.19", + "bundled": true + } + } + }, + "json-parse-better-errors": { + "version": "1.0.1", + "bundled": true + } + } + }, + "socks-proxy-agent": { + "version": "3.0.1", + "bundled": true, + "requires": { + "agent-base": "4.2.0", + "socks": "1.1.10" + }, + "dependencies": { + "agent-base": { + "version": "4.2.0", + "bundled": true, + "requires": { + "es6-promisify": "5.0.0" + }, + "dependencies": { + "es6-promisify": { + "version": "5.0.0", + "bundled": true, + "requires": { + "es6-promise": "4.2.4" + }, + "dependencies": { + "es6-promise": { + "version": "4.2.4", + "bundled": true + } + } + } + } + }, + "socks": { + "version": "1.1.10", + "bundled": true, + "requires": { + "ip": "1.1.5", + "smart-buffer": "1.1.15" + }, + "dependencies": { + "ip": { + "version": "1.1.5", + "bundled": true + }, + "smart-buffer": { + "version": "1.1.15", + "bundled": true + } + } + } + } + } + } + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "requires": { + "brace-expansion": "1.1.11" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + }, + "dependencies": { + "balanced-match": { + "version": "1.0.0", + "bundled": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true + } + } + } + } + }, + "npm-pick-manifest": { + "version": "2.1.0", + "bundled": true, + "requires": { + "npm-package-arg": "6.0.0", + "semver": "5.5.0" + } + }, + "promise-retry": { + "version": "1.1.1", + "bundled": true, + "requires": { + "err-code": "1.1.2", + "retry": "0.10.1" + }, + "dependencies": { + "err-code": { + "version": "1.1.2", + "bundled": true + } + } + }, + "protoduck": { + "version": "5.0.0", + "bundled": true, + "requires": { + "genfun": "4.0.1" + }, + "dependencies": { + "genfun": { + "version": "4.0.1", + "bundled": true + } + } + } + } + }, + "path-is-inside": { + "version": "1.0.2", + "bundled": true + }, + "promise-inflight": { + "version": "1.0.1", + "bundled": true + }, + "qrcode-terminal": { + "version": "0.11.0", + "bundled": true + }, + "query-string": { + "version": "5.1.0", + "bundled": true, + "requires": { + "decode-uri-component": "0.2.0", + "object-assign": "4.1.1", + "strict-uri-encode": "1.1.0" + }, + "dependencies": { + "decode-uri-component": { + "version": "0.2.0", + "bundled": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true + }, + "strict-uri-encode": { + "version": "1.1.0", + "bundled": true + } + } + }, + "qw": { + "version": "1.0.1", + "bundled": true + }, + "read": { + "version": "1.0.7", + "bundled": true, + "requires": { + "mute-stream": "0.0.7" + }, + "dependencies": { + "mute-stream": { + "version": "0.0.7", + "bundled": true + } + } + }, + "read-cmd-shim": { + "version": "1.0.1", + "bundled": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, + "read-installed": { + "version": "4.0.3", + "bundled": true, + "requires": { + "debuglog": "1.0.1", + "graceful-fs": "4.1.11", + "read-package-json": "2.0.13", + "readdir-scoped-modules": "1.0.2", + "semver": "5.5.0", + "slide": "1.1.6", + "util-extend": "1.0.3" + }, + "dependencies": { + "util-extend": { + "version": "1.0.3", + "bundled": true + } + } + }, + "read-package-json": { + "version": "2.0.13", + "bundled": true, + "requires": { + "glob": "7.1.2", + "graceful-fs": "4.1.11", + "json-parse-better-errors": "1.0.1", + "normalize-package-data": "2.4.0", + "slash": "1.0.0" + }, + "dependencies": { + "json-parse-better-errors": { + "version": "1.0.1", + "bundled": true + }, + "slash": { + "version": "1.0.0", + "bundled": true + } + } + }, + "read-package-tree": { + "version": "5.1.6", + "bundled": true, + "requires": { + "debuglog": "1.0.1", + "dezalgo": "1.0.3", + "once": "1.4.0", + "read-package-json": "2.0.13", + "readdir-scoped-modules": "1.0.2" + } + }, + "readable-stream": { + "version": "2.3.5", + "bundled": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "2.0.0", + "safe-buffer": "5.1.1", + "string_decoder": "1.0.3", + "util-deprecate": "1.0.2" + }, + "dependencies": { + "core-util-is": { + "version": "1.0.2", + "bundled": true + }, + "isarray": { + "version": "1.0.0", + "bundled": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true + }, + "string_decoder": { + "version": "1.0.3", + "bundled": true, + "requires": { + "safe-buffer": "5.1.1" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true + } + } + }, + "readdir-scoped-modules": { + "version": "1.0.2", + "bundled": true, + "requires": { + "debuglog": "1.0.1", + "dezalgo": "1.0.3", + "graceful-fs": "4.1.11", + "once": "1.4.0" + } + }, + "request": { + "version": "2.83.0", + "bundled": true, + "requires": { + "aws-sign2": "0.7.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.3.1", + "har-validator": "5.0.3", + "hawk": "6.0.2", + "http-signature": "1.2.0", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.17", + "oauth-sign": "0.8.2", + "performance-now": "2.1.0", + "qs": "6.5.1", + "safe-buffer": "5.1.1", + "stringstream": "0.0.5", + "tough-cookie": "2.3.3", + "tunnel-agent": "0.6.0", + "uuid": "3.2.1" + }, + "dependencies": { + "aws-sign2": { + "version": "0.7.0", + "bundled": true + }, + "aws4": { + "version": "1.6.0", + "bundled": true + }, + "caseless": { + "version": "0.12.0", + "bundled": true + }, + "combined-stream": { + "version": "1.0.5", + "bundled": true, + "requires": { + "delayed-stream": "1.0.0" + }, + "dependencies": { + "delayed-stream": { + "version": "1.0.0", + "bundled": true + } + } + }, + "extend": { + "version": "3.0.1", + "bundled": true + }, + "forever-agent": { + "version": "0.6.1", + "bundled": true + }, + "form-data": { + "version": "2.3.1", + "bundled": true, + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.17" + }, + "dependencies": { + "asynckit": { + "version": "0.4.0", + "bundled": true + } + } + }, + "har-validator": { + "version": "5.0.3", + "bundled": true, + "requires": { + "ajv": "5.2.3", + "har-schema": "2.0.0" + }, + "dependencies": { + "ajv": { + "version": "5.2.3", + "bundled": true, + "requires": { + "co": "4.6.0", + "fast-deep-equal": "1.0.0", + "json-schema-traverse": "0.3.1", + "json-stable-stringify": "1.0.1" + }, + "dependencies": { + "co": { + "version": "4.6.0", + "bundled": true + }, + "fast-deep-equal": { + "version": "1.0.0", + "bundled": true + }, + "json-schema-traverse": { + "version": "0.3.1", + "bundled": true + }, + "json-stable-stringify": { + "version": "1.0.1", + "bundled": true, + "requires": { + "jsonify": "0.0.0" + }, + "dependencies": { + "jsonify": { + "version": "0.0.0", + "bundled": true + } + } + } + } + }, + "har-schema": { + "version": "2.0.0", + "bundled": true + } + } + }, + "hawk": { + "version": "6.0.2", + "bundled": true, + "requires": { + "boom": "4.3.1", + "cryptiles": "3.1.2", + "hoek": "4.2.0", + "sntp": "2.0.2" + }, + "dependencies": { + "boom": { + "version": "4.3.1", + "bundled": true, + "requires": { + "hoek": "4.2.0" + } + }, + "cryptiles": { + "version": "3.1.2", + "bundled": true, + "requires": { + "boom": "5.2.0" + }, + "dependencies": { + "boom": { + "version": "5.2.0", + "bundled": true, + "requires": { + "hoek": "4.2.0" + } + } + } + }, + "hoek": { + "version": "4.2.0", + "bundled": true + }, + "sntp": { + "version": "2.0.2", + "bundled": true, + "requires": { + "hoek": "4.2.0" + } + } + } + }, + "http-signature": { + "version": "1.2.0", + "bundled": true, + "requires": { + "assert-plus": "1.0.0", + "jsprim": "1.4.1", + "sshpk": "1.13.1" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true + }, + "jsprim": { + "version": "1.4.1", + "bundled": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + }, + "dependencies": { + "extsprintf": { + "version": "1.3.0", + "bundled": true + }, + "json-schema": { + "version": "0.2.3", + "bundled": true + }, + "verror": { + "version": "1.10.0", + "bundled": true, + "requires": { + "assert-plus": "1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "1.3.0" + }, + "dependencies": { + "core-util-is": { + "version": "1.0.2", + "bundled": true + } + } + } + } + }, + "sshpk": { + "version": "1.13.1", + "bundled": true, + "requires": { + "asn1": "0.2.3", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.1", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.1", + "getpass": "0.1.7", + "jsbn": "0.1.1", + "tweetnacl": "0.14.5" + }, + "dependencies": { + "asn1": { + "version": "0.2.3", + "bundled": true + }, + "bcrypt-pbkdf": { + "version": "1.0.1", + "bundled": true, + "optional": true, + "requires": { + "tweetnacl": "0.14.5" + } + }, + "dashdash": { + "version": "1.14.1", + "bundled": true, + "requires": { + "assert-plus": "1.0.0" + } + }, + "ecc-jsbn": { + "version": "0.1.1", + "bundled": true, + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "getpass": { + "version": "0.1.7", + "bundled": true, + "requires": { + "assert-plus": "1.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "bundled": true, + "optional": true + }, + "tweetnacl": { + "version": "0.14.5", + "bundled": true, + "optional": true + } + } + } + } + }, + "is-typedarray": { + "version": "1.0.0", + "bundled": true + }, + "isstream": { + "version": "0.1.2", + "bundled": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "bundled": true + }, + "mime-types": { + "version": "2.1.17", + "bundled": true, + "requires": { + "mime-db": "1.30.0" + }, + "dependencies": { + "mime-db": { + "version": "1.30.0", + "bundled": true + } + } + }, + "oauth-sign": { + "version": "0.8.2", + "bundled": true + }, + "performance-now": { + "version": "2.1.0", + "bundled": true + }, + "qs": { + "version": "6.5.1", + "bundled": true + }, + "stringstream": { + "version": "0.0.5", + "bundled": true + }, + "tough-cookie": { + "version": "2.3.3", + "bundled": true, + "requires": { + "punycode": "1.4.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "bundled": true + } + } + }, + "tunnel-agent": { + "version": "0.6.0", + "bundled": true, + "requires": { + "safe-buffer": "5.1.1" + } + } + } + }, + "retry": { + "version": "0.10.1", + "bundled": true + }, + "rimraf": { + "version": "2.6.2", + "bundled": true, + "requires": { + "glob": "7.1.2" + } + }, + "safe-buffer": { + "version": "5.1.1", + "bundled": true + }, + "semver": { + "version": "5.5.0", + "bundled": true + }, + "sha": { + "version": "2.0.1", + "bundled": true, + "requires": { + "graceful-fs": "4.1.11", + "readable-stream": "2.3.5" + } + }, + "slide": { + "version": "1.1.6", + "bundled": true + }, + "sorted-object": { + "version": "2.0.1", + "bundled": true + }, + "sorted-union-stream": { + "version": "2.1.3", + "bundled": true, + "requires": { + "from2": "1.3.0", + "stream-iterate": "1.2.0" + }, + "dependencies": { + "from2": { + "version": "1.3.0", + "bundled": true, + "requires": { + "inherits": "2.0.3", + "readable-stream": "1.1.14" + }, + "dependencies": { + "readable-stream": { + "version": "1.1.14", + "bundled": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + }, + "dependencies": { + "core-util-is": { + "version": "1.0.2", + "bundled": true + }, + "isarray": { + "version": "0.0.1", + "bundled": true + }, + "string_decoder": { + "version": "0.10.31", + "bundled": true + } + } + } + } + }, + "stream-iterate": { + "version": "1.2.0", + "bundled": true, + "requires": { + "readable-stream": "2.3.5", + "stream-shift": "1.0.0" + }, + "dependencies": { + "stream-shift": { + "version": "1.0.0", + "bundled": true + } + } + } + } + }, + "ssri": { + "version": "5.2.4", + "bundled": true, + "requires": { + "safe-buffer": "5.1.1" + } + }, + "strip-ansi": { + "version": "4.0.0", + "bundled": true, + "requires": { + "ansi-regex": "3.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "bundled": true + } + } + }, + "tar": { + "version": "4.4.0", + "bundled": true, + "requires": { + "chownr": "1.0.1", + "fs-minipass": "1.2.5", + "minipass": "2.2.1", + "minizlib": "1.1.0", + "mkdirp": "0.5.1", + "yallist": "3.0.2" + }, + "dependencies": { + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "requires": { + "minipass": "2.2.1" + } + }, + "minipass": { + "version": "2.2.1", + "bundled": true, + "requires": { + "yallist": "3.0.2" + } + }, + "minizlib": { + "version": "1.1.0", + "bundled": true, + "requires": { + "minipass": "2.2.1" + } + }, + "yallist": { + "version": "3.0.2", + "bundled": true + } + } + }, + "text-table": { + "version": "0.2.0", + "bundled": true + }, + "uid-number": { + "version": "0.0.6", + "bundled": true + }, + "umask": { + "version": "1.1.0", + "bundled": true + }, + "unique-filename": { + "version": "1.1.0", + "bundled": true, + "requires": { + "unique-slug": "2.0.0" + }, + "dependencies": { + "unique-slug": { + "version": "2.0.0", + "bundled": true, + "requires": { + "imurmurhash": "0.1.4" + } + } + } + }, + "unpipe": { + "version": "1.0.0", + "bundled": true + }, + "update-notifier": { + "version": "2.3.0", + "bundled": true, + "requires": { + "boxen": "1.2.1", + "chalk": "2.1.0", + "configstore": "3.1.1", + "import-lazy": "2.1.0", + "is-installed-globally": "0.1.0", + "is-npm": "1.0.0", + "latest-version": "3.1.0", + "semver-diff": "2.1.0", + "xdg-basedir": "3.0.0" + }, + "dependencies": { + "boxen": { + "version": "1.2.1", + "bundled": true, + "requires": { + "ansi-align": "2.0.0", + "camelcase": "4.1.0", + "chalk": "2.1.0", + "cli-boxes": "1.0.0", + "string-width": "2.1.1", + "term-size": "1.2.0", + "widest-line": "1.0.0" + }, + "dependencies": { + "ansi-align": { + "version": "2.0.0", + "bundled": true, + "requires": { + "string-width": "2.1.1" + } + }, + "camelcase": { + "version": "4.1.0", + "bundled": true + }, + "cli-boxes": { + "version": "1.0.0", + "bundled": true + }, + "string-width": { + "version": "2.1.1", + "bundled": true, + "requires": { + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "2.0.0", + "bundled": true + } + } + }, + "term-size": { + "version": "1.2.0", + "bundled": true, + "requires": { + "execa": "0.7.0" + }, + "dependencies": { + "execa": { + "version": "0.7.0", + "bundled": 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" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "bundled": true, + "requires": { + "lru-cache": "4.1.1", + "shebang-command": "1.2.0", + "which": "1.3.0" + }, + "dependencies": { + "shebang-command": { + "version": "1.2.0", + "bundled": true, + "requires": { + "shebang-regex": "1.0.0" + }, + "dependencies": { + "shebang-regex": { + "version": "1.0.0", + "bundled": true + } + } + } + } + }, + "get-stream": { + "version": "3.0.0", + "bundled": true + }, + "is-stream": { + "version": "1.1.0", + "bundled": true + }, + "npm-run-path": { + "version": "2.0.2", + "bundled": true, + "requires": { + "path-key": "2.0.1" + }, + "dependencies": { + "path-key": { + "version": "2.0.1", + "bundled": true + } + } + }, + "p-finally": { + "version": "1.0.0", + "bundled": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true + }, + "strip-eof": { + "version": "1.0.0", + "bundled": true + } + } + } + } + }, + "widest-line": { + "version": "1.0.0", + "bundled": true, + "requires": { + "string-width": "1.0.2" + }, + "dependencies": { + "string-width": { + "version": "1.0.2", + "bundled": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + }, + "dependencies": { + "code-point-at": { + "version": "1.1.0", + "bundled": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "requires": { + "number-is-nan": "1.0.1" + }, + "dependencies": { + "number-is-nan": { + "version": "1.0.1", + "bundled": true + } + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "requires": { + "ansi-regex": "2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "bundled": true + } + } + } + } + } + } + } + } + }, + "chalk": { + "version": "2.1.0", + "bundled": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.4.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "bundled": true, + "requires": { + "color-convert": "1.9.0" + }, + "dependencies": { + "color-convert": { + "version": "1.9.0", + "bundled": true, + "requires": { + "color-name": "1.1.3" + }, + "dependencies": { + "color-name": { + "version": "1.1.3", + "bundled": true + } + } + } + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "bundled": true + }, + "supports-color": { + "version": "4.4.0", + "bundled": true, + "requires": { + "has-flag": "2.0.0" + }, + "dependencies": { + "has-flag": { + "version": "2.0.0", + "bundled": true + } + } + } + } + }, + "configstore": { + "version": "3.1.1", + "bundled": true, + "requires": { + "dot-prop": "4.2.0", + "graceful-fs": "4.1.11", + "make-dir": "1.0.0", + "unique-string": "1.0.0", + "write-file-atomic": "2.3.0", + "xdg-basedir": "3.0.0" + }, + "dependencies": { + "dot-prop": { + "version": "4.2.0", + "bundled": true, + "requires": { + "is-obj": "1.0.1" + }, + "dependencies": { + "is-obj": { + "version": "1.0.1", + "bundled": true + } + } + }, + "make-dir": { + "version": "1.0.0", + "bundled": true, + "requires": { + "pify": "2.3.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "bundled": true + } + } + }, + "unique-string": { + "version": "1.0.0", + "bundled": true, + "requires": { + "crypto-random-string": "1.0.0" + }, + "dependencies": { + "crypto-random-string": { + "version": "1.0.0", + "bundled": true + } + } + } + } + }, + "import-lazy": { + "version": "2.1.0", + "bundled": true + }, + "is-installed-globally": { + "version": "0.1.0", + "bundled": true, + "requires": { + "global-dirs": "0.1.0", + "is-path-inside": "1.0.0" + }, + "dependencies": { + "global-dirs": { + "version": "0.1.0", + "bundled": true, + "requires": { + "ini": "1.3.5" + } + }, + "is-path-inside": { + "version": "1.0.0", + "bundled": true, + "requires": { + "path-is-inside": "1.0.2" + } + } + } + }, + "is-npm": { + "version": "1.0.0", + "bundled": true + }, + "latest-version": { + "version": "3.1.0", + "bundled": true, + "requires": { + "package-json": "4.0.1" + }, + "dependencies": { + "package-json": { + "version": "4.0.1", + "bundled": true, + "requires": { + "got": "6.7.1", + "registry-auth-token": "3.3.1", + "registry-url": "3.1.0", + "semver": "5.5.0" + }, + "dependencies": { + "got": { + "version": "6.7.1", + "bundled": true, + "requires": { + "create-error-class": "3.0.2", + "duplexer3": "0.1.4", + "get-stream": "3.0.0", + "is-redirect": "1.0.0", + "is-retry-allowed": "1.1.0", + "is-stream": "1.1.0", + "lowercase-keys": "1.0.0", + "safe-buffer": "5.1.1", + "timed-out": "4.0.1", + "unzip-response": "2.0.1", + "url-parse-lax": "1.0.0" + }, + "dependencies": { + "create-error-class": { + "version": "3.0.2", + "bundled": true, + "requires": { + "capture-stack-trace": "1.0.0" + }, + "dependencies": { + "capture-stack-trace": { + "version": "1.0.0", + "bundled": true + } + } + }, + "duplexer3": { + "version": "0.1.4", + "bundled": true + }, + "get-stream": { + "version": "3.0.0", + "bundled": true + }, + "is-redirect": { + "version": "1.0.0", + "bundled": true + }, + "is-retry-allowed": { + "version": "1.1.0", + "bundled": true + }, + "is-stream": { + "version": "1.1.0", + "bundled": true + }, + "lowercase-keys": { + "version": "1.0.0", + "bundled": true + }, + "timed-out": { + "version": "4.0.1", + "bundled": true + }, + "unzip-response": { + "version": "2.0.1", + "bundled": true + }, + "url-parse-lax": { + "version": "1.0.0", + "bundled": true, + "requires": { + "prepend-http": "1.0.4" + }, + "dependencies": { + "prepend-http": { + "version": "1.0.4", + "bundled": true + } + } + } + } + }, + "registry-auth-token": { + "version": "3.3.1", + "bundled": true, + "requires": { + "rc": "1.2.1", + "safe-buffer": "5.1.1" + }, + "dependencies": { + "rc": { + "version": "1.2.1", + "bundled": true, + "requires": { + "deep-extend": "0.4.2", + "ini": "1.3.5", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" + }, + "dependencies": { + "deep-extend": { + "version": "0.4.2", + "bundled": true + }, + "minimist": { + "version": "1.2.0", + "bundled": true + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true + } + } + } + } + }, + "registry-url": { + "version": "3.1.0", + "bundled": true, + "requires": { + "rc": "1.2.1" + }, + "dependencies": { + "rc": { + "version": "1.2.1", + "bundled": true, + "requires": { + "deep-extend": "0.4.2", + "ini": "1.3.5", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" + }, + "dependencies": { + "deep-extend": { + "version": "0.4.2", + "bundled": true + }, + "minimist": { + "version": "1.2.0", + "bundled": true + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true + } + } + } + } + } + } + } + } + }, + "semver-diff": { + "version": "2.1.0", + "bundled": true, + "requires": { + "semver": "5.5.0" + } + }, + "xdg-basedir": { + "version": "3.0.0", + "bundled": true + } + } + }, + "uuid": { + "version": "3.2.1", + "bundled": true + }, + "validate-npm-package-license": { + "version": "3.0.1", + "bundled": true, + "requires": { + "spdx-correct": "1.0.2", + "spdx-expression-parse": "1.0.4" + }, + "dependencies": { + "spdx-correct": { + "version": "1.0.2", + "bundled": true, + "requires": { + "spdx-license-ids": "1.2.2" + }, + "dependencies": { + "spdx-license-ids": { + "version": "1.2.2", + "bundled": true + } + } + }, + "spdx-expression-parse": { + "version": "1.0.4", + "bundled": true + } + } + }, + "validate-npm-package-name": { + "version": "3.0.0", + "bundled": true, + "requires": { + "builtins": "1.0.3" + }, + "dependencies": { + "builtins": { + "version": "1.0.3", + "bundled": true + } + } + }, + "which": { + "version": "1.3.0", + "bundled": true, + "requires": { + "isexe": "2.0.0" + }, + "dependencies": { + "isexe": { + "version": "2.0.0", + "bundled": true + } + } + }, + "worker-farm": { + "version": "1.5.4", + "bundled": true, + "requires": { + "errno": "0.1.7", + "xtend": "4.0.1" + }, + "dependencies": { + "errno": { + "version": "0.1.7", + "bundled": true, + "requires": { + "prr": "1.0.1" + }, + "dependencies": { + "prr": { + "version": "1.0.1", + "bundled": true + } + } + }, + "xtend": { + "version": "4.0.1", + "bundled": true + } + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true + }, + "write-file-atomic": { + "version": "2.3.0", + "bundled": true, + "requires": { + "graceful-fs": "4.1.11", + "imurmurhash": "0.1.4", + "signal-exit": "3.0.2" + }, + "dependencies": { + "signal-exit": { + "version": "3.0.2", + "bundled": true + } + } + } + } + } + } +} diff --git a/package.json b/package.json index ff5ac14c..e656a40b 100644 --- a/package.json +++ b/package.json @@ -20,22 +20,32 @@ "dependencies": { "@turf/turf": "^5.0.4", "axios": "^0.15.3", + "bessel": "^1.0.2", "classnames": "^2.2.5", "gwflowjs": "https://github.com/inowas/gwflowjs.git#master", + "incomplete-gamma": "^1.0.1", "js-md5": "^0.6.0", + "leaflet": "^1.2.0", "leaflet-control-geocoder": "^1.5.8", + "leaflet-draw": "^0.4.10", "leaflet-geometryutil": "^0.8.0", "lodash": "^4.17.4", "moment": "^2.18.1", "normalizr": "^3.2.2", + "npm": "^5.8.0", "papaparse": "^4.3.6", "percentile": "^1.2.0", "prop-types": "latest", + "radium": "^0.18.1", "rainbowvis.js": "https://github.com/inowas/RainbowVis-JS.git#master", "raw-loader": "^0.5.1", "react": "^15.4.2", + "react-c3js": "<=0.1.13", "react-dom": "^15.4.2", "react-edit": "^6.3.0", + "react-iframe": "^0.0.4", + "react-leaflet": "^1.5.0", + "react-leaflet-draw": "^0.16.0", "react-leaflet-fullscreen": "^0.0.5", "react-list": "^0.8.6", "react-paginate": "^4.4.3", @@ -47,17 +57,23 @@ "reactabular-sticky": "^8.9.0", "reactabular-table": "^8.9.0", "reactabular-virtualized": "^8.10.1", + "recharts": "^0.21.2", "recompose": "^0.26.0", + "redbox-react": "^1.5.0", "redux": "^3.6.0", + "redux-persist": "^4.5.0", "redux-promise-middleware": "^4.2.0", "redux-saga": "^0.15.4", "redux-thunk": "^2.2.0", "reselect": "^3.0.1", "searchtabular": "^1.5.1", "selectabular": "^2.0.1", + "semantic-ui-css": "^2.2.12", "semantic-ui-react": "^0.75.1", "sortabular": "^1.4.1", - "table-resolver": "^3.1.1" + "table-resolver": "^3.1.1", + "uglifyjs-webpack-plugin": "^1.2.3", + "uuid": "^3.1.0" }, "devDependencies": { "autoprefixer": "^6.7.7", @@ -86,36 +102,24 @@ "html-webpack-plugin": "^2.28.0", "imagemin-webpack-plugin": "^1.4.4", "json-loader": "^0.5.4", - "leaflet": "^1.2.0", - "leaflet-draw": "^0.4.10", "less": "^2.7.2", "less-loader": "^4.0.3", - "levenshtein": "^1.0.5", "optimize-css-assets-webpack-plugin": "^1.3.0", "postcss-loader": "^1.3.3", - "radium": "^0.18.1", "radium-plugin-linter": "^1.0.1", "radium-plugin-prefix-all": "^1.0.1", "radium-plugin-validity-pseudos": "^1.0.0", "react-addons-transition-group": "^15.4.2", "react-autocomplete-cli": "^0.0.3", - "react-c3js": "<=0.1.13", "react-hot-loader": "next", - "react-iframe": "^0.0.4", - "react-leaflet": "^1.5.0", - "react-leaflet-draw": "^0.16.0", "react-svg-loader": "^1.1.1", - "recharts": "^0.21.2", "redux-devtools-extension": "2.13", "redux-logger": "^3.0.1", - "redux-persist": "^4.5.0", "rimraf": "^2.6.0", - "semantic-ui-css": "^2.2.12", "source-map-loader": "^0.2.1", "stats-webpack-plugin": "^0.4.3", "style-loader": "^0.16.1", "url-loader": "^0.5.7", - "uuid": "^3.1.0", "webpack": "^2.2.1", "webpack-dev-server": "^2.5.1" } diff --git a/src/actions/T06.js b/src/actions/T06.js deleted file mode 100644 index 5ff00c8f..00000000 --- a/src/actions/T06.js +++ /dev/null @@ -1,6 +0,0 @@ -export function changeCondition(condition){ - return { - type: 'CHANGE_TOOL_T06_CONDITION', - payload: condition - } -} diff --git a/src/actions/T07.js b/src/actions/T07.js deleted file mode 100644 index 86c83a6d..00000000 --- a/src/actions/T07.js +++ /dev/null @@ -1,574 +0,0 @@ -import BoundingBox from '../model/BoundingBox'; -import ConfiguredAxios from 'ConfiguredAxios'; -import Coordinate from '../model/Coordinate'; -import LayerNumber from '../model/LayerNumber'; -import ModflowBoundary from '../model/ModflowBoundary'; -import ModflowCalculationResult from '../model/ModflowModelResult'; -import ModflowLayerValues from '../model/ModflowLayerValues'; -import ModflowModel from '../model/ModflowModel'; -import ModflowModelBoundaries from '../model/ModflowModelBoundaries'; -import ResultType from '../model/ResultType'; -import TimeSeries from '../model/TimeSeries'; -import TimeSeriesResult from '../model/TimeSeriesResult'; -import TotalTimes from '../model/TotalTimes'; -import TwoDData from '../model/TwoDData'; -import config from '../config'; -import { getApiKey } from '../reducers/user'; - -export function setTotalTimes(totalTimes) { - if (totalTimes instanceof TotalTimes === false) { - throw Error('Expected first param to be instance of TotalTimes'); - } - - return { - type: 'T07_SET_TOTAL_TIMES', - payload: totalTimes - }; -} - -export function addModel(model) { - return { - type: 'T07_ADD_MODEL', - payload: model - }; -} - -export function clearModels() { - return { - type: 'T07_CLEAR_MODELS', - }; -} - -export function reloadDone() { - return { - type: 'T07_RELOAD_DONE' - }; -} - -export function resizeDone() { - return { - type: 'T07_RESIZE_DONE' - }; -} - -export function setModelBoundaries(boundaries) { - if (boundaries instanceof ModflowModelBoundaries === false) { - throw Error( - 'Expected first param to be instance of ModflowModelBoundaries' - ); - } - - return { - type: 'T07_SET_MODEL_BOUNDARIES', - payload: boundaries - }; -} - -export function setLayerValues(layerValues) { - if (layerValues instanceof ModflowLayerValues === false) { - throw Error( - 'Expected first param to be instance of ModflowModelBoundaries' - ); - } - - return { - type: 'T07_SET_MODEL_LAYERVALUES', - payload: layerValues - }; -} - -export function setResultsT07A(modflowCalculationResult) { - if ( - modflowCalculationResult instanceof ModflowCalculationResult === - false - ) { - throw Error( - 'Expected first param to be instance of ModflowCalculationResult' - ); - } - - return { - type: 'T07A_SET_MODEL_RESULT', - payload: modflowCalculationResult - }; -} - -export function setResultsT07B(modflowCalculationResult) { - if ( - modflowCalculationResult instanceof ModflowCalculationResult === - false - ) { - throw Error( - 'Expected first param to be instance of ModflowCalculationResult' - ); - } - - return { - type: 'T07B_SET_RESULT', - payload: modflowCalculationResult - }; -} - -// export function setBounds( bounds ) { -// return { -// type: 'T07_SET_BOUNDS', -// payload: { -// bounds -// } -// }; -// } -// -// export function setMapView( center, zoom ) { -// return { -// type: 'T07_SET_MAP_VIEW', -// payload: { -// center, -// zoom -// } -// }; -// } - -export function setMapPosition(mapPosition) { - return { - type: 'T07_SET_MAP_POSITION', - payload: mapPosition - }; -} - -export function fetchModelBoundaries(id) { - return (dispatch, getState) => { - return dispatch({ - type: 'FETCH_DATA', - payload: { - promise: ConfiguredAxios.get( - '/modflowmodels/' + id + '/boundaries.json', - { - headers: { - 'X-AUTH-TOKEN': getApiKey(getState().user) - } - } - ) - } - }) - .then(({ action }) => { - const modelId = id; - const boundaries = action.payload.data; - - boundaries.map(b => { - return ModflowBoundary.fromParameters( - b.id, - b.name, - b.type, - b.geometry, - b.metadata - ); - }); - - const payload = new ModflowModelBoundaries(modelId, boundaries); - dispatch(setModelBoundaries(payload)); - }) - .catch(error => { - // eslint-disable-next-line no-console - console.error(error); - }); - }; -} - -export function fetchLayerValues(calculationId) { - return (dispatch, getState) => { - return dispatch({ - type: 'FETCH_DATA', - payload: { - promise: ConfiguredAxios.get( - '/calculations/' + - calculationId + - '/results/layervalues.json', - { headers: { 'X-AUTH-TOKEN': getApiKey(getState().user) } } - ) - } - }) - .then(({ action }) => { - dispatch( - setLayerValues( - new ModflowLayerValues( - calculationId, - action.payload.data - ) - ) - ); - }) - .catch(error => { - // eslint-disable-next-line no-console - console.error(error); - }); - }; -} - -export function fetchTotalTimes(calculationId, type, layer) { - return (dispatch, getState) => { - return dispatch({ - type: 'FETCH_DATA', - payload: { - promise: ConfiguredAxios.get( - '/calculations/' + calculationId + '/results/times.json', - { headers: { 'X-AUTH-TOKEN': getApiKey(getState().user) } } - ) - } - }) - .then(({ action }) => { - dispatch( - setTotalTimes( - new TotalTimes( - calculationId, - type, - layer, - action.payload.data.start_date_time, - action.payload.data.end_date_time, - action.payload.data.total_times - ) - ) - ); - }) - .catch(error => { - // eslint-disable-next-line no-console - console.error(error); - }); - }; -} - -export function setupT07b() { - return { - type: 'T07B_SETUP' - }; -} - -export function fetchDetails(id, onSuccess) { - return (dispatch, getState) => { - return dispatch({ - type: 'FETCH_DATA', - payload: { - promise: ConfiguredAxios.get( - '/scenarioanalyses/' + id + '.json', - { headers: { 'X-AUTH-TOKEN': getApiKey(getState().user) } } - ) - } - }) - .then(({ action }) => { - const area = action.payload.data.geometry; - const boundingBoxPlain = action.payload.data.bounding_box; - const boundingBox = new BoundingBox( - new Coordinate( - boundingBoxPlain[0][1], - boundingBoxPlain[0][0] - ), - new Coordinate( - boundingBoxPlain[1][1], - boundingBoxPlain[1][0] - ) - ); - const gridSize = action.payload.data.grid_size; - - const baseModel = ModflowModel.fromProps( - action.payload.data.base_model.id, - true, - area, - action.payload.data.base_model.name, - action.payload.data.base_model.description, - boundingBox, - gridSize.n_x, - gridSize.n_y, - action.payload.data.base_model.calculation_id, - true, - action.payload.data.base_model.permissions, - ); - - dispatch(clearModels()); - dispatch(addModel(baseModel)); - dispatch(setMapPosition({ bounds: boundingBox.toArray() })); - dispatch(fetchModelBoundaries(baseModel.modelId)); - dispatch(fetchLayerValues(baseModel.calculationId)); - dispatch( - fetchTotalTimes( - baseModel.calculationId, - new ResultType('head'), - new LayerNumber(0) - ) - ); - - const scenarios = action.payload.data.scenarios; - for (let i = 0; i < scenarios.length; i++) { - const sc = scenarios[i]; - const scenario = ModflowModel.fromProps( - sc.id, - false, - area, - sc.name, - sc.description, - boundingBox, - gridSize.n_x, - gridSize.n_y, - sc.calculation_id, - i === scenarios.length - 1, - baseModel.permissions - ); - - dispatch(addModel(scenario)); - dispatch(fetchModelBoundaries(scenario.modelId)); - } - - onSuccess && onSuccess(dispatch); - }) - .catch(error => { - // eslint-disable-next-line no-console - console.error(error); - }); - }; -} - -export function updateResultsT07A( - calculationId, - resultType, - layerNumber, - totalTime -) { - const imageURL = config.baseURL + '/image'; - const url = - '/calculations/' + - calculationId + - '/results/types/' + - resultType.toString() + - '/layers/' + - layerNumber.toString() + - '/totims/' + - totalTime.toString(); - - return (dispatch, getState) => { - return dispatch({ - type: 'FETCH_DATA', - payload: { - promise: ConfiguredAxios.get(url, { - headers: { 'X-AUTH-TOKEN': getApiKey(getState().user) } - }) - } - }) - .then(({ action }) => { - dispatch( - setResultsT07A( - new ModflowCalculationResult( - calculationId, - layerNumber, - resultType, - totalTime, - action.payload.data, - imageURL + url + '.png' - ) - ) - ); - }) - .catch(error => { - // eslint-disable-next-line no-console - console.error(error); - }); - }; -} - -export function updateResultsT07B( - calculation1, - calculation2, - resultType, - layerNumber, - totalTime -) { - const imageURL = config.baseURL + '/image'; - const url = - '/calculations/' + - calculation1 + - '/results/differences/' + - calculation2 + - '/types/' + - resultType.toString() + - '/layers/' + - layerNumber.toString() + - '/totims/' + - totalTime.toString(); - - return (dispatch, getState) => { - return dispatch({ - type: 'FETCH_DATA', - payload: { - promise: ConfiguredAxios.get(url + '.json', { - headers: { 'X-AUTH-TOKEN': getApiKey(getState().user) } - }) - } - }) - .then(({ action }) => { - dispatch( - setResultsT07B( - new ModflowCalculationResult( - calculation1, - layerNumber, - resultType, - totalTime, - action.payload.data, - imageURL + url + '.png' - ) - ) - ); - }) - .catch(error => { - // eslint-disable-next-line no-console - console.error(error); - }); - }; -} - -export function toggleModelSelection(modelId) { - return { - type: 'T07_TOGGLE_MODEL_SELECTION', - payload: modelId - }; -} - -export function setSelectedLayer(layer) { - if (layer instanceof LayerNumber === false) { - throw Error('Expected first param to be instance of LayerNumber'); - } - - return { - type: 'T07_SET_SELECTED_LAYER', - payload: layer - }; -} - -export function setSelectedResultType(resultType) { - if (resultType instanceof ResultType === false) { - throw Error('Expected first param to be instance of ResultType'); - } - - return { - type: 'T07_SET_SELECTED_RESULT_TYPE', - payload: resultType - }; -} - -export function setSelectedTotalTimeIndex(index) { - return { - type: 'T07_SET_SELECTED_TOTAL_TIME_INDEX', - payload: index - }; -} - -export function setActiveCoordinate(coordinate) { - return { - type: 'T07_SET_ACTIVE_COORDINATE', - payload: coordinate - }; -} - -export function setSelectedModelIdsT07B(selectedModelIds) { - return { - type: 'T07B_SET_SELECTED_MODEL_IDS', - payload: selectedModelIds - }; -} - -export function addTimeSeriesPoint(timeSeriesPoint) { - return { - type: 'T07_ADD_TIME_SERIES_POINT', - payload: timeSeriesPoint - }; -} - -export function setTimeSeriesPointSelection(index, selected) { - return { - type: 'T07_SET_TIME_SERIES_POINT_SELECTION', - payload: { - index, - selected - } - }; -} - -export function setTimeSeriesPointResult(coordinate, timeSeriesResult) { - return { - type: 'T07_SET_TIME_SERIES_POINT_RESULT', - payload: { - coordinate, - timeSeriesResult - } - }; -} - -export function fetchTimeSeries( - coordinate, - calculationId, - resultType, - layerNumber, - x, - y, - startDate -) { - return (dispatch, getState) => { - return dispatch({ - type: 'FETCH_DATA', - payload: { - promise: ConfiguredAxios.get( - '/calculations/' + - calculationId + - '/results/timeseries/types/' + - resultType.toString() + - '/layers/' + - layerNumber.toString() + - '/x/' + - x + - '/y/' + - y + - '.json', - { headers: { 'X-AUTH-TOKEN': getApiKey(getState().user) } } - ) - } - }) - .then(({ action }) => { - const data = []; - Object.keys(action.payload.data).map(key => { - data.push(new TwoDData(key, action.payload.data[key])); - }); - const timeSeries = new TimeSeries(startDate, data); - const timeSeriesResult = new TimeSeriesResult( - calculationId, - resultType, - layerNumber - ); - timeSeriesResult.timeSeries = timeSeries; - - dispatch( - setTimeSeriesPointResult(coordinate, timeSeriesResult) - ); - }) - .catch(error => { - // eslint-disable-next-line no-console - console.error(error); - }); - }; -} - -export function cloneScenario(id) { - return (dispatch, getState) => { - return dispatch({ - type: 'FETCH_DATA', - payload: { - // TODO - promise: ConfiguredAxios.post('scenarioanalysis...', { - headers: { 'X-AUTH-TOKEN': getApiKey(getState().user) } - }) - } - }) - .then(({ action }) => { - console.warn(action.payload.data); - }) - .catch(error => { - // eslint-disable-next-line no-console - console.error(error); - }); - }; -} diff --git a/src/actions/T08.js b/src/actions/T08.js deleted file mode 100644 index e45e6659..00000000 --- a/src/actions/T08.js +++ /dev/null @@ -1,30 +0,0 @@ -export function changeInfiltration(newInfilType){ - return { - type: 'CHANGE_TOOL_T08_INFILTRATION', - payload: newInfilType - } -} -export function changeSettings(newSetting){ - return { - type: 'CHANGE_TOOL_T08_SETTINGS', - payload: newSetting - } -} -export function changeParameter(parameter){ - return { - type: 'CHANGE_TOOL_T08_PARAMETER', - payload: parameter - } -} - -export function calculate(){ - return { - type: 'CALCULATE_TOOL_T08' - } -} - -export function reset(){ - return { - type: 'RESET_TOOL_T08' - } -} diff --git a/src/actions/T09A.js b/src/actions/T09A.js deleted file mode 100644 index 3a0b9292..00000000 --- a/src/actions/T09A.js +++ /dev/null @@ -1,18 +0,0 @@ -export function changeParameter(parameter) { - return { - type: 'CHANGE_TOOL_T09A_PARAMETER', - payload: parameter - } -}; - -export function calculate() { - return { - type: 'CALCULATE_TOOL_T09A' - }; -} - -export function reset() { - return { - type: 'RESET_TOOL_T09A' - }; -} diff --git a/src/actions/T09B.js b/src/actions/T09B.js deleted file mode 100644 index 8524e45d..00000000 --- a/src/actions/T09B.js +++ /dev/null @@ -1,18 +0,0 @@ -export function changeParameter(parameter) { - return { - type: 'CHANGE_TOOL_T09B_PARAMETER', - payload: parameter - } -} - -export function calculate() { - return { - type: 'CALCULATE_TOOL_T09B' - } -} - -export function reset() { - return { - type: 'RESET_TOOL_T09B' - } -} diff --git a/src/actions/T09C.js b/src/actions/T09C.js deleted file mode 100644 index c9dbf773..00000000 --- a/src/actions/T09C.js +++ /dev/null @@ -1,19 +0,0 @@ - -export function changeParameter(parameter){ - return { - type: 'CHANGE_TOOL_T09C_PARAMETER', - payload: parameter - } -} - -export function calculate(){ - return { - type: 'CALCULATE_TOOL_T09C' - } -} - -export function reset(){ - return { - type: 'RESET_TOOL_T09C' - } -} diff --git a/src/actions/T09D.js b/src/actions/T09D.js deleted file mode 100644 index 6a8466e9..00000000 --- a/src/actions/T09D.js +++ /dev/null @@ -1,27 +0,0 @@ -export function changeSettings(newSetting) { - return { - type: "CHANGE_TOOL_T09D_SETTINGS", - payload: { - 'selected': newSetting - } - } -} - -export function changeParameter(parameter){ - return { - type: "CHANGE_TOOL_T09D_PARAMETER", - payload: parameter - } -} - -export function calculate(){ - return { - type: "CALCULATE_TOOL_T09D" - } -} - -export function reset(){ - return { - type: "RESET_TOOL_T09D" - } -} diff --git a/src/actions/T09E.js b/src/actions/T09E.js deleted file mode 100644 index 0a6db8da..00000000 --- a/src/actions/T09E.js +++ /dev/null @@ -1,27 +0,0 @@ -export function changeSettings(newSetting) { - return { - type: "CHANGE_TOOL_T09E_SETTINGS", - payload: { - 'selected': newSetting - } - } -} - -export function changeParameter(parameter){ - return { - type: "CHANGE_TOOL_T09E_PARAMETER", - payload: parameter - } -} - -export function calculate(){ - return { - type: "CALCULATE_TOOL_T09E" - } -} - -export function reset(){ - return { - type: "RESET_TOOL_T09E" - } -} diff --git a/src/actions/T12.js b/src/actions/T12.js deleted file mode 100644 index fb14e649..00000000 --- a/src/actions/T12.js +++ /dev/null @@ -1,37 +0,0 @@ -export function changeMFI(parameter){ - return { - type: 'CHANGE_TOOL_T12_MFI', - payload: parameter - } -} -export function useDataInGraph(parameter){ - return { - type: 'CHANGE_TOOL_T12_USEDATA', - payload: parameter - } -} -export function changeParameter(parameter){ - return { - type: 'CHANGE_TOOL_T12_PARAMETER', - payload: parameter - } -} - -export function changeCorrections(parameter){ - return { - type: 'CHANGE_TOOL_T12_CORRECTIONS', - payload: parameter - } -} - -export function calculate(){ - return { - type: 'CALCULATE_TOOL_T12' - } -} - -export function reset(){ - return { - type: 'RESET_TOOL_T12' - } -} diff --git a/src/actions/T13A.js b/src/actions/T13A.js deleted file mode 100644 index 4a834fc7..00000000 --- a/src/actions/T13A.js +++ /dev/null @@ -1,19 +0,0 @@ - -export function changeParameter(parameter){ - return { - type: 'CHANGE_TOOL_T13A_PARAMETER', - payload: parameter - } -} - -export function calculate(){ - return { - type: 'CALCULATE_TOOL_T13A' - } -} - -export function reset(){ - return { - type: 'RESET_TOOL_T13A' - } -} diff --git a/src/actions/T13B.js b/src/actions/T13B.js deleted file mode 100644 index ecbda04e..00000000 --- a/src/actions/T13B.js +++ /dev/null @@ -1,27 +0,0 @@ -export function changeSettings(newSetting) { - return { - type: "CHANGE_TOOL_T13B_SETTINGS", - payload: { - 'selected': newSetting - } - } -} - -export function changeParameter(parameter){ - return { - type: 'CHANGE_TOOL_T13B_PARAMETER', - payload: parameter - } -} - -export function calculate(){ - return { - type: 'CALCULATE_TOOL_T13B' - } -} - -export function reset(){ - return { - type: 'RESET_TOOL_T13B' - } -} diff --git a/src/actions/T13C.js b/src/actions/T13C.js deleted file mode 100644 index 3aaf8ec8..00000000 --- a/src/actions/T13C.js +++ /dev/null @@ -1,18 +0,0 @@ -export function changeParameter(parameter){ - return { - type: 'CHANGE_TOOL_T13C_PARAMETER', - payload: parameter - } -} - -export function calculate(){ - return { - type: 'CALCULATE_TOOL_T13C' - } -} - -export function reset(){ - return { - type: 'RESET_TOOL_T13C' - } -} \ No newline at end of file diff --git a/src/actions/T13D.js b/src/actions/T13D.js deleted file mode 100644 index be9d0c3a..00000000 --- a/src/actions/T13D.js +++ /dev/null @@ -1,18 +0,0 @@ -export function changeParameter(parameter){ - return { - type: 'CHANGE_TOOL_T13B_PARAMETER', - payload: parameter - } -} - -export function calculate(){ - return { - type: 'CALCULATE_TOOL_T13B' - } -} - -export function reset(){ - return { - type: 'RESET_TOOL_T13B' - } -} diff --git a/src/actions/T13E.js b/src/actions/T13E.js deleted file mode 100644 index db22a0b0..00000000 --- a/src/actions/T13E.js +++ /dev/null @@ -1,27 +0,0 @@ -export function changeSettings(newSetting) { - return { - type: "CHANGE_TOOL_T13E_SETTINGS", - payload: { - 'selected': newSetting - } - } -} - -export function changeParameter(parameter){ - return { - type: 'CHANGE_TOOL_T13E_PARAMETER', - payload: parameter - } -} - -export function calculate(){ - return { - type: 'CALCULATE_TOOL_T13E' - } -} - -export function reset(){ - return { - type: 'RESET_TOOL_T13E' - } -} \ No newline at end of file diff --git a/src/actions/T14A.js b/src/actions/T14A.js deleted file mode 100644 index 772e9c6d..00000000 --- a/src/actions/T14A.js +++ /dev/null @@ -1,19 +0,0 @@ - -export function changeParameter(parameter){ - return { - type: 'CHANGE_TOOL_T14A_PARAMETER', - payload: parameter - } -} - -export function calculate(){ - return { - type: 'CALCULATE_TOOL_T14A' - } -} - -export function reset(){ - return { - type: 'RESET_TOOL_T14A' - } -} diff --git a/src/actions/T14B.js b/src/actions/T14B.js deleted file mode 100644 index 12a59082..00000000 --- a/src/actions/T14B.js +++ /dev/null @@ -1,19 +0,0 @@ - -export function changeParameter(parameter){ - return { - type: 'CHANGE_TOOL_T14B_PARAMETER', - payload: parameter - } -} - -export function calculate(){ - return { - type: 'CALCULATE_TOOL_T14B' - } -} - -export function reset(){ - return { - type: 'RESET_TOOL_T14B' - } -} diff --git a/src/actions/T14C.js b/src/actions/T14C.js deleted file mode 100644 index 195d724a..00000000 --- a/src/actions/T14C.js +++ /dev/null @@ -1,19 +0,0 @@ - -export function changeParameter(parameter){ - return { - type: 'CHANGE_TOOL_T14C_PARAMETER', - payload: parameter - } -} - -export function calculate(){ - return { - type: 'CALCULATE_TOOL_T14C' - } -} - -export function reset(){ - return { - type: 'RESET_TOOL_T14C' - } -} diff --git a/src/actions/T14D.js b/src/actions/T14D.js deleted file mode 100644 index 44f74651..00000000 --- a/src/actions/T14D.js +++ /dev/null @@ -1,19 +0,0 @@ - -export function changeParameter(parameter){ - return { - type: 'CHANGE_TOOL_T14D_PARAMETER', - payload: parameter - } -} - -export function calculate(){ - return { - type: 'CALCULATE_TOOL_T14D' - } -} - -export function reset(){ - return { - type: 'RESET_TOOL_T14D' - } -} diff --git a/src/actions/messageBox.js b/src/actions/messageBox.js deleted file mode 100644 index 3ce989be..00000000 --- a/src/actions/messageBox.js +++ /dev/null @@ -1,54 +0,0 @@ -import {WebData} from '../core'; -import config from '../config'; - -export function stateToCreatePayload( state ) { - return { - name: state.name, - description: state.description, - geometry: state.geometry, - bounding_box: state.bounding_box, - grid_size: state.grid_size, - time_unit: state.time_unit, - length_unit: state.length_unit, - public: state.public, - }; -} - -export function payloadToSetModel( payload ) { - return payload; -} - -export function buildRequest(url, method, body) { - const options = { - headers: { - 'Accept': 'application/json', - 'Access-Control-Request-Method': method - }, - method - }; - if (body) { - options.body = body; - options.headers['Content-Type'] = 'application/json'; - } - - return { url: config.baseURL + '/v2/' + url, options }; -} - -export function sendMessageBox( responseAction, body, tool ) { - return WebData.Modifier.Query.sendHttpRequest( buildRequest('messagebox', 'POST', JSON.stringify( body )), responseAction, tool ); -} - -export function sendCommand( messageName, payload, metadata = [], tool ) { - return sendMessageBox( - messageName, { - metadata, - message_name: messageName, - payload, - }, - tool - ); -} - -export function sendQuery( url, responseAction, tool ) { - return WebData.Modifier.Query.sendHttpRequest( buildRequest(url, 'GET'), responseAction, tool ); -} diff --git a/src/actions/modelEditor.js b/src/actions/modelEditor.js deleted file mode 100644 index d59886f0..00000000 --- a/src/actions/modelEditor.js +++ /dev/null @@ -1,349 +0,0 @@ -import ConfiguredAxios from 'ConfiguredAxios'; -import { getActiveBoundary } from '../reducers/ModelEditor/ui'; -import { getApiKey } from '../reducers/user'; -// import { getBoundary } from '../reducers/ModelEditor/boundaries'; -import Boundary from '../model/Boundary'; -import BoundaryType from '../model/BoundaryType'; -import BoundaryMetadata from '../model/BoundaryMetadata'; -// import {sendCommandCreateModflowModel, sendCommandUpdateModflowModel, sendQuery} from "./messageBox"; - - -/** - * UI - */ - -export function setView(tool, view ) { - return { - type: 'MODEL_EDITOR_UI_SET_VIEW', - tool, - payload: view - }; -} - -export function setEditorState( tool, mode ) { - return { - type: 'MODEL_EDITOR_UI_SET_STATE', - tool, - payload: mode - }; -} - -export function setActiveBoundary( tool, id ) { - return { - type: 'MODEL_EDITOR_UI_SET_ACTIVE_BOUNDARY', - tool, - payload: id - }; -} - -export function setActiveBoundaryType( tool, type ) { - return { - type: 'MODEL_EDITOR_UI_SET_ACTIVE_BOUNDARY_TYPE', - tool, - payload: type - }; -} - -export function setDraggedBoundary( tool, id ) { - return { - type: 'MODEL_EDITOR_UI_SET_DRAGGED_BOUNDARY', - tool, - payload: id - }; -} - -export function setMapPosition( tool, position ) { - return { - type: 'MODEL_EDITOR_UI_SET_MAP_POSITION', - tool, - payload: position - }; -} - -export function setMousePositionOnMap( tool, position ) { - return { - type: 'MODEL_EDITOR_UI_SET_MOUSE_POSITION_ON_MAP', - tool, - payload: position - }; -} - -export function setDraggedAreaControlPoint( tool, index ) { - return { - type: 'MODEL_EDITOR_UI_SET_DRAGGED_AREA_CONTROL_POINT', - tool, - payload: index - }; -} - -export function setActiveAreaControlPoint( tool, index ) { - return { - type: 'MODEL_EDITOR_UI_SET_ACTIVE_AREA_CONTROL_POINT', - tool, - payload: index - }; -} - -export function setActiveBoundaryControlPoint( tool, index ) { - return { - type: 'MODEL_EDITOR_UI_SET_ACTIVE_BOUNDARY_CONTROL_POINT', - tool, - payload: index - }; -} - -/** - * MODEL - */ - -/** - * GENERAL - */ - -export const ActionTypeModel = { - UPDATE_GEOMETRY: 'MODEL_EDITOR_UPDATE_GEOMETRY', - DESTROY_MODFLOW_MODEL: 'MODEL_EDITOR_MODEL_DESTROY', - LOAD_MODFLOW_MODEL: 'MODEL_EDITOR_MODEL_LOAD', - CREATE_MODFLOW_MODEL: 'MODEL_EDITOR_MODEL_CREATE', - UPDATE_MODFLOW_MODEL: 'MODEL_EDITOR_MODEL_UPDATE', - SET_MODFLOW_MODEL: 'MODEL_EDITOR_MODEL_SET', - SET_NAME: 'MODEL_EDITOR_MODEL_SET_NAME', - SET_DESCRIPTION: 'MODEL_EDITOR_MODEL_SET_DESCRIPTION', - SET_TIME_UNIT: 'MODEL_EDITOR_MODEL_SET_TIME_UNIT', - SET_LENGTH_UNIT: 'MODEL_EDITOR_MODEL_SET_LENGTH_UNIT', - SET_AREA: 'MODEL_EDITOR_MODEL_SET_AREA', - SET_AREA_LATITUDE: 'MODEL_EDITOR_MODEL_SET_AREA_LATITUDE', - SET_AREA_LONGITUDE: 'MODEL_EDITOR_MODEL_SET_AREA_LONGITUDE', - ADD_AREA_CONTROL_POINT: 'MODEL_EDITOR_MODEL_AREA_ADD_CONTROL_POINT', - DELETE_AREA_CONTROL_POINT: 'MODEL_EDITOR_MODEL_DELETE_AREA_CONTROL_POINT', - UPDATE_AREA_CONTROL_POINT: 'MODEL_EDITOR_MODEL_AREA_UPDATE_CONTROL_POINT', - UPDATE_BOUNDING_BOX: 'MODEL_EDITOR_MODEL_UPDATE_BOUNDING_BOX', -}; - - -export function updateGeometry( tool, id, geometry ) { - return { - type: ActionTypeModel.UPDATE_GEOMETRY, - tool, - payload: { - id: id, - geometry: geometry - } - }; -} - -export function setModflowModel( tool, payload ) { - return { - type: ActionTypeModel.SET_MODFLOW_MODEL, - tool, - payload - }; -} - -export function setArea( tool, area ) { - return { - type: ActionTypeModel.SET_AREA, - tool, - payload: area - }; -} - -export function addAreaControlPoint( tool, lng, lat, index ) { - return { - type: ActionTypeModel.ADD_AREA_CONTROL_POINT, - tool, - payload: { - lat, - lng, - index - } - }; -} - -export function updateAreaControlPoint( tool, index, controlPoint ) { - return { - type: ActionTypeModel.UPDATE_AREA_CONTROL_POINT, - tool, - payload: { - index, - controlPoint - } - }; -} - -export function updateBoundingBox( tool ) { - return { - type: ActionTypeModel.UPDATE_BOUNDING_BOX, - tool, - }; -} - -export function setAreaLatitude( tool, index, lat ) { - return { - type: ActionTypeModel.SET_AREA_LATITUDE, - tool, - payload: { - index, - lat - } - }; -} - -export function setAreaLongitude( tool, index, lng ) { - return { - type: ActionTypeModel.SET_AREA_LONGITUDE, - tool, - payload: { - index, - lng - } - }; -} - -export function deleteAreaControlPoint( tool, index ) { - return { - type: ActionTypeModel.DELETE_AREA_CONTROL_POINT, - tool, - payload: index - }; -} - -/** - * BOUNDARIES - */ - -export const ActionTypeBoundaries = { - SET_BOUNDARIES: 'MODEL_EDITOR_MODEL_SET_BOUNDARIES', - ADD_BOUNDARY: 'MODEL_EDITOR_MODEL_ADD_BOUNDARY', - UPDATE_BOUNDARY: 'MODEL_EDITOR_MODEL_UPDATE_BOUNDARY', - ADD_BOUNDARY_CONTROL_POINT: 'MODEL_EDITOR_MODEL_ADD_BOUNDARY_CONTROL_POINT', - UPDATE_BOUNDARY_CONTROL_POINT: 'MODEL_EDITOR_MODEL_UPDATE_BOUNDARY_CONTROL_POINT', - DELETE_BOUNDARY_CONTROL_POINT: 'MODEL_EDITOR_MODEL_DELETE_BOUNDARY_CONTROL_POINT', - UPDATE_BOUNDARY_PUMPING_RATE: 'MODEL_EDITOR_MODEL_UPDATE_BOUNDARY_PUMPING_RATE', - ADD_BOUNDARY_PUMPING_RATE: 'MODEL_EDITOR_MODEL_ADD_BOUNDARY_PUMPING_RATE', -}; - -export function addBoundary( tool, boundary ) { - return { - type: ActionTypeBoundaries.ADD_BOUNDARY, - tool, - payload: boundary - }; -} - -export function updateBoundary( tool, boundary ) { - return { - type: ActionTypeBoundaries.UPDATE_BOUNDARY, - tool, - payload: boundary - }; -} - -export function addBoundaryControlPoint( tool, controlPoint, index ) { - return ( dispatch, getState ) => { - const id = getBoundary( getState()[ tool ].model.boundaries, getActiveBoundary( getState().T03.ui ) ).id; - dispatch( { - type: ActionTypeBoundaries.ADD_BOUNDARY_CONTROL_POINT, - tool, - payload: { - id, - index, - controlPoint - } - } ); - }; -} - -export function updateBoundaryControlPoint( tool, index, controlPoint ) { - return ( dispatch, getState ) => { - const id = getBoundary( getState()[ tool ].model.boundaries, getActiveBoundary( getState().T03.ui ) ).id; - dispatch( { - type: ActionTypeBoundaries.UPDATE_BOUNDARY_CONTROL_POINT, - tool, - payload: { - id, - index, - controlPoint - } - } ); - }; -} - -export function deleteBoundaryControlPoint( tool, index ) { - return ( dispatch, getState ) => { - const id = getBoundary( getState()[ tool ].model.boundaries, getActiveBoundary( getState().T03.ui ) ).id; - dispatch( { - type: ActionTypeBoundaries.DELETE_BOUNDARY_CONTROL_POINT, - tool, - payload: { - id, - index - } - } ); - }; -} - -export function updatePumpingRate( tool, boundaryId, observationPointId, index, datetime, pumpingRate ) { - return { - type: ActionTypeBoundaries.UPDATE_BOUNDARY_PUMPING_RATE, - tool, - payload: { - boundaryId, - editObservationPointId: observationPointId, - index, - datetime, - pumpingRate - } - }; -} - -export function addPumpingRate( tool, boundaryId, observationPointId, index, datetime, pumpingRate ) { - return { - type: ActionTypeBoundaries.ADD_BOUNDARY_PUMPING_RATE, - tool, - payload: { - boundaryId, - editObservationPointId: observationPointId, - index, - datetime, - pumpingRate - } - }; -} - -export function fetchBoundary( tool, id, bid ) { - return ( dispatch, getState ) => { - return dispatch( { - type: 'FETCH_DATA', - payload: { - promise: ConfiguredAxios.get( '/modflowmodels/' + id + '/boundaries/' + bid, { headers: { 'X-AUTH-TOKEN': getApiKey( getState().user ) } } ) - } - } ).then( ( { action } ) => { - const data = action.payload.data; - const type = new BoundaryType( data.type === 'well' ? 'wel' : data.type ); // TODO remove when api updated - dispatch( updateBoundary( tool, new Boundary( data.id, data.name, type, data.geometry, data.metadata.layer /* TODO */, type.slug === 'wel' ? new BoundaryMetadata( { wellType: data.metadata.well_type } ) : null, data.observation_points ) ) ); - } ).catch( ( error ) => { - // eslint-disable-next-line no-console - console.error( error ); - } ); - }; -} - -export function saveBoundary( tool, id, bid ) { - return ( dispatch, getState ) => { - const boundary = getBoundary( getState()[ tool ].model.boundaries, bid ); - - return dispatch( { - type: 'FETCH_DATA', - payload: { - promise: ConfiguredAxios.put( '/modflowmodels/' + id + '/boundaries/' + bid, boundary.toObject, { headers: { 'X-AUTH-TOKEN': getApiKey( getState().user ) } } ) - } - } ).then( ( { action } ) => { - console.warn(action); - // dispatch( updateBoundary( tool, new Boundary( bid, name, boundary.type, geometry, boundary.affectedLayers /* TODO */, boundary.metadata, boundary.observation_points ) ) ); - }).catch( ( error ) => { - // eslint-disable-next-line no-console - console.error( error ); - } ); - }; -} diff --git a/src/actions/user.js b/src/actions/user.js deleted file mode 100644 index 3f706096..00000000 --- a/src/actions/user.js +++ /dev/null @@ -1,94 +0,0 @@ -import ConfiguredAxios from 'ConfiguredAxios'; -import { getApiKey } from '../reducers/user'; - -export function login( username, apiKey ) { - return { - type: 'LOGIN', - payload: { - username, - apiKey - } - }; -} - -export function signupSuccessful( name, username, email, apiKey ) { - return { - type: 'SIGNUP_SUCCESSFUL', - payload: { - name, - username, - email, - apiKey - } - }; -} - -export function signup( name, username, email, password, redirectTo ) { - return dispatch => { - return dispatch( { - type: 'SIGNUP', - payload: { - promise: ConfiguredAxios.post( '/users/signup.json', { - name, - username, - email, - password, - redirectTo - } ) - } - } ).then( ( { action } ) => { - dispatch( signupSuccessful( name, username, email, action.payload.data.api_key )); - } ).catch( ( error ) => { - // eslint-disable-next-line no-console - console.error( error ); - } ); - }; -} - -export function authenticate( username, password ) { - return dispatch => { - return dispatch( { - type: 'AUTHENTICATION', - payload: { - promise: ConfiguredAxios.post( '/users/credentials.json', { - username, - password - } ) - } - } ).then( ( { action } ) => { - dispatch( login( username, action.payload.data.api_key ) ); - } ).catch( ( error ) => { - // eslint-disable-next-line no-console - console.error( error ); - } ); - }; -} - -export function setUserInformation(userInformation) { - return { - type: 'USER_SET_INFORMATION', - payload: userInformation - }; -} - -export function loadUserInformation() { - return (dispatch, getState) => { - return dispatch({ - type: 'FETCH_DATA', - payload: { - promise: ConfiguredAxios.get( '/users/profile', { headers: { 'X-AUTH-TOKEN': getApiKey( getState().user )}}) - } - }).then( ( { action } ) => { - dispatch( setUserInformation( action.payload.data ) ); - } ).catch( ( error ) => { - // eslint-disable-next-line no-console - console.error( error ); - } ); - }; -} - -export function logout() { - return { - type: 'LOGOUT' - }; -} diff --git a/src/api/ConfiguredAxios.js b/src/api/ConfiguredAxios.js index 37fc6b3b..bd268fdd 100644 --- a/src/api/ConfiguredAxios.js +++ b/src/api/ConfiguredAxios.js @@ -1,18 +1,12 @@ import axios from 'axios'; import config from '../config'; -axios.defaults.baseURL = config.baseURL + '/v2'; -axios.defaults.headers.post['Content-Type'] = - 'application/x-www-form-urlencoded'; +let baseUrl = location.protocol + '//' + 'api.' + location.hostname + (location.port ? ':' + location.port : ''); +if (config && config.baseURL) { + baseUrl = config.baseURL; +} -const ConfiguredAxios = axios; -export default ConfiguredAxios; +axios.defaults.baseURL = baseUrl + '/v2'; +axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded'; -// export default axios.create({ -// baseURL: config.baseURL + '/v2', -// headers: { -// post: { -// 'Content-Type': 'application/x-www-form-urlencoded' -// } -// } -// }); +export default axios; diff --git a/src/calculations/T08.js b/src/calculations/T08.js deleted file mode 100644 index 91838593..00000000 --- a/src/calculations/T08.js +++ /dev/null @@ -1,107 +0,0 @@ -import erfc from './erfc'; - -export function calculateDiagramData(C0, info, x_max, t_max, cas, infil, tau) { - var vx = info.vx; - var DL = info.DL; - var R = info.R; - var tau_max = 10e+8; - if (infil === 'OneTime') tau_max = tau; - function calc_C(t,x) { - const term1 = erfc((x-(vx*t/R))/(2*Math.sqrt(DL*t/R))); - const term2 = erfc((x+(vx*t/R))/(2*Math.sqrt(DL*t/R))); - return 0.5* (term1+Math.exp(vx*x/DL)*term2); - } - // this is for one time infiltration - function calc_C_tau(t,x) { - const term1 = erfc((x-(vx*t/R))/(2*Math.sqrt(DL*t/R)))-erfc((x-(vx*(t-tau)/R))/(2*Math.sqrt(DL*(t-tau)/R))); - var term2 = erfc((x+(vx*t/R))/(2*Math.sqrt(DL*t/R)))-erfc((x+(vx*(t-tau)/R))/(2*Math.sqrt(DL*(t-tau)/R))); - // this condition is necessary to fix a bug; it can be changed - Math.abs(term2) < 10e-16 ? term2 = 0 : term2 = term2 - return 0.5* (term1+Math.exp(vx*x/DL)*term2); - } - function calc_t() { - var c = 0; - var t = 0; - while (c < 0.9999) { - c = calc_C(t, x_max); - t = t + 20; - } - return t - } - function calc_x() { - var c = 1; - var x = 0; - while (c > 0.0001) { - c = calc_C(t_max, x); - x = x + 20; - } - return x - } - // calculate the result (to be shown in info) - info.C = (infil === 'OneTime' && t_max>tau) ? calc_C_tau(t_max,x_max) : calc_C(t_max,x_max); - - let data = []; - if (cas === 'Case1') { //variable time, fixed length - const x = x_max; - const t_max = calc_t(); - var dt = Math.floor(t_max/25); - var t_start = t_max-dt*25; - if (dt < 1) { - t_start = 1; - dt = 1 - } - for (let t = 0; t <= t_max; t += dt) { - if (t < tau_max) { - data.push({ - t: t, - C: calc_C(t,x) - }); - } else { - data.push({ - t: t, - C: calc_C_tau(t,x) - }); - } - } - } - if (cas === 'Case2') { - const t = t_max; - const x_max = calc_x(); - var dx = x_max/25; - var x_start = x_max-dx*25; - if (dx < 1) { - x_start = 1; - dx = 1 - } - for (let x = 0; x <= x_max; x += dx) { - if (t < tau_max) { - data.push({ - x: x, - C: calc_C(t,x) - }); - } else { - data.push({ - x: x, - C: calc_C_tau(t,x) - }); - } - } - } - return data; -} - -export function calculate_vx(K,ne,I) { - return K*I/ne; -} -export function calculate_DL(alphaL,vx) { - return alphaL*vx; -} -export function calculate_R(ne, Kd) { - const rhob = (1-ne)*2.65; - return 1+ Kd*rhob/ne; -} -export function calculate_kd(Kow,Corg) { - const Koc = Math.exp(Math.log(Kow)-0.21); - const Kd = Koc * Corg; - return Kd; -} \ No newline at end of file diff --git a/src/calculations/T09B.js b/src/calculations/T09B.js deleted file mode 100644 index a7338b7d..00000000 --- a/src/calculations/T09B.js +++ /dev/null @@ -1,47 +0,0 @@ -function range(start, stop, step) { - let a=[start], b=start; - while(b { - if (param.checked === 'true') { - data.push({ - V: param.V, - tV: calctV(param.V, param.t) - }); - } - }); - return data; -} -export function calculateDiagramData(data, info) { - function calcMFIdata(V,mfi,a) { - return mfi*V+a; - } - let newdata = []; - data.map(param => { - newdata.push({ - V: param.V, - tV: param.tV, - mfi: calcMFIdata(param.V, info.MFI, info.a) - }); - }); - return newdata; -} -export function calcMFI(data, info) { - // first pass: read in data, compute xbar and ybar - var sumx = 0.0, sumy = 0.0, sumx2 = 0.0; - data.map(param =>{ - sumx += param.V; - sumx2 += param.V * param.V; - sumy += param.tV; - }); - const xbar = sumx / data.length; - const ybar = sumy / data.length; - - // second pass: compute summary statistics - var xxbar = 0.0, yybar = 0.0, xybar = 0.0; - data.map(param =>{ - xxbar += (param.V - xbar) * (param.V - xbar); - yybar += (param.tV - ybar) * (param.tV - ybar); - xybar += (param.V - xbar) * (param.tV - ybar); - }); - info.MFI = xybar / xxbar; - info.a = ybar - info.MFI * xbar; -} -export function visc_Correc(table, temp, mfi) { - var visc = 0; - for (let i = 1; i < table.temp.length; i += 1) { - if (table.temp[i] > temp && table.temp[i-1] < temp){ - visc = table.visc[i-1]+((table.visc[i] - table.visc[i-1])*(temp-table.temp[i-1]) /(table.temp[i] - table.temp[i-1])); - } - if(table.temp[i] === temp) { - visc = table.visc[i] - } - } - console.log(1002/visc); - return mfi*1002/visc; -} \ No newline at end of file diff --git a/src/calculations/T13A.js b/src/calculations/T13A.js deleted file mode 100644 index 4db83bfb..00000000 --- a/src/calculations/T13A.js +++ /dev/null @@ -1,24 +0,0 @@ -export function calculateDiagramData(w, K, ne, L, hL, x_min, x_max, d_x) { - const xi = x_min; - const alpha = L*L + K * hL*hL / w; - const root1 = Math.sqrt(alpha / K / w); - const root3 = Math.sqrt(1/(xi*xi) - 1/alpha); - const root4 = Math.sqrt( (alpha / (xi*xi)) - 1); - - function calcT(x) { - const root2 = Math.sqrt(1/(x*x) - 1/alpha); - const root5 = Math.sqrt( (alpha / (x*x)) - 1); - const ln = Math.log((Math.sqrt(alpha) / xi + root4) / (Math.sqrt(alpha) / x + root5)); - return ne * root1 * (x * root2 - xi * root3 + ln); - //return ne * Math.sqrt(alpha / K / w) * (x * Math.sqrt(1/(x*x) - 1/alpha) - x_min * Math.sqrt(1/(x_min*x_min) - 1/alpha) + Math.log((Math.sqrt(alpha)/x_min + Math.sqrt(alpha / (x_min*x_min) - 1)) / (Math.sqrt(alpha)/x + Math.sqrt(alpha / (x*x) - 1))) ); - } - - var data = []; - for (let x = x_min; x <= x_max; x += d_x) { - data.push({ - x, - t: calcT(x) - }); - } - return data; -} diff --git a/src/calculations/T13B.js b/src/calculations/T13B.js deleted file mode 100644 index 5947ca28..00000000 --- a/src/calculations/T13B.js +++ /dev/null @@ -1,28 +0,0 @@ -export function calculateDiagramData(w, K, ne, L1, h1, x_min, x_max, d_x) { - const xi = x_min; - const alpha = L1*L1 + K * h1*h1 / w; - const root1 = Math.sqrt(alpha / K / w); - const root3 = Math.sqrt(1/(xi*xi) - 1/alpha); - const root4 = Math.sqrt( (alpha / (xi*xi)) - 1); - - function calcT(x) { - const root2 = Math.sqrt(1/(x*x) - 1/alpha); - const root5 = Math.sqrt( (alpha / (x*x)) - 1); - const ln = Math.log((Math.sqrt(alpha) / xi + root4) / (Math.sqrt(alpha) / x + root5)); - return ne * root1 * (x * root2 - xi * root3 + ln); - //return ne * Math.sqrt(alpha / K / w) * (x * Math.sqrt(1/(x*x) - 1/alpha) - x_min * Math.sqrt(1/(x_min*x_min) - 1/alpha) + Math.log((Math.sqrt(alpha)/x_min + Math.sqrt(alpha / (x_min*x_min) - 1)) / (Math.sqrt(alpha)/x + Math.sqrt(alpha / (x*x) - 1))) ); - } - - var data = []; - for (let x = x_min; x <= x_max; x += d_x) { - data.push({ - x, - t: calcT(x) - }); - } - return data; -} - -export function calculateXwd(L, K, w, hL, h0) { - return (L/2+K*(hL*hL-h0*h0)/(2*w*L)); -} diff --git a/src/calculations/T13C.js b/src/calculations/T13C.js deleted file mode 100644 index 5947ca28..00000000 --- a/src/calculations/T13C.js +++ /dev/null @@ -1,28 +0,0 @@ -export function calculateDiagramData(w, K, ne, L1, h1, x_min, x_max, d_x) { - const xi = x_min; - const alpha = L1*L1 + K * h1*h1 / w; - const root1 = Math.sqrt(alpha / K / w); - const root3 = Math.sqrt(1/(xi*xi) - 1/alpha); - const root4 = Math.sqrt( (alpha / (xi*xi)) - 1); - - function calcT(x) { - const root2 = Math.sqrt(1/(x*x) - 1/alpha); - const root5 = Math.sqrt( (alpha / (x*x)) - 1); - const ln = Math.log((Math.sqrt(alpha) / xi + root4) / (Math.sqrt(alpha) / x + root5)); - return ne * root1 * (x * root2 - xi * root3 + ln); - //return ne * Math.sqrt(alpha / K / w) * (x * Math.sqrt(1/(x*x) - 1/alpha) - x_min * Math.sqrt(1/(x_min*x_min) - 1/alpha) + Math.log((Math.sqrt(alpha)/x_min + Math.sqrt(alpha / (x_min*x_min) - 1)) / (Math.sqrt(alpha)/x + Math.sqrt(alpha / (x*x) - 1))) ); - } - - var data = []; - for (let x = x_min; x <= x_max; x += d_x) { - data.push({ - x, - t: calcT(x) - }); - } - return data; -} - -export function calculateXwd(L, K, w, hL, h0) { - return (L/2+K*(hL*hL-h0*h0)/(2*w*L)); -} diff --git a/src/calculations/T13D.js b/src/calculations/T13D.js deleted file mode 100644 index 928153a4..00000000 --- a/src/calculations/T13D.js +++ /dev/null @@ -1,3 +0,0 @@ -export function calculateXwd(L, K, w, hL, h0) { - return (L/2+K*(hL*hL-h0*h0)/(2*w*L)); -} diff --git a/src/calculations/T13E.js b/src/calculations/T13E.js deleted file mode 100644 index 00618fb7..00000000 --- a/src/calculations/T13E.js +++ /dev/null @@ -1,15 +0,0 @@ -export function calculateDiagramData(Qw, ne, hL, h0, x_min, x_max, d_x) { - const xi = x_max; - function calcT(x) { - return ((0.95*h0 + 0.05*hL)*3.14159*(xi * xi - x * x)*ne/Qw); - } - - var data = []; - for (let x = x_min; x <= x_max; x += d_x) { - data.push({ - x, - t: calcT(x) - }); - } - return data; -} \ No newline at end of file diff --git a/src/calculations/erf.js b/src/calculations/erf.js deleted file mode 100644 index 7b95e72b..00000000 --- a/src/calculations/erf.js +++ /dev/null @@ -1,29 +0,0 @@ -//import factorial from './factorial'; -// precise upt to 6 fractions -// see https://de.wikipedia.org/wiki/Fehlerfunktion -/*export default function erf(x) { - var sum = 0; - for (let n = 0; n <= 30; n++) { - let cons2n1 = 2 * n + 1; - let sumi = ((Math.pow(-1, n) * Math.pow(x, cons2n1)) / (cons2n1 * factorial(n))); - sum += sumi; - } - let c = 2 / Math.sqrt(Math.PI); - return Math.round(c * sum); -}*/ -export default function erf(x) { - const a1 = 0.254829592, - a2 = -0.284496736, - a3 = 1.421413741, - a4 = -1.453152027, - a5 = 1.061405429, - p = 0.3275911; - // Save the sign of x - let sign = 1 - if (x < 0) sign = -1; - x = Math.abs(x); - // A & S 7.1.26 with Horners Method - const t = 1.0 / (1.0 + p * x); - const y = 1.0 - (((((a5 * t + a4) * t) + a3) * t + a2) * t + a1) * t * Math.exp(-x * x); - return sign * y; -} diff --git a/src/calculations/factorial.js b/src/calculations/factorial.js deleted file mode 100644 index 896031c9..00000000 --- a/src/calculations/factorial.js +++ /dev/null @@ -1,8 +0,0 @@ -export default function factorial(x) { - let fac = 1; - while (x > 0) { - fac *= x; - x--; - } - return fac; -} diff --git a/src/calculations/filter.js b/src/calculations/filter.js deleted file mode 100644 index 23c0c653..00000000 --- a/src/calculations/filter.js +++ /dev/null @@ -1,8 +0,0 @@ - -export function filterInt(value) { - return parseInt(value); -} - -export function filterFloat(value) { - return parseFloat(value); -} diff --git a/src/calculations/geoTools.js b/src/calculations/geoTools.js deleted file mode 100644 index 46be2b88..00000000 --- a/src/calculations/geoTools.js +++ /dev/null @@ -1,46 +0,0 @@ -export function calcBoundsOfPolygon ( polygon ) { - let minLat = Infinity; - let maxLat = -Infinity; - let minLng = Infinity; - let maxLng = -Infinity; - - polygon.forEach( c => { - if ( c[1] < minLat ) { - minLat = c[1]; - } - - if ( c[1] > maxLat ) { - maxLat = c[1]; - } - - if ( c[0] < minLng ) { - minLng = c[0]; - } - - if ( c[0] > maxLng ) { - maxLng = c[0]; - } - } ); - - return [ - [ - minLng, - minLat, - ],[ - maxLng, - maxLat, - ] - ]; -} - -export function latLngToXY ( c ) { - return [ - [ - c[0].lng, - c[0].lat, - ], [ - c[1].lng, - c[1].lat, - ] - ]; -} diff --git a/src/calculations/index.js b/src/calculations/index.js deleted file mode 100644 index e659ef9b..00000000 --- a/src/calculations/index.js +++ /dev/null @@ -1,3 +0,0 @@ -import T09A from './T09A'; - -exports.T09A = T09A; diff --git a/src/calculations/inverf.js b/src/calculations/inverf.js deleted file mode 100644 index 32fc5b1e..00000000 --- a/src/calculations/inverf.js +++ /dev/null @@ -1,9 +0,0 @@ -// as per Wolfram eq. no 15. Maclaurin series -export default function inverf(x) { - const sqpi = Math.sqrt(Math.PI), - a1 = 1/2, - a2 = 1*Math.PI/24, - a3 = 7*Math.PI**2/960, - a4 = 127*Math.PI**3/80640; - return sqpi*(a1*x+a2*x**3+a3*x**5+a4*x**7) -} \ No newline at end of file diff --git a/src/calculations/inverfc.js b/src/calculations/inverfc.js deleted file mode 100644 index 6f9f677d..00000000 --- a/src/calculations/inverfc.js +++ /dev/null @@ -1,5 +0,0 @@ -import inverf from './inverf' - -export default function inverfc(x) { - return inverf(1-x); -} diff --git a/src/calculations/map.js b/src/calculations/map.js deleted file mode 100644 index 6a64afdc..00000000 --- a/src/calculations/map.js +++ /dev/null @@ -1,201 +0,0 @@ -import React from 'react'; -import {closest as leafletClosest} from 'leaflet-geometryutil'; -import {Circle, FeatureGroup, Polygon, Polyline, TileLayer} from 'react-leaflet'; -import {EditControl} from 'react-leaflet-draw'; -import FullscreenControl from 'react-leaflet-fullscreen'; -import {uniqueId} from 'lodash'; - -export const disableMap = (map) => { - if (map) { - map.leafletElement._handlers.forEach(function(handler) { - handler.disable(); - }); - } -}; - -export const enableMap = (map) => { - if (map) { - map.leafletElement._handlers.forEach(function(handler) { - handler.enable(); - }); - } -}; - -export const invalidateSize = (map) => { - if (map) { - map.leafletElement.invalidateSize(); - } -}; - -export const closestPointOnGeometry = (map, geometry, point, vertices = true) => { - return leafletClosest(map, geometry, point, vertices); -}; - -export const getLatLngFromXY = coordinates => coordinates.map(c => [c[1], c[0]]); - -export const getDefaultTileLayer = () => { - return ( - - ); -}; - -export const renderCreateControl = (type, onCreated) => { - const options = { - area: { - edit: { - edit: false, - remove: false - }, - draw: { - polyline: false, - polygon: true, - rectangle: false, - circle: false, - marker: false, - delete: false - } - }, - chd: { - edit: { - edit: true, - remove: false - }, - draw: { - polyline: true, - polygon: false, - rectangle: false, - circle: false, - marker: false - } - }, - ghb: { - edit: { - edit: true, - remove: false - }, - draw: { - polyline: true, - polygon: false, - rectangle: false, - circle: false, - marker: false - } - }, - rch: { - edit: { - edit: true, - remove: false - }, - draw: { - polyline: false, - polygon: true, - rectangle: false, - circle: false, - marker: false - } - }, - riv: { - edit: { - edit: true, - remove: false - }, - draw: { - polyline: true, - polygon: false, - rectangle: false, - circle: false, - marker: false - } - }, - wel: { - edit: { - edit: true, - remove: false - }, - draw: { - polyline: false, - polygon: false, - rectangle: false, - circle: false, - marker: true - } - } - }; - - return ( - - - - ); -}; - -const getReactLeafletElementFromGeometry = geometry => { - switch (geometry.type.toLowerCase()) { - case 'polygon': - return ( - - ); - case 'linestring': - return ( - - ); - case 'point': - return ( - - ); - default: - return null; - } -}; - -export const renderEditControl = (type, geometry, onEdited) => { - const options = { - edit: { - remove: false - }, - draw: { - polyline: false, - polygon: false, - rectangle: false, - circle: false, - marker: false - } - }; - - return ( - - - {getReactLeafletElementFromGeometry(geometry)} - - ); -}; - -export const renderFullScreenControl = (position = 'topright') => { - return ( - - ); -}; diff --git a/src/components/primitive/HtmlLabel.jsx b/src/components/primitive/HtmlLabel.jsx new file mode 100644 index 00000000..77e338a6 --- /dev/null +++ b/src/components/primitive/HtmlLabel.jsx @@ -0,0 +1,14 @@ +import React from 'react'; +import PropTypes from 'prop-types'; + +const htmlLabel = ({html}) => { + return ( +

+ ); +}; + +htmlLabel.propTypes = { + html: PropTypes.string +}; + +export default htmlLabel; diff --git a/src/components/tools/Parameters.jsx b/src/components/tools/Parameters.jsx index a6132d81..fa54d737 100644 --- a/src/components/tools/Parameters.jsx +++ b/src/components/tools/Parameters.jsx @@ -7,9 +7,11 @@ import {inputType} from '../../inputType'; import '../../less/toolParameters.less'; import '../../less/input-range.less'; +import ParameterSlider from '../../core/parameterSlider'; + const renderParam = (param, handleChange) => { if (!param.inputType) { - return renderSlider(param, handleChange); + return (); } switch (param.inputType) { @@ -18,7 +20,7 @@ const renderParam = (param, handleChange) => { case inputType.RADIO_SELECT: return renderRadioSelect(param, handleChange); case inputType.SLIDER: - return renderSlider(param, handleChange); + return (); } return null; @@ -56,39 +58,6 @@ const renderRadioSelect = (param) => { ); }; -const renderSlider = (param, handleChange) => { - // Should do some refactoring - if (!param.label && param.name) { - param.label = param.name; - } - let disable = false; - if (param.disable) { - disable = param.disable; - } - return ( - {param.label} - - - - - - - - - - - ); -}; - const Parameters = ({parameters, handleChange, handleReset}) => { const sortedParameters = parameters.sort((a, b) => { if (a.order > b.order) { diff --git a/src/components/tools/SettingsT13D.jsx b/src/components/tools/SettingsT13D.jsx index 2807aff7..cbe84f77 100644 --- a/src/components/tools/SettingsT13D.jsx +++ b/src/components/tools/SettingsT13D.jsx @@ -1,6 +1,6 @@ import React from 'react'; -import image13B from '../../images/tools/T13B.png'; -import image13C from '../../images/tools/T13C.png'; +import image13B from '../../t13/images/T13B.png'; +import image13C from '../../t13/images/T13C.png'; export default class Settings extends React.Component { image() { diff --git a/src/components/tools/T12_MFI.jsx b/src/components/tools/T12_MFI.jsx index bc18b95e..1b0289b0 100644 --- a/src/components/tools/T12_MFI.jsx +++ b/src/components/tools/T12_MFI.jsx @@ -50,7 +50,7 @@ export default class Sieves extends React.Component { }; //Popup window corrections() { - const corrections = this.props.corrections.map(param => { + const corrections = this.props.renderCorrections.map(param => { return {param.def} {param.name} diff --git a/src/components/tools/T16_HydroData.jsx b/src/components/tools/T16_HydroData.jsx index ff0ce8af..1cc82d9c 100644 --- a/src/components/tools/T16_HydroData.jsx +++ b/src/components/tools/T16_HydroData.jsx @@ -4,7 +4,7 @@ import '../../less/toolParameters.less'; import '../../less/input-range.less'; import '../../less/toolT16.less'; import Popup from '../primitive/Popup'; -import image from '../../images/tools/Hydrometer.png'; +import image from '../../images/tools/T16_hydrometer.png'; export default class Parameters extends React.Component { state = { diff --git a/src/containers/AppForAuthenticatedUser.jsx b/src/containers/AppForAuthenticatedUser.jsx deleted file mode 100644 index aa4ddd43..00000000 --- a/src/containers/AppForAuthenticatedUser.jsx +++ /dev/null @@ -1,44 +0,0 @@ -import React, { Component, PropTypes } from 'react'; -import { push } from 'react-router-redux'; -import { connect } from 'react-redux'; -import { isUserLoggedIn } from '../reducers/user'; -import { withRouter } from 'react-router'; -import App from '../components/App'; - -class AppForAuthenticatedUser extends Component { - static propTypes = { - userLoggedIn: PropTypes.bool.isRequired, - push: PropTypes.func.isRequired, - children: PropTypes.node - }; - - constructor( props ) { - super( props ); - this.checkAuthentication( this.props ); - } - - componentWillReceiveProps( nextProps ) { - this.checkAuthentication( nextProps ); - } - - checkAuthentication( props ) { - // eslint-disable-next-line no-shadow - const { userLoggedIn, push } = props; - if ( !userLoggedIn ) { - push( '/login' ); - } - } - - render( ) { - return ; - } -} - -const mapStateToProps = state => { - return {userLoggedIn: isUserLoggedIn( state.user )}; -}; - -// eslint-disable-next-line no-class-assign -AppForAuthenticatedUser = withRouter( connect(mapStateToProps, { push })( AppForAuthenticatedUser )); - -export default AppForAuthenticatedUser; diff --git a/src/containers/LandingPage.js b/src/containers/LandingPage.js new file mode 100644 index 00000000..9ad9b444 --- /dev/null +++ b/src/containers/LandingPage.js @@ -0,0 +1,29 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import {connect} from 'react-redux'; +import {hasSessionKey, getFetched} from '../user/reducers/index'; +import {withRouter} from 'react-router'; + +class LandingPage extends React.Component { + render() { + this.props.userIsLoggedIn ? this.props.router.push('/tools') : this.props.router.push('/login'); + return null; + } +} + +const mapStateToProps = state => { + return { + userIsLoggedIn: hasSessionKey(state.session), + userShouldBeFetched: !getFetched(state.user) + }; +}; + +LandingPage.propTypes = { + children: PropTypes.node, + fetchUser: PropTypes.func.isRequired, + router: PropTypes.object.isRequired, + userIsLoggedIn: PropTypes.bool.isRequired, + userShouldBeFetched: PropTypes.bool.isRequired +}; + +export default withRouter(connect(mapStateToProps)(LandingPage)); diff --git a/src/containers/LandingPage.jsx b/src/containers/LandingPage.jsx deleted file mode 100644 index 85513942..00000000 --- a/src/containers/LandingPage.jsx +++ /dev/null @@ -1,390 +0,0 @@ -import '../less/landingPage.less'; - -import Footer from '../components/Footer'; -import Navbar from './Navbar'; -import Popup from '../components/primitive/Popup'; -import Icon from '../components/primitive/Icon'; -import React from 'react'; -import Slider from '../components/primitive/Slider'; -import SliderControl from '../components/primitive/SliderControl'; -import SliderControlItem from '../components/primitive/SliderControlItem'; -import SliderItem from '../components/primitive/SliderItem'; -import carouselSlide01 from '../images/landingPage/carousel-slide-01.png'; -import carouselSlide02 from '../images/landingPage/carousel-slide-02.png'; -import carouselSlide03 from '../images/landingPage/carousel-slide-03.png'; -import carouselSlide04 from '../images/landingPage/carousel-slide-04.png'; -import documentationImage from '../images/landingPage/documentation-image.png'; -import geoDatabaseImage from '../images/landingPage/geo-database-image.png'; -import screenshot01 from '../images/landingPage/screenshot-1.png'; -import screenshot02 from '../images/landingPage/screenshot-2.png'; -import screenshot03 from '../images/landingPage/screenshot-3.png'; -import toolBoxIcon01 from '../images/landingPage/toolbox-icon-01.png'; -import toolBoxIcon02 from '../images/landingPage/toolbox-icon-02.png'; -import toolBoxIcon03 from '../images/landingPage/toolbox-icon-03.png'; -import toolBoxIcon04 from '../images/landingPage/toolbox-icon-04.png'; -import toolBoxIcon05 from '../images/landingPage/toolbox-icon-05.png'; -import toolBoxIcon06 from '../images/landingPage/toolbox-icon-06.png'; -import toolBoxIcon07 from '../images/landingPage/toolbox-icon-07.png'; -import toolBoxIcon08 from '../images/landingPage/toolbox-icon-08.png'; -import toolBoxIcon09 from '../images/landingPage/toolbox-icon-09.png'; -import toolBoxImage01 from '../images/landingPage/toolbox-image-01.png'; -import toolBoxImage02 from '../images/landingPage/toolbox-image-02.png'; -import toolBoxImage03 from '../images/landingPage/toolbox-image-03.png'; - -export default class LandingPage extends React.Component { - - state = { - screenshotsPopupVisible: false, - screenshotsSliderIndex: 0 - } - - openScreenshotsPopup = (index) => { - return () => { - this.setState({ - screenshotsSliderIndex: index, - screenshotsPopupVisible: true - }); - }; - } - - closeScreenshotsPopup = () => { - this.setState({ - screenshotsPopupVisible: false - }); - } - - render( ) { - return ( -

- -
-
- }> - - -
-

Web MAR Apps

-

Web-based applications for planning, management and optimization of managed aquifer recharge (MAR) schemes

-
-
- Web MAR Apps -
-
- - -
-

Web MAR Tools

-

Free web-based modeling tools for simulation of processes ocurring during managed aquifer recharge

-
-
- Web MAR Tools -
-
- - -
-

Web MAR Data

-

Free web-based geospatial information system to upload, manage and share MAR-related geospatial and time series data

-
-
- Web MAR Data -
-
- - -
-

Web MAR Wiki

-

Detailed documentation of all applications, tools and database components, including practical examples and references for further read.

-
-
- Web MAR Wiki -
-
- -
-
-
- -
- -
-

Free web-based modelling platform

-

Managed aquifer recharge (MAR) represents the purposeful recharge of an aquifer for later water recovery or for environmental benefits. To meet various site-specific requirements, different water infiltration techniques are available, making MAR a reliable instrument for sustainable groundwater management. The present platform provides a collection of free web-based tools aimed at planning, management and optimization of main components of MAR schemes: -

- - }> - -
- A05. Sustain environmental surface water flows -
-
- - -
- A12. Design and operational optimization of MAR schemes -
-
- - -
- A02. Maximize natural storage capacity -
-
- - -
- A03. Restoration of groundwater levels -
-
- -
- -

There are 13 applications available on the INOWAS platform that cover most of the challanges encountered at MAR sites, both from the quantitative and qualitative perspective: from optimization of MAR site location ( - A11 - ), assessment of saltwater intrusion ( - A07 - ), application of MAR for the restoration of groundwater levels in overexploited aquifers ( - A03 - ), for the maximization of natural storage capacity of the aquifers ( - A02 - ), for improvement of water quality ( - A08 - ), through design and operational optimization of MAR schemes ( - A12 - ), clogging development ( - A10 - ), assessment of the risk associated with MAR ( - A09 - ) etc.

- -
- Read more -
- -
- -
-

Toolbox

-
-
- -
-

- Simple tools derived from data mining and empirical correlations -

-
-
-
- -
-

- Practical implementation of analytical equations of groundwater flow -

-
-
- -
- -
-

- Reliable simulations using complex numerical flow models (i.e. MODFLOW) -

-
-
-
- -

- The applications are based on a collection of simple, practical and reliable web-based tools of various degrees of complexity. The tools are either included in application-specific workflows or used as standalone modelling instruments. -

- - -
-

Examples of tools

- - - - - - - - - - - - )}> - - -
-

T05. Optimisation of ASR well location

-

Optimisation algorithm for finding the best location of ASR injection wells resulting in maximum groundwater storage increase for a given injection rate

-
-
- - -
-

T04. GIS-based site suitability mapping

-

WebGIS-based multi-criteria decision analysis tool for preliminary ranking of areas that could be suitable for MAR application

-
-
- - -
-

T09. Simple saltwater intrusion equations

-

Analytical equations for the analysis and prediction of the location of the saltwater interface in a groundwater system

-
-
- - -
-

T02. Groundwater mounding calculator (Hantush)

-

The groundwater mounding calculator solves the Hantush analytical equation for groundwater mounding beneath an infiltration basin

-
-
- - -
-

T08. 1D transport model (Ogata-Banks)

-

1D advection-dispersion equation using the Ogata-Banks solution as function of various parameters

-
-
- - -
-

T01. ASR efficiency assessment (Ward)

-

Assessment of the suitability of a proposed site for an ASR system based on lateral groundwater flow, dispersive mixing, mixed convection and free aquifer convection

-
-
- - -
-

T03. Numerical model setup (MODFLOW, MT3DMS, SEAWAT)

-

Setup a new MODFLOW model for a study area to better understand the local groundwater flow system or as basis for scenario analysis

-
-
- - -
-

T21. Estimation of aquifer storage capacity

-

Estimation of aquifer storage capacity based on long-term measurements of aquifer recharge, groundwater extraction, and discharge

-
-
- - -
-

T07. Application-specific scenarios analyzer

-

This tool makes use of the output files of the MODFLOW-based model and uses them for the customized analysis of user-defined model scenarios

-
-
- -
- -
-
-
- Read more -
- -
-

Geo Database

- -

- A new MAR information system was developed for the storage, management and visualisation of geo-referenced and time series data used for the planning of MAR applications. -

-
- -
- -
-
-
-
- -
-
-

The INOWAS Information System was designed considering the necessity to handle different forms of information, including various geographical data types, time-series and others.

-
-
-
- -
-
-
- -
-
-

Data can be uploaded as raster, shape or raw text files and can be visualised in different ways: as data table, as simple graph or geo-referenced map.

-
-
-
- -
-
-
- -
-
-

The data model which is used in the INOWAS Information System is based on the ISO 19156:2011 – “Geographic information — Observations and measurements” standard.

-
-
-
-
- -
- Read more -
- -
- -
-

Documentation

-
- -
-

Detailed documentation of all tools, applications and geo database, including practical examples and references for further read. The documentation can be accessed at any time from the individual pages, providing valuable support for project development.

-
- Read more -
-
- -
-

Screenshots

-
-
- -
-
- -
-
- -
-
- - - }> - - - - - - - - - - - - - - - - -

Unified, user-friendly and modern graphic user interface that combines modern design elements with powerful server capabilities for a smooth browser-based modeling experience and reliable simulation results. -

-
- -
-
-
- ); - } -} diff --git a/src/containers/Navbar.jsx b/src/containers/Navbar.jsx index 1a36c3ce..9142aed8 100644 --- a/src/containers/Navbar.jsx +++ b/src/containers/Navbar.jsx @@ -2,42 +2,16 @@ import '../less/navbar.less'; import PropTypes from 'prop-types'; import React from 'react'; -import {authenticate, loadUserInformation, logout} from '../actions/user'; -import {getApiKey, getName, isUserLoggedIn} from '../reducers/user'; import Icon from '../components/primitive/Icon'; import {Link} from 'react-router'; import {connect} from 'react-redux'; -import {push} from 'react-router-redux'; import {withRouter} from 'react-router'; class NavBar extends React.Component { - componentDidMount() { - const {userLoggedIn} = this.props; - if (userLoggedIn) { - this.loadUserInformation(); - } - } - - componentDidUpdate(prevProps) { - const {apiKey, userLoggedIn} = this.props; - if (apiKey !== prevProps.apiKey && userLoggedIn) { - this.loadUserInformation(); - } - } - - loadUserInformation() { - // eslint-disable-next-line no-shadow - const {name, loadUserInformation} = this.props; - - if (!name || name === '') { - loadUserInformation(); - } - } - - pushToLogin = () => { - this.props.push('/login'); + historyPushTo = route => { + this.props.router.push(route); }; renderLinks(links, recursionDepth = 0) { @@ -94,19 +68,40 @@ class NavBar extends React.Component { renderInfo = (info) =>
  • ; - renderUserNavigation() { - // eslint-disable-next-line no-shadow - const {userLoggedIn, logout, name} = this.props; + renderRoleSpecificItems = roles => { + if (roles.includes('ROLE_ADMIN')) { + return ( +
  • + +
  • + ); + } + + return null; + }; - if (userLoggedIn) { + renderUserNavigation(userIsLoggedIn) { + const {roles, name} = this.props.user; + if (userIsLoggedIn) { return (
  • {name}
      + {this.renderRoleSpecificItems(roles)} +
    • + +
    • +
    • + +
    • - +
  • @@ -114,7 +109,7 @@ class NavBar extends React.Component { } return (
  • - + this.historyPushTo('/login')}> Login
  • @@ -122,14 +117,7 @@ class NavBar extends React.Component { } render() { - const standardLinks = [ - { - name: 'Home', - path: '/', - icon: - } - ]; - + const standardLinks = []; const standardLinksAuthenticationRequired = [ { name: 'Dashboard', @@ -138,19 +126,21 @@ class NavBar extends React.Component { } ]; + const userIsLoggedIn = this.props.session.apiKey; + return (
    @@ -162,29 +152,20 @@ class NavBar extends React.Component { const mapStateToProps = (state, ownProps) => { return { - userLoggedIn: isUserLoggedIn(state.user), - apiKey: getApiKey(state.user), + user: state.user, + session: state.session, routing: state.routing, - name: getName(state.user), - push: push, ...ownProps }; }; NavBar.propTypes = { - userLoggedIn: PropTypes.bool, - routing: PropTypes.object, - links: PropTypes.array, - authenticate: PropTypes.func, - push: PropTypes.func, - logout: PropTypes.func, - name: PropTypes.string, - loadUserInformation: PropTypes.func, - apiKey: PropTypes.string, - info: PropTypes.string + router: PropTypes.object.isRequired, + routing: PropTypes.object.isRequired, + session: PropTypes.object.isRequired, + user: PropTypes.object.isRequired, + info: PropTypes.string, + links: PropTypes.array }; -// eslint-disable-next-line no-class-assign -NavBar = withRouter(connect(mapStateToProps, {push, authenticate, logout, loadUserInformation})(NavBar)); - -export default NavBar; +export default withRouter(connect(mapStateToProps)(NavBar)); diff --git a/src/containers/tools/T07D.js b/src/containers/tools/T07D.js deleted file mode 100644 index 1c86cdec..00000000 --- a/src/containers/tools/T07D.js +++ /dev/null @@ -1,202 +0,0 @@ -// import React, { PropTypes, Component } from 'react'; -// import { connect } from 'react-redux'; -// import Chart from 'react-c3js'; -// -// import Header from '../../components/tools/Header'; -// import Icon from '../../components/primitive/Icon'; -// import Navbar from '../Navbar'; -// -// import '../../less/4TileTool.less'; -// import '../../less/toolT07.less'; -// -// import { -// fetchDetails, -// updateResultsT07A, -// setSelectedLayer, -// setSelectedResultType, -// setSelectedTotalTimeIndex, -// toggleModelSelection, -// setMapView, -// setBounds, -// setActiveGridCell, -// updateResults -// -// } from '../../actions/T07'; -// -// import LayerNumber from '../../model/LayerNumber'; -// import ResultType from '../../model/ResultType'; -// import TotalTime from '../../model/TotalTime'; -// import ModflowModelResult from '../../model/ModflowModelResult'; -// -// @connect(( store ) => { -// return { tool: store.T07 }; -// }) -// export default class T07D extends Component { -// -// static propTypes = { -// dispatch: PropTypes.func.isRequired, -// params: PropTypes.object, -// tool: PropTypes.object.isRequired -// }; -// -// constructor(props) { -// super(props); -// -// this.state = { -// navigation: [ -// { -// name: 'Cross section', -// path: '/tools/T07A/' + props.params.id, -// icon: -// }, { -// name: 'Scenarios difference', -// path: '/tools/T07B/' + props.params.id, -// icon: -// }, { -// name: 'Time series', -// path: '/tools/T07C/' + props.params.id, -// icon: -// }, { -// name: 'Overall budget', -// path: '/tools/T07D/' + props.params.id, -// icon: -// } -// ] -// }; -// } -// -// componentWillMount( ) { -// this.props.dispatch(fetchDetails( this.props.params.id )); -// } -// -// updateModelResults( resultType, layerNumber, totalTimeIndex ) { -// if ( layerNumber instanceof LayerNumber === false ) { -// console.error( 'Cannot update ModelResults, due layerNumber is not from Type LayerNumber.' ); -// return; -// } -// -// if ( resultType instanceof ResultType === false ) { -// console.error( 'Cannot update ModelResults, due resultType is not from Type ResultType.' ); -// return; -// } -// -// const totalTimes = this.props.tool.totalTimes.totalTimes; -// -// const totalTime = (totalTimeIndex === null) ? new TotalTime(totalTimes[totalTimes.length - 1]) : new TotalTime(totalTimes[totalTimeIndex]); -// -// this.props.tool.models.forEach(m => { -// if ( m.isSelected( ) === false ) { -// return; -// } -// -// if ( m.result instanceof ModflowModelResult ) { -// if (m.result.resultType( ).sameAs( resultType ) && m.result.layerNumber( ).sameAs( layerNumber ) && m.result.totalTime( ).sameAs( totalTime )) { -// return; -// } -// } -// -// this.props.dispatch(updateResultsT07A( m.calculationId, resultType, layerNumber, totalTime )); -// }); -// } -// -// -// renderChart( ) { -// const models = this.props.tool.models; -// -// if ( models.countModelsWithResults( ) === 0 ) { -// return null; -// } -// -// const rowNumber = this.props.tool.activeGridCell.y; -// if ( rowNumber === null ) { -// return null; -// } -// -// const colNumber = this.props.tool.activeGridCell.x; -// if ( colNumber === null ) { -// return null; -// } -// -// const columns = []; -// models.models().forEach(m => { -// if (m.isSelected( ) && m.hasResult( )) { -// columns.push(m.chartDataByRowNumber( rowNumber )); -// } -// }); -// -// const chartData = { -// columns: columns -// }; -// -// let grid = {}; -// let axis = {}; -// -// const baseModel = models.baseModel(); -// if (baseModel.hasResult()) { -// chartData.x = 'x'; -// columns.unshift(baseModel.columnXAxis()); -// grid = { -// x: { -// show: true, -// lines: [ -// { -// value: baseModel.chartLeftBorderByRowNumber( rowNumber ), -// text: 'Eastern model border', -// position: 'middle' -// }, { -// value: baseModel.chartRightBorderByRowNumber( rowNumber ), -// text: 'Western model border', -// position: 'middle' -// }, -// { -// value: baseModel.coordinateByGridCell( colNumber, rowNumber ).x, -// text: 'Selected column', -// position: 'middle' -// } -// ] -// } -// }; -// -// axis = { -// x: { -// label: baseModel.labelXAxis() -// }, -// y: { -// label: baseModel.labelYAxis() -// } -// }; -// } -// -// return ( -//
    -//
    -// -//
    -//
    -// ); -// } -// -// render( ) { -// const { navigation } = this.state; -// -// return ( -//
    -// -//
    -//
    -//
    -// -//
    -//
    -//
    -//
    -// {this.renderChart( )} -//
    -//
    -//
    -// ); -// } -// } diff --git a/src/containers/tools/T08.js b/src/containers/tools/T08.js deleted file mode 100644 index b6f86df5..00000000 --- a/src/containers/tools/T08.js +++ /dev/null @@ -1,86 +0,0 @@ -import React from 'react'; -import {connect} from 'react-redux'; - -import '../../less/4TileTool.less'; - -import Background from '../../components/tools/Background'; -import Chart from '../../components/tools/ChartT08'; -import Info from '../../components/tools/InfoT08'; -import Parameters from '../../components/tools/Parameters_T08'; -import {changeParameter, calculate, reset, changeSettings, changeInfiltration} from '../../actions/T08'; -import Header from '../../components/tools/Header'; -import Navbar from '../Navbar'; -import Icon from '../../components/primitive/Icon'; - -@connect((store) => { - return {tool: store.T08}; -}) -export default class T08 extends React.Component { - - state = { - navigation: [{ - name: 'Documentation', - path: 'https://wiki.inowas.hydro.tu-dresden.de/t08-1d-transport-model-ogata-banks/', - icon: - }] - }; - - handleChange = (e) => { - if (e.target.name.startsWith('parameter')) { - const param = e.target.name.split('_'); - - const parameter = {}; - parameter.id = param[1]; - parameter[param[2]] = e.target.value; - this.props.dispatch(changeParameter(parameter)); - } - if ( e.target.name === 'settings' ) { - this.props.dispatch(changeSettings( e.target.value )); - } - if ( e.target.name === 'Infilt' ) { - this.props.dispatch(changeInfiltration( e.target.value )); - } - }; - - handleReset = (e) => { - this.props.dispatch(reset()); - }; - - componentWillMount() { - this.props.dispatch(calculate()); - } - - render() { - const { navigation } = this.state; - return ( -
    - -
    -
    -
    - -
    - -
    - -
    -
    - -
    -
    - -
    - -
    - -
    -
    -
    - ); - } -} diff --git a/src/containers/tools/T09.js b/src/containers/tools/T09.js deleted file mode 100644 index 58230179..00000000 --- a/src/containers/tools/T09.js +++ /dev/null @@ -1,105 +0,0 @@ -import PropTypes from 'prop-types'; -import React from 'react'; - -import '../../less/4TileTool.less'; -import '../../less/toolT13.less'; -import image9A from '../../images/tools/T09A.png'; -import image9B from '../../images/tools/T09B.png'; -import image9C from '../../images/tools/T09C.png'; -import image9D from '../../images/tools/T09D.png'; -import image9E from '../../images/tools/T09E.png'; -import Icon from '../../components/primitive/Icon'; -import Navbar from '../Navbar'; - - -class T09 extends React.Component { - - state = { - navigation: [{ - name: 'Documentation', - path: 'https://wiki.inowas.hydro.tu-dresden.de/t09-simple-saltwater-intrusion-equations/', - icon: - }] - }; - - pushToTool = tool => { - return this.props.router.push('/tools/' + tool); - }; - - render() { - const { navigation } = this.state; - return ( - - ); - } -} - -T09.propTypes = { - router: PropTypes.object -}; - -export default T09; diff --git a/src/containers/tools/T09A.js b/src/containers/tools/T09A.js deleted file mode 100644 index 7c8b6357..00000000 --- a/src/containers/tools/T09A.js +++ /dev/null @@ -1,100 +0,0 @@ -import PropTypes from 'prop-types'; -import React from 'react'; -import { bindActionCreators } from 'redux'; -import { connect } from 'react-redux'; -import { withRouter } from 'react-router'; - -import '../../less/4TileTool.less'; - -import Background from '../../components/tools/Background'; -import Chart from '../../components/tools/ChartT09A'; -import Parameters from '../../components/tools/Parameters'; -import {changeParameter, calculate, reset} from '../../actions/T09A'; - -import Header from '../../components/tools/Header'; -import Icon from '../../components/primitive/Icon'; -import Navbar from '../Navbar'; - - -class T09A extends React.Component { - - state = { - navigation: [{ - name: 'Documentation', - path: 'https://wiki.inowas.hydro.tu-dresden.de/t09-simple-saltwater-intrusion-equations/', - icon: - }] - }; - - componentWillMount() { - this.props.calculate(); - } - - handleChange = (e) => { - if (e.target.name.startsWith('parameter')) { - const param = e.target.name.split('_'); - - const parameter = {}; - parameter.id = param[1]; - parameter[param[2]] = e.target.value; - - this.props.changeParameter(parameter); - } - }; - - handleReset = () => { - this.props.reset(); - }; - - render() { - const { navigation } = this.state; - return ( -
    - -
    -
    -
    - -
    - -
    - -
    -
    -
    -
    - -
    -

    Parameters

    - -
    -
    -
    - ); - } -} - -T09A.propTypes = { - tool: PropTypes.object.isRequired, - calculate: PropTypes.func.isRequired, - changeParameter: PropTypes.func.isRequired, - reset: PropTypes.func.isRequired -}; - -const mapStateToProps = (state) => { - return { - tool: state.T09A, - }; -}; - -const mapDispatchToProps = (dispatch) => { - return bindActionCreators({ - calculate: calculate, - changeParameter: changeParameter, - reset: reset - }, dispatch); -}; - -export default withRouter( - connect(mapStateToProps, mapDispatchToProps)(T09A) -); diff --git a/src/containers/tools/T09B.js b/src/containers/tools/T09B.js deleted file mode 100644 index 7de4486c..00000000 --- a/src/containers/tools/T09B.js +++ /dev/null @@ -1,98 +0,0 @@ -import PropTypes from 'prop-types'; -import React from 'react'; -import { bindActionCreators } from 'redux'; -import { connect } from 'react-redux'; -import { withRouter } from 'react-router'; - -import '../../less/4TileTool.less'; - -import Background from '../../components/tools/Background'; -import Chart from '../../components/tools/ChartT09B'; -import Parameters from '../../components/tools/Parameters'; -import {changeParameter, calculate, reset} from '../../actions/T09B'; - -import Header from '../../components/tools/Header'; -import Icon from '../../components/primitive/Icon'; -import Navbar from '../Navbar'; - -class T09B extends React.Component { - - state = { - navigation: [{ - name: 'Documentation', - path: 'https://wiki.inowas.hydro.tu-dresden.de/t09-simple-saltwater-intrusion-equations/', - icon: - }] - }; - - componentWillMount() { - this.props.calculate(); - } - - handleChange = (e) => { - if (e.target.name.startsWith('parameter')) { - const param = e.target.name.split('_'); - - const parameter = {}; - parameter.id = param[1]; - parameter[param[2]] = e.target.value; - - this.props.changeParameter(parameter); - } - }; - - handleReset = () => { - this.props.reset(); - }; - - render() { - const { navigation } = this.state; - return ( -
    - -
    -
    -
    - -
    - -
    - -
    -
    - -
    -
    -
    - -
    -
    -
    - ); - } -} - -T09B.propTypes = { - tool: PropTypes.object.isRequired, - calculate: PropTypes.func.isRequired, - changeParameter: PropTypes.func.isRequired, - reset: PropTypes.func.isRequired -}; - -const mapStateToProps = (state) => { - return { - tool: state.T09B, - }; -}; - -const mapDispatchToProps = (dispatch) => { - return bindActionCreators({ - calculate: calculate, - changeParameter: changeParameter, - reset: reset - }, dispatch); -}; - -export default withRouter( - connect(mapStateToProps, mapDispatchToProps)(T09B) -); diff --git a/src/containers/tools/T09C.js b/src/containers/tools/T09C.js deleted file mode 100644 index b966817d..00000000 --- a/src/containers/tools/T09C.js +++ /dev/null @@ -1,102 +0,0 @@ -import PropTypes from 'prop-types'; -import React from 'react'; -import { bindActionCreators } from 'redux'; -import { connect } from 'react-redux'; -import { withRouter } from 'react-router'; - -import '../../less/4TileTool.less'; - -import Background from '../../components/tools/Background'; -import Chart from '../../components/tools/ChartT09C'; -import Info from '../../components/tools/InfoT09C'; -import Parameters from '../../components/tools/Parameters'; -import {changeParameter, calculate, reset} from '../../actions/T09C'; - -import Header from '../../components/tools/Header'; -import Icon from '../../components/primitive/Icon'; -import Navbar from '../Navbar'; - -class T09C extends React.Component { - - state = { - navigation: [{ - name: 'Documentation', - path: 'https://wiki.inowas.hydro.tu-dresden.de/t09-simple-saltwater-intrusion-equations/', - icon: - }] - }; - - componentWillMount() { - this.props.calculate(); - } - - handleChange = (e) => { - if (e.target.name.startsWith('parameter')) { - const param = e.target.name.split('_'); - - const parameter = {}; - parameter.id = param[1]; - parameter[param[2]] = e.target.value; - - this.props.changeParameter(parameter); - } - }; - - handleReset = () => { - this.props.reset(); - }; - - render() { - const { navigation } = this.state; - return ( -
    - -
    -
    -
    - -
    - -
    - -
    -
    - -
    -
    - -
    - -
    - -
    -
    -
    - ); - } -} - -T09C.propTypes = { - tool: PropTypes.object.isRequired, - calculate: PropTypes.func.isRequired, - changeParameter: PropTypes.func.isRequired, - reset: PropTypes.func.isRequired -}; - -const mapStateToProps = (state) => { - return { - tool: state.T09C, - }; -}; - -const mapDispatchToProps = (dispatch) => { - return bindActionCreators({ - calculate: calculate, - changeParameter: changeParameter, - reset: reset - }, dispatch); -}; - -export default withRouter( - connect(mapStateToProps, mapDispatchToProps)(T09C) -); diff --git a/src/containers/tools/T09D.js b/src/containers/tools/T09D.js deleted file mode 100644 index fc8accd4..00000000 --- a/src/containers/tools/T09D.js +++ /dev/null @@ -1,108 +0,0 @@ -import PropTypes from 'prop-types'; -import React from 'react'; -import { bindActionCreators } from 'redux'; -import { connect } from 'react-redux'; -import { withRouter } from 'react-router'; - -import '../../less/4TileTool.less'; - -import Background from '../../components/tools/Background'; -import Chart from '../../components/tools/ChartT09D'; -import Settings from '../../components/tools/SettingsT09D'; -import Parameters from '../../components/tools/Parameters'; -import {changeSettings, changeParameter, calculate, reset} from '../../actions/T09D'; -import Header from '../../components/tools/Header'; -import Navbar from '../Navbar'; -import Icon from '../../components/primitive/Icon'; - -class T09D extends React.Component { - - state = { - navigation: [{ - name: 'Documentation', - path: 'https://wiki.inowas.hydro.tu-dresden.de/t09-simple-saltwater-intrusion-equations/', - icon: - }] - }; - - componentWillMount() { - this.props.calculate(); - } - - - handleChange = (e) => { - if (e.target.name === 'settings') { - this.props.changeSettings(e.target.value); - } - - if (e.target.name.startsWith('parameter')) { - const param = e.target.name.split('_'); - - const parameter = {}; - parameter.id = param[1]; - parameter[param[2]] = e.target.value; - - this.props.changeParameter(parameter); - } - }; - - handleReset = () => { - this.props.reset(); - }; - - render() { - const { navigation } = this.state; - return ( -
    - -
    -
    -
    - -
    - -
    - -
    -
    - -
    -
    - -
    - -
    - -
    -
    -
    - ); - } -} - -T09D.propTypes = { - tool: PropTypes.object.isRequired, - calculate: PropTypes.func.isRequired, - changeParameter: PropTypes.func.isRequired, - changeSettings: PropTypes.func.isRequired, - reset: PropTypes.func.isRequired -}; - -const mapStateToProps = (state) => { - return { - tool: state.T09D, - }; -}; - -const mapDispatchToProps = (dispatch) => { - return bindActionCreators({ - calculate: calculate, - changeParameter: changeParameter, - changeSettings: changeSettings, - reset: reset - }, dispatch); -}; - -export default withRouter( - connect(mapStateToProps, mapDispatchToProps)(T09D) -); diff --git a/src/containers/tools/T09E.js b/src/containers/tools/T09E.js deleted file mode 100644 index 4c254367..00000000 --- a/src/containers/tools/T09E.js +++ /dev/null @@ -1,81 +0,0 @@ -import React from 'react'; -import {connect} from 'react-redux'; - -import '../../less/4TileTool.less'; - -import Background from '../../components/tools/Background'; -import Chart from '../../components/tools/ChartT09E'; -// import Settings from "../../components/tools/Settings" -import Parameters from '../../components/tools/Parameters'; -import {changeSettings, changeParameter, calculate, reset} from '../../actions/T09E'; -import Navbar from '../Navbar'; -import Icon from '../../components/primitive/Icon'; - -import Header from '../../components/tools/Header'; - -@connect((store) => { - return {tool: store.T09E}; -}) -export default class T09F extends React.Component { - - state = { - navigation: [{ - name: 'Documentation', - path: 'https://wiki.inowas.hydro.tu-dresden.de/t09-simple-saltwater-intrusion-equations/', - icon: - }] - }; - - handleChange = (e) => { - if (e.target.name === 'settings') { - this.props.dispatch(changeSettings(e.target.value)); - } - - if (e.target.name.startsWith('parameter')) { - const param = e.target.name.split('_'); - - const parameter = {}; - parameter.id = param[1]; - parameter[param[2]] = e.target.value; - - this.props.dispatch(changeParameter(parameter)); - } - }; - - handleReset = (e) => { - this.props.dispatch(reset()); - }; - - componentWillMount() { - this.props.dispatch(calculate()); - } - - render() { - const { navigation } = this.state; - return ( -
    - -
    -
    -
    - -
    - -
    - -
    -
    - -
    -
    - -
    - -
    - -
    -
    -
    - ); - } -} diff --git a/src/containers/tools/T12.js b/src/containers/tools/T12.js deleted file mode 100644 index a7619ec4..00000000 --- a/src/containers/tools/T12.js +++ /dev/null @@ -1,95 +0,0 @@ -import React from 'react'; -import { connect } from 'react-redux'; - -import '../../less/4TileTool.less'; - -import Background from '../../components/tools/Background'; -import Chart from '../../components/tools/ChartT12'; -import MFI from '../../components/tools/T12_MFI'; -import Parameters from '../../components/tools/Parameters_T12'; -import {changeMFI, changeParameter, changeCorrections, calculate, reset, useDataInGraph} from '../../actions/T12' -import Header from '../../components/tools/Header'; -import Navbar from '../Navbar'; -import Icon from '../../components/primitive/Icon'; -import Info from '../../components/tools/InfoT12'; - -@connect(( store ) => { - return { tool: store.T12 }; -}) -export default class T12 extends React.Component { - - state = { - navigation: [{ - name: 'Documentation', - path: 'https://wiki.inowas.hydro.tu-dresden.de/t12-Clogging-estimation-by-MFI-Index/', - icon: - }] - }; - - handleChange = ( e ) => { - const param = e.target.name.split( '_' ); - - const parameter = {}; - parameter.id = param[1]; - parameter[param[2]] = Number(e.target.value); - if (e.target.name.startsWith( 'parameter' )) { - this.props.dispatch(changeParameter( parameter )); - } - if (e.target.name.startsWith('mfi')) { - this.props.dispatch(changeMFI(parameter)); - } - if (e.target.name.startsWith('use')) { - this.props.dispatch(useDataInGraph(parameter)); - } - if (e.target.name.startsWith('corr')) { - const param = e.target.name.split(' '); - this.props.dispatch(changeCorrections({ - name: param[1], - value: e.target.value - })) - } - }; - - handleReset = ( e ) => { - this.props.dispatch(reset( )); - }; - - componentWillMount( ) { - this.props.dispatch(calculate( )); - } - render() { - const styleheader = { - color: '#1EB1ED' - }; - - return ( -
    - -
    -
    -
    - -
    - -
    - -
    -
    - -
    -
    - -
    -
    -

    MFI

    - -
    -
    - -
    -
    -
    - ); - } -} \ No newline at end of file diff --git a/src/containers/tools/T13.js b/src/containers/tools/T13.js deleted file mode 100644 index 4767fdaa..00000000 --- a/src/containers/tools/T13.js +++ /dev/null @@ -1,85 +0,0 @@ -import React from 'react' - -import '../../less/4TileTool.less'; -import '../../less/toolT13.less'; -import image13A from '../../images/tools/intro_13a.png'; -import image13B from '../../images/tools/intro_13b.png'; -import image13C from '../../images/tools/intro_13c.png'; -import image13D from '../../images/tools/intro_13d.png'; -import image13E from '../../images/tools/intro_13e.png'; -import Icon from '../../components/primitive/Icon'; -import Navbar from '../Navbar'; - - -export default class T13 extends React.Component { - - state = { - navigation: [{ - name: 'Documentation', - path: 'https://wiki.inowas.hydro.tu-dresden.de/t13-travel-time-through-unconfined-aquifer/', - icon: - }] - }; - - render() { - const { navigation } = this.state; - return ( -
    - -

    Please select the set of boundary conditions that apply to your problem:

    - -
    - ) - } -} diff --git a/src/containers/tools/T13A.js b/src/containers/tools/T13A.js deleted file mode 100644 index 4dc2cae4..00000000 --- a/src/containers/tools/T13A.js +++ /dev/null @@ -1,72 +0,0 @@ -import React from 'react'; -import {connect} from 'react-redux'; - -import '../../less/4TileTool.less'; - -import Background from '../../components/tools/Background'; -import Chart from '../../components/tools/ChartT13A'; -import Parameters from '../../components/tools/Parameters'; -import {changeParameter, calculate, reset} from '../../actions/T13A'; -import Header from '../../components/tools/Header'; -import Navbar from '../Navbar'; -import Icon from '../../components/primitive/Icon'; - -@connect((store) => { - return {tool: store.T13A}; -}) -export default class T13A extends React.Component { - - state = { - navigation: [{ - name: 'Documentation', - path: 'https://wiki.inowas.hydro.tu-dresden.de/t13-travel-time-through-unconfined-aquifer/', - icon: - }] - } - - handleChange = (e) => { - if (e.target.name.startsWith('parameter')) { - const param = e.target.name.split('_'); - - const parameter = {}; - parameter.id = param[1]; - parameter[param[2]] = e.target.value; - this.props.dispatch(changeParameter(parameter)); - } - }; - - handleReset = (e) => { - this.props.dispatch(reset()); - }; - - componentWillMount() { - this.props.dispatch(calculate()); - } - - render() { - const { navigation } = this.state; - return ( -
    - -
    -
    -
    - -
    - -
    - -
    -
    - -
    -
    - -
    - -
    -
    -
    - ); - } -} diff --git a/src/containers/tools/T13B.js b/src/containers/tools/T13B.js deleted file mode 100644 index 4c8bae26..00000000 --- a/src/containers/tools/T13B.js +++ /dev/null @@ -1,82 +0,0 @@ -// TODO bug after changing xi - -import React from 'react'; -import { connect } from 'react-redux'; - -import Background from '../../components/tools/Background'; -import Chart from '../../components/tools/ChartT13B'; -import Info from '../../components/tools/InfoT13B'; -import Settings from '../../components/tools/SettingsT13B'; -import Parameters from '../../components/tools/Parameters'; -import { changeSettings, changeParameter, calculate, reset } from '../../actions/T13B'; -import Header from '../../components/tools/Header'; -import Navbar from '../Navbar'; -import Icon from '../../components/primitive/Icon'; - -@connect(( store ) => { - return { tool: store.T13B }; -}) -export default class T13B extends React.Component { - - state = { - navigation: [{ - name: 'Documentation', - path: 'https://wiki.inowas.hydro.tu-dresden.de/t13-travel-time-through-unconfined-aquifer/', - icon: - }] - }; - - handleChange = ( e ) => { - if ( e.target.name === 'settings' ) { - this.props.dispatch(changeSettings( e.target.value )); - } - - if (e.target.name.startsWith( 'parameter' )) { - const param = e.target.name.split( '_' ); - - const parameter = {}; - parameter.id = param[1]; - parameter[param[2]] = e.target.value; - - this.props.dispatch(changeParameter( parameter )); - } - }; - - handleReset = ( e ) => { - this.props.dispatch(reset( )); - }; - - componentWillMount( ) { - this.props.dispatch(calculate( )); - } - - render( ) { - const { navigation } = this.state; - return ( -
    - -
    -
    -
    - -
    - -
    - -
    -
    - -
    -
    - - -
    - -
    - -
    -
    -
    - ); - } -} diff --git a/src/containers/tools/T13C.js b/src/containers/tools/T13C.js deleted file mode 100644 index 2f5cf445..00000000 --- a/src/containers/tools/T13C.js +++ /dev/null @@ -1,80 +0,0 @@ -// TODO bug after changing xi - -import React from 'react'; -import { connect } from 'react-redux'; - -import Background from '../../components/tools/Background'; -import Chart from '../../components/tools/ChartT13C'; -import Info from '../../components/tools/InfoT13C'; -import Parameters from '../../components/tools/Parameters'; -import { changeSettings, changeParameter, calculate, reset } from '../../actions/T13C'; -import Header from '../../components/tools/Header'; -import Navbar from '../Navbar'; -import Icon from '../../components/primitive/Icon'; - -@connect(( store ) => { - return { tool: store.T13C }; -}) -export default class T13C extends React.Component { - - state = { - navigation: [{ - name: 'Documentation', - path: 'https://wiki.inowas.hydro.tu-dresden.de/t13-travel-time-through-unconfined-aquifer/', - icon: - }] - } - - handleChange = ( e ) => { - if ( e.target.name === 'settings' ) { - this.props.dispatch(changeSettings( e.target.value )); - } - - if (e.target.name.startsWith( 'parameter' )) { - const param = e.target.name.split( '_' ); - - const parameter = {}; - parameter.id = param[1]; - parameter[param[2]] = e.target.value; - - this.props.dispatch(changeParameter( parameter )); - } - }; - - handleReset = ( e ) => { - this.props.dispatch(reset( )); - }; - - componentWillMount( ) { - this.props.dispatch(calculate( )); - } - - render( ) { - const { navigation } = this.state; - return ( -
    - -
    -
    -
    - -
    - -
    - -
    -
    - -
    -
    - -
    - -
    - -
    -
    -
    - ); - } -} diff --git a/src/containers/tools/T13D.js b/src/containers/tools/T13D.js deleted file mode 100644 index b11f8cf4..00000000 --- a/src/containers/tools/T13D.js +++ /dev/null @@ -1,65 +0,0 @@ -import React from 'react'; -import { connect } from 'react-redux'; - -import Info from '../../components/tools/InfoT13D'; -import Settings from '../../components/tools/SettingsT13D'; -import Parameters from '../../components/tools/Parameters'; -import {changeParameter, calculate, reset } from '../../actions/T13D'; -import Header from '../../components/tools/Header'; -import Navbar from '../Navbar'; -import Icon from '../../components/primitive/Icon'; - -@connect(( store ) => { - return { tool: store.T13D }; -}) -export default class T13D extends React.Component { - - state = { - navigation: [{ - name: 'Documentation', - path: 'https://wiki.inowas.hydro.tu-dresden.de/t13-travel-time-through-unconfined-aquifer/', - icon: - }] - }; - - handleChange = ( e ) => { - if (e.target.name.startsWith( 'parameter' )) { - const param = e.target.name.split( '_' ); - - const parameter = {}; - parameter.id = param[1]; - parameter[param[2]] = e.target.value; - - this.props.dispatch(changeParameter( parameter )); - } - }; - - handleReset = ( e ) => { - this.props.dispatch(reset( )); - }; - - componentWillMount( ) { - this.props.dispatch(calculate( )); - } - - render( ) { - const { navigation } = this.state; - return ( -
    - -
    - -
    -
    - - -
    - -
    - -
    -
    -
    - ); - } -} diff --git a/src/containers/tools/T13E.js b/src/containers/tools/T13E.js deleted file mode 100644 index 0950d697..00000000 --- a/src/containers/tools/T13E.js +++ /dev/null @@ -1,77 +0,0 @@ -// TODO bug after changing xi - -import React from 'react'; -import { connect } from 'react-redux'; - -import Background from '../../components/tools/Background'; -import Chart from '../../components/tools/ChartT13E'; -import Parameters from '../../components/tools/Parameters'; -import { changeSettings, changeParameter, calculate, reset } from '../../actions/T13E'; -import Header from '../../components/tools/Header'; -import Navbar from '../Navbar'; -import Icon from '../../components/primitive/Icon'; - -@connect(( store ) => { - return { tool: store.T13E }; -}) -export default class T13E extends React.Component { - - state = { - navigation: [{ - name: 'Documentation', - path: 'https://wiki.inowas.hydro.tu-dresden.de/t13-travel-time-through-unconfined-aquifer/', - icon: - }] - }; - - handleChange = ( e ) => { - if ( e.target.name === 'settings' ) { - this.props.dispatch(changeSettings( e.target.value )); - } - - if (e.target.name.startsWith( 'parameter' )) { - const param = e.target.name.split( '_' ); - - const parameter = {}; - parameter.id = param[1]; - parameter[param[2]] = e.target.value; - - this.props.dispatch(changeParameter( parameter )); - } - }; - - handleReset = ( e ) => { - this.props.dispatch(reset( )); - }; - - componentWillMount( ) { - this.props.dispatch(calculate( )); - } - - render( ) { - const { navigation } = this.state; - return ( -
    - -
    -
    -
    - -
    - -
    - -
    -
    - -
    -
    - -
    - -
    -
    -
    - ); - } -} diff --git a/src/containers/tools/T14.js b/src/containers/tools/T14.js deleted file mode 100644 index 12c1a94c..00000000 --- a/src/containers/tools/T14.js +++ /dev/null @@ -1,88 +0,0 @@ -import PropTypes from 'prop-types'; -import React from 'react'; - -import '../../less/4TileTool.less'; -import '../../less/toolT13.less'; -import image14A from '../../images/tools/T14A.png'; -import image14B from '../../images/tools/T14B.png'; -import image14C from '../../images/tools/T14C.png'; -import image14D from '../../images/tools/T14D.png'; -import Icon from '../../components/primitive/Icon'; -import Navbar from '../Navbar'; - -class T14 extends React.Component { - - state = { - navigation: [{ - name: 'Documentation', - path: 'https://wiki.inowas.hydro.tu-dresden.de/t14-pumping-induced-river-drawdown/', - icon: - }] - }; - - pushToTool = tool => { - return this.props.router.push('/tools/' + tool); - }; - - render() { - const { navigation } = this.state; - return ( - - ); - } -} - -T14.propTypes = { - router: PropTypes.object -}; - -export default T14; diff --git a/src/containers/tools/T14A.js b/src/containers/tools/T14A.js deleted file mode 100644 index 0d0aea73..00000000 --- a/src/containers/tools/T14A.js +++ /dev/null @@ -1,73 +0,0 @@ -import React from 'react'; -import { connect } from 'react-redux'; - -import '../../less/4TileTool.less'; - -import Background from '../../components/tools/Background'; -import Chart from '../../components/tools/ChartT14A'; -import Parameters from '../../components/tools/Parameters'; -import { changeParameter, calculate, reset } from '../../actions/T14A'; -import Header from '../../components/tools/Header'; -import Navbar from '../Navbar'; -import Icon from '../../components/primitive/Icon'; - -@connect(( store ) => { - return { tool: store.T14A }; -}) -export default class T14A extends React.Component { - - state = { - navigation: [{ - name: 'Documentation', - path: 'https://wiki.inowas.hydro.tu-dresden.de/t14-pumping-induced-river-drawdown/', - icon: - }] - } - - handleChange = ( e ) => { - if (e.target.name.startsWith( 'parameter' )) { - const param = e.target.name.split( '_' ); - - const parameter = {}; - parameter.id = param[1]; - parameter[param[2]] = e.target.value; - - this.props.dispatch(changeParameter( parameter )); - } - }; - - handleReset = ( e ) => { - this.props.dispatch(reset( )); - }; - - componentWillMount( ) { - this.props.dispatch(calculate( )); - } - - render( ) { - const { navigation } = this.state; - return ( -
    - -
    -
    -
    - -
    - -
    - -
    -
    - -
    -
    - -
    - -
    -
    -
    - ); - } -} diff --git a/src/containers/tools/T14B.js b/src/containers/tools/T14B.js deleted file mode 100644 index 07e6c911..00000000 --- a/src/containers/tools/T14B.js +++ /dev/null @@ -1,73 +0,0 @@ -import React from 'react'; -import { connect } from 'react-redux'; - -import '../../less/4TileTool.less'; - -import Background from '../../components/tools/Background'; -import Chart from '../../components/tools/ChartT14B'; -import Parameters from '../../components/tools/Parameters'; -import { changeParameter, calculate, reset } from '../../actions/T14B'; -import Header from '../../components/tools/Header'; -import Navbar from '../Navbar'; -import Icon from '../../components/primitive/Icon'; - -@connect(( store ) => { - return { tool: store.T14B }; -}) -export default class T14B extends React.Component { - - state = { - navigation: [{ - name: 'Documentation', - path: 'https://wiki.inowas.hydro.tu-dresden.de/t14-pumping-induced-river-drawdown/', - icon: - }] - } - - handleChange = ( e ) => { - if (e.target.name.startsWith( 'parameter' )) { - const param = e.target.name.split( '_' ); - - const parameter = {}; - parameter.id = param[1]; - parameter[param[2]] = e.target.value; - - this.props.dispatch(changeParameter( parameter )); - } - }; - - handleReset = ( e ) => { - this.props.dispatch(reset( )); - }; - - componentWillMount( ) { - this.props.dispatch(calculate( )); - } - - render( ) { - const { navigation } = this.state; - return ( -
    - -
    -
    -
    - -
    - -
    - -
    -
    - -
    -
    - -
    - -
    -
    -
    - ); - } -} diff --git a/src/containers/tools/T14C.js b/src/containers/tools/T14C.js deleted file mode 100644 index 26f55687..00000000 --- a/src/containers/tools/T14C.js +++ /dev/null @@ -1,73 +0,0 @@ -import React from 'react'; -import { connect } from 'react-redux'; - -import '../../less/4TileTool.less'; - -import Background from '../../components/tools/Background'; -import Chart from '../../components/tools/ChartT14C'; -import Parameters from '../../components/tools/Parameters'; -import { changeParameter, calculate, reset } from '../../actions/T14C'; -import Header from '../../components/tools/Header'; -import Navbar from '../Navbar'; -import Icon from '../../components/primitive/Icon'; - -@connect(( store ) => { - return { tool: store.T14C }; -}) -export default class T14C extends React.Component { - - state = { - navigation: [{ - name: 'Documentation', - path: 'https://wiki.inowas.hydro.tu-dresden.de/t14-pumping-induced-river-drawdown/', - icon: - }] - } - - handleChange = ( e ) => { - if (e.target.name.startsWith( 'parameter' )) { - const param = e.target.name.split( '_' ); - - const parameter = {}; - parameter.id = param[1]; - parameter[param[2]] = e.target.value; - - this.props.dispatch(changeParameter( parameter )); - } - }; - - handleReset = ( e ) => { - this.props.dispatch(reset( )); - }; - - componentWillMount( ) { - this.props.dispatch(calculate( )); - } - - render( ) { - const { navigation } = this.state; - return ( -
    - -
    -
    -
    - -
    - -
    - -
    -
    - -
    -
    - -
    - -
    -
    -
    - ); - } -} diff --git a/src/containers/tools/T14D.js b/src/containers/tools/T14D.js deleted file mode 100644 index bcd598d2..00000000 --- a/src/containers/tools/T14D.js +++ /dev/null @@ -1,73 +0,0 @@ -import React from 'react'; -import { connect } from 'react-redux'; - -import '../../less/4TileTool.less'; - -import Background from '../../components/tools/Background'; -import Chart from '../../components/tools/ChartT14D'; -import Parameters from '../../components/tools/Parameters'; -import { changeParameter, calculate, reset } from '../../actions/T14D'; -import Header from '../../components/tools/Header'; -import Navbar from '../Navbar'; -import Icon from '../../components/primitive/Icon'; - -@connect(( store ) => { - return { tool: store.T14D }; -}) -export default class T14D extends React.Component { - - state = { - navigation: [{ - name: 'Documentation', - path: 'https://wiki.inowas.hydro.tu-dresden.de/t14-pumping-induced-river-drawdown/', - icon: - }] - } - - handleChange = ( e ) => { - if (e.target.name.startsWith( 'parameter' )) { - const param = e.target.name.split( '_' ); - - const parameter = {}; - parameter.id = param[1]; - parameter[param[2]] = e.target.value; - - this.props.dispatch(changeParameter( parameter )); - } - }; - - handleReset = ( e ) => { - this.props.dispatch(reset( )); - }; - - componentWillMount( ) { - this.props.dispatch(calculate( )); - } - - render( ) { - const { navigation } = this.state; - return ( -
    - -
    -
    -
    - -
    - -
    - -
    -
    - -
    -
    - -
    - -
    -
    -
    - ); - } -} diff --git a/src/containers/tools/T16.js b/src/containers/tools/T16.js index 949e46ab..fff0e15f 100644 --- a/src/containers/tools/T16.js +++ b/src/containers/tools/T16.js @@ -22,7 +22,7 @@ export default class T16A extends React.Component { state = { navigation: [{ name: 'Documentation', - path: 'https://wiki.inowas.hydro.tu-dresden.de/t16-calculation-of-hydraulic-conductivity/', + path: 'https://inowas.hydro.tu-dresden.de/tools/t16-calculation-of-hydraulic-conductivity/', icon: }] } diff --git a/src/containers/tools/T18.js b/src/containers/tools/T18.js index bce7ecd5..b4d66d11 100644 --- a/src/containers/tools/T18.js +++ b/src/containers/tools/T18.js @@ -1,5 +1,5 @@ import React from 'react'; -import { connect } from 'react-redux'; +import {connect} from 'react-redux'; import '../../less/4TileTool.less'; @@ -7,47 +7,47 @@ import Background from '../../components/tools/Background'; import Chart from '../../components/tools/ChartT18'; import Info from '../../components/tools/InfoT18'; import Parameters from '../../components/tools/Parameters'; -import { changeParameter, calculate, reset } from '../../actions/T18'; +import {changeParameter, calculate, reset} from '../../actions/T18'; import Navbar from '../Navbar'; import Icon from '../../components/primitive/Icon'; import Header from '../../components/tools/Header'; -@connect(( store ) => { - return { tool: store.T18 }; +@connect((store) => { + return {tool: store.T18}; }) export default class T18 extends React.Component { state = { navigation: [{ name: 'Documentation', - path: 'https://wiki.inowas.hydro.tu-dresden.de/t18-sat-basin-design/', + path: 'https://inowas.hydro.tu-dresden.de/tools/t18-sat-basin-design/', icon: }] + }; + + componentWillMount() { + this.props.dispatch(calculate()); } - handleChange = ( e ) => { - if (e.target.name.startsWith( 'parameter' )) { - const param = e.target.name.split( '_' ); + handleChange = (e) => { + if (e.target.name.startsWith('parameter')) { + const param = e.target.name.split('_'); const parameter = {}; parameter.id = param[1]; parameter[param[2]] = e.target.value; - this.props.dispatch(changeParameter( parameter )); + this.props.dispatch(changeParameter(parameter)); } }; - handleReset = ( ) => { - this.props.dispatch(reset( )); + handleReset = () => { + this.props.dispatch(reset()); }; - componentWillMount( ) { - this.props.dispatch(calculate( )); - } - - render( ) { - const { navigation } = this.state; + render() { + const {navigation} = this.state; return (
    @@ -58,7 +58,8 @@ export default class T18 extends React.Component {
    - +
    @@ -68,7 +69,8 @@ export default class T18 extends React.Component {
    - +
    diff --git a/src/containers/tools/index.js b/src/containers/tools/index.js index 59c844e8..63685c33 100644 --- a/src/containers/tools/index.js +++ b/src/containers/tools/index.js @@ -1,47 +1,7 @@ -import T06 from './T06'; -import T08 from './T08'; -import T09 from './T09'; -import T09A from './T09A'; -import T09B from './T09B'; -import T09C from './T09C'; -import T09D from './T09D'; -import T09E from './T09E'; -import T12 from './T12'; -import T13 from './T13'; -import T13A from './T13A'; -import T13B from './T13B'; -import T13C from './T13C'; -import T13D from './T13D'; -import T13E from './T13E'; -import T14 from './T14'; -import T14A from './T14A'; -import T14B from './T14B'; -import T14C from './T14C'; -import T14D from './T14D'; import T16 from './T16'; import T17 from './T17'; import T18 from './T18'; export default { - T06, - T08, - T09, - T09A, - T09B, - T09C, - T09D, - T09E, - T12, - T13, - T13A, - T13B, - T13C, - T13D, - T13E, - T14, - T14A, - T14B, - T14C, - T14D, T16, T17, T18 diff --git a/src/core/boundaryEditor/boundaryGeometryActiveCellsMap.jsx b/src/core/boundaryEditor/boundaryGeometryActiveCellsMap.jsx index dbc7e2e9..c15676c1 100644 --- a/src/core/boundaryEditor/boundaryGeometryActiveCellsMap.jsx +++ b/src/core/boundaryEditor/boundaryGeometryActiveCellsMap.jsx @@ -5,7 +5,6 @@ import {GeoJSON, Map, TileLayer, CircleMarker} from 'react-leaflet'; import {geoJSON as leafletGeoJSON, LatLng} from 'leaflet'; import {EditControl} from 'react-leaflet-draw'; import FullscreenControl from 'react-leaflet-fullscreen'; -import * as mapHelpers from '../../calculations/map'; import * as geoTools from '../geospatial'; import ActiveCellsLayer from './activeCellsLayer'; import {getActiveCellFromCoordinate} from '../geospatial/index'; @@ -140,7 +139,7 @@ class BoundaryGeometryActiveCellsMap extends React.Component { if (boundary.id === id && boundary.observation_points) { boundary.observation_points.map(op => { const {coordinates} = op.geometry; - const latLng = mapHelpers.closestPointOnGeometry(e.target, layer, new LatLng(coordinates[1], coordinates[0])); + const latLng = geoTools.closestPointOnGeometry(e.target, layer, new LatLng(coordinates[1], coordinates[0])); op.geometry.coordinates = [latLng.lng, latLng.lat]; return op; }); diff --git a/src/core/boundaryEditor/boundaryGeometryEditor.js b/src/core/boundaryEditor/boundaryGeometryEditor.js index c8eb13df..cfbdca4c 100644 --- a/src/core/boundaryEditor/boundaryGeometryEditor.js +++ b/src/core/boundaryEditor/boundaryGeometryEditor.js @@ -42,7 +42,7 @@ class BoundaryGeometryEditor extends React.Component { return (
    - + Edit boundary properties diff --git a/src/core/boundaryEditor/boundaryGeometryEditorMap.jsx b/src/core/boundaryEditor/boundaryGeometryEditorMap.jsx index 30d087c8..67a43b0c 100644 --- a/src/core/boundaryEditor/boundaryGeometryEditorMap.jsx +++ b/src/core/boundaryEditor/boundaryGeometryEditorMap.jsx @@ -8,7 +8,6 @@ import {cloneDeep, uniqueId} from 'lodash'; import {EditControl} from 'react-leaflet-draw'; import FullscreenControl from 'react-leaflet-fullscreen'; -import * as mapHelpers from '../../calculations/map'; import * as geoTools from '../geospatial'; import Control from '../map/Control'; @@ -98,7 +97,7 @@ class BoundaryGeometryEditorMap extends React.Component { @@ -108,7 +107,7 @@ class BoundaryGeometryEditorMap extends React.Component { @@ -141,7 +140,7 @@ class BoundaryGeometryEditorMap extends React.Component { if (boundary.id === id && boundary.observation_points) { boundary.observation_points.map(op => { const {coordinates} = op.geometry; - const latLng = mapHelpers.closestPointOnGeometry(e.target, layer, new LatLng(coordinates[1], coordinates[0])); + const latLng = geoTools.closestPointOnGeometry(e.target, layer, new LatLng(coordinates[1], coordinates[0])); op.geometry.coordinates = [latLng.lng, latLng.lat]; return op; }); diff --git a/src/core/boundaryEditor/observationPointEditorMap.jsx b/src/core/boundaryEditor/observationPointEditorMap.jsx index 8a110a41..16bca1a6 100644 --- a/src/core/boundaryEditor/observationPointEditorMap.jsx +++ b/src/core/boundaryEditor/observationPointEditorMap.jsx @@ -4,7 +4,7 @@ import React from 'react'; import {GeoJSON, Map, CircleMarker, TileLayer} from 'react-leaflet'; import {polygon as leafletPolygon, geoJSON as leafletGeoJSON} from 'leaflet'; -import * as mapHelpers from '../../calculations/map'; +import {disableMap, closestPointOnGeometry} from '../../core/geospatial'; import {uniqueId} from 'lodash'; @@ -43,7 +43,7 @@ class ObservationPointEditorMap extends React.Component { } componentDidMount() { - mapHelpers.disableMap(this.map); + disableMap(this.map); } generateKeyFunction = geometry => { @@ -63,7 +63,7 @@ class ObservationPointEditorMap extends React.Component { const polygon = leafletPolygon(latLngs); this.setState({ - temporaryPoint: mapHelpers.closestPointOnGeometry(e.target, polygon, e.latlng) + temporaryPoint: closestPointOnGeometry(e.target, polygon, e.latlng) }); }; diff --git a/src/core/calculations/binomialCoefficient.js b/src/core/calculations/binomialCoefficient.js new file mode 100644 index 00000000..3fe33475 --- /dev/null +++ b/src/core/calculations/binomialCoefficient.js @@ -0,0 +1,18 @@ +const binomial = (n, k) => { + if ((typeof n !== 'number') || (typeof k !== 'number')) { + return false; + } + + let coefficient = 1; + for (let x = n - k + 1; x <= n; x++) { + coefficient *= x; + } + + for (let x = 1; x <= k; x++) { + coefficient /= x; + } + + return coefficient; +}; + +export default binomial; diff --git a/src/core/calculations/erf.js b/src/core/calculations/erf.js new file mode 100644 index 00000000..1a13d8f1 --- /dev/null +++ b/src/core/calculations/erf.js @@ -0,0 +1,22 @@ +export default function erf(x) { + const a1 = 0.254829592; + const a2 = -0.284496736; + const a3 = 1.421413741; + const a4 = -1.453152027; + const a5 = 1.061405429; + const p = 0.3275911; + + // Save the sign of x + let sign = 1; + if (x < 0) { + sign = -1; + } + + // get absX + const absX = Math.abs(x); + + // A & S 7.1.26 with Horners Method + const t = 1.0 / (1.0 + p * absX); + const y = 1.0 - (((((a5 * t + a4) * t) + a3) * t + a2) * t + a1) * t * Math.exp(-absX * absX); + return sign * y; +} diff --git a/src/calculations/erfc.js b/src/core/calculations/erfc.js similarity index 70% rename from src/calculations/erfc.js rename to src/core/calculations/erfc.js index 39dcfd72..34855067 100644 --- a/src/calculations/erfc.js +++ b/src/core/calculations/erfc.js @@ -1,4 +1,4 @@ -import erf from './erf' +import erf from './erf'; export default function erfc(x) { return 1 - erf(x); diff --git a/src/core/calculations/index.js b/src/core/calculations/index.js new file mode 100644 index 00000000..9018ecf4 --- /dev/null +++ b/src/core/calculations/index.js @@ -0,0 +1,7 @@ +import binomial from './binomialCoefficient'; +import erf from './erf'; +import erfc from './erfc'; +import integrate from './integrate'; +import summation from './summation'; + +export {binomial, erf, erfc, integrate, summation}; diff --git a/src/core/calculations/integrate.js b/src/core/calculations/integrate.js new file mode 100644 index 00000000..fbcbbb4a --- /dev/null +++ b/src/core/calculations/integrate.js @@ -0,0 +1,39 @@ +import PropTypes from 'prop-types'; + +const GP = [ + -0.949107912342759, + -0.741531185599394, + -0.405845151377397, + 0.0, 0.405845151377397, + 0.741531185599394, + 0.949107912342759 +]; + +const WT = [ + 0.129484966168870, + 0.279705391489277, + 0.381830050505119, + 0.417959183673469, + 0.381830050505119, + 0.279705391489277, + 0.129484966168870 +]; + + +const integrate = (f, lower, upper, stepSize) => { + let result = 0; + for (let x = lower; x < upper; x += stepSize) { + result += f(x + (1 / 2 * stepSize)); + } + return result; +}; + +integrate.propTypes = { + f: PropTypes.func.isRequired, + lower: PropTypes.number.isRequired, + upper: PropTypes.number.isRequired, + stepSize: PropTypes.number.isRequired, +}; + + +export default integrate; diff --git a/src/core/calculations/summation.js b/src/core/calculations/summation.js new file mode 100644 index 00000000..28a7828a --- /dev/null +++ b/src/core/calculations/summation.js @@ -0,0 +1,19 @@ +import PropTypes from 'prop-types'; + +const summation = (f, lower, upper) => { + let result = 0; + for (let n = lower; n <= upper; n++) { + result += f(n); + } + + return result; +}; + +summation.propTypes = { + f: PropTypes.func.isRequired, + lower: PropTypes.number.isRequired, + upper: PropTypes.number.isRequired +}; + + +export default summation; diff --git a/src/core/formatter.js b/src/core/formatter.js index 736b143c..034d21b7 100644 --- a/src/core/formatter.js +++ b/src/core/formatter.js @@ -2,20 +2,19 @@ import moment from 'moment'; const intlNumberFormatter = new Intl.NumberFormat([], {minimumFractionDigits: 2, maximumFractionDigits: 5}); -export function toDate( date) { +export function toDate( date ) { if (!date) { return 'n/a'; } - return new Date(date).toLocaleDateString(); + return moment.utc(date).format('YYYY-MM-DD'); } export function toNumber(number) { return intlNumberFormatter.format(number); } - -export const dateToAtomFormat = (date) => moment(date).format('YYYY-MM-DD[T]00:00:00+00:00'); -export const dateToYmd = (date) => moment(date).format('YYYY-MM-DD'); -export const dateToTime = (date) => moment(date).format('HH:mm'); -export const dateToDate = (date) => moment(date).format('MM/DD/YYYY'); -export const dateToDatetime = (date) => moment(date).format('MM/DD/YYYY HH:mm'); +export const dateToAtomFormat = (date) => moment.utc(date).format('YYYY-MM-DD[T]00:00:00+00:00'); +export const dateToYmd = (date) => moment.utc(date).format('YYYY-MM-DD'); +export const dateToTime = (date) => moment.utc(date).format('HH:mm'); +export const dateToDate = (date) => moment.utc(date).format('MM/DD/YYYY'); +export const dateToDatetime = (date) => moment.utc(date).format('MM/DD/YYYY HH:mm'); diff --git a/src/core/geospatial/index.js b/src/core/geospatial/index.js index 1fcfbc86..2ef00d04 100644 --- a/src/core/geospatial/index.js +++ b/src/core/geospatial/index.js @@ -1,7 +1,11 @@ +import React from 'react'; import {lineString} from '@turf/helpers'; -import {booleanCrosses, booleanContains, booleanOverlap, envelope} from '@turf/turf'; -import {floor, min, max} from 'lodash'; - +import {booleanCrosses, booleanContains, booleanOverlap, envelope, point, distance} from '@turf/turf'; +import {floor, min, max, uniqueId} from 'lodash'; +import {closest as leafletClosest} from 'leaflet-geometryutil'; +import {Circle, FeatureGroup, Polygon, Polyline, TileLayer} from 'react-leaflet'; +import {EditControl} from 'react-leaflet-draw'; +import FullscreenControl from 'react-leaflet-fullscreen'; export const getMinMaxFromBoundingBox = boundingBox => { const xMin = min([boundingBox[0][0], boundingBox[1][0]]); @@ -14,6 +18,41 @@ export const getMinMaxFromBoundingBox = boundingBox => { }; }; +export const getBoundingBoxSizeInMeters = boundingBox => { + const {xMin, xMax, yMin, yMax} = getMinMaxFromBoundingBox(boundingBox); + const options = {units: 'kilometers'}; + const distanceX = distance(point([xMin, yMin]), point([xMax, yMin]), options); + const distanceY = distance(point([xMin, yMin]), point([xMin, yMax]), options); + + return { + x: Math.round(distanceX * 1000), + y: Math.round(distanceY * 1000), + }; +}; + +export const getGridCellSizeInMeters = (boundingBox, gridSize) => { + if (!boundingBox || !gridSize) { + return { + x: 0, + y: 0, + }; + } + + const {xMin, xMax, yMin, yMax} = getMinMaxFromBoundingBox(boundingBox); + const {n_x, n_y} = gridSize; + + + const options = {units: 'kilometers'}; + const distanceX = distance(point([xMin, yMin]), point([xMax, yMin]), options); + const distanceY = distance(point([xMin, yMin]), point([xMin, yMax]), options); + + + return { + x: Math.round(distanceX / n_x * 1000), + y: Math.round(distanceY / n_y * 1000), + }; +}; + /* Calculate GridCells Structure: const cells = [ @@ -63,7 +102,6 @@ export const getActiveCellFromCoordinate = (coordinate, boundingBox, gridSize) = }; export const calculateActiveCells = (geom, boundingBox, gridSize) => { - let geometry; if (geom.geometry) { geometry = geom.geometry; @@ -98,3 +136,233 @@ export const calculateActiveCells = (geom, boundingBox, gridSize) => { return activeCells; }; + +export function calcBoundsOfPolygon(polygon) { + let minLat = Infinity; + let maxLat = -Infinity; + let minLng = Infinity; + let maxLng = -Infinity; + + polygon.forEach(c => { + if (c[1] < minLat) { + minLat = c[1]; + } + + if (c[1] > maxLat) { + maxLat = c[1]; + } + + if (c[0] < minLng) { + minLng = c[0]; + } + + if (c[0] > maxLng) { + maxLng = c[0]; + } + }); + + return [ + [ + minLng, + minLat, + ], [ + maxLng, + maxLat, + ] + ]; +} + +export const disableMap = (map) => { + if (map) { + map.leafletElement._handlers.forEach(function(handler) { + handler.disable(); + }); + } +}; + +export const enableMap = (map) => { + if (map) { + map.leafletElement._handlers.forEach(function(handler) { + handler.enable(); + }); + } +}; + +export const invalidateSize = (map) => { + if (map) { + map.leafletElement.invalidateSize(); + } +}; + +export const closestPointOnGeometry = (map, geometry, point, vertices = true) => { + return leafletClosest(map, geometry, point, vertices); +}; + +export const getLatLngFromXY = coordinates => coordinates.map(c => [c[1], c[0]]); + +export const getDefaultTileLayer = () => { + return ( + + ); +}; + +export const renderCreateControl = (type, onCreated) => { + const options = { + area: { + edit: { + edit: false, + remove: false + }, + draw: { + polyline: false, + polygon: true, + rectangle: false, + circle: false, + marker: false, + delete: false + } + }, + chd: { + edit: { + edit: true, + remove: false + }, + draw: { + polyline: true, + polygon: false, + rectangle: false, + circle: false, + marker: false + } + }, + ghb: { + edit: { + edit: true, + remove: false + }, + draw: { + polyline: true, + polygon: false, + rectangle: false, + circle: false, + marker: false + } + }, + rch: { + edit: { + edit: true, + remove: false + }, + draw: { + polyline: false, + polygon: true, + rectangle: false, + circle: false, + marker: false + } + }, + riv: { + edit: { + edit: true, + remove: false + }, + draw: { + polyline: true, + polygon: false, + rectangle: false, + circle: false, + marker: false + } + }, + wel: { + edit: { + edit: true, + remove: false + }, + draw: { + polyline: false, + polygon: false, + rectangle: false, + circle: false, + marker: true + } + } + }; + + return ( + + + + ); +}; + +const getReactLeafletElementFromGeometry = geometry => { + switch (geometry.type.toLowerCase()) { + case 'polygon': + return ( + + ); + case 'linestring': + return ( + + ); + case 'point': + return ( + + ); + default: + return null; + } +}; + +export const renderEditControl = (type, geometry, onEdited) => { + const options = { + edit: { + remove: false + }, + draw: { + polyline: false, + polygon: false, + rectangle: false, + circle: false, + marker: false + } + }; + + return ( + + + {getReactLeafletElementFromGeometry(geometry)} + + ); +}; + +export const renderFullScreenControl = (position = 'topright') => { + return ( + + ); +}; diff --git a/src/core/helpers/createSimpleToolReducer.js b/src/core/helpers/createSimpleToolReducer.js new file mode 100644 index 00000000..d78a3a3c --- /dev/null +++ b/src/core/helpers/createSimpleToolReducer.js @@ -0,0 +1,53 @@ +import {Modifier} from '../../dashboard'; +import * as WebData from '../webData'; + +export function createSimpleToolReducer(tool, initialState) { + return (state = initialState, action) => { + if (action.tool !== tool) { + return state; + } + + switch (action.type) { + // eslint-disable-next-line no-case-declarations + case WebData.Modifier.Action.SET_AJAX_STATUS: + if (!WebData.Helpers.isSuccess(action) + || !WebData.Helpers.waitForResponse(action, Modifier.Query.GET_TOOL_INSTANCE) + ) { + return state; + } + const instance = action.webData.data; + return { + ...state, + name: instance.name, + description: instance.description, + permissions: instance.permissions, + public: instance.public, + settings: instance.data.settings, + parameters: state.parameters.map(v => { + return { + ...v, + ...find(instance.data.parameters, {id: v.id}) + }; + }) + }; + case Modifier.Action.SET_TOOL_INSTANCE: + case Modifier.Event.TOOL_INSTANCE_CREATED: + case Modifier.Event.TOOL_INSTANCE_UPDATED: + return { + ...state, + name: action.payload.name, + description: action.payload.description, + public: action.payload.public, + settings: action.payload.data.settings, + parameters: state.parameters.map(v => { + return { + ...v, + ...find(action.payload.data.parameters, {id: v.id}) + }; + }) + }; + } + + return state; + }; +} diff --git a/src/core/parameterSlider/index.js b/src/core/parameterSlider/index.js new file mode 100644 index 00000000..8a63d13a --- /dev/null +++ b/src/core/parameterSlider/index.js @@ -0,0 +1,100 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import HtmlLabel from '../../components/primitive/HtmlLabel'; + +class ParameterSlider extends React.Component { + + constructor(props) { + super(props); + this.state = { + param: props.param, + localChange: false + }; + } + + componentWillReceiveProps(nextProps) { + const param = { + ...nextProps.param, + value: Number(nextProps.param.value).toFixed(nextProps.param.decimals) + }; + + this.setState({ + ...this.state, + param, + localChange: false + }); + } + + handleLocalChange = ({target}) => { + const {value, name} = target; + + let param; + if (name.endsWith('value')) { + param = {...this.state.param, value}; + } + + if (name.endsWith('min')) { + param = {...this.state.param, min: value}; + } + + if (name.endsWith('max')) { + param = {...this.state.param, max: value}; + } + + this.setState({param, localChange: false}); + }; + + render() { + const {handleChange} = this.props; + const {param} = this.state; + + // Should do some refactoring + if (!param.label && param.name) { + param.label = param.name; + } + + let disable = false; + if (param.disable) { + disable = param.disable; + } + + return ( + + + + + + + + + + + + + + + + ); + } +} + +ParameterSlider.propTypes = { + param: PropTypes.object.isRequired, + handleChange: PropTypes.func.isRequired +}; + +export default ParameterSlider; diff --git a/src/core/rasterData/components/rasterDataMap.js b/src/core/rasterData/components/rasterDataMap.js index 85d12e3c..02a39278 100644 --- a/src/core/rasterData/components/rasterDataMap.js +++ b/src/core/rasterData/components/rasterDataMap.js @@ -4,7 +4,7 @@ import PropTypes from 'prop-types'; import {pure} from 'recompose'; import {createGridData, min, max, rainbowFactory} from '../helpers'; import {Map, GeoJSON, TileLayer} from 'react-leaflet'; -import {disableMap, invalidateSize} from '../../../calculations/map'; +import {disableMap, invalidateSize} from '../../../core/geospatial'; import CanvasHeatMapOverlay from '../../../core/leafletCanvasHeatMapOverlay/ReactLeafletHeatMapCanvasOverlay'; import ColorLegend from '../../../t07/components/ColorLegend'; diff --git a/src/core/webData/actions/actions.js b/src/core/webData/actions/actions.js index 8ec5ca8c..b0f53145 100644 --- a/src/core/webData/actions/actions.js +++ b/src/core/webData/actions/actions.js @@ -1,3 +1,6 @@ +import config from '../../../config'; +import {WebData} from '../../'; + export const AT_RESET_WEB_DATA = 'AT_RESET_WEB_DATA'; export const AT_CLEAR_WEB_DATA = 'AT_CLEAR_WEB_DATA'; @@ -25,6 +28,61 @@ export function setAjaxStatus(provokingActionType, status, tool) { webData: status // legacy }; } + +export function stateToCreatePayload(state) { + return { + name: state.name, + description: state.description, + geometry: state.geometry, + bounding_box: state.bounding_box, + grid_size: state.grid_size, + time_unit: state.time_unit, + length_unit: state.length_unit, + public: state.public, + }; +} + +export function payloadToSetModel(payload) { + return payload; +} + +export function buildRequest(url, method, body) { + const options = { + headers: { + 'Accept': 'application/json', + 'Access-Control-Request-Method': method + }, + method + }; + if (body) { + options.body = body; + options.headers['Content-Type'] = 'application/json'; + } + + return {url: config.baseURL + '/v2/' + url, options}; +} + + +export function sendMessageBox(responseAction, body, tool) { + return WebData.Modifier.Query.sendHttpRequest(buildRequest('messagebox', 'POST', JSON.stringify(body)), responseAction, tool); +} + +export function sendCommand(messageName, payload, metadata = [], tool) { + return sendMessageBox( + messageName, { + metadata, + message_name: messageName, + payload, + }, + tool + ); +} + +export function sendQuery(url, responseAction, tool) { + return WebData.Modifier.Query.sendHttpRequest(buildRequest(url, 'GET'), responseAction, tool); +} + + // legacy export function responseAction(provokingActionType, status, tool) { return setAjaxStatus(provokingActionType, status, tool); diff --git a/src/core/webData/sagas/sendHttpRequest.js b/src/core/webData/sagas/sendHttpRequest.js index b19ba1d8..a6d8603b 100644 --- a/src/core/webData/sagas/sendHttpRequest.js +++ b/src/core/webData/sagas/sendHttpRequest.js @@ -1,15 +1,16 @@ import {call, put, select} from 'redux-saga/effects'; -import {user} from '../selectors'; import {Action} from '../actions'; import {fetchStatusWrapper} from '../helpers'; +import {Action as UserActions} from '../../../user/actions'; +import {getApiKey} from '../../../user/reducers'; export default function* sendHttpRequestFlow(action) { yield put(Action.responseAction(action.responseAction, {type: 'loading'}, action.tool)); try { const state = yield select(); - - const data = yield call(fetchStatusWrapper, action.request, user.getApiKey(state)); + const apiKey = getApiKey(state.session); + const data = yield call(fetchStatusWrapper, action.request, apiKey); yield put(Action.responseAction(action.responseAction, {type: 'success', data: data}, action.tool)); } catch (err) { @@ -23,5 +24,9 @@ export default function* sendHttpRequestFlow(action) { } yield put(Action.responseAction(action.responseAction, {type: 'error', msg: msg}, action.tool)); + + if (err.response.status === 401) { + yield put(UserActions.logout()); + } } } diff --git a/src/core/webData/sagas/singleAjaxRequest.js b/src/core/webData/sagas/singleAjaxRequest.js index c5368bcb..44e14551 100644 --- a/src/core/webData/sagas/singleAjaxRequest.js +++ b/src/core/webData/sagas/singleAjaxRequest.js @@ -1,6 +1,7 @@ import { put, select, call } from 'redux-saga/effects'; -import { getApiKey } from '../../../reducers/user'; +import { getApiKey } from '../../../user/reducers'; import { Action } from '../actions'; +import { Action as UserActions } from '../../../user/actions'; import ConfiguredAxios from 'ConfiguredAxios'; export default function* singleAjaxRequestFlow({ @@ -10,38 +11,28 @@ export default function* singleAjaxRequestFlow({ data }) { const state = yield select(); - const apiKey = getApiKey(state.user); + const apiKey = getApiKey(state.session); - yield put( - Action.setAjaxStatus(provokingActionType, { - type: 'loading' - }) - ); - - if (!['post', 'get'].includes(method)) { + if (!['post', 'get', 'put'].includes(method)) { throw new Error('Invalid http method.'); } + let headers = {}; + if (apiKey) { + headers = { 'X-AUTH-TOKEN': apiKey }; + } + + yield put(Action.setAjaxStatus(provokingActionType, {type: 'loading'})); + try { - const response = yield call(ConfiguredAxios, { - method, - url, - data, - headers: { 'X-AUTH-TOKEN': apiKey } - }); - yield put( - Action.setAjaxStatus(provokingActionType, { - type: 'success' - }) - ); + const response = yield call(ConfiguredAxios, {method, url, data, headers: headers}); + yield put(Action.setAjaxStatus(provokingActionType, {type: 'success'})); return response.data; } catch (e) { - yield put( - Action.setAjaxStatus(provokingActionType, { - type: 'error', - error: e - }) - ); + yield put(Action.setAjaxStatus(provokingActionType, {type: 'error', error: e})); + if (e.response.status === 401) { + yield put(UserActions.logout()); + } return null; } } diff --git a/src/dashboard/actions/actions.js b/src/dashboard/actions/actions.js index 54d4445d..a07c2543 100644 --- a/src/dashboard/actions/actions.js +++ b/src/dashboard/actions/actions.js @@ -3,9 +3,10 @@ */ import {Modifier as T03} from '../../t03'; import {Modifier as T07} from '../../t07'; -import {Modifier as ToolInstance} from '../../toolInstance'; +import {Modifier as DashboardModifier} from '../../dashboard/'; import uuid from 'uuid'; +export const SET_TOOL_INSTANCE = 'SET_TOOL_INSTANCE'; export const SET_INSTANCES = 'DASHBOARD_SET_INSTANCES'; export const SET_SET_ACTIVE_TOOL = 'DASHBOARD_SET_ACTIVE_TOOL'; export const SET_SET_PUBLIC = 'DASHBOARD_SET_PUBLIC'; @@ -42,8 +43,7 @@ export function cloneToolInstance(id) { case 'T07': return dispatch(T07.Command.cloneScenarioAnalysis(tool, id, uuid.v4())); default: - return dispatch(ToolInstance.Command.cloneToolInstance(tool, id, uuid.v4())); - + return dispatch(DashboardModifier.Command.cloneToolInstance(tool, id, uuid.v4())); } }; } @@ -58,7 +58,15 @@ export function deleteToolInstance(id) { case 'T07': return dispatch(T07.Command.deleteScenarioAnalysis(tool, id)); default: - return dispatch(ToolInstance.Command.deleteToolInstance(tool, id)); + return dispatch(DashboardModifier.Command.deleteToolInstance(tool, id)); } }; } + +export function setToolInstance(tool, payload) { + return { + type: SET_TOOL_INSTANCE, + tool, + payload + }; +} diff --git a/src/toolInstance/actions/commands.js b/src/dashboard/actions/commands.js similarity index 100% rename from src/toolInstance/actions/commands.js rename to src/dashboard/actions/commands.js diff --git a/src/toolInstance/actions/events.js b/src/dashboard/actions/events.js similarity index 100% rename from src/toolInstance/actions/events.js rename to src/dashboard/actions/events.js diff --git a/src/dashboard/actions/index.js b/src/dashboard/actions/index.js index 6000ef87..043be78c 100644 --- a/src/dashboard/actions/index.js +++ b/src/dashboard/actions/index.js @@ -1,7 +1,7 @@ import * as Action from './actions'; +import * as Command from './commands'; +import * as Event from './events'; import * as Query from './queries'; +import * as Routing from './routing'; -export { - Action, - Query -}; +export { Action, Command, Event, Query, Routing }; diff --git a/src/dashboard/actions/queries.js b/src/dashboard/actions/queries.js index 4eb4a795..8b8d66a2 100644 --- a/src/dashboard/actions/queries.js +++ b/src/dashboard/actions/queries.js @@ -1,3 +1,5 @@ +import {WebData} from '../../core'; + /** * Queries send a get/load request to server and triggers an action to set data in store. * Usually it uses a saga for the flow. @@ -12,3 +14,9 @@ export function loadInstances(tool, publicInstances) { publicInstances }; } + +export const GET_TOOL_INSTANCE = 'GET_TOOL_INSTANCE'; + +export const getToolInstance = (tool, id) => { + return WebData.Modifier.Action.sendQuery(`tools/${tool}/${id}`, GET_TOOL_INSTANCE, tool); +}; diff --git a/src/toolInstance/actions/routing.js b/src/dashboard/actions/routing.js similarity index 100% rename from src/toolInstance/actions/routing.js rename to src/dashboard/actions/routing.js diff --git a/src/dashboard/container/AdminDashboard.jsx b/src/dashboard/container/AdminDashboard.jsx new file mode 100644 index 00000000..32bbdeea --- /dev/null +++ b/src/dashboard/container/AdminDashboard.jsx @@ -0,0 +1,114 @@ +import '../../less/dashboard.less'; + +import React from 'react'; +import PropTypes from 'prop-types'; + +import ConfiguredRadium from 'ConfiguredRadium'; +import {Selector, Modifier} from '../../dashboard'; +import Button from '../../components/primitive/Button'; +import {Formatter} from '../../core'; +import Icon from '../../components/primitive/Icon'; +import Input from '../../components/primitive/Input'; +import Menu from '../../components/primitive/Menu'; +import Navbar from '../../containers/Navbar'; +import Popup from '../../components/primitive/Popup'; +import Table from '../../components/primitive/table/Table'; +import Td from '../../components/primitive/table/Td'; +import Tr from '../../components/primitive/table/Tr'; +import {connect} from 'react-redux'; +import {push} from 'react-router-redux'; +import styleGlobals from 'styleGlobals'; +import {includes} from 'lodash'; + +const styles = { + menu: { + width: + 2 * styleGlobals.dimensions.gridColumn + + styleGlobals.dimensions.gridGutter, + marginRight: styleGlobals.dimensions.gridGutter + }, + + linkActive: { + textDecoration: 'underline' + }, + + lastTd: { + position: 'relative', + width: 0, + padding: 0 + }, + + actionWrapper: { + position: 'absolute', + right: 0, + width: 500 + }, + + actionContent: { + paddingLeft: 50, + paddingTop: styleGlobals.dimensions.spacing.small, + paddingRight: styleGlobals.dimensions.spacing.small, + paddingBottom: styleGlobals.dimensions.spacing.small - 1, + background: + 'linear-gradient(to right, transparent, ' + + styleGlobals.colors.background + + ' 50px)', + float: 'right' + }, + + action: { + marginLeft: styleGlobals.dimensions.spacing.large + } +}; + +@ConfiguredRadium +class AdminDashboard extends React.Component { + + state = { + popupVisible: false, + navigation: [ + { + name: 'Documentation', + path: 'https://inowas.hydro.tu-dresden.de/', + icon: + }, + { + name: 'Datasets', + path: 'https://kb.inowas.hydro.tu-dresden.de', + icon: + } + ], + hoveredInstance: null + }; + + closePopup = () => { + this.setState({popupVisible: false}); + }; + + showPopup = () => { + this.setState({popupVisible: true}); + }; + + render() { + const {navigation} = this.state; + + return ( +
    + +
    + ADMIN-DASHBOARD +
    +
    + ); + } +} + +const mapStateToProps = state => { + return {}; +}; + +const mapDispatchToProps = {}; + +AdminDashboard.propTypes = {}; + +export default connect(mapStateToProps, mapDispatchToProps)(AdminDashboard); diff --git a/src/containers/Dashboard.jsx b/src/dashboard/container/Dashboard.jsx similarity index 72% rename from src/containers/Dashboard.jsx rename to src/dashboard/container/Dashboard.jsx index 4dfc99a9..9eccea8b 100644 --- a/src/containers/Dashboard.jsx +++ b/src/dashboard/container/Dashboard.jsx @@ -1,22 +1,29 @@ -import '../less/dashboard.less'; +import '../../less/dashboard.less'; -import React, {PropTypes} from 'react'; -import {Selector, Modifier} from '../dashboard'; -import Button from '../components/primitive/Button'; import ConfiguredRadium from 'ConfiguredRadium'; -import {Formatter} from '../core'; -import Icon from '../components/primitive/Icon'; -import Input from '../components/primitive/Input'; -import Menu from '../components/primitive/Menu'; -import Navbar from './Navbar'; -import Popup from '../components/primitive/Popup'; -import Table from '../components/primitive/table/Table'; -import Td from '../components/primitive/table/Td'; -import Tr from '../components/primitive/table/Tr'; + +import React from 'react'; +import PropTypes from 'prop-types'; + +import {setActiveTool, setPublic, cloneToolInstance, deleteToolInstance} from '../actions/actions'; +import {loadInstances} from '../actions/queries'; +import {getTool, getTools} from '../selectors/tool'; +import {getActiveToolSlug, getPublic} from '../selectors/ui'; + +import Button from '../../components/primitive/Button'; +import {Formatter} from '../../core'; +import Icon from '../../components/primitive/Icon'; +import Input from '../../components/primitive/Input'; +import Menu from '../../components/primitive/Menu'; +import Navbar from '../../containers/Navbar'; +import Table from '../../components/primitive/table/Table'; +import Td from '../../components/primitive/table/Td'; +import Tr from '../../components/primitive/table/Tr'; import {connect} from 'react-redux'; -import {push} from 'react-router-redux'; import styleGlobals from 'styleGlobals'; + import {includes} from 'lodash'; +import {withRouter} from 'react-router'; const styles = { menu: { @@ -61,25 +68,11 @@ const styles = { @ConfiguredRadium class Dashboard extends React.Component { - static propTypes = { - roles: PropTypes.array, - tools: PropTypes.array, - activeTool: PropTypes.object, - publicInstances: PropTypes.bool, - setActiveTool: PropTypes.func.isRequired, - fetchInstances: PropTypes.func.isRequired, - setPublic: PropTypes.func.isRequired, - cloneToolInstance: PropTypes.func.isRequired, - deleteToolInstance: PropTypes.func.isRequired, - push: PropTypes.func.isRequired - }; - state = { - popupVisible: false, navigation: [ { name: 'Documentation', - path: 'https://wiki.inowas.hydro.tu-dresden.de/', + path: 'https://inowas.hydro.tu-dresden.de/', icon: }, { @@ -110,8 +103,8 @@ class Dashboard extends React.Component { } onToolClick = slug => { - if (slug === 'T04') { - return () => this.props.push('/tools/' + slug); + if (slug === 'T04' || slug === 'T06') { + return () => this.props.router.push('/tools/' + slug); } if (slug === 'T17') { @@ -125,7 +118,9 @@ class Dashboard extends React.Component { renderTableRows(basePath, subPath, instances) { // eslint-disable-next-line no-shadow - const {publicInstances, cloneToolInstance, deleteToolInstance, push} = this.props; + const {publicInstances, cloneToolInstance, deleteToolInstance} = this.props; + const {push} = this.props.router; + return instances.map((i, index) => { return (

    @@ -215,33 +211,6 @@ class Dashboard extends React.Component { Add new -
  • - -
  • -
  • - -
  • -
  • - -
    • @@ -288,14 +257,6 @@ class Dashboard extends React.Component { ); } - closePopup = () => { - this.setState({popupVisible: false}); - }; - - showPopup = () => { - this.setState({popupVisible: true}); - }; - render() { const {navigation} = this.state; const {tools, roles, activeTool} = this.props; @@ -327,13 +288,6 @@ class Dashboard extends React.Component { />{' '} {this.renderDataTable()}

    - -

    Warning

    -

    You don't have the permissions to do this.

    -
    ); } @@ -342,23 +296,34 @@ class Dashboard extends React.Component { const mapStateToProps = state => { return { roles: state.user.roles, - tools: Selector.tool.getTools(state.dashboard.tools), - activeTool: Selector.tool.getTool( + tools: getTools(state.dashboard.tools), + activeTool: getTool( state.dashboard.tools, - Selector.ui.getActiveToolSlug(state.dashboard.ui) + getActiveToolSlug(state.dashboard.ui) ), - publicInstances: Selector.ui.getPublic(state.dashboard.ui) + publicInstances: getPublic(state.dashboard.ui) }; }; -// eslint-disable-next-line no-class-assign -Dashboard = connect(mapStateToProps, { - setActiveTool: Modifier.Action.setActiveTool, - fetchInstances: Modifier.Query.loadInstances, - setPublic: Modifier.Action.setPublic, - cloneToolInstance: Modifier.Action.cloneToolInstance, - deleteToolInstance: Modifier.Action.deleteToolInstance, - push -})(Dashboard); +const mapDispatchToProps = { + setActiveTool: setActiveTool, + fetchInstances: loadInstances, + setPublic: setPublic, + cloneToolInstance: cloneToolInstance, + deleteToolInstance: deleteToolInstance +}; + +Dashboard.propTypes = { + roles: PropTypes.array, + tools: PropTypes.array, + activeTool: PropTypes.object, + publicInstances: PropTypes.bool, + setActiveTool: PropTypes.func.isRequired, + fetchInstances: PropTypes.func.isRequired, + setPublic: PropTypes.func.isRequired, + cloneToolInstance: PropTypes.func.isRequired, + deleteToolInstance: PropTypes.func.isRequired, + router: PropTypes.object.isRequired +}; -export default Dashboard; +export default withRouter(connect(mapStateToProps, mapDispatchToProps)(Dashboard)); diff --git a/src/dashboard/container/index.js b/src/dashboard/container/index.js new file mode 100644 index 00000000..bd9a4e49 --- /dev/null +++ b/src/dashboard/container/index.js @@ -0,0 +1,7 @@ +import AdminDashboard from './AdminDashboard'; +import Dashboard from './Dashboard'; + +export { + AdminDashboard, + Dashboard +}; diff --git a/src/dashboard/index.js b/src/dashboard/index.js index a0236621..f0627738 100644 --- a/src/dashboard/index.js +++ b/src/dashboard/index.js @@ -1,8 +1,10 @@ +import * as Container from './container/index'; import * as Modifier from './actions/index'; import * as Saga from './sagas/index'; import * as Selector from './selectors/index'; export { + Container, Modifier, Saga, Selector, diff --git a/src/dashboard/reducers/tools.js b/src/dashboard/reducers/tools.js index 84efd432..b11f7363 100644 --- a/src/dashboard/reducers/tools.js +++ b/src/dashboard/reducers/tools.js @@ -1,4 +1,4 @@ -import {Modifier as ToolInstance} from '../../toolInstance'; +import {Modifier as Dashboard} from '../../dashboard'; import {Modifier as T03} from '../../t03'; import {Modifier as T07} from '../../t07'; import {Action} from '../actions'; @@ -28,6 +28,13 @@ const initialState = [ subPath: '', role: ROLE_USER, instances: [] + }, { + slug: 'T06', + name: 'MAR method selection', + path: '/tools/', + subPath: '', + role: ROLE_USER, + instances: [] }, { slug: 'T07', name: 'MODFLOW model scenario manager', @@ -101,7 +108,7 @@ const tools = (state = initialState, action) => { return t; }); - case ToolInstance.Event.TOOL_INSTANCE_DELETED: + case Dashboard.Event.TOOL_INSTANCE_DELETED: case T03.Event.MODFLOW_MODEL_DELETED: case T07.Event.SCENARIO_ANALYSIS_DELETED: return state.map(t => { diff --git a/src/dashboard/sagas/cloneToolInstance.js b/src/dashboard/sagas/cloneToolInstance.js new file mode 100644 index 00000000..ebcc9d1c --- /dev/null +++ b/src/dashboard/sagas/cloneToolInstance.js @@ -0,0 +1,37 @@ +import {put, select, take} from 'redux-saga/effects'; +import {Selector} from '../../dashboard'; +import {Action, Command, Event, Query} from '../actions/index'; +import {WebData} from '../../core'; + +export default function* cloneToolInstance() { + // eslint-disable-next-line no-constant-condition + while (true) { + // eslint-disable-next-line no-shadow + const action = yield take(action => WebData.Helpers.waitForAction(action, Command.CLONE_TOOL_INSTANCE)); + yield put(WebData.Modifier.Action.sendCommand(action.type, action.payload)); + + // eslint-disable-next-line no-constant-condition + while (true) { + // eslint-disable-next-line no-shadow + const response = yield take(action => WebData.Helpers.waitForResponse(action, Command.CLONE_TOOL_INSTANCE)); + + if (response.webData.type === 'error') { + break; + } + + if (response.webData.type === 'success') { + const state = yield select(); + const publicInstances = Selector.ui.getPublic(state.dashboard.ui); + + yield put(Event.toolInstanceCloned(action.tool, action.id, action.payload.id)); + + if (publicInstances === false) { + yield put(Query.loadInstances(action.tool, publicInstances)); + } else { + yield put(Action.setPublic(false)); + } + break; + } + } + } +} diff --git a/src/dashboard/sagas/createToolInstance.js b/src/dashboard/sagas/createToolInstance.js new file mode 100644 index 00000000..72fa6dcb --- /dev/null +++ b/src/dashboard/sagas/createToolInstance.js @@ -0,0 +1,35 @@ +import {put, take} from 'redux-saga/effects'; +import {Action, Command, Event, Routing} from '../actions'; +import {WebData} from '../../core'; +import {push} from 'react-router-redux'; + +export default function* createToolInstanceFlow() { + // eslint-disable-next-line no-constant-condition + while (true) { + // eslint-disable-next-line no-shadow + const action = yield take(action => WebData.Helpers.waitForAction(action, Command.CREATE_TOOL_INSTANCE)); + + yield put(Action.setToolInstance(action.tool, action.payload)); + yield put(WebData.Modifier.Action.sendCommand(action.type, {...action.payload, id: action.id})); + + // eslint-disable-next-line no-constant-condition + while (true) { + // eslint-disable-next-line no-shadow + const response = yield take(action => WebData.Helpers.waitForResponse(action, Command.CREATE_TOOL_INSTANCE)); + + if (response.webData.type === 'error') { + break; + } + + if (response.webData.type === 'success') { + yield put(Event.toolInstanceCreated(action.tool, action.id, action.payload)); + yield put( + push( + Routing.editToolInstanceUrl(action.routes, action.params)(action.id) + ) + ); + break; + } + } + } +} diff --git a/src/toolInstance/sagas/deleteToolInstance.js b/src/dashboard/sagas/deleteToolInstance.js similarity index 51% rename from src/toolInstance/sagas/deleteToolInstance.js rename to src/dashboard/sagas/deleteToolInstance.js index c6db3145..eb0e270f 100644 --- a/src/toolInstance/sagas/deleteToolInstance.js +++ b/src/dashboard/sagas/deleteToolInstance.js @@ -1,20 +1,18 @@ -import { put, take } from 'redux-saga/effects'; -import { sendCommand } from '../../actions/messageBox'; -import { Command, Event } from '../../toolInstance/actions/index'; -import { WebData } from '../../core'; +import {put, take} from 'redux-saga/effects'; +import {Command, Event} from '../actions'; +import {WebData} from '../../core'; export default function* deleteToolInstance() { // eslint-disable-next-line no-constant-condition while (true) { // eslint-disable-next-line no-shadow - const action = yield take( action => action.type === Command.DELETE_TOOL_INSTANCE ); - - yield put( sendCommand( action.type, action.payload ) ); + const action = yield take(action => action.type === Command.DELETE_TOOL_INSTANCE); + yield put(WebData.Modifier.Action.sendCommand(action.type, action.payload)); // eslint-disable-next-line no-constant-condition while (true) { // eslint-disable-next-line no-shadow - const response = yield take( action => WebData.Helpers.waitForResponse( action, Command.DELETE_TOOL_INSTANCE ) ); + const response = yield take(action => WebData.Helpers.waitForResponse(action, Command.DELETE_TOOL_INSTANCE)); if (response.webData.type === 'error') { break; @@ -22,7 +20,7 @@ export default function* deleteToolInstance() { if (response.webData.type === 'success') { // TODO remove before send request to server and restore on server error for faster response in frontend - yield put( Event.toolInstanceDeleted( action.tool, action.payload.id ) ); + yield put(Event.toolInstanceDeleted(action.tool, action.payload.id)); break; } } diff --git a/src/dashboard/sagas/index.js b/src/dashboard/sagas/index.js index c1cdfd08..b2ede902 100644 --- a/src/dashboard/sagas/index.js +++ b/src/dashboard/sagas/index.js @@ -1,5 +1,13 @@ import loadInstancesFlow from './loadInstances'; +import cloneToolInstanceFlow from './cloneToolInstance'; +import createToolInstanceFlow from './createToolInstance'; +import deleteToolInstanceFlow from './deleteToolInstance'; +import updateToolInstanceFlow from './updateToolInstance'; export { + cloneToolInstanceFlow, + createToolInstanceFlow, + deleteToolInstanceFlow, loadInstancesFlow, + updateToolInstanceFlow }; diff --git a/src/dashboard/sagas/updateToolInstance.js b/src/dashboard/sagas/updateToolInstance.js new file mode 100644 index 00000000..188a7165 --- /dev/null +++ b/src/dashboard/sagas/updateToolInstance.js @@ -0,0 +1,29 @@ +import {put, take} from 'redux-saga/effects'; +import {Command, Action, Event} from '../actions'; +import {WebData} from '../../core'; + +export default function* updateToolInstanceFlow() { + // eslint-disable-next-line no-constant-condition + while (true) { + // eslint-disable-next-line no-shadow + const action = yield take(action => WebData.Helpers.waitForAction(action, Command.UPDATE_TOOL_INSTANCE)); + + yield put(Action.setToolInstance(action.tool, action.payload)); + yield put(WebData.Modifier.Action.sendCommand(action.type, {...action.payload, id: action.id})); + + // eslint-disable-next-line no-constant-condition + while (true) { + // eslint-disable-next-line no-shadow + const response = yield take(action => WebData.Helpers.waitForResponse(action, Command.UPDATE_TOOL_INSTANCE)); + + if (response.webData.type === 'error') { + break; + } + + if (response.webData.type === 'success') { + yield put(Event.toolInstanceUpdated(action.tool, action.id, action.payload)); + break; + } + } + } +} diff --git a/src/images/Tool06Icons/ASR.png b/src/images/Tool06Icons/ASR.png deleted file mode 100644 index 15b10817..00000000 Binary files a/src/images/Tool06Icons/ASR.png and /dev/null differ diff --git a/src/images/Tool06Icons/ASTR.png b/src/images/Tool06Icons/ASTR.png deleted file mode 100644 index 9fa5e496..00000000 Binary files a/src/images/Tool06Icons/ASTR.png and /dev/null differ diff --git a/src/images/Tool06Icons/Bank filtration.png b/src/images/Tool06Icons/Bank filtration.png deleted file mode 100644 index 7be4df63..00000000 Binary files a/src/images/Tool06Icons/Bank filtration.png and /dev/null differ diff --git a/src/images/Tool06Icons/Bounds.png b/src/images/Tool06Icons/Bounds.png deleted file mode 100644 index d4545a93..00000000 Binary files a/src/images/Tool06Icons/Bounds.png and /dev/null differ diff --git a/src/images/Tool06Icons/Ditches.png b/src/images/Tool06Icons/Ditches.png deleted file mode 100644 index 4ff411b7..00000000 Binary files a/src/images/Tool06Icons/Ditches.png and /dev/null differ diff --git a/src/images/Tool06Icons/Dune filtration.png b/src/images/Tool06Icons/Dune filtration.png deleted file mode 100644 index c82c01ee..00000000 Binary files a/src/images/Tool06Icons/Dune filtration.png and /dev/null differ diff --git a/src/images/Tool06Icons/Excess_irrigation.png b/src/images/Tool06Icons/Excess_irrigation.png deleted file mode 100644 index dfc50f0b..00000000 Binary files a/src/images/Tool06Icons/Excess_irrigation.png and /dev/null differ diff --git a/src/images/Tool06Icons/Flooding.png b/src/images/Tool06Icons/Flooding.png deleted file mode 100644 index 900e23fb..00000000 Binary files a/src/images/Tool06Icons/Flooding.png and /dev/null differ diff --git a/src/images/Tool06Icons/Infiltration_pond.png b/src/images/Tool06Icons/Infiltration_pond.png deleted file mode 100644 index e4fec614..00000000 Binary files a/src/images/Tool06Icons/Infiltration_pond.png and /dev/null differ diff --git a/src/images/Tool06Icons/Percolation pond.png b/src/images/Tool06Icons/Percolation pond.png deleted file mode 100644 index 17c8c40b..00000000 Binary files a/src/images/Tool06Icons/Percolation pond.png and /dev/null differ diff --git a/src/images/Tool06Icons/Rainwater harvesting.png b/src/images/Tool06Icons/Rainwater harvesting.png deleted file mode 100644 index c512c8ae..00000000 Binary files a/src/images/Tool06Icons/Rainwater harvesting.png and /dev/null differ diff --git a/src/images/Tool06Icons/Recharge release.png b/src/images/Tool06Icons/Recharge release.png deleted file mode 100644 index 45ad7e95..00000000 Binary files a/src/images/Tool06Icons/Recharge release.png and /dev/null differ diff --git a/src/images/Tool06Icons/Sand dam.png b/src/images/Tool06Icons/Sand dam.png deleted file mode 100644 index 2e554eff..00000000 Binary files a/src/images/Tool06Icons/Sand dam.png and /dev/null differ diff --git a/src/images/Tool06Icons/Soil Aquifer treatment.png b/src/images/Tool06Icons/Soil Aquifer treatment.png deleted file mode 100644 index 63308d4b..00000000 Binary files a/src/images/Tool06Icons/Soil Aquifer treatment.png and /dev/null differ diff --git a/src/images/Tool06Icons/Trenches.png b/src/images/Tool06Icons/Trenches.png deleted file mode 100644 index ecdda6c6..00000000 Binary files a/src/images/Tool06Icons/Trenches.png and /dev/null differ diff --git a/src/images/Tool06Icons/Underground dam.png b/src/images/Tool06Icons/Underground dam.png deleted file mode 100644 index b300da14..00000000 Binary files a/src/images/Tool06Icons/Underground dam.png and /dev/null differ diff --git a/src/images/Tool06Icons/WSB.png b/src/images/Tool06Icons/WSB.png deleted file mode 100644 index bbcb4e96..00000000 Binary files a/src/images/Tool06Icons/WSB.png and /dev/null differ diff --git a/src/images/tools/13_b.PNG b/src/images/tools/13_b.PNG deleted file mode 100644 index 31428a9b..00000000 Binary files a/src/images/tools/13_b.PNG and /dev/null differ diff --git a/src/images/tools/13_c.PNG b/src/images/tools/13_c.PNG deleted file mode 100644 index 769a31e9..00000000 Binary files a/src/images/tools/13_c.PNG and /dev/null differ diff --git a/src/images/tools/13_e.PNG b/src/images/tools/13_e.PNG deleted file mode 100644 index 97b5690a..00000000 Binary files a/src/images/tools/13_e.PNG and /dev/null differ diff --git a/src/images/tools/T13A (2).PNG b/src/images/tools/T13A (2).PNG deleted file mode 100644 index 75de635f..00000000 Binary files a/src/images/tools/T13A (2).PNG and /dev/null differ diff --git a/src/images/tools/Hydrometer.png b/src/images/tools/T16_hydrometer.png similarity index 100% rename from src/images/tools/Hydrometer.png rename to src/images/tools/T16_hydrometer.png diff --git a/src/images/tools/intro_13a.png b/src/images/tools/intro_13a.png deleted file mode 100644 index 07af8193..00000000 Binary files a/src/images/tools/intro_13a.png and /dev/null differ diff --git a/src/images/tools/intro_13b.png b/src/images/tools/intro_13b.png deleted file mode 100644 index 9f6ac0b6..00000000 Binary files a/src/images/tools/intro_13b.png and /dev/null differ diff --git a/src/images/tools/intro_13c.png b/src/images/tools/intro_13c.png deleted file mode 100644 index 862d372d..00000000 Binary files a/src/images/tools/intro_13c.png and /dev/null differ diff --git a/src/images/tools/intro_13d.png b/src/images/tools/intro_13d.png deleted file mode 100644 index 015184cf..00000000 Binary files a/src/images/tools/intro_13d.png and /dev/null differ diff --git a/src/images/tools/intro_13e.png b/src/images/tools/intro_13e.png deleted file mode 100644 index ffaa45d0..00000000 Binary files a/src/images/tools/intro_13e.png and /dev/null differ diff --git a/src/index.tpl.html b/src/index.tpl.html index 8d6ddecd..9a86dc99 100644 --- a/src/index.tpl.html +++ b/src/index.tpl.html @@ -1,16 +1,16 @@ + + + + + + INOWAS-DSS + + + - - - - INOWAS-DSS - - - - - -
    - - + +
    + diff --git a/src/less/alignment.less b/src/less/alignment.less index 584a45d6..c21c6c0c 100644 --- a/src/less/alignment.less +++ b/src/less/alignment.less @@ -12,6 +12,9 @@ text-align: center; } +.zoom:hover{ + transform: scale(1.15); +} .scroll-vertical { width: 100%; overflow-x: auto; diff --git a/src/less/input.less b/src/less/input.less index da0b9eb0..d4074f6a 100644 --- a/src/less/input.less +++ b/src/less/input.less @@ -6,7 +6,7 @@ border-radius: @border-radius; } .input:out-of-range{ - background-color: @warning-red; + //background-color: @warning-red; } .input-max:hover, .input-max:focus, diff --git a/src/less/landingPage.less b/src/less/landingPage.less index d5f38c08..1e5b4590 100644 --- a/src/less/landingPage.less +++ b/src/less/landingPage.less @@ -5,7 +5,7 @@ font-size: 16px; .navbar-wrapper { - font-size: 12px; + font-size: 14px; } >.header { @@ -204,7 +204,6 @@ z-index: 499; .toolbox-slider-control-item { - border: 0; background: transparent; cursor: pointer; border-radius: 50%; diff --git a/src/less/login.less b/src/less/login.less index 8ef9d2ee..a506ebab 100644 --- a/src/less/login.less +++ b/src/less/login.less @@ -15,3 +15,8 @@ top: 30%; transform: translateY(40%); } + +.profile { + position: relative; + transform: translateY(20%); +} diff --git a/src/less/nav.less b/src/less/nav.less index 40560269..b3da35a3 100644 --- a/src/less/nav.less +++ b/src/less/nav.less @@ -3,6 +3,9 @@ padding: 0; } +.nav-align-right { + text-align: right; +} .nav li { list-style: none; } diff --git a/src/less/scaffold.less b/src/less/scaffold.less index f29c7a72..165749e5 100644 --- a/src/less/scaffold.less +++ b/src/less/scaffold.less @@ -29,3 +29,7 @@ body { .padding-30 { padding: 30px; } + +.padding-10 { + padding: 10px; +} diff --git a/src/less/toolDiagram.less b/src/less/toolDiagram.less index 256394e6..bd152151 100644 --- a/src/less/toolDiagram.less +++ b/src/less/toolDiagram.less @@ -30,7 +30,7 @@ .diagram-ylabels { position: absolute; bottom: 170px; - left: 15px; + left: 5px; transform: rotate(-90deg); } .diagram-ylabels-right{ diff --git a/src/less/toolT13.less b/src/less/toolT13.less index 9da87dc6..ce8a1c0e 100644 --- a/src/less/toolT13.less +++ b/src/less/toolT13.less @@ -1,5 +1,5 @@ .col-rel-1-t13 { - width: 20%; + width: 25%; text-decoration: none; } .div-block { diff --git a/src/model/ScenarioAnalysisMapData.js b/src/model/ScenarioAnalysisMapData.js index d49717d4..4ae6a165 100644 --- a/src/model/ScenarioAnalysisMapData.js +++ b/src/model/ScenarioAnalysisMapData.js @@ -28,6 +28,7 @@ export default class ScenarioAnalysisMapData { globalMin = null, globalMax = null }) { + this._area = area; if (!(grid instanceof Grid)) { diff --git a/src/reducers/T02.js b/src/reducers/T02.js deleted file mode 100644 index ed0e11f1..00000000 --- a/src/reducers/T02.js +++ /dev/null @@ -1,10 +0,0 @@ -import { combineReducers } from 'redux'; -import { Reducer } from '../t02/index'; - -const createReducer = tool => { - return combineReducers({ - toolInstance: Reducer.createReducer(tool) - }); -}; - -export default createReducer('T02'); diff --git a/src/reducers/T03.js b/src/reducers/T03.js index c552c08d..4805a228 100644 --- a/src/reducers/T03.js +++ b/src/reducers/T03.js @@ -1,10 +1,10 @@ import { combineReducers } from 'redux'; -import { Reducer } from '../t03/index'; +import {Reducer} from '../t03'; -const createModelEditorReducer = tool => { +const createReducer = tool => { return combineReducers({ model: Reducer.createModelReducer(tool) }); }; -export default createModelEditorReducer('T03'); +export {createReducer}; diff --git a/src/reducers/T09A.js b/src/reducers/T09A.js deleted file mode 100644 index c4de51fe..00000000 --- a/src/reducers/T09A.js +++ /dev/null @@ -1,126 +0,0 @@ -import applyParameterUpdate from '../core/simpleTools/parameterUpdate'; -import image from '../images/tools/T09A.png'; - -function getInitialState() { - return { - background: { - 'image': image - }, - chart: { - data: [], - options: { - yAxis: { - domain: ['auto', 'auto'] - } - } - }, - info: { - z: 0, - h: 0 - }, - parameters: [{ - order: 0, - id: 'h', - name: 'Thickness of freshwater above sea level, h [m]', - min: 0, - max: 10, - value: 1, - stepSize: 0.1, - decimals: 1 - }, { - order: 1, - id: 'df', - name: 'Density of freshwater [g/cm³]', - min: 0.9, - validMin: function (x) { - return x >= 0.9 - }, - max: 1.03, - validMax: function (x) { - return x <= 1.05 - }, - value: 1.000, - stepSize: 0.001, - decimals: 3 - }, { - order: 2, - id: 'ds', - name: 'Density of saltwater [g/cm³]', - min: 0.9, - validMin: function (x) { - return x >= 0.9 - }, - max: 1.03, - validMax: function (x) { - return x <= 1.05 - }, - value: 1.025, - stepSize: 0.001, - decimals: 3 - }] - }; -} -const T09AReducer = (state = getInitialState(), action) => { - switch (action.type) { - case 'RESET_TOOL_T09A': - { - state = { ...state - }; - state = getInitialState(); - calculateAndModifyState(state); - break; - } - case 'CALCULATE_TOOL_T09A': - { - state = { ...state - }; - calculateAndModifyState(state); - break; - } - case 'CHANGE_TOOL_T09A_PARAMETER': - { - state = { ...state, - }; - const newParam = action.payload; - var param = state.parameters.find(p => { - return p.id === newParam.id - }); - applyParameterUpdate(param, newParam); - // check df <= ds - let df = state.parameters.find(p => {return p.id == 'df'}), - ds = state.parameters.find(p => {return p.id == 'ds'}) - - if (df.value > ds.value) { - df.value = ds.value; - } - state = calculateAndModifyState(state); - break; - } - } - return state; -}; - -function calculateAndModifyState(state) { - const h = state.parameters.find(p => { - return p.id == 'h' - }).value; - const df = state.parameters.find(p => { - return p.id == 'df' - }).value; - const ds = state.parameters.find(p => { - return p.id == 'ds' - }).value; - let z = (df * h) / (ds - df); //eq 1 - state.chart.data = [{ - name: '', - h, - z - }]; - state.info = { - h, - z - } - return state; -} - -export default T09AReducer; \ No newline at end of file diff --git a/src/reducers/T09B.js b/src/reducers/T09B.js deleted file mode 100644 index a6f14a20..00000000 --- a/src/reducers/T09B.js +++ /dev/null @@ -1,138 +0,0 @@ -import * as calc from '../calculations/T09B' -import applyParameterUpdate from '../core/simpleTools/parameterUpdate'; -import image from '../images/tools/T09B.png'; - -function getInitialState() { - return { - background: { - 'image': image - }, - chart: { - data: [], - options: { - yAxis: { - domain: [0, 50] - }, - xAxis: {} - } - }, - info: { - l: 0, - z: 0 - }, - parameters: [{ - order: 0, - id: 'b', - name: 'Aquifer thickness, b (m)', - min: 1, - validMin: function(x) {return x > 0}, - max: 100, - value: 50, - stepSize: 0.1, - decimals: 1 - }, { - order: 1, - id: 'i', - name: 'Hydraulic gradient, i (-)', - min: 0.000, - validMin: function(x) {return x >= 0}, - max: 0.010, - validMax: function(x) {return x <= 1}, - value: 0.001, - stepSize: 0.001, - decimals: 3 - }, { - order: 2, - id: 'df', - name: 'Density of freshwater [g/cm³]', - min: 0.9, - validMin: function(x) {return x >= 0.9}, - max: 1.03, - validMax: function(x) {return x <= 1.05}, - value: 1.000, - stepSize: 0.001, - decimals: 3 - }, { - order: 3, - id: 'ds', - name: 'Density of saltwater [g/cm³]', - min: 0.9, - validMin: function(x) {return x >= 0.9}, - max: 1.03, - validMax: function(x) {return x <= 1.05}, - value: 1.025, - stepSize: 0.001, - decimals: 3 - }] - }; -} -const T09BReducer = (state = getInitialState(), action) => { - switch (action.type) { - case 'RESET_TOOL_T09B': - { - state = { ...state - }; - state = getInitialState(); - calculateAndModifyState(state); - break; - } - case 'CALCULATE_TOOL_T09B': - { - state = { ...state - }; - calculateAndModifyState(state); - break; - } - case 'CHANGE_TOOL_T09B_PARAMETER': - { - state = { ...state - }; - - const newParam = action.payload; - var param = state.parameters.find(p => { - return p.id === newParam.id - }); - applyParameterUpdate(param, newParam); - // check df <= ds - let df = state.parameters.find(p => {return p.id == 'df'}), - ds = state.parameters.find(p => {return p.id == 'ds'}) - - if (df.value > ds.value) { - df.value = ds.value; - } - calculateAndModifyState(state); - break; - } - } - return state; -}; - -function calculateAndModifyState(state) { - const b = state.parameters.find(p => { - return p.id == 'b' - }) - .value; - const i = state.parameters.find(p => { - return p.id == 'i' - }) - .value; - const df = state.parameters.find(p => { - return p.id == 'df' - }) - .value; - const ds = state.parameters.find(p => { - return p.id == 'ds' - }) - .value; - state.chart.options.yAxis.domain = [-b, 0]; - state.chart.options.xAxis.domain = [-b * 10, 0]; - state.chart.data = calc.calculateDiagramData(i, b, df, ds, 0, b * 10, 1); - state.info.z = calc.calculateZ(i, b, df, ds) - .toFixed(1); - state.info.l = calc.calculateL(i, b, df, ds) - .toFixed(1); - - state.info.xT = calc.calculateXT(i, b, df, ds); - return state; -} -export default T09BReducer; diff --git a/src/reducers/T09C.js b/src/reducers/T09C.js deleted file mode 100644 index bab0231a..00000000 --- a/src/reducers/T09C.js +++ /dev/null @@ -1,167 +0,0 @@ -import * as calc from '../calculations/T09C'; -import applyParameterUpdate from '../core/simpleTools/parameterUpdate'; -import image from '../images/tools/T09C.png'; - -function getInitialState() { - return { - background: { - 'image': image - }, - chart: { - data: [], - options: { - yAxis: { - domain: [0, 'auto'] - } - } - }, - info: { - z: 0, - zCrit: 0, - q: 0 - }, - parameters: [{ - order: 0, - id: 'q', - name: 'Pumping rate, Q (m³/d)', - min: 1, - validMin: function (x) { - return x > 0 - }, - max: 3000, - value: 2000, - stepSize: 1, - decimals: 0 - }, { - order: 1, - id: 'k', - name: 'Hydraulic conductivity, K (m/d)', - min: 1, - validMin: function (x) { - return x > 0 - }, - max: 100, - validMax: function (x) { - return x <= 100000 - }, - value: 50, - stepSize: 1, - decimals: 0 - }, { - order: 2, - id: 'd', - name: 'Pre-pumping distance, d(m)', - min: 1, - validMin: function (x) { - return x > 0 - }, - max: 50, - value: 30, - stepSize: 1, - decimals: 0 - }, { - order: 3, - id: 'df', - name: 'Density of freshwater [g/cm³]', - min: 0.9, - validMin: function (x) { - return x >= 0.9 - }, - max: 1.03, - validMax: function (x) { - return x <= 1.05 - }, - value: 1.000, - stepSize: 0.001, - decimals: 3 - }, { - order: 4, - id: 'ds', - name: 'Density of saltwater [g/cm³]', - min: 0.9, - validMin: function (x) { - return x >= 0.9 - }, - max: 1.03, - validMax: function (x) { - return x <= 1.05 - }, - value: 1.025, - stepSize: 0.001, - decimals: 3 - }] - }; -} -const T09CReducer = (state = getInitialState(), action) => { - switch (action.type) { - case 'RESET_TOOL_T09C': - { - state = { ...state - }; - state = getInitialState(); - calculateAndModifyState(state); - break; - } - case 'CALCULATE_TOOL_T09C': - { - state = { ...state - }; - calculateAndModifyState(state); - break; - } - case 'CHANGE_TOOL_T09C_PARAMETER': - { - state = { ...state - }; - const newParam = action.payload; - var param = state.parameters.find(p => { - return p.id === newParam.id - }); - applyParameterUpdate(param, newParam); - // check df <= ds - let df = state.parameters.find(p => {return p.id == 'df'}), - ds = state.parameters.find(p => {return p.id == 'ds'}) - - if (df.value > ds.value) { - df.value = ds.value; - } - calculateAndModifyState(state); - break; - } - } - return state; -}; - -function calculateAndModifyState(state) { - const q = state.parameters.find(p => { - return p.id == 'q' - }) - .value; - const k = state.parameters.find(p => { - return p.id == 'k' - }) - .value; - const d = state.parameters.find(p => { - return p.id == 'd' - }) - .value; - const df = state.parameters.find(p => { - return p.id == 'df' - }) - .value; - const ds = state.parameters.find(p => { - return p.id == 'ds' - }) - .value; - state.chart.data = calc.calculateDiagramData(q, k, d, df, ds, 0, 1000, 1); - state.chart.options.yAxis.domain[1] = 2 * calc.calculateZCrit(d); - state.info.z = calc.calculateZ(q, k, d, df, ds) - .toFixed(1); - state.info.q = calc.calculateQ(k, d, df, ds) - .toFixed(1); - state.info.zCrit = calc.calculateZCrit(d) - .toFixed(1); - return state -} - -export default T09CReducer; diff --git a/src/reducers/T09D.js b/src/reducers/T09D.js deleted file mode 100644 index 8adade16..00000000 --- a/src/reducers/T09D.js +++ /dev/null @@ -1,216 +0,0 @@ -import * as calc from '../calculations/T09D' -import applyParameterUpdate from '../core/simpleTools/parameterUpdate'; -import image from '../images/tools/T09D.png'; - -function getInitialState() { - return { - background: { - 'image': image - }, - chart: { - data: [], - options: { - yAxis: { - domain: [0, 'auto'] - } - } - }, - settings: { - selected: 'confined' - }, - info: { - x: 0, - q: 0 - }, - parameters: [{ - order: 0, - id: 'k', - name: 'Hydraulic conductivity, K [m/d]', - min: 1, - validMin: function (x) { - return x > 0 - }, - max: 100, - value: 50, - stepSize: 1, - decimals: 0 - }, - { - order: 1, - id: 'b', - name: 'Aquifer thickness below sea level, b [m]', - min: 10, - validMin: function (x) { - return x > 0 - }, - max: 100, - value: 20, - stepSize: 1, - decimals: 0 - }, - { - order: 2, - id: 'q', - name: 'Offshore discharge rate, q [m³/d]', - min: 0.1, - validMin: function (x) { - return x > 0 - }, - max: 10, - value: 1, - stepSize: 0.1, - decimals: 1 - }, - { - order: 3, - id: 'qw', - name: 'Well pumping rate, Qw [m³/d]', - min: 1000, - validMin: function (x) { - return x > 0 - }, - max: 8000, - value: 5000, - stepSize: 10, - decimals: 0 - }, - { - order: 4, - id: 'xw', - name: 'Distance from well to shoreline, xw [m]', - min: 1000, - validMin: function (x) { - return x > 0 - }, - max: 5000, - value: 2000, - stepSize: 1, - decimals: 0 - }, - { - order: 5, - id: 'rhof', - name: 'Density of freshwater, ρ [g/cm³]', - min: 0.9, - validMin: function (x) { - return x >= 0.9 - }, - max: 1.03, - validMax: function (x) { - return x <= 1.05 - }, - value: 1, - stepSize: 0.001, - decimals: 3 - }, - { - order: 6, - id: 'rhos', - name: 'Density of saltwater, ρₛ [g/cm³]', - min: 0.9, - validMin: function (x) { - return x >= 0.9 - }, - max: 1.03, - validMax: function (x) { - return x <= 1.05 - }, - value: 1.025, - stepSize: 0.001, - decimals: 3 - } - ] - }; -} - -const T09DReducer = (state = getInitialState(), action) => { - - switch (action.type) { - - case 'CHANGE_TOOL_T09D_SETTINGS': - state = { - ...state, - settings: action.payload - }; - break; - - - case 'RESET_TOOL_T09D': - state = { ...state - }; - state = getInitialState(); - calculateAndModifyState(state); - break; - - case 'CALCULATE_TOOL_T09D': - state = { ...state - }; - calculateAndModifyState(state); - - break; - - case 'CHANGE_TOOL_T09D_PARAMETER': - state = { ...state - }; - - const newParam = action.payload; - var param = state.parameters.find(p => { - return p.id === newParam.id - }); - applyParameterUpdate(param, newParam); - // check rhof <= rhos - let rhof = state.parameters.find(p => {return p.id == 'rhof'}), - rhos = state.parameters.find(p => {return p.id == 'rhos'}) - - if (rhof.value > rhos.value) { - rhof.value = rhos.value; - } - calculateAndModifyState(state); - break; - } - - return state; -}; - -function calculateAndModifyState(state) { - const k = state.parameters.find(p => { - return p.id == 'k' - }).value; - const b = state.parameters.find(p => { - return p.id == 'b' - }).value; - const q = state.parameters.find(p => { - return p.id == 'q' - }).value; - const qw = state.parameters.find(p => { - return p.id == 'qw' - }).value; - const xw = state.parameters.find(p => { - return p.id == 'xw' - }).value; - const rhof = state.parameters.find(p => { - return p.id == 'rhof' - }).value; - const rhos = state.parameters.find(p => { - return p.id == 'rhos' - }).value; - var xs = xw*(1-(qw/(Math.PI*q*xw) )); - console.log(xs); - state.chart.data = calc.calculateDiagramData(q, b, k, rhof, rhos, qw, xw); - - // state.chart.data = calc.calculateDiagramData(q, k, d, df, ds, 0, 100, 10); - // state.chart.options.yAxis.domain[1] = 2 * calc.calculateZCrit(d); - // - // state.info.z = calc.calculateZ(q, k, d, df, ds).toFixed(1); - // state.info.q = calc.calculateQ(k, d, df, ds).toFixed(1); - // state.info.zCrit = calc.calculateZCrit(d).toFixed(1); - - //state.chart.options.yAxis.domain[1] = -100; - - state.info.xT = 1; - state.info.qmax = 1; - - return state -} - -export default T09DReducer; diff --git a/src/reducers/T09E.js b/src/reducers/T09E.js deleted file mode 100644 index 3a9b85ff..00000000 --- a/src/reducers/T09E.js +++ /dev/null @@ -1,180 +0,0 @@ -import * as calc from '../calculations/T09E'; -import applyParameterUpdate from '../core/simpleTools/parameterUpdate'; -import image from '../images/tools/T09E.png'; - -function getInitialState() { - return { - background: { - 'image' : image - }, - chart: { - data: [], - options: { - yAxis: { - domain: [0 , 'auto'] - } - } - }, - settings: { - 'selected': 'confined' - }, - info: { - x: 0, - q: 0 - }, - parameters: [ - { - order: 0, - id: 'k', - name: 'Hydraulic conductivity, K (m/d)', - min: 1, - max: 100, - value: 50, - stepSize: 1, - decimals: 0 - }, - { - order: 1, - id: 'z', - name: 'Depth to base of aquifer, z0 (m)', - min: 0, - max: 100, - value: 15, - stepSize: 1, - decimals: 0 - }, - { - order: 2, - id: 'l', - name: 'Distance to inland boundary, L (m)', - min: 0, - max: 100, - value: 50, - stepSize: 1, - decimals: 0 - }, - { - order: 3, - id: 'w', - name: 'Recharge rate, w (m³/d)', - min: 0, - max: 200, - value: 50, - stepSize: 1, - decimals: 0 - }, - { - order: 4, - id: 'dz', - name: 'Sea level rise, dz0 (m)', - min: 0, - max: 0.5, - value: 0.1, - stepSize: 0.01, - decimals: 2 - }, - { - order: 5, - id: 'hi', - name: 'Constant head at inland boundary, hi (m)', - min: 0, - max: 100, - value: 5, - stepSize: 1, - decimals: 0 - }, - { - order: 6, - id: 'df', - name: 'Density of freshwater [g/cm³]', - min: 1.000, - max: 1.005, - value: 1.000, - stepSize: 0.001, - decimals: 3 - }, - { - order: 7, - id: 'ds', - name: 'Density of saltwater [g/cm³]', - min: 1.020, - max: 1.030, - value: 1.025, - stepSize: 0.001, - decimals: 3 - } - ] - }; -} - -const T09DReducer = ( state=getInitialState(), action ) => { - - switch (action.type) { - - case 'CHANGE_TOOL_T09E_SETTINGS': { - state = { - ...state, - settings: action.payload - }; - - break; - } - - case 'RESET_TOOL_T09E': { - state = {...state}; - state = getInitialState(); - calculateAndModifyState(state); - - break; - } - - case 'CALCULATE_TOOL_T09E': { - state = {...state}; - calculateAndModifyState(state); - - break; - } - - case 'CHANGE_TOOL_T09E_PARAMETER': { - - state = {...state}; - - const newParam = action.payload; - var param = state.parameters.find(p => {return p.id === newParam.id}); - applyParameterUpdate(param, newParam); - // check df <= ds - let df = state.parameters.find(p => {return p.id == 'df'}), - ds = state.parameters.find(p => {return p.id == 'ds'}) - - if (df.value > ds.value) { - df.value = ds.value; - } - calculateAndModifyState(state); - break; - } - } - - return state; -}; - -function calculateAndModifyState(state) { - const k = state.parameters.find( p => {return p.id == 'k'}).value; - const z = state.parameters.find( p => {return p.id == 'z'}).value; - const l = state.parameters.find( p => {return p.id == 'l'}).value; - const w = state.parameters.find( p => {return p.id == 'w'}).value; - const dz = state.parameters.find( p => {return p.id == 'dz'}).value; - const hi = state.parameters.find( p => {return p.id == 'hi'}).value; - const df = state.parameters.find( p => {return p.id == 'df'}).value; - const ds = state.parameters.find( p => {return p.id == 'ds'}).value; - - //state.chart.data = calc.calculateDiagramData(q, k, d, df, ds, 0, 100, 10); - //state.chart.options.yAxis.domain[1] = 2 * calc.calculateZCrit(d); - - //state.info.z = calc.calculateZ(q, k, d, df, ds).toFixed(1); - //state.info.q = calc.calculateQ(k, d, df, ds).toFixed(1); - //state.info.zCrit = calc.calculateZCrit(d).toFixed(1); - - return state -} - -export default T09DReducer; diff --git a/src/reducers/T12.js b/src/reducers/T12.js deleted file mode 100644 index 1cdaf908..00000000 --- a/src/reducers/T12.js +++ /dev/null @@ -1,258 +0,0 @@ -import * as calc from '../calculations/T12'; -import applyParameterUpdate from '../core/simpleTools/parameterUpdate'; -import image from '../images/tools/T12.png'; - -function getInitialState() { - return { - background: { - 'image': image - }, - chart: { - data: [], - options: { - yAxis: { - domain: ['auto', 'auto'] - } - } - }, - info: { - MFI: 0, - a: 0, - MFIcor2: 0, - vc: 0 - }, - mfi: [{ - id: '1', - t: 10, - V: 0.25, - stepSize: 0.1, - checked: 'true', - decimals: 2 - }, { - id: '2', - t: 23, - V: 0.5, - stepSize: 0.1, - checked: 'true', - decimals: 2 - }, { - id: '3', - t: 35, - V: 0.75, - stepSize: 0.1, - checked: 'true', - decimals: 2 - },{ - id: '4', - t: 48, - V: 1.0, - stepSize: 0.1, - checked: 'true', - decimals: 2 - },{ - id: '5', - t: 0, - V: 0, - stepSize: 0.1, - checked: 'false', - decimals: 2 - }], - corrections: [{ - def: 'Volume', - name: 'V', - value: 1000, - stepSize: 0.1, - unit: 'ml' - }, { - def: 'Pressure', - name: 'P', - value: 210, - stepSize: 1, - unit: 'KPa' - }, { - def: 'Filter area', - name: 'Af', - stepSize: 0.0001, - value: 0.00138, - unit: 'mm2' - }, { - def: 'Temprature', - name: 'T', - value: 12, - stepSize: 0.1, - unit: '°C' - }, { - def: 'Filter pore diameter', - name: 'D', - value: 0.45, - stepSize: 0.1, - unit: 'micrometer' - }], - tempvisctable:{ - temp:[-30,-20,-10,-5,0,5,10,15,20,25,30,35,40], - visc:[8661.1,4362.7,2645.2,2153.5,1792.3,1518.7,1306.4,1138,1002,890.45,797.68,719.62,653.25] - }, - parameters: [{ - order: 0, - id: 'ueq', - name: "Infiltration duration, uₑq [h]", - min: 1, - validMin: function(x) {return x > 0}, - max: 10000, - value: 5000, - stepSize: 1, - decimals: 0 - }, { - order: 1, - id: 'IR', - name: 'Infiltration rate, Vb [m3/d]', - min: 1, - validMin: function(x) {return x > 0}, - max: 1000, - value: 100, - stepSize: 10, - decimals: 0 - }, { - order: 2, - id: 'K', - name: 'Hydr. conductivity, K [m/d]', - min: 1, - validMin: function(x) {return x > 0}, - max: 100, - value: 20, - stepSize: 1, - decimals: 0 - }] - } -} -const T12Reducer = (state = getInitialState(), action) => { - switch (action.type) { - case 'RESET_TOOL_T12': { - state = getInitialState(); - calculateAndModifyState(state); - break; - } - case 'CALCULATE_TOOL_T12': { - state = { - ...state - }; - calculateAndModifyState(state); - break; - } - case 'CHANGE_TOOL_T12_PARAMETER': { - state = { - ...state, - }; - - const newParam = action.payload; - var param = state.parameters.find(p => { - return p.id === newParam.id - }); - applyParameterUpdate(param, newParam); - - calculateAndModifyState(state); - break; - } - case 'CHANGE_TOOL_T12_MFI': { - state = { - ...state, - }; - - const newParam = action.payload; - console.log(state.mfi) - var param = state.mfi.find(p => { - return Number(p.id) === Number(newParam.id) - }); - if (!newParam.V && newParam.t) param.t = newParam.t; - if (!newParam.t && newParam.V) param.V = newParam.V; - addEmptyEntry(state); - calculateAndModifyState(state); - break; - } - case 'CHANGE_TOOL_T12_USEDATA': { - state = { - ...state, - }; - - const newParam = action.payload; - var param = state.mfi.find(p => { - return Number(p.id) === Number(newParam.id) - }); - if (param.checked === 'false') {param.checked = 'true'} - else {param.checked = 'false'} - calculateAndModifyState(state); - break; - } - case 'CHANGE_TOOL_T12_CORRECTIONS': - { - state = { ...state, - }; - - const newParam = action.payload; - state.corrections.find(p => { - return p.name === newParam.name - }).value = newParam.value; - calculateAndModifyState(state); - break; - } - } - return state; -}; -function addEmptyEntry(state) { - const data = state.mfi; - if (data[data.length-1].t != 0 || data[data.length -1].V != 0) { - const newEntry = { - id: data.length+1, - t: 0, - V: 0, - stepSize: 0.1, - checked: 'false', - decimals: 2 - }; - state.mfi.push(newEntry); - } -} -function calculateAndModifyState(state) { - //calculation of graph data - const data = calc.calculateData(state.mfi); - calc.calcMFI(data, state.info); - //corrections - const temp = state.corrections.find(p => { - return p.name == 'T' - }) - .value; - const pressure = state.corrections.find(p => { - return p.name == 'P' - }) - .value; - const Af = state.corrections.find(p => { - return p.name == 'Af' - }) - .value; - const D = state.corrections.find(p => { - return p.name == 'D' - }) - .value; - var MFIcor1 = calc.visc_Correc(state.tempvisctable, temp, state.info.MFI); - MFIcor1 = MFIcor1*(pressure/210)*(Af**2/0.00138**2); - - const K = state.parameters.find(p => { - return p.id == 'K' - }) - .value; - const ueq = state.parameters.find(p => { - return p.id == 'ueq' - }) - .value; - const IR = state.parameters.find(p => { - return p.id == 'IR' - }) - .value; - const D50 = (10**(-3)*(K/150)**0.6); - const EPS = D50/6; - state.info.MFIcor2 = MFIcor1*((D*10**(-6))**2/EPS**2); - state.info.vc = 2*10**(-6)*state.info.MFIcor2*(ueq)*(IR**2/(K/150)**1.2); - state.chart.data = calc.calculateDiagramData(data,state.info); - return state; -} -export default T12Reducer; diff --git a/src/reducers/T13A.js b/src/reducers/T13A.js deleted file mode 100644 index 905a1596..00000000 --- a/src/reducers/T13A.js +++ /dev/null @@ -1,175 +0,0 @@ -import * as calc from '../calculations/T13A'; -import applyParameterUpdate from '../core/simpleTools/parameterUpdate'; -import image from '../images/tools/T13A.png'; - -function getInitialState() { - return { - background: { - 'image': image - }, - chart: { - data: [], - options: { - yAxis: { - domain: [0, 'auto'] - } - } - }, - parameters: [{ - order: 0, - id: 'W', - name: 'Average infiltration rate, W(m/d)', - min: 0.001, - max: 0.01, - value: 0.009, - stepSize: 0.0001, - decimals: 4 - }, { - order: 1, - id: 'K', - name: 'Hydraulic conductivity, K (m/d)', - min: 10e-2, - max: 10e2, - value: 10.1, - stepSize: 10, - decimals: 2 - }, { - order: 2, - id: 'ne', - name: 'Effective porosity, n (-)', - min: 0, - max: 0.5, - value: 0.35, - stepSize: 0.01, - decimals: 2 - }, { - order: 3, - id: 'L', - name: 'Aquifer length, L´ (m)', - min: 0, - max: 1000, - value: 500, - stepSize: 10, - decimals: 0 - }, { - order: 4, - id: 'hL', - name: 'Downstream fixed head boundary, hL´ (m)', - min: 0, - max: 10, - value: 2, - stepSize: 0.5, - decimals: 1 - }, { - order: 5, - id: 'xi', - name: 'Initial position, xi (m)', - min: 0, - max: 1000, - value: 50, - stepSize: 10, - decimals: 0 - }, { - order: 6, - id: 'xe', - name: 'Arrival location, xe (m)', - min: 1, - max: 1000, - value: 500, - stepSize: 10, - decimals: 0 - }] - } -} -const T13AReducer = (state = getInitialState(), action) => { - switch (action.type) { - case 'RESET_TOOL_T13A': - { - state = getInitialState(); - calculateAndModifyState(state); - break; - } - case 'CALCULATE_TOOL_T13A': - { - state = { ...state - }; - calculateAndModifyState(state); - break; - } - case 'CHANGE_TOOL_T13A_PARAMETER': - { - state = { ...state, - }; - - const newParam = action.payload; - var param = state.parameters.find(p => {return p.id === newParam.id}); - applyParameterUpdate(param, newParam); - - // check xi <= xe <= L - let xe = state.parameters.find(p => {return p.id == 'xe'}), - xi = state.parameters.find(p => {return p.id == 'xi'}), - L = state.parameters.find(p => {return p.id == 'L'}); - - if (xe.value < xi.value) { - xe.value = xi.value; - } - - if (xe.value > L.value) { - xe.value = L.value; - } - - if (xi.value > L.value) { - xi.value = L.value; - } - //setting boundaries of ne and K - let ne = state.parameters.find(p => {return p.id == 'ne'}); - if (ne.max > 0.5) { - ne.max = 0.5; - } - if (ne.max < 0.0) { - ne.max = 0.0; - } - let K = state.parameters.find(p => {return p.id == 'K'}); - if (K.max > 10e3) { - K.max = 10e3; - } - calculateAndModifyState(state); - break; - } - } - return state; -}; - -function calculateAndModifyState(state) { - const w = state.parameters.find(p => { - return p.id == 'W' - }) - .value; - const K = state.parameters.find(p => { - return p.id == 'K' - }) - .value; - const ne = state.parameters.find(p => { - return p.id == 'ne' - }) - .value; - const L = state.parameters.find(p => { - return p.id == 'L' - }) - .value; - const hL = state.parameters.find(p => { - return p.id == 'hL' - }) - .value; - const xi = state.parameters.find(p => { - return p.id == 'xi' - }) - .value; - const xe = state.parameters.find(p => { - return p.id == 'xe' - }) - .value; - state.chart.data = calc.calculateDiagramData(w, K, ne, L, hL, xi, xe, 10); - return state; -} -export default T13AReducer; diff --git a/src/reducers/T13B.js b/src/reducers/T13B.js deleted file mode 100644 index 2d972085..00000000 --- a/src/reducers/T13B.js +++ /dev/null @@ -1,227 +0,0 @@ -import * as calc from '../calculations/T13B'; -import applyParameterUpdate from '../core/simpleTools/parameterUpdate'; -import image from '../images/tools/T13B.png'; - -function getInitialState() { - return { - background: { - 'image': image - }, - chart: { - data: [], - options: { - yAxis: { - domain: [0, 'auto'] - } - } - }, - settings: { - selected: '' - }, - info: { - xwd: 0 - }, - - parameters: [{ - order: 0, - id: 'W', - name: 'Average infiltration rate, W(m/d)', - min: 0.001, - max: 0.01, - value: 0.00112, - stepSize: 0.0001, - decimals: 5, - disable: false - }, { - order: 1, - id: 'K', - name: 'Hydraulic conductivity, K (m/d)', - min: 10e-2, - max: 10e2, - value: 30.2, - stepSize: 10, - decimals: 2, - disable: false - }, { - order: 2, - id: 'L', - name: 'Aquifer length, L´ (m)', - min: 0, - max: 1000, - value: 1000, - stepSize: 10, - decimals: 0, - disable: false - }, { - order: 3, - id: 'hL', - name: 'Downstream head, hL´ (m)', - min: 0, - max: 10, - value: 2, - stepSize: 0.1, - decimals: 1, - disable: false - }, { - order: 4, - id: 'h0', - name: 'Upstream head, h0 (m)', - min: 0, - max: 10, - value: 5, - stepSize: 0.1, - decimals: 1, - disable: false - }, { - order: 5, - id: 'ne', - name: 'Effective porosity, n (-)', - min: 0, - max: 0.5, - value: 0.35, - stepSize: 0.01, - decimals: 2, - disable: true - }, { - order: 6, - id: 'xi', - name: 'Initial position, xi (m)', - min: 0, - max: 1000, - value: 50, - stepSize: 10, - decimals: 0, - disable: true - }, { - order: 7, - id: 'xe', - name: 'Arrival location, xe (m)', - min: 1, - max: 1000, - value: 200, - stepSize: 10, - decimals: 0, - disable: true - }] - } -} -const T13BReducer = (state = getInitialState(), action) => { - switch (action.type) { - case 'CHANGE_TOOL_T13B_SETTINGS': - { - state = { - ...state, - settings: action.payload - }; - state.parameters.map(param => { - if (param.order >= 5){ - param.disable = false; - } else { - param.disable = true; - } - }); - calculateAndModifyState(state); - break; - } - - case 'RESET_TOOL_T13B': - { - state = getInitialState(); - calculateAndModifyState(state); - break; - } - case 'CALCULATE_TOOL_T13B': - { - state = { ...state - }; - calculateAndModifyState(state); - break; - } - case 'CHANGE_TOOL_T13B_PARAMETER': - { - state = { ...state, - }; - - const newParam = action.payload; - var param = state.parameters.find(p => {return p.id === newParam.id}); - applyParameterUpdate(param, newParam); - // check xi <= xe <= L - let xe = state.parameters.find(p => {return p.id == 'xe'}), - xi = state.parameters.find(p => {return p.id == 'xi'}), - L = state.parameters.find(p => {return p.id == 'L'}); - - if (xe.value < xi.value) { - xe.value = xi.value; - } - - if (xe.value > L.value) { - xe.value = L.value; - } - - if (xi.value > L.value) { - xi.value = L.value; - } - //setting boundaries of ne and K - let ne = state.parameters.find(p => {return p.id == 'ne'}); - if (ne.max > 0.5) { - ne.max = 0.5; - } - if (ne.max < 0.0) { - ne.max = 0.0; - } - let K = state.parameters.find(p => {return p.id == 'K'}); - if (K.max > 10e3) { - K.max = 10e3; - } - - calculateAndModifyState(state); - break; - } - } - return state; -}; - -function calculateAndModifyState(state) { - const w = state.parameters.find(p => { - return p.id == 'W' - }) - .value; - const K = state.parameters.find(p => { - return p.id == 'K' - }) - .value; - const ne = state.parameters.find(p => { - return p.id == 'ne' - }) - .value; - const L = state.parameters.find(p => { - return p.id == 'L' - }) - .value; - const hL = state.parameters.find(p => { - return p.id == 'hL' - }) - .value; - const h0 = state.parameters.find(p => { - return p.id == 'h0' - }) - .value; - const xi = state.parameters.find(p => { - return p.id == 'xi' - }) - .value; - const xe = state.parameters.find(p => { - return p.id == 'xe' - }) - .value; - state.info.xwd = calc.calculateXwd(L, K, w, hL, h0).toFixed(1); - const xwd = state.info.xwd; - if (state.settings.selected === 'h0') { - state.chart.data = calc.calculateDiagramData(w, K, ne, (xwd*1), h0, xi, xe, 10); - } - if (state.settings.selected === 'hL') { - state.chart.data = calc.calculateDiagramData(w, K, ne, (L-xwd), hL, xi, xe, 10); - } - return state; -} -export default T13BReducer; diff --git a/src/reducers/T13C.js b/src/reducers/T13C.js deleted file mode 100644 index 285ad692..00000000 --- a/src/reducers/T13C.js +++ /dev/null @@ -1,196 +0,0 @@ -import * as calc from '../calculations/T13C'; -import applyParameterUpdate from '../core/simpleTools/parameterUpdate'; -import image from '../images/tools/T13C.png'; - -function getInitialState() { - return { - background: { - 'image': image - }, - chart: { - data: [], - options: { - yAxis: { - domain: [0, 'auto'] - } - } - }, - info: { - xwd: 0 - }, - - parameters: [{ - order: 0, - id: 'W', - name: 'Average infiltration rate, W(m/d)', - min: 0.001, - max: 0.01, - value: 0.009, - stepSize: 0.0001, - decimals: 4, - disable: false - }, { - order: 1, - id: 'K', - name: 'Hydraulic conductivity, K (m/d)', - min: 10e-2, - max: 10e2, - value: 10.1, - stepSize: 10, - decimals: 2, - disable: false - }, { - order: 2, - id: 'ne', - name: 'Effective porosity, n (-)', - min: 0, - max: 0.5, - value: 0.35, - stepSize: 0.01, - decimals: 2, - }, { - order: 3, - id: 'L', - name: 'Aquifer length, L´ (m)', - min: 0, - max: 1000, - value: 500, - stepSize: 10, - decimals: 0, - }, { - order: 4, - id: 'hL', - name: 'Downstream head, hL´ (m)', - min: 0, - max: 10, - value: 1, - stepSize: 0.1, - decimals: 1, - }, { - order: 5, - id: 'h0', - name: 'Upstream head, h0 (m)', - min: 0, - max: 10, - value: 10, - stepSize: 0.1, - decimals: 1, - }, { - order: 6, - id: 'xi', - name: 'Initial position, xi (m)', - min: 0, - max: 1000, - value: 50, - stepSize: 10, - decimals: 0, - }, { - order: 7, - id: 'xe', - name: 'Arrival location, xe (m)', - min: 1, - max: 1000, - value: 500, - stepSize: 10, - decimals: 0, - }] - } -}; -const T13CReducer = (state = getInitialState(), action) => { - switch (action.type) { - case 'RESET_TOOL_T13C': - { - state = getInitialState(); - calculateAndModifyState(state); - break; - } - case 'CALCULATE_TOOL_T13C': - { - state = { ...state - }; - calculateAndModifyState(state); - break; - } - case 'CHANGE_TOOL_T13C_PARAMETER': - { - state = { ...state, - }; - - const newParam = action.payload; - var param = state.parameters.find(p => {return p.id === newParam.id}); - applyParameterUpdate(param, newParam); - - // check xi <= xe <= L - let xe = state.parameters.find(p => {return p.id == 'xe'}), - xi = state.parameters.find(p => {return p.id == 'xi'}), - L = state.parameters.find(p => {return p.id == 'L'}); - - if (xe.value < xi.value) { - xe.value = xi.value; - } - - if (xe.value > L.value) { - xe.value = L.value; - } - if (xi.value > L.value) { - xi.value = L.value; - } - //setting boundaries of ne and K - let ne = state.parameters.find(p => {return p.id == 'ne'}); - if (ne.max > 0.5) { - ne.max = 0.5; - } - if (ne.max < 0.0) { - ne.max = 0.0; - } - let K = state.parameters.find(p => {return p.id == 'K'}); - if (K.max > 10e3) { - K.max = 10e3; - } - - calculateAndModifyState(state); - break; - } - } - return state; -}; - -function calculateAndModifyState(state) { - const w = state.parameters.find(p => { - return p.id == 'W' - }) - .value; - const K = state.parameters.find(p => { - return p.id == 'K' - }) - .value; - const ne = state.parameters.find(p => { - return p.id == 'ne' - }) - .value; - const L = state.parameters.find(p => { - return p.id == 'L' - }) - .value; - const hL = state.parameters.find(p => { - return p.id == 'hL' - }) - .value; - const h0 = state.parameters.find(p => { - return p.id == 'h0' - }) - .value; - const xi = state.parameters.find(p => { - return p.id == 'xi' - }) - .value; - const xe = state.parameters.find(p => { - return p.id == 'xe' - }) - .value; - state.info.xwd = calc.calculateXwd(L, K, w, hL, h0).toFixed(1); - const L1 = L + Math.abs(state.info.xwd); - state.chart.data = calc.calculateDiagramData(w, K, ne, L1, hL, xi, xe, 10); - return state; -} -export default T13CReducer; diff --git a/src/reducers/T13D.js b/src/reducers/T13D.js deleted file mode 100644 index 866cd6d2..00000000 --- a/src/reducers/T13D.js +++ /dev/null @@ -1,136 +0,0 @@ -import * as calc from '../calculations/T13D'; -import applyParameterUpdate from '../core/simpleTools/parameterUpdate'; - -function getInitialState() { - return { - chart: { - data: [], - options: { - yAxis: { - domain: [0, 'auto'] - } - } - }, - settings: { - selected: '' - }, - info: { - xwd: 0 - }, - - parameters: [{ - order: 0, - id: 'W', - name: 'Average infiltration rate, W(m/d)', - min: 0.001, - max: 0.01, - value: 0.00112, - stepSize: 0.0001, - decimals: 5, - disable: false - }, { - order: 1, - id: 'K', - name: 'Hydraulic conductivity, K (m/d)', - min: 10e-2, - max: 10e2, - value: 30.2, - stepSize: 10, - decimals: 2, - disable: false - }, { - order: 2, - id: 'L', - name: 'Aquifer length, L´ (m)', - min: 0, - max: 1000, - value: 1000, - stepSize: 10, - decimals: 0, - disable: false - }, { - order: 3, - id: 'hL', - name: 'Downstream head, hL´ (m)', - min: 0, - max: 10, - value: 2, - stepSize: 0.1, - decimals: 1, - disable: false - }, { - order: 4, - id: 'h0', - name: 'Upstream head, h0 (m)', - min: 0, - max: 10, - value: 5, - stepSize: 0.1, - decimals: 1, - disable: false - }] - } -} -const T13BReducer = (state = getInitialState(), action) => { - switch (action.type) { - case 'RESET_TOOL_T13D': - { - state = getInitialState(); - calculateAndModifyState(state); - break; - } - case 'CALCULATE_TOOL_T13D': - { - state = { ...state - }; - calculateAndModifyState(state); - break; - } - case 'CHANGE_TOOL_T13D_PARAMETER': - { - state = { ...state, - }; - - const newParam = action.payload; - var param = state.parameters.find(p => {return p.id === newParam.id}); - applyParameterUpdate(param, newParam); - - //setting boundaries of ne and K - let K = state.parameters.find(p => {return p.id == 'K'}); - if (K.max > 10e3) { - K.max = 10e3; - } - - calculateAndModifyState(state); - break; - } - } - return state; -}; - -function calculateAndModifyState(state) { - const w = state.parameters.find(p => { - return p.id == 'W' - }) - .value; - const K = state.parameters.find(p => { - return p.id == 'K' - }) - .value; - const L = state.parameters.find(p => { - return p.id == 'L' - }) - .value; - const hL = state.parameters.find(p => { - return p.id == 'hL' - }) - .value; - const h0 = state.parameters.find(p => { - return p.id == 'h0' - }) - .value; - state.info.xwd = calc.calculateXwd(L, K, w, hL, h0).toFixed(1); - const xwd = state.info.xwd; - return state; -} -export default T13BReducer; diff --git a/src/reducers/T13E.js b/src/reducers/T13E.js deleted file mode 100644 index de581340..00000000 --- a/src/reducers/T13E.js +++ /dev/null @@ -1,152 +0,0 @@ -import * as calc from '../calculations/T13E'; -import applyParameterUpdate from '../core/simpleTools/parameterUpdate'; -import image from '../images/tools/T13E.png'; - -function getInitialState() { - return { - background: { - 'image': image - }, - chart: { - data: [], - options: { - yAxis: { - domain: [0, 'auto'] - } - } - }, - info: { - xwd: 0 - }, - - parameters: [{ - order: 0, - id: 'Qw', - name: 'Constant pumped flow rate, Qw(m3/d)', - min: 0, - max: 10e8, - value: 1300, - stepSize: 100, - decimals: 1 - }, { - order: 1, - id: 'ne', - name: 'Effective porosity, n (-)', - min: 0, - max: 0.5, - value: 0.35, - stepSize: 0.01, - decimals: 2 - }, { - order: 2, - id: 'hL', - name: 'Downstream head, hL (m)', - min: 0, - max: 20, - value: 6, - stepSize: 0.5, - decimals: 1 - }, { - order: 3, - id: 'h0', - name: 'Upstream head, h0 (m)', - min: 0, - max: 20, - value: 10, - stepSize: 0.5, - decimals: 1 - }, { - order: 4, - id: 'xi', - name: 'Initial position, xi (m)', - min: 0, - max: 1000, - value: 303, - stepSize: 10, - decimals: 0 - }, { - order: 5, - id: 'x', - name: 'Location of the well, x (m)', - min: 1, - max: 1000, - value: 100, - stepSize: 10, - decimals: 0 - }] - } -}; -const T13EReducer = (state = getInitialState(), action) => { - switch (action.type) { - case 'RESET_TOOL_T13E': - { - state = getInitialState(); - calculateAndModifyState(state); - break; - } - case 'CALCULATE_TOOL_T13E': - { - state = { ...state - }; - calculateAndModifyState(state); - break; - } - case 'CHANGE_TOOL_T13E_PARAMETER': - { - state = { ...state, - }; - - const newParam = action.payload; - var param = state.parameters.find(p => {return p.id === newParam.id}); - applyParameterUpdate(param, newParam); - // check xi <= xe <= L - let x = state.parameters.find(p => {return p.id == 'x'}), - xi = state.parameters.find(p => {return p.id == 'xi'}); - - if (x.value > xi.value) { - x.value = xi.value; - } - //setting boundaries of ne and K - let ne = state.parameters.find(p => {return p.id == 'ne'}); - if (ne.max > 0.5) { - ne.max = 0.5; - } - if (ne.max < 0.0) { - ne.max = 0.0; - } - calculateAndModifyState(state); - break; - } - } - return state; -}; - -function calculateAndModifyState(state) { - const Qw = state.parameters.find(p => { - return p.id == 'Qw' - }) - .value; - const ne = state.parameters.find(p => { - return p.id == 'ne' - }) - .value; - const hL = state.parameters.find(p => { - return p.id == 'hL' - }) - .value; - const h0 = state.parameters.find(p => { - return p.id == 'h0' - }) - .value; - const xi = state.parameters.find(p => { - return p.id == 'xi' - }) - .value; - const x = state.parameters.find(p => { - return p.id == 'x' - }) - .value; - state.chart.data = calc.calculateDiagramData(Qw, ne, hL, h0, x, xi, 10); - return state; -} -export default T13EReducer; diff --git a/src/reducers/T14B.js b/src/reducers/T14B.js deleted file mode 100644 index 85d38b15..00000000 --- a/src/reducers/T14B.js +++ /dev/null @@ -1,153 +0,0 @@ -import * as calc from '../calculations/T14B'; -import applyParameterUpdate from '../core/simpleTools/parameterUpdate'; -import image from '../images/tools/T14B.png'; - -function getInitialState() { - return { - background: { - 'image': image - }, - chart: { - data: [], - options: { - yAxis: { - domain: [0, 'auto'] - } - } - }, - info: { - dQ: 0 - }, - parameters: [{ - order: 0, - id: 'Qw', - name: 'Pumping rate, Qw (m³/d)', - min: 1, - validMin: function(x) {return x > 0;}, - max: 1000, - value: 150, - stepSize: 1, - decimals: 0 - }, { - order: 1, - id: 't', - name: 'Duration of pumping, t (d)', - min: 100, - validMin: function(x) {return x > 1;}, - max: 500, - value: 365, - stepSize: 1, - decimals: 1 - }, { - order: 2, - id: 'S', - name: 'Aquifer storage coefficient, S (-)', - min: 0.1, - validMin: function(x) {return x > 0;}, - max: 0.5, - validMax: function(x) {return x <= 1;}, - value: 0.2, - stepSize: 0.001, - decimals: 3 - }, { - order: 3, - id: 'T', - name: 'Aquifer transmissivity, T (m²/d)', - min: 1000, - validMin: function(x) {return x > 0;}, - max: 3000, - value: 1500, - stepSize: 10, - decimals: 0 - }, { - order: 4, - id: 'd', - name: 'Distance from stream to well, d (m)', - min: 200, - validMin: function(x) {return x > 0;}, - max: 1000, - value: 500, - stepSize: 1, - decimals: 0 - }, { - order: 5, - id: 'K', - name: 'Aquifer permeability, K (m/s)', - min: 1, - validMin: function(x) {return x > 0;}, - max: 10, - value: 1, - stepSize: 0.1, - decimals: 1 - }, { - order: 6, - id: 'Kdash', - name: 'Permeability of the semipervious layer, K\' (m/s)', - min: 0.1, - validMin: function(x) {return x > 0;}, - max: 1, - value: 0.1, - stepSize: 0.1, - decimals: 1 - }, { - order: 7, - id: 'bdash', - name: 'Thickness of the semipervious layer, b\' (m)', - min: 100, - validMin: function(x) {return x > 0;}, - max: 1000, - value: 100, - stepSize: 10, - decimals: 0 - }] - }; -} - -const T14BReducer = (state = getInitialState(), action) => { - switch (action.type) { - case 'RESET_TOOL_T14B': - { - state = getInitialState(); - calculateAndModifyState(state); - break; - } - case 'CALCULATE_TOOL_T14B': - { - state = { ...state }; - - calculateAndModifyState(state); - break; - } - case 'CHANGE_TOOL_T14B_PARAMETER': - { - state = { ...state }; - - const newParam = action.payload; - const param = state.parameters.find(p => (p.id === newParam.id)); - - applyParameterUpdate(param, newParam); - calculateAndModifyState(state); - break; - } - } - return state; -}; - -function calculateAndModifyState(state) { - const Qw = state.parameters.find(p => (p.id === 'Qw')).value; - const t = state.parameters.find( p => (p.id === 't')).value; - const S = state.parameters.find( p => (p.id === 'S')).value; - const T = state.parameters.find( p => (p.id === 'T')).value; - const d = state.parameters.find( p => (p.id === 'd')).value; - const K = state.parameters.find( p => (p.id === 'K')).value; - const Kdash = state.parameters.find( p => (p.id === 'Kdash')).value; - const bdash = state.parameters.find( p => (p.id === 'bdash')).value; - - const L = K * bdash / Kdash; - - state.chart.data = calc.calculateDiagramData(Qw, S, T, d, 0, t, L, 1); - state.info.dQ = state.chart.data[state.chart.data.length - 1].dQ; - return state; -} - -export default T14BReducer; diff --git a/src/reducers/T14C.js b/src/reducers/T14C.js deleted file mode 100644 index 4f99593e..00000000 --- a/src/reducers/T14C.js +++ /dev/null @@ -1,152 +0,0 @@ -import * as calc from '../calculations/T14C'; -import applyParameterUpdate from '../core/simpleTools/parameterUpdate'; -import image from '../images/tools/T14C.png'; - -function getInitialState() { - return { - background: { - 'image': image - }, - chart: { - data: [], - options: { - yAxis: { - domain: [0, 'auto'] - } - } - }, - info: { - dQ: 0 - }, - parameters: [{ - order: 0, - id: 'Qw', - name: 'Pumping rate, Qw (m³/d)', - min: 1, - validMin: function(x) {return x > 0;}, - max: 1000, - value: 150, - stepSize: 1, - decimals: 0 - }, { - order: 1, - id: 't', - name: 'Duration of pumping, t (d)', - min: 100, - validMin: function(x) {return x > 1;}, - max: 500, - value: 365, - stepSize: 1, - decimals: 0 - }, { - order: 2, - id: 'S', - name: 'Aquifer storage coefficient, S (-)', - min: 0.1, - validMin: function(x) {return x > 0;}, - max: 0.5, - validMax: function(x) {return x <= 1;}, - value: 0.2, - stepSize: 0.001, - decimals: 3 - }, { - order: 3, - id: 'T', - name: 'Aquifer transmissivity, T (m²/d)', - min: 1000, - validMin: function(x) {return x > 0;}, - max: 3000, - value: 1500, - stepSize: 10, - decimals: 0 - }, { - order: 4, - id: 'd', - name: 'Distance from stream to well, d (m)', - min: 200, - validMin: function(x) {return x > 0;}, - max: 1000, - value: 500, - stepSize: 1, - decimals: 0 - }, { - order: 5, - id: 'W', - name: 'Width of stream , W (m)', - min: 1, - validMin: function(x) {return x > 0;}, - max: 10, - value: 2.5, - stepSize: 0.1, - decimals: 1 - }, { - order: 6, - id: 'Kdash', - name: 'Permeability of the semipervious layer, K\' (m/d)', - min: 0.1, - validMin: function(x) {return x > 0;}, - max: 1, - value: 0.1, - stepSize: 0.1, - decimals: 1 - }, { - order: 7, - id: 'bdash', - name: 'Thickness of the semipervious layer, b\' (m)', - min: 1, - validMin: function(x) {return x > 0;}, - max: 10, - value: 1, - stepSize: 0.1, - decimals: 1 - }] - }; -} - -const T14CReducer = (state = getInitialState(), action) => { - switch (action.type) { - case 'RESET_TOOL_T14C': - { - state = getInitialState(); - calculateAndModifyState(state); - break; - } - case 'CALCULATE_TOOL_T14C': - { - state = { ...state }; - calculateAndModifyState(state); - break; - } - case 'CHANGE_TOOL_T14C_PARAMETER': - { - state = { ...state }; - - const newParam = action.payload; - const param = state.parameters.find(p => (p.id === newParam.id)); - - applyParameterUpdate(param, newParam); - calculateAndModifyState(state); - break; - } - } - return state; -}; - -function calculateAndModifyState(state) { - const Qw = state.parameters.find(p => (p.id === 'Qw')).value; - const t = state.parameters.find( p => (p.id === 't')).value; - const S = state.parameters.find( p => (p.id === 'S')).value; - const T = state.parameters.find( p => (p.id === 'T')).value; - const d = state.parameters.find( p => (p.id === 'd')).value; - const W = state.parameters.find( p => (p.id === 'W')).value; - const Kdash = state.parameters.find( p => (p.id === 'Kdash')).value; - const bdash = state.parameters.find( p => (p.id === 'bdash')).value; - - const lambda = Kdash * W / bdash; - - state.chart.data = calc.calculateDiagramData(Qw, S, T, d, 0, t, lambda, 1); - state.info.dQ = state.chart.data[state.chart.data.length - 1].dQ; - return state; -} - -export default T14CReducer; diff --git a/src/reducers/T14D.js b/src/reducers/T14D.js deleted file mode 100644 index 25986f70..00000000 --- a/src/reducers/T14D.js +++ /dev/null @@ -1,154 +0,0 @@ -import * as calc from '../calculations/T14D'; -import applyParameterUpdate from '../core/simpleTools/parameterUpdate'; -import image from '../images/tools/T14D.png'; - -function getInitialState() { - return { - background: { - 'image': image - }, - chart: { - data: [], - options: { - yAxis: { - domain: [0, 'auto'] - } - } - }, - info: { - dQ: 0 - }, - parameters: [{ - order: 0, - id: 'Qw', - name: 'Pumping rate, Qw (m³/d)', - min: 1, - validMin: function(x) {return x > 0;}, - max: 1000, - value: 150, - stepSize: 1, - decimals: 0 - }, { - order: 1, - id: 't', - name: 'Duration of pumping, t (d)', - min: 100, - validMin: function(x) {return x > 1;}, - max: 500, - value: 365, - stepSize: 0.1, - decimals: 1 - }, { - order: 2, - id: 'S', - name: 'Aquifer storage coefficient, S (-)', - min: 0.1, - validMin: function(x) {return x > 0;}, - max: 0.5, - validMax: function(x) {return x <= 1;}, - value: 0.2, - stepSize: 0.001, - decimals: 3 - }, { - order: 3, - id: 'T', - name: 'Aquifer transmissivity, T (m²/d)', - min: 1000, - validMin: function(x) {return x > 0;}, - max: 3000, - value: 1500, - stepSize: 10, - decimals: 0 - }, { - order: 4, - id: 'd', - name: 'Distance from stream to well, d (m)', - min: 200, - validMin: function(x) {return x > 0;}, - max: 1000, - value: 500, - stepSize: 1, - decimals: 0 - }, { - order: 5, - id: 'W', - name: 'Width of stream , W (m)', - min: 1, - validMin: function(x) {return x > 0;}, - max: 10, - value: 2.5, - stepSize: 0.1, - decimals: 1 - }, { - order: 6, - id: 'Kdash', - name: 'Permeability of the semipervious layer, K\' (m/d)', - min: 0.1, - validMin: function(x) {return x > 0;}, - max: 1, - value: 0.1, - stepSize: 0.1, - decimals: 1 - }, { - order: 7, - id: 'bdash', - name: 'Thickness of the semipervious layer, b\' (m)', - min: 1, - validMin: function(x) {return x > 0;}, - max: 10, - value: 1, - stepSize: 0.1, - decimals: 1 - }] - }; -} - -const T14DReducer = (state = getInitialState(), action) => { - switch (action.type) { - case 'RESET_TOOL_T14D': - { - state = getInitialState(); - calculateAndModifyState(state); - break; - } - case 'CALCULATE_TOOL_T14D': - { - state = { ...state }; - calculateAndModifyState(state); - break; - } - case 'CHANGE_TOOL_T14D_PARAMETER': - { - state = { ...state }; - - const newParam = action.payload; - const param = state.parameters.find(p => {return p.id === newParam.id;}); - - applyParameterUpdate(param, newParam); - calculateAndModifyState(state); - break; - } - } - return state; -}; - -function calculateAndModifyState(state) { - - const Qw = state.parameters.find(p => (p.id === 'Qw')).value; - const t = state.parameters.find( p => (p.id === 't')).value; - const S = state.parameters.find( p => (p.id === 'S')).value; - const T = state.parameters.find( p => (p.id === 'T')).value; - const d = state.parameters.find( p => (p.id === 'd')).value; - const W = state.parameters.find( p => (p.id === 'W')).value; - const Kdash = state.parameters.find( p => (p.id === 'Kdash')).value; - const bdash = state.parameters.find( p => (p.id === 'bdash')).value; - - const lambda = Kdash * W / bdash; - - state.chart.data = calc.calculateDiagramData(Qw, S, T, d, 0, t, lambda, 1); - state.info.dQ = state.chart.data[state.chart.data.length - 1].dQ; - - return state; -} - -export default T14DReducer; diff --git a/src/reducers/index.js b/src/reducers/index.js index d30fd3e1..18549793 100644 --- a/src/reducers/index.js +++ b/src/reducers/index.js @@ -1,31 +1,32 @@ -import T03 from './T03'; -import T02 from './T02'; -import T06 from './T06'; -import { Reducer as T07 } from '../t07'; +import * as T03 from './T03'; +import * as T02 from '../t02/reducers'; +import * as T06 from '../t06/reducers'; +import {Reducer as T07} from '../t07'; import T07E from './T07E'; import * as T08 from '../t08/reducers'; import * as T09 from '../t09/reducers'; -import T12 from './T12'; +import * as T12 from '../t12/reducers'; import * as T13 from '../t13/reducers'; import * as T14 from '../t14/reducers'; import T16 from './T16'; import T18 from './T18'; -import { combineReducers } from 'redux'; +import {combineReducers} from 'redux'; import dashboard from '../dashboard/reducers'; import rasterfiles from './Rasterfiles'; -import { routerReducer as routing } from 'react-router-redux'; -import user from './user'; -import { WebData } from '../core'; +import {routerReducer as routing} from 'react-router-redux'; +import {WebData} from '../core'; +import {user, session} from '../user/reducers'; const rootReducer = combineReducers({ routing, + session, user, webData: WebData.Reducer.webData, dashboard, rasterfiles, - T02, - T03, - T06, + T02: T02.createReducer('T02'), + T03: T03.createReducer('T03'), + T06: T06.createReducer('T06'), T07, T07E, T08: T08.createReducer('T08'), @@ -34,7 +35,7 @@ const rootReducer = combineReducers({ T09C: T09.createReducer('T09C'), T09D: T09.createReducer('T09D'), T09E: T09.createReducer('T09E'), - T12, + T12: T12.createReducer('T12'), T13A: T13.createReducer('T13A'), T13B: T13.createReducer('T13B'), T13C: T13.createReducer('T13C'), diff --git a/src/routes.jsx b/src/routes.jsx index 857a6b25..54b92890 100644 --- a/src/routes.jsx +++ b/src/routes.jsx @@ -1,29 +1,45 @@ import React from 'react'; import {Route, IndexRoute} from 'react-router'; -import AppForAuthenticatedUser from './containers/AppForAuthenticatedUser'; +import {AppForAuthenticatedUser, AppForAdminUser, AppForAllUsers} from './user/containers'; import tools from './containers/tools'; +import * as Dashboard from './dashboard/index'; import * as T02 from './t02/index'; import * as T03 from './t03/index'; import * as T04 from './t04/index'; +import * as T06 from './t06/index'; import * as T07 from './t07/index'; import * as T08 from './t08/index'; import * as T09 from './t09/index'; +import * as T12 from './t12/index'; import * as T13 from './t13/index'; import * as T14 from './t14/index'; -import * as ToolInstance from './toolInstance/index'; -import DashboardContainer from './containers/Dashboard'; -import Login from './containers/Login'; -import LandingPage from './containers/LandingPage'; +import * as User from './user/index'; +import {Login, Logout, SignUp} from './user/containers'; import Impressum from './containers/Impressum'; import {WebData} from './core/index'; -import SignUp from './containers/SignUp'; +import LandingPage from './containers/LandingPage'; const routes = store => ( - + + + + + + + + + + + + + + + + - + ( store.dispatch(WebData.Modifier.Action.clear()); if (nextState.params.id) { store.dispatch( - ToolInstance.Modifier.Query.getToolInstance( + Dashboard.Modifier.Query.getToolInstance( 'T02', nextState.params.id, ) @@ -65,8 +81,11 @@ const routes = store => ( ); }} /> + - + + + @@ -121,12 +140,14 @@ const routes = store => ( - + + + @@ -135,13 +156,9 @@ const routes = store => ( - - - - ); diff --git a/src/saga.js b/src/saga.js index fc37a07a..b30d1892 100644 --- a/src/saga.js +++ b/src/saga.js @@ -4,7 +4,7 @@ import { Saga as Dashboard } from './dashboard/index'; import { Saga as RasterData } from './core/rasterData/index'; import { Saga as T03 } from './t03/index'; import { Saga as T07 } from './t07/index'; -import { Saga as ToolInstance } from './toolInstance/index'; +import { Saga as User } from './user/index'; export default function* rootSaga() { yield [ @@ -12,7 +12,11 @@ export default function* rootSaga() { WebData.Modifier.Query.AT_SEND_HTTP_REQUEST, WebData.Saga.sendHttpRequestFlow ), + call(Dashboard.cloneToolInstanceFlow), + call(Dashboard.createToolInstanceFlow), call(Dashboard.loadInstancesFlow), + call(Dashboard.updateToolInstanceFlow), + call(Dashboard.deleteToolInstanceFlow), call(RasterData.uploadRasterFileFlow), call(T03.addBoundaryFlow), call(T03.addLayerFlow), @@ -45,10 +49,9 @@ export default function* rootSaga() { call(T07.deleteScenarioFlow), call(T07.loadScenarioAnalysisFlow), call(T07.updateScenarioAnalysisFlow), - call(ToolInstance.createToolInstanceFlow), - call(ToolInstance.updateToolInstanceFlow), - call(ToolInstance.deleteToolInstanceFlow), - call(ToolInstance.cloneToolInstanceFlow), - call(ToolInstance.cloneToolInstanceFlow), + call(User.authenticateUser), + call(User.changePassword), + call(User.fetchUser), + call(User.updateUserProfile), ]; } diff --git a/src/t02/containers/main.js b/src/t02/containers/main.js index b21f6a74..44b86abc 100644 --- a/src/t02/containers/main.js +++ b/src/t02/containers/main.js @@ -6,7 +6,7 @@ import uuid from 'uuid'; import '../../less/4TileTool.less'; import styleGlobals from 'styleGlobals'; -import image from '../../images/tools/T02.png'; +import image from '../images/T02.png'; import {Background, Chart, Parameters, Settings} from '../components'; import {WebData, LayoutComponents} from '../../core'; @@ -18,12 +18,11 @@ import AccordionItem from '../../components/primitive/AccordionItem'; import Input from '../../components/primitive/Input'; import Select from '../../components/primitive/Select'; import Button from '../../components/primitive/Button'; -import {Modifier as ToolInstance} from '../../toolInstance'; +import {Modifier as Dashboard} from '../../dashboard'; import {each} from 'lodash'; import {getInitialState} from '../reducers/main'; import applyParameterUpdate from '../../core/simpleTools/parameterUpdate'; -import {makeMapStateToProps} from '../selectors/mapState'; import {isReadOnly} from '../../core/helpers'; const styles = { @@ -52,7 +51,7 @@ const buildPayload = (data) => { const navigation = [{ name: 'Documentation', - path: 'https://wiki.inowas.hydro.tu-dresden.de/t02-groundwater-mounding-hantush/', + path: 'https://inowas.hydro.tu-dresden.de/tools/t02-groundwater-mounding-hantush/', icon: }]; @@ -253,8 +252,14 @@ class T02 extends React.Component { } const actions = { - createToolInstance: ToolInstance.Command.createToolInstance, - updateToolInstance: ToolInstance.Command.updateToolInstance, + createToolInstance: Dashboard.Command.createToolInstance, + updateToolInstance: Dashboard.Command.updateToolInstance, +}; + +const mapStateToProps = (state) => { + return { + toolInstance: state.T02 + }; }; const mapDispatchToProps = (dispatch, props) => { @@ -285,6 +290,6 @@ T02.propTypes = { }; // eslint-disable-next-line no-class-assign -T02 = withRouter(connect(makeMapStateToProps, mapDispatchToProps)(T02)); +T02 = withRouter(connect(mapStateToProps, mapDispatchToProps)(T02)); export default T02; diff --git a/src/images/tools/T02.png b/src/t02/images/T02.png similarity index 100% rename from src/images/tools/T02.png rename to src/t02/images/T02.png diff --git a/src/t02/reducers/main.js b/src/t02/reducers/main.js index cf0b3728..198129a8 100644 --- a/src/t02/reducers/main.js +++ b/src/t02/reducers/main.js @@ -1,6 +1,4 @@ -import {WebData} from '../../core'; -import * as ToolInstance from '../../toolInstance'; -import {find} from 'lodash'; +import {createSimpleToolReducer} from '../../core/helpers/createSimpleToolReducer'; export const getInitialState = () => { return { @@ -16,9 +14,7 @@ export const getInitialState = () => { id: 'w', name: 'Percolation rate, w (m/d)', min: 0, - validMin: function(x) { - return x >= 0; - }, + validMin: (x) => x >= 0, max: 10, value: 0.045, stepSize: 0.001, @@ -28,9 +24,7 @@ export const getInitialState = () => { id: 'L', name: 'Basin length, L (m)', min: 0, - validMin: function(x) { - return x > 0; - }, + validMin: (x) => x > 0, max: 1000, value: 40, stepSize: 1, @@ -40,9 +34,7 @@ export const getInitialState = () => { id: 'W', name: 'Basin width, W (m)', min: 0, - validMin: function(x) { - return x > 0; - }, + validMin: (x) => x > 0, max: 100, value: 20, stepSize: 1, @@ -52,9 +44,7 @@ export const getInitialState = () => { id: 'hi', name: 'Initial groundwater Level, hi (m)', min: 0, - validMin: function(x) { - return x >= 0; - }, + validMin: (x) => x >= 0, max: 100, value: 35, stepSize: 1, @@ -64,13 +54,9 @@ export const getInitialState = () => { id: 'Sy', name: 'Specific yield, Sy (-)', min: 0.000, - validMin: function(x) { - return x > 0; - }, + validMin: (x) => x > 0, max: 0.5, - validMax: function(x) { - return x <= 0.5; - }, + validMax: (x) => x <= 0.5, value: 0.085, stepSize: 0.001, decimals: 3 @@ -79,80 +65,28 @@ export const getInitialState = () => { id: 'K', name: 'Hydraulic conductivity, K (m/d)', min: 0.1, - validMin: function(x) { - return x > 0; - }, + validMin: (x) => x > 0, max: 10, - validMax: function(x) { - return x <= 100000; - }, + validMax: x => x <= 100000, value: 1.83, - stepSize: 0.1, - decimals: 1 + stepSize: 0.01, + decimals: 2 }, { order: 6, id: 't', name: 'Infiltration time, t (d)', min: 0, - validMin: function(x) { - return x > 0; - }, + validMin: x => x > 0, max: 100, value: 1.5, - stepSize: 1, - decimals: 0 + stepSize: 0.1, + decimals: 1 }] }; }; const createReducer = tool => { - return (state = getInitialState(), action) => { - if (action.tool !== tool) { - return state; - } - - switch (action.type) { - case WebData.Modifier.Action.SET_AJAX_STATUS: - if (!WebData.Helpers.isSuccess(action) - || !WebData.Helpers.waitForResponse(action, ToolInstance.Modifier.Query.GET_TOOL_INSTANCE) - ) { - return state; - } - const instance = action.webData.data; - return { - ...state, - name: instance.name, - description: instance.description, - permissions: instance.permissions, - public: instance.public, - settings: instance.data.settings, - parameters: state.parameters.map(v => { - return { - ...v, - ...find(instance.data.parameters, {id: v.id}) - }; - }) - }; - case ToolInstance.Modifier.Action.SET_TOOL_INSTANCE: - case ToolInstance.Modifier.Event.TOOL_INSTANCE_CREATED: - case ToolInstance.Modifier.Event.TOOL_INSTANCE_UPDATED: - return { - ...state, - name: action.payload.name, - description: action.payload.description, - public: action.payload.public, - settings: action.payload.data.settings, - parameters: state.parameters.map(v => { - return { - ...v, - ...find(action.payload.data.parameters, {id: v.id}) - }; - }) - }; - } - - return state; - }; + return createSimpleToolReducer(tool, getInitialState(tool)); }; export default createReducer; diff --git a/src/t03/actions/actions.js b/src/t03/actions/actions.js index 8bdd20bf..f3d84774 100644 --- a/src/t03/actions/actions.js +++ b/src/t03/actions/actions.js @@ -1,22 +1,11 @@ /** * Actions triggers only a store change. */ - -export const ADD_AREA_CONTROL_POINT = - 'MODEL_EDITOR_MODEL_AREA_ADD_CONTROL_POINT'; -export const DELETE_AREA_CONTROL_POINT = - 'MODEL_EDITOR_MODEL_DELETE_AREA_CONTROL_POINT'; export const DESTROY_MODFLOW_MODEL = 'MODEL_EDITOR_MODEL_DESTROY'; - -export const SET_AREA_LATITUDE = 'MODEL_EDITOR_MODEL_SET_AREA_LATITUDE'; -export const SET_AREA_LONGITUDE = 'MODEL_EDITOR_MODEL_SET_AREA_LONGITUDE'; export const SET_MODFLOW_MODEL = 'MODEL_EDITOR_MODEL_SET'; export const SET_ACTIVE_CELLS = 'MODEL_EDITOR_MODEL_SET_ACTIVE_CELLS'; -export const UPDATE_AREA_CONTROL_POINT = - 'MODEL_EDITOR_MODEL_AREA_UPDATE_CONTROL_POINT'; export const UPDATE_BOUNDING_BOX = 'MODEL_EDITOR_MODEL_UPDATE_BOUNDING_BOX'; export const UPDATE_GEOMETRY = 'MODEL_EDITOR_UPDATE_GEOMETRY'; - export const SET_MODEL_AREA = 'MODEL_EDITOR_MODEL_SET_AREA'; export function setModelArea(tool, geometry, latLngBounds) { @@ -53,92 +42,16 @@ export function destroyModflowModel(tool) { }; } -export function updateGeometry(tool, id, geometry) { - return { - type: UPDATE_GEOMETRY, - tool, - payload: { - id: id, - geometry: geometry - } - }; -} - -export function addAreaControlPoint(tool, lng, lat, index) { - return { - type: ADD_AREA_CONTROL_POINT, - tool, - payload: { - lat, - lng, - index - } - }; -} - -export function updateAreaControlPoint(tool, index, controlPoint) { - return { - type: UPDATE_AREA_CONTROL_POINT, - tool, - payload: { - index, - controlPoint - } - }; -} - -export function updateBoundingBox(tool) { - return { - type: UPDATE_BOUNDING_BOX, - tool - }; -} - -export function setAreaLatitude(tool, index, lat) { - return { - type: SET_AREA_LATITUDE, - tool, - payload: { - index, - lat - } - }; -} - -export function setAreaLongitude(tool, index, lng) { - return { - type: SET_AREA_LONGITUDE, - tool, - payload: { - index, - lng - } - }; -} - -export function deleteAreaControlPoint(tool, index) { - return { - type: DELETE_AREA_CONTROL_POINT, - tool, - payload: index - }; -} - export const ADD_BOUNDARY = 'MODEL_EDITOR_MODEL_ADD_BOUNDARY'; export const SET_BOUNDARIES = 'MODEL_EDITOR_MODEL_SET_BOUNDARIES'; export const SET_BOUNDARY = 'MODEL_EDITOR_MODEL_SET_BOUNDARY'; export const SET_LAYER = 'MODEL_EDITOR_MODEL_SET_LAYER'; export const UPDATE_BOUNDARY = 'MODEL_EDITOR_MODEL_UPDATE_BOUNDARY'; -export const ADD_BOUNDARY_CONTROL_POINT = - 'MODEL_EDITOR_MODEL_ADD_BOUNDARY_CONTROL_POINT'; -export const UPDATE_BOUNDARY_CONTROL_POINT = - 'MODEL_EDITOR_MODEL_UPDATE_BOUNDARY_CONTROL_POINT'; -export const DELETE_BOUNDARY_CONTROL_POINT = - 'MODEL_EDITOR_MODEL_DELETE_BOUNDARY_CONTROL_POINT'; -export const UPDATE_BOUNDARY_PUMPING_RATE = - 'MODEL_EDITOR_MODEL_UPDATE_BOUNDARY_PUMPING_RATE'; -export const ADD_BOUNDARY_PUMPING_RATE = - 'MODEL_EDITOR_MODEL_ADD_BOUNDARY_PUMPING_RATE'; +export const ADD_BOUNDARY_CONTROL_POINT = 'MODEL_EDITOR_MODEL_ADD_BOUNDARY_CONTROL_POINT'; +export const UPDATE_BOUNDARY_CONTROL_POINT = 'MODEL_EDITOR_MODEL_UPDATE_BOUNDARY_CONTROL_POINT'; +export const DELETE_BOUNDARY_CONTROL_POINT = 'MODEL_EDITOR_MODEL_DELETE_BOUNDARY_CONTROL_POINT'; +export const UPDATE_BOUNDARY_PUMPING_RATE = 'MODEL_EDITOR_MODEL_UPDATE_BOUNDARY_PUMPING_RATE'; +export const ADD_BOUNDARY_PUMPING_RATE = 'MODEL_EDITOR_MODEL_ADD_BOUNDARY_PUMPING_RATE'; export const SET_BOUNDARY_GEOMETRY = 'MODEL_EDITOR_MODEL_SET_BOUNDARY_GEOMETRY'; export const SET_STRESS_PERIODS = 'MODEL_EDITOR_MODEL_SET_STRESS_PERIODS'; @@ -170,14 +83,6 @@ export function addBoundary(tool, boundary) { }; } -export function updateBoundary(tool, boundary) { - return { - type: UPDATE_BOUNDARY, - tool, - payload: boundary - }; -} - export function setBoundary(tool, boundary) { return { type: SET_BOUNDARY, @@ -202,14 +107,12 @@ export function setStressPeriods(tool, stressperiod) { }; } -export function updatePumpingRate( - tool, - boundaryId, - observationPointId, - index, - datetime, - pumpingRate -) { +export function updatePumpingRate(tool, + boundaryId, + observationPointId, + index, + datetime, + pumpingRate) { return { type: UPDATE_BOUNDARY_PUMPING_RATE, tool, @@ -223,14 +126,12 @@ export function updatePumpingRate( }; } -export function addPumpingRate( - tool, - boundaryId, - observationPointId, - index, - datetime, - pumpingRate -) { +export function addPumpingRate(tool, + boundaryId, + observationPointId, + index, + datetime, + pumpingRate) { return { type: ADD_BOUNDARY_PUMPING_RATE, tool, diff --git a/src/t03/actions/commands.js b/src/t03/actions/commands.js index a2964b36..41df658f 100644 --- a/src/t03/actions/commands.js +++ b/src/t03/actions/commands.js @@ -1,5 +1,3 @@ -import { sendCommand } from '../../actions/messageBox'; - /** * Commands sends a request to server and triggers an event. */ diff --git a/src/t03/actions/queries.js b/src/t03/actions/queries.js index c6b9565f..28e0a569 100644 --- a/src/t03/actions/queries.js +++ b/src/t03/actions/queries.js @@ -1,10 +1,10 @@ +import {WebData} from '../../core'; + /** * Queries send a get/load request to server and triggers an action to set data in store. * Usually it uses a saga for the flow. */ -import { sendQuery } from '../../actions/messageBox'; - export const GET_MODFLOW_MODEL = 'GET_MODFLOW_MODEL'; export function getModflowModel(tool, id) { @@ -93,7 +93,7 @@ export function getListfile(tool, id) { export const GET_FILE = 'GET_MODFLOW_MODEL_FILE'; export function getFile(tool, id, ext) { - return sendQuery(`calculations/${id}/file/${ext}`, GET_FILE); + return WebData.Modifier.Action.sendQuery(`calculations/${id}/file/${ext}`, GET_FILE); } export const GET_MODFLOW_PACKAGE = 'GET_MODFLOW_PACKAGE'; diff --git a/src/t03/components/boundaryMap.jsx b/src/t03/components/boundaryMap.jsx index d4ac7668..baa29d7d 100644 --- a/src/t03/components/boundaryMap.jsx +++ b/src/t03/components/boundaryMap.jsx @@ -3,7 +3,7 @@ import React, {Component} from 'react'; import PropTypes from 'prop-types'; import {GeoJSON, Map, CircleMarker, TileLayer} from 'react-leaflet'; import {geoJSON} from 'leaflet'; -import * as mapHelpers from '../../calculations/map'; +import {disableMap} from '../../core/geospatial'; import ConfiguredRadium from 'ConfiguredRadium'; import {uniqueId} from 'lodash'; @@ -18,7 +18,7 @@ const componentStyle = { @ConfiguredRadium class BoundaryMap extends Component { componentDidMount() { - mapHelpers.disableMap(this.map); + disableMap(this.map); } generateKeyFunction = geometry => { diff --git a/src/t03/components/boundaryProperties.jsx b/src/t03/components/boundaryProperties.jsx index 114658f7..05ba3c8f 100644 --- a/src/t03/components/boundaryProperties.jsx +++ b/src/t03/components/boundaryProperties.jsx @@ -200,6 +200,8 @@ class BoundaryProperties extends React.Component { boundary: boundary, showOverlay: false }); + + this.save(boundary); }; handleSelectObservationPoint = id => { @@ -216,18 +218,18 @@ class BoundaryProperties extends React.Component { return (boundary.hasOwnProperty('date_time_values') || boundary.hasOwnProperty('observation_points')); }; - save = () => { - if (this.state.boundary.hasOwnProperty('date_time_values')) { + save = boundary => { + if (boundary.hasOwnProperty('date_time_values')) { this.props.onSave({ - ...this.state.boundary, + ...boundary, date_time_values: this.observationPoint.getRows() }); return; } - if (this.state.boundary.hasOwnProperty('observation_points')) { - const observationPoints = this.state.boundary.observation_points; + if (boundary.hasOwnProperty('observation_points')) { + const observationPoints = boundary.observation_points; observationPoints.map(op => { if (op.id === this.state.selectedObservationPointId) { @@ -239,14 +241,14 @@ class BoundaryProperties extends React.Component { }); this.props.onSave({ - ...this.state.boundary, + ...boundary, observation_points: observationPoints }); return; } - this.props.onSave(this.state.boundary); + this.props.onSave(boundary); }; renderObservationPointsSelection = boundary => { @@ -334,7 +336,9 @@ class BoundaryProperties extends React.Component { {!readOnly && } {this.observationPoint = op;}} + ref={op => { + this.observationPoint = op; + }} rows={addIdFromIndex(getDateTimeValues(boundary, selectedObservationPointId))} /> @@ -345,7 +349,9 @@ class BoundaryProperties extends React.Component { {!readOnly && } {this.observationPoint = op;}} + ref={op => { + this.observationPoint = op; + }} rows={addIdFromIndex(getDateTimeValues(boundary))}/> ); @@ -363,7 +369,8 @@ class BoundaryProperties extends React.Component { return (
    - Save + this.save(this.state.boundary)} + loading={updateStatus.status === 'loading'}>Save
    ); }; diff --git a/src/t03/components/generalMap.jsx b/src/t03/components/generalMap.jsx index ed263d5b..ba9dee20 100644 --- a/src/t03/components/generalMap.jsx +++ b/src/t03/components/generalMap.jsx @@ -1,7 +1,7 @@ /* eslint-disable no-return-assign */ import PropTypes from 'prop-types'; import React from 'react'; -import * as mapHelpers from '../../calculations/map'; +import * as mapHelpers from '../../core/geospatial'; import {GeoJSON, Map, Rectangle} from 'react-leaflet'; import ConfiguredRadium from 'ConfiguredRadium'; import {geoJson, geoJSON} from 'leaflet'; diff --git a/src/t03/components/runModelOverviewMap.jsx b/src/t03/components/runModelOverviewMap.jsx index 90404877..9a0d21bd 100644 --- a/src/t03/components/runModelOverviewMap.jsx +++ b/src/t03/components/runModelOverviewMap.jsx @@ -1,4 +1,4 @@ -import * as mapHelpers from '../../calculations/map'; +import {disableMap, invalidateSize} from '../../core/geospatial'; import { GeoJSON, Map, Rectangle, TileLayer } from 'react-leaflet'; import React, { Component } from 'react'; @@ -7,7 +7,7 @@ import ConfiguredRadium from 'ConfiguredRadium'; import PropTypes from 'prop-types'; import { geoJSON } from 'leaflet'; import md5 from 'js-md5'; -import GridLayer from "./gridLayer"; +import GridLayer from './gridLayer'; const styles = { map: { @@ -28,8 +28,8 @@ class RunModelOverviewMap extends Component { } componentDidMount() { - mapHelpers.disableMap(this.map); - mapHelpers.invalidateSize(this.map); + disableMap(this.map); + invalidateSize(this.map); } componentWillReceiveProps(nextProps) { diff --git a/src/t03/containers/BackgroundMap.jsx b/src/t03/containers/BackgroundMap.jsx index fca6a6e7..77dffd26 100644 --- a/src/t03/containers/BackgroundMap.jsx +++ b/src/t03/containers/BackgroundMap.jsx @@ -1,3 +1,6 @@ +import React from 'react'; +import PropTypes from 'prop-types'; + import { Circle, CircleMarker, @@ -11,9 +14,10 @@ import { Rectangle, TileLayer } from 'react-leaflet'; -import React, {Component, PropTypes} from 'react'; + import {browserHistory, withRouter} from 'react-router'; import {geoJSON, geoJson} from 'leaflet'; +import uuid from 'uuid'; import Button from '../../components/primitive/Button'; import ConfiguredRadium from 'ConfiguredRadium'; @@ -29,7 +33,7 @@ import {connect} from 'react-redux'; import md5 from 'js-md5'; import {uniqueId, has} from 'lodash'; import ActiveCellsLayer from '../components/activeCellsLayer'; -import {calculateActiveCells} from "../../core/geospatial"; +import {calculateActiveCells} from '../../core/geospatial'; // see https://github.com/PaulLeCam/react-leaflet/issues/255 delete L.Icon.Default.prototype._getIconUrl; @@ -60,18 +64,7 @@ const styles = { }; @ConfiguredRadium -class BackgroundMap extends Component { - static propTypes = { - addBoundary: PropTypes.func, - location: PropTypes.object, - model: PropTypes.object, - params: PropTypes.object, - routes: PropTypes.array, - setBoundaryGeometry: PropTypes.func, - setModelArea: PropTypes.func, - tool: PropTypes.string - }; - +class BackgroundMap extends React.Component { constructor(props) { super(props); @@ -219,7 +212,7 @@ class BackgroundMap extends Component { return ( - {constantHeads} +
    {constantHeads}
    ); @@ -251,7 +244,7 @@ class BackgroundMap extends Component { return ( - {generalHeads} +
    {generalHeads}
    ); @@ -283,7 +276,7 @@ class BackgroundMap extends Component { return ( - {recharges} +
    {recharges}
    ); @@ -315,7 +308,7 @@ class BackgroundMap extends Component { return ( - {rivers} +
    {rivers}
    ); @@ -350,7 +343,7 @@ class BackgroundMap extends Component { return ( - {wells} +
    {wells}
    ); @@ -363,8 +356,8 @@ class BackgroundMap extends Component { while (i < 100000) { // eslint-disable-next-line no-loop-func if (this.props.model.boundaries.filter(b => { - return (b.id === (type + '-' + i)); - }).length === 0) { + return (b.id === (type + '-' + i)); + }).length === 0) { return i; } i++; @@ -388,14 +381,13 @@ class BackgroundMap extends Component { } if (type === 'chd') { - const newBoundaryNumber = this.getNewBoundaryNumber(type); - const id = type + '-' + newBoundaryNumber; + const id = uuid.v4(); const linestring = e.layer; const boundary = getBoundaryDefaults( type, id, - 'Constant Head ' + newBoundaryNumber, + 'Constant Head ' + this.getNewBoundaryNumber(type), linestring.toGeoJSON().geometry, this.getStartDate() ); @@ -406,13 +398,12 @@ class BackgroundMap extends Component { } if (type === 'ghb') { - const newBoundaryNumber = this.getNewBoundaryNumber(type); - const id = type + '-' + newBoundaryNumber; + const id = uuid.v4(); const linestring = e.layer; const boundary = getBoundaryDefaults( type, id, - 'General Head ' + newBoundaryNumber, + 'General Head ' + this.getNewBoundaryNumber(type), linestring.toGeoJSON().geometry, this.getStartDate() ); @@ -423,13 +414,12 @@ class BackgroundMap extends Component { } if (type === 'rch') { - const newBoundaryNumber = this.getNewBoundaryNumber(type); - const id = type + '-' + newBoundaryNumber; + const id = uuid.v4(); const polygon = e.layer; const boundary = getBoundaryDefaults( type, id, - 'Recharge ' + newBoundaryNumber, + 'Recharge ' + this.getNewBoundaryNumber(type), polygon.toGeoJSON().geometry, this.getStartDate() ); @@ -440,13 +430,12 @@ class BackgroundMap extends Component { } if (type === 'riv') { - const newBoundaryNumber = this.getNewBoundaryNumber(type); - const id = type + '-' + newBoundaryNumber; + const id = uuid.v4(); const linestring = e.layer; const boundary = getBoundaryDefaults( type, id, - 'River ' + newBoundaryNumber, + 'River ' + this.getNewBoundaryNumber(type), linestring.toGeoJSON().geometry, this.getStartDate() ); @@ -457,13 +446,12 @@ class BackgroundMap extends Component { } if (type === 'wel') { - const newBoundaryNumber = this.getNewBoundaryNumber(type); - const id = type + '-' + newBoundaryNumber; + const id = uuid.v4(); const point = e.layer; const boundary = getBoundaryDefaults( type, id, - 'Well ' + newBoundaryNumber, + 'Well ' + this.getNewBoundaryNumber(type), point.toGeoJSON().geometry, this.getStartDate() ); @@ -496,7 +484,7 @@ class BackgroundMap extends Component { const {hash} = this.props.location; const {params} = this.props; - if (hash !== '#create') { + if (hash.toString() !== '#create') { return null; } @@ -618,7 +606,7 @@ class BackgroundMap extends Component { const {hash} = this.props.location; const {params} = this.props; - if (hash === '#edit') { + if (hash.toString() === '#edit') { if (params.id && !params.property && !params.type && !params.pid) { return {property: 'area', type: 'area', id: 'area'}; } @@ -637,7 +625,7 @@ class BackgroundMap extends Component { } } - if (hash === '#edit-op') { + if (hash.toString() === '#edit-op') { if ( params.id && params.property === 'boundaries' && @@ -775,7 +763,7 @@ class BackgroundMap extends Component { {geometry} - {activeCells} +
    {activeCells}
    ); @@ -963,9 +951,15 @@ const mapDispatchToProps = (dispatch, {tool}) => { return wrappedActions; }; -// eslint-disable-next-line no-class-assign -BackgroundMap = withRouter( - connect(mapStateToProps, mapDispatchToProps)(BackgroundMap) -); +BackgroundMap.propTypes = { + addBoundary: PropTypes.func, + location: PropTypes.object, + model: PropTypes.object, + params: PropTypes.object, + routes: PropTypes.array, + setBoundaryGeometry: PropTypes.func, + setModelArea: PropTypes.func, + tool: PropTypes.string +}; -export default BackgroundMap; +export default withRouter(connect(mapStateToProps, mapDispatchToProps)(BackgroundMap)); diff --git a/src/t03/containers/boundary.js b/src/t03/containers/boundary.js index d68a382a..72bf43a3 100644 --- a/src/t03/containers/boundary.js +++ b/src/t03/containers/boundary.js @@ -33,7 +33,6 @@ class BoundariesOverview extends React.PureComponent { render() { const { - tool, boundaries, property, type, diff --git a/src/t03/containers/main.jsx b/src/t03/containers/main.jsx index 74b8395a..c48ff047 100644 --- a/src/t03/containers/main.jsx +++ b/src/t03/containers/main.jsx @@ -42,7 +42,13 @@ const styles = { class T03 extends React.Component { state = { - navigation: [] + navigation: [ + { + name: 'Documentation', + path: 'https://inowas.hydro.tu-dresden.de/tools/t03-modflow-model-setup-and-editor/', + icon: + } + ] }; componentWillMount() { diff --git a/src/t03/containers/modelEditorBoundary.jsx b/src/t03/containers/modelEditorBoundary.jsx index 8da98ad8..9a5e34c0 100644 --- a/src/t03/containers/modelEditorBoundary.jsx +++ b/src/t03/containers/modelEditorBoundary.jsx @@ -1,15 +1,9 @@ import * as lodash from 'lodash'; -import { - ConstantHeadProperties, - GeneralHeadProperties, - RechargeProperties, - BoundaryProperties, - WellProperties -} from '../components'; +import {BoundaryProperties} from '../components'; import React from 'react'; -import {browserHistory, withRouter} from 'react-router'; -import {first} from 'lodash'; +import PropTypes from 'prop-types'; +import {withRouter} from 'react-router'; import {Action} from '../actions/index'; import {BoundaryOverview} from '../../t03/containers/index'; @@ -21,11 +15,9 @@ import ConfiguredRadium from 'ConfiguredRadium'; import FilterableList from '../../components/primitive/FilterableList'; import Icon from '../../components/primitive/Icon'; import Input from '../../components/primitive/Input'; -import PropTypes from 'prop-types'; import {connect} from 'react-redux'; import {makeMapStateToPropsBoundaries} from '../selectors/mapState'; import styleGlobals from 'styleGlobals'; -import {getBoundaryDefaults} from "../selectors/boundary"; const styles = { container: { @@ -66,7 +58,7 @@ class ModelEditorBoundary extends React.Component { } handleSearchTerm = value => { - this.setState(function(prevState, props) { + this.setState(function(prevState) { return { ...prevState, searchTerm: value @@ -74,33 +66,13 @@ class ModelEditorBoundary extends React.Component { }); }; - createBoundary = data => { - const {id} = this.props.params; - this.props.createBoundary(id, data); - }; - updateBoundary = data => { const {id} = this.props.params; this.props.updateBoundary(id, data); }; - getNewBoundaryNumber = type => { - let i = 1; - while (i < 100000) { - // eslint-disable-next-line no-loop-func - if (this.props.model.boundaries.filter(b => { - return (b.id === (type + '-' + i)); - }).length === 0) { - return i; - } - i++; - } - - return null; - }; - renderProperties(boundaries) { - const {permissions, removeBoundary, mapStyles, setBoundary, updateBoundaryStatus, soilmodelLayers, model} = this.props; + const {permissions, removeBoundary, updateBoundaryStatus, model} = this.props; const readOnly = !lodash.includes(permissions, 'w'); @@ -169,10 +141,6 @@ class ModelEditorBoundary extends React.Component { }; render() { - - console.log(this.props); - - // eslint-disable-next-line no-shadow const {style, boundaries, boundaryType, params} = this.props; const {type} = params; @@ -251,16 +219,22 @@ const mapDispatchToProps = (dispatch, {tool}) => { }; ModelEditorBoundary.propTypes = { + boundaries: PropTypes.array.isRequired, + boundaryType: PropTypes.string, + createBoundary: PropTypes.func.isRequired, model: PropTypes.object.isRequired, + params: PropTypes.object.isRequired, + permissions: PropTypes.string.isRequired, + removeBoundary: PropTypes.func.isRequired, + routes: PropTypes.array.isRequired, + updateBoundary: PropTypes.func.isRequired, + updateBoundaryStatus: PropTypes.object.isRequired, + style: PropTypes.object, tool: PropTypes.string.isRequired, - updateBoundaryStatus: PropTypes.object, }; -// eslint-disable-next-line no-class-assign -ModelEditorBoundary = withRouter( +export default withRouter( connect(makeMapStateToPropsBoundaries, mapDispatchToProps)( ModelEditorBoundary ) ); - -export default ModelEditorBoundary; diff --git a/src/t03/containers/modelEditorGeneral.jsx b/src/t03/containers/modelEditorGeneral.jsx index 8d8c6d5f..568ce394 100644 --- a/src/t03/containers/modelEditorGeneral.jsx +++ b/src/t03/containers/modelEditorGeneral.jsx @@ -1,16 +1,12 @@ import React, {Component} from 'react'; import PropTypes from 'prop-types'; -import {Query, Command, Routing} from '../actions/index'; +import {Query, Command} from '../actions/index'; import {model as modelSelector, general} from '../selectors/index'; import ConfiguredRadium from 'ConfiguredRadium'; import {connect} from 'react-redux'; import styleGlobals from 'styleGlobals'; -import {browserHistory, withRouter} from 'react-router'; -import { - getErrorMessage, - hasError, - isLoading -} from '../../core/webData/selectors/webData'; +import {withRouter} from 'react-router'; +import {getErrorMessage, hasError, isLoading} from '../../core/webData/selectors/webData'; import {WebData, LayoutComponents} from '../../core'; import uuid from 'uuid'; import {GeneralMap} from '../components'; @@ -21,7 +17,7 @@ import Select from '../../components/primitive/Select'; import TimeUnit from '../../model/TimeUnit'; import LengthUnit from '../../model/LengthUnit'; import {handleUpdateBoundingBox} from '../reducers/boundary'; -import {calculateActiveCells} from "../../core/geospatial"; +import {calculateActiveCells, getGridCellSizeInMeters} from '../../core/geospatial'; const styles = { columnContainer: { @@ -140,19 +136,12 @@ class ModelEditorGeneral extends Component { }; } - editAreaOnMap = () => { - browserHistory.push(this.props.location.pathname + '#edit'); - }; - - createAreaOnMap = () => { - Routing.createArea(this.props.routes, this.props.params)(); - }; - handleAreaUpdate = (geometry, bounds) => { const boundingBox = handleUpdateBoundingBox(this.state.bounding_box, bounds); const gridSize = this.state.model.grid_size; this.setState({ - model: {...this.state.model, + model: { + ...this.state.model, geometry, bounding_box: boundingBox, active_cells: calculateActiveCells(geometry, boundingBox, gridSize) @@ -240,13 +229,11 @@ class ModelEditorGeneral extends Component { /> - + - + + + + + + - +
    { }; const actions = { - sendQuery, + sendQuery: WebData.Modifier.Action.sendQuery, createScenarioAnalysis: T07.Command.createScenarioAnalysis, }; diff --git a/src/t03/reducers/index.js b/src/t03/reducers/index.js index da2b046f..dc7ff626 100644 --- a/src/t03/reducers/index.js +++ b/src/t03/reducers/index.js @@ -1,7 +1,5 @@ import createModelReducer from './model'; -import * as boundary from './boundary'; export { - createModelReducer, - boundary, + createModelReducer }; diff --git a/src/t03/reducers/model.js b/src/t03/reducers/model.js index 00533b6d..84f82999 100644 --- a/src/t03/reducers/model.js +++ b/src/t03/reducers/model.js @@ -5,7 +5,7 @@ import { handleUpdateBoundingBox, handleUpdateLayer, handleRemoveLayer, handleAddLayer } from './boundary'; import { Action, Event } from '../actions/index'; -import { calcBoundsOfPolygon } from '../../calculations/geoTools'; +import { calcBoundsOfPolygon } from '../../core/geospatial'; import { model } from '../selectors/index'; const createModelReducer = tool => { diff --git a/src/t03/sagas/addBoundary.js b/src/t03/sagas/addBoundary.js index 20994e88..25ce7d6e 100644 --- a/src/t03/sagas/addBoundary.js +++ b/src/t03/sagas/addBoundary.js @@ -1,28 +1,26 @@ import {put, take} from 'redux-saga/effects'; -import { sendCommand } from '../../actions/messageBox'; import {Command, Action, Event} from '../../t03/actions/index'; import {WebData} from '../../core'; export default function* addBoundaryFlow() { // eslint-disable-next-line no-constant-condition - while ( true ) { + while (true) { // eslint-disable-next-line no-shadow - const command = yield take( action => action.type === Command.ADD_BOUNDARY ); - yield put( Action.addBoundary( command.tool, command.payload.boundary ) ); - - yield put( sendCommand( command.type, command.payload ) ); + const command = yield take(action => action.type === Command.ADD_BOUNDARY); + yield put(Action.addBoundary(command.tool, command.payload.boundary)); + yield put(WebData.Modifier.Action.sendCommand(command.type, command.payload)); // eslint-disable-next-line no-constant-condition - while ( true ) { + while (true) { // eslint-disable-next-line no-shadow - const response = yield take( action => WebData.Helpers.waitForResponse( action, Command.ADD_BOUNDARY ) ); + const response = yield take(action => WebData.Helpers.waitForResponse(action, Command.ADD_BOUNDARY)); - if ( response.webData.type === 'error' ) { + if (response.webData.type === 'error') { break; } - if ( response.webData.type === 'success' ) { - yield put( Event.boundaryAdded( command.tool, command.payload.boundary ) ); + if (response.webData.type === 'success') { + yield put(Event.boundaryAdded(command.tool, command.payload.boundary)); break; } } diff --git a/src/t03/sagas/addLayer.js b/src/t03/sagas/addLayer.js index f42d3799..1749f04a 100644 --- a/src/t03/sagas/addLayer.js +++ b/src/t03/sagas/addLayer.js @@ -1,23 +1,21 @@ -import { put, take } from 'redux-saga/effects'; -import { sendCommand } from '../../actions/messageBox'; -import { Command, Event } from '../../t03/actions/index'; -import { WebData } from '../../core'; -import { Routing } from '../actions'; -import { push } from 'react-router-redux'; +import {put, take} from 'redux-saga/effects'; +import {Command, Event, Routing} from '../../t03/actions/index'; +import {WebData} from '../../core'; +import {push} from 'react-router-redux'; export default function* addLayerFlow() { // eslint-disable-next-line no-constant-condition while (true) { // eslint-disable-next-line no-shadow - const action = yield take( action => action.type === Command.ADD_LAYER ); + const action = yield take(action => action.type === Command.ADD_LAYER); - yield put( sendCommand( action.type, action.payload ) ); + yield put(WebData.Modifier.Action.sendCommand(action.type, action.payload)); // eslint-disable-next-line no-constant-condition while (true) { // eslint-disable-next-line no-shadow - const response = yield take( action => - WebData.Helpers.waitForResponse( action, Command.ADD_LAYER ) + const response = yield take(action => + WebData.Helpers.waitForResponse(action, Command.ADD_LAYER) ); if (response.webData.type === 'error') { @@ -25,10 +23,10 @@ export default function* addLayerFlow() { } if (response.webData.type === 'success') { - yield put( Event.layerAdded( action.tool, action.payload.layer ) ); + yield put(Event.layerAdded(action.tool, action.payload.layer)); yield put( push( - Routing.editLayerUrl( action.routes, action.params )( action.payload.layer.id ) + Routing.editLayerUrl(action.routes, action.params)(action.payload.layer.id) ) ); break; diff --git a/src/t03/sagas/calculateModflowModel.js b/src/t03/sagas/calculateModflowModel.js index 5430bcc9..ef514781 100644 --- a/src/t03/sagas/calculateModflowModel.js +++ b/src/t03/sagas/calculateModflowModel.js @@ -1,29 +1,28 @@ -import { put, take, call, select } from 'redux-saga/effects'; -import { buildRequest } from '../../actions/messageBox'; -import { getApiKey } from '../../reducers/user'; -import { Command, Query, Action } from '../../t03/actions/index'; -import { WebData } from '../../core'; +import {put, take, call, select} from 'redux-saga/effects'; +import {getApiKey} from '../../user/reducers'; +import {Command, Query, Action} from '../../t03/actions/index'; +import {WebData} from '../../core'; export default function* calculateModflowModelFlow() { // eslint-disable-next-line no-constant-condition while (true) { // eslint-disable-next-line no-shadow - const action = yield take( action => WebData.Helpers.waitForAction( action, Command.CALCULATE_MODFLOW_MODEL ) ); + const action = yield take(action => WebData.Helpers.waitForAction(action, Command.CALCULATE_MODFLOW_MODEL)); - yield put( WebData.Modifier.Action.responseAction( Command.CALCULATE_MODFLOW_MODEL, { + yield put(WebData.Modifier.Action.responseAction(Command.CALCULATE_MODFLOW_MODEL, { type: 'loading', data: null - } ) ); + })); try { const state = yield select(); - const apiKey = getApiKey( state.user ); + const apiKey = getApiKey(state.session); yield put( Action.setCalculation( action.tool, { - ...state[ action.tool ].calculation, + ...state[action.tool].calculation, state: 0, files: [], message: '', @@ -33,25 +32,25 @@ export default function* calculateModflowModelFlow() { yield call( WebData.Helpers.fetchStatusWrapper, - buildRequest( 'messagebox', 'POST', JSON.stringify( { + WebData.Modifier.Action.buildRequest('messagebox', 'POST', JSON.stringify({ metadata: [], message_name: action.type, payload: action.payload, - } ) ), + })), apiKey ); - yield put( Query.getModflowModelCalculation( action.tool, action.id ) ); + yield put(Query.getModflowModelCalculation(action.tool, action.id)); } catch (err) { let msg = 'Unknown Error'; if (typeof err === 'string') { msg = err; } else { - const error = err.error || { message: undefined }; + const error = err.error || {message: undefined}; msg = error.message || msg; } - yield put( WebData.Modifier.Action.responseAction( action.type, { type: 'error', msg: msg } ) ); + yield put(WebData.Modifier.Action.responseAction(action.type, {type: 'error', msg: msg})); } } } diff --git a/src/t03/sagas/calculateSressPeriods.js b/src/t03/sagas/calculateSressPeriods.js index 5aa39e75..d34c2265 100644 --- a/src/t03/sagas/calculateSressPeriods.js +++ b/src/t03/sagas/calculateSressPeriods.js @@ -1,28 +1,26 @@ -import { put, take } from 'redux-saga/effects'; -import { sendCommand } from '../../actions/messageBox'; -import { Command, Event, Query } from '../../t03/actions/index'; -import { WebData } from '../../core'; +import {put, take} from 'redux-saga/effects'; +import {Command, Event, Query} from '../../t03/actions/index'; +import {WebData} from '../../core'; export default function* calculateStressPeriodsFlow() { // eslint-disable-next-line no-constant-condition while (true) { // eslint-disable-next-line no-shadow - const action = yield take( action => WebData.Helpers.waitForAction( action, Command.CALCULATE_STRESS_PERIODS ) ); - - yield put( sendCommand( action.type, action.payload ) ); + const action = yield take(action => WebData.Helpers.waitForAction(action, Command.CALCULATE_STRESS_PERIODS)); + yield put(WebData.Modifier.Action.sendCommand(action.type, action.payload)); // eslint-disable-next-line no-constant-condition while (true) { // eslint-disable-next-line no-shadow - const response = yield take( action => WebData.Helpers.waitForResponse( action, Command.CALCULATE_STRESS_PERIODS ) ); + const response = yield take(action => WebData.Helpers.waitForResponse(action, Command.CALCULATE_STRESS_PERIODS)); if (response.webData.type === 'error') { break; } if (response.webData.type === 'success') { - yield put( Event.stressPeriodsCalculated( action.tool, action.payload ) ); - yield put( Query.getStressPeriods( action.tool, action.payload.id ) ); + yield put(Event.stressPeriodsCalculated(action.tool, action.payload)); + yield put(Query.getStressPeriods(action.tool, action.payload.id)); break; } } diff --git a/src/t03/sagas/cloneModflowModel.js b/src/t03/sagas/cloneModflowModel.js index 0c9682e4..4c761371 100644 --- a/src/t03/sagas/cloneModflowModel.js +++ b/src/t03/sagas/cloneModflowModel.js @@ -1,23 +1,20 @@ -import { put, select, take } from 'redux-saga/effects'; -import { sendCommand } from '../../actions/messageBox'; -import { Modifier } from '../../dashboard'; -import { Command, Event } from '../../t03/actions/index'; -import { Query } from '../../dashboard/actions/index'; -import { WebData } from '../../core'; -import { Selector } from '../../dashboard'; +import {put, select, take} from 'redux-saga/effects'; +import {Command, Event} from '../../t03/actions/index'; +import {Query} from '../../dashboard/actions/index'; +import {Modifier, Selector} from '../../dashboard'; +import {WebData} from '../../core'; export default function* cloneModflowModelFlow() { // eslint-disable-next-line no-constant-condition while (true) { // eslint-disable-next-line no-shadow - const action = yield take( action => WebData.Helpers.waitForAction( action, Command.CLONE_MODFLOW_MODEL ) ); - - yield put( sendCommand( action.type, action.payload ) ); + const action = yield take(action => WebData.Helpers.waitForAction(action, Command.CLONE_MODFLOW_MODEL)); + yield put(WebData.Modifier.Action.sendCommand(action.type, action.payload)); // eslint-disable-next-line no-constant-condition while (true) { // eslint-disable-next-line no-shadow - const response = yield take( action => WebData.Helpers.waitForResponse( action, Command.CLONE_MODFLOW_MODEL ) ); + const response = yield take(action => WebData.Helpers.waitForResponse(action, Command.CLONE_MODFLOW_MODEL)); if (response.webData.type === 'error') { break; @@ -27,7 +24,7 @@ export default function* cloneModflowModelFlow() { const state = yield select(); const publicInstances = Selector.ui.getPublic(state.dashboard.ui); - yield put( Event.modflowModelCloned( action.tool, action.id, action.payload.id ) ); + yield put(Event.modflowModelCloned(action.tool, action.id, action.payload.id)); if (publicInstances === false) { yield put(Query.loadInstances(action.tool, publicInstances)); diff --git a/src/t03/sagas/createModel.js b/src/t03/sagas/createModel.js index 86aba82e..b22dc1f6 100644 --- a/src/t03/sagas/createModel.js +++ b/src/t03/sagas/createModel.js @@ -1,35 +1,35 @@ -import {put, call, take} from 'redux-saga/effects'; -import {sendCommand, stateToCreatePayload} from '../../actions/messageBox'; +import {put, take} from 'redux-saga/effects'; +import {sendCommand, stateToCreatePayload} from '../../../src/core/webData/actions/actions'; import {Command, Event} from '../../t03/actions/index'; import {WebData} from '../../core'; -import { Routing } from '../actions'; -import { push } from 'react-router-redux'; +import {Routing} from '../actions'; +import {push} from 'react-router-redux'; export default function* createModelFlow() { // eslint-disable-next-line no-constant-condition - while ( true ) { + while (true) { // eslint-disable-next-line no-shadow - const action = yield take( action => action.type === Command.CREATE_MODFLOW_MODEL ); + const action = yield take(action => action.type === Command.CREATE_MODFLOW_MODEL); const payload = stateToCreatePayload(action.payload); payload.id = action.id; - yield put( sendCommand( action.type, payload ) ); + yield put(sendCommand(action.type, payload)); // eslint-disable-next-line no-constant-condition - while ( true ) { + while (true) { // eslint-disable-next-line no-shadow - const response = yield take( action => WebData.Helpers.waitForResponse(action, Command.CREATE_MODFLOW_MODEL ) ); + const response = yield take(action => WebData.Helpers.waitForResponse(action, Command.CREATE_MODFLOW_MODEL)); - if ( response.webData.type === 'error' ) { + if (response.webData.type === 'error') { break; } - if ( response.webData.type === 'success' ) { + if (response.webData.type === 'success') { yield put(Event.modflowModelCreated(action.tool, action.id, action.payload)); yield put( push( - Routing.editModflowModelUrl( action.routes, action.params )( action.id ) + Routing.editModflowModelUrl(action.routes, action.params)(action.id) ) ); break; diff --git a/src/t03/sagas/deleteModlfowModel.js b/src/t03/sagas/deleteModlfowModel.js index fe625e7d..a923ae8b 100644 --- a/src/t03/sagas/deleteModlfowModel.js +++ b/src/t03/sagas/deleteModlfowModel.js @@ -1,5 +1,4 @@ import { put, take } from 'redux-saga/effects'; -import { sendCommand } from '../../actions/messageBox'; import { Command, Event } from '../../t03/actions/index'; import { WebData } from '../../core'; @@ -8,8 +7,7 @@ export default function* deleteModlfowModelFlow() { while (true) { // eslint-disable-next-line no-shadow const action = yield take( action => action.type === Command.DELETE_MODFLOW_MODEL ); - - yield put( sendCommand( action.type, action.payload ) ); + yield put( WebData.Modifier.Action.sendCommand( action.type, action.payload ) ); // eslint-disable-next-line no-constant-condition while (true) { diff --git a/src/t03/sagas/getModflowModelDetails.js b/src/t03/sagas/getModflowModelDetails.js index 9a46daac..8abb2b79 100644 --- a/src/t03/sagas/getModflowModelDetails.js +++ b/src/t03/sagas/getModflowModelDetails.js @@ -1,24 +1,23 @@ import {put, call, take, select, all} from 'redux-saga/effects'; -import {buildRequest, payloadToSetModel} from '../../actions/messageBox'; import {Query, Action} from '../../t03/actions/index'; -import {getApiKey} from '../../reducers/user'; +import {getApiKey} from '../../user/reducers'; +import {buildRequest, payloadToSetModel} from '../../core/webData/actions/actions'; import {WebData} from '../../core'; export default function* getModflowDetailsFlow() { // eslint-disable-next-line no-constant-condition - while ( true ) { + while (true) { // eslint-disable-next-line no-shadow - const action = yield take( Query.GET_MODFLOW_MODEL_DETAILS ); - + const action = yield take(Query.GET_MODFLOW_MODEL_DETAILS); const state = yield select(); - const apiKey = getApiKey( state.user ); + const apiKey = getApiKey(state.session); const storedModel = (state[action.tool].model); try { - yield put( WebData.Modifier.Action.responseAction( action.type, { type: 'loading' } ) ); + yield put(WebData.Modifier.Action.responseAction(action.type, {type: 'loading'})); if (storedModel.id !== action.id) { - yield put( Action.stopGetModflowModelCalculation( action.tool, storedModel.id ) ); + yield put(Action.stopGetModflowModelCalculation(action.tool, storedModel.id)); const [model, boundaries, results, soilmodel, calculation] = yield all([ call(WebData.Helpers.fetchStatusWrapper, buildRequest('modflowmodels/' + action.id, 'GET'), apiKey), @@ -28,40 +27,40 @@ export default function* getModflowDetailsFlow() { call(WebData.Helpers.fetchStatusWrapper, buildRequest('modflowmodels/' + action.id + '/calculation', 'GET'), apiKey), ]); - yield put( Action.setModflowModel( action.tool, payloadToSetModel( model ) ) ); - yield put( Action.setBoundaries( action.tool, boundaries ) ); - yield put( Action.setResults( action.tool, results ) ); - yield put( Action.setSoilmodel( action.tool, soilmodel ) ); - yield put( Action.setCalculation( action.tool, calculation ) ); + yield put(Action.setModflowModel(action.tool, payloadToSetModel(model))); + yield put(Action.setBoundaries(action.tool, boundaries)); + yield put(Action.setResults(action.tool, results)); + yield put(Action.setSoilmodel(action.tool, soilmodel)); + yield put(Action.setCalculation(action.tool, calculation)); } if (action.property === 'boundaries' && action.pId) { - const boundary = yield call(WebData.Helpers.fetchStatusWrapper, buildRequest( 'modflowmodels/' + action.id + '/boundaries/' + action.pId, 'GET' ), apiKey); - yield put( Action.setBoundary( action.tool, boundary ) ); + const boundary = yield call(WebData.Helpers.fetchStatusWrapper, buildRequest('modflowmodels/' + action.id + '/boundaries/' + action.pId, 'GET'), apiKey); + yield put(Action.setBoundary(action.tool, boundary)); } if (action.property === 'soilmodel' && action.pId) { - const layer = yield call(WebData.Helpers.fetchStatusWrapper, buildRequest( 'modflowmodels/' + action.id + '/soilmodel/' + action.pId, 'GET' ), apiKey); - yield put( Action.setLayer( action.tool, layer ) ); + const layer = yield call(WebData.Helpers.fetchStatusWrapper, buildRequest('modflowmodels/' + action.id + '/soilmodel/' + action.pId, 'GET'), apiKey); + yield put(Action.setLayer(action.tool, layer)); } if ((action.property === 'model-run' && action.pType === 'times') || (action.property === 'model-run' && !action.pType)) { - const stressperiods = yield call(WebData.Helpers.fetchStatusWrapper, buildRequest( 'modflowmodels/' + action.id + '/stressperiods', 'GET' ), apiKey); - yield put( Action.setStressPeriods( action.tool, stressperiods ) ); + const stressperiods = yield call(WebData.Helpers.fetchStatusWrapper, buildRequest('modflowmodels/' + action.id + '/stressperiods', 'GET'), apiKey); + yield put(Action.setStressPeriods(action.tool, stressperiods)); } - yield put( WebData.Modifier.Action.responseAction( action.type, { type: 'success', data: null } ) ); - } catch ( err ) { + yield put(WebData.Modifier.Action.responseAction(action.type, {type: 'success', data: null})); + } catch (err) { let msg = 'Unknown Error'; - if ( typeof err === 'string' ) { + if (typeof err === 'string') { msg = err; } else { - const error = err.error || { message: undefined }; + const error = err.error || {message: undefined}; msg = error.message || msg; } - yield put( WebData.Modifier.Action.responseAction( action.type, { type: 'error', msg: msg } ) ); + yield put(WebData.Modifier.Action.responseAction(action.type, {type: 'error', msg: msg})); } } } diff --git a/src/t03/sagas/loadBoundary.js b/src/t03/sagas/loadBoundary.js index 3991abcc..6ab1d2d1 100644 --- a/src/t03/sagas/loadBoundary.js +++ b/src/t03/sagas/loadBoundary.js @@ -1,42 +1,40 @@ import {put, call, take, select} from 'redux-saga/effects'; -import {buildRequest} from '../../actions/messageBox'; import {Query, Action} from '../../t03/actions/index'; -import {getApiKey} from '../../reducers/user'; +import {getApiKey} from '../../user/reducers'; import {WebData} from '../../core'; export default function* loadBoundaryFlow() { // eslint-disable-next-line no-constant-condition - while ( true ) { + while (true) { // eslint-disable-next-line no-shadow - const action = yield take( action => action.type === Query.GET_BOUNDARY ); + const action = yield take(action => action.type === Query.GET_BOUNDARY); - yield put( WebData.Modifier.Action.responseAction( action.type, { type: 'loading' } ) ); + yield put(WebData.Modifier.Action.responseAction(action.type, {type: 'loading'})); yield put(Action.destroyModflowModel(action.tool)); - const state = yield select(); - const apiKey = getApiKey( state.user ); + const apiKey = getApiKey(state.session); try { const boundary = yield call( WebData.Helpers.fetchStatusWrapper, - buildRequest( 'modflowmodels/' + action.id + '/boundaries/' + action.bid, 'GET' ), + WebData.Modifier.Action.buildRequest('modflowmodels/' + action.id + '/boundaries/' + action.bid, 'GET'), apiKey ); - yield put( Action.setBoundary( action.tool, action.bid, boundary ) ); + yield put(Action.setBoundary(action.tool, action.bid, boundary)); yield put(WebData.Modifier.Action.responseAction(action.type, {type: 'success', data: null})); - } catch ( err ) { + } catch (err) { let msg = 'Unknown Error'; - if ( typeof err === 'string' ) { + if (typeof err === 'string') { msg = err; } else { - const error = err.error || { message: undefined }; + const error = err.error || {message: undefined}; msg = error.message || msg; } - yield put( WebData.Modifier.Action.responseAction( action.type, { type: 'error', msg: msg } ) ); + yield put(WebData.Modifier.Action.responseAction(action.type, {type: 'error', msg: msg})); } } } diff --git a/src/t03/sagas/loadListfile.js b/src/t03/sagas/loadListfile.js index d86e1427..0a6fdc09 100644 --- a/src/t03/sagas/loadListfile.js +++ b/src/t03/sagas/loadListfile.js @@ -1,24 +1,23 @@ -import { put, call, take, select } from 'redux-saga/effects'; -import { buildRequest } from '../../actions/messageBox'; -import { Query, Action } from '../../t03/actions/index'; -import { getApiKey } from '../../reducers/user'; -import { WebData } from '../../core'; +import {put, call, take, select} from 'redux-saga/effects'; +import {Query} from '../../t03/actions/index'; +import {getApiKey} from '../../user/reducers'; +import {WebData} from '../../core'; export default function* loadListfileFlow() { // eslint-disable-next-line no-constant-condition while (true) { // eslint-disable-next-line no-shadow - const action = yield take( action => WebData.Helpers.waitForAction( action, Query.GET_LISTFILE ) ); + const action = yield take(action => WebData.Helpers.waitForAction(action, Query.GET_LISTFILE)); - yield put( WebData.Modifier.Action.responseAction( action.type, { type: 'loading' } ) ); + yield put(WebData.Modifier.Action.responseAction(action.type, {type: 'loading'})); const state = yield select(); - const apiKey = getApiKey( state.user ); + const apiKey = getApiKey(state.session); try { const data = yield call( WebData.Helpers.fetchStatusWrapper, - buildRequest( 'calculations/' + action.id + '/file/list', 'GET' ), + WebData.Modifier.Action.buildRequest('calculations/' + action.id + '/file/list', 'GET'), apiKey ); @@ -29,11 +28,11 @@ export default function* loadListfileFlow() { if (typeof err === 'string') { msg = err; } else { - const error = err.error || { message: undefined }; + const error = err.error || {message: undefined}; msg = error.message || msg; } - yield put( WebData.Modifier.Action.responseAction( action.type, { type: 'error', msg: msg } ) ); + yield put(WebData.Modifier.Action.responseAction(action.type, {type: 'error', msg: msg})); } } } diff --git a/src/t03/sagas/loadModel.js b/src/t03/sagas/loadModel.js index 8ab2a562..9e90babf 100644 --- a/src/t03/sagas/loadModel.js +++ b/src/t03/sagas/loadModel.js @@ -1,45 +1,52 @@ import {put, call, take, select} from 'redux-saga/effects'; -import {buildRequest, payloadToSetModel} from '../../actions/messageBox'; import {Query, Action} from '../../t03/actions/index'; -import {getApiKey} from '../../reducers/user'; +import {getApiKey} from '../../user/reducers'; import {WebData} from '../../core'; export default function* loadModelFlow() { // eslint-disable-next-line no-constant-condition - while ( true ) { + while (true) { // eslint-disable-next-line no-shadow - const action = yield take( action => action.type === Query.GET_MODFLOW_MODEL ); + const action = yield take(action => action.type === Query.GET_MODFLOW_MODEL); - yield put( WebData.Modifier.Action.responseAction( action.type, { type: 'loading' } ) ); + yield put(WebData.Modifier.Action.responseAction(action.type, {type: 'loading'})); const state = yield select(); - const apiKey = getApiKey( state.user ); + const apiKey = getApiKey(state.session); const storedModel = (state[action.tool].model); try { if (storedModel.id !== action.id) { yield put(Action.destroyModflowModel()); - const model = yield call(WebData.Helpers.fetchStatusWrapper, buildRequest( 'modflowmodels/' + action.id, 'GET' ), apiKey); - yield put( Action.setModflowModel( action.tool, payloadToSetModel( model ) ) ); - yield put( WebData.Modifier.Action.responseAction( action.type, { type: 'success', data: null } ) ); + const model = yield call( + WebData.Helpers.fetchStatusWrapper, + WebData.Modifier.Action.buildRequest('modflowmodels/' + action.id, 'GET'), + apiKey + ); + yield put(Action.setModflowModel(action.tool, WebData.Modifier.Action.payloadToSetModel(model))); + yield put(WebData.Modifier.Action.responseAction(action.type, {type: 'success', data: null})); } if (storedModel.boundaries.length === 0) { - const boundaries = yield call(WebData.Helpers.fetchStatusWrapper, buildRequest('modflowmodels/' + action.id + '/boundaries', 'GET'), apiKey); + const boundaries = yield call( + WebData.Helpers.fetchStatusWrapper, + WebData.Modifier.Action.buildRequest('modflowmodels/' + action.id + '/boundaries', 'GET'), + apiKey + ); yield put(Action.setBoundaries(action.tool, boundaries)); yield put(WebData.Modifier.Action.responseAction(action.type, {type: 'success', data: null})); } - } catch ( err ) { + } catch (err) { let msg = 'Unknown Error'; - if ( typeof err === 'string' ) { + if (typeof err === 'string') { msg = err; } else { - const error = err.error || { message: undefined }; + const error = err.error || {message: undefined}; msg = error.message || msg; } - yield put( WebData.Modifier.Action.responseAction( action.type, { type: 'error', msg: msg } ) ); + yield put(WebData.Modifier.Action.responseAction(action.type, {type: 'error', msg: msg})); } } } diff --git a/src/t03/sagas/loadModflowPackage.js b/src/t03/sagas/loadModflowPackage.js index 35d5c683..bf7f9211 100644 --- a/src/t03/sagas/loadModflowPackage.js +++ b/src/t03/sagas/loadModflowPackage.js @@ -1,41 +1,40 @@ -import { call, put, select, take } from 'redux-saga/effects'; -import { buildRequest } from '../../actions/messageBox'; -import { Query } from '../../t03/actions/index'; -import { WebData } from '../../core'; -import { Action } from '../actions'; -import { getApiKey } from '../../reducers/user'; +import {call, put, select, take} from 'redux-saga/effects'; +import {Query} from '../../t03/actions/index'; +import {WebData} from '../../core'; +import {Action} from '../actions'; +import {getApiKey} from '../../user/reducers'; export default function* loadModflowPackage() { // eslint-disable-next-line no-constant-condition while (true) { // eslint-disable-next-line no-shadow - const action = yield take( action => action.type === Query.GET_MODFLOW_PACKAGE ); + const action = yield take(action => action.type === Query.GET_MODFLOW_PACKAGE); - yield put( WebData.Modifier.Action.responseAction( action.type, { type: 'loading' } ) ); + yield put(WebData.Modifier.Action.responseAction(action.type, {type: 'loading'})); const state = yield select(); - const apiKey = getApiKey( state.user ); + const apiKey = getApiKey(state.session); try { const packageData = yield call( WebData.Helpers.fetchStatusWrapper, - buildRequest( `modflowmodels/${action.id}/packages/${action.packageId}`, 'GET' ), + WebData.Modifier.Action.buildRequest(`modflowmodels/${action.id}/packages/${action.packageId}`, 'GET'), apiKey ); - yield put( Action.setModflowPackage( action.tool, action.packageId, action.packageType, packageData ) ); + yield put(Action.setModflowPackage(action.tool, action.packageId, action.packageType, packageData)); yield put(WebData.Modifier.Action.responseAction(action.type, {type: 'success', data: null})); - } catch ( err ) { + } catch (err) { let msg = 'Unknown Error'; - if ( typeof err === 'string' ) { + if (typeof err === 'string') { msg = err; } else { - const error = err.error || { message: undefined }; + const error = err.error || {message: undefined}; msg = error.message || msg; } - yield put( WebData.Modifier.Action.responseAction( action.type, { type: 'error', msg: msg } ) ); + yield put(WebData.Modifier.Action.responseAction(action.type, {type: 'error', msg: msg})); } } } diff --git a/src/t03/sagas/loadModflowPackages.js b/src/t03/sagas/loadModflowPackages.js index 03d1b903..4f07b255 100644 --- a/src/t03/sagas/loadModflowPackages.js +++ b/src/t03/sagas/loadModflowPackages.js @@ -1,41 +1,40 @@ -import { call, put, select, take } from 'redux-saga/effects'; -import { buildRequest } from '../../actions/messageBox'; -import { Query } from '../../t03/actions/index'; -import { WebData } from '../../core'; -import { Action } from '../actions'; -import { getApiKey } from '../../reducers/user'; +import {call, put, select, take} from 'redux-saga/effects'; +import {Query} from '../../t03/actions/index'; +import {WebData} from '../../core'; +import {Action} from '../actions'; +import {getApiKey} from '../../user/reducers'; export default function* loadModflowPackages() { // eslint-disable-next-line no-constant-condition while (true) { // eslint-disable-next-line no-shadow - const action = yield take( action => action.type === Query.GET_MODFLOW_PACKAGES ); + const action = yield take(action => action.type === Query.GET_MODFLOW_PACKAGES); - yield put( WebData.Modifier.Action.responseAction( action.type, { type: 'loading' } ) ); + yield put(WebData.Modifier.Action.responseAction(action.type, {type: 'loading'})); const state = yield select(); - const apiKey = getApiKey( state.user ); + const apiKey = getApiKey(state.session); try { const packages = yield call( WebData.Helpers.fetchStatusWrapper, - buildRequest( `modflowmodels/${action.id}/packages`, 'GET' ), + WebData.Modifier.Action.buildRequest(`modflowmodels/${action.id}/packages`, 'GET'), apiKey ); - yield put( Action.setModflowPackages( action.tool, packages ) ); + yield put(Action.setModflowPackages(action.tool, packages)); yield put(WebData.Modifier.Action.responseAction(action.type, {type: 'success', data: null})); - } catch ( err ) { + } catch (err) { let msg = 'Unknown Error'; - if ( typeof err === 'string' ) { + if (typeof err === 'string') { msg = err; } else { - const error = err.error || { message: undefined }; + const error = err.error || {message: undefined}; msg = error.message || msg; } - yield put( WebData.Modifier.Action.responseAction( action.type, { type: 'error', msg: msg } ) ); + yield put(WebData.Modifier.Action.responseAction(action.type, {type: 'error', msg: msg})); } } } diff --git a/src/t03/sagas/loadResults.js b/src/t03/sagas/loadResults.js index d6e6edaf..64f510ca 100644 --- a/src/t03/sagas/loadResults.js +++ b/src/t03/sagas/loadResults.js @@ -1,28 +1,27 @@ -import { put, call, take, select } from 'redux-saga/effects'; -import { buildRequest } from '../../actions/messageBox'; -import { Query, Action } from '../../t03/actions/index'; -import { getApiKey } from '../../reducers/user'; -import { WebData } from '../../core'; +import {put, call, take, select} from 'redux-saga/effects'; +import {Query, Action} from '../../t03/actions/index'; +import {getApiKey} from '../../user/reducers'; +import {WebData} from '../../core'; export default function* loadResultsFlow() { // eslint-disable-next-line no-constant-condition while (true) { // eslint-disable-next-line no-shadow - const action = yield take( action => WebData.Helpers.waitForAction( action, Query.GET_RESULTS ) ); + const action = yield take(action => WebData.Helpers.waitForAction(action, Query.GET_RESULTS)); - yield put( WebData.Modifier.Action.responseAction( action.type, { type: 'loading' } ) ); + yield put(WebData.Modifier.Action.responseAction(action.type, {type: 'loading'})); const state = yield select(); - const apiKey = getApiKey( state.user ); + const apiKey = getApiKey(state.session); try { const results = yield call( WebData.Helpers.fetchStatusWrapper, - buildRequest( 'modflowmodels/' + action.id + '/results', 'GET' ), + WebData.Modifier.Action.buildRequest('modflowmodels/' + action.id + '/results', 'GET'), apiKey ); - yield put( Action.setResults( action.tool, results ) ); + yield put(Action.setResults(action.tool, results)); yield put(WebData.Modifier.Action.responseAction(action.type, {type: 'success', data: null})); } catch (err) { let msg = 'Unknown Error'; @@ -30,11 +29,11 @@ export default function* loadResultsFlow() { if (typeof err === 'string') { msg = err; } else { - const error = err.error || { message: undefined }; + const error = err.error || {message: undefined}; msg = error.message || msg; } - yield put( WebData.Modifier.Action.responseAction( action.type, { type: 'error', msg: msg } ) ); + yield put(WebData.Modifier.Action.responseAction(action.type, {type: 'error', msg: msg})); } } } diff --git a/src/t03/sagas/loadSoilmodelLayer.js b/src/t03/sagas/loadSoilmodelLayer.js index a229a06c..e8fa4990 100644 --- a/src/t03/sagas/loadSoilmodelLayer.js +++ b/src/t03/sagas/loadSoilmodelLayer.js @@ -1,40 +1,39 @@ import {put, call, take, select} from 'redux-saga/effects'; -import {buildRequest} from '../../actions/messageBox'; import {Query, Action} from '../../t03/actions/index'; -import {getApiKey} from '../../reducers/user'; +import {getApiKey} from '../../user/reducers'; import {WebData} from '../../core'; export default function* loadSoilmodelLayerFlow() { // eslint-disable-next-line no-constant-condition - while ( true ) { + while (true) { // eslint-disable-next-line no-shadow - const action = yield take( action => action.type === Query.GET_SOILMODEL_LAYER ); + const action = yield take(action => action.type === Query.GET_SOILMODEL_LAYER); - yield put( WebData.Modifier.Action.responseAction( action.type, { type: 'loading' } ) ); + yield put(WebData.Modifier.Action.responseAction(action.type, {type: 'loading'})); const state = yield select(); - const apiKey = getApiKey( state.user ); + const apiKey = getApiKey(state.session); try { const layer = yield call( WebData.Helpers.fetchStatusWrapper, - buildRequest( 'modflowmodels/' + action.id + '/soilmodel/' + action.lid, 'GET' ), + WebData.Modifier.Action.buildRequest('modflowmodels/' + action.id + '/soilmodel/' + action.lid, 'GET'), apiKey ); - yield put( Action.setLayer( action.tool, action.lid, layer ) ); + yield put(Action.setLayer(action.tool, action.lid, layer)); yield put(WebData.Modifier.Action.responseAction(action.type, {type: 'success', data: null})); - } catch ( err ) { + } catch (err) { let msg = 'Unknown Error'; - if ( typeof err === 'string' ) { + if (typeof err === 'string') { msg = err; } else { - const error = err.error || { message: undefined }; + const error = err.error || {message: undefined}; msg = error.message || msg; } - yield put( WebData.Modifier.Action.responseAction( action.type, { type: 'error', msg: msg } ) ); + yield put(WebData.Modifier.Action.responseAction(action.type, {type: 'error', msg: msg})); } } } diff --git a/src/t03/sagas/loadStressPeriods.js b/src/t03/sagas/loadStressPeriods.js index 469e0f26..98e4f868 100644 --- a/src/t03/sagas/loadStressPeriods.js +++ b/src/t03/sagas/loadStressPeriods.js @@ -1,40 +1,39 @@ import {put, call, take, select} from 'redux-saga/effects'; -import {buildRequest} from '../../actions/messageBox'; import {Query, Action} from '../../t03/actions/index'; -import {getApiKey} from '../../reducers/user'; +import {getApiKey} from '../../user/reducers'; import {WebData} from '../../core'; export default function* loadStressPeriodsFlow() { // eslint-disable-next-line no-constant-condition - while ( true ) { + while (true) { // eslint-disable-next-line no-shadow - const action = yield take( action => WebData.Helpers.waitForAction(action, Query.GET_STRESS_PERIODS )); + const action = yield take(action => WebData.Helpers.waitForAction(action, Query.GET_STRESS_PERIODS)); - yield put( WebData.Modifier.Action.responseAction( action.type, { type: 'loading' } ) ); + yield put(WebData.Modifier.Action.responseAction(action.type, {type: 'loading'})); const state = yield select(); - const apiKey = getApiKey( state.user ); + const apiKey = getApiKey(state.session); try { const stressPeriods = yield call( WebData.Helpers.fetchStatusWrapper, - buildRequest( 'modflowmodels/' + action.id + '/stressperiods', 'GET' ), + WebData.Modifier.Action.buildRequest('modflowmodels/' + action.id + '/stressperiods', 'GET'), apiKey ); - yield put( Action.setStressPeriods( action.tool, stressPeriods ) ); + yield put(Action.setStressPeriods(action.tool, stressPeriods)); yield put(WebData.Modifier.Action.responseAction(action.type, {type: 'success', data: null})); - } catch ( err ) { + } catch (err) { let msg = 'Unknown Error'; - if ( typeof err === 'string' ) { + if (typeof err === 'string') { msg = err; } else { - const error = err.error || { message: undefined }; + const error = err.error || {message: undefined}; msg = error.message || msg; } - yield put( WebData.Modifier.Action.responseAction( action.type, { type: 'error', msg: msg } ) ); + yield put(WebData.Modifier.Action.responseAction(action.type, {type: 'error', msg: msg})); } } } diff --git a/src/t03/sagas/pollModflowModelCalculationStatus.js b/src/t03/sagas/pollModflowModelCalculationStatus.js index 0deb63ab..1c06b7c5 100644 --- a/src/t03/sagas/pollModflowModelCalculationStatus.js +++ b/src/t03/sagas/pollModflowModelCalculationStatus.js @@ -1,9 +1,8 @@ -import { put, take, call, cancelled, race } from 'redux-saga/effects'; -import { delay } from 'redux-saga'; -import { sendQuery } from '../../actions/messageBox'; -import { Selector } from '../../t03'; -import { Query, Command, Action } from '../actions/index'; -import { WebData } from '../../core/index'; +import {put, take, call, cancelled, race} from 'redux-saga/effects'; +import {delay} from 'redux-saga'; +import {Selector} from '../../t03'; +import {Query, Command, Action} from '../actions/index'; +import {WebData} from '../../core/index'; const MAX_TRY = 20; @@ -13,72 +12,79 @@ function* pollModflowModelCalculationStatus(tool, id) { let i = 0; let multi = 1; - yield put( WebData.Modifier.Action.responseAction( Command.CALCULATE_MODFLOW_MODEL, { + yield put(WebData.Modifier.Action.responseAction(Command.CALCULATE_MODFLOW_MODEL, { type: 'loading', data: null - } ) ); + })); - yield put( sendQuery( `modflowmodels/${id}/calculation`, Query.GET_MODFLOW_MODEL_CALCULATION ) ); + yield put(WebData.Modifier.Action.sendQuery( + `modflowmodels/${id}/calculation`, + Query.GET_MODFLOW_MODEL_CALCULATION + )); // eslint-disable-next-line no-constant-condition while (true) { - const responseCalculation = yield take( action => WebData.Helpers.waitForResponse( action, Query.GET_MODFLOW_MODEL_CALCULATION ) ); + const responseCalculation = yield take(action => WebData.Helpers.waitForResponse(action, Query.GET_MODFLOW_MODEL_CALCULATION)); if (i === MAX_TRY) { break; } - if (WebData.Helpers.isError( responseCalculation )) { - yield put( WebData.Modifier.Action.responseAction( Command.CALCULATE_MODFLOW_MODEL, { + if (WebData.Helpers.isError(responseCalculation)) { + yield put(WebData.Modifier.Action.responseAction(Command.CALCULATE_MODFLOW_MODEL, { type: 'success', data: null - } ) ); + })); break; } - if (WebData.Helpers.isSuccess( responseCalculation ) + if (WebData.Helpers.isSuccess(responseCalculation) && responseCalculation.webData.data.state !== undefined && responseCalculation.webData.data.state !== Selector.model.CALCULATION_STATE_NEW && responseCalculation.webData.data.state !== Selector.model.CALCULATION_STATE_FINISHED ) { - yield put( Action.setCalculation( tool, responseCalculation.webData.data ) ); + yield put(Action.setCalculation(tool, responseCalculation.webData.data)); i++; - yield delay( 3000 * multi ); + yield delay(3000 * multi); if (i % 5 === 0) { multi++; } - yield put( sendQuery( `modflowmodels/${id}/calculation`, Query.GET_MODFLOW_MODEL_CALCULATION ) ); + yield put(WebData.Modifier.Action.sendQuery( + `modflowmodels/${id}/calculation`, + Query.GET_MODFLOW_MODEL_CALCULATION) + ); continue; } - if (WebData.Helpers.isSuccess( responseCalculation ) + if (WebData.Helpers.isSuccess(responseCalculation) && (responseCalculation.webData.data.state === Selector.model.CALCULATION_STATE_FINISHED || responseCalculation.webData.data.state === Selector.model.CALCULATION_STATE_NEW) ) { - yield put( Query.getModflowModelResults( tool, id ) ); - yield put( Action.setCalculation( tool, responseCalculation.webData.data ) ); + yield put(Query.getModflowModelResults(tool, id)); + yield put(Action.setCalculation(tool, responseCalculation.webData.data)); - yield put( WebData.Modifier.Action.responseAction( Command.CALCULATE_MODFLOW_MODEL, { + yield put(WebData.Modifier.Action.responseAction(Command.CALCULATE_MODFLOW_MODEL, { type: 'success', data: null - } ) ); + })); break; } } - } finally { + } finally { if (yield cancelled()) { - yield put( WebData.Modifier.Action.reset( Command.CALCULATE_MODFLOW_MODEL ) ); - yield put( WebData.Modifier.Action.reset( Query.GET_MODFLOW_MODEL_CALCULATION ) ); + yield put(WebData.Modifier.Action.reset(Command.CALCULATE_MODFLOW_MODEL)); + yield put(WebData.Modifier.Action.reset(Query.GET_MODFLOW_MODEL_CALCULATION)); } } } export default function* pollModflowModelCalculationStatusFlow() { + // eslint-disable-next-line no-constant-condition while (true) { - const action = yield take( action => WebData.Helpers.waitForAction( action, Query.GET_MODFLOW_MODEL_CALCULATION ) ); + const action = yield take(action => WebData.Helpers.waitForAction(action, Query.GET_MODFLOW_MODEL_CALCULATION)); - yield race( { - task: call( pollModflowModelCalculationStatus, action.tool, action.id ), - cancel: take( action => action.type === Action.STOP_GET_MODFLOW_MODEL_CALCULATION ) - } ); + yield race({ + task: call(pollModflowModelCalculationStatus, action.tool, action.id), + cancel: take(action => action.type === Action.STOP_GET_MODFLOW_MODEL_CALCULATION) + }); } } diff --git a/src/t03/sagas/removeBoundary.js b/src/t03/sagas/removeBoundary.js index 4bd4b9a3..9a465aed 100644 --- a/src/t03/sagas/removeBoundary.js +++ b/src/t03/sagas/removeBoundary.js @@ -1,28 +1,28 @@ import {put, take} from 'redux-saga/effects'; -import {sendCommand} from '../../actions/messageBox'; import {Command, Event} from '../../t03/actions/index'; import {WebData} from '../../core'; export default function* removeBoundaryFlow() { // eslint-disable-next-line no-constant-condition - while ( true ) { + while (true) { // eslint-disable-next-line no-shadow - const action = yield take( action => action.type === Command.REMOVE_BOUNDARY ); - - yield put( sendCommand( action.type, action.payload ) ); + const action = yield take(action => action.type === Command.REMOVE_BOUNDARY); + yield put( + WebData.Modifier.Action.sendCommand(action.type, action.payload) + ); // eslint-disable-next-line no-constant-condition - while ( true ) { + while (true) { // eslint-disable-next-line no-shadow - const response = yield take( action => WebData.Helpers.waitForResponse(action, Command.REMOVE_BOUNDARY ) ); + const response = yield take(action => WebData.Helpers.waitForResponse(action, Command.REMOVE_BOUNDARY)); - if ( response.webData.type === 'error' ) { + if (response.webData.type === 'error') { break; } - if ( response.webData.type === 'success' ) { + if (response.webData.type === 'success') { // TODO remove before send request to server and restore on server error for faster response in frontend - yield put( Event.boundaryRemoved( action.tool, action.payload.boundary_id ) ); + yield put(Event.boundaryRemoved(action.tool, action.payload.boundary_id)); break; } } diff --git a/src/t03/sagas/removeLayer.js b/src/t03/sagas/removeLayer.js index 45cf6e10..2f30c7b0 100644 --- a/src/t03/sagas/removeLayer.js +++ b/src/t03/sagas/removeLayer.js @@ -1,20 +1,19 @@ -import { put, take } from 'redux-saga/effects'; -import { sendCommand } from '../../actions/messageBox'; -import { Command, Event } from '../../t03/actions/index'; -import { WebData } from '../../core'; +import {put, take} from 'redux-saga/effects'; +import {Command, Event} from '../../t03/actions/index'; +import {WebData} from '../../core'; export default function* removeLayerFlow() { // eslint-disable-next-line no-constant-condition while (true) { // eslint-disable-next-line no-shadow - const action = yield take( action => action.type === Command.REMOVE_LAYER ); + const action = yield take(action => action.type === Command.REMOVE_LAYER); - yield put( sendCommand( action.type, action.payload ) ); + yield put(WebData.Modifier.Action.sendCommand(action.type, action.payload)); // eslint-disable-next-line no-constant-condition while (true) { // eslint-disable-next-line no-shadow - const response = yield take( action => WebData.Helpers.waitForResponse( action, Command.REMOVE_LAYER ) ); + const response = yield take(action => WebData.Helpers.waitForResponse(action, Command.REMOVE_LAYER)); if (response.webData.type === 'error') { break; @@ -22,7 +21,7 @@ export default function* removeLayerFlow() { if (response.webData.type === 'success') { // TODO remove before send request to server and restore on server error for faster response in frontend - yield put( Event.layerRemoved( action.tool, action.payload.layer_id ) ); + yield put(Event.layerRemoved(action.tool, action.payload.layer_id)); break; } } diff --git a/src/t03/sagas/updateBoundary.js b/src/t03/sagas/updateBoundary.js index f4b35766..0a586a02 100644 --- a/src/t03/sagas/updateBoundary.js +++ b/src/t03/sagas/updateBoundary.js @@ -1,31 +1,30 @@ import {put, take} from 'redux-saga/effects'; -import { - sendCommand, -} from '../../actions/messageBox'; - import {Command, Action, Event} from '../../t03/actions/index'; import {WebData} from '../../core'; export default function* updateBoundaryFlow() { // eslint-disable-next-line no-constant-condition - while ( true ) { + while (true) { // eslint-disable-next-line no-shadow - const action = yield take( action => action.type === Command.UPDATE_BOUNDARY ); + const action = yield take(action => action.type === Command.UPDATE_BOUNDARY); - yield put( Action.setBoundary( action.tool, action.payload.boundary ) ); - yield put( sendCommand( action.type, {...action.payload, boundary_id: action.payload.boundary.id} ) ); + yield put(Action.setBoundary(action.tool, action.payload.boundary)); + yield put(WebData.Modifier.Action.sendCommand(action.type, { + ...action.payload, + boundary_id: action.payload.boundary.id + })); // eslint-disable-next-line no-constant-condition - while ( true ) { + while (true) { // eslint-disable-next-line no-shadow - const response = yield take( action => WebData.Helpers.waitForResponse( action, Command.UPDATE_BOUNDARY ) ); + const response = yield take(action => WebData.Helpers.waitForResponse(action, Command.UPDATE_BOUNDARY)); - if ( response.webData.type === 'error' ) { + if (response.webData.type === 'error') { break; } - if ( response.webData.type === 'success' ) { - yield put( Event.boundaryUpdated( action.tool, action.payload.boundary ) ); + if (response.webData.type === 'success') { + yield put(Event.boundaryUpdated(action.tool, action.payload.boundary)); break; } } diff --git a/src/t03/sagas/updateLayer.js b/src/t03/sagas/updateLayer.js index e1ef12fa..13a8f2ab 100644 --- a/src/t03/sagas/updateLayer.js +++ b/src/t03/sagas/updateLayer.js @@ -1,8 +1,4 @@ import {put, take} from 'redux-saga/effects'; -import { - sendCommand, -} from '../../actions/messageBox'; - import {Command, Action, Event} from '../../t03/actions/index'; import {WebData} from '../../core'; @@ -13,7 +9,10 @@ export default function* updateLayerFlow() { const action = yield take( action => action.type === Command.UPDATE_LAYER ); yield put( Action.setLayer( action.tool, action.payload.layer ) ); - yield put( sendCommand( action.type, {...action.payload, layer_id: action.payload.layer.id} ) ); + yield put(WebData.Modifier.Action.sendCommand(action.type, { + ...action.payload, + layer_id: action.payload.layer.id + })); // eslint-disable-next-line no-constant-condition while ( true ) { diff --git a/src/t03/sagas/updateModel.js b/src/t03/sagas/updateModel.js index 2b89d471..a3352353 100644 --- a/src/t03/sagas/updateModel.js +++ b/src/t03/sagas/updateModel.js @@ -1,13 +1,9 @@ import { call, put, select, take } from 'redux-saga/effects'; -import { - buildRequest, - sendCommand, - stateToCreatePayload -} from '../../actions/messageBox'; +import {buildRequest, sendCommand, stateToCreatePayload} from '../../core/webData/actions/actions'; import { Command, Action, Event } from '../../t03/actions/index'; import { WebData } from '../../core'; -import { getApiKey } from '../../reducers/user'; +import { getApiKey } from '../../user/reducers'; export default function * updateModelFlow() { // eslint-disable-next-line no-constant-condition @@ -34,9 +30,13 @@ export default function * updateModelFlow() { yield put(Event.modflowModelUpdated(action.tool, action.id, action.payload)); const state = yield select(); - const apiKey = getApiKey( state.user ); + const apiKey = getApiKey( state.session ); - const activeSells = yield call(WebData.Helpers.fetchStatusWrapper, buildRequest('modflowmodels/' + action.id + '/activecells', 'GET'), apiKey); + const activeSells = yield call( + WebData.Helpers.fetchStatusWrapper, + buildRequest('modflowmodels/' + action.id + '/activecells', 'GET'), + apiKey + ); yield put( Action.setActiveCells( action.tool, activeSells ) ); break; } diff --git a/src/t03/sagas/updateModflowPackage.js b/src/t03/sagas/updateModflowPackage.js index 9db07c2c..8c545090 100644 --- a/src/t03/sagas/updateModflowPackage.js +++ b/src/t03/sagas/updateModflowPackage.js @@ -1,19 +1,15 @@ -import { put, take } from 'redux-saga/effects'; -import { - sendCommand, -} from '../../actions/messageBox'; +import {put, take} from 'redux-saga/effects'; +import {Command, Action, Event, Query} from '../../t03/actions/index'; +import {WebData} from '../../core'; -import { Command, Action, Event, Query } from '../../t03/actions/index'; -import { WebData } from '../../core'; - -export default function * updateModflowPackage() { +export default function* updateModflowPackage() { // eslint-disable-next-line no-constant-condition while (true) { // eslint-disable-next-line no-shadow const action = yield take(action => action.type === Command.UPDATE_MODFLOW_PACKAGE); - yield put( Action.setModflowPackage( action.tool, action.payload.package_name, action.packageType, action.payload.data ) ); - yield put(sendCommand(action.type, action.payload)); + yield put(Action.setModflowPackage(action.tool, action.payload.package_name, action.packageType, action.payload.data)); + yield put(WebData.Modifier.Action.sendCommand(action.type, action.payload)); // eslint-disable-next-line no-constant-condition while (true) { diff --git a/src/t03/sagas/updateStressPeriods.js b/src/t03/sagas/updateStressPeriods.js index b29e0265..5e278a03 100644 --- a/src/t03/sagas/updateStressPeriods.js +++ b/src/t03/sagas/updateStressPeriods.js @@ -1,31 +1,27 @@ import {put, take} from 'redux-saga/effects'; -import { - sendCommand, -} from '../../actions/messageBox'; - import {Command, Action, Event} from '../../t03/actions/index'; import {WebData} from '../../core'; export default function* updateStressPeriodsFlow() { // eslint-disable-next-line no-constant-condition - while ( true ) { + while (true) { // eslint-disable-next-line no-shadow - const action = yield take( action => action.type === Command.UPDATE_STRESS_PERIODS ); + const action = yield take(action => action.type === Command.UPDATE_STRESS_PERIODS); - yield put( Action.setStressPeriods( action.tool, action.payload.stress_periods ) ); - yield put( sendCommand( action.type, action.payload )); + yield put(Action.setStressPeriods(action.tool, action.payload.stress_periods)); + yield put(WebData.Modifier.Action.sendCommand(action.type, action.payload)); // eslint-disable-next-line no-constant-condition - while ( true ) { + while (true) { // eslint-disable-next-line no-shadow - const response = yield take( action => WebData.Helpers.waitForResponse( action, Command.UPDATE_STRESS_PERIODS ) ); + const response = yield take(action => WebData.Helpers.waitForResponse(action, Command.UPDATE_STRESS_PERIODS)); - if ( response.webData.type === 'error' ) { + if (response.webData.type === 'error') { break; } - if ( response.webData.type === 'success' ) { - yield put( Event.stressPeriodsUpdated( action.tool, action.payload.stress_periods ) ); + if (response.webData.type === 'success') { + yield put(Event.stressPeriodsUpdated(action.tool, action.payload.stress_periods)); break; } } diff --git a/src/t03/selectors/model.js b/src/t03/selectors/model.js index bc054f27..cc9d51f2 100644 --- a/src/t03/selectors/model.js +++ b/src/t03/selectors/model.js @@ -78,10 +78,10 @@ export const getInitialStyles = () => { fillOpacity: 0.7 }, inw: { - radius: 3, + radius: 4, color: 'black', weight: 1, - fillColor: 'blue', + fillColor: 'yellow', fillOpacity: 0.7 }, irw: { diff --git a/src/t04/containers/main.js b/src/t04/containers/main.js index eb393373..2430860d 100644 --- a/src/t04/containers/main.js +++ b/src/t04/containers/main.js @@ -26,7 +26,7 @@ const styles = { const navigation = [{ name: 'Documentation', - path: 'https://wiki.inowas.hydro.tu-dresden.de/t04a-database/', + path: 'https://inowas.hydro.tu-dresden.de/tools/t04a-database-for-gis-based-suitability-mapping/', icon: }]; diff --git a/src/t06/actions/actions.js b/src/t06/actions/actions.js new file mode 100644 index 00000000..5a5b0082 --- /dev/null +++ b/src/t06/actions/actions.js @@ -0,0 +1,3 @@ +/** + * Actions triggers only a store change. + */ diff --git a/src/t06/actions/commands.js b/src/t06/actions/commands.js new file mode 100644 index 00000000..e0423b44 --- /dev/null +++ b/src/t06/actions/commands.js @@ -0,0 +1,3 @@ +/** + * Commands sends a request to server and triggers an event. + */ diff --git a/src/t06/actions/events.js b/src/t06/actions/events.js new file mode 100644 index 00000000..73c27b22 --- /dev/null +++ b/src/t06/actions/events.js @@ -0,0 +1,3 @@ +/** + * Events triggers only a store change from a successful command. + */ diff --git a/src/toolInstance/actions/index.js b/src/t06/actions/index.js similarity index 100% rename from src/toolInstance/actions/index.js rename to src/t06/actions/index.js diff --git a/src/t06/actions/queries.js b/src/t06/actions/queries.js new file mode 100644 index 00000000..eb9f7668 --- /dev/null +++ b/src/t06/actions/queries.js @@ -0,0 +1,4 @@ +/** + * Queries send a get/load request to server and triggers an action to set data in store. + * Usually it uses a saga for the flow. + */ diff --git a/src/toolInstance/selectors/index.js b/src/t06/actions/routing.js similarity index 100% rename from src/toolInstance/selectors/index.js rename to src/t06/actions/routing.js diff --git a/src/t06/components/index.js b/src/t06/components/index.js new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/src/t06/components/index.js @@ -0,0 +1 @@ +export {}; diff --git a/src/t06/containers/index.js b/src/t06/containers/index.js new file mode 100644 index 00000000..88ed6bdb --- /dev/null +++ b/src/t06/containers/index.js @@ -0,0 +1,5 @@ +import Main from './main'; + +export { + Main, +}; diff --git a/src/containers/tools/T06.js b/src/t06/containers/main.js similarity index 54% rename from src/containers/tools/T06.js rename to src/t06/containers/main.js index df896ad9..005542df 100644 --- a/src/containers/tools/T06.js +++ b/src/t06/containers/main.js @@ -1,35 +1,50 @@ +/* eslint-disable guard-for-in */ import React from 'react'; +import PropTypes from 'prop-types'; import {connect} from 'react-redux'; +import {withRouter} from 'react-router'; import '../../less/4TileTool.less'; import '../../less/toolT06.less'; -import {groupBy} from 'lodash'; +import lodash from 'lodash'; -import {changeCondition} from '../../actions/T06'; import Header from '../../components/tools/Header'; import Icon from '../../components/primitive/Icon'; -import Navbar from '../Navbar'; - -@connect((store) => { - return {tool: store.T06}; -}) -export default class T06 extends React.Component { - - state = { - navigation: [{ - name: 'Documentation', - path: 'https://wiki.inowas.hydro.tu-dresden.de/t06-mar-method-selection/', - icon: - }] +import Navbar from '../../containers/Navbar'; + +const navigation = [{ + name: 'Documentation', + path: 'https://inowas.hydro.tu-dresden.de/tools/t06-mar-method-selection/', + icon: +}]; + +class T06 extends React.Component { + + constructor(props) { + super(props); + this.state = props.toolInstance; + } + + changeCondition = (changeCondition) => { + const newState = this.state.conditions.map((c) => { + if (c.name === changeCondition.name) { + c.selected = changeCondition.selected; + } + + return c; + }); + + this.setState({...newState}); }; handleChange = (e) => { - this.props.dispatch(changeCondition({name: e.target.value, selected: e.target.checked})); + this.changeCondition({name: e.target.value, selected: e.target.checked}); }; conditions() { - const groupedConditions = groupBy(this.props.tool.conditions, 'category'); + const conditions = this.state.conditions; + const groupedConditions = lodash.groupBy(conditions, 'category'); const groupedConditionsList = []; for (const category in groupedConditions) { @@ -37,7 +52,14 @@ export default class T06 extends React.Component { const conditionsList = groupedConditions[category].map((c) => { return (
  • - +
  • ); }); @@ -56,66 +78,36 @@ export default class T06 extends React.Component { return groupedConditionsList; } - intersect(a, b) { - let t; - if (b.length > a.length) { - t = b, - b = a, - a = t; - } // indexOf to loop over shorter - return a.filter(function(e) { - if (b.indexOf(e) !== -1) { - return true; - } - } - ); - } - addition(a,b){ - let t= b.filter(function(e) { - if (a.indexOf(e) == -1) { - return true; - } - }); - return a.concat(t); - } - methods() { - const selectedConditions = this.props.tool.conditions.filter((c) => { + const selectedConditions = this.state.conditions.filter((c) => { return c.selected; }); - const groupSelectedConditions = groupBy(selectedConditions, 'category'); - let groupSelectedMethods = []; + + const groupSelectedConditions = lodash.groupBy(selectedConditions, 'category'); + const groupSelectedMethods = []; for (const category in groupSelectedConditions) { let selectedMethods = []; - for(let i = 0; i 0) + let applicableMethods = (groupSelectedMethods.length > 0) ? groupSelectedMethods[0].selectedMethod : []; for (let i = 0; i < groupSelectedMethods.length; i++) { - applicable_methods = this.intersect(applicable_methods, groupSelectedMethods[i].selectedMethod); + applicableMethods = lodash.intersection(applicableMethods, groupSelectedMethods[i].selectedMethod); } - return (applicable_methods.map((am) => { - const method = this.props.tool.methods.find((m) => { - return (m.slug == am); + return (applicableMethods.map((am) => { + const method = this.state.methods.find((m) => { + return (m.slug === am); }); return ( @@ -143,10 +135,9 @@ export default class T06 extends React.Component { } render() { - const { navigation } = this.state; return (
    - +
    @@ -160,15 +151,15 @@ export default class T06 extends React.Component {

    Methods Suggested

    - - - - - - + + + + + + - {this.methods()} + {this.methods()}
    MAR methodsUnit costsArea requiredMore information
    MAR methodsUnit costsArea requiredMore information
    @@ -177,3 +168,15 @@ export default class T06 extends React.Component { ); } } + +const mapStateToProps = (state) => { + return { + toolInstance: state.T06 + }; +}; + +T06.propTypes = { + toolInstance: PropTypes.object, +}; + +export default withRouter(connect(mapStateToProps)(T06)); diff --git a/src/t06/images/ASR.png b/src/t06/images/ASR.png new file mode 100644 index 00000000..290d8e68 Binary files /dev/null and b/src/t06/images/ASR.png differ diff --git a/src/t06/images/ASTR.png b/src/t06/images/ASTR.png new file mode 100644 index 00000000..02cc2e25 Binary files /dev/null and b/src/t06/images/ASTR.png differ diff --git a/src/t06/images/barriers-and_bunds.png b/src/t06/images/barriers-and_bunds.png new file mode 100644 index 00000000..55c1d850 Binary files /dev/null and b/src/t06/images/barriers-and_bunds.png differ diff --git a/src/t06/images/channel_spreading.png b/src/t06/images/channel_spreading.png new file mode 100644 index 00000000..64c024d2 Binary files /dev/null and b/src/t06/images/channel_spreading.png differ diff --git a/src/t06/images/ditches_and_furrows.png b/src/t06/images/ditches_and_furrows.png new file mode 100644 index 00000000..ac0039ea Binary files /dev/null and b/src/t06/images/ditches_and_furrows.png differ diff --git a/src/t06/images/dune_filtration.png b/src/t06/images/dune_filtration.png new file mode 100644 index 00000000..41280039 Binary files /dev/null and b/src/t06/images/dune_filtration.png differ diff --git a/src/t06/images/excess_irrigation.png b/src/t06/images/excess_irrigation.png new file mode 100644 index 00000000..3fdb8798 Binary files /dev/null and b/src/t06/images/excess_irrigation.png differ diff --git a/src/t06/images/flooding.png b/src/t06/images/flooding.png new file mode 100644 index 00000000..a88f122b Binary files /dev/null and b/src/t06/images/flooding.png differ diff --git a/src/t06/images/infiltration_ponds.png b/src/t06/images/infiltration_ponds.png new file mode 100644 index 00000000..391cc621 Binary files /dev/null and b/src/t06/images/infiltration_ponds.png differ diff --git a/src/t06/images/recharge_dam.png b/src/t06/images/recharge_dam.png new file mode 100644 index 00000000..b095dc88 Binary files /dev/null and b/src/t06/images/recharge_dam.png differ diff --git a/src/t06/images/river_bank_filtration.png b/src/t06/images/river_bank_filtration.png new file mode 100644 index 00000000..0248ea3c Binary files /dev/null and b/src/t06/images/river_bank_filtration.png differ diff --git a/src/t06/images/rooftop_rainwater_harvesting.png b/src/t06/images/rooftop_rainwater_harvesting.png new file mode 100644 index 00000000..5167cc25 Binary files /dev/null and b/src/t06/images/rooftop_rainwater_harvesting.png differ diff --git a/src/t06/images/sand_dam.png b/src/t06/images/sand_dam.png new file mode 100644 index 00000000..8fdfb316 Binary files /dev/null and b/src/t06/images/sand_dam.png differ diff --git a/src/t06/images/shallow_well_injection.png b/src/t06/images/shallow_well_injection.png new file mode 100644 index 00000000..86ad57f4 Binary files /dev/null and b/src/t06/images/shallow_well_injection.png differ diff --git a/src/t06/images/soil_aquifer_treatment.png b/src/t06/images/soil_aquifer_treatment.png new file mode 100644 index 00000000..ac403490 Binary files /dev/null and b/src/t06/images/soil_aquifer_treatment.png differ diff --git a/src/t06/images/subsurface_dam.png b/src/t06/images/subsurface_dam.png new file mode 100644 index 00000000..51068bbe Binary files /dev/null and b/src/t06/images/subsurface_dam.png differ diff --git a/src/t06/images/trenches.png b/src/t06/images/trenches.png new file mode 100644 index 00000000..75a2a8bc Binary files /dev/null and b/src/t06/images/trenches.png differ diff --git a/src/toolInstance/index.js b/src/t06/index.js similarity index 65% rename from src/toolInstance/index.js rename to src/t06/index.js index 05e28d6e..bd1521ad 100644 --- a/src/toolInstance/index.js +++ b/src/t06/index.js @@ -1,9 +1,13 @@ +import * as Container from './containers/index'; +import * as Component from './components/index'; import * as Modifier from './actions/index'; import * as Reducer from './reducers/index'; import * as Selector from './selectors/index'; import * as Saga from './sagas/index'; export { + Container, + Component, Modifier, Reducer, Selector, diff --git a/src/t06/reducers/index.js b/src/t06/reducers/index.js new file mode 100644 index 00000000..e8f8eda1 --- /dev/null +++ b/src/t06/reducers/index.js @@ -0,0 +1,3 @@ +import createReducer from './main'; + +export { createReducer }; diff --git a/src/reducers/T06.js b/src/t06/reducers/main.js similarity index 71% rename from src/reducers/T06.js rename to src/t06/reducers/main.js index ce451387..f09f2c5d 100644 --- a/src/reducers/T06.js +++ b/src/t06/reducers/main.js @@ -1,22 +1,22 @@ -import infiltration_pond from '../images/Tool06Icons/Infiltration_pond.png'; -import ASTR from '../images/Tool06Icons/ASTR.png'; -import ASR from '../images/Tool06Icons/ASR.png'; -import IDF from '../images/Tool06Icons/Dune filtration.png'; -import SAT from '../images/Tool06Icons/Soil Aquifer treatment.png'; -import Rooftop from '../images/Tool06Icons/Rainwater harvesting.png'; -import IBF from '../images/Tool06Icons/Bank filtration.png'; -import RD from '../images/Tool06Icons/Recharge release.png'; -import SS_Dam from '../images/Tool06Icons/Underground dam.png'; -import Ponds from '../images/Tool06Icons/Percolation pond.png'; -import Sand_dam from '../images/Tool06Icons/Sand dam.png'; -import Bounds from '../images/Tool06Icons/Bounds.png'; -import EI from '../images/Tool06Icons/Excess_irrigation.png'; -import Ditches from '../images/Tool06Icons/Ditches.png'; -import Trenches from '../images/Tool06Icons/Trenches.png'; -import WSB from '../images/Tool06Icons/WSB.png'; -import Flooding from '../images/Tool06Icons/Flooding.png'; -import image from '../images/Tool06Icons/Sand dam.png'; -function getInitialState() { +import ASTR from '../images/ASTR.png'; +import ASR from '../images/ASR.png'; +import IDF from '../images/dune_filtration.png'; +import SAT from '../images/soil_aquifer_treatment.png'; +import Rooftop from '../images/rooftop_rainwater_harvesting.png'; +import IBF from '../images/river_bank_filtration.png'; +import RD from '../images/recharge_dam.png'; +import SSDam from '../images/subsurface_dam.png'; +import Ponds from '../images/infiltration_ponds.png'; +import Sanddam from '../images/sand_dam.png'; +import Bounds from '../images/barriers-and_bunds.png'; +import EI from '../images/excess_irrigation.png'; +import Ditches from '../images/ditches_and_furrows.png'; +import Trenches from '../images/trenches.png'; +import WSB from '../images/shallow_well_injection.png'; +import CS from '../images/channel_spreading.png'; +import Flooding from '../images/flooding.png'; + +export const getInitialState = () => { return { conditions: [{ name: 'Ephemeral Rivers', @@ -27,7 +27,7 @@ function getInitialState() { name: 'Perennial Rivers', category: 'Source of water', selected: true, - applicable_methods: ['Ponds', 'Flooding', 'Ditches', 'EI', 'IBF', 'ASR', 'ASTR', 'W-S-B', 'SS Dam', 'RD', 'Sand dam'] + applicable_methods: ['Ponds', 'Flooding', 'Ditches', 'EI', 'IBF', 'ASR', 'ASTR', 'W-S-B', 'SS Dam', 'RD', 'Sand dam', 'CS'] }, { name: 'Storage Dams/ Reservoir', category: 'Source of water', @@ -57,7 +57,7 @@ function getInitialState() { name: 'Sandy loams, silt loams', category: 'Soil type', selected: true, - applicable_methods: ['Ponds', 'Flooding', 'Ditches', 'SAT', 'EI', 'IBF', 'IDF', 'SS Dam', 'RD', 'Bund', 'Trenches', 'Rooftop'] + applicable_methods: ['Ponds', 'Flooding', 'Ditches', 'SAT', 'EI', 'IBF', 'IDF', 'SS Dam', 'RD', 'Bund', 'Trenches', 'Rooftop', 'CS'] }, { name: 'Deep sands, well aggregated soils', category: 'Soil type', @@ -97,7 +97,7 @@ function getInitialState() { name: 'Streambed', category: 'Land Use', selected: false, - applicable_methods: ['SS Dam', 'RD', 'Sand dam'] + applicable_methods: ['SS Dam', 'RD', 'Sand dam', 'CS'] }, { name: 'Barren Lands/ Range Land', category: 'Land Use', @@ -107,7 +107,7 @@ function getInitialState() { name: 'Max Natural Storage Capacity', category: 'Purpose', selected: false, - applicable_methods: ['Ponds', 'Flooding', 'Ditches', 'SAT', 'EI', 'ASR', 'ASTR', 'W-S-B', 'SS Dam', 'RD', 'Sand dam', 'Bund', 'Trenches', 'Rooftop'] + applicable_methods: ['Ponds', 'Flooding', 'Ditches', 'SAT', 'EI', 'ASR', 'ASTR', 'W-S-B', 'SS Dam', 'RD', 'Sand dam', 'Bund', 'Trenches', 'Rooftop', 'CS'] }, { name: 'Prevent Salt Water Intruesion', category: 'Purpose', @@ -147,7 +147,7 @@ function getInitialState() { name: 'Medium (Village)', category: 'Typical Scale', selected: true, - applicable_methods: ['Ponds', 'Flooding', 'Ditches', 'SAT', 'EI', 'IBF', 'IDF', 'ASR', 'ASTR', 'W-S-B', 'SS Dam', 'RD', 'Sand dam', 'Bund', 'Trenches', 'Rooftop'] + applicable_methods: ['Ponds', 'Flooding', 'Ditches', 'SAT', 'EI', 'IBF', 'IDF', 'ASR', 'ASTR', 'W-S-B', 'SS Dam', 'RD', 'Sand dam', 'Bund', 'Trenches', 'Rooftop', 'CS'] }, { name: 'Large (Town)', category: 'Typical Scale', @@ -156,133 +156,135 @@ function getInitialState() { }], methods: [{ slug: 'Ponds', - name: 'infiltration_pond', + name: 'Infiltration ponds', highCost: false, highLandNeed: true, - image: infiltration_pond, - href: "https://wiki.inowas.hydro.tu-dresden.de/" + image: Ponds, + href: 'https://inowas.hydro.tu-dresden.de/mar-methods/infiltration-ponds-and-basins/' }, { slug: 'Flooding', name: 'Flooding', highCost: false, highLandNeed: true, image: Flooding, - href: "https://wiki.inowas.hydro.tu-dresden.de/" + href: 'https://inowas.hydro.tu-dresden.de/mar-methods/flooding/' }, { slug: 'Ditches', - name: 'Ditches and Furrows ', + name: 'Ditches and furrows ', highCost: false, highLandNeed: true, image: Ditches, - href: "https://wiki.inowas.hydro.tu-dresden.de/" + href: 'https://inowas.hydro.tu-dresden.de/mar-methods/ditches-and-furrows/' }, { slug: 'SAT', name: 'Soil Aquifer Treatment', highCost: true, highLandNeed: true, image: SAT, - href: "https://wiki.inowas.hydro.tu-dresden.de/" + href: 'https://inowas.hydro.tu-dresden.de/mar-methods/soil-aquifer-treatment-sat/' }, { slug: 'EI', - name: ' Excess Irrigation', + name: ' Excess irrigation', highCost: false, highLandNeed: false, image: EI, - href: "https://wiki.inowas.hydro.tu-dresden.de/" + href: 'https://inowas.hydro.tu-dresden.de/mar-methods/excess-irrigation/' }, { slug: 'IBF', - name: 'River/lake bank filtration', + name: 'Induced bank filtration', highCost: false, highLandNeed: false, image: IBF, - href: "https://wiki.inowas.hydro.tu-dresden.de/" + href: 'https://inowas.hydro.tu-dresden.de/mar-methods/induced-bank-filtration/' }, { slug: 'IDF', name: 'Dune filtration', highCost: false, highLandNeed: true, image: IDF, - href: "https://wiki.inowas.hydro.tu-dresden.de/" + href: 'https://inowas.hydro.tu-dresden.de/mar-methods/dune-filtration/' }, { slug: 'ASR', name: 'ASR', highCost: true, highLandNeed: false, image: ASR, - href: "https://wiki.inowas.hydro.tu-dresden.de/" + href: 'https://inowas.hydro.tu-dresden.de/tools/aquifer-storage-and-recovery-asr/' }, { slug: 'ASTR', name: 'ASTR', highCost: true, highLandNeed: false, image: ASTR, - href: "https://wiki.inowas.hydro.tu-dresden.de/" + href: 'https://inowas.hydro.tu-dresden.de/mar-methods/aquifer-storage-transfer-and-recovery-astr/' }, { slug: 'W-S-B', - name: 'Shallow well/ shaft/ pit infiltration ', + name: 'Shallow wells, shafts and pits infiltration', highCost: true, highLandNeed: false, image: WSB, - href: "https://wiki.inowas.hydro.tu-dresden.de/" + href: 'https://inowas.hydro.tu-dresden.de/mar-methods/shallow-wells-shafts-and-pits-infiltration/' }, { slug: 'SS Dam', - name: 'Sub-surface dams', + name: 'Subsurface dams', highCost: true, highLandNeed: false, - image: SS_Dam, - href: "https://wiki.inowas.hydro.tu-dresden.de/" + image: SSDam, + href: 'https://inowas.hydro.tu-dresden.de/mar-methods/subsurface-dams/' }, { slug: 'RD', - name: 'Recharge Dams', + name: 'Recharge dams', highCost: false, highLandNeed: false, image: RD, - href: "https://wiki.inowas.hydro.tu-dresden.de/" + href: 'https://inowas.hydro.tu-dresden.de/mar-methods/recharge-dams/' }, { slug: 'Sand dam', name: 'Sand dams', highCost: false, highLandNeed: false, - image: Sand_dam, - href: "https://wiki.inowas.hydro.tu-dresden.de/" + image: Sanddam, + href: 'https://inowas.hydro.tu-dresden.de/mar-methods/sand-dams/' }, { slug: 'Bund', - name: 'Barrier & Bunds', + name: 'Barrier and bunds', highCost: false, highLandNeed: true, image: Bounds, - href: "https://wiki.inowas.hydro.tu-dresden.de/" + href: 'https://inowas.hydro.tu-dresden.de/mar-methods/barriers-and-bunds/' }, { slug: 'Trenches', name: 'Trenches', highCost: false, highLandNeed: true, image: Trenches, - href: "https://wiki.inowas.hydro.tu-dresden.de/" + href: 'https://inowas.hydro.tu-dresden.de/mar-methods/trenches/' }, { slug: 'Rooftop', - name: 'Rooftop harvesting', + name: 'Rooftop rainwater harvesting', highCost: false, highLandNeed: false, image: Rooftop, - href: "https://wiki.inowas.hydro.tu-dresden.de/" + href: 'https://inowas.hydro.tu-dresden.de/mar-methods/rooftop-rainwater-harvesting/' + }, { + slug: 'CS', + name: 'Channel spreading', + highCost: false, + highLandNeed: true, + image: CS, + href: 'https://inowas.hydro.tu-dresden.de/mar-methods/channel-spreading/' }] }; -} -const T06Reducer = (state = getInitialState(), action) => { - switch (action.type) { - case 'CHANGE_TOOL_T06_CONDITION': - { - const changeCondition = action.payload; - state = { ...state - }; - state.conditions.find((c) => { - return (c.name == changeCondition.name) - }) - .selected = changeCondition.selected; - break; - } - } - return state; }; -export default T06Reducer; + +const createReducer = tool => { + return (state = getInitialState(), action) => { + if (action.tool !== tool) { + return state; + } + + return state; + }; +}; + +export default createReducer; diff --git a/src/t06/sagas/index.js b/src/t06/sagas/index.js new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/src/t06/sagas/index.js @@ -0,0 +1 @@ +export {}; diff --git a/src/t06/selectors/index.js b/src/t06/selectors/index.js new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/src/t06/selectors/index.js @@ -0,0 +1 @@ +export {}; diff --git a/src/t07/actions/actions.js b/src/t07/actions/actions.js index 4fac8685..a243a82f 100644 --- a/src/t07/actions/actions.js +++ b/src/t07/actions/actions.js @@ -1,3 +1,20 @@ +import ModflowBoundary from '../../model/ModflowBoundary'; +import ModflowModel from '../../model/ModflowModel'; +import ModflowModelBoundaries from '../../model/ModflowModelBoundaries'; +import ConfiguredAxios from 'ConfiguredAxios'; +import TimeSeries from '../../model/TimeSeries'; +import TotalTimes from '../../model/TotalTimes'; +import Coordinate from '../../model/Coordinate'; +import ResultType from '../../model/ResultType'; +import BoundingBox from '../../model/BoundingBox'; +import config from '../../config'; +import TimeSeriesResult from '../../model/TimeSeriesResult'; +import LayerNumber from '../../model/LayerNumber'; +import TwoDData from '../../model/TwoDData'; +import ModflowLayerValues from '../../model/ModflowLayerValues'; +import ModflowCalculationResult from '../../model/ModflowModelResult'; +import { getApiKey } from '../../user/reducers'; + /** * Actions triggers only a store change. */ @@ -27,3 +44,449 @@ export function setScenarioModels(scenarioModels) { payload: scenarioModels }; } + +// Moved from /src/actions/T07 + + +export function setTotalTimes(totalTimes) { + if (totalTimes instanceof TotalTimes === false) { + throw Error('Expected first param to be instance of TotalTimes'); + } + + return { + type: 'T07_SET_TOTAL_TIMES', + payload: totalTimes + }; +} + +export function addModel(model) { + return { + type: 'T07_ADD_MODEL', + payload: model + }; +} + +export function clearModels() { + return { + type: 'T07_CLEAR_MODELS', + }; +} + +export function setModelBoundaries(boundaries) { + if (boundaries instanceof ModflowModelBoundaries === false) { + throw Error( + 'Expected first param to be instance of ModflowModelBoundaries' + ); + } + + return { + type: 'T07_SET_MODEL_BOUNDARIES', + payload: boundaries + }; +} + +export function setLayerValues(layerValues) { + if (layerValues instanceof ModflowLayerValues === false) { + throw Error( + 'Expected first param to be instance of ModflowModelBoundaries' + ); + } + + return { + type: 'T07_SET_MODEL_LAYERVALUES', + payload: layerValues + }; +} + +export function setResultsT07B(modflowCalculationResult) { + if ( + modflowCalculationResult instanceof ModflowCalculationResult === + false + ) { + throw Error( + 'Expected first param to be instance of ModflowCalculationResult' + ); + } + + return { + type: 'T07B_SET_RESULT', + payload: modflowCalculationResult + }; +} + +export function setMapPosition(mapPosition) { + return { + type: 'T07_SET_MAP_POSITION', + payload: mapPosition + }; +} + +export function fetchModelBoundaries(id) { + return (dispatch, getState) => { + return dispatch({ + type: 'FETCH_DATA', + payload: { + promise: ConfiguredAxios.get( + '/modflowmodels/' + id + '/boundaries.json', + { + headers: { + 'X-AUTH-TOKEN': getApiKey(getState().user) + } + } + ) + } + }) + .then(({ action }) => { + const modelId = id; + const boundaries = action.payload.data; + + boundaries.map(b => { + return ModflowBoundary.fromParameters( + b.id, + b.name, + b.type, + b.geometry, + b.metadata + ); + }); + + const payload = new ModflowModelBoundaries(modelId, boundaries); + dispatch(setModelBoundaries(payload)); + }) + .catch(error => { + // eslint-disable-next-line no-console + console.error(error); + }); + }; +} + +export function fetchLayerValues(calculationId) { + return (dispatch, getState) => { + return dispatch({ + type: 'FETCH_DATA', + payload: { + promise: ConfiguredAxios.get( + '/calculations/' + + calculationId + + '/results/layervalues.json', + { headers: { 'X-AUTH-TOKEN': getApiKey(getState().user) } } + ) + } + }) + .then(({ action }) => { + dispatch( + setLayerValues( + new ModflowLayerValues( + calculationId, + action.payload.data + ) + ) + ); + }) + .catch(error => { + // eslint-disable-next-line no-console + console.error(error); + }); + }; +} + +export function fetchTotalTimes(calculationId, type, layer) { + return (dispatch, getState) => { + return dispatch({ + type: 'FETCH_DATA', + payload: { + promise: ConfiguredAxios.get( + '/calculations/' + calculationId + '/results/times.json', + { headers: { 'X-AUTH-TOKEN': getApiKey(getState().user) } } + ) + } + }) + .then(({ action }) => { + dispatch( + setTotalTimes( + new TotalTimes( + calculationId, + type, + layer, + action.payload.data.start_date_time, + action.payload.data.end_date_time, + action.payload.data.total_times + ) + ) + ); + }) + .catch(error => { + // eslint-disable-next-line no-console + console.error(error); + }); + }; +} + +export function setupT07b() { + return { + type: 'T07B_SETUP' + }; +} + +export function fetchDetails(id, onSuccess) { + return (dispatch, getState) => { + return dispatch({ + type: 'FETCH_DATA', + payload: { + promise: ConfiguredAxios.get( + '/scenarioanalyses/' + id + '.json', + { headers: { 'X-AUTH-TOKEN': getApiKey(getState().user) } } + ) + } + }) + .then(({ action }) => { + const area = action.payload.data.geometry; + const boundingBoxPlain = action.payload.data.bounding_box; + const boundingBox = new BoundingBox( + new Coordinate( + boundingBoxPlain[0][1], + boundingBoxPlain[0][0] + ), + new Coordinate( + boundingBoxPlain[1][1], + boundingBoxPlain[1][0] + ) + ); + const gridSize = action.payload.data.grid_size; + + const baseModel = ModflowModel.fromProps( + action.payload.data.base_model.id, + true, + area, + action.payload.data.base_model.name, + action.payload.data.base_model.description, + boundingBox, + gridSize.n_x, + gridSize.n_y, + action.payload.data.base_model.calculation_id, + true, + action.payload.data.base_model.permissions, + ); + + dispatch(clearModels()); + dispatch(addModel(baseModel)); + dispatch(setMapPosition({ bounds: boundingBox.toArray() })); + dispatch(fetchModelBoundaries(baseModel.modelId)); + dispatch(fetchLayerValues(baseModel.calculationId)); + dispatch( + fetchTotalTimes( + baseModel.calculationId, + new ResultType('head'), + new LayerNumber(0) + ) + ); + + const scenarios = action.payload.data.scenarios; + for (let i = 0; i < scenarios.length; i++) { + const sc = scenarios[i]; + const scenario = ModflowModel.fromProps( + sc.id, + false, + area, + sc.name, + sc.description, + boundingBox, + gridSize.n_x, + gridSize.n_y, + sc.calculation_id, + i === scenarios.length - 1, + baseModel.permissions + ); + + dispatch(addModel(scenario)); + dispatch(fetchModelBoundaries(scenario.modelId)); + } + + onSuccess && onSuccess(dispatch); + }) + .catch(error => { + // eslint-disable-next-line no-console + console.error(error); + }); + }; +} + +export function updateResultsT07B( + calculation1, + calculation2, + resultType, + layerNumber, + totalTime +) { + const imageURL = config.baseURL + '/image'; + const url = + '/calculations/' + + calculation1 + + '/results/differences/' + + calculation2 + + '/types/' + + resultType.toString() + + '/layers/' + + layerNumber.toString() + + '/totims/' + + totalTime.toString(); + + return (dispatch, getState) => { + return dispatch({ + type: 'FETCH_DATA', + payload: { + promise: ConfiguredAxios.get(url + '.json', { + headers: { 'X-AUTH-TOKEN': getApiKey(getState().session) } + }) + } + }) + .then(({ action }) => { + dispatch( + setResultsT07B( + new ModflowCalculationResult( + calculation1, + layerNumber, + resultType, + totalTime, + action.payload.data, + imageURL + url + '.png' + ) + ) + ); + }) + .catch(error => { + // eslint-disable-next-line no-console + console.error(error); + }); + }; +} + +export function toggleModelSelection(modelId) { + return { + type: 'T07_TOGGLE_MODEL_SELECTION', + payload: modelId + }; +} + +export function setSelectedLayer(layer) { + if (layer instanceof LayerNumber === false) { + throw Error('Expected first param to be instance of LayerNumber'); + } + + return { + type: 'T07_SET_SELECTED_LAYER', + payload: layer + }; +} + +export function setSelectedResultType(resultType) { + if (resultType instanceof ResultType === false) { + throw Error('Expected first param to be instance of ResultType'); + } + + return { + type: 'T07_SET_SELECTED_RESULT_TYPE', + payload: resultType + }; +} + +export function setSelectedTotalTimeIndex(index) { + return { + type: 'T07_SET_SELECTED_TOTAL_TIME_INDEX', + payload: index + }; +} + +export function setActiveCoordinate(coordinate) { + return { + type: 'T07_SET_ACTIVE_COORDINATE', + payload: coordinate + }; +} + +export function setSelectedModelIdsT07B(selectedModelIds) { + return { + type: 'T07B_SET_SELECTED_MODEL_IDS', + payload: selectedModelIds + }; +} + +export function addTimeSeriesPoint(timeSeriesPoint) { + return { + type: 'T07_ADD_TIME_SERIES_POINT', + payload: timeSeriesPoint + }; +} + +export function setTimeSeriesPointSelection(index, selected) { + return { + type: 'T07_SET_TIME_SERIES_POINT_SELECTION', + payload: { + index, + selected + } + }; +} + +export function setTimeSeriesPointResult(coordinate, timeSeriesResult) { + return { + type: 'T07_SET_TIME_SERIES_POINT_RESULT', + payload: { + coordinate, + timeSeriesResult + } + }; +} + +export function fetchTimeSeries( + coordinate, + calculationId, + resultType, + layerNumber, + x, + y, + startDate +) { + return (dispatch, getState) => { + return dispatch({ + type: 'FETCH_DATA', + payload: { + promise: ConfiguredAxios.get( + '/calculations/' + + calculationId + + '/results/timeseries/types/' + + resultType.toString() + + '/layers/' + + layerNumber.toString() + + '/x/' + + x + + '/y/' + + y + + '.json', + { headers: { 'X-AUTH-TOKEN': getApiKey(getState().session) } } + ) + } + }) + .then(({ action }) => { + const data = []; + Object.keys(action.payload.data).map(key => { + data.push(new TwoDData(key, action.payload.data[key])); + }); + const timeSeries = new TimeSeries(startDate, data); + const timeSeriesResult = new TimeSeriesResult( + calculationId, + resultType, + layerNumber + ); + timeSeriesResult.timeSeries = timeSeries; + + dispatch( + setTimeSeriesPointResult(coordinate, timeSeriesResult) + ); + }) + .catch(error => { + // eslint-disable-next-line no-console + console.error(error); + }); + }; +} diff --git a/src/t07/components/CrossSection.jsx b/src/t07/components/CrossSection.jsx index d4b19c25..d0b664b5 100644 --- a/src/t07/components/CrossSection.jsx +++ b/src/t07/components/CrossSection.jsx @@ -1,4 +1,4 @@ -import React, { Component } from 'react'; +import React from 'react'; import PropTypes from 'prop-types'; import Accordion from '../../components/primitive/Accordion'; import AccordionItem from '../../components/primitive/AccordionItem'; @@ -8,32 +8,27 @@ import TotalTimesSlider from './TotalTimesSlider'; import ConfiguredAxios from 'ConfiguredAxios'; import ScenarioAnalysisMapData from '../../model/ScenarioAnalysisMapData'; import ScenarioAnalysisMap from './ScenarioAnalysisMap'; -import { Component as T03Component } from '../../t03'; -import { isEqual } from 'lodash'; +import {Component as T03Component} from '../../t03'; +import {isEqual} from 'lodash'; -class CrossSection extends Component { - static propTypes = { - scenarioAnalysis: PropTypes.object, - scenarioModels: PropTypes.array, - cloneScenario: PropTypes.func, - deleteScenario: PropTypes.func, - toggleScenarioSelection: PropTypes.func, - apiKey: PropTypes.string - }; +class CrossSection extends React.Component { - state = { - selectedLayer: null, - selectedResultType: null, - selectedCoordinate: null, - mapPosition: null, - selectedTotalTimeIndex: 0, - calculations: {} - }; + constructor(props) { + super(props); + this.state = { + selectedLayer: null, + selectedResultType: null, + selectedCoordinate: null, + mapPosition: null, + selectedTotalTimeIndex: 0, + calculations: {} + }; + } componentDidMount() { // init values for LayerSelection as soon as layerScheme is available - const { scenarioAnalysis } = this.props; - const { selectedLayer, selectedResultType, mapPosition } = this.state; + const {scenarioAnalysis} = this.props; + const {selectedLayer, selectedResultType, mapPosition} = this.state; if ( !selectedLayer && scenarioAnalysis && @@ -69,7 +64,7 @@ class CrossSection extends Component { componentWillReceiveProps(nextProps) { // init values for LayerSelection as soon as layerScheme is available - const { selectedLayer, selectedResultType, mapPosition } = this.state; + const {selectedLayer, selectedResultType, mapPosition} = this.state; if ( !selectedLayer && nextProps.scenarioAnalysis && @@ -103,13 +98,13 @@ class CrossSection extends Component { } componentDidUpdate(prevProps, prevState) { - if (!isEqual( prevState, this.state )) { + if (!isEqual(prevState, this.state)) { this.fetchCalculationResults(); } } fetchCalculationResults = () => { - const { scenarioModels, scenarioAnalysis, apiKey } = this.props; + const {scenarioModels, scenarioAnalysis, apiKey} = this.props; const { selectedLayer, selectedResultType, @@ -123,7 +118,7 @@ class CrossSection extends Component { scenarioAnalysis.totalTimes && scenarioModels !== null ) { - const time = scenarioAnalysis.totalTimes.total_times[ selectedTotalTimeIndex ]; + const time = scenarioAnalysis.totalTimes.total_times[selectedTotalTimeIndex]; if (time === undefined) { return null; @@ -141,7 +136,7 @@ class CrossSection extends Component { }, params: { calculationId: - scenarioModel.calculationId + scenarioModel.calculationId } } ); @@ -158,7 +153,7 @@ class CrossSection extends Component { calculations: { ...prevState.calculations, [result.config.params.calculationId]: - result.data + result.data } })); }); @@ -169,6 +164,8 @@ class CrossSection extends Component { // TODO user friendly error handling }); } + + return null; }; onLayerSelectChange = (layer, resultType) => { @@ -197,7 +194,7 @@ class CrossSection extends Component { }; renderMaps() { - const { scenarioModels, scenarioAnalysis } = this.props; + const {scenarioModels, scenarioAnalysis} = this.props; const { mapPosition, selectedCoordinate, @@ -228,13 +225,14 @@ class CrossSection extends Component { // TODO calculation inside the render method will cause unecessary rerendering let min = Infinity; let max = -Infinity; + selectedScenarios.forEach(scenario => { const calculation = calculations[scenario.calculationId]; if (calculation) { calculation.forEach(row => { row.forEach(value => { - min = min > value ? value : min; - max = max < value ? value : max; + min = (value && min > value) ? value : min; + max = (value && max < value) ? value : max; }); }); } @@ -275,14 +273,19 @@ class CrossSection extends Component { }); } + onToggleScenarioSelection = (id) => { + this.fetchCalculationResults(); + return this.props.toggleScenarioSelection(id); + }; + render() { const { scenarioAnalysis, scenarioModels, cloneScenario, - deleteScenario, - toggleScenarioSelection + deleteScenario } = this.props; + const { selectedLayer, selectedResultType, @@ -319,7 +322,7 @@ class CrossSection extends Component { cloneScenario={cloneScenario} deleteScenario={deleteScenario} scenarioModels={scenarioModels} - toggleSelection={toggleScenarioSelection} + toggleSelection={this.onToggleScenarioSelection} permissions={scenarioAnalysis.permissions} /> @@ -363,7 +366,6 @@ class CrossSection extends Component { } } - CrossSection.propTypes = { scenarioAnalysis: PropTypes.object, scenarioModels: PropTypes.array, diff --git a/src/t07/components/Difference.jsx b/src/t07/components/Difference.jsx index 6297f9f9..b00b2bd9 100644 --- a/src/t07/components/Difference.jsx +++ b/src/t07/components/Difference.jsx @@ -1,31 +1,35 @@ -import React, { Component } from 'react'; +import React, {Component} from 'react'; import PropTypes from 'prop-types'; import LayerSelect from './LayerSelect'; import TotalTimesSlider from './TotalTimesSlider'; import ConfiguredAxios from 'ConfiguredAxios'; import ScenarioAnalysisMapData from '../../model/ScenarioAnalysisMapData'; import ScenarioAnalysisMap from './ScenarioAnalysisMap'; -import { Component as T03Component } from '../../t03'; -import { isEqual, find, pick } from 'lodash'; +import {Component as T03Component} from '../../t03'; +import {isEqual, find, pick} from 'lodash'; import SelectModel from './SelectModel'; import Icon from '../../components/primitive/Icon'; class Difference extends Component { - state = { - selectedLayer: null, - selectedResultType: null, - selectedCoordinate: null, - mapPosition: null, - selectedTotalTimeIndex: 0, - modelLeft: null, - modelRight: null, - heatMapData: null, - }; + + constructor(props) { + super(props); + this.state = { + selectedLayer: null, + selectedResultType: null, + selectedCoordinate: null, + mapPosition: null, + selectedTotalTimeIndex: 0, + modelLeft: null, + modelRight: null, + heatMapData: null, + }; + } componentDidMount() { // init values for LayerSelection as soon as layerScheme is available - const { scenarioAnalysis } = this.props; - const { selectedLayer, selectedResultType, mapPosition } = this.state; + const {scenarioAnalysis} = this.props; + const {selectedLayer, selectedResultType, mapPosition} = this.state; if ( !selectedLayer && scenarioAnalysis && @@ -61,7 +65,7 @@ class Difference extends Component { componentWillReceiveProps(nextProps) { // init values for LayerSelection as soon as layerScheme is available - const { selectedLayer, selectedResultType, mapPosition } = this.state; + const {selectedLayer, selectedResultType, mapPosition} = this.state; if ( !selectedLayer && nextProps.scenarioAnalysis && @@ -96,8 +100,8 @@ class Difference extends Component { componentDidUpdate(prevProps, prevState) { if (!isEqual( - pick(prevState, ['selectedLayer', 'selectedResultType', 'selectedCoordinate', 'selectedTotalTimeIndex', 'modelLeft', 'modelRight', ]), - pick(this.state, ['selectedLayer', 'selectedResultType', 'selectedCoordinate', 'selectedTotalTimeIndex', 'modelLeft', 'modelRight', ]) + pick(prevState, ['selectedLayer', 'selectedResultType', 'selectedCoordinate', 'selectedTotalTimeIndex', 'modelLeft', 'modelRight']), + pick(this.state, ['selectedLayer', 'selectedResultType', 'selectedCoordinate', 'selectedTotalTimeIndex', 'modelLeft', 'modelRight']) ) ) { this.fetchCalculationResults(); @@ -105,7 +109,7 @@ class Difference extends Component { } fetchCalculationResults = () => { - const { scenarioModels, scenarioAnalysis, apiKey } = this.props; + const {scenarioModels, scenarioAnalysis, apiKey} = this.props; const { selectedLayer, selectedResultType, @@ -122,14 +126,14 @@ class Difference extends Component { scenarioAnalysis.totalTimes && scenarioModels !== null ) { - const time = scenarioAnalysis.totalTimes.total_times[ selectedTotalTimeIndex ]; + const time = scenarioAnalysis.totalTimes.total_times[selectedTotalTimeIndex]; if (time === undefined) { return null; } - const leftModelCalculation = find( scenarioModels, { id: modelLeft } ); - const rightModelCalculation = find( scenarioModels, { id: modelRight } ); + const leftModelCalculation = find(scenarioModels, {id: modelLeft}); + const rightModelCalculation = find(scenarioModels, {id: modelRight}); if (!leftModelCalculation || !rightModelCalculation) { return null; @@ -141,20 +145,18 @@ class Difference extends Component { headers: { 'X-AUTH-TOKEN': apiKey }, - } ) - .then( result => { - this.setState( prevState => ({ - ...prevState, - heatMapData: result.data - }) - ); - } ) - .catch( error => { + }) + .then(result => { + this.setState(prevState => ({...prevState, heatMapData: result.data})); + }) + .catch(error => { // eslint-disable-next-line no-console - console.error( error ); + console.error(error); // TODO user friendly error handling - } ); + }); } + + return null; }; onModelChange = property => value => { @@ -190,7 +192,7 @@ class Difference extends Component { }; renderMaps() { - const { scenarioAnalysis } = this.props; + const {scenarioAnalysis} = this.props; const { mapPosition, selectedCoordinate, @@ -198,13 +200,14 @@ class Difference extends Component { heatMapData, } = this.state; - let xDifference = null; + let xCrossSection = null; if (selectedCoordinate) { const selectedGridCell = scenarioAnalysis.grid.coordinateToGridCell( selectedCoordinate ); + if (selectedGridCell) { - xDifference = scenarioAnalysis.grid.gridCellToXCrossectionBoundingBox( + xCrossSection = scenarioAnalysis.grid.gridCellToXCrossectionBoundingBox( selectedGridCell ); } @@ -216,23 +219,23 @@ class Difference extends Component { let max = null; if (heatMapData) { - heatMapData.forEach( row => { - row.forEach( value => { + heatMapData.forEach(row => { + row.forEach(value => { min = min > value ? value : min; max = max < value ? value : max; - } ); - } ); + }); + }); } - const mapData = new ScenarioAnalysisMapData( { + const mapData = new ScenarioAnalysisMapData({ area: scenarioAnalysis.area, grid: scenarioAnalysis.grid, type: selectedResultType, - xDifference, + xCrossSection: xCrossSection, heatMapData: heatMapData, globalMin: min, globalMax: max - } ); + }); return (
    @@ -297,7 +300,7 @@ class Difference extends Component {
    diff --git a/src/t07/components/LayerSelect.jsx b/src/t07/components/LayerSelect.jsx index c3790cf1..af1425bf 100644 --- a/src/t07/components/LayerSelect.jsx +++ b/src/t07/components/LayerSelect.jsx @@ -1,4 +1,4 @@ -import React, { Component } from 'react'; +import React from 'react'; import PropTypes from 'prop-types'; import Select from '../../components/primitive/Select'; import ConfiguredRadium from 'ConfiguredRadium'; @@ -8,14 +8,7 @@ const styles = { }; @ConfiguredRadium -export default class LayerSelect extends Component { - static propTypes = { - layerScheme: PropTypes.array, - onChange: PropTypes.func.isRequired, - selectedLayer: PropTypes.number, - selectedResultType: PropTypes.string - }; - +class LayerSelect extends React.Component { componentDidMount() { const { layerScheme, selectedLayer, selectedResultType } = this.props; this.setSelectOptions(layerScheme); @@ -78,3 +71,12 @@ export default class LayerSelect extends Component { ); } } + +LayerSelect.propTypes = { + layerScheme: PropTypes.array, + onChange: PropTypes.func.isRequired, + selectedLayer: PropTypes.number, + selectedResultType: PropTypes.string +}; + +export default LayerSelect; diff --git a/src/t07/components/ScenarioAnalysisMap.jsx b/src/t07/components/ScenarioAnalysisMap.jsx index 82bef631..0d588ed0 100644 --- a/src/t07/components/ScenarioAnalysisMap.jsx +++ b/src/t07/components/ScenarioAnalysisMap.jsx @@ -1,5 +1,7 @@ import '../../less/leaflet.less'; import '../../less/crossSectionMap.less'; +import React from 'react'; +import PropTypes from 'prop-types'; import { CircleMarker, @@ -10,7 +12,6 @@ import { Rectangle, TileLayer } from 'react-leaflet'; -import React, { Component, PropTypes } from 'react'; import Button from '../../components/primitive/Button'; import CanvasHeatMapOverlay from '../../core/leafletCanvasHeatMapOverlay/ReactLeafletHeatMapCanvasOverlay'; @@ -20,10 +21,10 @@ import Coordinate from '../../model/Coordinate'; import Icon from '../../components/primitive/Icon'; import Rainbow from 'rainbowvis.js'; import ScenarioAnalysisMapData from '../../model/ScenarioAnalysisMapData'; -import { sortBy } from 'lodash'; +import {sortBy} from 'lodash'; import styleGlobals from 'styleGlobals'; -import { RainbowVis } from '../../core'; -import { Selector } from '../../t03'; +import {RainbowVis} from '../../core'; +import {Selector} from '../../t03'; const RadiumMap = ConfiguredRadium(Map); @@ -75,7 +76,7 @@ const styles = { fillColor: 'blue', fillOpacity: 0.1 }, - hasNoWell: { color: '#000', weight: 0, fillOpacity: 0 }, + hasNoWell: {color: '#000', weight: 0, fillOpacity: 0}, hasWell: { color: 'blue', weight: 1, @@ -93,7 +94,7 @@ const styles = { // a factory is needed, so we always get a new Instance // we need a new Instance every time the number range changes because ReactLeafletHeatMapCanvasOverlay must update -function rainbowFactory(numberRange = { min: -50, max: 50 }) { +function rainbowFactory(numberRange = {min: -50, max: 50}) { const rainbow = new Rainbow(); rainbow.setSpectrum( '#800080', @@ -110,14 +111,7 @@ function rainbowFactory(numberRange = { min: -50, max: 50 }) { } @ConfiguredRadium -export default class ScenarioAnalysisMap extends Component { - static propTypes = { - mapData: PropTypes.instanceOf(ScenarioAnalysisMapData).isRequired, - setMapPosition: PropTypes.func, - mapPosition: PropTypes.object, - clickCoordinate: PropTypes.func.isRequired - }; - +class ScenarioAnalysisMap extends React.Component { constructor(props) { super(props); @@ -204,11 +198,7 @@ export default class ScenarioAnalysisMap extends Component { handleMove = e => { const zoom = e.target.getZoom(); const center = e.target.getCenter(); - - this.props.setMapPosition({ - center, - zoom - }); + this.props.setMapPosition({center, zoom}); }; resetView = () => { @@ -227,13 +217,13 @@ export default class ScenarioAnalysisMap extends Component { }; renderHeatMap() { - const { rainbow, heatMapData } = this.state; - const { mapData } = this.props; + const {rainbow, heatMapData} = this.state; + const {mapData} = this.props; if (!rainbow || !heatMapData || !mapData) { return null; } - const { boundingBox, grid } = mapData; + const {boundingBox, grid} = mapData; if (!boundingBox || !grid) { return null; } @@ -253,7 +243,7 @@ export default class ScenarioAnalysisMap extends Component { } renderLegend() { - const { rainbow, heatMapData } = this.state; + const {rainbow, heatMapData} = this.state; if (!rainbow || !heatMapData) { return null; @@ -275,7 +265,7 @@ export default class ScenarioAnalysisMap extends Component { value: Number(lastGradient.getMinNum()).toFixed(2) }); - return ; + return ; } renderBoundaries() { @@ -338,7 +328,7 @@ export default class ScenarioAnalysisMap extends Component { const area = this.props.mapData.area; return ( - + ); } @@ -399,7 +389,7 @@ export default class ScenarioAnalysisMap extends Component { }; render() { - const { mapPosition } = this.props; + const {mapPosition} = this.props; return (
    @@ -409,7 +399,7 @@ export default class ScenarioAnalysisMap extends Component { {...mapPosition} onClick={this.clickOnMap} zoomControl={false} - onMoveEnd={this.handleMove} + onMouseUp={this.handleMove} ref={map => { this.map = map; }} @@ -433,10 +423,19 @@ export default class ScenarioAnalysisMap extends Component { style={[styles.resetViewButton]} onClick={this.resetView} iconInside - icon={} + icon={} /> {this.renderLegend()}
    ); } } + +ScenarioAnalysisMap.propTypes = { + mapData: PropTypes.instanceOf(ScenarioAnalysisMapData), + setMapPosition: PropTypes.func, + mapPosition: PropTypes.object, + clickCoordinate: PropTypes.func.isRequired +}; + +export default ScenarioAnalysisMap; diff --git a/src/t07/components/ScenarioItem.jsx b/src/t07/components/ScenarioItem.jsx index c02ea3f4..7e4282e7 100644 --- a/src/t07/components/ScenarioItem.jsx +++ b/src/t07/components/ScenarioItem.jsx @@ -2,15 +2,12 @@ import '../../less/scenarioSelect.less'; import Button from '../../components/primitive/Button'; import Icon from '../../components/primitive/Icon'; -import { Link } from 'react-router'; +import {Link} from 'react-router'; import PropTypes from 'prop-types'; import React from 'react'; -import { includes } from 'lodash'; +import {includes} from 'lodash'; class ScenarioItem extends React.Component { - toggleSelection = () => { - this.props.toggleSelection(this.props.scenarioModel.id); - }; render() { const { @@ -42,7 +39,7 @@ class ScenarioItem extends React.Component { ) : null} {!scenarioModel.isBaseModel && - !readOnly && | } + !readOnly && | } {!readOnly && ( - )} + !readOnly && ( + + )}

    diff --git a/src/t07/containers/Main.jsx b/src/t07/containers/Main.jsx index b3c850b7..e8346894 100644 --- a/src/t07/containers/Main.jsx +++ b/src/t07/containers/Main.jsx @@ -1,5 +1,5 @@ -import { Command, Query } from '../actions'; -import React, { Component } from 'react'; +import {Command, Query} from '../actions'; +import React, {Component} from 'react'; import Accordion from '../../components/primitive/Accordion'; import AccordionItem from '../../components/primitive/AccordionItem'; @@ -7,17 +7,17 @@ import Button from '../../components/primitive/Button'; import ConfiguredRadium from 'ConfiguredRadium'; import Icon from '../../components/primitive/Icon'; import Input from '../../components/primitive/Input'; -import { LayoutComponents } from '../../core/'; +import {LayoutComponents} from '../../core/'; import Navbar from '../../containers/Navbar'; import PropTypes from 'prop-types'; import Select from '../../components/primitive/Select'; -import { connect } from 'react-redux'; -import { getApiKey } from '../../reducers/user'; -import { getScenarioAnalysisById } from '../reducers/ScenarioAnalysis'; -import { getScenarioModelsByIds } from '../reducers/ScenarioModels'; +import {connect} from 'react-redux'; +import {getApiKey} from '../../user/reducers'; +import {getScenarioAnalysisById} from '../reducers/ScenarioAnalysis'; +import {getScenarioModelsByIds} from '../reducers/ScenarioModels'; import styleGlobals from 'styleGlobals'; import uuid from 'uuid'; -import { withRouter } from 'react-router'; +import {withRouter} from 'react-router'; import * as Dashboard from '../../dashboard'; const styles = { @@ -32,21 +32,15 @@ const styles = { @ConfiguredRadium class Main extends Component { - static propTypes = { - children: PropTypes.node, - id: PropTypes.string, - fetchScenarioAnalysisDetails: PropTypes.func, - deleteScenario: PropTypes.func, - createScenario: PropTypes.func, - updateScenarioAnalysis: PropTypes.func, - createScenarioAnalysis: PropTypes.func, - apiKey: PropTypes.string, - scenarioAnalysis: PropTypes.object, - scenarioModels: PropTypes.array - }; state = { - navigation: [], + navigation: [ + { + name: 'Documentation', + path: 'https://inowas.hydro.tu-dresden.de/tools/t07-application-specific-scenarios-analyzer/', + icon: + } + ], scenarioAnalysis: { name: 'New Scenario Analysis', description: '', @@ -111,17 +105,17 @@ class Main extends Component { { name: 'Cross section', path: `/tools/T07/${id}/CrossSection`, - icon: + icon: }, { name: 'Scenarios difference', path: `/tools/T07/${id}/Difference`, - icon: + icon: }, { name: 'Time series', path: `/tools/T07/${id}/TimeSeries`, - icon: + icon: } // { // name: 'Overall budget', @@ -144,8 +138,8 @@ class Main extends Component { }; saveScenarioAnalysis = () => { - const { updateScenarioAnalysis, createScenarioAnalysis, routes, params } = this.props; - const { scenarioAnalysis } = this.state; + const {updateScenarioAnalysis, createScenarioAnalysis, routes, params} = this.props; + const {scenarioAnalysis} = this.state; if (scenarioAnalysis.id) { updateScenarioAnalysis(scenarioAnalysis.id, scenarioAnalysis); } else { @@ -154,14 +148,14 @@ class Main extends Component { }; cloneScenario = id => { - const { createScenario } = this.props; - const { scenarioAnalysis } = this.state; + const {createScenario} = this.props; + const {scenarioAnalysis} = this.state; createScenario(scenarioAnalysis.id, id, uuid.v4()); }; deleteScenario = id => { - const { deleteScenario } = this.props; - const { scenarioAnalysis } = this.state; + const {deleteScenario} = this.props; + const {scenarioAnalysis} = this.state; deleteScenario(scenarioAnalysis.id, id); }; @@ -192,11 +186,11 @@ class Main extends Component { }; render() { - const { children, id, apiKey } = this.props; - const { navigation, scenarioAnalysis, scenarioModels } = this.state; + const {children, id, apiKey} = this.props; + const {navigation, scenarioAnalysis, scenarioModels} = this.state; return (
    - + {(() => { // if we god an id but no models, than we are still loading if (!id || scenarioModels.length > 0) { @@ -284,6 +278,7 @@ class Main extends Component { apiKey }); } + return null; })()}
    ); @@ -306,7 +301,7 @@ const mapStateToProps = (state, props) => { state.dashboard.tools, 'T03' ).instances, - apiKey: getApiKey(state.user), + apiKey: getApiKey(state.session), scenarioAnalysis, scenarioModels: scenarioAnalysis ? getScenarioModelsByIds(state, props) @@ -315,13 +310,32 @@ const mapStateToProps = (state, props) => { }; }; +const mapDispatchToProps = { + loadInstances: Dashboard.Modifier.Query.loadInstances, + fetchScenarioAnalysisDetails: Query.fetchScenarioAnalysisDetails, + deleteScenario: Command.deleteScenario, + createScenario: Command.createScenario, + updateScenarioAnalysis: Command.updateScenarioAnalysis, + createScenarioAnalysis: Command.createScenarioAnalysis +}; + +Main.propTypes = { + apiKey: PropTypes.string, + children: PropTypes.node, + createScenario: PropTypes.func, + createScenarioAnalysis: PropTypes.func, + deleteScenario: PropTypes.func, + fetchScenarioAnalysisDetails: PropTypes.func, + id: PropTypes.string, + loadInstances: PropTypes.func, + params: PropTypes.object, + models: PropTypes.array, + updateScenarioAnalysis: PropTypes.func, + routes: PropTypes.array, + scenarioAnalysis: PropTypes.object, + scenarioModels: PropTypes.array +}; + export default withRouter( - connect(mapStateToProps, { - loadInstances: Dashboard.Modifier.Query.loadInstances, - fetchScenarioAnalysisDetails: Query.fetchScenarioAnalysisDetails, - deleteScenario: Command.deleteScenario, - createScenario: Command.createScenario, - updateScenarioAnalysis: Command.updateScenarioAnalysis, - createScenarioAnalysis: Command.createScenarioAnalysis - })(Main) + connect(mapStateToProps, mapDispatchToProps)(Main) ); diff --git a/src/t07/containers/T07B.jsx b/src/t07/containers/T07B.jsx index 05dd13cf..e2d4b9ce 100644 --- a/src/t07/containers/T07B.jsx +++ b/src/t07/containers/T07B.jsx @@ -13,7 +13,7 @@ import { setSelectedTotalTimeIndex, setupT07b, updateResultsT07B -} from '../../actions/T07'; +} from '../actions/actions'; import ArraySlider from '../../components/primitive/ArraySlider'; import Chart from 'react-c3js'; @@ -24,12 +24,11 @@ import LayerNumber from '../../model/LayerNumber'; import Navbar from '../../containers/Navbar'; import PropTypes from 'prop-types'; import ResultType from '../../model/ResultType'; -import ScenarioAnalysisMap from '../../components/modflow/ScenarioAnalysisMap'; -import ScenarioAnalysisMapData from '../../model/ScenarioAnalysisMapData'; import TotalTime from '../../model/TotalTime'; import { connect } from 'react-redux'; -import { push } from 'react-router-redux'; import { withRouter } from 'react-router'; +import ScenarioAnalysisMapData from '../../model/ScenarioAnalysisMapData'; +import ScenarioAnalysisMap from '../components/ScenarioAnalysisMap'; class T07B extends Component { static propTypes = { @@ -86,9 +85,7 @@ class T07B extends Component { } componentWillMount() { - // eslint-disable-next-line no-shadow - const { fetchDetails } = this.props; - fetchDetails(this.props.params.id, dispatch => { + this.props.fetchDetails(this.props.params.id, dispatch => { dispatch(setupT07b()); }); } @@ -240,7 +237,8 @@ class T07B extends Component { ); } - renderModelSelect(models) { + renderModelSelect() { + const {models} = this.props.models; return models.map(m => { return (
    + + {this.renderErrorMessage()} +
    { return { - userLoggedIn: isUserLoggedIn(state.user) + userIsLoggedIn: hasSessionKey(state.user) }; }; SignUp.propTypes = { - push: PropTypes.func.isRequired, - signup: PropTypes.func.isRequired, - userLoggedIn: PropTypes.bool.isRequired + router: PropTypes.object.isRequired, + userIsLoggedIn: PropTypes.bool.isRequired, + userSignUpPending: PropTypes.bool.isRequired }; // eslint-disable-next-line no-class-assign -SignUp = withRouter(connect(mapStateToProps, {push, signup})(SignUp)); +SignUp = withRouter(connect(mapStateToProps)(SignUp)); export default SignUp; diff --git a/src/user/containers/UserCredentials.jsx b/src/user/containers/UserCredentials.jsx new file mode 100644 index 00000000..f9de4bfa --- /dev/null +++ b/src/user/containers/UserCredentials.jsx @@ -0,0 +1,215 @@ +import '../../less/login.less'; + +import PropTypes from 'prop-types'; +import React from 'react'; + +import {connect} from 'react-redux'; +import {withRouter} from 'react-router'; +import {Button, Container, Form, Grid, Header, Image, Message} from 'semantic-ui-react'; +import NavBar from './Navbar'; +import {changePassword} from '../actions/actions'; +import logo from '../images/favicon.png'; + +const styles = { + link: {cursor: 'pointer'}, + wrapper: {marginTop: 40}, + form: {textAlign: 'left'} +}; + +class UserCredentials extends React.Component { + constructor(props) { + super(props); + this.state = { + oldPassword: '', + newPassword: '', + passwordConfirmation: '', + showErrorMessages: false + }; + } + + componentWillReceiveProps(nextProps) { + const {webData} = nextProps; + if (this.isSuccess(webData)) { + this.setState({ + oldPassword: '', + newPassword: '', + passwordConfirmation: '', + showErrorMessages: false + }); + } + } + + onInputChange = (e) => { + const name = e.target.name; + const value = e.target.value; + this.setState({ + [name]: value + }); + }; + + validate = () => { + const {newPassword, passwordConfirmation} = this.state; + if (newPassword.length <= 5) { + return { + isValid: false, + message: 'The password has to be larger then 5 digits.' + }; + } + if (newPassword !== passwordConfirmation) { + return { + isValid: false, + message: 'The confirmed password is not the same as the password.' + }; + } + return { + isValid: true, + message: '' + }; + }; + + onSubmitClick = () => { + const {oldPassword, newPassword} = this.state; + const formValidation = this.validate(); + if (formValidation.isValid) { + this.props.changePassword({ + oldPassword, newPassword + }); + } + + this.setState({ + showErrorMessages: true + }); + }; + + renderMessage = () => { + // The request was successful + const {webData} = this.props; + if (this.isSuccess(webData)) { + return ( + + {'Your new password has been saved.'} + + ); + } + + // A request-Error was happening + if (this.isError()) { + return ( + + {'The current password seems to be wrong.'} + + ); + } + + // A Form-Validation-Error was happening + const formValidation = this.validate(); + if (!this.state.showErrorMessages || formValidation.isValid) { + return null; + } + + return ( + + {formValidation.message} + + ); + }; + + isError = () => { + const request = this.props.webData['users/CHANGE_PASSWORD']; + return request && request.type === 'error'; + }; + + isLoading = () => { + const request = this.props.webData['users/CHANGE_PASSWORD']; + return request && request.type === 'loading'; + }; + + isSuccess = (webData) => { + if (!webData) { + return false; + } + const request = webData['users/CHANGE_PASSWORD']; + return request && request.type === 'success'; + }; + + render() { + const {oldPassword, newPassword, passwordConfirmation} = this.state; + return ( +
    + + + + +
    + + + Change Password + +
    + + {this.renderMessage()} + + + + + + + + + + + + + + + + +
    +
    +
    +
    + ); + } +} + +const mapStateToProps = state => { + return { + webData: state.webData + }; +}; + +const mapDispatchToProps = { + changePassword: changePassword +}; + +UserCredentials.propTypes = { + webData: PropTypes.object.isRequired, + changePassword: PropTypes.func.isRequired, + router: PropTypes.object.isRequired +}; + +export default withRouter(connect(mapStateToProps, mapDispatchToProps)(UserCredentials)); diff --git a/src/user/containers/UserProfile.jsx b/src/user/containers/UserProfile.jsx new file mode 100644 index 00000000..b7782ab5 --- /dev/null +++ b/src/user/containers/UserProfile.jsx @@ -0,0 +1,184 @@ +import '../../less/login.less'; + +import PropTypes from 'prop-types'; +import React from 'react'; + +import {connect} from 'react-redux'; +import {hasSessionKey} from '../reducers'; +import {withRouter} from 'react-router'; +import {Button, Container, Form, Grid, Header, Image, Message} from 'semantic-ui-react'; +import NavBar from './Navbar'; +import {putUserProfile} from '../actions/actions'; +import logo from '../images/favicon.png'; + +const styles = { + link: {cursor: 'pointer'}, + wrapper: {marginTop: 40}, + form: {textAlign: 'left'} +}; + +class UserProfile extends React.Component { + constructor(props) { + const {name, institution, email} = props.profile; + super(props); + this.state = { + name, + institution, + email, + showErrorMessages: false, + success: false, + error: false, + dirty: false, + loading: false + }; + } + + componentWillReceiveProps(nextProps) { + const {name, institution, email} = nextProps.profile; + this.setState({ + name, + institution, + email, + loading: false + }); + } + + onInputChange = (e) => { + const name = e.target.name; + const value = e.target.value; + this.setState({ + [name]: value, + dirty: true + }); + }; + + validateEmail = (email) => { + const re = /\S+@\S+\.\S+/; + return re.test(email); + }; + + validate = (email) => { + if (!this.validateEmail(email)) { + return { + isValid: false, + message: 'The email-address is not correct.' + }; + } + + return { + isValid: true, + message: '' + }; + }; + + onSubmitClick = () => { + const {name, email, institution} = this.state; + const formValidation = this.validate(email); + if (formValidation.isValid) { + this.props.putUserProfile({ + name, email, institution + }); + this.setState({loading: true}); + } + + this.setState({ + showErrorMessages: true + }); + }; + + renderErrorMessage = () => { + const formValidation = this.validate(this.state.email); + if (!this.state.showErrorMessages || formValidation.isValid) { + return null; + } + + return ( + + {formValidation.message} + + ); + }; + + render() { + const {name, email, institution} = this.state; + return ( +
    + + + + +
    + + + User Profile + +
    + + {this.renderErrorMessage()} + +
    + + + + + + + + + + + + + +
    +
    +
    +
    +
    + ); + } +} + +const mapStateToProps = state => { + return { + userIsLoggedIn: hasSessionKey(state.user), + profile: state.user.profile + }; +}; + +const mapDispatchToProps = { + putUserProfile: putUserProfile +}; + +UserProfile.propTypes = { + profile: PropTypes.object.isRequired, + putUserProfile: PropTypes.func.isRequired, + router: PropTypes.object.isRequired +}; + +export default withRouter(connect(mapStateToProps, mapDispatchToProps)(UserProfile)); diff --git a/src/user/containers/index.js b/src/user/containers/index.js new file mode 100644 index 00000000..a49ab33a --- /dev/null +++ b/src/user/containers/index.js @@ -0,0 +1,19 @@ +import AppForAllUsers from './AppForAllUsers'; +import AppForAdminUser from './AppForAdminUser'; +import AppForAuthenticatedUser from './AppForAuthenticatedUser'; +import Login from './Login'; +import Logout from './Logout'; +import SignUp from './SignUp'; +import UserCredentials from './UserCredentials'; +import UserProfile from './UserProfile'; + +export { + AppForAllUsers, + AppForAdminUser, + AppForAuthenticatedUser, + Login, + Logout, + SignUp, + UserCredentials, + UserProfile +}; diff --git a/src/user/images/favicon.png b/src/user/images/favicon.png new file mode 100644 index 00000000..4bb35318 Binary files /dev/null and b/src/user/images/favicon.png differ diff --git a/src/user/index.js b/src/user/index.js new file mode 100644 index 00000000..81548f09 --- /dev/null +++ b/src/user/index.js @@ -0,0 +1,13 @@ +import * as Actions from './actions/index'; +import * as Container from './containers/index'; +import * as Modifier from './actions/index'; +import * as Reducer from './reducers/index'; +import * as Saga from './saga/index'; + +export { + Actions, + Container, + Modifier, + Reducer, + Saga +}; diff --git a/src/user/reducers/index.js b/src/user/reducers/index.js new file mode 100644 index 00000000..1d53ae10 --- /dev/null +++ b/src/user/reducers/index.js @@ -0,0 +1,18 @@ +import {user, isAdmin, getEmail, getFetched, getName, getRoles, getUserName, } from './user'; +import {session, getApiKey, hasSessionKey} from './session'; + +export { + user, + session +}; + +export { + getUserName, + getRoles, + getName, + getEmail, + getFetched, + getApiKey, + isAdmin, + hasSessionKey +}; diff --git a/src/user/reducers/session.js b/src/user/reducers/session.js new file mode 100644 index 00000000..dad8c8b8 --- /dev/null +++ b/src/user/reducers/session.js @@ -0,0 +1,41 @@ +import {LOGIN, LOGIN_ERROR, LOGOUT, UNAUTHORIZED} from '../actions/actions'; + +function initialState() { + return { + apiKey: localStorage.getItem('apiKey'), + error: false + }; +} + +export const session = (state = initialState(), action) => { + switch (action.type) { + case LOGIN: { + localStorage.setItem('apiKey', action.payload.apiKey); + return { + ...state, + apiKey: action.payload.apiKey, + error: false + }; + } + + case LOGIN_ERROR: { + return { + ...state, + error: true + }; + } + + case UNAUTHORIZED: + case LOGOUT: { + localStorage.removeItem('apiKey'); + return initialState(); + } + + default: { + return state; + } + } +}; + +export const hasSessionKey = state => !!state.apiKey; +export const getApiKey = state => state.apiKey; diff --git a/src/reducers/user.js b/src/user/reducers/user.js similarity index 52% rename from src/reducers/user.js rename to src/user/reducers/user.js index 6bd23f93..0de58fd3 100644 --- a/src/reducers/user.js +++ b/src/user/reducers/user.js @@ -1,52 +1,57 @@ +import {LOGOUT, SET_USER} from '../actions/actions'; +import {SET_USER_PROFILE} from '../actions/events'; + function initialState() { return { userName: '', name: '', - apiKey: localStorage.getItem('apiKey'), email: '', - enabled: false, - roles: [] + enabled: true, + roles: [], + profile: { + 'name': '', + 'email': '', + 'institution': '' + }, + fetched: false }; } -const user = (state = initialState(), action) => { +export const user = (state = initialState(), action) => { switch (action.type) { - - case 'LOGIN': - case 'SIGNUP_SUCCESSFUL': { - localStorage.setItem('apiKey', action.payload.apiKey); + case SET_USER: { return { ...state, - apiKey: action.payload.apiKey + userName: action.payload.user_name || state.userName, + name: action.payload.name || state.name, + email: action.payload.email || state.email, + roles: action.payload.roles || state.roles, + profile: action.payload.profile || state.profile, + enabled: action.payload.enabled || state.enabled, + fetched: true }; } - case 'UNAUTHORIZED': - case 'LOGOUT': { - localStorage.removeItem('apiKey'); - return initialState(); - } - - case 'USER_SET_INFORMATION': { + case SET_USER_PROFILE: { return { ...state, - userName: action.payload.user_name || state.userName, - name: action.payload.name || state.name, - email: action.payload.email || state.email, - roles: action.payload.roles || state.roles, - enabled: action.payload.enabled || state.enabled + profile: action.payload }; } + + case LOGOUT: { + return initialState(); + } + default: { return state; } } }; -export default user; - -export const isUserLoggedIn = state => state.apiKey !== null; -export const getApiKey = state => state.apiKey; -export const getUserName = state => state.userName; -export const getName = state => state.name; export const getEmail = state => state.email; +export const getName = state => state.name; +export const getRoles = state => state.roles; +export const getUserName = state => state.userName; +export const getFetched = state => state.fetched; +export const isAdmin = state => state.roles && Array.isArray(state.roles) && state.roles.includes('ROLE_ADMIN'); diff --git a/src/user/saga/authenticateUser.js b/src/user/saga/authenticateUser.js new file mode 100644 index 00000000..cd4c0040 --- /dev/null +++ b/src/user/saga/authenticateUser.js @@ -0,0 +1,24 @@ +import {put, take, call} from 'redux-saga/effects'; +import {Action} from '../actions/index'; +import {WebData} from '../../core'; + +export default function* authenticateFlow() { + // eslint-disable-next-line no-constant-condition + while (true) { + const {type, username, password} = yield take(Action.AUTHENTICATION); + + const responseData = yield call(WebData.Saga.singleAjaxRequest, { + url: '/users/credentials.json', + provokingActionType: type, + method: 'post', + data: {username: username, password: password} + }); + + if (responseData) { + yield put(Action.login(username, responseData.api_key)); + continue; + } + + yield put(Action.loginError()); + } +} diff --git a/src/user/saga/changePassword.js b/src/user/saga/changePassword.js new file mode 100644 index 00000000..cd89df22 --- /dev/null +++ b/src/user/saga/changePassword.js @@ -0,0 +1,17 @@ +import { take, call } from 'redux-saga/effects'; +import { Action } from '../actions/index'; +import { WebData } from '../../core'; + +export default function* changePassword() { + // eslint-disable-next-line no-constant-condition + while (true) { + const { type, payload } = yield take(Action.CHANGE_PASSWORD); + + yield call(WebData.Saga.singleAjaxRequest, { + url: '/users/changePassword', + provokingActionType: type, + method: 'post', + data: payload + }); + } +} diff --git a/src/user/saga/fetchUser.js b/src/user/saga/fetchUser.js new file mode 100644 index 00000000..0073b14d --- /dev/null +++ b/src/user/saga/fetchUser.js @@ -0,0 +1,19 @@ +import { put, take, call } from 'redux-saga/effects'; +import { Action } from '../actions/index'; +import { WebData } from '../../core'; + +export default function* fetchUserFlow() { + // eslint-disable-next-line no-constant-condition + while (true) { + const { type } = yield take(Action.FETCH_USER); + + const responseData = yield call(WebData.Saga.singleAjaxRequest, { + url: '/users.json', + provokingActionType: type + }); + + if (responseData) { + yield put(Action.setUser(responseData)); + } + } +} diff --git a/src/user/saga/index.js b/src/user/saga/index.js new file mode 100644 index 00000000..f6a64d4c --- /dev/null +++ b/src/user/saga/index.js @@ -0,0 +1,11 @@ +import authenticateUser from './authenticateUser'; +import changePassword from './changePassword'; +import fetchUser from './fetchUser'; +import updateUserProfile from './updateUserProfile'; + +export { + authenticateUser, + changePassword, + fetchUser, + updateUserProfile +}; diff --git a/src/user/saga/updateUserProfile.js b/src/user/saga/updateUserProfile.js new file mode 100644 index 00000000..29ed08ff --- /dev/null +++ b/src/user/saga/updateUserProfile.js @@ -0,0 +1,21 @@ +import { put, take, call } from 'redux-saga/effects'; +import { Action, Event } from '../actions/index'; +import { WebData } from '../../core'; + +export default function* updateUserProfile() { + // eslint-disable-next-line no-constant-condition + while (true) { + const { type, payload } = yield take(Action.PUT_USER_PROFILE); + + const responseData = yield call(WebData.Saga.singleAjaxRequest, { + url: '/users.json', + provokingActionType: type, + method: 'put', + data: payload + }); + + if (responseData) { + yield put(Event.setUserProfile(payload)); + } + } +} diff --git a/webpack.config.babel.js b/webpack.config.babel.js index 6cc75a4f..0d5c4c45 100644 --- a/webpack.config.babel.js +++ b/webpack.config.babel.js @@ -32,7 +32,8 @@ export default { new HtmlWebpackPlugin( { template: 'src/index.tpl.html', inject: 'body', - filename: 'index.html' + filename: 'index.html', + hash: true } ), new HotModuleReplacementPlugin(), new NoEmitOnErrorsPlugin(), diff --git a/webpack.production.config.babel.js b/webpack.production.config.babel.js index a1af6565..fc593936 100644 --- a/webpack.production.config.babel.js +++ b/webpack.production.config.babel.js @@ -7,6 +7,7 @@ import FaviconsWebpackPlugin from 'favicons-webpack-plugin'; // import ImageminPlugin from 'imagemin-webpack-plugin'; import HtmlWebpackPlugin from 'html-webpack-plugin'; import OptimizeCssAssetsPlugin from 'optimize-css-assets-webpack-plugin'; +import UglifyJsPlugin from 'uglifyjs-webpack-plugin'; import path from 'path'; export default { @@ -24,7 +25,8 @@ export default { new HtmlWebpackPlugin({ template: 'src/index.tpl.html', inject: 'body', - filename: 'index.html' + filename: 'index.html', + hash: true }), new NoEmitOnErrorsPlugin(), new NamedModulesPlugin(), @@ -33,7 +35,8 @@ export default { }), new ExtractTextPlugin('styles.min.css'), new OptimizeCssAssetsPlugin(), - new FaviconsWebpackPlugin('images/favicon.png') + new FaviconsWebpackPlugin('images/favicon.png'), + new UglifyJsPlugin() ], module: { rules: [ diff --git a/yarn.lock b/yarn.lock index b48a1c2d..c73d7cd2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,946 +2,1077 @@ # yarn lockfile v1 -"@turf/along@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/along/-/along-5.0.4.tgz#1ea8a0dd77227b5c947f8de609560a9bdc32e686" +"@turf/along@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/along/-/along-5.1.5.tgz#61d6e6a6584acddab56ac5584e07bf8cbe5f8beb" dependencies: - "@turf/bearing" "^5.0.4" - "@turf/destination" "^5.0.4" - "@turf/distance" "^5.0.4" - "@turf/helpers" "^5.0.4" + "@turf/bearing" "^5.1.5" + "@turf/destination" "^5.1.5" + "@turf/distance" "^5.1.5" + "@turf/helpers" "^5.1.5" -"@turf/area@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/area/-/area-5.0.4.tgz#780a58e4d58b1200c0edfff2a39ba68071e92f95" +"@turf/area@5.1.x", "@turf/area@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/area/-/area-5.1.5.tgz#efd899bfd260cdbd1541b2a3c155f8a5d2eefa1d" dependencies: - "@turf/helpers" "^5.0.4" - "@turf/meta" "^5.0.4" + "@turf/helpers" "^5.1.5" + "@turf/meta" "^5.1.5" -"@turf/bbox-clip@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/bbox-clip/-/bbox-clip-5.0.4.tgz#ef419fb4b42995f35c8037803ebd3e300363844e" +"@turf/bbox-clip@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/bbox-clip/-/bbox-clip-5.1.5.tgz#3364b5328dff9f3cf41d9e02edaff374d150cc84" dependencies: - "@turf/helpers" "^5.0.4" - "@turf/invariant" "^5.0.4" + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" lineclip "^1.1.5" -"@turf/bbox-polygon@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/bbox-polygon/-/bbox-polygon-5.0.4.tgz#dba2a442ac6aab447cf7925052b38175ed7efd70" +"@turf/bbox-polygon@5.1.x", "@turf/bbox-polygon@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/bbox-polygon/-/bbox-polygon-5.1.5.tgz#6aeba4ed51d85d296e0f7c38b88c339f01eee024" dependencies: - "@turf/helpers" "^5.0.4" + "@turf/helpers" "^5.1.5" -"@turf/bbox@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/bbox/-/bbox-5.0.4.tgz#5c3d288f9900661cbdc173cd46041c13829af311" +"@turf/bbox@5.1.x", "@turf/bbox@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/bbox/-/bbox-5.1.5.tgz#3051df514ad4c50f4a4f9b8a2d15fd8b6840eda3" dependencies: - "@turf/helpers" "^5.0.4" - "@turf/meta" "^5.0.4" + "@turf/helpers" "^5.1.5" + "@turf/meta" "^5.1.5" -"@turf/bearing@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/bearing/-/bearing-5.0.4.tgz#7d145169a05021ec1da0a0541e0e991def5dbe4e" +"@turf/bearing@5.1.x", "@turf/bearing@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/bearing/-/bearing-5.1.5.tgz#7a0b790136c4ef4797f0246305d45cbe2d27b3f7" dependencies: - "@turf/helpers" "^5.0.4" - "@turf/invariant" "^5.0.4" + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" -"@turf/bezier-spline@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/bezier-spline/-/bezier-spline-5.0.4.tgz#0b5a293d912acc9494886fd9bc035d60fe152d0c" +"@turf/bearing@6.x": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@turf/bearing/-/bearing-6.0.1.tgz#8da5d17092e571f170cde7bfb2e5b0d74923c92d" dependencies: - "@turf/helpers" "^5.0.4" - "@turf/invariant" "^5.0.4" + "@turf/helpers" "6.x" + "@turf/invariant" "6.x" -"@turf/boolean-clockwise@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/boolean-clockwise/-/boolean-clockwise-5.0.4.tgz#d2d7ebae0a5bc8f93429229532eeeaea556f3817" +"@turf/bezier-spline@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/bezier-spline/-/bezier-spline-5.1.5.tgz#59a27bba5d7b97ef15ab3fd5a40fbd2387049bca" dependencies: - "@turf/helpers" "^5.0.4" - "@turf/invariant" "^5.0.4" + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" -"@turf/boolean-contains@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/boolean-contains/-/boolean-contains-5.0.4.tgz#539d9d7916522777407baa0a787f651763d2a4bf" +"@turf/boolean-clockwise@5.1.x", "@turf/boolean-clockwise@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/boolean-clockwise/-/boolean-clockwise-5.1.5.tgz#3302b7dac62c5e291a0789e29af7283387fa9deb" dependencies: - "@turf/bbox" "^5.0.4" - "@turf/boolean-point-in-polygon" "^5.0.4" - "@turf/boolean-point-on-line" "^5.0.4" - "@turf/helpers" "^5.0.4" - "@turf/invariant" "^5.0.4" + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" -"@turf/boolean-crosses@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/boolean-crosses/-/boolean-crosses-5.0.4.tgz#2387291a31808f31285a801d726536e379ff65ad" +"@turf/boolean-contains@5.1.x", "@turf/boolean-contains@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/boolean-contains/-/boolean-contains-5.1.5.tgz#596d63aee636f7ad53ee99f9ff24c96994a0ef14" dependencies: - "@turf/boolean-point-in-polygon" "^5.0.4" - "@turf/helpers" "^5.0.4" - "@turf/invariant" "^5.0.4" - "@turf/line-intersect" "^5.0.4" - "@turf/polygon-to-line" "^5.0.4" + "@turf/bbox" "^5.1.5" + "@turf/boolean-point-in-polygon" "^5.1.5" + "@turf/boolean-point-on-line" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" -"@turf/boolean-disjoint@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/boolean-disjoint/-/boolean-disjoint-5.0.4.tgz#d03c486c2347048e7631880ddae719b4436199f5" +"@turf/boolean-crosses@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/boolean-crosses/-/boolean-crosses-5.1.5.tgz#01bfaea2596f164de4a4d325094dc7c255c715d6" dependencies: - "@turf/boolean-point-in-polygon" "^5.0.4" - "@turf/line-intersect" "^5.0.4" - "@turf/meta" "^5.0.4" - "@turf/polygon-to-line" "^5.0.4" + "@turf/boolean-point-in-polygon" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + "@turf/line-intersect" "^5.1.5" + "@turf/polygon-to-line" "^5.1.5" -"@turf/boolean-equal@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/boolean-equal/-/boolean-equal-5.0.4.tgz#06ff032b787fedf0eea9afa918327e93c12c0e3a" +"@turf/boolean-disjoint@5.1.x": + version "5.1.6" + resolved "https://registry.yarnpkg.com/@turf/boolean-disjoint/-/boolean-disjoint-5.1.6.tgz#3fbd87084b269133f5fd15725deb3c6675fb8a9d" dependencies: - "@turf/clean-coords" "^5.0.4" - "@turf/invariant" "^5.0.4" + "@turf/boolean-point-in-polygon" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/line-intersect" "^5.1.5" + "@turf/meta" "^5.1.5" + "@turf/polygon-to-line" "^5.1.5" + +"@turf/boolean-equal@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/boolean-equal/-/boolean-equal-5.1.5.tgz#29f8f6d60bb84507dfd765b32254db8e72c938a4" + dependencies: + "@turf/clean-coords" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" geojson-equality "0.1.6" -"@turf/boolean-overlap@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/boolean-overlap/-/boolean-overlap-5.0.4.tgz#81b34645ab69d929f9a31d4732e1c4aae9e76b2a" +"@turf/boolean-overlap@5.1.x", "@turf/boolean-overlap@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/boolean-overlap/-/boolean-overlap-5.1.5.tgz#0d4e64c52c770a28e93d9efcdf8a8b8373acce75" dependencies: - "@turf/invariant" "^5.0.4" - "@turf/line-intersect" "^5.0.4" - "@turf/line-overlap" "^5.0.4" - "@turf/meta" "^5.0.4" + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + "@turf/line-intersect" "^5.1.5" + "@turf/line-overlap" "^5.1.5" + "@turf/meta" "^5.1.5" geojson-equality "0.1.6" -"@turf/boolean-parallel@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/boolean-parallel/-/boolean-parallel-5.0.4.tgz#be87e05bd6cde30d453fdf94d71b09e85e7cb41b" +"@turf/boolean-parallel@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/boolean-parallel/-/boolean-parallel-5.1.5.tgz#739358475ea5b65c7e1827a3c3e0e8a687d3a85d" dependencies: - "@turf/clean-coords" "^5.0.4" - "@turf/helpers" "^5.0.4" - "@turf/line-segment" "^5.0.4" - "@turf/rhumb-bearing" "^5.0.4" + "@turf/clean-coords" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/line-segment" "^5.1.5" + "@turf/rhumb-bearing" "^5.1.5" -"@turf/boolean-point-in-polygon@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/boolean-point-in-polygon/-/boolean-point-in-polygon-5.0.4.tgz#70702d8a67368512d1de8c69cb71f8c7ee3747ba" +"@turf/boolean-point-in-polygon@5.1.x", "@turf/boolean-point-in-polygon@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/boolean-point-in-polygon/-/boolean-point-in-polygon-5.1.5.tgz#f01cc194d1e030a548bfda981cba43cfd62941b7" dependencies: - "@turf/invariant" "^5.0.4" + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" -"@turf/boolean-point-on-line@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/boolean-point-on-line/-/boolean-point-on-line-5.0.4.tgz#cebd66300ed0d85dd98a689cf54e5874cc7ed2a3" +"@turf/boolean-point-on-line@5.1.x", "@turf/boolean-point-on-line@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/boolean-point-on-line/-/boolean-point-on-line-5.1.5.tgz#f633c5ff802ad24bb8f158dadbaf6ff4a023dd7b" dependencies: - "@turf/helpers" "^5.0.4" - "@turf/invariant" "^5.0.4" + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" -"@turf/boolean-within@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/boolean-within/-/boolean-within-5.0.4.tgz#46a0eee01c742f027cf090f231094bc093b4e515" +"@turf/boolean-within@5.1.x", "@turf/boolean-within@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/boolean-within/-/boolean-within-5.1.5.tgz#47105d56d0752a9d0fbfcd43c36a5f9149dc8697" dependencies: - "@turf/bbox" "^5.0.4" - "@turf/boolean-point-in-polygon" "^5.0.4" - "@turf/boolean-point-on-line" "^5.0.4" - "@turf/helpers" "^5.0.4" - "@turf/invariant" "^5.0.4" + "@turf/bbox" "^5.1.5" + "@turf/boolean-point-in-polygon" "^5.1.5" + "@turf/boolean-point-on-line" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" -"@turf/buffer@^5.0.4": - version "5.0.5" - resolved "https://registry.yarnpkg.com/@turf/buffer/-/buffer-5.0.5.tgz#2d82d0f21d3bc191902d49f0c08e6badfda7e5d3" +"@turf/buffer@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/buffer/-/buffer-5.1.5.tgz#841c9627cfb974b122ac4e1a956f0466bc0231c4" dependencies: - "@turf/bbox" "^5.0.4" - "@turf/center" "^5.0.4" - "@turf/helpers" "^5.0.4" - "@turf/meta" "^5.0.4" - "@turf/projection" "^5.0.4" + "@turf/bbox" "^5.1.5" + "@turf/center" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/meta" "^5.1.5" + "@turf/projection" "^5.1.5" d3-geo "1.7.1" turf-jsts "*" -"@turf/center-of-mass@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/center-of-mass/-/center-of-mass-5.0.4.tgz#225338b81b466d019be2ab167c21cdc0810cd1c6" +"@turf/center-mean@5.1.x", "@turf/center-mean@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/center-mean/-/center-mean-5.1.5.tgz#8c8e9875391e5f09f0e6e78f5d661b88b2108a0a" + dependencies: + "@turf/bbox" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/meta" "^5.1.5" + +"@turf/center-median@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/center-median/-/center-median-5.1.5.tgz#bb461bfe7a2a48601d8a4727685718723a14a872" + dependencies: + "@turf/center-mean" "^5.1.5" + "@turf/centroid" "^5.1.5" + "@turf/distance" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/meta" "^5.1.5" + +"@turf/center-of-mass@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/center-of-mass/-/center-of-mass-5.1.5.tgz#4d3bd79d88498dbab8324d4f69f0322f6520b9ca" + dependencies: + "@turf/centroid" "^5.1.5" + "@turf/convex" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + "@turf/meta" "^5.1.5" + +"@turf/center@5.1.x", "@turf/center@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/center/-/center-5.1.5.tgz#44ab2cd954f63c0d37757f7158a99c3ef5114b80" dependencies: - "@turf/centroid" "^5.0.4" - "@turf/convex" "^5.0.4" - "@turf/helpers" "^5.0.4" - "@turf/invariant" "^5.0.4" - "@turf/meta" "^5.0.4" + "@turf/bbox" "^5.1.5" + "@turf/helpers" "^5.1.5" -"@turf/center@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/center/-/center-5.0.4.tgz#32bf142564c1fd2b5ed6ddc24f452f48822020b1" +"@turf/centroid@5.1.x", "@turf/centroid@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/centroid/-/centroid-5.1.5.tgz#778ada74216335021ad8fd0e7a65a8349d53c769" dependencies: - "@turf/bbox" "^5.0.4" - "@turf/helpers" "^5.0.4" + "@turf/helpers" "^5.1.5" + "@turf/meta" "^5.1.5" -"@turf/centroid@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/centroid/-/centroid-5.0.4.tgz#31fcef5c2ca94b234217c7bb779091473358c7ec" +"@turf/circle@5.1.x", "@turf/circle@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/circle/-/circle-5.1.5.tgz#9b1577835508ab52fb1c10b2a5065cba2b87b6a5" dependencies: - "@turf/helpers" "^5.0.4" - "@turf/meta" "^5.0.4" + "@turf/destination" "^5.1.5" + "@turf/helpers" "^5.1.5" -"@turf/circle@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/circle/-/circle-5.0.4.tgz#cf9015fd2df178aa7dab0366a13efc5677af23ab" +"@turf/clean-coords@5.1.x", "@turf/clean-coords@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/clean-coords/-/clean-coords-5.1.5.tgz#12800a98a78c9a452a72ec428493c43acf2ada1f" dependencies: - "@turf/destination" "^5.0.4" - "@turf/helpers" "^5.0.4" + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" -"@turf/clean-coords@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/clean-coords/-/clean-coords-5.0.4.tgz#5e31844068b8de03ed1a2fcd7e2e470a6843dfd8" +"@turf/clone@5.1.x", "@turf/clone@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/clone/-/clone-5.1.5.tgz#253e8d35477181976e33adfab50a0f02a7f0e367" dependencies: - "@turf/helpers" "^5.0.4" - "@turf/invariant" "^5.0.4" + "@turf/helpers" "^5.1.5" -"@turf/clone@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/clone/-/clone-5.0.4.tgz#7b00fa995b06033e122e0630cadb884e97d15b00" +"@turf/clone@6.x": + version "6.0.2" + resolved "https://registry.yarnpkg.com/@turf/clone/-/clone-6.0.2.tgz#7563cebbb3e2e19f361599bb244467e0dcc205c9" + dependencies: + "@turf/helpers" "6.x" -"@turf/clusters-dbscan@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/clusters-dbscan/-/clusters-dbscan-5.0.4.tgz#525b7b67b2d43eeceeceec7172201d16e99200d7" +"@turf/clusters-dbscan@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/clusters-dbscan/-/clusters-dbscan-5.1.5.tgz#5781fb4e656c747a0b8e9937df73181c0309e26f" dependencies: - "@turf/clone" "^5.0.4" - "@turf/distance" "^5.0.4" - "@turf/helpers" "^5.0.4" - "@turf/invariant" "^5.0.4" - "@turf/meta" "^5.0.4" + "@turf/clone" "^5.1.5" + "@turf/distance" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + "@turf/meta" "^5.1.5" density-clustering "1.3.0" -"@turf/clusters-kmeans@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/clusters-kmeans/-/clusters-kmeans-5.0.4.tgz#a2dcb6237ed5eba35a54c49d2ba4c673efd3fc71" +"@turf/clusters-kmeans@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/clusters-kmeans/-/clusters-kmeans-5.1.5.tgz#fd6dfea8b133ba8bdc2370ac3cacee1587a302f1" dependencies: - "@turf/clone" "^5.0.4" - "@turf/invariant" "^5.0.4" - "@turf/meta" "^5.0.4" + "@turf/clone" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + "@turf/meta" "^5.1.5" skmeans "0.9.7" -"@turf/clusters@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/clusters/-/clusters-5.0.4.tgz#e9e57eadcf2b28d457593ce3f6768f18e49d6ed0" +"@turf/clusters@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/clusters/-/clusters-5.1.5.tgz#673a5e5f1b19c9cababc57c908eeadd682224dd4" dependencies: - "@turf/helpers" "^5.0.4" - "@turf/meta" "^5.0.4" + "@turf/helpers" "^5.1.5" + "@turf/meta" "^5.1.5" -"@turf/collect@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/collect/-/collect-5.0.4.tgz#998deb5fcb32d08968a5b79d9b7832b94a8e3d02" +"@turf/collect@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/collect/-/collect-5.1.5.tgz#fe98c9a8c218ecf24ffc33d7029517b7c19b2a3e" dependencies: - "@turf/bbox" "^5.0.4" - "@turf/boolean-point-in-polygon" "^5.0.4" - "@turf/helpers" "^5.0.4" + "@turf/bbox" "^5.1.5" + "@turf/boolean-point-in-polygon" "^5.1.5" + "@turf/helpers" "^5.1.5" rbush "^2.0.1" -"@turf/combine@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/combine/-/combine-5.0.4.tgz#1b8111fe453d029322416a4fa8ab984375182f28" +"@turf/combine@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/combine/-/combine-5.1.5.tgz#bb14bdefa55504357195fc1a124cd7d53a8c8905" dependencies: - "@turf/helpers" "^5.0.4" - "@turf/meta" "^5.0.4" + "@turf/helpers" "^5.1.5" + "@turf/meta" "^5.1.5" -"@turf/concave@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/concave/-/concave-5.0.4.tgz#0b714442c52593bf2032d4a94d7ed5d97d29f041" +"@turf/concave@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/concave/-/concave-5.1.5.tgz#23bbaac387d034b96574a1bd70d059237a9d2110" dependencies: - "@turf/clone" "^5.0.4" - "@turf/distance" "^5.0.4" - "@turf/helpers" "^5.0.4" - "@turf/invariant" "^5.0.4" - "@turf/meta" "^5.0.4" - "@turf/tin" "^5.0.4" + "@turf/clone" "^5.1.5" + "@turf/distance" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + "@turf/meta" "^5.1.5" + "@turf/tin" "^5.1.5" topojson-client "3.x" topojson-server "3.x" -"@turf/convex@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/convex/-/convex-5.0.4.tgz#1a2ab11a36f7973fad33f57f781a9437ef7b9cd6" +"@turf/convex@5.1.x", "@turf/convex@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/convex/-/convex-5.1.5.tgz#0df9377dd002216ce9821b07f705e037dae3e01d" dependencies: - "@turf/helpers" "^5.0.4" - "@turf/meta" "^5.0.4" + "@turf/helpers" "^5.1.5" + "@turf/meta" "^5.1.5" concaveman "*" -"@turf/destination@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/destination/-/destination-5.0.4.tgz#336cc1dd86bc5b647a3778f34d8d7d3ac6a7fb61" +"@turf/destination@5.1.x", "@turf/destination@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/destination/-/destination-5.1.5.tgz#ed35381bdce83bbddcbd07a2e2bce2bddffbcc26" dependencies: - "@turf/helpers" "^5.0.4" - "@turf/invariant" "^5.0.4" + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" -"@turf/difference@^5.0.4": - version "5.0.5" - resolved "https://registry.yarnpkg.com/@turf/difference/-/difference-5.0.5.tgz#f856b504f20ecaceef5530c0c08663e5fca5205e" +"@turf/difference@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/difference/-/difference-5.1.5.tgz#a24d690a7bca803f1090a9ee3b9d906fc4371f42" dependencies: - "@turf/area" "^5.0.4" - "@turf/helpers" "^5.0.4" - "@turf/invariant" "^5.0.4" - "@turf/meta" "^5.0.4" + "@turf/area" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + "@turf/meta" "^5.1.5" turf-jsts "*" -"@turf/dissolve@^5.0.4": - version "5.0.6" - resolved "https://registry.yarnpkg.com/@turf/dissolve/-/dissolve-5.0.6.tgz#a7f11e35715b4ff6f1fe76fc368f65bdfdf4bfd8" - dependencies: - "@turf/boolean-overlap" "^5.0.4" - "@turf/clone" "^5.0.4" - "@turf/helpers" "^5.0.4" - "@turf/invariant" "^5.0.4" - "@turf/line-intersect" "^5.0.4" - "@turf/meta" "^5.0.4" - "@turf/union" "*" +"@turf/dissolve@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/dissolve/-/dissolve-5.1.5.tgz#2cf133a9021d2163831c3d7a958d6507f9d81938" + dependencies: + "@turf/boolean-overlap" "^5.1.5" + "@turf/clone" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + "@turf/line-intersect" "^5.1.5" + "@turf/meta" "^5.1.5" + "@turf/union" "^5.1.5" geojson-rbush "2.1.0" get-closest "*" -"@turf/distance@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/distance/-/distance-5.0.4.tgz#0ef58ec9a08403bdaef7bf420cb2c9d04cc69257" - dependencies: - "@turf/helpers" "^5.0.4" - "@turf/invariant" "^5.0.4" - -"@turf/envelope@*", "@turf/envelope@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/envelope/-/envelope-5.0.4.tgz#d7fe7e2de90f180e97aa5cde33a6ba52935c03d2" - dependencies: - "@turf/bbox" "^5.0.4" - "@turf/bbox-polygon" "^5.0.4" - "@turf/helpers" "^5.0.4" - -"@turf/explode@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/explode/-/explode-5.0.4.tgz#4eee4ea12d8bd340ecaab9415888814d20e95b89" - dependencies: - "@turf/helpers" "^5.0.4" - "@turf/meta" "^5.0.4" - -"@turf/flatten@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/flatten/-/flatten-5.0.4.tgz#079c2ee9d923e8a989df55f6bb2181c94d5b6273" - dependencies: - "@turf/helpers" "^5.0.4" - "@turf/meta" "^5.0.4" - -"@turf/flip@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/flip/-/flip-5.0.4.tgz#12daf50892a3b32016888c0578161db4108c95f7" - dependencies: - "@turf/clone" "^5.0.4" - "@turf/helpers" "^5.0.4" - "@turf/meta" "^5.0.4" - -"@turf/great-circle@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/great-circle/-/great-circle-5.0.4.tgz#fbd4bc2a49e33bb0c646feb5d273e7529609454e" - dependencies: - "@turf/helpers" "^5.0.4" - "@turf/invariant" "^5.0.4" - -"@turf/helpers@*", "@turf/helpers@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/helpers/-/helpers-5.0.4.tgz#e47a4e4f38dee3b47a3177a69de162d7a7a5837f" - -"@turf/hex-grid@*", "@turf/hex-grid@^5.0.4": - version "5.0.5" - resolved "https://registry.yarnpkg.com/@turf/hex-grid/-/hex-grid-5.0.5.tgz#d0f2df550615e58ae6bd3f65359acb56a31523a1" - dependencies: - "@turf/distance" "^5.0.4" - "@turf/helpers" "^5.0.4" - "@turf/intersect" "*" - "@turf/invariant" "^5.0.4" - -"@turf/inside@*": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@turf/inside/-/inside-5.0.0.tgz#31193c7f1429469bfaa16c6685f54234e59131a0" - dependencies: - "@turf/invariant" "^5.0.0" - -"@turf/interpolate@^5.0.4": - version "5.0.5" - resolved "https://registry.yarnpkg.com/@turf/interpolate/-/interpolate-5.0.5.tgz#271199e92b6aafd3420297ca4540d8a4b520302e" - dependencies: - "@turf/bbox" "^5.0.4" - "@turf/centroid" "^5.0.4" - "@turf/clone" "^5.0.4" - "@turf/distance" "^5.0.4" - "@turf/helpers" "^5.0.4" - "@turf/hex-grid" "*" - "@turf/invariant" "^5.0.4" - "@turf/meta" "^5.0.4" - "@turf/point-grid" "^5.0.4" - "@turf/square-grid" "*" - "@turf/triangle-grid" "*" - -"@turf/intersect@*", "@turf/intersect@^5.0.4": - version "5.0.6" - resolved "https://registry.yarnpkg.com/@turf/intersect/-/intersect-5.0.6.tgz#401f2f3f5a7fd75467c3340b2e906fb7741fe960" - dependencies: - "@turf/clean-coords" "^5.0.4" - "@turf/helpers" "^5.0.4" - "@turf/invariant" "^5.0.4" - "@turf/truncate" "^5.0.4" +"@turf/distance@5.1.x", "@turf/distance@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/distance/-/distance-5.1.5.tgz#39cf18204bbf87587d707e609a60118909156409" + dependencies: + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + +"@turf/distance@6.x": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@turf/distance/-/distance-6.0.1.tgz#0761f28784286e7865a427c4e7e3593569c2dea8" + dependencies: + "@turf/helpers" "6.x" + "@turf/invariant" "6.x" + +"@turf/ellipse@5.1.x", "@turf/ellipse@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/ellipse/-/ellipse-5.1.5.tgz#d57cab853985920cde60228a78d80458025c54be" + dependencies: + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + "@turf/rhumb-destination" "^5.1.5" + "@turf/transform-rotate" "^5.1.5" + +"@turf/envelope@5.1.x", "@turf/envelope@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/envelope/-/envelope-5.1.5.tgz#5013309c53fdd43dfaf4b588a65c3fed7dbc108a" + dependencies: + "@turf/bbox" "^5.1.5" + "@turf/bbox-polygon" "^5.1.5" + "@turf/helpers" "^5.1.5" + +"@turf/explode@5.1.x", "@turf/explode@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/explode/-/explode-5.1.5.tgz#b12b2f774004a1b48f62ba95b20a1c655a3de118" + dependencies: + "@turf/helpers" "^5.1.5" + "@turf/meta" "^5.1.5" + +"@turf/flatten@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/flatten/-/flatten-5.1.5.tgz#da2927067133ed6169b0b9d607b9215688aa1358" + dependencies: + "@turf/helpers" "^5.1.5" + "@turf/meta" "^5.1.5" + +"@turf/flip@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/flip/-/flip-5.1.5.tgz#436f643a722f0ca53b9fce638e4693db3608a68a" + dependencies: + "@turf/clone" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/meta" "^5.1.5" + +"@turf/great-circle@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/great-circle/-/great-circle-5.1.5.tgz#debfb671ce475509cb637301c15fcfccfa359a93" + dependencies: + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + +"@turf/helpers@*", "@turf/helpers@6.x": + version "6.1.3" + resolved "https://registry.yarnpkg.com/@turf/helpers/-/helpers-6.1.3.tgz#0001a5c4a3bff25b4bbbc64f8713a383c9ab9e94" + +"@turf/helpers@5.1.x", "@turf/helpers@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/helpers/-/helpers-5.1.5.tgz#153405227ab933d004a5bb9641a9ed999fcbe0cf" + +"@turf/hex-grid@5.1.x", "@turf/hex-grid@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/hex-grid/-/hex-grid-5.1.5.tgz#9b7ba5fecf5051f1e85892f713fce5c550502a6a" + dependencies: + "@turf/distance" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/intersect" "^5.1.5" + "@turf/invariant" "^5.1.5" + +"@turf/interpolate@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/interpolate/-/interpolate-5.1.5.tgz#0f12f0ab756d6dd10afb290ca6e877bdef013eaa" + dependencies: + "@turf/bbox" "^5.1.5" + "@turf/centroid" "^5.1.5" + "@turf/clone" "^5.1.5" + "@turf/distance" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/hex-grid" "^5.1.5" + "@turf/invariant" "^5.1.5" + "@turf/meta" "^5.1.5" + "@turf/point-grid" "^5.1.5" + "@turf/square-grid" "^5.1.5" + "@turf/triangle-grid" "^5.1.5" + +"@turf/intersect@5.1.x", "@turf/intersect@^5.1.5": + version "5.1.6" + resolved "https://registry.yarnpkg.com/@turf/intersect/-/intersect-5.1.6.tgz#13ffcceb7a529c2a7e5d6681ab3ba671f868e95f" + dependencies: + "@turf/clean-coords" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + "@turf/truncate" "^5.1.5" turf-jsts "*" -"@turf/invariant@*", "@turf/invariant@^5.0.0", "@turf/invariant@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/invariant/-/invariant-5.0.4.tgz#1cc305f4de7c0f1bfd9d7c420aac282051262b41" - dependencies: - "@turf/helpers" "^5.0.4" - -"@turf/isobands@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/isobands/-/isobands-5.0.4.tgz#971491dcab8b7c9c89b80e6c7d960d4f1483160f" - dependencies: - "@turf/area" "^5.0.4" - "@turf/bbox" "^5.0.4" - "@turf/boolean-point-in-polygon" "^5.0.4" - "@turf/explode" "^5.0.4" - "@turf/helpers" "^5.0.4" - "@turf/invariant" "^5.0.4" - "@turf/meta" "^5.0.4" - -"@turf/isolines@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/isolines/-/isolines-5.0.4.tgz#e7cc2e3d24a970864ed8f051949af42ac2faa1cc" - dependencies: - "@turf/bbox" "^5.0.4" - "@turf/helpers" "^5.0.4" - "@turf/invariant" "^5.0.4" - "@turf/meta" "^5.0.4" - -"@turf/kinks@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/kinks/-/kinks-5.0.4.tgz#b918335351a45883869a030d84a75d5a51ab735b" - dependencies: - "@turf/helpers" "^5.0.4" - -"@turf/length@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/length/-/length-5.0.4.tgz#6a1a1f1cb5931d8e29c9cc0bce21a96b717a1937" - dependencies: - "@turf/distance" "^5.0.4" - "@turf/helpers" "^5.0.4" - "@turf/meta" "^5.0.4" - -"@turf/line-arc@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/line-arc/-/line-arc-5.0.4.tgz#dc2dbb2e23baaf1912b0fd4d7d3cac8bbd3c3c88" +"@turf/invariant@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/invariant/-/invariant-5.1.5.tgz#f59f4fefa09224b15dce1651f903c868d57a24e1" dependencies: - "@turf/circle" "^5.0.4" - "@turf/destination" "^5.0.4" - "@turf/helpers" "^5.0.4" + "@turf/helpers" "^5.1.5" -"@turf/line-chunk@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/line-chunk/-/line-chunk-5.0.4.tgz#9566dff8c6a9fdd36853503f011fbe06d88dcdc5" +"@turf/invariant@6.x": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@turf/invariant/-/invariant-6.0.1.tgz#45581b41f82d91b682cef427e897c840d1741757" dependencies: - "@turf/helpers" "^5.0.4" - "@turf/length" "^5.0.4" - "@turf/line-slice-along" "^5.0.4" - "@turf/meta" "^5.0.4" + "@turf/helpers" "6.x" -"@turf/line-intersect@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/line-intersect/-/line-intersect-5.0.4.tgz#11f4d55ba080b8a2d9b19e51c8e2616f0bcfdd06" - dependencies: - "@turf/helpers" "^5.0.4" - "@turf/invariant" "^5.0.4" - "@turf/line-segment" "^5.0.4" - "@turf/meta" "^5.0.4" +"@turf/invariant@^5.1.5": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@turf/invariant/-/invariant-5.2.0.tgz#f0150ff7290b38577b73d088b7932c1ee0aa90a7" + dependencies: + "@turf/helpers" "^5.1.5" + +"@turf/isobands@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/isobands/-/isobands-5.1.5.tgz#6b44cef584d551a31304187af23b4a1582e3f08d" + dependencies: + "@turf/area" "^5.1.5" + "@turf/bbox" "^5.1.5" + "@turf/boolean-point-in-polygon" "^5.1.5" + "@turf/explode" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + "@turf/meta" "^5.1.5" + +"@turf/isolines@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/isolines/-/isolines-5.1.5.tgz#8ab4e7f42bb3dfc54614e5bf155967f7e55d2de1" + dependencies: + "@turf/bbox" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + "@turf/meta" "^5.1.5" + +"@turf/kinks@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/kinks/-/kinks-5.1.5.tgz#8abb6961d9bb0107213baddf2c2c2640d0256980" + dependencies: + "@turf/helpers" "^5.1.5" + +"@turf/length@5.1.x", "@turf/length@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/length/-/length-5.1.5.tgz#f3a5f864c2b996a8bb471794535a1faf12eebefb" + dependencies: + "@turf/distance" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/meta" "^5.1.5" + +"@turf/line-arc@5.1.x", "@turf/line-arc@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/line-arc/-/line-arc-5.1.5.tgz#0078a7447835a12ae414a211f9a64d1186150e15" + dependencies: + "@turf/circle" "^5.1.5" + "@turf/destination" "^5.1.5" + "@turf/helpers" "^5.1.5" + +"@turf/line-chunk@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/line-chunk/-/line-chunk-5.1.5.tgz#910a85c05c06d9d0f9c38977a05e0818d5085c42" + dependencies: + "@turf/helpers" "^5.1.5" + "@turf/length" "^5.1.5" + "@turf/line-slice-along" "^5.1.5" + "@turf/meta" "^5.1.5" + +"@turf/line-intersect@5.1.x", "@turf/line-intersect@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/line-intersect/-/line-intersect-5.1.5.tgz#0e29071ae403295e491723bc49f5cfac8d11ddf3" + dependencies: + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + "@turf/line-segment" "^5.1.5" + "@turf/meta" "^5.1.5" geojson-rbush "2.1.0" -"@turf/line-offset@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/line-offset/-/line-offset-5.0.4.tgz#ff3dd90ed4987edf304861fea6f0c762a58156d3" +"@turf/line-offset@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/line-offset/-/line-offset-5.1.5.tgz#2ab5b2f089f8c913e231d994378e79dca90b5a1e" dependencies: - "@turf/helpers" "^5.0.4" - "@turf/invariant" "^5.0.4" - "@turf/meta" "^5.0.4" + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + "@turf/meta" "^5.1.5" -"@turf/line-overlap@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/line-overlap/-/line-overlap-5.0.4.tgz#9c2d5d78807ed819098ac27e6a9fa2f3598b032d" +"@turf/line-overlap@5.1.x", "@turf/line-overlap@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/line-overlap/-/line-overlap-5.1.5.tgz#943c6f87a0386dc43dfac11d2b3ff9c112cd3f60" dependencies: - "@turf/boolean-point-on-line" "^5.0.4" - "@turf/helpers" "^5.0.4" - "@turf/invariant" "^5.0.4" - "@turf/line-segment" "^5.0.4" - "@turf/meta" "^5.0.4" - "@turf/nearest-point-on-line" "^5.0.4" + "@turf/boolean-point-on-line" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + "@turf/line-segment" "^5.1.5" + "@turf/meta" "^5.1.5" + "@turf/nearest-point-on-line" "^5.1.5" geojson-rbush "2.1.0" -"@turf/line-segment@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/line-segment/-/line-segment-5.0.4.tgz#4ddbeba1145ca67f691f96ca265d608152ae33ff" - dependencies: - "@turf/helpers" "^5.0.4" - "@turf/invariant" "^5.0.4" - "@turf/meta" "^5.0.4" - -"@turf/line-slice-along@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/line-slice-along/-/line-slice-along-5.0.4.tgz#713110edd96f72fc184acd006d1d89eddb0ea1d5" - dependencies: - "@turf/bearing" "^5.0.4" - "@turf/destination" "^5.0.4" - "@turf/distance" "^5.0.4" - "@turf/helpers" "^5.0.4" - -"@turf/line-slice@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/line-slice/-/line-slice-5.0.4.tgz#7651c07516f26e90ff3b7109c3daf85704a4c556" - dependencies: - "@turf/helpers" "^5.0.4" - "@turf/nearest-point-on-line" "^5.0.4" - -"@turf/line-split@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/line-split/-/line-split-5.0.4.tgz#c933550665fa72c34accde6e6257e9c0b3049603" - dependencies: - "@turf/bbox" "^5.0.4" - "@turf/helpers" "^5.0.4" - "@turf/invariant" "^5.0.4" - "@turf/line-intersect" "^5.0.4" - "@turf/line-segment" "^5.0.4" - "@turf/meta" "^5.0.4" - "@turf/nearest-point-on-line" "^5.0.4" - "@turf/square" "^5.0.4" - "@turf/truncate" "^5.0.4" +"@turf/line-segment@5.1.x", "@turf/line-segment@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/line-segment/-/line-segment-5.1.5.tgz#3207aaee546ab24c3d8dc3cc63f91c770b8013e5" + dependencies: + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + "@turf/meta" "^5.1.5" + +"@turf/line-slice-along@5.1.x", "@turf/line-slice-along@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/line-slice-along/-/line-slice-along-5.1.5.tgz#eddad0a21ef479f2968a11bd2dd7289a2132e9a5" + dependencies: + "@turf/bearing" "^5.1.5" + "@turf/destination" "^5.1.5" + "@turf/distance" "^5.1.5" + "@turf/helpers" "^5.1.5" + +"@turf/line-slice@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/line-slice/-/line-slice-5.1.5.tgz#1ecfce1462a378579754cedf4464cde26829f2b5" + dependencies: + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + "@turf/nearest-point-on-line" "^5.1.5" + +"@turf/line-split@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/line-split/-/line-split-5.1.5.tgz#5b2df4c37619b72ef725b5163cf9926d5540acb7" + dependencies: + "@turf/bbox" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + "@turf/line-intersect" "^5.1.5" + "@turf/line-segment" "^5.1.5" + "@turf/meta" "^5.1.5" + "@turf/nearest-point-on-line" "^5.1.5" + "@turf/square" "^5.1.5" + "@turf/truncate" "^5.1.5" geojson-rbush "2.1.0" -"@turf/line-to-polygon@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/line-to-polygon/-/line-to-polygon-5.0.4.tgz#b40c14918c431e23ebdeb08a743a41d2f14747ff" +"@turf/line-to-polygon@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/line-to-polygon/-/line-to-polygon-5.1.5.tgz#213cf41a68f8224778ba39d3187dec3e8b81865a" dependencies: - "@turf/bbox" "^5.0.4" - "@turf/helpers" "^5.0.4" - "@turf/invariant" "^5.0.4" + "@turf/bbox" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" -"@turf/mask@^5.0.4": - version "5.0.5" - resolved "https://registry.yarnpkg.com/@turf/mask/-/mask-5.0.5.tgz#e7c41a2b1ddf351ad62e6203a20c40b50cfa4e77" +"@turf/mask@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/mask/-/mask-5.1.5.tgz#9ab0fef1a272c98fe3ef492f9ffb618206b242d5" dependencies: - "@turf/bbox" "^5.0.4" - "@turf/helpers" "^5.0.4" - "@turf/meta" "^5.0.4" - "@turf/union" "*" + "@turf/bbox" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/meta" "^5.1.5" + "@turf/union" "^5.1.5" rbush "^2.0.1" -"@turf/meta@*", "@turf/meta@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/meta/-/meta-5.0.4.tgz#b41d08f19d2ecc934805b6d713a663abd9f83213" - dependencies: - "@turf/helpers" "^5.0.4" - -"@turf/midpoint@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/midpoint/-/midpoint-5.0.4.tgz#d31353daa86db67e3de27d907d541d050097328f" - dependencies: - "@turf/bearing" "^5.0.4" - "@turf/destination" "^5.0.4" - "@turf/distance" "^5.0.4" - -"@turf/nearest-point-on-line@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/nearest-point-on-line/-/nearest-point-on-line-5.0.4.tgz#956abf0b6c38b9f94e030ba50643aa254ad80173" - dependencies: - "@turf/bearing" "^5.0.4" - "@turf/destination" "^5.0.4" - "@turf/distance" "^5.0.4" - "@turf/helpers" "^5.0.4" - "@turf/invariant" "^5.0.4" - "@turf/line-intersect" "^5.0.4" - "@turf/meta" "^5.0.4" - -"@turf/nearest-point-to-line@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/nearest-point-to-line/-/nearest-point-to-line-5.0.4.tgz#5fd0517af711f961b0118b354ecce1abc21a0f03" - dependencies: - "@turf/meta" "^5.0.4" - "@turf/point-to-line-distance" "^5.0.4" - -"@turf/nearest-point@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/nearest-point/-/nearest-point-5.0.4.tgz#f56f8489c206c8b0cf54445f1d7d064b4468d27e" - dependencies: - "@turf/clone" "^5.0.4" - "@turf/distance" "^5.0.4" - "@turf/helpers" "^5.0.4" - "@turf/meta" "^5.0.4" - -"@turf/planepoint@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/planepoint/-/planepoint-5.0.4.tgz#55380556c1342aac6e063e968aa47d4b9c7ac147" - dependencies: - "@turf/invariant" "^5.0.4" - -"@turf/point-grid@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/point-grid/-/point-grid-5.0.4.tgz#98814cd14791d91e22e2a00d22e6fc6e2e34506a" +"@turf/meta@*", "@turf/meta@6.x": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@turf/meta/-/meta-6.0.1.tgz#cf6f3f2263a3d24fc8d6a7e90f0420bbc44c090d" dependencies: - "@turf/boolean-within" "^5.0.4" - "@turf/distance" "^5.0.4" - "@turf/helpers" "^5.0.4" - "@turf/invariant" "^5.0.4" + "@turf/helpers" "6.x" -"@turf/point-on-feature@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/point-on-feature/-/point-on-feature-5.0.4.tgz#326e469d2dfc065035542717ecc1823ae4f7b892" +"@turf/meta@5.1.x": + version "5.1.6" + resolved "https://registry.yarnpkg.com/@turf/meta/-/meta-5.1.6.tgz#c20a863eded0869fb28548dee889341bccb46a46" dependencies: - "@turf/boolean-point-in-polygon" "^5.0.4" - "@turf/center" "^5.0.4" - "@turf/explode" "^5.0.4" - "@turf/helpers" "^5.0.4" - "@turf/nearest-point" "^5.0.4" + "@turf/helpers" "^5.1.5" -"@turf/point-to-line-distance@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/point-to-line-distance/-/point-to-line-distance-5.0.4.tgz#ca4d6018f3547986fdf458748c360378cc401120" - dependencies: - "@turf/bearing" "^5.0.4" - "@turf/distance" "^5.0.4" - "@turf/helpers" "^5.0.4" - "@turf/invariant" "^5.0.4" - "@turf/meta" "^5.0.4" - "@turf/projection" "^5.0.4" - "@turf/rhumb-bearing" "^5.0.4" - "@turf/rhumb-distance" "^5.0.4" - -"@turf/points-within-polygon@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/points-within-polygon/-/points-within-polygon-5.0.4.tgz#866d36b5bd037054ec1f4ecaa9f74707577a0f1e" - dependencies: - "@turf/boolean-point-in-polygon" "^5.0.4" - "@turf/helpers" "^5.0.4" - -"@turf/polygon-tangents@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/polygon-tangents/-/polygon-tangents-5.0.4.tgz#e6890c76663e1715d56809a6fba66d5d039456ca" - dependencies: - "@turf/helpers" "^5.0.4" - "@turf/invariant" "^5.0.4" - -"@turf/polygon-to-line@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/polygon-to-line/-/polygon-to-line-5.0.4.tgz#e7b277027e7acb05f501eecf88163d1a2fa41b8a" - dependencies: - "@turf/helpers" "^5.0.4" - "@turf/invariant" "^5.0.4" - -"@turf/polygonize@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/polygonize/-/polygonize-5.0.4.tgz#ecf6e47bb3a0add8a54505a2d42ebec0e1128ce2" - dependencies: - polygonize "^1.1.0" - -"@turf/projection@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/projection/-/projection-5.0.4.tgz#d72e91a61973cbb6fa46a6dae8c11406f3e245d2" - dependencies: - "@turf/clone" "^5.0.4" - "@turf/helpers" "^5.0.4" - "@turf/meta" "^5.0.4" - -"@turf/random@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/random/-/random-5.0.4.tgz#28b9747f03d611d87ef55bc44dd79dc471aa4239" - dependencies: - "@turf/helpers" "^5.0.4" - -"@turf/rewind@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/rewind/-/rewind-5.0.4.tgz#038d185627d63d400c3b7e5b9b2a7c02a79a092c" - dependencies: - "@turf/boolean-clockwise" "^5.0.4" - "@turf/clone" "^5.0.4" - "@turf/helpers" "^5.0.4" - "@turf/invariant" "^5.0.4" - "@turf/meta" "^5.0.4" - -"@turf/rhumb-bearing@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/rhumb-bearing/-/rhumb-bearing-5.0.4.tgz#3c7a0a1d0288775b2b9785de0107aa96d2e3ac98" - dependencies: - "@turf/helpers" "^5.0.4" - "@turf/invariant" "^5.0.4" - -"@turf/rhumb-destination@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/rhumb-destination/-/rhumb-destination-5.0.4.tgz#da453eb52d2099aa59c6f41160b636a5b136009c" - dependencies: - "@turf/helpers" "^5.0.4" - "@turf/invariant" "^5.0.4" - -"@turf/rhumb-distance@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/rhumb-distance/-/rhumb-distance-5.0.4.tgz#87884afb2e6dd1d2b8417b12f6e3ad333ac53773" - dependencies: - "@turf/helpers" "^5.0.4" - "@turf/invariant" "^5.0.4" - -"@turf/sample@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/sample/-/sample-5.0.4.tgz#b1b3d5c8b069fced0a640fb563f8c92b6769b0cf" - dependencies: - "@turf/helpers" "^5.0.4" - -"@turf/sector@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/sector/-/sector-5.0.4.tgz#1512f13c0215c80a32b3dd05d4ff7b047e0e6e86" - dependencies: - "@turf/circle" "^5.0.4" - "@turf/helpers" "^5.0.4" - "@turf/invariant" "^5.0.4" - "@turf/line-arc" "^5.0.4" - "@turf/meta" "^5.0.4" - -"@turf/shortest-path@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/shortest-path/-/shortest-path-5.0.4.tgz#62e8efea6bd7730d09f877636f7ecfdbf562e436" - dependencies: - "@turf/bbox" "^5.0.4" - "@turf/bbox-polygon" "^5.0.4" - "@turf/boolean-point-in-polygon" "^5.0.4" - "@turf/clean-coords" "^5.0.4" - "@turf/distance" "^5.0.4" - "@turf/helpers" "^5.0.4" - "@turf/invariant" "^5.0.4" - "@turf/meta" "^5.0.4" - "@turf/transform-scale" "^5.0.4" - -"@turf/simplify@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/simplify/-/simplify-5.0.4.tgz#28a75b25a5667daacf0f9ba4d73f619d083e7a9c" - dependencies: - "@turf/clean-coords" "^5.0.4" - "@turf/clone" "^5.0.4" - "@turf/helpers" "^5.0.4" - "@turf/meta" "^5.0.4" - simplify-js "^1.2.1" - -"@turf/square-grid@*", "@turf/square-grid@^5.0.4": - version "5.0.5" - resolved "https://registry.yarnpkg.com/@turf/square-grid/-/square-grid-5.0.5.tgz#1e9270026d43fc226e5b68c4c58e51570396c58e" - dependencies: - "@turf/boolean-contains" "^5.0.4" - "@turf/boolean-overlap" "^5.0.4" - "@turf/distance" "^5.0.4" - "@turf/helpers" "^5.0.4" - "@turf/intersect" "*" - "@turf/invariant" "^5.0.4" - -"@turf/square@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/square/-/square-5.0.4.tgz#c03bcc06597718c2fa02eeb3dd24f00397df6e1c" - dependencies: - "@turf/distance" "^5.0.4" - -"@turf/tag@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/tag/-/tag-5.0.4.tgz#e3d06cd8512e00a7c721d926ab1637102940d86e" - dependencies: - "@turf/boolean-point-in-polygon" "^5.0.4" - "@turf/clone" "^5.0.4" - "@turf/helpers" "^5.0.4" - "@turf/meta" "^5.0.4" - -"@turf/tesselate@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/tesselate/-/tesselate-5.0.4.tgz#3048cbb639c7d277ea099846d6a51e6714a390b8" - dependencies: - "@turf/helpers" "^5.0.4" +"@turf/meta@^5.1.5": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@turf/meta/-/meta-5.2.0.tgz#3b1ad485ee0c3b0b1775132a32c384d53e4ba53d" + dependencies: + "@turf/helpers" "^5.1.5" + +"@turf/midpoint@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/midpoint/-/midpoint-5.1.5.tgz#e261f6b2b0ea8124cceff552a262dd465c9d05f0" + dependencies: + "@turf/bearing" "^5.1.5" + "@turf/destination" "^5.1.5" + "@turf/distance" "^5.1.5" + "@turf/helpers" "^5.1.5" + +"@turf/nearest-point-on-line@5.1.x", "@turf/nearest-point-on-line@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/nearest-point-on-line/-/nearest-point-on-line-5.1.5.tgz#5606ae297f15947524bea51a2a9ef51ec1bf9c36" + dependencies: + "@turf/bearing" "^5.1.5" + "@turf/destination" "^5.1.5" + "@turf/distance" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + "@turf/line-intersect" "^5.1.5" + "@turf/meta" "^5.1.5" + +"@turf/nearest-point-to-line@5.1.x": + version "5.1.6" + resolved "https://registry.yarnpkg.com/@turf/nearest-point-to-line/-/nearest-point-to-line-5.1.6.tgz#d30b7606e56a3dce97f4db6d45d352470e0b3f88" + dependencies: + "@turf/helpers" "6.x" + "@turf/invariant" "6.x" + "@turf/meta" "6.x" + "@turf/point-to-line-distance" "^5.1.5" + object-assign "*" + +"@turf/nearest-point@5.1.x", "@turf/nearest-point@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/nearest-point/-/nearest-point-5.1.5.tgz#12050de41c398443224c7978de0f6213900d34fb" + dependencies: + "@turf/clone" "^5.1.5" + "@turf/distance" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/meta" "^5.1.5" + +"@turf/planepoint@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/planepoint/-/planepoint-5.1.5.tgz#18bbdf006f759def5e42c6a006c9f9de81b2b7ff" + dependencies: + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + +"@turf/point-grid@5.1.x", "@turf/point-grid@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/point-grid/-/point-grid-5.1.5.tgz#305141248f50bafe36ce7e66ba4b97e7ab236887" + dependencies: + "@turf/boolean-within" "^5.1.5" + "@turf/distance" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + +"@turf/point-on-feature@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/point-on-feature/-/point-on-feature-5.1.5.tgz#30c7f032430277c6418d96d289e45b6bfb213fe7" + dependencies: + "@turf/boolean-point-in-polygon" "^5.1.5" + "@turf/center" "^5.1.5" + "@turf/explode" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/nearest-point" "^5.1.5" + +"@turf/point-to-line-distance@5.1.x", "@turf/point-to-line-distance@^5.1.5": + version "5.1.6" + resolved "https://registry.yarnpkg.com/@turf/point-to-line-distance/-/point-to-line-distance-5.1.6.tgz#954f6cb68546420a030d8480392503264970d2d8" + dependencies: + "@turf/bearing" "6.x" + "@turf/distance" "6.x" + "@turf/helpers" "6.x" + "@turf/invariant" "6.x" + "@turf/meta" "6.x" + "@turf/projection" "6.x" + "@turf/rhumb-bearing" "6.x" + "@turf/rhumb-distance" "6.x" + +"@turf/points-within-polygon@5.1.x", "@turf/points-within-polygon@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/points-within-polygon/-/points-within-polygon-5.1.5.tgz#2b855a5df3aada57c2ee820a0754ab94928a2337" + dependencies: + "@turf/boolean-point-in-polygon" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/meta" "^5.1.5" + +"@turf/polygon-tangents@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/polygon-tangents/-/polygon-tangents-5.1.5.tgz#2bf00991473025b178e250dc7cb9ae5409bbd652" + dependencies: + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + +"@turf/polygon-to-line@5.1.x", "@turf/polygon-to-line@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/polygon-to-line/-/polygon-to-line-5.1.5.tgz#23bb448d84dc4c651999ac611a36d91c5925036a" + dependencies: + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + +"@turf/polygonize@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/polygonize/-/polygonize-5.1.5.tgz#0493fa11879f39d10b9ad02ce6a23e942d08aa32" + dependencies: + "@turf/boolean-point-in-polygon" "^5.1.5" + "@turf/envelope" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + "@turf/meta" "^5.1.5" + +"@turf/projection@5.1.x", "@turf/projection@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/projection/-/projection-5.1.5.tgz#24517eeeb2f36816ba9f712e7ae6d6a368edf757" + dependencies: + "@turf/clone" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/meta" "^5.1.5" + +"@turf/projection@6.x": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@turf/projection/-/projection-6.0.1.tgz#bde70ae8441b9cefddf26d71c7db74bc3d9792b1" + dependencies: + "@turf/clone" "6.x" + "@turf/helpers" "6.x" + "@turf/meta" "6.x" + +"@turf/random@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/random/-/random-5.1.5.tgz#b32efc934560ae8ba57e8ebb51f241c39fba2e7b" + dependencies: + "@turf/helpers" "^5.1.5" + +"@turf/rewind@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/rewind/-/rewind-5.1.5.tgz#9ea3db4a68b73c1fd1dd11f57631b143cfefa1c9" + dependencies: + "@turf/boolean-clockwise" "^5.1.5" + "@turf/clone" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + "@turf/meta" "^5.1.5" + +"@turf/rhumb-bearing@5.1.x", "@turf/rhumb-bearing@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/rhumb-bearing/-/rhumb-bearing-5.1.5.tgz#acf6a502427eb8c49e18cda6ae0effab0c5ddcd2" + dependencies: + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + +"@turf/rhumb-bearing@6.x": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@turf/rhumb-bearing/-/rhumb-bearing-6.0.1.tgz#182c4c21fe951e097fb468ae128dc22ef6078f3f" + dependencies: + "@turf/helpers" "6.x" + "@turf/invariant" "6.x" + +"@turf/rhumb-destination@5.1.x", "@turf/rhumb-destination@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/rhumb-destination/-/rhumb-destination-5.1.5.tgz#b1b2aeb921547f2ac0c1a994b6a130f92463c742" + dependencies: + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + +"@turf/rhumb-distance@5.1.x", "@turf/rhumb-distance@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/rhumb-distance/-/rhumb-distance-5.1.5.tgz#1806857625f4225384dad413e69f39538ff5f765" + dependencies: + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + +"@turf/rhumb-distance@6.x": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@turf/rhumb-distance/-/rhumb-distance-6.0.1.tgz#ae1c5c823b4b04f75cd7fc240f7f93647db8bdd4" + dependencies: + "@turf/helpers" "6.x" + "@turf/invariant" "6.x" + +"@turf/sample@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/sample/-/sample-5.1.5.tgz#e9cb448a4789cc56ee3de2dd6781e2343435b411" + dependencies: + "@turf/helpers" "^5.1.5" + +"@turf/sector@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/sector/-/sector-5.1.5.tgz#ac2bb94c13edd6034f6fdc2b67008135d20f5e07" + dependencies: + "@turf/circle" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + "@turf/line-arc" "^5.1.5" + "@turf/meta" "^5.1.5" + +"@turf/shortest-path@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/shortest-path/-/shortest-path-5.1.5.tgz#854ae8096f6bc3e1300faca77f3e8f67d8f935ab" + dependencies: + "@turf/bbox" "^5.1.5" + "@turf/bbox-polygon" "^5.1.5" + "@turf/boolean-point-in-polygon" "^5.1.5" + "@turf/clean-coords" "^5.1.5" + "@turf/distance" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + "@turf/meta" "^5.1.5" + "@turf/transform-scale" "^5.1.5" + +"@turf/simplify@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/simplify/-/simplify-5.1.5.tgz#0ac8f27a2eb4218183edd9998c3275abe408b926" + dependencies: + "@turf/clean-coords" "^5.1.5" + "@turf/clone" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/meta" "^5.1.5" + +"@turf/square-grid@5.1.x", "@turf/square-grid@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/square-grid/-/square-grid-5.1.5.tgz#1bd5f7b9eb14f0b60bc231fefe7351d1a32f1a51" + dependencies: + "@turf/boolean-contains" "^5.1.5" + "@turf/boolean-overlap" "^5.1.5" + "@turf/distance" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/intersect" "^5.1.5" + "@turf/invariant" "^5.1.5" + +"@turf/square@5.1.x", "@turf/square@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/square/-/square-5.1.5.tgz#aa7b21e6033cc9252c3a5bd6f3d88dabd6fed180" + dependencies: + "@turf/distance" "^5.1.5" + "@turf/helpers" "^5.1.5" + +"@turf/standard-deviational-ellipse@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/standard-deviational-ellipse/-/standard-deviational-ellipse-5.1.5.tgz#85cd283b5e1aca58f21bd66412e414b56d852324" + dependencies: + "@turf/center-mean" "^5.1.5" + "@turf/ellipse" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + "@turf/meta" "^5.1.5" + "@turf/points-within-polygon" "^5.1.5" + +"@turf/tag@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/tag/-/tag-5.1.5.tgz#d1ee1a5088ecfd4a1411019c98239ccf2a497d20" + dependencies: + "@turf/boolean-point-in-polygon" "^5.1.5" + "@turf/clone" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/meta" "^5.1.5" + +"@turf/tesselate@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/tesselate/-/tesselate-5.1.5.tgz#32a594e9c21a00420a9f90d2c43df3e1166061cd" + dependencies: + "@turf/helpers" "^5.1.5" earcut "^2.0.0" -"@turf/tin@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/tin/-/tin-5.0.4.tgz#666083519dfcb7a7284102a3526c4891440f1635" - dependencies: - "@turf/helpers" "^5.0.4" - -"@turf/transform-rotate@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/transform-rotate/-/transform-rotate-5.0.4.tgz#3baa2e57b7d5e5a896eeea84ad21556223312a94" - dependencies: - "@turf/centroid" "^5.0.4" - "@turf/clone" "^5.0.4" - "@turf/helpers" "^5.0.4" - "@turf/invariant" "^5.0.4" - "@turf/meta" "^5.0.4" - "@turf/rhumb-bearing" "^5.0.4" - "@turf/rhumb-destination" "^5.0.4" - "@turf/rhumb-distance" "^5.0.4" - -"@turf/transform-scale@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/transform-scale/-/transform-scale-5.0.4.tgz#f846ad3f0ea199023bb00072e6ac085ffb24fde6" - dependencies: - "@turf/bbox" "^5.0.4" - "@turf/center" "^5.0.4" - "@turf/centroid" "^5.0.4" - "@turf/clone" "^5.0.4" - "@turf/helpers" "^5.0.4" - "@turf/invariant" "^5.0.4" - "@turf/meta" "^5.0.4" - "@turf/rhumb-bearing" "^5.0.4" - "@turf/rhumb-destination" "^5.0.4" - "@turf/rhumb-distance" "^5.0.4" - -"@turf/transform-translate@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/transform-translate/-/transform-translate-5.0.4.tgz#d2e707cddaffe971bc7acb8e96967697cab741f0" - dependencies: - "@turf/clone" "^5.0.4" - "@turf/helpers" "^5.0.4" - "@turf/invariant" "^5.0.4" - "@turf/meta" "^5.0.4" - "@turf/rhumb-destination" "^5.0.4" - -"@turf/triangle-grid@*", "@turf/triangle-grid@^5.0.4": - version "5.0.5" - resolved "https://registry.yarnpkg.com/@turf/triangle-grid/-/triangle-grid-5.0.5.tgz#015b8fa9b13d1b6976e91781c2bedc20f4bcf737" - dependencies: - "@turf/distance" "^5.0.4" - "@turf/helpers" "^5.0.4" - "@turf/intersect" "*" - "@turf/invariant" "^5.0.4" - -"@turf/truncate@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/truncate/-/truncate-5.0.4.tgz#84f85f39f33b9d258372ce54ad540b6ab05365d3" - dependencies: - "@turf/helpers" "^5.0.4" - "@turf/meta" "^5.0.4" +"@turf/tin@5.1.x", "@turf/tin@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/tin/-/tin-5.1.5.tgz#28223eafc5fbe9ae9acca81cdcfea5d1424c917d" + dependencies: + "@turf/helpers" "^5.1.5" + +"@turf/transform-rotate@5.1.x", "@turf/transform-rotate@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/transform-rotate/-/transform-rotate-5.1.5.tgz#d096edd9e300fe315069d54d8e458c409221edfb" + dependencies: + "@turf/centroid" "^5.1.5" + "@turf/clone" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + "@turf/meta" "^5.1.5" + "@turf/rhumb-bearing" "^5.1.5" + "@turf/rhumb-destination" "^5.1.5" + "@turf/rhumb-distance" "^5.1.5" + +"@turf/transform-scale@5.1.x", "@turf/transform-scale@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/transform-scale/-/transform-scale-5.1.5.tgz#70fd3ae01856cf7bae9f15ad561cdfe8f89001b9" + dependencies: + "@turf/bbox" "^5.1.5" + "@turf/center" "^5.1.5" + "@turf/centroid" "^5.1.5" + "@turf/clone" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + "@turf/meta" "^5.1.5" + "@turf/rhumb-bearing" "^5.1.5" + "@turf/rhumb-destination" "^5.1.5" + "@turf/rhumb-distance" "^5.1.5" + +"@turf/transform-translate@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/transform-translate/-/transform-translate-5.1.5.tgz#530a257fb1dc7268dadcab34e67901eb2a3dec63" + dependencies: + "@turf/clone" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" + "@turf/meta" "^5.1.5" + "@turf/rhumb-destination" "^5.1.5" + +"@turf/triangle-grid@5.1.x", "@turf/triangle-grid@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/triangle-grid/-/triangle-grid-5.1.5.tgz#7b36762108554c14f28caff3c48b1cfc82c8dc81" + dependencies: + "@turf/distance" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/intersect" "^5.1.5" + "@turf/invariant" "^5.1.5" + +"@turf/truncate@5.1.x", "@turf/truncate@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/truncate/-/truncate-5.1.5.tgz#9eedfb3b18ba81f2c98d3ead09431cca1884ad89" + dependencies: + "@turf/helpers" "^5.1.5" + "@turf/meta" "^5.1.5" "@turf/turf@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/turf/-/turf-5.0.4.tgz#22185a5204a6eff3dda4c0cf4ec07e6249e9bf9f" - dependencies: - "@turf/along" "^5.0.4" - "@turf/area" "^5.0.4" - "@turf/bbox" "^5.0.4" - "@turf/bbox-clip" "^5.0.4" - "@turf/bbox-polygon" "^5.0.4" - "@turf/bearing" "^5.0.4" - "@turf/bezier-spline" "^5.0.4" - "@turf/boolean-clockwise" "^5.0.4" - "@turf/boolean-contains" "^5.0.4" - "@turf/boolean-crosses" "^5.0.4" - "@turf/boolean-disjoint" "^5.0.4" - "@turf/boolean-equal" "^5.0.4" - "@turf/boolean-overlap" "^5.0.4" - "@turf/boolean-parallel" "^5.0.4" - "@turf/boolean-point-in-polygon" "^5.0.4" - "@turf/boolean-point-on-line" "^5.0.4" - "@turf/boolean-within" "^5.0.4" - "@turf/buffer" "^5.0.4" - "@turf/center" "^5.0.4" - "@turf/center-of-mass" "^5.0.4" - "@turf/centroid" "^5.0.4" - "@turf/circle" "^5.0.4" - "@turf/clean-coords" "^5.0.4" - "@turf/clone" "^5.0.4" - "@turf/clusters" "^5.0.4" - "@turf/clusters-dbscan" "^5.0.4" - "@turf/clusters-kmeans" "^5.0.4" - "@turf/collect" "^5.0.4" - "@turf/combine" "^5.0.4" - "@turf/concave" "^5.0.4" - "@turf/convex" "^5.0.4" - "@turf/destination" "^5.0.4" - "@turf/difference" "^5.0.4" - "@turf/dissolve" "^5.0.4" - "@turf/distance" "^5.0.4" - "@turf/envelope" "^5.0.4" - "@turf/explode" "^5.0.4" - "@turf/flatten" "^5.0.4" - "@turf/flip" "^5.0.4" - "@turf/great-circle" "^5.0.4" - "@turf/helpers" "^5.0.4" - "@turf/hex-grid" "^5.0.4" - "@turf/interpolate" "^5.0.4" - "@turf/intersect" "^5.0.4" - "@turf/invariant" "^5.0.4" - "@turf/isobands" "^5.0.4" - "@turf/isolines" "^5.0.4" - "@turf/kinks" "^5.0.4" - "@turf/length" "^5.0.4" - "@turf/line-arc" "^5.0.4" - "@turf/line-chunk" "^5.0.4" - "@turf/line-intersect" "^5.0.4" - "@turf/line-offset" "^5.0.4" - "@turf/line-overlap" "^5.0.4" - "@turf/line-segment" "^5.0.4" - "@turf/line-slice" "^5.0.4" - "@turf/line-slice-along" "^5.0.4" - "@turf/line-split" "^5.0.4" - "@turf/line-to-polygon" "^5.0.4" - "@turf/mask" "^5.0.4" - "@turf/meta" "^5.0.4" - "@turf/midpoint" "^5.0.4" - "@turf/nearest-point" "^5.0.4" - "@turf/nearest-point-on-line" "^5.0.4" - "@turf/nearest-point-to-line" "^5.0.4" - "@turf/planepoint" "^5.0.4" - "@turf/point-grid" "^5.0.4" - "@turf/point-on-feature" "^5.0.4" - "@turf/point-to-line-distance" "^5.0.4" - "@turf/points-within-polygon" "^5.0.4" - "@turf/polygon-tangents" "^5.0.4" - "@turf/polygon-to-line" "^5.0.4" - "@turf/polygonize" "^5.0.4" - "@turf/projection" "^5.0.4" - "@turf/random" "^5.0.4" - "@turf/rewind" "^5.0.4" - "@turf/rhumb-bearing" "^5.0.4" - "@turf/rhumb-destination" "^5.0.4" - "@turf/rhumb-distance" "^5.0.4" - "@turf/sample" "^5.0.4" - "@turf/sector" "^5.0.4" - "@turf/shortest-path" "^5.0.4" - "@turf/simplify" "^5.0.4" - "@turf/square" "^5.0.4" - "@turf/square-grid" "^5.0.4" - "@turf/tag" "^5.0.4" - "@turf/tesselate" "^5.0.4" - "@turf/tin" "^5.0.4" - "@turf/transform-rotate" "^5.0.4" - "@turf/transform-scale" "^5.0.4" - "@turf/transform-translate" "^5.0.4" - "@turf/triangle-grid" "^5.0.4" - "@turf/truncate" "^5.0.4" - "@turf/union" "^5.0.4" - "@turf/unkink-polygon" "^5.0.4" - "@turf/voronoi" "^5.0.4" - -"@turf/union@*", "@turf/union@^5.0.4": - version "5.0.5" - resolved "https://registry.yarnpkg.com/@turf/union/-/union-5.0.5.tgz#98b2e9a474569d8d659020e32e09389c1d2bfc02" - dependencies: - "@turf/helpers" "^5.0.4" + version "5.1.6" + resolved "https://registry.yarnpkg.com/@turf/turf/-/turf-5.1.6.tgz#c3122592887ed234b75468b8a8c45bf886fbf8f6" + dependencies: + "@turf/along" "5.1.x" + "@turf/area" "5.1.x" + "@turf/bbox" "5.1.x" + "@turf/bbox-clip" "5.1.x" + "@turf/bbox-polygon" "5.1.x" + "@turf/bearing" "5.1.x" + "@turf/bezier-spline" "5.1.x" + "@turf/boolean-clockwise" "5.1.x" + "@turf/boolean-contains" "5.1.x" + "@turf/boolean-crosses" "5.1.x" + "@turf/boolean-disjoint" "5.1.x" + "@turf/boolean-equal" "5.1.x" + "@turf/boolean-overlap" "5.1.x" + "@turf/boolean-parallel" "5.1.x" + "@turf/boolean-point-in-polygon" "5.1.x" + "@turf/boolean-point-on-line" "5.1.x" + "@turf/boolean-within" "5.1.x" + "@turf/buffer" "5.1.x" + "@turf/center" "5.1.x" + "@turf/center-mean" "5.1.x" + "@turf/center-median" "5.1.x" + "@turf/center-of-mass" "5.1.x" + "@turf/centroid" "5.1.x" + "@turf/circle" "5.1.x" + "@turf/clean-coords" "5.1.x" + "@turf/clone" "5.1.x" + "@turf/clusters" "5.1.x" + "@turf/clusters-dbscan" "5.1.x" + "@turf/clusters-kmeans" "5.1.x" + "@turf/collect" "5.1.x" + "@turf/combine" "5.1.x" + "@turf/concave" "5.1.x" + "@turf/convex" "5.1.x" + "@turf/destination" "5.1.x" + "@turf/difference" "5.1.x" + "@turf/dissolve" "5.1.x" + "@turf/distance" "5.1.x" + "@turf/ellipse" "5.1.x" + "@turf/envelope" "5.1.x" + "@turf/explode" "5.1.x" + "@turf/flatten" "5.1.x" + "@turf/flip" "5.1.x" + "@turf/great-circle" "5.1.x" + "@turf/helpers" "5.1.x" + "@turf/hex-grid" "5.1.x" + "@turf/interpolate" "5.1.x" + "@turf/intersect" "5.1.x" + "@turf/invariant" "5.1.x" + "@turf/isobands" "5.1.x" + "@turf/isolines" "5.1.x" + "@turf/kinks" "5.1.x" + "@turf/length" "5.1.x" + "@turf/line-arc" "5.1.x" + "@turf/line-chunk" "5.1.x" + "@turf/line-intersect" "5.1.x" + "@turf/line-offset" "5.1.x" + "@turf/line-overlap" "5.1.x" + "@turf/line-segment" "5.1.x" + "@turf/line-slice" "5.1.x" + "@turf/line-slice-along" "5.1.x" + "@turf/line-split" "5.1.x" + "@turf/line-to-polygon" "5.1.x" + "@turf/mask" "5.1.x" + "@turf/meta" "5.1.x" + "@turf/midpoint" "5.1.x" + "@turf/nearest-point" "5.1.x" + "@turf/nearest-point-on-line" "5.1.x" + "@turf/nearest-point-to-line" "5.1.x" + "@turf/planepoint" "5.1.x" + "@turf/point-grid" "5.1.x" + "@turf/point-on-feature" "5.1.x" + "@turf/point-to-line-distance" "5.1.x" + "@turf/points-within-polygon" "5.1.x" + "@turf/polygon-tangents" "5.1.x" + "@turf/polygon-to-line" "5.1.x" + "@turf/polygonize" "5.1.x" + "@turf/projection" "5.1.x" + "@turf/random" "5.1.x" + "@turf/rewind" "5.1.x" + "@turf/rhumb-bearing" "5.1.x" + "@turf/rhumb-destination" "5.1.x" + "@turf/rhumb-distance" "5.1.x" + "@turf/sample" "5.1.x" + "@turf/sector" "5.1.x" + "@turf/shortest-path" "5.1.x" + "@turf/simplify" "5.1.x" + "@turf/square" "5.1.x" + "@turf/square-grid" "5.1.x" + "@turf/standard-deviational-ellipse" "5.1.x" + "@turf/tag" "5.1.x" + "@turf/tesselate" "5.1.x" + "@turf/tin" "5.1.x" + "@turf/transform-rotate" "5.1.x" + "@turf/transform-scale" "5.1.x" + "@turf/transform-translate" "5.1.x" + "@turf/triangle-grid" "5.1.x" + "@turf/truncate" "5.1.x" + "@turf/union" "5.1.x" + "@turf/unkink-polygon" "5.1.x" + "@turf/voronoi" "5.1.x" + +"@turf/union@5.1.x", "@turf/union@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/union/-/union-5.1.5.tgz#53285b6094047fc58d96aac0ea90865ec34d454b" + dependencies: + "@turf/helpers" "^5.1.5" turf-jsts "*" -"@turf/unkink-polygon@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/unkink-polygon/-/unkink-polygon-5.0.4.tgz#075fbc44da986ac26fc3bb904fde395e717878e8" +"@turf/unkink-polygon@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/unkink-polygon/-/unkink-polygon-5.1.5.tgz#7b01847c50fb574ae2579e19e44cba8526d213c3" dependencies: - "@turf/area" "^5.0.4" - "@turf/boolean-point-in-polygon" "^5.0.4" - "@turf/helpers" "^5.0.4" - "@turf/meta" "^5.0.4" + "@turf/area" "^5.1.5" + "@turf/boolean-point-in-polygon" "^5.1.5" + "@turf/helpers" "^5.1.5" + "@turf/meta" "^5.1.5" rbush "^2.0.1" -"@turf/voronoi@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@turf/voronoi/-/voronoi-5.0.4.tgz#f0f344597fec7d2d25de431ea450e50ea0641858" +"@turf/voronoi@5.1.x": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@turf/voronoi/-/voronoi-5.1.5.tgz#e856e9406dcc2f25d66ddc898584e27c2ebfca66" dependencies: - "@turf/helpers" "^5.0.4" - "@turf/invariant" "^5.0.4" + "@turf/helpers" "^5.1.5" + "@turf/invariant" "^5.1.5" d3-voronoi "1.1.2" -abbrev@1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.0.tgz#d0554c2256636e2f56e7c2e5ad183f859428d81f" +JSONStream@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.2.tgz#c102371b6ec3a7cf3b847ca00c20bb0fce4c6dea" + dependencies: + jsonparse "^1.2.0" + through ">=2.2.7 <3" -accepts@~1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.3.tgz#c3ca7434938648c3e0d9c1e328dd68b622c284ca" +abbrev@1, abbrev@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + +accepts@~1.3.4, accepts@~1.3.5: + version "1.3.5" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2" dependencies: - mime-types "~2.1.11" + mime-types "~2.1.18" negotiator "0.6.1" acorn-dynamic-import@^2.0.0: @@ -964,14 +1095,30 @@ acorn@^4.0.3: version "4.0.13" resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" -acorn@^5.0.0, acorn@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.1.1.tgz#53fe161111f912ab999ee887a90a0bc52822fd75" +acorn@^5.0.0, acorn@^5.5.0: + version "5.5.3" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.5.3.tgz#f473dd47e0277a08e28e9bec5aeeb04751f0b8c9" + +agent-base@4, agent-base@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.2.0.tgz#9838b5c3392b962bad031e6a4c5e1024abec45ce" + dependencies: + es6-promisify "^5.0.0" + +agentkeepalive@^3.3.0: + version "3.4.1" + resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-3.4.1.tgz#aa95aebc3a749bca5ed53e3880a09f5235b48f0c" + dependencies: + humanize-ms "^1.2.1" ajv-keywords@^1.0.0, ajv-keywords@^1.1.1: version "1.5.1" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c" +ajv-keywords@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.1.0.tgz#ac2b27939c543e95d2c06e7f7f5c27be4aa543be" + ajv@^4.7.0, ajv@^4.9.1: version "4.11.8" resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" @@ -979,14 +1126,23 @@ ajv@^4.7.0, ajv@^4.9.1: co "^4.6.0" json-stable-stringify "^1.0.1" -ajv@^5.0.0: - version "5.2.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.2.2.tgz#47c68d69e86f5d953103b0074a9430dc63da5e39" +ajv@^5.0.0, ajv@^5.1.0: + version "5.5.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" dependencies: co "^4.6.0" fast-deep-equal "^1.0.0" + fast-json-stable-stringify "^2.0.0" json-schema-traverse "^0.3.0" - json-stable-stringify "^1.0.1" + +ajv@^6.1.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.4.0.tgz#d3aff78e9277549771daf0164cff48482b754fc6" + dependencies: + fast-deep-equal "^1.0.0" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.3.0" + uri-js "^3.0.2" align-text@^0.1.1, align-text@^0.1.3: version "0.1.4" @@ -1004,10 +1160,22 @@ amdefine@>=0.0.4: version "1.0.1" resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" +ansi-align@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f" + dependencies: + string-width "^2.0.0" + ansi-escapes@^1.1.0: version "1.4.0" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" +ansi-gray@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/ansi-gray/-/ansi-gray-0.1.1.tgz#2962cf54ec9792c48510a3deb524436861ef7251" + dependencies: + ansi-wrap "0.1.0" + ansi-html@0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" @@ -1016,7 +1184,7 @@ ansi-regex@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" -ansi-regex@^3.0.0: +ansi-regex@^3.0.0, ansi-regex@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" @@ -1024,12 +1192,24 @@ ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" -ansi-styles@^3.1.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.0.tgz#c159b8d5be0f9e5a6f346dab94f16ce022161b88" +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" dependencies: color-convert "^1.9.0" +ansi-wrap@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/ansi-wrap/-/ansi-wrap-0.1.0.tgz#a82250ddb0015e9a27ca82e82ea603bbfa45efaf" + +ansicolors@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/ansicolors/-/ansicolors-0.3.2.tgz#665597de86a9ffe3aa9bfbe6cae5c6ea426b4979" + +ansistyles@~0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/ansistyles/-/ansistyles-0.1.3.tgz#5de60415bda071bb37127854c864f41b23254539" + anymatch@^1.3.0: version "1.3.2" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" @@ -1037,9 +1217,16 @@ anymatch@^1.3.0: micromatch "^2.1.5" normalize-path "^2.0.0" -aproba@^1.0.3: - version "1.1.2" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.1.2.tgz#45c6629094de4e96f693ef7eab74ae079c240fc1" +anymatch@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + dependencies: + micromatch "^3.1.4" + normalize-path "^2.1.1" + +aproba@^1.0.3, aproba@^1.1.1, aproba@^1.1.2, aproba@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" archive-type@^3.0.0, archive-type@^3.0.1: version "3.2.0" @@ -1047,6 +1234,10 @@ archive-type@^3.0.0, archive-type@^3.0.1: dependencies: file-type "^3.1.0" +archy@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" + are-we-there-yet@~1.1.2: version "1.1.4" resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d" @@ -1055,8 +1246,8 @@ are-we-there-yet@~1.1.2: readable-stream "^2.0.6" argparse@^1.0.7: - version "1.0.9" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86" + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" dependencies: sprintf-js "~1.0.2" @@ -1072,10 +1263,18 @@ arr-diff@^2.0.0: dependencies: arr-flatten "^1.0.1" -arr-flatten@^1.0.1: +arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + +arr-flatten@^1.0.1, arr-flatten@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + array-differ@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031" @@ -1096,6 +1295,13 @@ array-flatten@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.1.tgz#426bb9da84090c1838d812c8150af20a8331e296" +array-includes@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.7.0" + array-union@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" @@ -1110,6 +1316,10 @@ array-unique@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + array.prototype.find@^2.0.1: version "2.0.4" resolved "https://registry.yarnpkg.com/array.prototype.find/-/array.prototype.find-2.0.4.tgz#556a5c5362c08648323ddaeb9de9d14bc1864c90" @@ -1121,13 +1331,13 @@ arrify@^1.0.0, arrify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" -asap@~2.0.3: +asap@^2.0.0, asap@~2.0.3: version "2.0.6" resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" asn1.js@^4.0.0: - version "4.9.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.9.1.tgz#48ba240b45a9280e94748990ba597d216617fd40" + version "4.10.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" dependencies: bn.js "^4.0.0" inherits "^2.0.1" @@ -1151,13 +1361,17 @@ assert@^1.1.1: dependencies: util "0.10.3" +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + ast-types-flow@0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" -ast-types@0.9.11: - version "0.9.11" - resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.9.11.tgz#371177bb59232ff5ceaa1d09ee5cad705b1a5aa9" +ast-types@0.10.1: + version "0.10.1" + resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.10.1.tgz#f52fca9715579a14f841d67d7f8d25432ab6a3dd" async-each-series@^1.1.0: version "1.1.0" @@ -1167,7 +1381,7 @@ async-each@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" -async-throttle@^1.0.0: +async-throttle@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/async-throttle/-/async-throttle-1.1.0.tgz#229e7f3fa7a2a797e86f360e6309a08224d4fa7a" @@ -1179,9 +1393,9 @@ async@^1.3.0, async@^1.5.0, async@^1.5.2: version "1.5.2" resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" -async@^2.1.2, async@^2.1.4: - version "2.5.0" - resolved "https://registry.yarnpkg.com/async/-/async-2.5.0.tgz#843190fd6b7357a0b9e1c956edddd5ec8462b54d" +async@^2.1.2, async@^2.1.4, async@^2.5.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.0.tgz#61a29abb6fcc026fea77e56d1c6ec53a795951f4" dependencies: lodash "^4.14.0" @@ -1193,6 +1407,10 @@ asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" +atob@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.0.tgz#ab2b150e51d7b122b9efc8d7340c06b6c41076bc" + autoprefixer@^6.3.1, autoprefixer@^6.7.7: version "6.7.7" resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-6.7.7.tgz#1dbd1c835658e35ce3f9984099db00585c782014" @@ -1208,7 +1426,11 @@ aws-sign2@~0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" -aws4@^1.2.1: +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + +aws4@^1.2.1, aws4@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" @@ -1219,57 +1441,57 @@ axios@^0.15.3: follow-redirects "1.0.0" babel-cli@^6.24.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-cli/-/babel-cli-6.24.1.tgz#207cd705bba61489b2ea41b5312341cf6aca2283" - dependencies: - babel-core "^6.24.1" - babel-polyfill "^6.23.0" - babel-register "^6.24.1" - babel-runtime "^6.22.0" - commander "^2.8.1" - convert-source-map "^1.1.0" + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-cli/-/babel-cli-6.26.0.tgz#502ab54874d7db88ad00b887a06383ce03d002f1" + dependencies: + babel-core "^6.26.0" + babel-polyfill "^6.26.0" + babel-register "^6.26.0" + babel-runtime "^6.26.0" + commander "^2.11.0" + convert-source-map "^1.5.0" fs-readdir-recursive "^1.0.0" - glob "^7.0.0" - lodash "^4.2.0" - output-file-sync "^1.1.0" - path-is-absolute "^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.0" - v8flags "^2.0.10" + source-map "^0.5.6" + v8flags "^2.1.1" optionalDependencies: chokidar "^1.6.1" -babel-code-frame@^6.11.0, babel-code-frame@^6.16.0, babel-code-frame@^6.22.0, babel-code-frame@^6.8.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.22.0.tgz#027620bee567a88c32561574e7fd0801d33118e4" +babel-code-frame@^6.16.0, babel-code-frame@^6.22.0, babel-code-frame@^6.26.0, babel-code-frame@^6.8.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" dependencies: - chalk "^1.1.0" + chalk "^1.1.3" esutils "^2.0.2" - js-tokens "^3.0.0" + js-tokens "^3.0.2" -babel-core@^6.23.1, babel-core@^6.24.1: - version "6.25.0" - resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.25.0.tgz#7dd42b0463c742e9d5296deb3ec67a9322dad729" +babel-core@^6.23.1, babel-core@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.0.tgz#af32f78b31a6fcef119c87b0fd8d9753f03a0bb8" dependencies: - babel-code-frame "^6.22.0" - babel-generator "^6.25.0" + babel-code-frame "^6.26.0" + babel-generator "^6.26.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" + 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.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.0" + source-map "^0.5.6" babel-core@~6.13.2: version "6.13.2" @@ -1306,17 +1528,17 @@ babel-eslint@^7.1.1: babel-types "^6.23.0" babylon "^6.17.0" -babel-generator@^6.11.4, babel-generator@^6.25.0: - version "6.25.0" - resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.25.0.tgz#33a1af70d5f2890aeb465a4a7793c1df6a9ea9fc" +babel-generator@^6.11.4, babel-generator@^6.26.0: + version "6.26.1" + resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" dependencies: babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-types "^6.25.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" detect-indent "^4.0.0" jsesc "^1.3.0" - lodash "^4.2.0" - source-map "^0.5.0" + lodash "^4.17.4" + source-map "^0.5.7" trim-right "^1.0.1" babel-helper-bindify-decorators@^6.24.1: @@ -1336,12 +1558,12 @@ babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: babel-types "^6.24.1" babel-helper-builder-react-jsx@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.24.1.tgz#0ad7917e33c8d751e646daca4e77cc19377d2cbc" + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz#39ff8313b75c8b65dceff1f31d383e0ff2a408a0" dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - esutils "^2.0.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + esutils "^2.0.2" babel-helper-call-delegate@^6.24.1: version "6.24.1" @@ -1353,13 +1575,13 @@ babel-helper-call-delegate@^6.24.1: babel-types "^6.24.1" babel-helper-define-map@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.24.1.tgz#7a9747f258d8947d32d515f6aa1c7bd02204a080" + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f" dependencies: babel-helper-function-name "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - lodash "^4.2.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + lodash "^4.17.4" babel-helper-explode-assignable-expression@^6.24.1: version "6.24.1" @@ -1410,12 +1632,12 @@ babel-helper-optimise-call-expression@^6.24.1: babel-types "^6.24.1" babel-helper-regex@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.24.1.tgz#d36e22fab1008d79d88648e32116868128456ce8" + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72" dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - lodash "^4.2.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + lodash "^4.17.4" babel-helper-remap-async-to-generator@^6.24.1: version "6.24.1" @@ -1566,14 +1788,14 @@ babel-plugin-transform-es2015-block-scoped-functions@^6.22.0, babel-plugin-trans babel-runtime "^6.22.0" babel-plugin-transform-es2015-block-scoping@^6.24.1, babel-plugin-transform-es2015-block-scoping@^6.9.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.24.1.tgz#76c295dc3a4741b1665adfd3167215dcff32a576" + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" dependencies: - 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-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@^6.24.1, babel-plugin-transform-es2015-classes@^6.9.0: version "6.24.1" @@ -1638,13 +1860,13 @@ babel-plugin-transform-es2015-modules-amd@^6.24.1, babel-plugin-transform-es2015 babel-template "^6.24.1" babel-plugin-transform-es2015-modules-commonjs@^6.24.1, babel-plugin-transform-es2015-modules-commonjs@^6.6.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.24.1.tgz#d3e310b40ef664a36622200097c6d440298f2bfe" + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz#0d8394029b7dc6abe1a97ef181e00758dd2e5d8a" dependencies: babel-plugin-transform-strict-mode "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-types "^6.24.1" + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-types "^6.26.0" babel-plugin-transform-es2015-modules-systemjs@^6.12.0, babel-plugin-transform-es2015-modules-systemjs@^6.24.1: version "6.24.1" @@ -1737,11 +1959,11 @@ babel-plugin-transform-flow-strip-types@^6.22.0, babel-plugin-transform-flow-str babel-runtime "^6.22.0" babel-plugin-transform-object-rest-spread@^6.22.0, babel-plugin-transform-object-rest-spread@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.23.0.tgz#875d6bc9be761c58a2ae3feee5dc4895d8c7f921" + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz#0f36692d50fef6b7e2d4b3ac1478137a963b7b06" dependencies: babel-plugin-syntax-object-rest-spread "^6.8.0" - babel-runtime "^6.22.0" + babel-runtime "^6.26.0" babel-plugin-transform-react-display-name@^6.23.0, babel-plugin-transform-react-display-name@^6.3.13: version "6.25.0" @@ -1772,10 +1994,10 @@ babel-plugin-transform-react-jsx@^6.24.1, babel-plugin-transform-react-jsx@^6.3. babel-runtime "^6.22.0" babel-plugin-transform-regenerator@^6.24.1, babel-plugin-transform-regenerator@^6.9.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.24.1.tgz#b8da305ad43c3c99b4848e4fe4037b770d23c418" + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" dependencies: - regenerator-transform "0.9.11" + regenerator-transform "^0.10.0" babel-plugin-transform-strict-mode@^6.24.1: version "6.24.1" @@ -1784,13 +2006,13 @@ babel-plugin-transform-strict-mode@^6.24.1: babel-runtime "^6.22.0" babel-types "^6.24.1" -babel-polyfill@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.23.0.tgz#8364ca62df8eafb830499f699177466c3b03499d" +babel-polyfill@^6.23.0, babel-polyfill@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153" dependencies: - babel-runtime "^6.22.0" - core-js "^2.4.0" - regenerator-runtime "^0.10.0" + babel-runtime "^6.26.0" + core-js "^2.5.0" + regenerator-runtime "^0.10.5" babel-preset-es2015-loose@~7.0.0: version "7.0.0" @@ -1904,61 +2126,61 @@ babel-preset-stage-3@^6.24.1: babel-plugin-transform-exponentiation-operator "^6.24.1" babel-plugin-transform-object-rest-spread "^6.22.0" -babel-register@^6.24.0, babel-register@^6.24.1, babel-register@^6.9.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.24.1.tgz#7e10e13a2f71065bdfad5a1787ba45bca6ded75f" +babel-register@^6.24.0, babel-register@^6.26.0, babel-register@^6.9.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" dependencies: - babel-core "^6.24.1" - babel-runtime "^6.22.0" - core-js "^2.4.0" + babel-core "^6.26.0" + babel-runtime "^6.26.0" + core-js "^2.5.0" home-or-tmp "^2.0.0" - lodash "^4.2.0" + lodash "^4.17.4" mkdirp "^0.5.1" - source-map-support "^0.4.2" + source-map-support "^0.4.15" -babel-runtime@^6.18.0, babel-runtime@^6.2.0, babel-runtime@^6.22.0, babel-runtime@^6.25.0, babel-runtime@^6.9.1, babel-runtime@^6.9.2: - version "6.25.0" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.25.0.tgz#33b98eaa5d482bb01a8d1aa6b437ad2b01aec41c" +babel-runtime@^6.18.0, babel-runtime@^6.2.0, babel-runtime@^6.22.0, babel-runtime@^6.25.0, babel-runtime@^6.26.0, babel-runtime@^6.9.1, babel-runtime@^6.9.2: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" dependencies: core-js "^2.4.0" - regenerator-runtime "^0.10.0" + regenerator-runtime "^0.11.0" -babel-template@^6.24.1, babel-template@^6.25.0, babel-template@^6.3.0, babel-template@^6.7.0, babel-template@^6.9.0: - version "6.25.0" - resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.25.0.tgz#665241166b7c2aa4c619d71e192969552b10c071" +babel-template@^6.24.1, babel-template@^6.26.0, babel-template@^6.3.0, babel-template@^6.9.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" dependencies: - babel-runtime "^6.22.0" - babel-traverse "^6.25.0" - babel-types "^6.25.0" - babylon "^6.17.2" - lodash "^4.2.0" + 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@^6.13.0, babel-traverse@^6.23.1, babel-traverse@^6.24.1, babel-traverse@^6.25.0: - version "6.25.0" - resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.25.0.tgz#2257497e2fcd19b89edc13c4c91381f9512496f1" +babel-traverse@^6.13.0, babel-traverse@^6.23.1, babel-traverse@^6.24.1, babel-traverse@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" dependencies: - babel-code-frame "^6.22.0" + babel-code-frame "^6.26.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-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@^6.13.0, babel-types@^6.19.0, babel-types@^6.23.0, babel-types@^6.24.1, babel-types@^6.25.0: - version "6.25.0" - resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.25.0.tgz#70afb248d5660e5d18f811d91c8303b54134a18e" +babel-types@^6.13.0, babel-types@^6.19.0, babel-types@^6.23.0, babel-types@^6.24.1, babel-types@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" dependencies: - babel-runtime "^6.22.0" + babel-runtime "^6.26.0" esutils "^2.0.2" - lodash "^4.2.0" - to-fast-properties "^1.0.1" + lodash "^4.17.4" + to-fast-properties "^1.0.3" -babylon@^6.17.0, babylon@^6.17.2, babylon@^6.7.0: - version "6.17.4" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.17.4.tgz#3e8b7402b88d22c3423e137a1577883b15ff869a" +babylon@^6.17.0, babylon@^6.18.0, babylon@^6.7.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" babylon@~5.8.3: version "5.8.38" @@ -1972,9 +2194,25 @@ balanced-match@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" +base64-js@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-0.0.8.tgz#1101e9544f4a76b1bc3b26d452ca96d7a35e7978" + base64-js@^1.0.2: - version "1.2.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.1.tgz#a91947da1f4a516ea38e5b4ec0ec3773675e0886" + version "1.2.3" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.3.tgz#fb13668233d9614cf5fb4bce95a9ba4096cdf801" + +base@^0.11.1: + version "0.11.2" + resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + dependencies: + 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" batch@0.6.1: version "0.6.1" @@ -1990,9 +2228,13 @@ beeper@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/beeper/-/beeper-1.1.1.tgz#e6d5ea8c5dad001304a70b22638447f69cb2f809" +bessel@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bessel/-/bessel-1.0.2.tgz#828812291e0b62e94959cdea43fac186e8a7202d" + big.js@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.1.3.tgz#4cada2193652eb3ca9ec8e55c9015669c9806978" + version "3.2.0" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" bignumber.js@^2.1.0: version "2.4.0" @@ -2010,12 +2252,32 @@ bin-build@^2.0.0: tempfile "^1.0.0" url-regex "^3.0.0" +bin-build@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bin-build/-/bin-build-3.0.0.tgz#c5780a25a8a9f966d8244217e6c1f5082a143861" + dependencies: + decompress "^4.0.0" + download "^6.2.2" + execa "^0.7.0" + p-map-series "^1.0.0" + tempfile "^2.0.0" + bin-check@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/bin-check/-/bin-check-2.0.0.tgz#86f8e6f4253893df60dc316957f5af02acb05930" dependencies: executable "^1.0.0" +bin-links@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/bin-links/-/bin-links-1.1.2.tgz#fb74bd54bae6b7befc6c6221f25322ac830d9757" + dependencies: + bluebird "^3.5.0" + cmd-shim "^2.0.2" + gentle-fs "^2.0.0" + graceful-fs "^4.1.11" + write-file-atomic "^2.3.0" + bin-version-check@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/bin-version-check/-/bin-version-check-2.1.0.tgz#e4e5df290b9069f7d111324031efc13fdd11a5b0" @@ -2043,14 +2305,15 @@ bin-wrapper@^3.0.0: os-filter-obj "^1.0.0" binary-extensions@^1.0.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.9.0.tgz#66506c16ce6f4d6928a5b3cd6a33ca41e941e37b" + version "1.11.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205" bl@^1.0.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.1.tgz#cac328f7bee45730d404b692203fcb590e172d5e" + version "1.2.2" + resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.2.tgz#a160911717103c07410cef63ef51b397c025af9c" dependencies: - readable-stream "^2.0.5" + readable-stream "^2.3.5" + safe-buffer "^5.1.1" block-stream@*: version "0.0.9" @@ -2058,9 +2321,9 @@ block-stream@*: dependencies: inherits "~2.0.0" -bluebird@^3.4.7: - version "3.5.0" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.0.tgz#791420d7f551eea2897453a8a77653f96606d67c" +bluebird@^3.4.7, bluebird@^3.5.0, bluebird@^3.5.1, bluebird@~3.5.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9" bmp-js@0.0.1: version "0.0.1" @@ -2074,6 +2337,21 @@ bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: version "4.11.8" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" +body-parser@1.18.2: + version "1.18.2" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.2.tgz#87678a19d84b47d859b83199bd59bce222b10454" + dependencies: + bytes "3.0.0" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.1" + http-errors "~1.6.2" + iconv-lite "0.4.19" + on-finished "~2.3.0" + qs "6.5.1" + raw-body "2.3.2" + type-is "~1.6.15" + bonjour@^3.5.0: version "3.5.0" resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" @@ -2085,7 +2363,7 @@ bonjour@^3.5.0: multicast-dns "^6.0.1" multicast-dns-service-types "^1.1.0" -boolbase@~1.0.0: +boolbase@^1.0.0, boolbase@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" @@ -2095,13 +2373,37 @@ boom@2.x.x: dependencies: hoek "2.x.x" +boom@4.x.x: + version "4.3.1" + resolved "https://registry.yarnpkg.com/boom/-/boom-4.3.1.tgz#4f8a3005cb4a7e3889f749030fd25b96e01d2e31" + dependencies: + hoek "4.x.x" + +boom@5.x.x: + version "5.2.0" + resolved "https://registry.yarnpkg.com/boom/-/boom-5.2.0.tgz#5dd9da6ee3a5f302077436290cb717d3f4a54e02" + dependencies: + hoek "4.x.x" + bowser@^1.0.0: - version "1.7.1" - resolved "https://registry.yarnpkg.com/bowser/-/bowser-1.7.1.tgz#a4de8f18a1a0dc9531eb2a92a1521fb6a9ba96a5" + version "1.9.3" + resolved "https://registry.yarnpkg.com/bowser/-/bowser-1.9.3.tgz#6643ae4d783f31683f6d23156976b74183862162" + +boxen@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b" + dependencies: + ansi-align "^2.0.0" + camelcase "^4.0.0" + chalk "^2.0.1" + cli-boxes "^1.0.0" + string-width "^2.0.0" + term-size "^1.2.0" + widest-line "^2.0.0" brace-expansion@^1.1.7: - version "1.1.8" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292" + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" dependencies: balanced-match "^1.0.0" concat-map "0.0.1" @@ -2114,6 +2416,23 @@ braces@^1.8.2: preserve "^0.2.0" repeat-element "^1.1.2" +braces@^2.3.0, braces@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.1.tgz#7086c913b4e5a08dbe37ac0ee6a2500c4ba691bb" + dependencies: + arr-flatten "^1.1.0" + array-unique "^0.3.2" + define-property "^1.0.0" + extend-shallow "^2.0.1" + fill-range "^4.0.0" + isobject "^3.0.1" + kind-of "^6.0.2" + repeat-element "^1.1.2" + snapdragon "^0.8.1" + snapdragon-node "^2.0.1" + split-string "^3.0.2" + to-regex "^3.0.1" + brorand@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" @@ -2125,14 +2444,15 @@ browserify-aes@0.4.0: inherits "^2.0.1" browserify-aes@^1.0.0, browserify-aes@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.0.6.tgz#5e7725dbdef1fd5930d4ebab48567ce451c48a0a" + version "1.2.0" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" dependencies: - buffer-xor "^1.0.2" + buffer-xor "^1.0.3" cipher-base "^1.0.0" create-hash "^1.1.0" - evp_bytestokey "^1.0.0" + evp_bytestokey "^1.0.3" inherits "^2.0.1" + safe-buffer "^5.0.1" browserify-cipher@^1.0.0: version "1.0.0" @@ -2175,7 +2495,13 @@ browserify-zlib@^0.1.4: dependencies: pako "~0.2.0" -browserslist@^1.3.6, browserslist@^1.5.2, browserslist@^1.7.6: +browserify-zlib@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" + dependencies: + pako "~1.0.5" + +browserslist@^1.3.6, browserslist@^1.5.2, browserslist@^1.7.6: version "1.7.7" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-1.7.7.tgz#0bd76704258be829b2398bb50e4b62d1a166b0b9" dependencies: @@ -2193,17 +2519,29 @@ buffer-alloc@^1.1.0: buffer-alloc-unsafe "^0.1.0" buffer-fill "^0.1.0" +buffer-crc32@~0.2.3: + version "0.2.13" + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + buffer-equal@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-0.0.1.tgz#91bc74b11ea405bc916bc6aa908faafa5b4aac4b" buffer-fill@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-0.1.0.tgz#ca9470e8d4d1b977fd7543f4e2ab6a7dc95101a8" + version "0.1.1" + resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-0.1.1.tgz#76d825c4d6e50e06b7a31eb520c04d08cc235071" + +buffer-from@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-0.1.2.tgz#15f4b9bcef012044df31142c14333caf6e0260d0" + +buffer-from@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.0.0.tgz#4cb8832d23612589b0406e9e2956c17f06fdf531" buffer-indexof@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.0.tgz#f54f647c4f4e25228baa656a2e57e43d5f270982" + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" buffer-to-vinyl@^1.0.0: version "1.1.0" @@ -2214,10 +2552,18 @@ buffer-to-vinyl@^1.0.0: uuid "^2.0.1" vinyl "^1.0.0" -buffer-xor@^1.0.2: +buffer-xor@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" +buffer@^3.0.1: + version "3.6.0" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-3.6.0.tgz#a72c936f77b96bf52f5f7e7b467180628551defb" + dependencies: + base64-js "0.0.8" + ieee754 "^1.1.4" + isarray "^1.0.0" + buffer@^4.3.0, buffer@^4.9.0: version "4.9.1" resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" @@ -2234,16 +2580,60 @@ builtin-status-codes@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" -bytes@2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-2.5.0.tgz#4c9423ea2d252c270c41b2bdefeff9bb6b62c06a" +builtins@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" + +byline@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/byline/-/byline-5.0.0.tgz#741c5216468eadc457b03410118ad77de8c1ddb1" + +bytes@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" c3@^0.4.11: - version "0.4.15" - resolved "https://registry.yarnpkg.com/c3/-/c3-0.4.15.tgz#747c47b33739d0f92bf4b5ddcce2bffff4fd4a31" + version "0.4.22" + resolved "https://registry.yarnpkg.com/c3/-/c3-0.4.22.tgz#88b895f06fb6b44314e94b2d7331c3dc98b64d2d" dependencies: d3 "~3.5.0" +cacache@^10.0.0, cacache@^10.0.4: + version "10.0.4" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-10.0.4.tgz#6452367999eff9d4188aefd9a14e9d7c6a263460" + dependencies: + 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" + +cache-base@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + dependencies: + 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" + +call-limit@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/call-limit/-/call-limit-1.1.0.tgz#6fd61b03f3da42a2cd0ec2b60f02bd0e71991fea" + caller-path@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" @@ -2280,6 +2670,10 @@ camelcase@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" +camelcase@^4.0.0, camelcase@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" + caniuse-api@^1.5.2: version "1.6.1" resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-1.6.1.tgz#b534e7c734c4f81ec5fbe8aca2ad24354b962c6c" @@ -2290,17 +2684,13 @@ caniuse-api@^1.5.2: lodash.uniq "^4.5.0" caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639: - version "1.0.30000713" - resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000713.tgz#ea01761840b5f148faf94ec5f34d0aa1d321966f" + version "1.0.30000823" + resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000823.tgz#e68e5f8c70783ef4059d2ea0de81f551651da6fc" capture-stack-trace@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz#4a6fa07399c26bba47f0b2496b4d0fb408c5550d" -caseless@~0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7" - caseless@~0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" @@ -2314,6 +2704,15 @@ caw@^1.0.1: object-assign "^3.0.0" tunnel-agent "^0.4.0" +caw@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/caw/-/caw-2.0.1.tgz#6c3ca071fc194720883c2dc5da9b074bfc7e9e95" + dependencies: + get-proxy "^2.0.0" + isurl "^1.0.0-alpha5" + tunnel-agent "^0.6.0" + url-to-options "^1.0.1" + center-align@^0.1.1: version "0.1.3" resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" @@ -2325,7 +2724,7 @@ chain-function@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/chain-function/-/chain-function-1.0.0.tgz#0d4ab37e7e18ead0bdc47b920764118ce58733dc" -chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3: +chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" dependencies: @@ -2335,13 +2734,13 @@ chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" -chalk@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.1.0.tgz#ac5becf14fa21b99c6c92ca7a7d7cfd5b17e743e" +chalk@^2.0.1, chalk@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.2.tgz#250dc96b07491bfd601e648d66ddf5f60c7a5c65" dependencies: - ansi-styles "^3.1.0" + ansi-styles "^3.2.1" escape-string-regexp "^1.0.5" - supports-color "^4.0.0" + supports-color "^5.3.0" change-emitter@^0.1.2: version "0.1.6" @@ -2357,7 +2756,7 @@ cheerio@^0.19.0: htmlparser2 "~3.8.1" lodash "^3.2.0" -chokidar@^1.0.0, chokidar@^1.6.0, chokidar@^1.6.1, chokidar@^1.7.0: +chokidar@^1.0.0, chokidar@^1.6.1: version "1.7.0" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" dependencies: @@ -2372,6 +2771,36 @@ chokidar@^1.0.0, chokidar@^1.6.0, chokidar@^1.6.1, chokidar@^1.7.0: optionalDependencies: fsevents "^1.0.0" +chokidar@^2.0.0, chokidar@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.0.3.tgz#dcbd4f6cbb2a55b4799ba8a840ac527e5f4b1176" + dependencies: + anymatch "^2.0.0" + async-each "^1.0.0" + braces "^2.3.0" + glob-parent "^3.1.0" + inherits "^2.0.1" + is-binary-path "^1.0.0" + is-glob "^4.0.0" + normalize-path "^2.1.1" + path-is-absolute "^1.0.0" + readdirp "^2.0.0" + upath "^1.0.0" + optionalDependencies: + fsevents "^1.1.2" + +chownr@^1.0.1, chownr@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181" + +ci-info@^1.0.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.1.3.tgz#710193264bb05c77b8c90d02f5aaf22216a667b2" + +cidr-regex@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cidr-regex/-/cidr-regex-1.0.6.tgz#74abfd619df370b9d54ab14475568e97dd64c0c1" + cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" @@ -2384,30 +2813,52 @@ circular-json@^0.3.1: resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" clap@^1.0.9: - version "1.2.0" - resolved "https://registry.yarnpkg.com/clap/-/clap-1.2.0.tgz#59c90fe3e137104746ff19469a27a634ff68c857" + version "1.2.3" + resolved "https://registry.yarnpkg.com/clap/-/clap-1.2.3.tgz#4f36745b32008492557f46412d66d50cb99bce51" dependencies: chalk "^1.1.3" +class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" + classnames@2.2.5, classnames@^2.2.4, classnames@^2.2.5: version "2.2.5" resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.5.tgz#fb3801d453467649ef3603c7d61a02bd129bde6d" clean-css@4.1.x: - version "4.1.7" - resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.1.7.tgz#b9aea4f85679889cf3eae8b40349ec4ebdfdd032" + version "4.1.11" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.1.11.tgz#2ecdf145aba38f54740f26cefd0ff3e03e125d6a" dependencies: source-map "0.5.x" +cli-boxes@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" + cli-cursor@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" dependencies: restore-cursor "^1.0.1" +cli-table2@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/cli-table2/-/cli-table2-0.2.0.tgz#2d1ef7f218a0e786e214540562d4bd177fe32d97" + dependencies: + lodash "^3.10.1" + string-width "^1.0.1" + optionalDependencies: + colors "^1.1.2" + cli-width@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.1.0.tgz#b234ca209b29ef66fc518d9b98d5847b00edf00a" + version "2.2.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" cliui@^2.1.0: version "2.1.0" @@ -2425,6 +2876,14 @@ cliui@^3.0.3, cliui@^3.2.0: strip-ansi "^3.0.1" wrap-ansi "^2.0.0" +cliui@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.0.0.tgz#743d4650e05f36d1ed2575b59638d87322bfbbcc" + dependencies: + string-width "^2.1.1" + strip-ansi "^4.0.0" + wrap-ansi "^2.0.0" + clone-stats@^0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-0.0.1.tgz#b88f94a82cf38b8791d58046ea4029ad88ca99d1" @@ -2434,12 +2893,19 @@ clone@^0.2.0: resolved "https://registry.yarnpkg.com/clone/-/clone-0.2.0.tgz#c6126a90ad4f72dbf5acdb243cc37724fe93fc1f" clone@^1.0.0, clone@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.2.tgz#260b7a99ebb1edfe247538175f783243cb19d149" + version "1.0.4" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" clone@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.1.tgz#d217d1e961118e3ac9a4b8bba3285553bf647cdb" + version "2.1.2" + resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" + +cmd-shim@^2.0.2, cmd-shim@~2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-2.0.2.tgz#6fcbda99483a8fd15d7d30a196ca69d688a2efdb" + dependencies: + graceful-fs "^4.1.2" + mkdirp "~0.5.0" co@3.1.0: version "3.1.0" @@ -2455,13 +2921,26 @@ coa@~1.0.1: dependencies: q "^1.1.2" +coa@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.1.tgz#f3f8b0b15073e35d70263fb1042cb2c023db38af" + dependencies: + q "^1.1.2" + code-point-at@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + color-convert@^1.3.0, color-convert@^1.8.2, color-convert@^1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.0.tgz#1accf97dd739b983bf994d56fec8f95853641b7a" + version "1.9.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.1.tgz#c1261107aeb2f294ebffec9ed9ecad529a6097ed" dependencies: color-name "^1.1.1" @@ -2482,6 +2961,10 @@ color-string@^1.4.0: color-name "^1.0.0" simple-swizzle "^0.2.2" +color-support@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" + color@^0.11.0: version "0.11.4" resolved "https://registry.yarnpkg.com/color/-/color-0.11.4.tgz#6d7b5c74fb65e841cd48792ad1ed5e07b904d764" @@ -2505,23 +2988,34 @@ colormin@^1.0.5: css-color-names "0.0.4" has "^1.0.1" -colors@^1.1.2, colors@~1.1.2: +colors@^1.1.2: + version "1.2.1" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.2.1.tgz#f4a3d302976aaf042356ba1ade3b1a2c62d9d794" + +colors@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" -combined-stream@^1.0.5, combined-stream@~1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" +columnify@~1.5.4: + version "1.5.4" + resolved "https://registry.yarnpkg.com/columnify/-/columnify-1.5.4.tgz#4737ddf1c7b69a8a7c340570782e947eec8e78bb" + dependencies: + strip-ansi "^3.0.0" + wcwidth "^1.0.0" + +combined-stream@1.0.6, combined-stream@^1.0.5, combined-stream@~1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818" dependencies: delayed-stream "~1.0.0" -commander@2: - version "2.12.2" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.12.2.tgz#0f5946c427ed9ec0d91a46bb9def53e54650e555" +commander@2, commander@2.15.x, commander@^2.11.0, commander@^2.9.0, commander@~2.15.0: + version "2.15.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" -commander@2.11.x, commander@^2.8.1, commander@^2.9.0, commander@~2.11.0: - version "2.11.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563" +commander@~2.13.0: + version "2.13.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c" commander@~2.8.1: version "2.8.1" @@ -2533,37 +3027,33 @@ commondir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" -compressible@~2.0.10: - version "2.0.11" - resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.11.tgz#16718a75de283ed8e604041625a2064586797d8a" +component-emitter@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" + +compressible@~2.0.13: + version "2.0.13" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.13.tgz#0d1020ab924b2fdb4d6279875c7d6daba6baa7a9" dependencies: - mime-db ">= 1.29.0 < 2" + mime-db ">= 1.33.0 < 2" compression@^1.5.2: - version "1.7.0" - resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.0.tgz#030c9f198f1643a057d776a738e922da4373012d" + version "1.7.2" + resolved "http://registry.npmjs.org/compression/-/compression-1.7.2.tgz#aaffbcd6aaf854b44ebb280353d5ad1651f59a69" dependencies: - accepts "~1.3.3" - bytes "2.5.0" - compressible "~2.0.10" - debug "2.6.8" + accepts "~1.3.4" + bytes "3.0.0" + compressible "~2.0.13" + debug "2.6.9" on-headers "~1.0.1" safe-buffer "5.1.1" - vary "~1.1.1" + vary "~1.1.2" concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" -concat-stream@1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.5.0.tgz#53f7d43c51c5e43f81c8fdd03321c631be68d611" - dependencies: - inherits "~2.0.1" - readable-stream "~2.0.0" - typedarray "~0.0.5" - -concat-stream@^1.4.6, concat-stream@^1.4.7, concat-stream@^1.5.2: +concat-stream@1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7" dependencies: @@ -2571,6 +3061,15 @@ concat-stream@^1.4.6, concat-stream@^1.4.7, concat-stream@^1.5.2: readable-stream "^2.2.2" typedarray "^0.0.6" +concat-stream@^1.4.6, concat-stream@^1.4.7, concat-stream@^1.5.0, concat-stream@^1.5.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + concaveman@*: version "1.1.1" resolved "https://registry.yarnpkg.com/concaveman/-/concaveman-1.1.1.tgz#6c2482580b2523cef82fc2bec00a0415e6e68162" @@ -2581,9 +3080,27 @@ concaveman@*: robust-orientation "^1.1.3" tinyqueue "^1.1.0" +config-chain@^1.1.11, config-chain@~1.1.11: + version "1.1.11" + resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.11.tgz#aba09747dfbe4c3e70e766a6e41586e1859fc6f2" + dependencies: + ini "^1.3.4" + proto-list "~1.2.1" + +configstore@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.2.tgz#c6f25defaeef26df12dd33414b001fe81a543f8f" + dependencies: + dot-prop "^4.1.0" + graceful-fs "^4.1.2" + make-dir "^1.0.0" + unique-string "^1.0.0" + write-file-atomic "^2.0.0" + xdg-basedir "^3.0.0" + connect-history-api-fallback@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.3.0.tgz#e51d17f8f0ef0db90a64fdb47de3051556e9f169" + version "1.5.0" + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz#b06873934bc5e344fef611a196a6faae0aee015a" console-browserify@^1.1.0: version "1.1.0" @@ -2607,17 +3124,17 @@ contains-path@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" -content-disposition@0.5.2: +content-disposition@0.5.2, content-disposition@^0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" -content-type@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.2.tgz#b7d113aee7a8dd27bd21133c4dc2529df1721eed" +content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" -convert-source-map@^1.1.0, convert-source-map@^1.1.1: - version "1.5.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.0.tgz#9acd70851c6d5dfdd93d9282e5edf94a03ff46b5" +convert-source-map@^1.1.0, convert-source-map@^1.1.1, convert-source-map@^1.5.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5" cookie-signature@1.0.6: version "1.0.6" @@ -2627,6 +3144,21 @@ cookie@0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" +copy-concurrently@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" + dependencies: + 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@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + core-js@2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.4.1.tgz#4de911e667b0eae9124e34254b53aea6fc618d3e" @@ -2635,9 +3167,9 @@ core-js@^1.0.0: version "1.2.7" resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" -core-js@^2.4.0, core-js@^2.4.1: - version "2.5.0" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.0.tgz#569c050918be6486b3837552028ae0466b717086" +core-js@^2.4.0, core-js@^2.4.1, core-js@^2.5.0: + version "2.5.4" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.4.tgz#f2c8bf181f2a80b92f360121429ce63a2f0aeae0" core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" @@ -2662,13 +3194,13 @@ create-ecdh@^4.0.0: bn.js "^4.1.0" elliptic "^6.0.0" -create-error-class@^3.0.1: +create-error-class@^3.0.0, create-error-class@^3.0.1: version "3.0.2" resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" dependencies: capture-stack-trace "^1.0.0" -create-hash@^1.1.0, create-hash@^1.1.1, create-hash@^1.1.2: +create-hash@^1.1.0, create-hash@^1.1.2: version "1.1.3" resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.1.3.tgz#606042ac8b9262750f483caddab0f5819172d8fd" dependencies: @@ -2688,9 +3220,9 @@ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: safe-buffer "^5.0.1" sha.js "^2.4.8" -create-react-class@^15.5.1, create-react-class@^15.5.2, create-react-class@^15.6.0: - version "15.6.0" - resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.6.0.tgz#ab448497c26566e1e29413e883207d57cfe7bed4" +create-react-class@^15.5.1, create-react-class@^15.6.0: + version "15.6.3" + resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.6.3.tgz#2d73237fb3f970ae6ebe011a9e66f46dbca80036" dependencies: fbjs "^0.8.9" loose-envify "^1.3.1" @@ -2704,12 +3236,28 @@ cross-spawn@^5.0.1: shebang-command "^1.2.0" which "^1.2.9" +cross-spawn@^6.0.0: + version "6.0.5" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" + cryptiles@2.x.x: version "2.0.5" resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" dependencies: boom "2.x.x" +cryptiles@3.x.x: + version "3.1.2" + resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-3.1.2.tgz#a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe" + dependencies: + boom "5.x.x" + crypto-browserify@3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.3.0.tgz#b9fc75bb4a0ed61dcf1cd5dae96eb30c9c3e506c" @@ -2720,8 +3268,8 @@ crypto-browserify@3.3.0: sha.js "2.2.6" crypto-browserify@^3.11.0: - version "3.11.1" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.11.1.tgz#948945efc6757a400d6e5e5af47194d10064279f" + version "3.12.0" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" dependencies: browserify-cipher "^1.0.0" browserify-sign "^4.0.0" @@ -2733,29 +3281,38 @@ crypto-browserify@^3.11.0: pbkdf2 "^3.0.3" public-encrypt "^4.0.0" randombytes "^2.0.0" + randomfill "^1.0.3" + +crypto-random-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" css-color-names@0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" css-loader@^0.28.0: - version "0.28.4" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-0.28.4.tgz#6cf3579192ce355e8b38d5f42dd7a1f2ec898d0f" + version "0.28.11" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-0.28.11.tgz#c3f9864a700be2711bb5a2462b2389b1a392dab7" dependencies: - babel-code-frame "^6.11.0" + babel-code-frame "^6.26.0" css-selector-tokenizer "^0.7.0" - cssnano ">=2.6.1 <4" + cssnano "^3.10.0" icss-utils "^2.1.0" loader-utils "^1.0.2" lodash.camelcase "^4.3.0" - object-assign "^4.0.1" + object-assign "^4.1.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" + 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 "^0.1.7" + source-list-map "^2.0.0" + +css-select-base-adapter@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.0.tgz#0102b3d14630df86c3eb9fa9f5456270106cf990" css-select@^1.1.0: version "1.2.0" @@ -2775,6 +3332,15 @@ css-select@~1.0.0: domutils "1.4" nth-check "~1.0.0" +css-select@~1.3.0-rc0: + version "1.3.0-rc0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.3.0-rc0.tgz#6f93196aaae737666ea1036a8cb14a8fcb7a9231" + dependencies: + boolbase "^1.0.0" + css-what "2.1" + domutils "1.5.1" + nth-check "^1.0.1" + css-selector-tokenizer@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz#e6988474ae8c953477bf5e7efecfceccd9cf4c86" @@ -2783,6 +3349,24 @@ css-selector-tokenizer@^0.7.0: fastparse "^1.1.1" regexpu-core "^1.0.0" +css-tree@1.0.0-alpha.27: + version "1.0.0-alpha.27" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.27.tgz#f211526909c7dc940843d83b9376ed98ddb8de47" + dependencies: + mdn-data "^1.0.0" + source-map "^0.5.3" + +css-tree@1.0.0-alpha25: + version "1.0.0-alpha25" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha25.tgz#1bbfabfbf6eeef4f01d9108ff2edd0be2fe35597" + dependencies: + mdn-data "^1.0.0" + source-map "^0.5.3" + +css-url-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/css-url-regex/-/css-url-regex-1.1.0.tgz#83834230cc9f74c457de59eebd1543feeb83b7ec" + css-what@1.0: version "1.0.0" resolved "https://registry.yarnpkg.com/css-what/-/css-what-1.0.0.tgz#d7cc2df45180666f99d2b14462639469e00f736c" @@ -2795,7 +3379,7 @@ cssesc@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-0.1.0.tgz#c814903e45623371a0477b40109aaafbeeaddbb4" -"cssnano@>=2.6.1 <4", cssnano@^3.4.0: +cssnano@^3.10.0, cssnano@^3.4.0: version "3.10.0" resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-3.10.0.tgz#4f38f6cea2b9b17fa01490f23f1dc68ea65c1c38" dependencies: @@ -2832,6 +3416,12 @@ cssesc@^0.1.0: postcss-value-parser "^3.2.3" postcss-zindex "^2.0.1" +csso@^3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/csso/-/csso-3.5.0.tgz#acdbba5719e2c87bc801eadc032764b2e4b9d4e7" + dependencies: + css-tree "1.0.0-alpha.27" + csso@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/csso/-/csso-2.0.0.tgz#178b43a44621221c27756086f531e02f42900ee8" @@ -2852,9 +3442,13 @@ currently-unhandled@^0.4.1: dependencies: array-find-index "^1.0.1" +cyclist@~0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640" + d3-array@1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-1.2.0.tgz#147d269720e174c4057a7f42be8b0f3f2ba53108" + version "1.2.1" + resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-1.2.1.tgz#d1ca33de2f6ac31efadb8e050a021d7e2396d5dc" d3-collection@1: version "1.0.4" @@ -2865,8 +3459,8 @@ d3-color@1: resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-1.0.3.tgz#bc7643fca8e53a8347e2fbdaffa236796b58509b" d3-format@1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-1.2.0.tgz#6b480baa886885d4651dc248a8f4ac9da16db07a" + version "1.2.2" + resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-1.2.2.tgz#1a39c479c8a57fe5051b2e67a3bee27061a74e7a" d3-geo@1.7.1: version "1.7.1" @@ -2875,8 +3469,8 @@ d3-geo@1.7.1: d3-array "1" d3-interpolate@1: - version "1.1.5" - resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-1.1.5.tgz#69e099ff39214716e563c9aec3ea9d1ea4b8a79f" + version "1.1.6" + resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-1.1.6.tgz#2cf395ae2381804df08aa1bf766b7f97b5f68fb6" dependencies: d3-color "1" @@ -2903,14 +3497,14 @@ d3-shape@1.0.4: d3-path "1" d3-time-format@2: - version "2.0.5" - resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-2.0.5.tgz#9d7780204f7c9119c9170b1a56db4de9a8af972e" + version "2.1.1" + resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-2.1.1.tgz#85b7cdfbc9ffca187f14d3c456ffda268081bb31" dependencies: d3-time "1" d3-time@1: - version "1.0.7" - resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-1.0.7.tgz#94caf6edbb7879bb809d0d1f7572bc48482f7270" + version "1.0.8" + resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-1.0.8.tgz#dbd2d6007bf416fe67a76d17947b784bffea1e84" d3-voronoi@1.1.2: version "1.1.2" @@ -2941,16 +3535,18 @@ date-now@^0.1.4: resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" dateformat@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-2.0.0.tgz#2743e3abb5c3fc2462e527dca445e04e9f4dee17" + version "2.2.0" + resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-2.2.0.tgz#4065e2013cf9fb916ddfd82efb506ad4c6769062" -debug@0.7.4: - version "0.7.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-0.7.4.tgz#06e1ea8082c2cb14e39806e22e2f6f757f92af39" +debug@2.6.9, debug@^2.1.1, debug@^2.2.0, debug@^2.3.3, debug@^2.6.6, debug@^2.6.8, debug@^2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + dependencies: + ms "2.0.0" -debug@2.6.8, debug@^2.1.1, debug@^2.2.0, debug@^2.6.6, debug@^2.6.8: - version "2.6.8" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc" +debug@3.1.0, debug@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" dependencies: ms "2.0.0" @@ -2960,10 +3556,28 @@ debug@~2.2.0: dependencies: ms "0.7.1" +debuglog@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" + decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" +decimal.js@~4.0.1: + version "4.0.4" + resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-4.0.4.tgz#af3249465e133988c30750f77eaaf44505caa5e3" + +decode-uri-component@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + +decompress-response@^3.2.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" + dependencies: + mimic-response "^1.0.0" + decompress-tar@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/decompress-tar/-/decompress-tar-3.1.0.tgz#217c789f9b94450efaadc5c5e537978fc333c466" @@ -2975,6 +3589,14 @@ decompress-tar@^3.0.0: through2 "^0.6.1" vinyl "^0.4.3" +decompress-tar@^4.0.0, decompress-tar@^4.1.0, decompress-tar@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/decompress-tar/-/decompress-tar-4.1.1.tgz#718cbd3fcb16209716e70a26b84e7ba4592e5af1" + dependencies: + file-type "^5.2.0" + is-stream "^1.1.0" + tar-stream "^1.5.2" + decompress-tarbz2@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/decompress-tarbz2/-/decompress-tarbz2-3.1.0.tgz#8b23935681355f9f189d87256a0f8bdd96d9666d" @@ -2987,6 +3609,16 @@ decompress-tarbz2@^3.0.0: through2 "^0.6.1" vinyl "^0.4.3" +decompress-tarbz2@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz#3082a5b880ea4043816349f378b56c516be1a39b" + dependencies: + decompress-tar "^4.1.0" + file-type "^6.1.0" + is-stream "^1.1.0" + seek-bzip "^1.0.5" + unbzip2-stream "^1.0.9" + decompress-targz@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/decompress-targz/-/decompress-targz-3.1.0.tgz#b2c13df98166268991b715d6447f642e9696f5a0" @@ -2998,6 +3630,14 @@ decompress-targz@^3.0.0: through2 "^0.6.1" vinyl "^0.4.3" +decompress-targz@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/decompress-targz/-/decompress-targz-4.1.1.tgz#c09bc35c4d11f3de09f2d2da53e9de23e7ce1eee" + dependencies: + decompress-tar "^4.1.1" + file-type "^5.2.0" + is-stream "^1.1.0" + decompress-unzip@^3.0.0: version "3.4.0" resolved "https://registry.yarnpkg.com/decompress-unzip/-/decompress-unzip-3.4.0.tgz#61475b4152066bbe3fee12f9d629d15fe6478eeb" @@ -3010,6 +3650,15 @@ decompress-unzip@^3.0.0: vinyl "^1.0.0" yauzl "^2.2.1" +decompress-unzip@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/decompress-unzip/-/decompress-unzip-4.0.1.tgz#deaaccdfd14aeaf85578f733ae8210f9b4848f69" + dependencies: + file-type "^3.8.0" + get-stream "^2.2.0" + pify "^2.3.0" + yauzl "^2.4.2" + decompress@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/decompress/-/decompress-3.0.0.tgz#af1dd50d06e3bfc432461d37de11b38c0d991bed" @@ -3024,6 +3673,19 @@ decompress@^3.0.0: vinyl-assign "^1.0.1" vinyl-fs "^2.2.0" +decompress@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/decompress/-/decompress-4.2.0.tgz#7aedd85427e5a92dacfe55674a7c505e96d01f9d" + dependencies: + decompress-tar "^4.0.0" + decompress-tarbz2 "^4.0.0" + decompress-targz "^4.0.0" + decompress-unzip "^4.0.1" + graceful-fs "^4.1.10" + make-dir "^1.0.0" + pify "^2.3.0" + strip-dirs "^2.0.0" + deep-diff@^0.3.5: version "0.3.8" resolved "https://registry.yarnpkg.com/deep-diff/-/deep-diff-0.3.8.tgz#c01de63efb0eec9798801d40c7e0dae25b582c84" @@ -3040,6 +3702,12 @@ deep-is@~0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" +defaults@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" + dependencies: + clone "^1.0.2" + define-properties@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94" @@ -3047,6 +3715,25 @@ define-properties@^1.1.2: foreach "^2.0.5" object-keys "^1.0.8" +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + dependencies: + is-descriptor "^0.1.0" + +define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + dependencies: + is-descriptor "^1.0.0" + +define-property@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + defined@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" @@ -3086,10 +3773,14 @@ density-clustering@1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/density-clustering/-/density-clustering-1.3.0.tgz#dc9f59c8f0ab97e1624ac64930fd3194817dcac5" -depd@1.1.1, depd@~1.1.1: +depd@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359" +depd@~1.1.1, depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + des.js@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" @@ -3107,10 +3798,29 @@ detect-indent@^4.0.0: dependencies: repeating "^2.0.0" +detect-indent@~5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" + +detect-libc@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + +detect-newline@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" + detect-node@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.3.tgz#a2033c09cc8e158d37748fbde7507832bd6ce127" +dezalgo@^1.0.0, dezalgo@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/dezalgo/-/dezalgo-1.0.3.tgz#7f742de066fc748bc8db820569dddce49bf0d456" + dependencies: + asap "^2.0.0" + wrappy "1" + diffie-hellman@^5.0.0: version "5.0.2" resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.2.tgz#b5835739270cfe26acf632099fded2a07f209e5e" @@ -3123,9 +3833,9 @@ dns-equal@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" -dns-packet@^1.0.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.1.1.tgz#2369d45038af045f3898e6fa56862aed3f40296c" +dns-packet@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.1.tgz#12aa426981075be500b910eedcd0b47dd7deda5a" dependencies: ip "^1.1.0" safe-buffer "^5.0.1" @@ -3144,11 +3854,10 @@ doctrine@1.5.0, doctrine@^1.2.2: isarray "^1.0.0" doctrine@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.0.0.tgz#c73d8d2909d22291e1a007a395804da8b665fe63" + version "2.1.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" dependencies: esutils "^2.0.2" - isarray "^1.0.0" dom-converter@~0.1: version "0.1.4" @@ -3157,8 +3866,8 @@ dom-converter@~0.1: utila "~0.3" dom-helpers@^3.2.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-3.2.1.tgz#3203e07fed217bd1f424b019735582fc37b2825a" + version "3.3.1" + resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-3.3.1.tgz#fc1a4e15ffdf60ddde03a480a9c0fece821dd4a6" dom-serializer@0, dom-serializer@~0.1.0: version "0.1.0" @@ -3172,10 +3881,14 @@ dom-walk@^0.1.0: resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.1.tgz#672226dc74c8f799ad35307df936aba11acd6018" domain-browser@^1.1.1: - version "1.1.7" - resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.1.7.tgz#867aa4b093faa05f1de08c06f4d7b21fdf8698bc" + version "1.2.0" + resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" + +domelementtype@1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.0.tgz#b17aed82e8ab59e52dd9c19b1756e0fc187204c2" -domelementtype@1, domelementtype@~1.1.1: +domelementtype@~1.1.1: version "1.1.3" resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b" @@ -3210,6 +3923,16 @@ domutils@1.5, domutils@1.5.1: dom-serializer "0" domelementtype "1" +dot-prop@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" + dependencies: + is-obj "^1.0.0" + +dotenv@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-5.0.1.tgz#a5317459bd3d79ab88cff6e44057a6a3fbb1fcef" + download@^4.0.0, download@^4.1.2: version "4.4.3" resolved "https://registry.yarnpkg.com/download/-/download-4.4.3.tgz#aa55fdad392d95d4b68e8c2be03e0c2aa21ba9ac" @@ -3230,9 +3953,25 @@ download@^4.0.0, download@^4.1.2: vinyl-fs "^2.2.0" ware "^1.2.0" -duplexer2@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.0.2.tgz#c614dcf67e2fb14995a91711e5a617e8a60a31db" +download@^6.2.2: + version "6.2.5" + resolved "https://registry.yarnpkg.com/download/-/download-6.2.5.tgz#acd6a542e4cd0bb42ca70cfc98c9e43b07039714" + dependencies: + caw "^2.0.0" + content-disposition "^0.5.2" + decompress "^4.0.0" + ext-name "^5.0.0" + file-type "5.2.0" + filenamify "^2.0.0" + get-stream "^3.0.0" + got "^7.0.0" + make-dir "^1.0.0" + p-event "^1.0.0" + pify "^3.0.0" + +duplexer2@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.0.2.tgz#c614dcf67e2fb14995a91711e5a617e8a60a31db" dependencies: readable-stream "~1.1.9" @@ -3242,9 +3981,13 @@ duplexer2@^0.1.4, duplexer2@~0.1.0: dependencies: readable-stream "^2.0.2" -duplexify@^3.2.0: - version "3.5.1" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.5.1.tgz#4e1516be68838bc90a49994f0b39a6e5960befcd" +duplexer3@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" + +duplexify@^3.2.0, duplexify@^3.4.2, duplexify@^3.5.3: + version "3.5.4" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.5.4.tgz#4bb46c1796eabebeec4ca9a2e66b808cb7a3d8b4" dependencies: end-of-stream "^1.0.0" inherits "^2.0.1" @@ -3259,8 +4002,8 @@ each-async@^1.0.0, each-async@^1.1.1: set-immediate-shim "^1.0.0" earcut@^2.0.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/earcut/-/earcut-2.1.2.tgz#542add0ca3a7b713452720e1d053937d3daf3784" + version "2.1.3" + resolved "https://registry.yarnpkg.com/earcut/-/earcut-2.1.3.tgz#ca579545f351941af7c3d0df49c9f7d34af99b0c" ecc-jsbn@~0.1.1: version "0.1.1" @@ -3268,13 +4011,17 @@ ecc-jsbn@~0.1.1: dependencies: jsbn "~0.1.0" +editor@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/editor/-/editor-1.0.0.tgz#60c7f87bd62bcc6a894fa8ccd6afb7823a24f742" + ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" electron-to-chromium@^1.2.7: - version "1.3.18" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.18.tgz#3dcc99da3e6b665f6abbc71c28ad51a2cd731a9c" + version "1.3.42" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.42.tgz#95c33bf01d0cc405556aec899fe61fd4d76ea0f9" elliptic@^6.0.0: version "6.4.0" @@ -3296,9 +4043,9 @@ emojis-list@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" -encodeurl@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.1.tgz#79e3d58655346909fe6f0f45a5de68103b294d20" +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" encoding@^0.1.11: version "0.1.12" @@ -3306,9 +4053,9 @@ encoding@^0.1.11: dependencies: iconv-lite "~0.4.13" -end-of-stream@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.0.tgz#7a90d833efda6cfa6eac0f4949dbb0fad3a63206" +end-of-stream@^1.0.0, end-of-stream@^1.1.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" dependencies: once "^1.4.0" @@ -3337,11 +4084,15 @@ entities@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" -errno@^0.1.1, errno@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.4.tgz#b896e23a9e5e8ba33871fc996abd3635fc9a1c7d" +err-code@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/err-code/-/err-code-1.1.2.tgz#06e0116d3028f6aef4806849eb0ea6a748ae6960" + +errno@^0.1.1, errno@^0.1.3, errno@~0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" dependencies: - prr "~0.0.0" + prr "~1.0.1" error-ex@^1.2.0: version "1.3.1" @@ -3355,12 +4106,12 @@ error-stack-parser@^1.3.6: dependencies: stackframe "^0.3.1" -es-abstract@^1.7.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.8.0.tgz#3b00385e85729932beffa9163bbea1234e932914" +es-abstract@^1.5.1, es-abstract@^1.6.1, es-abstract@^1.7.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.11.0.tgz#cce87d518f0496893b1a30cd8461835535480681" dependencies: es-to-primitive "^1.1.1" - function-bind "^1.1.0" + function-bind "^1.1.1" has "^1.0.1" is-callable "^1.1.3" is-regex "^1.0.4" @@ -3373,20 +4124,21 @@ es-to-primitive@^1.1.1: is-date-object "^1.0.1" is-symbol "^1.0.1" -es5-ext@^0.10.14, es5-ext@^0.10.9, es5-ext@~0.10.14: - version "0.10.26" - resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.26.tgz#51b2128a531b70c4f6764093a73cbebb82186372" +es5-ext@^0.10.14, es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14: + version "0.10.42" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.42.tgz#8c07dd33af04d5dcd1310b5cef13bea63a89ba8d" dependencies: - es6-iterator "2" - es6-symbol "~3.1" + es6-iterator "~2.0.3" + es6-symbol "~3.1.1" + next-tick "1" -es6-iterator@2, es6-iterator@^2.0.1, es6-iterator@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.1.tgz#8e319c9f0453bf575d374940a655920e59ca5512" +es6-iterator@^2.0.1, es6-iterator@~2.0.1, es6-iterator@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" dependencies: d "1" - es5-ext "^0.10.14" - es6-symbol "^3.1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" es6-map@^0.1.3: version "0.1.5" @@ -3403,9 +4155,15 @@ es6-promise@^3.0.2: version "3.3.1" resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.3.1.tgz#a08cdde84ccdbf34d027a1451bc91d4bcd28a613" -es6-promise@~4.0.3: - version "4.0.5" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.0.5.tgz#7882f30adde5b240ccfa7f7d78c548330951ae42" +es6-promise@^4.0.3: + version "4.2.4" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.4.tgz#dc4221c2b16518760bd8c39a52d8f356fc00ed29" + +es6-promisify@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" + dependencies: + es6-promise "^4.0.3" es6-set@~0.1.5: version "0.1.5" @@ -3417,7 +4175,7 @@ es6-set@~0.1.5: es6-symbol "3.1.1" event-emitter "~0.3.5" -es6-symbol@3.1.1, es6-symbol@^3.1, es6-symbol@^3.1.1, es6-symbol@~3.1, es6-symbol@~3.1.1: +es6-symbol@3.1.1, es6-symbol@^3.1.1, es6-symbol@~3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" dependencies: @@ -3451,15 +4209,15 @@ escope@^3.6.0: estraverse "^4.1.1" eslint-import-resolver-node@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.1.tgz#4422574cde66a9a7b099938ee4d508a199e0e3cc" + version "0.3.2" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz#58f15fb839b8d0576ca980413476aab2472db66a" dependencies: - debug "^2.6.8" - resolve "^1.2.0" + debug "^2.6.9" + resolve "^1.5.0" eslint-import-resolver-webpack@^0.8.1: - version "0.8.3" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-webpack/-/eslint-import-resolver-webpack-0.8.3.tgz#ad61e28df378a474459d953f246fd43f92675385" + version "0.8.4" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-webpack/-/eslint-import-resolver-webpack-0.8.4.tgz#0f7cd74bc9d7fc1773e8d5fc25baf864b2f87a42" dependencies: array-find "^1.0.0" debug "^2.6.8" @@ -3469,7 +4227,7 @@ eslint-import-resolver-webpack@^0.8.1: interpret "^1.0.0" is-absolute "^0.2.3" lodash.get "^3.7.0" - node-libs-browser "^1.0.0" + node-libs-browser "^1.0.0 || ^2.0.0" resolve "^1.2.0" semver "^5.3.0" @@ -3483,25 +4241,25 @@ eslint-loader@^1.6.1: object-hash "^1.1.4" rimraf "^2.6.1" -eslint-module-utils@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.1.1.tgz#abaec824177613b8a95b299639e1b6facf473449" +eslint-module-utils@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz#b270362cd88b1a48ad308976ce7fa54e98411746" dependencies: debug "^2.6.8" pkg-dir "^1.0.0" eslint-plugin-import@^2.2.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.7.0.tgz#21de33380b9efb55f5ef6d2e210ec0e07e7fa69f" + version "2.10.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.10.0.tgz#fa09083d5a75288df9c6c7d09fe12255985655e7" dependencies: builtin-modules "^1.1.1" contains-path "^0.1.0" debug "^2.6.8" doctrine "1.5.0" eslint-import-resolver-node "^0.3.1" - eslint-module-utils "^2.1.1" + eslint-module-utils "^2.2.0" has "^1.0.1" - lodash.cond "^4.3.0" + lodash "^4.17.4" minimatch "^3.0.3" read-pkg-up "^2.0.0" @@ -3567,44 +4325,43 @@ eslint@^3.19.0: user-home "^2.0.0" espree@^3.4.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.0.tgz#98358625bdd055861ea27e2867ea729faf463d8d" + version "3.5.4" + resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7" dependencies: - acorn "^5.1.1" + acorn "^5.5.0" acorn-jsx "^3.0.0" esprima@^2.6.0: version "2.7.3" resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" -esprima@~4.0.0: +esprima@^4.0.0, esprima@~4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" esquery@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.0.tgz#cfba8b57d7fba93f17298a8a006a04cda13d80fa" + version "1.0.1" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708" dependencies: estraverse "^4.0.0" esrecurse@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.0.tgz#fa9568d98d3823f9a41d91e902dcab9ea6e5b163" + version "4.2.1" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" dependencies: estraverse "^4.1.0" - object-assign "^4.0.1" estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" -esutils@^2.0.0, esutils@^2.0.2: +esutils@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" -etag@~1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.0.tgz#6f631aef336d6c46362b51764044ce216be3c051" +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" event-emitter@~0.3.5: version "0.3.5" @@ -3627,11 +4384,12 @@ eventsource@0.1.6: dependencies: original ">=0.0.5" -evp_bytestokey@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz#497b66ad9fef65cd7c08a6180824ba1476b66e53" +evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" dependencies: - create-hash "^1.1.1" + md5.js "^1.3.4" + safe-buffer "^5.1.1" exec-buffer@^3.0.0: version "3.2.0" @@ -3650,6 +4408,18 @@ exec-series@^1.0.0: async-each-series "^1.1.0" object-assign "^4.1.0" +execa@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.10.0.tgz#ff456a8f53f90f8eccc71a96d11bdfc7f082cb50" + dependencies: + cross-spawn "^6.0.0" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + execa@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" @@ -3686,44 +4456,71 @@ expand-brackets@^0.1.4: dependencies: is-posix-bracket "^0.1.0" +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + dependencies: + 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" + expand-range@^1.8.1: version "1.8.2" resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" dependencies: fill-range "^2.1.0" -express@^4.13.3: - version "4.15.4" - resolved "https://registry.yarnpkg.com/express/-/express-4.15.4.tgz#032e2253489cf8fce02666beca3d11ed7a2daed1" +express@^4.16.2: + version "4.16.3" + resolved "https://registry.yarnpkg.com/express/-/express-4.16.3.tgz#6af8a502350db3246ecc4becf6b5a34d22f7ed53" dependencies: - accepts "~1.3.3" + accepts "~1.3.5" array-flatten "1.1.1" + body-parser "1.18.2" content-disposition "0.5.2" - content-type "~1.0.2" + content-type "~1.0.4" cookie "0.3.1" cookie-signature "1.0.6" - debug "2.6.8" - depd "~1.1.1" - encodeurl "~1.0.1" + debug "2.6.9" + depd "~1.1.2" + encodeurl "~1.0.2" escape-html "~1.0.3" - etag "~1.8.0" - finalhandler "~1.0.4" - fresh "0.5.0" + 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.1" + parseurl "~1.3.2" path-to-regexp "0.1.7" - proxy-addr "~1.1.5" - qs "6.5.0" + proxy-addr "~2.0.3" + qs "6.5.1" range-parser "~1.2.0" - send "0.15.4" - serve-static "1.12.4" - setprototypeof "1.0.3" - statuses "~1.3.1" - type-is "~1.6.15" - utils-merge "1.0.0" - vary "~1.1.1" + safe-buffer "5.1.1" + send "0.16.2" + serve-static "1.13.2" + setprototypeof "1.1.0" + statuses "~1.4.0" + type-is "~1.6.16" + utils-merge "1.0.1" + vary "~1.1.2" + +ext-list@^2.0.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/ext-list/-/ext-list-2.2.2.tgz#0b98e64ed82f5acf0f2931babf69212ef52ddd37" + dependencies: + mime-db "^1.28.0" + +ext-name@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ext-name/-/ext-name-5.0.0.tgz#70781981d183ee15d13993c8822045c506c8f0a6" + dependencies: + ext-list "^2.0.0" + sort-keys-length "^1.0.0" extend-shallow@^2.0.1: version "2.0.1" @@ -3731,7 +4528,14 @@ extend-shallow@^2.0.1: dependencies: is-extendable "^0.1.0" -extend@^3.0.0, extend@~3.0.0: +extend-shallow@^3.0.0, extend-shallow@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + +extend@^3.0.0, extend@~3.0.0, extend@~3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" @@ -3741,6 +4545,19 @@ extglob@^0.3.1: dependencies: is-extglob "^1.0.0" +extglob@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + dependencies: + 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" + extract-text-webpack-plugin@^2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/extract-text-webpack-plugin/-/extract-text-webpack-plugin-2.1.2.tgz#756ef4efa8155c3681833fbc34da53b941746d6c" @@ -3750,31 +4567,40 @@ extract-text-webpack-plugin@^2.1.0: schema-utils "^0.3.0" webpack-sources "^1.0.1" -extract-zip@~1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.5.0.tgz#92ccf6d81ef70a9fa4c1747114ccef6d8688a6c4" +extract-zip@^1.6.5: + version "1.6.6" + resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.6.6.tgz#1290ede8d20d0872b429fd3f351ca128ec5ef85c" dependencies: - concat-stream "1.5.0" - debug "0.7.4" + concat-stream "1.6.0" + debug "2.6.9" mkdirp "0.5.0" yauzl "2.4.1" -extsprintf@1.3.0, extsprintf@^1.2.0: +extsprintf@1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" +extsprintf@^1.2.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + fancy-log@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.0.tgz#45be17d02bb9917d60ccffd4995c999e6c8c9948" + version "1.3.2" + resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.2.tgz#f41125e3d84f2e7d89a43d06d958c8f78be16be1" dependencies: - chalk "^1.1.1" + ansi-gray "^0.1.1" + color-support "^1.1.3" time-stamp "^1.0.0" fast-deep-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff" + version "1.1.0" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" + +fast-json-stable-stringify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" -fast-levenshtein@~2.0.4: +fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.4: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" @@ -3864,6 +4690,10 @@ file-loader@^0.10.0: dependencies: loader-utils "^1.0.2" +file-type@5.2.0, file-type@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-5.2.0.tgz#2ddbea7c73ffe36368dfae49dc338c058c2b8ad6" + file-type@^3.1.0, file-type@^3.8.0: version "3.9.0" resolved "https://registry.yarnpkg.com/file-type/-/file-type-3.9.0.tgz#257a078384d1db8087bc449d107d52a52672b9e9" @@ -3872,6 +4702,10 @@ file-type@^4.1.0: version "4.4.0" resolved "https://registry.yarnpkg.com/file-type/-/file-type-4.4.0.tgz#1b600e5fca1fbdc6e80c0a70c71c8dba5f7906c5" +file-type@^6.1.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-6.2.0.tgz#e50cd75d356ffed4e306dc4f5bcf52a79903a919" + filename-regex@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" @@ -3880,6 +4714,10 @@ filename-reserved-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/filename-reserved-regex/-/filename-reserved-regex-1.0.0.tgz#e61cf805f0de1c984567d0386dc5df50ee5af7e4" +filename-reserved-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz#abf73dfab735d045440abfea2d91f389ebbfa229" + filenamify@^1.0.1: version "1.2.1" resolved "https://registry.yarnpkg.com/filenamify/-/filenamify-1.2.1.tgz#a9f2ffd11c503bed300015029272378f1f1365a5" @@ -3888,6 +4726,14 @@ filenamify@^1.0.1: strip-outer "^1.0.0" trim-repeated "^1.0.0" +filenamify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/filenamify/-/filenamify-2.0.0.tgz#bd162262c0b6e94bfbcdcf19a3bbb3764f785695" + dependencies: + filename-reserved-regex "^2.0.0" + strip-outer "^1.0.0" + trim-repeated "^1.0.0" + fill-range@^2.1.0: version "2.2.3" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" @@ -3898,16 +4744,25 @@ fill-range@^2.1.0: repeat-element "^1.1.2" repeat-string "^1.5.2" -finalhandler@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.0.4.tgz#18574f2e7c4b98b8ae3b230c21f201f31bdb3fb7" +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + dependencies: + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" + +finalhandler@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.1.tgz#eebf4ed840079c83f4249038c9d703008301b105" dependencies: - debug "2.6.8" - encodeurl "~1.0.1" + debug "2.6.9" + encodeurl "~1.0.2" escape-html "~1.0.3" on-finished "~2.3.0" - parseurl "~1.3.1" - statuses "~1.3.1" + parseurl "~1.3.2" + statuses "~1.4.0" unpipe "~1.0.0" find-cache-dir@^0.1.1: @@ -3918,6 +4773,18 @@ find-cache-dir@^0.1.1: mkdirp "^0.5.1" pkg-dir "^1.0.0" +find-cache-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-1.0.0.tgz#9288e3e9e3cc3748717d39eade17cf71fc30ee6f" + dependencies: + commondir "^1.0.1" + make-dir "^1.0.0" + pkg-dir "^2.0.0" + +find-npm-prefix@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/find-npm-prefix/-/find-npm-prefix-1.0.2.tgz#8d8ce2c78b3b4b9e66c8acc6a37c231eb841cfdf" + find-root@^0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/find-root/-/find-root-0.1.2.tgz#98d2267cff1916ccaf2743b3a0eea81d79d7dcd1" @@ -3929,7 +4796,7 @@ find-up@^1.0.0: path-exists "^2.0.0" pinkie-promise "^2.0.0" -find-up@^2.0.0: +find-up@^2.0.0, find-up@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" dependencies: @@ -3949,8 +4816,8 @@ first-chunk-stream@^1.0.0: resolved "https://registry.yarnpkg.com/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz#59bfb50cd905f60d7c394cd3d9acaab4e6ad934e" flat-cache@^1.2.1: - version "1.2.2" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.2.2.tgz#fa86714e72c21db88601761ecf2f555d1abc6b96" + version "1.3.0" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.0.tgz#d3030b32b38154f4e3b7e9c709f490f7ef97c481" dependencies: circular-json "^0.3.1" del "^2.0.2" @@ -3961,6 +4828,13 @@ flatten@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782" +flush-write-stream@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.0.3.tgz#c5d586ef38af6097650b49bc41b55fabb19f35bd" + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.4" + follow-redirects@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.0.0.tgz#8e34298cbd2e176f254effec75a1c78cc849fd37" @@ -3973,7 +4847,7 @@ for-each@^0.3.2: dependencies: is-function "~1.0.0" -for-in@^1.0.1: +for-in@^1.0.1, for-in@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" @@ -3999,15 +4873,43 @@ form-data@~2.1.1: combined-stream "^1.0.5" mime-types "^2.1.12" -forwarded@~0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.0.tgz#19ef9874c4ae1c297bcf078fde63a09b66a84363" +form-data@~2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.2.tgz#4970498be604c20c005d4f5c23aecd21d6b49099" + dependencies: + asynckit "^0.4.0" + combined-stream "1.0.6" + mime-types "^2.1.12" -fresh@0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.0.tgz#f474ca5e6a9246d6fd8e0953cfa9b9c805afa78e" +forwarded@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" + +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + dependencies: + map-cache "^0.2.2" + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + +from2@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/from2/-/from2-1.3.0.tgz#88413baaa5f9a597cfde9221d86986cd3c061dfd" + dependencies: + inherits "~2.0.1" + readable-stream "~1.1.10" + +from2@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.0" -fs-extra@~1.0.0: +fs-extra@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-1.0.0.tgz#cd3ce5f7e7cb6145883fcae3191e9877f8587950" dependencies: @@ -4015,20 +4917,43 @@ fs-extra@~1.0.0: jsonfile "^2.1.0" klaw "^1.0.0" +fs-minipass@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d" + dependencies: + minipass "^2.2.1" + fs-readdir-recursive@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.0.0.tgz#8cd1745c8b4f8a29c8caec392476921ba195f560" + version "1.1.0" + resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27" + +fs-vacuum@^1.2.10, fs-vacuum@~1.2.10: + version "1.2.10" + resolved "https://registry.yarnpkg.com/fs-vacuum/-/fs-vacuum-1.2.10.tgz#b7629bec07a4031a2548fdf99f5ecf1cc8b31e36" + dependencies: + graceful-fs "^4.1.2" + path-is-inside "^1.0.1" + rimraf "^2.5.2" + +fs-write-stream-atomic@^1.0.8, fs-write-stream-atomic@~1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" + dependencies: + graceful-fs "^4.1.2" + iferr "^0.1.5" + imurmurhash "^0.1.4" + readable-stream "1 || 2" fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" -fsevents@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.2.tgz#3282b713fb3ad80ede0e9fcf4611b5aa6fc033f4" +fsevents@^1.0.0, fsevents@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.3.tgz#11f82318f5fe7bb2cd22965a108e9306208216d8" dependencies: nan "^2.3.0" - node-pre-gyp "^0.6.36" + node-pre-gyp "^0.6.39" fstream-ignore@^1.0.5: version "1.0.5" @@ -4047,9 +4972,13 @@ fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2: mkdirp ">=0.5 0" rimraf "2" -function-bind@^1.0.2, function-bind@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.0.tgz#16176714c801798e4e8f2cf7f7529467bb4a5771" +function-bind@^1.0.2, function-bind@^1.1.0, function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + +gamma@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/gamma/-/gamma-1.0.0.tgz#983c1c939fe23d932701585711e1d9a430cb74cb" gauge@~2.7.3: version "2.7.4" @@ -4074,6 +5003,23 @@ generate-object-property@^1.1.0: dependencies: is-property "^1.0.0" +genfun@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/genfun/-/genfun-4.0.1.tgz#ed10041f2e4a7f1b0a38466d17a5c3e27df1dfc1" + +gentle-fs@^2.0.0, gentle-fs@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/gentle-fs/-/gentle-fs-2.0.1.tgz#585cfd612bfc5cd52471fdb42537f016a5ce3687" + dependencies: + aproba "^1.1.2" + fs-vacuum "^1.2.10" + graceful-fs "^4.1.11" + iferr "^0.1.5" + mkdirp "^0.5.1" + path-is-inside "^1.0.2" + read-cmd-shim "^1.0.1" + slide "^1.1.6" + geojson-equality@0.1.6: version "0.1.6" resolved "https://registry.yarnpkg.com/geojson-equality/-/geojson-equality-0.1.6.tgz#a171374ef043e5d4797995840bae4648e0752d72" @@ -4102,11 +5048,17 @@ get-proxy@^1.0.1: dependencies: rc "^1.1.2" +get-proxy@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/get-proxy/-/get-proxy-2.1.0.tgz#349f2b4d91d44c4d4d4e9cba2ad90143fac5ef93" + dependencies: + npm-conf "^1.1.0" + get-stdin@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" -get-stream@^2.0.0: +get-stream@^2.0.0, get-stream@^2.2.0: version "2.3.1" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-2.3.1.tgz#5f38f93f346009666ee0150a054167f91bdd95de" dependencies: @@ -4117,6 +5069,10 @@ get-stream@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + getpass@^0.1.1: version "0.1.7" resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" @@ -4144,7 +5100,7 @@ glob-parent@^2.0.0: dependencies: is-glob "^2.0.0" -glob-parent@^3.0.0: +glob-parent@^3.0.0, glob-parent@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" dependencies: @@ -4174,7 +5130,7 @@ glob@^5.0.3: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.0.0, glob@^7.0.3, glob@^7.0.5: +glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@~7.1.2: version "7.1.2" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" dependencies: @@ -4185,14 +5141,20 @@ glob@^7.0.0, glob@^7.0.3, glob@^7.0.5: once "^1.3.0" path-is-absolute "^1.0.0" -global@^4.3.0, global@^4.3.2, global@~4.3.0: +global-dirs@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" + dependencies: + ini "^1.3.4" + +global@^4.3.0, global@~4.3.0: version "4.3.2" resolved "https://registry.yarnpkg.com/global/-/global-4.3.2.tgz#e76989268a6c74c38908b1305b10fc0e394e9d0f" dependencies: min-document "^2.19.0" process "~0.5.1" -globals@^9.0.0, globals@^9.14.0: +globals@^9.14.0, globals@^9.18.0: version "9.18.0" resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" @@ -4218,8 +5180,8 @@ globby@^6.1.0: pinkie-promise "^2.0.0" glogg@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/glogg/-/glogg-1.0.0.tgz#7fe0f199f57ac906cf512feead8f90ee4a284fc5" + version "1.0.1" + resolved "https://registry.yarnpkg.com/glogg/-/glogg-1.0.1.tgz#dcf758e44789cc3f3d32c1f3562a3676e6a34810" dependencies: sparkles "^1.0.0" @@ -4243,7 +5205,42 @@ got@^5.0.0: unzip-response "^1.0.2" url-parse-lax "^1.0.0" -graceful-fs@^4.0.0, graceful-fs@^4.1.2, graceful-fs@^4.1.4, graceful-fs@^4.1.6, graceful-fs@^4.1.9: +got@^6.7.1: + version "6.7.1" + resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" + dependencies: + create-error-class "^3.0.0" + duplexer3 "^0.1.4" + get-stream "^3.0.0" + is-redirect "^1.0.0" + is-retry-allowed "^1.0.0" + is-stream "^1.0.0" + lowercase-keys "^1.0.0" + safe-buffer "^5.0.1" + timed-out "^4.0.0" + unzip-response "^2.0.1" + url-parse-lax "^1.0.0" + +got@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/got/-/got-7.1.0.tgz#05450fd84094e6bbea56f451a43a9c289166385a" + dependencies: + decompress-response "^3.2.0" + duplexer3 "^0.1.4" + get-stream "^3.0.0" + is-plain-obj "^1.1.0" + is-retry-allowed "^1.0.0" + is-stream "^1.0.0" + isurl "^1.0.0-alpha5" + lowercase-keys "^1.0.0" + p-cancelable "^0.3.0" + p-timeout "^1.1.1" + safe-buffer "^5.0.1" + timed-out "^4.0.0" + url-parse-lax "^1.0.0" + url-to-options "^1.0.1" + +graceful-fs@^4.0.0, graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.4, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@~4.1.11: version "4.1.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" @@ -4305,7 +5302,7 @@ gulplog@^1.0.0: "gwflowjs@https://github.com/inowas/gwflowjs.git#master": version "0.1.0" - resolved "https://github.com/inowas/gwflowjs.git#10df2b29e9ebe33b4aeec2b9a2d5d16682d97a09" + resolved "https://github.com/inowas/gwflowjs.git#d86e2f1a16c42436ff0ffc34cb90d61b6bc79d0b" handle-thing@^1.2.5: version "1.2.5" @@ -4315,14 +5312,9 @@ har-schema@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" -har-validator@~2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d" - dependencies: - chalk "^1.1.1" - commander "^2.9.0" - is-my-json-valid "^2.12.4" - pinkie-promise "^2.0.0" +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" har-validator@~4.2.1: version "4.2.1" @@ -4331,9 +5323,16 @@ har-validator@~4.2.1: ajv "^4.9.1" har-schema "^1.0.5" +har-validator@~5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd" + dependencies: + ajv "^5.1.0" + har-schema "^2.0.0" + harmony-reflect@^1.4.2: - version "1.5.1" - resolved "https://registry.yarnpkg.com/harmony-reflect/-/harmony-reflect-1.5.1.tgz#b54ca617b00cc8aef559bbb17b3d85431dc7e329" + version "1.6.0" + resolved "https://registry.yarnpkg.com/harmony-reflect/-/harmony-reflect-1.6.0.tgz#9c28a77386ec225f7b5d370f9861ba09c4eea58f" has-ansi@^2.0.0: version "2.0.0" @@ -4345,9 +5344,9 @@ has-flag@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" -has-flag@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" has-gulplog@^0.1.0: version "0.1.0" @@ -4355,10 +5354,51 @@ has-gulplog@^0.1.0: dependencies: sparkles "^1.0.0" -has-unicode@^2.0.0: +has-symbol-support-x@^1.4.1: + version "1.4.2" + resolved "https://registry.yarnpkg.com/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz#1409f98bc00247da45da67cee0a36f282ff26455" + +has-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" + +has-to-string-tag-x@^1.2.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz#a045ab383d7b4b2012a00148ab0aa5f290044d4d" + dependencies: + has-symbol-support-x "^1.4.1" + +has-unicode@^2.0.0, has-unicode@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + dependencies: + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" + +has-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + dependencies: + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + +has-values@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + has@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28" @@ -4371,6 +5411,13 @@ hash-base@^2.0.0: dependencies: inherits "^2.0.1" +hash-base@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + hash.js@^1.0.0, hash.js@^1.0.3: version "1.1.3" resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.3.tgz#340dedbe6290187151c1ea1d777a3448935df846" @@ -4378,14 +5425,14 @@ hash.js@^1.0.0, hash.js@^1.0.3: inherits "^2.0.3" minimalistic-assert "^1.0.0" -hasha@~2.2.0: +hasha@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/hasha/-/hasha-2.2.0.tgz#78d7cbfc1e6d66303fe79837365984517b2f6ee1" dependencies: is-stream "^1.0.1" pinkie-promise "^2.0.0" -hawk@~3.1.3: +hawk@3.1.3, hawk@~3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" dependencies: @@ -4394,6 +5441,15 @@ hawk@~3.1.3: hoek "2.x.x" sntp "1.x.x" +hawk@~6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/hawk/-/hawk-6.0.2.tgz#af4d914eb065f9b5ce4d9d11c1cb2126eecc3038" + dependencies: + boom "4.x.x" + cryptiles "3.x.x" + hoek "4.x.x" + sntp "2.x.x" + he@1.1.x: version "1.1.1" resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" @@ -4419,17 +5475,13 @@ hoek@2.x.x: version "2.16.3" resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" -hoist-non-react-statics@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-1.2.0.tgz#aa448cf0986d55cc40773b17174b7dd066cb7cfb" - -hoist-non-react-statics@^2.2.1: - version "2.2.2" - resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-2.2.2.tgz#c0eca5a7d5a28c5ada3107eb763b01da6bfa81fb" +hoek@4.x.x: + version "4.2.1" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.1.tgz#9634502aa12c445dd5a7c5734b572bb8738aacbb" -hoist-non-react-statics@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-2.3.1.tgz#343db84c6018c650778898240135a1420ee22ce0" +hoist-non-react-statics@^2.3.1, hoist-non-react-statics@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-2.5.0.tgz#d2ca2dfc19c5a91c5a6615ce8e564ef0347e2a40" home-or-tmp@^2.0.0: version "2.0.0" @@ -4438,9 +5490,9 @@ home-or-tmp@^2.0.0: os-homedir "^1.0.0" os-tmpdir "^1.0.1" -hosted-git-info@^2.1.4: - version "2.5.0" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c" +hosted-git-info@^2.1.4, hosted-git-info@^2.4.2, hosted-git-info@^2.5.0, hosted-git-info@^2.6.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.6.0.tgz#23235b29ab230c576aab0d4f13fc046b0b038222" hpack.js@^2.1.6: version "2.1.6" @@ -4460,17 +5512,16 @@ html-entities@^1.2.0: resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f" html-minifier@^3.2.3: - version "3.5.3" - resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.3.tgz#4a275e3b1a16639abb79b4c11191ff0d0fcf1ab9" + version "3.5.13" + resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.13.tgz#6bca6d533a7f18a476dc6aeb3d113071ab5c165e" dependencies: camel-case "3.0.x" clean-css "4.1.x" - commander "2.11.x" + commander "2.15.x" he "1.1.x" - ncname "1.0.x" param-case "2.1.x" relateurl "0.2.x" - uglify-js "3.0.x" + uglify-js "3.3.x" html-webpack-plugin@^2.28.0: version "2.30.1" @@ -4502,11 +5553,15 @@ htmlparser2@~3.8.1: entities "1.0" readable-stream "1.1" +http-cache-semantics@^3.8.0: + version "3.8.1" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2" + http-deceiver@^1.2.7: version "1.2.7" resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" -http-errors@~1.6.1, http-errors@~1.6.2: +http-errors@1.6.2: version "1.6.2" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736" dependencies: @@ -4515,6 +5570,26 @@ http-errors@~1.6.1, http-errors@~1.6.2: setprototypeof "1.0.3" statuses ">= 1.3.1 < 2" +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + +http-parser-js@>=0.4.0: + version "0.4.11" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.11.tgz#5b720849c650903c27e521633d94696ee95f3529" + +http-proxy-agent@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz#e4821beef5b2142a2026bd73926fe537631c5405" + dependencies: + agent-base "4" + debug "3.1.0" + http-proxy-middleware@~0.17.4: version "0.17.4" resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.17.4.tgz#642e8848851d66f09d4f124912846dbaeb41b833" @@ -4539,17 +5614,48 @@ http-signature@~1.1.0: jsprim "^1.2.2" sshpk "^1.7.0" +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + https-browserify@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-0.0.1.tgz#3f91365cabe60b77ed0ebba24b454e3e09d95a82" -hyphenate-style-name@^1.0.1: - version "1.0.2" +https-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" + +https-proxy-agent@^2.1.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz#51552970fa04d723e04c56d04178c3f92592bbc0" + dependencies: + agent-base "^4.1.0" + debug "^3.1.0" + +humanize-ms@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" + dependencies: + ms "^2.0.0" + +hyphenate-style-name@^1.0.1: + version "1.0.2" resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.0.2.tgz#31160a36930adaf1fc04c6074f7eb41465d4ec4b" +iconv-lite@0.4.19: + version "0.4.19" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" + iconv-lite@~0.4.13: - version "0.4.18" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.18.tgz#23d8656b16aae6742ac29732ea8f0336a4789cf2" + version "0.4.21" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.21.tgz#c47f8733d02171189ebc4a400f3218d348094798" + dependencies: + safer-buffer "^2.1.0" icss-replace-symbols@^1.1.0: version "1.1.0" @@ -4562,12 +5668,22 @@ icss-utils@^2.1.0: postcss "^6.0.1" ieee754@^1.1.4: - version "1.1.8" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" + version "1.1.11" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.11.tgz#c16384ffe00f5b7835824e67b6f2bd44a5229455" + +iferr@^0.1.5, iferr@~0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" + +ignore-walk@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8" + dependencies: + minimatch "^3.0.4" ignore@^3.2.0: - version "3.3.3" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.3.tgz#432352e57accd87ab3110e82d3fea0e47812156d" + version "3.3.7" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.7.tgz#612289bfb3c220e186a58118618d5be8c1bab021" image-size@^0.4.0: version "0.4.0" @@ -4601,38 +5717,42 @@ imagemin-optipng@^5.1.0: is-png "^1.0.0" optipng-bin "^3.0.0" -imagemin-pngquant@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/imagemin-pngquant/-/imagemin-pngquant-5.0.1.tgz#d8a329da553afa226b11ce62debe0b7e37b439e6" +imagemin-pngquant@^5.0.1: + version "5.1.0" + resolved "https://registry.yarnpkg.com/imagemin-pngquant/-/imagemin-pngquant-5.1.0.tgz#b9eb563d9e6a3876f6248be0061ba1b0ef269c07" dependencies: - exec-buffer "^3.0.0" + execa "^0.10.0" is-png "^1.0.0" - pngquant-bin "^3.0.0" + is-stream "^1.1.0" + pngquant-bin "^4.0.0" -imagemin-svgo@^5.1.0: - version "5.2.2" - resolved "https://registry.yarnpkg.com/imagemin-svgo/-/imagemin-svgo-5.2.2.tgz#501699f5789730a57922b8736ea15c53f7b55838" +imagemin-svgo@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/imagemin-svgo/-/imagemin-svgo-6.0.0.tgz#2dd8c82946be42a8e2cbcae3c5bf007bc2b8b9e8" dependencies: + buffer-from "^0.1.1" is-svg "^2.0.0" - svgo "^0.7.0" + svgo "^1.0.0" imagemin-webpack-plugin@^1.4.4: - version "1.4.4" - resolved "https://registry.yarnpkg.com/imagemin-webpack-plugin/-/imagemin-webpack-plugin-1.4.4.tgz#384684442bfca52594677aa9e2f6d90b2fd38bea" + version "1.6.1" + resolved "https://registry.yarnpkg.com/imagemin-webpack-plugin/-/imagemin-webpack-plugin-1.6.1.tgz#1c4c54ba33023a2a9dd64f747d1aa25c0b6bea3e" dependencies: - async-throttle "^1.0.0" + async-throttle "^1.1.0" babel-runtime "^6.18.0" - imagemin "^5.2.1" + imagemin "^5.3.1" imagemin-gifsicle "^5.1.0" imagemin-jpegtran "^5.0.2" imagemin-optipng "^5.1.0" - imagemin-pngquant "^5.0.0" - imagemin-svgo "^5.1.0" + imagemin-pngquant "^5.0.1" + imagemin-svgo "^6.0.0" lodash.map "^4.6.0" - minimatch "^3.0.3" - webpack-sources "^0.1.3" + minimatch "^3.0.4" + mkdirp "^0.5.1" + util.promisify "^1.0.0" + webpack-sources "^1.1.0" -imagemin@^5.2.1: +imagemin@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/imagemin/-/imagemin-5.3.1.tgz#f19c2eee1e71ba6c6558c515f9fc96680189a6d4" dependencies: @@ -4644,15 +5764,34 @@ imagemin@^5.2.1: replace-ext "^1.0.0" immutability-helper@^2.3.1: - version "2.5.1" - resolved "https://registry.yarnpkg.com/immutability-helper/-/immutability-helper-2.5.1.tgz#1d38ba1c47d8d2d50783f917cb7fbeb5737121dd" + version "2.6.6" + resolved "https://registry.yarnpkg.com/immutability-helper/-/immutability-helper-2.6.6.tgz#9b384c240d65257133c155086e16f678ca563b05" dependencies: invariant "^2.2.0" +import-lazy@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" + +import-local@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-1.0.0.tgz#5e4ffdc03f4fe6c009c6729beb29631c2f8227bc" + dependencies: + pkg-dir "^2.0.0" + resolve-cwd "^2.0.0" + imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" +incomplete-gamma@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/incomplete-gamma/-/incomplete-gamma-1.0.1.tgz#50f34b9bbeb92d44925c7dcc8969d4069f09cf65" + dependencies: + gamma "^1.0.0" + mathjs "^1.2.0" + simpsons-rule "^1.0.0" + indent-string@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" @@ -4667,7 +5806,7 @@ indexof@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" -inflight@^1.0.4: +inflight@^1.0.4, inflight@~1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" dependencies: @@ -4682,9 +5821,22 @@ inherits@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" -ini@~1.3.0: - version "1.3.4" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" +ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: + version "1.3.5" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" + +init-package-json@^1.10.3: + version "1.10.3" + resolved "https://registry.yarnpkg.com/init-package-json/-/init-package-json-1.10.3.tgz#45ffe2f610a8ca134f2bd1db5637b235070f6cbe" + dependencies: + glob "^7.1.1" + npm-package-arg "^4.0.0 || ^5.0.0 || ^6.0.0" + promzard "^0.3.0" + read "~1.0.1" + read-package-json "1 || 2" + semver "2.x || 3.x || 4 || 5" + validate-npm-package-license "^3.0.1" + validate-npm-package-name "^3.0.0" inline-style-linter@^0.2.8: version "0.2.8" @@ -4723,7 +5875,7 @@ inquirer@^0.12.0: strip-ansi "^3.0.0" through "^2.3.6" -internal-ip@^1.2.0: +internal-ip@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-1.2.0.tgz#ae9fbf93b984878785d50a8de1b356956058cf5c" dependencies: @@ -4734,12 +5886,12 @@ interpret@^0.6.4: resolved "https://registry.yarnpkg.com/interpret/-/interpret-0.6.6.tgz#fecd7a18e7ce5ca6abfb953e1f86213a49f1625b" interpret@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.3.tgz#cbc35c62eeee73f19ab7b10a801511401afc0f90" + version "1.1.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614" -invariant@^2.0.0, invariant@^2.2.0, invariant@^2.2.1: - version "2.2.2" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" +invariant@^2.0.0, invariant@^2.2.0, invariant@^2.2.1, invariant@^2.2.2: + version "2.2.4" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" dependencies: loose-envify "^1.0.0" @@ -4751,13 +5903,13 @@ ip-regex@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-1.0.3.tgz#dc589076f659f419c222039a33316f1c7387effd" -ip@^1.1.0, ip@^1.1.5: +ip@^1.1.0, ip@^1.1.4, ip@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" -ipaddr.js@1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.4.0.tgz#296aca878a821816e5b85d0a285a99bcff4582f0" +ipaddr.js@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.6.0.tgz#e3fa357b773da619f26e95f049d055c72796f86b" is-absolute-url@^2.0.0: version "2.1.0" @@ -4776,6 +5928,18 @@ is-absolute@^0.2.3: is-relative "^0.2.1" is-windows "^0.2.0" +is-accessor-descriptor@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + dependencies: + kind-of "^3.0.2" + +is-accessor-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + dependencies: + kind-of "^6.0.0" + is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" @@ -4791,8 +5955,8 @@ is-binary-path@^1.0.0: binary-extensions "^1.0.0" is-buffer@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.5.tgz#1f3b26ef613b214b88cbca23cc6c01d87961eecc" + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" is-builtin-module@^1.0.0: version "1.0.0" @@ -4808,10 +5972,50 @@ is-callable@^1.1.1, is-callable@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2" +is-ci@^1.0.10: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.1.0.tgz#247e4162e7860cebbdaf30b774d6b0ac7dcfe7a5" + dependencies: + ci-info "^1.0.0" + +is-cidr@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-cidr/-/is-cidr-1.0.0.tgz#fb5aacf659255310359da32cae03e40c6a1c2afc" + dependencies: + cidr-regex "1.0.6" + +is-data-descriptor@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + dependencies: + kind-of "^3.0.2" + +is-data-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + dependencies: + kind-of "^6.0.0" + is-date-object@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" +is-descriptor@^0.1.0: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + dependencies: + is-accessor-descriptor "^0.1.6" + is-data-descriptor "^0.1.4" + kind-of "^5.0.0" + +is-descriptor@^1.0.0, is-descriptor@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + dependencies: + is-accessor-descriptor "^1.0.0" + is-data-descriptor "^1.0.0" + kind-of "^6.0.2" + is-directory@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" @@ -4830,11 +6034,17 @@ is-extendable@^0.1.0, is-extendable@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + dependencies: + is-plain-object "^2.0.4" + is-extglob@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" -is-extglob@^2.1.0: +is-extglob@^2.1.0, is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" @@ -4874,20 +6084,38 @@ is-glob@^3.1.0: dependencies: is-extglob "^2.1.0" +is-glob@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.0.tgz#9521c76845cc2610a85203ddf080a958c2ffabc0" + dependencies: + is-extglob "^2.1.1" + is-gzip@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-gzip/-/is-gzip-1.0.0.tgz#6ca8b07b99c77998025900e555ced8ed80879a83" +is-installed-globally@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80" + dependencies: + global-dirs "^0.1.0" + is-path-inside "^1.0.0" + is-jpg@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-jpg/-/is-jpg-1.0.1.tgz#296d57fdd99ce010434a7283e346ab9a1035e975" + +is-my-ip-valid@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/is-jpg/-/is-jpg-1.0.0.tgz#2959c17e73430db38264da75b90dd54f2d86da1c" + resolved "https://registry.yarnpkg.com/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz#7b351b8e8edd4d3995d4d066680e664d94696824" -is-my-json-valid@^2.10.0, is-my-json-valid@^2.12.4: - version "2.16.0" - resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.16.0.tgz#f079dd9bfdae65ee2038aae8acbc86ab109e3693" +is-my-json-valid@^2.10.0: + version "2.17.2" + resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.17.2.tgz#6b2103a288e94ef3de5cf15d29dd85fc4b78d65c" dependencies: generate-function "^2.0.0" generate-object-property "^1.1.0" + is-my-ip-valid "^1.0.0" jsonpointer "^4.0.0" xtend "^4.0.0" @@ -4895,6 +6123,14 @@ is-natural-number@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/is-natural-number/-/is-natural-number-2.1.1.tgz#7d4c5728377ef386c3e194a9911bf57c6dc335e7" +is-natural-number@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-natural-number/-/is-natural-number-4.0.1.tgz#ab9d76e1db4ced51e35de0c72ebecf09f734cde8" + +is-npm@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" + is-number@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" @@ -4907,30 +6143,50 @@ is-number@^3.0.0: dependencies: kind-of "^3.0.2" +is-number@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" + is-obj@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" +is-object@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.1.tgz#8952688c5ec2ffd6b03ecc85e769e02903083470" + +is-odd@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-odd/-/is-odd-2.0.0.tgz#7646624671fd7ea558ccd9a2795182f2958f1b24" + dependencies: + is-number "^4.0.0" + is-path-cwd@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" is-path-in-cwd@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc" + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz#5ac48b345ef675339bd6c7a48a912110b241cf52" dependencies: is-path-inside "^1.0.0" is-path-inside@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.0.tgz#fc06e5a1683fbda13de667aff717bbc10a48f37f" + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" dependencies: path-is-inside "^1.0.1" -is-plain-obj@^1.0.0: +is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" +is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + dependencies: + isobject "^3.0.1" + is-png@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-png/-/is-png-1.1.0.tgz#d574b12bf275c0350455570b0e5b57ab062077ce" @@ -4968,10 +6224,8 @@ is-relative@^0.2.1: is-unc-path "^0.1.1" is-resolvable@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.0.0.tgz#8df57c61ea2e3c501408d100fb013cf8d6e0cc62" - dependencies: - tryit "^1.0.1" + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" is-retry-allowed@^1.0.0: version "1.1.0" @@ -5006,8 +6260,8 @@ is-unc-path@^0.1.1: unc-path-regex "^0.1.0" is-url@^1.2.0: - version "1.2.2" - resolved "https://registry.yarnpkg.com/is-url/-/is-url-1.2.2.tgz#498905a593bf47cc2d9e7f738372bbf7696c7f26" + version "1.2.4" + resolved "https://registry.yarnpkg.com/is-url/-/is-url-1.2.4.tgz#04a4df46d28c4cff3d73d01ff06abeb318a1aa52" is-utf8@^0.2.0: version "0.2.1" @@ -5021,6 +6275,14 @@ is-windows@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-0.2.0.tgz#de1aa6d63ea29dd248737b69f1ff8b8002d2108c" +is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + +is-wsl@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" + is-zip@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-zip/-/is-zip-1.0.0.tgz#47b0a8ff4d38a76431ccfd99a8e15a4c86ba2325" @@ -5043,6 +6305,10 @@ isobject@^2.0.0: dependencies: isarray "1.0.0" +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + isomorphic-fetch@^2.1.1: version "2.2.1" resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" @@ -5054,6 +6320,13 @@ isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" +isurl@^1.0.0-alpha5: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isurl/-/isurl-1.0.0.tgz#b27f4f49f3cdaa3ea44a0a5b7f3462e6edc39d67" + dependencies: + has-to-string-tag-x "^1.2.0" + is-object "^1.0.1" + jimp@^0.2.13, jimp@^0.2.21: version "0.2.28" resolved "https://registry.yarnpkg.com/jimp/-/jimp-0.2.28.tgz#dd529a937190f42957a7937d1acc3a7762996ea2" @@ -5092,27 +6365,34 @@ jpegtran-bin@^3.0.0: logalot "^2.0.0" jquery@x.*: - version "3.2.1" - resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.2.1.tgz#5c4d9de652af6cd0a770154a631bba12b015c787" + version "3.3.1" + resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.3.1.tgz#958ce29e81c9790f31be7792df5d4d95fc57fbca" js-base64@^2.1.9: - version "2.1.9" - resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.1.9.tgz#f0e80ae039a4bd654b5f281fc93f04a914a7fcce" + version "2.4.3" + resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.4.3.tgz#2e545ec2b0f2957f41356510205214e98fad6582" js-md5@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/js-md5/-/js-md5-0.6.0.tgz#d9a083b268b63f56f3d709b841a667136e2bfb06" + version "0.6.1" + resolved "https://registry.yarnpkg.com/js-md5/-/js-md5-0.6.1.tgz#7765ad6b4be503b6493a04437d40cffd262195f5" -js-tokens@^3.0.0: +js-tokens@^3.0.0, js-tokens@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" -js-yaml@^3.4.3, js-yaml@^3.5.1, js-yaml@~3.7.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80" +js-yaml@^3.4.3, js-yaml@^3.5.1: + version "3.11.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.11.0.tgz#597c1a8bd57152f26d622ce4117851a51f5ebaef" dependencies: argparse "^1.0.7" - esprima "^2.6.0" + esprima "^4.0.0" + +js-yaml@~3.10.0: + version "3.10.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.10.0.tgz#2e78441646bd4682e963f22b6e92823c309c62dc" + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" js-yaml@~3.6.0: version "3.6.1" @@ -5121,6 +6401,13 @@ js-yaml@~3.6.0: argparse "^1.0.7" esprima "^2.6.0" +js-yaml@~3.7.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80" + dependencies: + argparse "^1.0.7" + esprima "^2.6.0" + jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" @@ -5137,6 +6424,10 @@ json-loader@^0.5.4: version "0.5.7" resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.7.tgz#dca14a70235ff82f0ac9a3abeb60d337a365185d" +json-parse-better-errors@^1.0.0, json-parse-better-errors@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + json-schema-traverse@^0.3.0: version "0.3.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" @@ -5177,6 +6468,10 @@ jsonify@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" +jsonparse@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" + jsonpointer@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9" @@ -5198,11 +6493,15 @@ jsx-ast-utils@^1.0.0, jsx-ast-utils@^1.3.4: version "1.4.1" resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-1.4.1.tgz#3867213e8dd79bf1e8f2300c0cfc1efb182c0df1" -kew@~0.7.0: +kew@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/kew/-/kew-0.7.0.tgz#79d93d2d33363d6fdd2970b335d9141ad591d79b" -kind-of@^3.0.2: +killable@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.0.tgz#da8b84bd47de5395878f95d64d02f2449fe05e6b" + +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" dependencies: @@ -5214,16 +6513,34 @@ kind-of@^4.0.0: dependencies: is-buffer "^1.1.5" +kind-of@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + +kind-of@^6.0.0, kind-of@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" + klaw@^1.0.0: version "1.3.1" resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" optionalDependencies: graceful-fs "^4.1.9" +latest-version@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15" + dependencies: + package-json "^4.0.0" + lazy-cache@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" +lazy-property@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lazy-property/-/lazy-property-1.0.0.tgz#84ddc4b370679ba8bd4cdcfa4c06b43d57111147" + lazy-req@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/lazy-req/-/lazy-req-1.1.0.tgz#bdaebead30f8d824039ce0ce149d4daa07ba1fac" @@ -5245,34 +6562,34 @@ leaflet-control-geocoder@^1.5.8: resolved "https://registry.yarnpkg.com/leaflet-control-geocoder/-/leaflet-control-geocoder-1.5.8.tgz#c52dfbb9be5f6388d683346acb49bf017fd5b6a8" leaflet-draw@^0.4.10: - version "0.4.10" - resolved "https://registry.yarnpkg.com/leaflet-draw/-/leaflet-draw-0.4.10.tgz#a611a29925a32cde63638e891c3bfc93163e2f43" + version "0.4.14" + resolved "https://registry.yarnpkg.com/leaflet-draw/-/leaflet-draw-0.4.14.tgz#1b5b06d570873a015aa96b80d664dab496c45a4a" leaflet-geometryutil@^0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/leaflet-geometryutil/-/leaflet-geometryutil-0.8.0.tgz#c09c0fc37628f402846ad5723c80ef95b3d2057c" + version "0.8.1" + resolved "https://registry.yarnpkg.com/leaflet-geometryutil/-/leaflet-geometryutil-0.8.1.tgz#d12c70c9db466497c13bab4e8067b6d5fb4423fe" dependencies: leaflet ">=0.7.0" leaflet.fullscreen@^1.4.x: - version "1.4.3" - resolved "https://registry.yarnpkg.com/leaflet.fullscreen/-/leaflet.fullscreen-1.4.3.tgz#80f8a6310fab760a16808cd7aede66da5cdbb9ce" + version "1.4.4" + resolved "https://registry.yarnpkg.com/leaflet.fullscreen/-/leaflet.fullscreen-1.4.4.tgz#23b76ddcd32aa14a5b98335b9e7c13f03a22d619" leaflet@>=0.7.0, leaflet@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/leaflet/-/leaflet-1.2.0.tgz#fd5d93d9cb00091f5f8a69206d0d6744c1c82697" + version "1.3.1" + resolved "https://registry.yarnpkg.com/leaflet/-/leaflet-1.3.1.tgz#86f336d2fb0e2d0ff446677049a5dc34cf0ea60e" less-loader@^4.0.3: - version "4.0.5" - resolved "https://registry.yarnpkg.com/less-loader/-/less-loader-4.0.5.tgz#ae155a7406cac6acd293d785587fcff0f478c4dd" + version "4.1.0" + resolved "https://registry.yarnpkg.com/less-loader/-/less-loader-4.1.0.tgz#2c1352c5b09a4f84101490274fd51674de41363e" dependencies: clone "^2.1.1" loader-utils "^1.1.0" - pify "^2.3.0" + pify "^3.0.0" less@^2.7.2: - version "2.7.2" - resolved "https://registry.yarnpkg.com/less/-/less-2.7.2.tgz#368d6cc73e1fb03981183280918743c5dcf9b3df" + version "2.7.3" + resolved "https://registry.yarnpkg.com/less/-/less-2.7.3.tgz#cc1260f51c900a9ec0d91fb6998139e02507b63b" optionalDependencies: errno "^0.1.1" graceful-fs "^4.1.2" @@ -5280,13 +6597,9 @@ less@^2.7.2: mime "^1.2.11" mkdirp "^0.5.0" promise "^7.1.1" - request "^2.72.0" + request "2.81.0" source-map "^0.5.3" -levenshtein@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/levenshtein/-/levenshtein-1.0.5.tgz#3911737a9cb56da345d008f55782c6f138979ba3" - levn@^0.3.0, levn@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" @@ -5294,6 +6607,37 @@ levn@^0.3.0, levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" +libcipm@^1.6.0: + version "1.6.1" + resolved "https://registry.yarnpkg.com/libcipm/-/libcipm-1.6.1.tgz#156c0efd3f091aa3cf53592a32d0f026d3605eff" + dependencies: + bin-links "^1.1.0" + bluebird "^3.5.1" + find-npm-prefix "^1.0.2" + graceful-fs "^4.1.11" + lock-verify "^2.0.0" + npm-lifecycle "^2.0.0" + npm-logical-tree "^1.2.1" + npm-package-arg "^6.0.0" + pacote "^7.5.1" + protoduck "^5.0.0" + read-package-json "^2.0.12" + rimraf "^2.6.2" + worker-farm "^1.5.4" + +libnpx@^10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/libnpx/-/libnpx-10.0.1.tgz#a0104a1336e7621e52172d7970dc1b97fa17ae89" + dependencies: + dotenv "^5.0.1" + npm-package-arg "^6.0.0" + rimraf "^2.6.2" + safe-buffer "^5.1.0" + update-notifier "^2.3.0" + which "^1.3.0" + y18n "^4.0.0" + yargs "^11.0.0" + lineclip@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/lineclip/-/lineclip-1.1.5.tgz#2bf26067d94354feabf91e42768236db5616fd13" @@ -5364,9 +6708,20 @@ locate-path@^2.0.0: p-locate "^2.0.0" path-exists "^3.0.0" -lodash-es@^4.17.4, lodash-es@^4.2.0, lodash-es@^4.2.1: - version "4.17.4" - resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.4.tgz#dcc1d7552e150a0640073ba9cb31d70f032950e7" +lock-verify@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/lock-verify/-/lock-verify-2.0.1.tgz#6d671eea60b459c6048b3b26b62959208be67682" + dependencies: + npm-package-arg "^5.1.2" + semver "^5.4.1" + +lockfile@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/lockfile/-/lockfile-1.0.3.tgz#2638fc39a0331e9cac1a04b71799931c9c50df79" + +lodash-es@^4.0.0, lodash-es@^4.17.4, lodash-es@^4.17.5, lodash-es@^4.2.1: + version "4.17.8" + resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.8.tgz#6fa8c8c5d337481df0bdf1c0d899d42473121e45" lodash._basecopy@^3.0.0: version "3.0.1" @@ -5380,10 +6735,21 @@ lodash._basetostring@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz#d1861d877f824a52f669832dcaf3ee15566a07d5" +lodash._baseuniq@~4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz#0ebb44e456814af7905c6212fa2c9b2d51b841e8" + dependencies: + lodash._createset "~4.0.0" + lodash._root "~3.0.0" + lodash._basevalues@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz#5b775762802bde3d3297503e26300820fdf661b7" +lodash._createset@~4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/lodash._createset/-/lodash._createset-4.0.3.tgz#0f4659fbb09d75194fa9e2b88a6644d363c9fe26" + lodash._getnative@^3.0.0: version "3.9.1" resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" @@ -5404,7 +6770,7 @@ lodash._reinterpolate@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" -lodash._root@^3.0.0: +lodash._root@^3.0.0, lodash._root@~3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692" @@ -5422,9 +6788,9 @@ lodash.camelcase@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" -lodash.cond@^4.3.0: - version "4.5.2" - resolved "https://registry.yarnpkg.com/lodash.cond/-/lodash.cond-4.5.2.tgz#f471a1da486be60f6ab955d17115523dd1d255d5" +lodash.clonedeep@~4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" lodash.escape@^3.0.0: version "3.2.0" @@ -5496,17 +6862,25 @@ lodash.templatesettings@^3.0.0: lodash._reinterpolate "^3.0.0" lodash.escape "^3.0.0" -lodash.uniq@^4.5.0: +lodash.union@~4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88" + +lodash.uniq@^4.5.0, lodash.uniq@~4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" -lodash@^3.2.0: +lodash.without@~4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.without/-/lodash.without-4.4.0.tgz#3cd4574a00b67bae373a94b748772640507b7aac" + +lodash@^3.10.1, lodash@^3.2.0: version "3.10.1" resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" -lodash@^4.0.0, lodash@^4.11.1, lodash@^4.14.0, lodash@^4.16.4, lodash@^4.17.2, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0, lodash@^4.6.1, lodash@~4.17.4: - version "4.17.4" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" +lodash@^4.0.0, lodash@^4.11.1, lodash@^4.14.0, lodash@^4.16.4, lodash@^4.17.2, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0, lodash@~4.17.4: + version "4.17.5" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.5.tgz#99a92d65c0272debe8c96b6057bc8fbfa3bed511" lodash@~2.4.1: version "2.4.2" @@ -5520,8 +6894,8 @@ logalot@^2.0.0: squeak "^1.0.0" loglevel@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.4.1.tgz#95b383f91a3c2756fd4ab093667e4309161f2bcd" + version "1.6.1" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.1.tgz#e0fc95133b6ef276cdc8887cdaf24aa6f156f8fa" longest@^1.0.0, longest@^1.0.1: version "1.0.1" @@ -5545,8 +6919,8 @@ lower-case@^1.1.1: resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" lowercase-keys@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" + version "1.0.1" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" lpad-align@^1.0.1: version "1.1.2" @@ -5557,9 +6931,9 @@ lpad-align@^1.0.1: longest "^1.0.0" meow "^3.3.0" -lru-cache@^4.0.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.1.tgz#622e32e82488b49279114a4f9ecf45e7cd6bba55" +lru-cache@^4.0.1, lru-cache@^4.1.1, lru-cache@~4.1.1: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.2.tgz#45234b2e6e2f2b33da125624c4664929a0224c3f" dependencies: pseudomap "^1.0.2" yallist "^2.1.2" @@ -5569,23 +6943,76 @@ macaddress@^0.2.8: resolved "https://registry.yarnpkg.com/macaddress/-/macaddress-0.2.8.tgz#5904dc537c39ec6dbefeae902327135fa8511f12" make-dir@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.0.0.tgz#97a011751e91dd87cfadef58832ebb04936de978" + version "1.2.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.2.0.tgz#6d6a49eead4aae296c53bbf3a1a008bd6c89469b" dependencies: - pify "^2.3.0" + pify "^3.0.0" + +make-fetch-happen@^2.5.0, make-fetch-happen@^2.6.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-2.6.0.tgz#8474aa52198f6b1ae4f3094c04e8370d35ea8a38" + dependencies: + agentkeepalive "^3.3.0" + cacache "^10.0.0" + http-cache-semantics "^3.8.0" + http-proxy-agent "^2.0.0" + https-proxy-agent "^2.1.0" + lru-cache "^4.1.1" + mississippi "^1.2.0" + node-fetch-npm "^2.0.2" + promise-retry "^1.1.1" + socks-proxy-agent "^3.0.1" + ssri "^5.0.0" + +map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" map-obj@^1.0.0, map-obj@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + dependencies: + object-visit "^1.0.0" + math-expression-evaluator@^1.2.14: version "1.2.17" resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz#de819fdbcd84dccd8fae59c6aeb79615b9d266ac" +mathjs@^1.2.0: + version "1.7.1" + resolved "https://registry.yarnpkg.com/mathjs/-/mathjs-1.7.1.tgz#84a9733d025fded4405111a065a98cb11e2102c1" + dependencies: + decimal.js "~4.0.1" + +md5.js@^1.3.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.4.tgz#e9bdbde94a20a5ac18b04340fc5764d5b09d901d" + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + +mdn-data@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-1.1.0.tgz#a7056319da95a2d0881267d7263075042eb061e2" + +meant@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/meant/-/meant-1.0.1.tgz#66044fea2f23230ec806fb515efea29c44d2115d" + media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" +mem@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" + dependencies: + mimic-fn "^1.0.0" + memory-fs@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.2.0.tgz#f2bb25368bc121e391c2520de92969caee0a0290" @@ -5657,31 +7084,61 @@ micromatch@^2.1.5, micromatch@^2.3.11, micromatch@^2.3.7: parse-glob "^3.0.4" regex-cache "^0.4.2" +micromatch@^3.1.4: + version "3.1.10" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + dependencies: + 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" + miller-rabin@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.0.tgz#4a62fb1d42933c05583982f4c716f6fb9e6c6d3d" + version "4.0.1" + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" dependencies: bn.js "^4.0.0" brorand "^1.0.1" -"mime-db@>= 1.29.0 < 2", mime-db@~1.29.0: - version "1.29.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.29.0.tgz#48d26d235589651704ac5916ca06001914266878" +"mime-db@>= 1.33.0 < 2", mime-db@^1.28.0, mime-db@~1.33.0: + version "1.33.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db" -mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.15, mime-types@~2.1.7: - version "2.1.16" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.16.tgz#2b858a52e5ecd516db897ac2be87487830698e23" +mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.18, mime-types@~2.1.7: + version "2.1.18" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8" dependencies: - mime-db "~1.29.0" - -mime@1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53" + mime-db "~1.33.0" -mime@1.3.x, mime@^1.2.11, mime@^1.3.4: +mime@1.3.x: version "1.3.6" resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.6.tgz#591d84d3653a6b0b4a3b9df8de5aa8108e72e5e0" +mime@1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" + +mime@^1.2.11, mime@^1.3.4, mime@^1.5.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + +mimic-fn@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + +mimic-response@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.0.tgz#df3d3652a73fded6b9b0b24146e6fd052353458e" + min-document@^2.19.0: version "2.19.0" resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" @@ -5702,7 +7159,7 @@ minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: dependencies: brace-expansion "^1.1.7" -minimist@0.0.8, minimist@~0.0.1: +minimist@0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" @@ -5710,6 +7167,75 @@ minimist@^1.1.0, minimist@^1.1.3, minimist@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" +minimist@~0.0.1: + version "0.0.10" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" + +minipass@^2.2.1, minipass@^2.2.4: + version "2.2.4" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.2.4.tgz#03c824d84551ec38a8d1bb5bc350a5a30a354a40" + dependencies: + safe-buffer "^5.1.1" + yallist "^3.0.0" + +minizlib@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.1.0.tgz#11e13658ce46bc3a70a267aac58359d1e0c29ceb" + dependencies: + minipass "^2.2.1" + +mississippi@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-1.3.1.tgz#2a8bb465e86550ac8b36a7b6f45599171d78671e" + dependencies: + 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 "^1.0.0" + pumpify "^1.3.3" + stream-each "^1.1.0" + through2 "^2.0.0" + +mississippi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-2.0.0.tgz#3442a508fafc28500486feea99409676e4ee5a6f" + dependencies: + 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" + +mississippi@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" + dependencies: + 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 "^3.0.0" + pumpify "^1.3.3" + stream-each "^1.1.0" + through2 "^2.0.0" + +mixin-deep@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe" + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + mkdirp@0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.0.tgz#1d73076a6df986cd9344e15e71fcc05a4c9abf12" @@ -5729,8 +7255,8 @@ modify-babel-preset@^1.0.0: require-relative "^0.8.7" moment@^2.18.1: - version "2.18.1" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.18.1.tgz#c36193dd3ce1c2eed2adb7c802dbbc77a81b1c0f" + version "2.22.0" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.22.0.tgz#7921ade01017dd45186e7fee5f424f0b8663a730" monotone-convex-hull-2d@^1.0.1: version "1.0.1" @@ -5738,6 +7264,17 @@ monotone-convex-hull-2d@^1.0.1: dependencies: robust-orientation "^1.1.3" +move-concurrently@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" + dependencies: + 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@0.7.1: version "0.7.1" resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098" @@ -5746,16 +7283,20 @@ ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" +ms@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + multicast-dns-service-types@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" multicast-dns@^6.0.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.1.1.tgz#6e7de86a570872ab17058adea7160bbeca814dde" + version "6.2.3" + resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" dependencies: - dns-packet "^1.0.1" - thunky "^0.1.0" + dns-packet "^1.3.1" + thunky "^1.0.2" multipipe@^0.1.2: version "0.1.2" @@ -5767,46 +7308,99 @@ mute-stream@0.0.5: version "0.0.5" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0" +mute-stream@~0.0.4: + version "0.0.7" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" + nan@^2.3.0: - version "2.6.2" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.6.2.tgz#e4ff34e6c95fdfb5aecc08de6596f43605a7db45" + version "2.10.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.10.0.tgz#96d0cd610ebd58d4b4de9cc0c6828cda99c7548f" + +nanomatch@^1.2.9: + version "1.2.9" + resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.9.tgz#879f7150cb2dab7a471259066c104eee6e0fa7c2" + dependencies: + 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-odd "^2.0.0" + 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" natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" -ncname@1.0.x: - version "1.0.0" - resolved "https://registry.yarnpkg.com/ncname/-/ncname-1.0.0.tgz#5b57ad18b1ca092864ef62b0b1ed8194f383b71c" - dependencies: - xml-char-classes "^1.0.0" - negotiator@0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" -no-case@^2.2.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.1.tgz#7aeba1c73a52184265554b7dc03baf720df80081" - dependencies: - lower-case "^1.1.1" +neo-async@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.5.0.tgz#76b1c823130cca26acfbaccc8fbaf0a2fa33b18f" -node-dir@^0.1.10: +next-tick@1: + version "1.0.0" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" + +nice-try@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.4.tgz#d93962f6c52f2c1558c0fbda6d512819f1efe1c4" + +no-case@^2.2.0: + version "2.3.2" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac" + dependencies: + lower-case "^1.1.1" + +node-dir@^0.1.10: version "0.1.17" resolved "https://registry.yarnpkg.com/node-dir/-/node-dir-0.1.17.tgz#5f5665d93351335caabef8f1c554516cf5f1e4e5" dependencies: minimatch "^3.0.2" +node-fetch-npm@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz#7258c9046182dca345b4208eda918daf33697ff7" + dependencies: + encoding "^0.1.11" + json-parse-better-errors "^1.0.0" + safe-buffer "^5.1.1" + node-fetch@^1.0.1: - version "1.7.2" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.2.tgz#c54e9aac57e432875233525f3c891c4159ffefd7" + version "1.7.3" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" dependencies: encoding "^0.1.11" is-stream "^1.0.1" -node-forge@0.6.33: - version "0.6.33" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.6.33.tgz#463811879f573d45155ad6a9f43dc296e8e85ebc" +node-forge@0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.1.tgz#9da611ea08982f4b94206b3beb4cc9665f20c300" + +node-gyp@^3.6.2: + version "3.6.2" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.6.2.tgz#9bfbe54562286284838e750eac05295853fa1c60" + dependencies: + 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" node-libs-browser@^0.7.0: version "0.7.0" @@ -5836,71 +7430,45 @@ node-libs-browser@^0.7.0: util "^0.10.3" vm-browserify "0.0.4" -node-libs-browser@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-1.1.1.tgz#2a38243abedd7dffcd07a97c9aca5668975a6fea" - dependencies: - assert "^1.1.1" - browserify-zlib "^0.1.4" - buffer "^4.3.0" - console-browserify "^1.1.0" - constants-browserify "^1.0.0" - crypto-browserify "^3.11.0" - domain-browser "^1.1.1" - events "^1.0.0" - https-browserify "0.0.1" - os-browserify "^0.2.0" - path-browserify "0.0.0" - 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 "^1.4.2" - tty-browserify "0.0.0" - url "^0.11.0" - util "^0.10.3" - vm-browserify "0.0.4" - -node-libs-browser@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.0.0.tgz#a3a59ec97024985b46e958379646f96c4b616646" +"node-libs-browser@^1.0.0 || ^2.0.0", node-libs-browser@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.1.0.tgz#5f94263d404f6e44767d726901fff05478d600df" dependencies: assert "^1.1.1" - browserify-zlib "^0.1.4" + browserify-zlib "^0.2.0" buffer "^4.3.0" console-browserify "^1.1.0" constants-browserify "^1.0.0" crypto-browserify "^3.11.0" domain-browser "^1.1.1" events "^1.0.0" - https-browserify "0.0.1" - os-browserify "^0.2.0" + https-browserify "^1.0.0" + os-browserify "^0.3.0" path-browserify "0.0.0" - process "^0.11.0" + process "^0.11.10" punycode "^1.2.4" querystring-es3 "^0.2.0" - readable-stream "^2.0.5" + readable-stream "^2.3.3" stream-browserify "^2.0.1" - stream-http "^2.3.1" - string_decoder "^0.10.25" - timers-browserify "^2.0.2" + stream-http "^2.7.2" + string_decoder "^1.0.0" + timers-browserify "^2.0.4" tty-browserify "0.0.0" url "^0.11.0" util "^0.10.3" vm-browserify "0.0.4" -node-pre-gyp@^0.6.36: - version "0.6.36" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.36.tgz#db604112cb74e0d477554e9b505b17abddfab786" +node-pre-gyp@^0.6.39: + version "0.6.39" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz#c00e96860b23c0e1420ac7befc5044e1d78d8649" dependencies: + detect-libc "^1.0.2" + hawk "3.1.3" mkdirp "^0.5.1" nopt "^4.0.1" npmlog "^4.0.2" rc "^1.1.7" - request "^2.81.0" + request "2.81.0" rimraf "^2.6.1" semver "^5.3.0" tar "^2.2.1" @@ -5917,14 +7485,20 @@ node-status-codes@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/node-status-codes/-/node-status-codes-1.0.0.tgz#5ae5541d024645d32a58fcddc9ceecea7ae3ac2f" -nopt@^4.0.1: +"nopt@2 || 3": + version "3.0.6" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" + dependencies: + abbrev "1" + +nopt@^4.0.1, nopt@~4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" dependencies: abbrev "1" osenv "^0.1.4" -normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: +normalize-package-data@^2.0.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.4.0, "normalize-package-data@~1.0.1 || ^2.0.0", normalize-package-data@~2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" dependencies: @@ -5933,7 +7507,7 @@ normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: semver "2 || 3 || 4 || 5" validate-npm-package-license "^3.0.1" -normalize-path@^2.0.0, normalize-path@^2.0.1: +normalize-path@^2.0.0, normalize-path@^2.0.1, normalize-path@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" dependencies: @@ -5953,8 +7527,103 @@ normalize-url@^1.4.0: sort-keys "^1.0.0" normalizr@^3.2.2: - version "3.2.3" - resolved "https://registry.yarnpkg.com/normalizr/-/normalizr-3.2.3.tgz#88755c64de418b040fa6ad1329b2de5c3250ac49" + version "3.2.4" + resolved "https://registry.yarnpkg.com/normalizr/-/normalizr-3.2.4.tgz#16aafc540ca99dc1060ceaa1933556322eac4429" + +npm-bundled@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.3.tgz#7e71703d973af3370a9591bafe3a63aca0be2308" + +npm-cache-filename@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/npm-cache-filename/-/npm-cache-filename-1.0.2.tgz#ded306c5b0bfc870a9e9faf823bc5f283e05ae11" + +npm-conf@^1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/npm-conf/-/npm-conf-1.1.3.tgz#256cc47bd0e218c259c4e9550bf413bc2192aff9" + dependencies: + config-chain "^1.1.11" + pify "^3.0.0" + +npm-install-checks@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-3.0.0.tgz#d4aecdfd51a53e3723b7b2f93b2ee28e307bc0d7" + dependencies: + semver "^2.3.0 || 3.x || 4 || 5" + +npm-lifecycle@^2.0.0, npm-lifecycle@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/npm-lifecycle/-/npm-lifecycle-2.0.1.tgz#897313f05ed24db8e28d99fa8b42c31b625e6237" + dependencies: + byline "^5.0.0" + graceful-fs "^4.1.11" + node-gyp "^3.6.2" + resolve-from "^4.0.0" + slide "^1.1.6" + uid-number "0.0.6" + umask "^1.1.0" + which "^1.3.0" + +npm-logical-tree@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/npm-logical-tree/-/npm-logical-tree-1.2.1.tgz#44610141ca24664cad35d1e607176193fd8f5b88" + +"npm-package-arg@^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0", "npm-package-arg@^4.0.0 || ^5.0.0 || ^6.0.0", npm-package-arg@^6.0.0, npm-package-arg@~6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-6.0.0.tgz#8cce04b49d3f9faec3f56b0fe5f4391aeb9d2fac" + dependencies: + hosted-git-info "^2.5.0" + osenv "^0.1.4" + semver "^5.4.1" + validate-npm-package-name "^3.0.0" + +npm-package-arg@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-5.1.2.tgz#fb18d17bb61e60900d6312619919bd753755ab37" + dependencies: + hosted-git-info "^2.4.2" + osenv "^0.1.4" + semver "^5.1.0" + validate-npm-package-name "^3.0.0" + +npm-packlist@^1.1.10, npm-packlist@~1.1.10: + version "1.1.10" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.1.10.tgz#1039db9e985727e464df066f4cf0ab6ef85c398a" + dependencies: + ignore-walk "^3.0.1" + npm-bundled "^1.0.1" + +npm-pick-manifest@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-2.1.0.tgz#dc381bdd670c35d81655e1d5a94aa3dd4d87fce5" + dependencies: + npm-package-arg "^6.0.0" + semver "^5.4.1" + +npm-profile@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/npm-profile/-/npm-profile-3.0.1.tgz#65a1018340f14399a086b5d0a9bd0d13145d8e57" + dependencies: + aproba "^1.1.2" + make-fetch-happen "^2.5.0" + +npm-registry-client@^8.5.1: + version "8.5.1" + resolved "https://registry.yarnpkg.com/npm-registry-client/-/npm-registry-client-8.5.1.tgz#8115809c0a4b40938b8a109b8ea74d26c6f5d7f1" + dependencies: + concat-stream "^1.5.2" + graceful-fs "^4.1.6" + normalize-package-data "~1.0.1 || ^2.0.0" + npm-package-arg "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0" + once "^1.3.3" + request "^2.74.0" + retry "^0.10.0" + safe-buffer "^5.1.1" + semver "2 >=2.2.1 || 3.x || 4 || 5" + slide "^1.1.3" + ssri "^5.2.4" + optionalDependencies: + npmlog "2 || ^3.1.0 || ^4.0.0" npm-run-path@^2.0.0: version "2.0.2" @@ -5962,7 +7631,115 @@ npm-run-path@^2.0.0: dependencies: path-key "^2.0.0" -npmlog@^4.0.2: +npm-user-validate@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/npm-user-validate/-/npm-user-validate-1.0.0.tgz#8ceca0f5cea04d4e93519ef72d0557a75122e951" + +npm@^5.8.0: + version "5.8.0" + resolved "https://registry.yarnpkg.com/npm/-/npm-5.8.0.tgz#5e4bfb8c2e7ada01dd41ec0555d13dd0f446ddb2" + dependencies: + JSONStream "^1.3.2" + abbrev "~1.1.1" + ansi-regex "~3.0.0" + ansicolors "~0.3.2" + ansistyles "~0.1.3" + aproba "~1.2.0" + archy "~1.0.0" + bin-links "^1.1.0" + bluebird "~3.5.1" + cacache "^10.0.4" + call-limit "~1.1.0" + chownr "~1.0.1" + cli-table2 "~0.2.0" + cmd-shim "~2.0.2" + columnify "~1.5.4" + config-chain "~1.1.11" + detect-indent "~5.0.0" + detect-newline "^2.1.0" + dezalgo "~1.0.3" + editor "~1.0.0" + find-npm-prefix "^1.0.2" + fs-vacuum "~1.2.10" + fs-write-stream-atomic "~1.0.10" + gentle-fs "^2.0.1" + glob "~7.1.2" + graceful-fs "~4.1.11" + has-unicode "~2.0.1" + hosted-git-info "^2.6.0" + iferr "~0.1.5" + inflight "~1.0.6" + inherits "~2.0.3" + ini "^1.3.5" + init-package-json "^1.10.3" + is-cidr "~1.0.0" + json-parse-better-errors "^1.0.1" + lazy-property "~1.0.0" + libcipm "^1.6.0" + libnpx "^10.0.1" + lockfile "~1.0.3" + lodash._baseuniq "~4.6.0" + lodash.clonedeep "~4.5.0" + lodash.union "~4.6.0" + lodash.uniq "~4.5.0" + lodash.without "~4.4.0" + lru-cache "~4.1.1" + meant "~1.0.1" + mississippi "^3.0.0" + mkdirp "~0.5.1" + move-concurrently "^1.0.1" + nopt "~4.0.1" + normalize-package-data "~2.4.0" + npm-cache-filename "~1.0.2" + npm-install-checks "~3.0.0" + npm-lifecycle "^2.0.1" + npm-package-arg "~6.0.0" + npm-packlist "~1.1.10" + npm-profile "^3.0.1" + npm-registry-client "^8.5.1" + npm-user-validate "~1.0.0" + npmlog "~4.1.2" + once "~1.4.0" + opener "~1.4.3" + osenv "^0.1.5" + pacote "^7.6.1" + path-is-inside "~1.0.2" + promise-inflight "~1.0.1" + qrcode-terminal "~0.11.0" + query-string "^5.1.0" + qw "~1.0.1" + read "~1.0.7" + read-cmd-shim "~1.0.1" + read-installed "~4.0.3" + read-package-json "^2.0.13" + read-package-tree "~5.1.6" + readable-stream "^2.3.5" + request "~2.83.0" + retry "~0.10.1" + rimraf "~2.6.2" + safe-buffer "~5.1.1" + semver "^5.5.0" + sha "~2.0.1" + slide "~1.1.6" + sorted-object "~2.0.1" + sorted-union-stream "~2.1.3" + ssri "^5.2.4" + strip-ansi "~4.0.0" + tar "^4.4.0" + text-table "~0.2.0" + uid-number "0.0.6" + umask "~1.1.0" + unique-filename "~1.1.0" + unpipe "~1.0.0" + update-notifier "~2.3.0" + uuid "^3.2.1" + validate-npm-package-name "~3.0.0" + which "~1.3.0" + worker-farm "^1.5.4" + wrappy "~1.0.2" + write-file-atomic "^2.3.0" + +"npmlog@0 || 1 || 2 || 3 || 4", "npmlog@2 || ^3.1.0 || ^4.0.0", npmlog@^4.0.2, npmlog@~4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" dependencies: @@ -5971,7 +7748,7 @@ npmlog@^4.0.2: gauge "~2.7.3" set-blocking "~2.0.0" -nth-check@~1.0.0, nth-check@~1.0.1: +nth-check@^1.0.1, nth-check@~1.0.0, nth-check@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.1.tgz#9929acdf628fc2c41098deab82ac580cf149aae4" dependencies: @@ -5985,10 +7762,14 @@ number-is-nan@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" -oauth-sign@~0.8.1: +oauth-sign@~0.8.1, oauth-sign@~0.8.2: version "0.8.2" resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" +object-assign@*, object-assign@^4.0.0, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + object-assign@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-2.1.1.tgz#43c36e5d569ff8e4816c4efa8be02d26967c18aa" @@ -5997,25 +7778,43 @@ object-assign@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-3.0.0.tgz#9bedd5ca0897949bca47e7ff408062d549f587f2" -object-assign@^4.0.0, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" object-hash@^1.1.4: - version "1.1.8" - resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-1.1.8.tgz#28a659cf987d96a4dabe7860289f3b5326c4a03c" + version "1.3.0" + resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-1.3.0.tgz#76d9ba6ff113cf8efc0d996102851fe6723963e2" -object-keys@^1.0.10, object-keys@^1.0.8: +object-keys@^1.0.11, object-keys@^1.0.8: version "1.0.11" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" +object-visit@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + dependencies: + isobject "^3.0.0" + object.assign@^4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.0.4.tgz#b1c9cc044ef1b9fe63606fc141abbb32e14730cc" + version "4.1.0" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" dependencies: define-properties "^1.1.2" - function-bind "^1.1.0" - object-keys "^1.0.10" + function-bind "^1.1.1" + has-symbols "^1.0.0" + object-keys "^1.0.11" + +object.getownpropertydescriptors@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.5.1" object.omit@^2.0.0: version "2.0.1" @@ -6024,9 +7823,24 @@ object.omit@^2.0.0: for-own "^0.1.4" is-extendable "^0.1.1" +object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + dependencies: + isobject "^3.0.1" + +object.values@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.0.4.tgz#e524da09b4f66ff05df457546ec72ac99f13069a" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.6.1" + function-bind "^1.1.0" + has "^1.0.1" + obuf@^1.0.0, obuf@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.1.tgz#104124b6c602c6796881a042541d36db43a5264e" + version "1.1.2" + resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" on-finished@~2.3.0: version "2.3.0" @@ -6038,7 +7852,7 @@ on-headers@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.1.tgz#928f5d0f470d49342651ea6794b0857c100693f7" -once@^1.3.0, once@^1.3.3, once@^1.4.0: +once@^1.3.0, once@^1.3.1, once@^1.3.3, once@^1.4.0, once@~1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" dependencies: @@ -6046,14 +7860,17 @@ once@^1.3.0, once@^1.3.3, once@^1.4.0: onetime@^1.0.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" + resolved "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" -opn@4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/opn/-/opn-4.0.2.tgz#7abc22e644dff63b0a96d5ab7f2790c0f01abc95" +opener@~1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/opener/-/opener-1.4.3.tgz#5c6da2c5d7e5831e8ffa3964950f8d6674ac90b8" + +opn@^5.1.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/opn/-/opn-5.3.0.tgz#64871565c863875f052cfdf53d3e3cb5adb53b1c" dependencies: - object-assign "^4.0.1" - pinkie-promise "^2.0.0" + is-wsl "^1.1.0" optimist@~0.6.0: version "0.6.1" @@ -6106,6 +7923,10 @@ os-browserify@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.2.1.tgz#63fc4ccee5d2d7763d26bbf8601078e6c2e0044f" +os-browserify@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" + os-filter-obj@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/os-filter-obj/-/os-filter-obj-1.0.3.tgz#5915330d90eced557d2d938a31c6dd214d9c63ad" @@ -6120,18 +7941,26 @@ os-locale@^1.4.0: dependencies: lcid "^1.0.0" +os-locale@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" + dependencies: + execa "^0.7.0" + lcid "^1.0.0" + mem "^1.1.0" + os-tmpdir@^1.0.0, os-tmpdir@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" -osenv@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.4.tgz#42fe6d5953df06c8064be6f176c3d05aaaa34644" +osenv@0, osenv@^0.1.4, osenv@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" dependencies: os-homedir "^1.0.0" os-tmpdir "^1.0.0" -output-file-sync@^1.1.0: +output-file-sync@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/output-file-sync/-/output-file-sync-1.1.2.tgz#d0a33eefe61a205facb90092e826598d5245ce76" dependencies: @@ -6139,13 +7968,25 @@ output-file-sync@^1.1.0: mkdirp "^0.5.1" object-assign "^4.1.0" +p-cancelable@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.3.0.tgz#b9e123800bcebb7ac13a479be195b507b98d30fa" + +p-event@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/p-event/-/p-event-1.3.0.tgz#8e6b4f4f65c72bc5b6fe28b75eda874f96a4a085" + dependencies: + p-timeout "^1.1.1" + p-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" p-limit@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.1.0.tgz#b07ff2d9a5d88bec806035895a2bab66a27988bc" + version "1.2.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.2.0.tgz#0e92b6bedcb59f022c13d0f1949dc82d15909f1c" + dependencies: + p-try "^1.0.0" p-locate@^2.0.0: version "2.0.0" @@ -6153,21 +7994,91 @@ p-locate@^2.0.0: dependencies: p-limit "^1.1.0" +p-map-series@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-map-series/-/p-map-series-1.0.0.tgz#bf98fe575705658a9e1351befb85ae4c1f07bdca" + dependencies: + p-reduce "^1.0.0" + p-map@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.1.1.tgz#05f5e4ae97a068371bc2a5cc86bfbdbc19c4ae7a" + version "1.2.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b" p-pipe@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/p-pipe/-/p-pipe-1.2.0.tgz#4b1a11399a11520a67790ee5a0c1d5881d6befe9" +p-reduce@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-1.0.0.tgz#18c2b0dd936a4690a529f8231f58a0fdb6a47dfa" + +p-timeout@^1.1.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-1.2.1.tgz#5eb3b353b7fce99f101a1038880bb054ebbea386" + dependencies: + p-finally "^1.0.0" + +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + +package-json@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed" + dependencies: + got "^6.7.1" + registry-auth-token "^3.0.1" + registry-url "^3.0.3" + semver "^5.1.0" + +pacote@^7.5.1, pacote@^7.6.1: + version "7.6.1" + resolved "https://registry.yarnpkg.com/pacote/-/pacote-7.6.1.tgz#d44621c89a5a61f173989b60236757728387c094" + dependencies: + bluebird "^3.5.1" + cacache "^10.0.4" + get-stream "^3.0.0" + glob "^7.1.2" + lru-cache "^4.1.1" + make-fetch-happen "^2.6.0" + minimatch "^3.0.4" + mississippi "^3.0.0" + mkdirp "^0.5.1" + normalize-package-data "^2.4.0" + npm-package-arg "^6.0.0" + npm-packlist "^1.1.10" + npm-pick-manifest "^2.1.0" + osenv "^0.1.5" + promise-inflight "^1.0.1" + promise-retry "^1.1.1" + protoduck "^5.0.0" + rimraf "^2.6.2" + safe-buffer "^5.1.1" + semver "^5.5.0" + ssri "^5.2.4" + tar "^4.4.0" + unique-filename "^1.1.0" + which "^1.3.0" + pako@~0.2.0: version "0.2.9" resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" +pako@~1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.6.tgz#0101211baa70c4bca4a0f63f2206e97b7dfaf258" + papaparse@^4.3.6: - version "4.3.6" - resolved "https://registry.yarnpkg.com/papaparse/-/papaparse-4.3.6.tgz#9566eda0ecab13afcb740a62381c699f486cb145" + version "4.3.7" + resolved "https://registry.yarnpkg.com/papaparse/-/papaparse-4.3.7.tgz#ed1e7183320d1e0839dfe9f7186185cfc5097b8d" + +parallel-transform@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.1.0.tgz#d410f065b05da23081fcd10f28854c29bda33b06" + dependencies: + cyclist "~0.2.2" + inherits "^2.0.3" + readable-stream "^2.1.5" param-case@2.1.x: version "2.1.1" @@ -6228,9 +8139,13 @@ parse-png@^1.0.0, parse-png@^1.1.1: dependencies: pngjs "^3.2.0" -parseurl@~1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.1.tgz#c8ab8c9223ba34888aa64a297b28853bec18da56" +parseurl@~1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3" + +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" path-browserify@0.0.0: version "0.0.0" @@ -6254,15 +8169,15 @@ path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" -path-is-absolute@^1.0.0: +path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" -path-is-inside@^1.0.1: +path-is-inside@^1.0.1, path-is-inside@^1.0.2, path-is-inside@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" -path-key@^2.0.0: +path-key@^2.0.0, path-key@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" @@ -6293,8 +8208,8 @@ pbkdf2-compat@2.0.1: resolved "https://registry.yarnpkg.com/pbkdf2-compat/-/pbkdf2-compat-2.0.1.tgz#b6e0c8fa99494d94e0511575802a59a5c142f288" pbkdf2@^3.0.3: - version "3.0.13" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.13.tgz#c37d295531e786b1da3e3eadc840426accb0ae25" + version "3.0.14" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.14.tgz#a35e13c64799b06ce15320f459c230e68e73bade" dependencies: create-hash "^1.1.2" create-hmac "^1.1.4" @@ -6319,18 +8234,18 @@ performance-now@^2.1.0: resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" phantomjs-prebuilt@^2.1.10: - version "2.1.14" - resolved "https://registry.yarnpkg.com/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.14.tgz#d53d311fcfb7d1d08ddb24014558f1188c516da0" - dependencies: - es6-promise "~4.0.3" - extract-zip "~1.5.0" - fs-extra "~1.0.0" - hasha "~2.2.0" - kew "~0.7.0" - progress "~1.1.8" - request "~2.79.0" - request-progress "~2.0.1" - which "~1.2.10" + version "2.1.16" + resolved "https://registry.yarnpkg.com/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.16.tgz#efd212a4a3966d3647684ea8ba788549be2aefef" + dependencies: + 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" pify@^2.0.0, pify@^2.3.0: version "2.3.0" @@ -6362,40 +8277,37 @@ pkg-dir@^1.0.0: dependencies: find-up "^1.0.0" +pkg-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" + dependencies: + find-up "^2.1.0" + pluralize@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45" pn@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/pn/-/pn-1.0.0.tgz#1cf5a30b0d806cd18f88fc41a6b5d4ad615b3ba9" + version "1.1.0" + resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" pngjs@^3.0.0, pngjs@^3.2.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.3.0.tgz#1f5730c189c94933b81beda2ab2f8e2855263a8f" + version "3.3.2" + resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.3.2.tgz#097c3c2a75feb223eadddea6bc9f0050cf830bc3" -pngquant-bin@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/pngquant-bin/-/pngquant-bin-3.1.1.tgz#d124d98a75a9487f40c1640b4dbfcbb2bd5a1fd1" +pngquant-bin@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/pngquant-bin/-/pngquant-bin-4.0.0.tgz#468adf7036f50fae09c9c264ef62b6d10c02f5c2" dependencies: - bin-build "^2.0.0" + bin-build "^3.0.0" bin-wrapper "^3.0.0" + execa "^0.10.0" logalot "^2.0.0" point-in-polygon@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/point-in-polygon/-/point-in-polygon-1.0.1.tgz#d59b64e8fee41c49458aac82b56718c5957b2af7" -polygonize@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/polygonize/-/polygonize-1.1.0.tgz#a342e18f57351307c6c46f8c58997664333cc2da" - dependencies: - "@turf/envelope" "*" - "@turf/helpers" "*" - "@turf/inside" "*" - "@turf/invariant" "*" - "@turf/meta" "*" - portfinder@^1.0.9: version "1.0.13" resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.13.tgz#bb32ecd87c27104ae6ee44b5a3ccbf0ebb1aede9" @@ -6404,6 +8316,10 @@ portfinder@^1.0.9: debug "^2.2.0" mkdirp "0.5.x" +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + postcss-calc@^5.2.0: version "5.3.1" resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-5.3.1.tgz#77bae7ca928ad85716e2fda42f261bf7c1d65b5e" @@ -6558,27 +8474,27 @@ postcss-minify-selectors@^2.0.4: postcss "^5.0.14" postcss-selector-parser "^2.0.0" -postcss-modules-extract-imports@^1.0.0: +postcss-modules-extract-imports@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.0.tgz#66140ecece38ef06bf0d3e355d69bf59d141ea85" dependencies: postcss "^6.0.1" -postcss-modules-local-by-default@^1.0.1: +postcss-modules-local-by-default@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz#f7d80c398c5a393fa7964466bd19500a7d61c069" dependencies: css-selector-tokenizer "^0.7.0" postcss "^6.0.1" -postcss-modules-scope@^1.0.0: +postcss-modules-scope@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz#d6ea64994c79f97b62a72b426fbe6056a194bb90" dependencies: css-selector-tokenizer "^0.7.0" postcss "^6.0.1" -postcss-modules-values@^1.1.0: +postcss-modules-values@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz#ecffa9d7e192518389f42ad0e83f72aec456ea20" dependencies: @@ -6666,8 +8582,8 @@ postcss-zindex@^2.0.1: uniqs "^2.0.0" postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0.14, postcss@^5.0.16, postcss@^5.0.2, postcss@^5.0.4, postcss@^5.0.5, postcss@^5.0.6, postcss@^5.0.8, postcss@^5.2.15, postcss@^5.2.16: - version "5.2.17" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.17.tgz#cf4f597b864d65c8a492b2eabe9d706c879c388b" + version "5.2.18" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.18.tgz#badfa1497d46244f6390f58b319830d9107853c5" dependencies: chalk "^1.1.3" js-base64 "^2.1.9" @@ -6675,12 +8591,12 @@ postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0 supports-color "^3.2.3" postcss@^6.0.1: - version "6.0.8" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.8.tgz#89067a9ce8b11f8a84cbc5117efc30419a0857b3" + version "6.0.21" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.21.tgz#8265662694eddf9e9a5960db6da33c39e4cd069d" dependencies: - chalk "^2.0.1" - source-map "^0.5.6" - supports-color "^4.2.0" + chalk "^2.3.2" + source-map "^0.6.1" + supports-color "^5.3.0" prelude-ls@~1.1.2: version "1.1.2" @@ -6701,15 +8617,15 @@ pretty-error@^2.0.2: renderkid "^2.0.1" utila "~0.4" -private@^0.1.6, private@~0.1.5: - version "0.1.7" - resolved "https://registry.yarnpkg.com/private/-/private-0.1.7.tgz#68ce5e8a1ef0a23bb570cc28537b5332aba63ef1" +private@^0.1.6, private@^0.1.7, private@~0.1.5: + version "0.1.8" + resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" -process-nextick-args@~1.0.6: - version "1.0.7" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" +process-nextick-args@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" -process@^0.11.0, process@~0.11.0: +process@^0.11.0, process@^0.11.10: version "0.11.10" resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" @@ -6717,34 +8633,61 @@ process@~0.5.1: version "0.5.2" resolved "https://registry.yarnpkg.com/process/-/process-0.5.2.tgz#1638d8a8e34c2f440a91db95ab9aeb677fc185cf" -progress@^1.1.8, progress@~1.1.8: +progress@^1.1.8: version "1.1.8" resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" +promise-inflight@^1.0.1, promise-inflight@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + +promise-retry@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-1.1.1.tgz#6739e968e3051da20ce6497fb2b50f6911df3d6d" + dependencies: + err-code "^1.0.0" + retry "^0.10.0" + promise@^7.1.1: version "7.3.1" resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" dependencies: asap "~2.0.3" -prop-types@15, prop-types@>=15.0.0, prop-types@^15.5.10, prop-types@^15.5.4, prop-types@^15.5.6, prop-types@^15.5.7, prop-types@^15.5.8, prop-types@latest: - version "15.6.0" - resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.0.tgz#ceaf083022fc46b4a35f69e13ef75aed0d639856" +promzard@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/promzard/-/promzard-0.3.0.tgz#26a5d6ee8c7dee4cb12208305acfb93ba382a9ee" + dependencies: + read "1" + +prop-types@15, prop-types@>=15.0.0, prop-types@^15.5.10, prop-types@^15.5.4, prop-types@^15.5.6, prop-types@^15.5.7, prop-types@^15.5.8, prop-types@^15.6.0, prop-types@latest: + version "15.6.1" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.1.tgz#36644453564255ddda391191fb3a125cbdf654ca" dependencies: fbjs "^0.8.16" loose-envify "^1.3.1" object-assign "^4.1.1" -proxy-addr@~1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-1.1.5.tgz#71c0ee3b102de3f202f3b64f608d173fcba1a918" +proto-list@~1.2.1: + version "1.2.4" + resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" + +protoduck@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/protoduck/-/protoduck-5.0.0.tgz#752145e6be0ad834cb25716f670a713c860dce70" dependencies: - forwarded "~0.1.0" - ipaddr.js "1.4.0" + genfun "^4.0.1" -prr@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/prr/-/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a" +proxy-addr@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.3.tgz#355f262505a621646b3130a728eb647e22055341" + dependencies: + forwarded "~0.1.2" + ipaddr.js "1.6.0" + +prr@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" pseudomap@^1.0.2: version "1.0.2" @@ -6760,6 +8703,35 @@ public-encrypt@^4.0.0: parse-asn1 "^5.0.0" randombytes "^2.0.1" +pump@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/pump/-/pump-1.0.3.tgz#5dfe8311c33bbf6fc18261f9f34702c47c08a954" + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pump@^2.0.0, pump@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pumpify@^1.3.3: + version "1.4.0" + resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.4.0.tgz#80b7c5df7e24153d03f0e7ac8a05a5d068bd07fb" + dependencies: + duplexify "^3.5.3" + inherits "^2.0.3" + pump "^2.0.0" + punycode@1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" @@ -6768,17 +8740,21 @@ punycode@^1.2.4, punycode@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" +punycode@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.0.tgz#5f863edc89b96db09074bad7947bf09056ca4e7d" + q@^1.1.2: - version "1.5.0" - resolved "https://registry.yarnpkg.com/q/-/q-1.5.0.tgz#dd01bac9d06d30e6f219aecb8253ee9ebdc308f1" + version "1.5.1" + resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" -qs@6.5.0: - version "6.5.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.0.tgz#8d04954d364def3efc55b5a0793e1e2c8b1e6e49" +qrcode-terminal@~0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/qrcode-terminal/-/qrcode-terminal-0.11.0.tgz#ffc6c28a2fc0bfb47052b47e23f4f446a5fbdb9e" -qs@~6.3.0: - version "6.3.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.2.tgz#e75bd5f6e268122a2a0e0bda630b2550c166502c" +qs@6.5.1, qs@~6.5.1: + version "6.5.1" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" qs@~6.4.0: version "6.4.0" @@ -6791,6 +8767,14 @@ query-string@^4.1.0, query-string@^4.2.2: object-assign "^4.1.0" strict-uri-encode "^1.0.0" +query-string@^5.1.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb" + dependencies: + decode-uri-component "^0.2.0" + object-assign "^4.1.0" + strict-uri-encode "^1.0.0" + querystring-es3@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" @@ -6807,9 +8791,13 @@ querystringify@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-1.0.0.tgz#6286242112c5b712fa654e526652bf6a13ff05cb" -quickselect@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/quickselect/-/quickselect-1.0.0.tgz#02630818f9aae4ecab26f0103f98d061c17c58f3" +quickselect@^1.0.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/quickselect/-/quickselect-1.1.1.tgz#852e412ce418f237ad5b660d70cffac647ae94c2" + +qw@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/qw/-/qw-1.0.1.tgz#efbfdc740f9ad054304426acb183412cc8b996d4" radium-plugin-linter@^1.0.1: version "1.0.1" @@ -6837,8 +8825,8 @@ radium@^0.18.1: rimraf "^2.6.1" raf@^3.2.0: - version "3.3.2" - resolved "https://registry.yarnpkg.com/raf/-/raf-3.3.2.tgz#0c13be0b5b49b46f76d6669248d527cf2b02fe27" + version "3.4.0" + resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.0.tgz#a28876881b4bc2ca9117d4138163ddb80f781575" dependencies: performance-now "^2.1.0" @@ -6853,29 +8841,45 @@ randomatic@^1.1.3: is-number "^3.0.0" kind-of "^4.0.0" -randombytes@^2.0.0, randombytes@^2.0.1: - version "2.0.5" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.5.tgz#dc009a246b8d09a177b4b7a0ae77bc570f4b1b79" +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: + version "2.0.6" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.6.tgz#d302c522948588848a8d300c932b44c24231da80" + dependencies: + safe-buffer "^5.1.0" + +randomfill@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" dependencies: + randombytes "^2.0.5" safe-buffer "^5.1.0" range-parser@^1.0.3, range-parser@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" +raw-body@2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.2.tgz#bcd60c77d3eb93cde0050295c3f379389bc88f89" + dependencies: + bytes "3.0.0" + http-errors "1.6.2" + iconv-lite "0.4.19" + unpipe "1.0.0" + raw-loader@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/raw-loader/-/raw-loader-0.5.1.tgz#0c3d0beaed8a01c966d9787bf778281252a979aa" rbush@*, rbush@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/rbush/-/rbush-2.0.1.tgz#4cfaca28c3064bc0ee75431a1b79990e875eefa9" + version "2.0.2" + resolved "https://registry.yarnpkg.com/rbush/-/rbush-2.0.2.tgz#bb6005c2731b7ba1d5a9a035772927d16a614605" dependencies: - quickselect "^1.0.0" + quickselect "^1.0.1" -rc@^1.1.2, rc@^1.1.7: - version "1.2.1" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.1.tgz#2e03e8e42ee450b8cb3dce65be1bf8974e1dfd95" +rc@^1.0.1, rc@^1.1.2, rc@^1.1.6, rc@^1.1.7: + version "1.2.6" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.6.tgz#eb18989c6d4f4f162c399f79ddd29f3835568092" dependencies: deep-extend "~0.4.0" ini "~1.3.0" @@ -6883,16 +8887,16 @@ rc@^1.1.2, rc@^1.1.7: strip-json-comments "~2.0.1" react-addons-create-fragment@^15.0.0: - version "15.6.0" - resolved "https://registry.yarnpkg.com/react-addons-create-fragment/-/react-addons-create-fragment-15.6.0.tgz#af91a22b1fb095dd01f1afba43bfd0ef589d8b20" + version "15.6.2" + resolved "https://registry.yarnpkg.com/react-addons-create-fragment/-/react-addons-create-fragment-15.6.2.tgz#a394de7c2c7becd6b5475ba1b97ac472ce7c74f8" dependencies: fbjs "^0.8.4" loose-envify "^1.3.1" object-assign "^4.1.0" "react-addons-transition-group@^0.14.0 || ^15.0.0", react-addons-transition-group@^15.4.2: - version "15.6.0" - resolved "https://registry.yarnpkg.com/react-addons-transition-group/-/react-addons-transition-group-15.6.0.tgz#0f220b9f9597db3a80a88dbd6fe805fc644ce21c" + version "15.6.2" + resolved "https://registry.yarnpkg.com/react-addons-transition-group/-/react-addons-transition-group-15.6.2.tgz#8baebc2ae91ccdbf245fe29c9fd3d36f8b471923" dependencies: react-transition-group "^1.2.0" @@ -6910,13 +8914,9 @@ react-c3js@<=0.1.13: dependencies: c3 "^0.4.11" -react-deep-force-update@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/react-deep-force-update/-/react-deep-force-update-2.1.0.tgz#1c5f36ea96bcbf411605ec063f36c568ea4df86c" - react-docgen@^2.9.1: - version "2.17.0" - resolved "https://registry.yarnpkg.com/react-docgen/-/react-docgen-2.17.0.tgz#b0f3e85af955714e1067593c1043cb82611a93d1" + version "2.20.1" + resolved "https://registry.yarnpkg.com/react-docgen/-/react-docgen-2.20.1.tgz#29c3a1216066f513958abb1a43678860bbd51c7f" dependencies: async "^2.1.4" babel-runtime "^6.9.2" @@ -6927,8 +8927,8 @@ react-docgen@^2.9.1: recast "^0.12.6" react-dom@^15.4.2: - version "15.6.1" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-15.6.1.tgz#2cb0ed4191038e53c209eb3a79a23e2a4cf99470" + version "15.6.2" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-15.6.2.tgz#41cfadf693b757faf2708443a1d1fd5a02bef730" dependencies: fbjs "^0.8.9" loose-envify "^1.1.0" @@ -6936,36 +8936,34 @@ react-dom@^15.4.2: prop-types "^15.5.10" react-draggable@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/react-draggable/-/react-draggable-3.0.3.tgz#a6f9b3a7171981b76dadecf238316925cb9eacf4" + version "3.0.5" + resolved "https://registry.yarnpkg.com/react-draggable/-/react-draggable-3.0.5.tgz#c031e0ed4313531f9409d6cd84c8ebcec0ddfe2d" dependencies: classnames "^2.2.5" - prop-types "^15.5.10" + prop-types "^15.6.0" react-edit@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/react-edit/-/react-edit-6.3.0.tgz#5657a520a940c7c2b1209ec20aa7ff43859061f4" + version "6.4.0" + resolved "https://registry.yarnpkg.com/react-edit/-/react-edit-6.4.0.tgz#84d70e1e11e9cb13e3b29d5dabc81181ecd18a4c" react-hot-loader@next: - version "3.0.0-beta.7" - resolved "https://registry.yarnpkg.com/react-hot-loader/-/react-hot-loader-3.0.0-beta.7.tgz#d5847b8165d731c4d5b30d86d5d4716227a0fa83" + version "4.0.0" + resolved "https://registry.yarnpkg.com/react-hot-loader/-/react-hot-loader-4.0.0.tgz#3452fa9bc0d0ba9dfc5b0ccfa25101ca8dbd2de2" dependencies: - babel-template "^6.7.0" + fast-levenshtein "^2.0.6" global "^4.3.0" - react-deep-force-update "^2.0.1" - react-proxy "^3.0.0-alpha.0" - redbox-react "^1.3.6" - source-map "^0.4.4" + hoist-non-react-statics "^2.5.0" + prop-types "^15.6.0" + shallowequal "^1.0.2" react-iframe@^0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/react-iframe/-/react-iframe-0.0.4.tgz#24f2f63439f1d141788b0971acc10cdd06fd7b75" -react-input-autosize@^1.1.3: - version "1.1.4" - resolved "https://registry.yarnpkg.com/react-input-autosize/-/react-input-autosize-1.1.4.tgz#cbc45072d4084ddc57806db8e3b34e644b8366ac" +react-input-autosize@^2.1.2: + version "2.2.1" + resolved "https://registry.yarnpkg.com/react-input-autosize/-/react-input-autosize-2.2.1.tgz#ec428fa15b1592994fb5f9aa15bb1eb6baf420f8" dependencies: - create-react-class "^15.5.2" prop-types "^15.5.8" react-leaflet-draw@^0.16.0: @@ -6979,26 +8977,25 @@ react-leaflet-fullscreen@^0.0.5: leaflet.fullscreen "^1.4.x" react-leaflet@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/react-leaflet/-/react-leaflet-1.5.0.tgz#d7a77e2f439fabddff745749a41df3ac57d873e7" + version "1.9.1" + resolved "https://registry.yarnpkg.com/react-leaflet/-/react-leaflet-1.9.1.tgz#0a282d8d26f66ea2d719ebb8f4a5fa156b33b8c8" dependencies: - babel-runtime "^6.25.0" lodash "^4.0.0" + lodash-es "^4.0.0" warning "^3.0.0" react-list@^0.8.6: - version "0.8.6" - resolved "https://registry.yarnpkg.com/react-list/-/react-list-0.8.6.tgz#21c88eb332829a0b448c2502eb43064f11af38fe" + version "0.8.8" + resolved "https://registry.yarnpkg.com/react-list/-/react-list-0.8.8.tgz#de2cb768dd210fb3e4835b9277f158e9cd403078" dependencies: prop-types "15" react-paginate@^4.4.3: - version "4.4.3" - resolved "https://registry.yarnpkg.com/react-paginate/-/react-paginate-4.4.3.tgz#11817ece628fa59c54a2df7968c854ed64b99077" + version "4.4.4" + resolved "https://registry.yarnpkg.com/react-paginate/-/react-paginate-4.4.4.tgz#0126110e8b8438b08a2c97b59e8391d72ae0b0f3" dependencies: classnames "^2.2.5" prop-types "^15.5.7" - react "^15.0.0" react-addons-create-fragment "^15.0.0" react-pivottable@^0.3.1: @@ -7011,22 +9008,16 @@ react-pivottable@^0.3.1: react-sortablejs "^1.3.4" sortablejs "^1.6.1" -react-proxy@^3.0.0-alpha.0: - version "3.0.0-alpha.1" - resolved "https://registry.yarnpkg.com/react-proxy/-/react-proxy-3.0.0-alpha.1.tgz#4400426bcfa80caa6724c7755695315209fa4b07" - dependencies: - lodash "^4.6.1" - react-redux@^5.0.2: - version "5.0.6" - resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-5.0.6.tgz#23ed3a4f986359d68b5212eaaa681e60d6574946" + version "5.0.7" + resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-5.0.7.tgz#0dc1076d9afb4670f993ffaef44b8f8c1155a4c8" dependencies: - hoist-non-react-statics "^2.2.1" + hoist-non-react-statics "^2.5.0" invariant "^2.0.0" - lodash "^4.2.0" - lodash-es "^4.2.0" + lodash "^4.17.5" + lodash-es "^4.17.5" loose-envify "^1.1.0" - prop-types "^15.5.10" + prop-types "^15.6.0" react-resize-detector@0.3.3: version "0.3.3" @@ -7037,25 +9028,24 @@ react-router-redux@^4.0.8: resolved "https://registry.yarnpkg.com/react-router-redux/-/react-router-redux-4.0.8.tgz#227403596b5151e182377dab835b5d45f0f8054e" react-router@^3.0.2: - version "3.0.5" - resolved "https://registry.yarnpkg.com/react-router/-/react-router-3.0.5.tgz#c3b7873758045a8bbc9562aef4ff4bc8cce7c136" + version "3.2.1" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-3.2.1.tgz#b9a3279962bdfbe684c8bd0482b81ef288f0f244" dependencies: create-react-class "^15.5.1" history "^3.0.0" - hoist-non-react-statics "^1.2.0" + hoist-non-react-statics "^2.3.1" invariant "^2.2.1" loose-envify "^1.2.0" prop-types "^15.5.6" warning "^3.0.0" react-select-plus@^1.0.0-rc.5: - version "1.0.0-rc.5" - resolved "https://registry.yarnpkg.com/react-select-plus/-/react-select-plus-1.0.0-rc.5.tgz#00942063d824c57f9cf1fc98c47df2c6307dcff9" + version "1.2.0" + resolved "https://registry.yarnpkg.com/react-select-plus/-/react-select-plus-1.2.0.tgz#e09f6e12a2f1ca168be2a591bdd9602bd9b48f79" dependencies: classnames "^2.2.4" - create-react-class "^15.5.2" prop-types "^15.5.8" - react-input-autosize "^1.1.3" + react-input-autosize "^2.1.2" react-smooth@0.1.20: version "0.1.20" @@ -7087,8 +9077,8 @@ react-svg-loader@^1.1.1: yargs "~4.8.0" react-transition-group@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-1.2.0.tgz#b51fc921b0c3835a7ef7c571c79fc82c73e9204f" + version "1.2.1" + resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-1.2.1.tgz#e11f72b257f921b213229a774df46612346c7ca6" dependencies: chain-function "^1.0.0" dom-helpers "^3.2.0" @@ -7096,9 +9086,9 @@ react-transition-group@^1.2.0: prop-types "^15.5.6" warning "^3.0.0" -react@^15.0.0, react@^15.4.2: - version "15.6.1" - resolved "https://registry.yarnpkg.com/react/-/react-15.6.1.tgz#baa8434ec6780bde997cdc380b79cd33b96393df" +react@^15.4.2: + version "15.6.2" + resolved "https://registry.yarnpkg.com/react/-/react-15.6.2.tgz#dba0434ab439cfe82f108f0f511663908179aa72" dependencies: create-react-class "^15.6.0" fbjs "^0.8.9" @@ -7107,18 +9097,18 @@ react@^15.0.0, react@^15.4.2: prop-types "^15.5.10" reactabular-sticky@^8.9.0: - version "8.9.0" - resolved "https://registry.yarnpkg.com/reactabular-sticky/-/reactabular-sticky-8.9.0.tgz#72f796924c50bc73c5016beef2a894f8e81e6b63" + version "8.12.0" + resolved "https://registry.yarnpkg.com/reactabular-sticky/-/reactabular-sticky-8.12.0.tgz#764b62ea726f8e71dfb68018f4e3e9168061ea53" reactabular-table@^8.9.0: - version "8.9.0" - resolved "https://registry.yarnpkg.com/reactabular-table/-/reactabular-table-8.9.0.tgz#46f6cef639cd9bd4b2baf1f14e2686fb2b35e284" + version "8.12.1" + resolved "https://registry.yarnpkg.com/reactabular-table/-/reactabular-table-8.12.1.tgz#7155a725da95fe0a11dd00e53123fd77cdeb5b40" dependencies: classnames "^2.2.5" reactabular-virtualized@^8.10.1: - version "8.10.1" - resolved "https://registry.yarnpkg.com/reactabular-virtualized/-/reactabular-virtualized-8.10.1.tgz#949dc2360796f273c09f2224d2aef771ab0b8585" + version "8.12.1" + resolved "https://registry.yarnpkg.com/reactabular-virtualized/-/reactabular-virtualized-8.12.1.tgz#6af94c1ff970f38a35d1bad86be515b6153df10b" read-all-stream@^3.0.0: version "3.1.0" @@ -7131,6 +9121,46 @@ read-chunk@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/read-chunk/-/read-chunk-1.0.1.tgz#5f68cab307e663f19993527d9b589cace4661194" +read-cmd-shim@^1.0.1, read-cmd-shim@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-1.0.1.tgz#2d5d157786a37c055d22077c32c53f8329e91c7b" + dependencies: + graceful-fs "^4.1.2" + +read-installed@~4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/read-installed/-/read-installed-4.0.3.tgz#ff9b8b67f187d1e4c29b9feb31f6b223acd19067" + dependencies: + debuglog "^1.0.1" + read-package-json "^2.0.0" + readdir-scoped-modules "^1.0.0" + semver "2 || 3 || 4 || 5" + slide "~1.1.3" + util-extend "^1.0.1" + optionalDependencies: + graceful-fs "^4.1.2" + +"read-package-json@1 || 2", read-package-json@^2.0.0, read-package-json@^2.0.12, read-package-json@^2.0.13: + version "2.0.13" + resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-2.0.13.tgz#2e82ebd9f613baa6d2ebe3aa72cefe3f68e41f4a" + dependencies: + glob "^7.1.1" + json-parse-better-errors "^1.0.1" + normalize-package-data "^2.0.0" + slash "^1.0.0" + optionalDependencies: + graceful-fs "^4.1.2" + +read-package-tree@~5.1.6: + version "5.1.6" + resolved "https://registry.yarnpkg.com/read-package-tree/-/read-package-tree-5.1.6.tgz#4f03e83d0486856fb60d97c94882841c2a7b1b7a" + dependencies: + debuglog "^1.0.1" + dezalgo "^1.0.0" + once "^1.3.0" + read-package-json "^2.0.0" + readdir-scoped-modules "^1.0.0" + read-pkg-up@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" @@ -7161,6 +9191,24 @@ read-pkg@^2.0.0: normalize-package-data "^2.3.2" path-type "^2.0.0" +read@1, read@~1.0.1, read@~1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4" + dependencies: + mute-stream "~0.0.4" + +"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.2.9, readable-stream@^2.3.3, readable-stream@^2.3.5: + version "2.3.6" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" + dependencies: + 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" + readable-stream@1.0, "readable-stream@>=1.0.33-1 <1.1.0-0": version "1.0.34" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" @@ -7170,7 +9218,7 @@ readable-stream@1.0, "readable-stream@>=1.0.33-1 <1.1.0-0": isarray "0.0.1" string_decoder "~0.10.x" -readable-stream@1.1, readable-stream@~1.1.9: +readable-stream@1.1: version "1.1.13" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.13.tgz#f6eef764f514c89e2b9e23146a75ba106756d23e" dependencies: @@ -7179,28 +9227,23 @@ readable-stream@1.1, readable-stream@~1.1.9: isarray "0.0.1" string_decoder "~0.10.x" -readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.2.6, readable-stream@^2.2.9: - version "2.3.3" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c" - dependencies: - 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" - -readable-stream@~2.0.0: - version "2.0.6" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e" +readable-stream@~1.1.10, readable-stream@~1.1.9: + version "1.1.14" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" dependencies: core-util-is "~1.0.0" inherits "~2.0.1" - isarray "~1.0.0" - process-nextick-args "~1.0.6" + isarray "0.0.1" string_decoder "~0.10.x" - util-deprecate "~1.0.1" + +readdir-scoped-modules@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.0.2.tgz#9fafa37d286be5d92cbaebdee030dc9b5f406747" + dependencies: + debuglog "^1.0.1" + dezalgo "^1.0.0" + graceful-fs "^4.1.2" + once "^1.3.0" readdirp@^2.0.0: version "2.1.0" @@ -7220,14 +9263,14 @@ readline2@^1.0.1: mute-stream "0.0.5" recast@^0.12.6: - version "0.12.6" - resolved "https://registry.yarnpkg.com/recast/-/recast-0.12.6.tgz#4b0fb82feb1d10b3bd62d34943426d9b3ed30d4c" + version "0.12.9" + resolved "https://registry.yarnpkg.com/recast/-/recast-0.12.9.tgz#e8e52bdb9691af462ccbd7c15d5a5113647a15f1" dependencies: - ast-types "0.9.11" + ast-types "0.10.1" core-js "^2.4.1" esprima "~4.0.0" private "~0.1.5" - source-map "~0.5.0" + source-map "~0.6.1" recharts-scale@0.3.0: version "0.3.0" @@ -7262,7 +9305,7 @@ recompose@^0.26.0: hoist-non-react-statics "^2.3.1" symbol-observable "^1.0.4" -redbox-react@^1.3.6: +redbox-react@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/redbox-react/-/redbox-react-1.5.0.tgz#04dab11557d26651bf3562a67c22ace56c5d3967" dependencies: @@ -7303,16 +9346,16 @@ redux-logger@^3.0.1: deep-diff "^0.3.5" redux-persist@^4.5.0: - version "4.8.3" - resolved "https://registry.yarnpkg.com/redux-persist/-/redux-persist-4.8.3.tgz#fbad95e7582483635c91a3dd83da4789e7a09107" + version "4.10.2" + resolved "https://registry.yarnpkg.com/redux-persist/-/redux-persist-4.10.2.tgz#8efdb16cfe882c521a78a6d0bfdfef2437f49f96" dependencies: json-stringify-safe "^5.0.1" lodash "^4.17.4" lodash-es "^4.17.4" redux-promise-middleware@^4.2.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/redux-promise-middleware/-/redux-promise-middleware-4.3.0.tgz#38997574b6f150ab8ff1aa72ca5563fbc82c7cef" + version "4.4.2" + resolved "https://registry.yarnpkg.com/redux-promise-middleware/-/redux-promise-middleware-4.4.2.tgz#8defa5d1384299b99a6d2a7b4f4c21b96b3dda39" redux-saga@^0.15.4: version "0.15.6" @@ -7332,27 +9375,37 @@ redux@^3.6.0: symbol-observable "^1.0.3" regenerate@^1.2.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.2.tgz#d1941c67bad437e1be76433add5b385f95b19260" + version "1.3.3" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.3.tgz#0c336d3980553d755c39b586ae3b20aa49c82b7f" -regenerator-runtime@^0.10.0: +regenerator-runtime@^0.10.5: version "0.10.5" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" -regenerator-transform@0.9.11: - version "0.9.11" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.9.11.tgz#3a7d067520cb7b7176769eb5ff868691befe1283" +regenerator-runtime@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" + +regenerator-transform@^0.10.0: + version "0.10.1" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" dependencies: babel-runtime "^6.18.0" babel-types "^6.19.0" private "^0.1.6" regex-cache@^0.4.2: - version "0.4.3" - resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.3.tgz#9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145" + version "0.4.4" + resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" dependencies: is-equal-shallow "^0.1.3" - is-primitive "^2.0.0" + +regex-not@^1.0.0, regex-not@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" regexpu-core@^1.0.0: version "1.0.0" @@ -7370,6 +9423,19 @@ regexpu-core@^2.0.0: regjsgen "^0.2.0" regjsparser "^0.1.4" +registry-auth-token@^3.0.1: + version "3.3.2" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.3.2.tgz#851fd49038eecb586911115af845260eec983f20" + dependencies: + rc "^1.1.6" + safe-buffer "^5.0.1" + +registry-url@^3.0.3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" + dependencies: + rc "^1.0.1" + regjsgen@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" @@ -7385,8 +9451,8 @@ relateurl@0.2.x: resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" remove-trailing-separator@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.0.2.tgz#69b062d978727ad14dc6b56ba4ab772fd8d70511" + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" renderkid@^2.0.1: version "2.0.1" @@ -7402,7 +9468,7 @@ repeat-element@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" -repeat-string@^1.5.2: +repeat-string@^1.5.2, repeat-string@^1.6.1: version "1.6.1" resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" @@ -7420,13 +9486,40 @@ replace-ext@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" -request-progress@~2.0.1: +request-progress@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/request-progress/-/request-progress-2.0.1.tgz#5d36bb57961c673aa5b788dbc8141fdf23b44e08" dependencies: throttleit "^1.0.0" -request@^2.65.0, request@^2.72.0, request@^2.81.0: +request@2, request@^2.65.0, request@^2.74.0, request@^2.81.0: + version "2.85.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.85.0.tgz#5a03615a47c61420b3eb99b7dba204f83603e1fa" + dependencies: + aws-sign2 "~0.7.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.3.1" + har-validator "~5.0.3" + hawk "~6.0.2" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.17" + oauth-sign "~0.8.2" + performance-now "^2.1.0" + qs "~6.5.1" + safe-buffer "^5.1.1" + stringstream "~0.0.5" + tough-cookie "~2.3.3" + tunnel-agent "^0.6.0" + uuid "^3.1.0" + +request@2.81.0: version "2.81.0" resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" dependencies: @@ -7453,30 +9546,32 @@ request@^2.65.0, request@^2.72.0, request@^2.81.0: tunnel-agent "^0.6.0" uuid "^3.0.0" -request@~2.79.0: - version "2.79.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de" +request@~2.83.0: + version "2.83.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.83.0.tgz#ca0b65da02ed62935887808e6f510381034e3356" dependencies: - aws-sign2 "~0.6.0" - aws4 "^1.2.1" - caseless "~0.11.0" + aws-sign2 "~0.7.0" + aws4 "^1.6.0" + caseless "~0.12.0" combined-stream "~1.0.5" - extend "~3.0.0" + extend "~3.0.1" forever-agent "~0.6.1" - form-data "~2.1.1" - har-validator "~2.0.6" - hawk "~3.1.3" - http-signature "~1.1.0" + form-data "~2.3.1" + har-validator "~5.0.3" + hawk "~6.0.2" + http-signature "~1.2.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" - qs "~6.3.0" - stringstream "~0.0.4" - tough-cookie "~2.3.0" - tunnel-agent "~0.4.1" - uuid "^3.0.0" + mime-types "~2.1.17" + oauth-sign "~0.8.2" + performance-now "^2.1.0" + qs "~6.5.1" + safe-buffer "^5.1.1" + stringstream "~0.0.5" + tough-cookie "~2.3.3" + tunnel-agent "^0.6.0" + uuid "^3.1.0" require-directory@^2.1.1: version "2.1.1" @@ -7501,7 +9596,7 @@ require-uncached@^1.0.2: caller-path "^0.1.0" resolve-from "^1.0.0" -requires-port@1.0.x, requires-port@1.x.x: +requires-port@1.0.x, requires-port@1.x.x, requires-port@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" @@ -7520,13 +9615,31 @@ resize-img@^1.1.0: jpeg-js "^0.1.1" parse-png "^1.1.1" +resolve-cwd@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" + dependencies: + resolve-from "^3.0.0" + resolve-from@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" -resolve@^1.1.6, resolve@^1.2.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.4.0.tgz#a75be01c53da25d934a98ebd0e4c4a7312f92a86" +resolve-from@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + +resolve@^1.1.6, resolve@^1.2.0, resolve@^1.5.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.6.0.tgz#0fbd21278b27b4004481c395349e7aba60a9ff5c" dependencies: path-parse "^1.0.5" @@ -7537,15 +9650,23 @@ restore-cursor@^1.0.1: exit-hook "^1.0.0" onetime "^1.0.0" +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + +retry@^0.10.0, retry@~0.10.1: + version "0.10.1" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.10.1.tgz#e76388d217992c252750241d3d3956fed98d8ff4" + right-align@^0.1.1: version "0.1.3" resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" dependencies: align-text "^0.1.1" -rimraf@2, rimraf@^2.2.6, rimraf@^2.2.8, rimraf@^2.5.1, rimraf@^2.5.4, rimraf@^2.6.0, rimraf@^2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d" +rimraf@2, rimraf@^2.2.6, rimraf@^2.2.8, rimraf@^2.5.1, rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.0, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@~2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" dependencies: glob "^7.0.5" @@ -7590,15 +9711,31 @@ run-async@^0.1.0: dependencies: once "^1.3.0" +run-queue@^1.0.0, run-queue@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" + dependencies: + aproba "^1.1.1" + rx-lite@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102" -safe-buffer@5.1.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@~5.1.0, safe-buffer@~5.1.1: +safe-buffer@5.1.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" -sax@>=0.6.0, sax@~1.2.1: +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + dependencies: + ret "~0.1.10" + +safer-buffer@^2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + +sax@>=0.6.0, sax@~1.2.1, sax@~1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" @@ -7608,11 +9745,18 @@ schema-utils@^0.3.0: dependencies: ajv "^5.0.0" +schema-utils@^0.4.5: + version "0.4.5" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.5.tgz#21836f0608aac17b78f9e3e24daff14a5ca13a3e" + dependencies: + ajv "^6.1.0" + ajv-keywords "^3.1.0" + searchtabular@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/searchtabular/-/searchtabular-1.5.1.tgz#857cf52a5b043539cb130529b5354ac3d0755e80" + version "1.7.0" + resolved "https://registry.yarnpkg.com/searchtabular/-/searchtabular-1.7.0.tgz#64b8b7443ac0f6f30b201151fb2a9e6179d3f5c1" -seek-bzip@^1.0.3: +seek-bzip@^1.0.3, seek-bzip@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/seek-bzip/-/seek-bzip-1.0.5.tgz#cfe917cb3d274bcffac792758af53173eb1fabdc" dependencies: @@ -7623,18 +9767,20 @@ select-hose@^2.0.0: resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" selectabular@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/selectabular/-/selectabular-2.0.1.tgz#80064d24b0c633b55f6c8cb90b1b659407b5e731" + version "2.1.0" + resolved "https://registry.yarnpkg.com/selectabular/-/selectabular-2.1.0.tgz#765ba1eb75c77e0a7fcda790e3198ac6d3632972" + dependencies: + prop-types "^15.6.0" selfsigned@^1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.9.1.tgz#cdda4492d70d486570f87c65546023558e1dfa5a" + version "1.10.2" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.2.tgz#b4449580d99929b65b10a48389301a6592088758" dependencies: - node-forge "0.6.33" + node-forge "0.7.1" semantic-ui-css@^2.2.12: - version "2.2.12" - resolved "https://registry.yarnpkg.com/semantic-ui-css/-/semantic-ui-css-2.2.12.tgz#afc462e5bb4f8a0dcfe3dca11274499a997490dd" + version "2.3.1" + resolved "https://registry.yarnpkg.com/semantic-ui-css/-/semantic-ui-css-2.3.1.tgz#a5485c640c98cce29d8ddde3eff3434566a068e0" dependencies: jquery x.* @@ -7647,6 +9793,12 @@ semantic-ui-react@^0.75.1: lodash "^4.17.4" prop-types "^15.5.10" +semver-diff@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" + dependencies: + semver "^5.0.3" + semver-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-1.0.0.tgz#92a4969065f9c70c694753d55248fc68f8f652c9" @@ -7657,52 +9809,60 @@ semver-truncate@^1.0.0: dependencies: semver "^5.3.0" -"semver@2 || 3 || 4 || 5", semver@^5.3.0: - version "5.4.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" +"semver@2 >=2.2.1 || 3.x || 4 || 5", "semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", "semver@^2.3.0 || 3.x || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" semver@^4.0.3: version "4.3.6" resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da" -send@0.15.4: - version "0.15.4" - resolved "https://registry.yarnpkg.com/send/-/send-0.15.4.tgz#985faa3e284b0273c793364a35c6737bd93905b9" +semver@~5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" + +send@0.16.2: + version "0.16.2" + resolved "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz#6ecca1e0f8c156d141597559848df64730a6bbc1" dependencies: - debug "2.6.8" - depd "~1.1.1" + debug "2.6.9" + depd "~1.1.2" destroy "~1.0.4" - encodeurl "~1.0.1" + encodeurl "~1.0.2" escape-html "~1.0.3" - etag "~1.8.0" - fresh "0.5.0" + etag "~1.8.1" + fresh "0.5.2" http-errors "~1.6.2" - mime "1.3.4" + mime "1.4.1" ms "2.0.0" on-finished "~2.3.0" range-parser "~1.2.0" - statuses "~1.3.1" + statuses "~1.4.0" + +serialize-javascript@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.4.0.tgz#7c958514db6ac2443a8abc062dc9f7886a7f6005" serve-index@^1.7.2: - version "1.9.0" - resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.0.tgz#d2b280fc560d616ee81b48bf0fa82abed2485ce7" + version "1.9.1" + resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" dependencies: - accepts "~1.3.3" + accepts "~1.3.4" batch "0.6.1" - debug "2.6.8" + debug "2.6.9" escape-html "~1.0.3" - http-errors "~1.6.1" - mime-types "~2.1.15" - parseurl "~1.3.1" + http-errors "~1.6.2" + mime-types "~2.1.17" + parseurl "~1.3.2" -serve-static@1.12.4: - version "1.12.4" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.12.4.tgz#9b6aa98eeb7253c4eedc4c1f6fdbca609901a961" +serve-static@1.13.2: + version "1.13.2" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.2.tgz#095e8472fd5b46237db50ce486a43f4b86c6cec1" dependencies: - encodeurl "~1.0.1" + encodeurl "~1.0.2" escape-html "~1.0.3" - parseurl "~1.3.1" - send "0.15.4" + parseurl "~1.3.2" + send "0.16.2" set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" @@ -7712,6 +9872,24 @@ set-immediate-shim@^1.0.0, set-immediate-shim@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" +set-value@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1" + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.1" + to-object-path "^0.3.0" + +set-value@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274" + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + setimmediate@^1.0.4, setimmediate@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" @@ -7720,15 +9898,31 @@ setprototypeof@1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04" +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + sha.js@2.2.6: version "2.2.6" resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.2.6.tgz#17ddeddc5f722fb66501658895461977867315ba" sha.js@^2.4.0, sha.js@^2.4.8: - version "2.4.8" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.8.tgz#37068c2c476b6baf402d14a49c67f597921f634f" + version "2.4.11" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" dependencies: inherits "^2.0.1" + safe-buffer "^5.0.1" + +sha@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/sha/-/sha-2.0.1.tgz#6030822fbd2c9823949f8f72ed6411ee5cf25aae" + dependencies: + graceful-fs "^4.1.2" + readable-stream "^2.0.2" + +shallowequal@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.0.2.tgz#1561dbdefb8c01408100319085764da3fcf83f8f" shebang-command@^1.2.0: version "1.2.0" @@ -7748,7 +9942,7 @@ shelljs@^0.7.0, shelljs@^0.7.5: interpret "^1.0.0" rechoir "^0.6.2" -signal-exit@^3.0.0: +signal-exit@^3.0.0, signal-exit@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" @@ -7758,9 +9952,9 @@ simple-swizzle@^0.2.2: dependencies: is-arrayish "^0.3.1" -simplify-js@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/simplify-js/-/simplify-js-1.2.1.tgz#fa216b40454f48175450e0fea1bd1e6ab39fcbc0" +simpsons-rule@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/simpsons-rule/-/simpsons-rule-1.0.0.tgz#6ff2a9852bfbded5bea6939112c4ab9e9a8cd53d" skmeans@0.9.7: version "0.9.7" @@ -7774,12 +9968,53 @@ slice-ansi@0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" +slide@^1.1.3, slide@^1.1.6, slide@~1.1.3, slide@~1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" + +smart-buffer@^1.0.13: + version "1.1.15" + resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-1.1.15.tgz#7f114b5b65fab3e2a35aa775bb12f0d1c649bf16" + +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + dependencies: + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" + +snapdragon-util@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + dependencies: + kind-of "^3.2.0" + +snapdragon@^0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + dependencies: + 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" + sntp@1.x.x: version "1.0.9" resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" dependencies: hoek "2.x.x" +sntp@2.x.x: + version "2.1.0" + resolved "https://registry.yarnpkg.com/sntp/-/sntp-2.1.0.tgz#2c6cec14fedc2222739caf9b5c3d85d1cc5a2cc8" + dependencies: + hoek "4.x.x" + sockjs-client@1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.1.4.tgz#5babe386b775e4cf14e7520911452654016c8b12" @@ -7791,12 +10026,32 @@ sockjs-client@1.1.4: json3 "^3.3.2" url-parse "^1.1.8" -sockjs@0.3.18: - version "0.3.18" - resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.18.tgz#d9b289316ca7df77595ef299e075f0f937eb4207" +sockjs@0.3.19: + version "0.3.19" + resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.19.tgz#d976bbe800af7bd20ae08598d582393508993c0d" dependencies: faye-websocket "^0.10.0" - uuid "^2.0.2" + uuid "^3.0.1" + +socks-proxy-agent@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-3.0.1.tgz#2eae7cf8e2a82d34565761539a7f9718c5617659" + dependencies: + agent-base "^4.1.0" + socks "^1.1.10" + +socks@^1.1.10: + version "1.1.10" + resolved "https://registry.yarnpkg.com/socks/-/socks-1.1.10.tgz#5b8b7fc7c8f341c53ed056e929b7bf4de8ba7b5a" + dependencies: + ip "^1.1.4" + smart-buffer "^1.0.13" + +sort-keys-length@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/sort-keys-length/-/sort-keys-length-1.0.1.tgz#9cb6f4f4e9e48155a6aa0671edd336ff1479a188" + dependencies: + sort-keys "^1.0.0" sort-keys@^1.0.0: version "1.1.2" @@ -7809,50 +10064,77 @@ sortablejs@^1.6.1: resolved "https://registry.yarnpkg.com/sortablejs/-/sortablejs-1.7.0.tgz#80a2b2370abd568e1cec8c271131ef30a904fa28" sortabular@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/sortabular/-/sortabular-1.4.1.tgz#2e657a62b363a9c75421d39952356199fa3e064f" + version "1.5.1" + resolved "https://registry.yarnpkg.com/sortabular/-/sortabular-1.5.1.tgz#56316ee5755435d3d357bb81f5e2caa4a5ab95b0" -source-list-map@^0.1.7, source-list-map@~0.1.7: - version "0.1.8" - resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-0.1.8.tgz#c550b2ab5427f6b3f21f5afead88c4f5587b2106" +sorted-object@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/sorted-object/-/sorted-object-2.0.1.tgz#7d631f4bd3a798a24af1dffcfbfe83337a5df5fc" + +sorted-union-stream@~2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/sorted-union-stream/-/sorted-union-stream-2.1.3.tgz#c7794c7e077880052ff71a8d4a2dbb4a9a638ac7" + dependencies: + from2 "^1.3.0" + stream-iterate "^1.1.0" source-list-map@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.0.tgz#aaa47403f7b245a92fbc97ea08f250d6087ed085" +source-list-map@~0.1.7: + version "0.1.8" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-0.1.8.tgz#c550b2ab5427f6b3f21f5afead88c4f5587b2106" + source-map-loader@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/source-map-loader/-/source-map-loader-0.2.1.tgz#48126be9230bd47fad05e46a8c3c2e3d2dabe507" + version "0.2.3" + resolved "https://registry.yarnpkg.com/source-map-loader/-/source-map-loader-0.2.3.tgz#d4b0c8cd47d54edce3e6bfa0f523f452b5b0e521" dependencies: - async "^0.9.0" + async "^2.5.0" loader-utils "~0.2.2" - source-map "~0.1.33" + source-map "~0.6.1" -source-map-support@^0.4.2: - version "0.4.15" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.15.tgz#03202df65c06d2bd8c7ec2362a193056fef8d3b1" +source-map-resolve@^0.5.0: + version "0.5.1" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.1.tgz#7ad0f593f2281598e854df80f19aae4b92d7a11a" + dependencies: + atob "^2.0.0" + decode-uri-component "^0.2.0" + resolve-url "^0.2.1" + source-map-url "^0.4.0" + urix "^0.1.0" + +source-map-support@^0.4.15: + version "0.4.18" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" dependencies: source-map "^0.5.6" -source-map@0.5.6, source-map@0.5.x, source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.0, source-map@~0.5.1, source-map@~0.5.3: +source-map-url@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" + +source-map@0.5.6: version "0.5.6" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" -source-map@^0.4.4, source-map@~0.4.1: +source-map@0.5.x, source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.1, source-map@~0.5.3: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + +source-map@^0.6.1, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + +source-map@~0.4.1: version "0.4.4" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" dependencies: amdefine ">=0.0.4" -source-map@~0.1.33: - version "0.1.43" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346" - dependencies: - amdefine ">=0.0.4" - sourcemapped-stacktrace@^1.1.6: - version "1.1.7" - resolved "https://registry.yarnpkg.com/sourcemapped-stacktrace/-/sourcemapped-stacktrace-1.1.7.tgz#17e05374ff78b71a9d89ad3975a49f22725ba935" + version "1.1.8" + resolved "https://registry.yarnpkg.com/sourcemapped-stacktrace/-/sourcemapped-stacktrace-1.1.8.tgz#6b7a3f1a6fb15f6d40e701e23ce404553480d688" dependencies: source-map "0.5.6" @@ -7860,23 +10142,31 @@ sparkles@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/sparkles/-/sparkles-1.0.0.tgz#1acbbfb592436d10bbe8f785b7cc6f82815012c3" -spdx-correct@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40" +spdx-correct@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.0.0.tgz#05a5b4d7153a195bc92c3c425b69f3b2a9524c82" dependencies: - spdx-license-ids "^1.0.2" + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" -spdx-expression-parse@~1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c" +spdx-exceptions@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz#2c7ae61056c714a5b9b9b2b2af7d311ef5c78fe9" -spdx-license-ids@^1.0.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57" +spdx-expression-parse@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz#7a7cd28470cc6d3a1cfe6d66886f6bc430d3ac87" spdy-transport@^2.0.18: - version "2.0.20" - resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-2.0.20.tgz#735e72054c486b2354fe89e702256004a39ace4d" + version "2.1.0" + resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-2.1.0.tgz#4bbb15aaffed0beefdd56ad61dbdc8ba3e2cb7a1" dependencies: debug "^2.6.8" detect-node "^2.0.3" @@ -7897,6 +10187,12 @@ spdy@^3.4.1: select-hose "^2.0.0" spdy-transport "^2.0.18" +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + dependencies: + extend-shallow "^3.0.0" + sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" @@ -7910,8 +10206,8 @@ squeak@^1.0.0: lpad-align "^1.0.1" sshpk@^1.7.0: - version "1.13.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3" + version "1.14.1" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.14.1.tgz#130f5975eddad963f1d56f92b9ac6c51fa9f83eb" dependencies: asn1 "~0.2.3" assert-plus "^1.0.0" @@ -7923,6 +10219,16 @@ sshpk@^1.7.0: jsbn "~0.1.0" tweetnacl "~0.14.0" +ssri@^5.0.0, ssri@^5.2.4: + version "5.3.0" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-5.3.0.tgz#ba3872c9c6d33a0704a7d71ff045e5ec48999d06" + dependencies: + safe-buffer "^5.1.1" + +stable@~0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.6.tgz#910f5d2aed7b520c6e777499c1f32e139fdecb10" + stackframe@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-0.3.1.tgz#33aa84f1177a5548c8935533cbfeb3420975f5a4" @@ -7931,13 +10237,24 @@ stat-mode@^0.2.0: version "0.2.2" resolved "https://registry.yarnpkg.com/stat-mode/-/stat-mode-0.2.2.tgz#e6c80b623123d7d80cf132ce538f346289072502" +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + stats-webpack-plugin@^0.4.3: version "0.4.3" resolved "https://registry.yarnpkg.com/stats-webpack-plugin/-/stats-webpack-plugin-0.4.3.tgz#b2f618202f28dd04ab47d7ecf54ab846137b7aea" -"statuses@>= 1.3.1 < 2", statuses@~1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" +"statuses@>= 1.3.1 < 2", "statuses@>= 1.4.0 < 2": + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + +statuses@~1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087" stream-browserify@^2.0.1: version "2.0.1" @@ -7953,16 +10270,30 @@ stream-combiner2@^1.1.1: duplexer2 "~0.1.0" readable-stream "^2.0.2" -stream-http@^2.3.1: - version "2.7.2" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.7.2.tgz#40a050ec8dc3b53b33d9909415c02c0bf1abfbad" +stream-each@^1.1.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.2.tgz#8e8c463f91da8991778765873fe4d960d8f616bd" + dependencies: + end-of-stream "^1.1.0" + stream-shift "^1.0.0" + +stream-http@^2.3.1, stream-http@^2.7.2: + version "2.8.1" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.1.tgz#d0441be1a457a73a733a8a7b53570bebd9ef66a4" dependencies: builtin-status-codes "^3.0.0" inherits "^2.0.1" - readable-stream "^2.2.6" + readable-stream "^2.3.3" to-arraybuffer "^1.0.0" xtend "^4.0.0" +stream-iterate@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/stream-iterate/-/stream-iterate-1.2.0.tgz#2bd7c77296c1702a46488b8ad41f79865eecd4e1" + dependencies: + readable-stream "^2.1.5" + stream-shift "^1.0.0" + stream-shift@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" @@ -7989,7 +10320,7 @@ string-width@^1.0.1, string-width@^1.0.2: is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" -string-width@^2.0.0: +string-width@^2.0.0, string-width@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" dependencies: @@ -8000,13 +10331,13 @@ string_decoder@^0.10.25, string_decoder@~0.10.x: version "0.10.31" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" -string_decoder@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab" +string_decoder@^1.0.0, string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" dependencies: safe-buffer "~5.1.0" -stringstream@~0.0.4: +stringstream@~0.0.4, stringstream@~0.0.5: version "0.0.5" resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" @@ -8016,7 +10347,7 @@ strip-ansi@^3.0.0, strip-ansi@^3.0.1: dependencies: ansi-regex "^2.0.0" -strip-ansi@^4.0.0: +strip-ansi@^4.0.0, strip-ansi@~4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" dependencies: @@ -8050,6 +10381,12 @@ strip-dirs@^1.0.0: minimist "^1.1.0" sum-up "^1.0.1" +strip-dirs@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/strip-dirs/-/strip-dirs-2.1.0.tgz#4987736264fc344cf20f6c34aca9d13d1d4ed6c5" + dependencies: + is-natural-number "^4.0.1" + strip-eof@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" @@ -8065,8 +10402,8 @@ strip-json-comments@~2.0.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" strip-outer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-outer/-/strip-outer-1.0.0.tgz#aac0ba60d2e90c5d4f275fd8869fd9a2d310ffb8" + version "1.0.1" + resolved "https://registry.yarnpkg.com/strip-outer/-/strip-outer-1.0.1.tgz#b2fd2abf6604b9d1e6013057195df836b8a9d631" dependencies: escape-string-regexp "^1.0.2" @@ -8086,17 +10423,17 @@ supports-color@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" -supports-color@^3.1.0, supports-color@^3.1.1, supports-color@^3.2.3: +supports-color@^3.1.0, supports-color@^3.2.3: version "3.2.3" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" dependencies: has-flag "^1.0.0" -supports-color@^4.0.0, supports-color@^4.2.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.2.1.tgz#65a4bb2631e90e02420dba5554c375a4754bb836" +supports-color@^5.1.0, supports-color@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.3.0.tgz#5b24ac15db80fa927cf5227a4a33fd3c4c7676c0" dependencies: - has-flag "^2.0.0" + has-flag "^3.0.0" svg2png@~3.0.1: version "3.0.1" @@ -8118,6 +10455,25 @@ svgo@^0.7.0: sax "~1.2.1" whet.extend "~0.9.9" +svgo@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.0.5.tgz#7040364c062a0538abacff4401cea6a26a7a389a" + dependencies: + coa "~2.0.1" + colors "~1.1.2" + css-select "~1.3.0-rc0" + css-select-base-adapter "~0.1.0" + css-tree "1.0.0-alpha25" + css-url-regex "^1.1.0" + csso "^3.5.0" + js-yaml "~3.10.0" + mkdirp "~0.5.1" + object.values "^1.0.4" + sax "~1.2.4" + stable "~0.1.6" + unquote "~1.1.1" + util.promisify "~1.0.0" + svgo@~0.6.3: version "0.6.6" resolved "https://registry.yarnpkg.com/svgo/-/svgo-0.6.6.tgz#b340889036f20f9b447543077d0f5573ed044c08" @@ -8131,12 +10487,12 @@ svgo@~0.6.3: whet.extend "~0.9.9" symbol-observable@^1.0.3, symbol-observable@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.4.tgz#29bf615d4aa7121bdd898b22d4b3f9bc4e2aa03d" + version "1.2.0" + resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" table-resolver@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/table-resolver/-/table-resolver-3.1.1.tgz#304e5f6358c39dd7e4d272686e0573e5b872e415" + version "3.3.0" + resolved "https://registry.yarnpkg.com/table-resolver/-/table-resolver-3.3.0.tgz#22e575d3c6aed15404ab71a0f2046c4ff55e556e" table@^3.7.8: version "3.8.3" @@ -8158,8 +10514,8 @@ tapable@^0.2.7, tapable@~0.2.5: resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.8.tgz#99372a5c999bf2df160afc0d74bed4f47948cd22" tar-pack@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.0.tgz#23be2d7f671a8339376cbdb0b8fe3fdebf317984" + version "3.4.1" + resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.1.tgz#e1dbc03a9b9d3ba07e896ad027317eb679a10a1f" dependencies: debug "^2.2.0" fstream "^1.0.10" @@ -8170,16 +10526,16 @@ tar-pack@^3.4.0: tar "^2.2.1" uid-number "^0.0.6" -tar-stream@^1.1.1: - version "1.5.4" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.5.4.tgz#36549cf04ed1aee9b2a30c0143252238daf94016" +tar-stream@^1.1.1, tar-stream@^1.5.2: + version "1.5.5" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.5.5.tgz#5cad84779f45c83b1f2508d96b09d88c7218af55" dependencies: bl "^1.0.0" end-of-stream "^1.0.0" readable-stream "^2.0.0" xtend "^4.0.0" -tar@^2.2.1: +tar@^2.0.0, tar@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" dependencies: @@ -8187,6 +10543,18 @@ tar@^2.2.1: fstream "^1.0.2" inherits "2" +tar@^4.4.0: + version "4.4.1" + resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.1.tgz#b25d5a8470c976fd7a9a8a350f42c59e9fa81749" + dependencies: + chownr "^1.0.1" + fs-minipass "^1.2.5" + minipass "^2.2.4" + minizlib "^1.1.0" + mkdirp "^0.5.0" + safe-buffer "^5.1.1" + yallist "^3.0.2" + temp-dir@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d" @@ -8205,6 +10573,12 @@ tempfile@^2.0.0: temp-dir "^1.0.0" uuid "^3.0.1" +term-size@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" + dependencies: + execa "^0.7.0" + text-table@~0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" @@ -8234,13 +10608,13 @@ through2@^2.0.0, through2@~2.0.0: readable-stream "^2.1.5" xtend "~4.0.1" -through@^2.3.6: +"through@>=2.2.7 <3", through@^2.3.6: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" -thunky@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/thunky/-/thunky-0.1.0.tgz#bf30146824e2b6e67b0f2d7a4ac8beb26908684e" +thunky@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.0.2.tgz#a862e018e3fb1ea2ec3fce5d55605cf57f247371" time-stamp@^1.0.0: version "1.1.0" @@ -8254,17 +10628,14 @@ timed-out@^3.0.0: version "3.1.3" resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-3.1.3.tgz#95860bfcc5c76c277f8f8326fd0f5b2e20eba217" -timers-browserify@^1.4.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-1.4.2.tgz#c9c58b575be8407375cb5e2462dacee74359f41d" - dependencies: - process "~0.11.0" +timed-out@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" -timers-browserify@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.3.tgz#41fd0bdc926a5feedc33a17a8e1f7d491925f7fc" +timers-browserify@^2.0.2, timers-browserify@^2.0.4: + version "2.0.6" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.6.tgz#241e76927d9ca05f4d959819022f5b3664b64bae" dependencies: - global "^4.3.2" setimmediate "^1.0.4" tinycolor2@^1.1.2: @@ -8285,13 +10656,13 @@ to-arraybuffer@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" -to-fast-properties@^1.0.1: +to-fast-properties@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" to-ico@^1.1.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/to-ico/-/to-ico-1.1.4.tgz#b4c7b4afd2aa9fe65356c38c4bcb62e077de1ca7" + version "1.1.5" + resolved "https://registry.yarnpkg.com/to-ico/-/to-ico-1.1.5.tgz#1d32da5f2c90922edee6b686d610c54527b5a8d5" dependencies: arrify "^1.0.1" buffer-alloc "^1.1.0" @@ -8299,6 +10670,28 @@ to-ico@^1.1.2: parse-png "^1.0.0" resize-img "^1.1.0" +to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + dependencies: + kind-of "^3.0.2" + +to-regex-range@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + +to-regex@^3.0.1, to-regex@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + topojson-client@3.x: version "3.0.0" resolved "https://registry.yarnpkg.com/topojson-client/-/topojson-client-3.0.0.tgz#1f99293a77ef42a448d032a81aa982b73f360d2f" @@ -8312,12 +10705,12 @@ topojson-server@3.x: commander "2" toposort@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/toposort/-/toposort-1.0.3.tgz#f02cd8a74bd8be2fc0e98611c3bacb95a171869c" + version "1.0.6" + resolved "https://registry.yarnpkg.com/toposort/-/toposort-1.0.6.tgz#c31748e55d210effc00fdcdc7d6e68d7d7bb9cec" -tough-cookie@~2.3.0: - version "2.3.2" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a" +tough-cookie@~2.3.0, tough-cookie@~2.3.3: + version "2.3.4" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.4.tgz#ec60cee38ac675063ffc97a5c18970578ee83655" dependencies: punycode "^1.4.1" @@ -8339,15 +10732,11 @@ trim@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/trim/-/trim-0.0.1.tgz#5858547f6b290757ee95cccc666fb50084c460dd" -tryit@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb" - tty-browserify@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" -tunnel-agent@^0.4.0, tunnel-agent@~0.4.1: +tunnel-agent@^0.4.0: version "0.4.3" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb" @@ -8358,8 +10747,8 @@ tunnel-agent@^0.6.0: safe-buffer "^5.0.1" turf-jsts@*: - version "1.1.0" - resolved "https://registry.yarnpkg.com/turf-jsts/-/turf-jsts-1.1.0.tgz#bb6a5377481c8d3c2bca60abc7710a40728aa7c6" + version "1.2.3" + resolved "https://registry.yarnpkg.com/turf-jsts/-/turf-jsts-1.2.3.tgz#59757f542afbff9a577bbf411f183b8f48d38aa4" tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" @@ -8379,27 +10768,34 @@ type-check@~0.3.2: dependencies: prelude-ls "~1.1.2" -type-is@~1.6.15: - version "1.6.15" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.15.tgz#cab10fb4909e441c82842eafe1ad646c81804410" +type-is@~1.6.15, type-is@~1.6.16: + version "1.6.16" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194" dependencies: media-typer "0.3.0" - mime-types "~2.1.15" + mime-types "~2.1.18" -typedarray@^0.0.6, typedarray@~0.0.5: +typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" ua-parser-js@^0.7.9: - version "0.7.14" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.14.tgz#110d53fa4c3f326c121292bbeac904d2e03387ca" + version "0.7.17" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.17.tgz#e9ec5f9498b9ec910e7ae3ac626a805c4d09ecac" -uglify-js@3.0.x: - version "3.0.27" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.0.27.tgz#a97db8c8ba6b9dba4e2f88d86aa9548fa6320034" +uglify-es@^3.3.4: + version "3.3.9" + resolved "https://registry.yarnpkg.com/uglify-es/-/uglify-es-3.3.9.tgz#0c1c4f0700bed8dbc124cdb304d2592ca203e677" dependencies: - commander "~2.11.0" - source-map "~0.5.1" + commander "~2.13.0" + source-map "~0.6.1" + +uglify-js@3.3.x: + version "3.3.18" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.3.18.tgz#e16df66d71638df3c9bc61cce827e46f24bdac02" + dependencies: + commander "~2.15.0" + source-map "~0.6.1" uglify-js@^2.8.27: version "2.8.29" @@ -8423,10 +10819,34 @@ uglify-to-browserify@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" -uid-number@^0.0.6: +uglifyjs-webpack-plugin@^1.2.3: + version "1.2.4" + resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.2.4.tgz#5eec941b2e9b8538be0a20fc6eda25b14c7c1043" + dependencies: + 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" + +uid-number@0.0.6, uid-number@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" +umask@^1.1.0, umask@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/umask/-/umask-1.1.0.tgz#f29cebf01df517912bb58ff9c4e50fde8e33320d" + +unbzip2-stream@^1.0.9: + version "1.2.5" + resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.2.5.tgz#73a033a567bbbde59654b193c44d48a7e4f43c47" + dependencies: + buffer "^3.0.1" + through "^2.3.6" + unc-path-regex@^0.1.0: version "0.1.2" resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" @@ -8435,6 +10855,15 @@ underscore@^1.8.3: version "1.8.3" resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.8.3.tgz#4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022" +union-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4" + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^0.4.3" + uniq@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" @@ -8449,6 +10878,18 @@ uniqs@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" +unique-filename@^1.1.0, unique-filename@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.0.tgz#d05f2fe4032560871f30e93cbe735eea201514f3" + dependencies: + unique-slug "^2.0.0" + +unique-slug@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.0.tgz#db6676e7c7cc0629878ff196097c78855ae9f4ab" + dependencies: + imurmurhash "^0.1.4" + unique-stream@^2.0.2: version "2.2.1" resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-2.2.1.tgz#5aa003cfbe94c5ff866c4e7d668bb1c4dbadb369" @@ -8456,18 +10897,82 @@ unique-stream@^2.0.2: json-stable-stringify "^1.0.0" through2-filter "^2.0.0" -unpipe@~1.0.0: +unique-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" + dependencies: + crypto-random-string "^1.0.0" + +unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" +unquote@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" + +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + unzip-response@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-1.0.2.tgz#b984f0877fc0a89c2c773cc1ef7b5b232b5b06fe" +unzip-response@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" + +upath@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.0.4.tgz#ee2321ba0a786c50973db043a50b7bcba822361d" + +update-notifier@^2.3.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.4.0.tgz#f9b4c700fbfd4ec12c811587258777d563d8c866" + dependencies: + boxen "^1.2.1" + chalk "^2.0.1" + configstore "^3.0.0" + import-lazy "^2.1.0" + is-ci "^1.0.10" + is-installed-globally "^0.1.0" + is-npm "^1.0.0" + latest-version "^3.0.0" + semver-diff "^2.0.0" + xdg-basedir "^3.0.0" + +update-notifier@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.3.0.tgz#4e8827a6bb915140ab093559d7014e3ebb837451" + dependencies: + boxen "^1.2.1" + chalk "^2.0.1" + configstore "^3.0.0" + import-lazy "^2.1.0" + is-installed-globally "^0.1.0" + is-npm "^1.0.0" + latest-version "^3.0.0" + semver-diff "^2.0.0" + xdg-basedir "^3.0.0" + upper-case@^1.1.1: version "1.1.3" resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" +uri-js@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-3.0.2.tgz#f90b858507f81dea4dcfbb3c4c3dbfa2b557faaa" + dependencies: + punycode "^2.1.0" + +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + url-loader@^0.5.7: version "0.5.9" resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-0.5.9.tgz#cc8fea82c7b906e7777019250869e569e995c295" @@ -8489,11 +10994,11 @@ url-parse@1.0.x: requires-port "1.0.x" url-parse@^1.1.8: - version "1.1.9" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.1.9.tgz#c67f1d775d51f0a18911dd7b3ffad27bb9e5bd19" + version "1.2.0" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.2.0.tgz#3a19e8aaa6d023ddd27dcc44cb4fc8f7fec23986" dependencies: querystringify "~1.0.0" - requires-port "1.0.x" + requires-port "~1.0.0" url-regex@^3.0.0: version "3.2.0" @@ -8501,6 +11006,10 @@ url-regex@^3.0.0: dependencies: ip-regex "^1.0.1" +url-to-options@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/url-to-options/-/url-to-options-1.0.1.tgz#1505a03a289a48cbd7a434efbaeec5055f5633a9" + url@^0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" @@ -8508,6 +11017,12 @@ url@^0.11.0: punycode "1.3.2" querystring "0.2.0" +use@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/use/-/use-3.1.0.tgz#14716bf03fdfefd03040aef58d8b4b85f3a7c544" + dependencies: + kind-of "^6.0.2" + user-home@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" @@ -8522,6 +11037,17 @@ util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" +util-extend@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/util-extend/-/util-extend-1.0.3.tgz#a7c216d267545169637b3b6edc6ca9119e2ff93f" + +util.promisify@^1.0.0, util.promisify@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" + dependencies: + define-properties "^1.1.2" + object.getownpropertydescriptors "^2.0.3" + util@0.10.3, util@^0.10.3: version "0.10.3" resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" @@ -8536,19 +11062,19 @@ utila@~0.4: version "0.4.0" resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" -utils-merge@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.0.tgz#0294fb922bb9375153541c4f7096231f287c8af8" +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" -uuid@^2.0.1, uuid@^2.0.2: +uuid@^2.0.1: version "2.0.3" resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" -uuid@^3.0.0, uuid@^3.0.1, uuid@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04" +uuid@^3.0.0, uuid@^3.0.1, uuid@^3.1.0, uuid@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14" -v8flags@^2.0.10: +v8flags@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4" dependencies: @@ -8559,15 +11085,21 @@ vali-date@^1.0.0: resolved "https://registry.yarnpkg.com/vali-date/-/vali-date-1.0.0.tgz#1b904a59609fb328ef078138420934f6b86709a6" validate-npm-package-license@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc" + version "3.0.3" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz#81643bcbef1bdfecd4623793dc4648948ba98338" dependencies: - spdx-correct "~1.0.0" - spdx-expression-parse "~1.0.0" + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" -vary@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.1.tgz#67535ebb694c1d52257457984665323f587e8d37" +validate-npm-package-name@^3.0.0, validate-npm-package-name@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e" + dependencies: + builtins "^1.0.3" + +vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" vendors@^1.0.0: version "1.0.1" @@ -8660,19 +11192,25 @@ watchpack@^0.2.1: graceful-fs "^4.1.2" watchpack@^1.3.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.4.0.tgz#4a1472bcbb952bd0a9bb4036801f954dfb39faac" + version "1.5.0" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.5.0.tgz#231e783af830a22f8966f65c4c4bacc814072eed" dependencies: - async "^2.1.2" - chokidar "^1.7.0" + chokidar "^2.0.2" graceful-fs "^4.1.2" + neo-async "^2.5.0" wbuf@^1.1.0, wbuf@^1.7.2: - version "1.7.2" - resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.2.tgz#d697b99f1f59512df2751be42769c1580b5801fe" + version "1.7.3" + resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" dependencies: minimalistic-assert "^1.0.0" +wcwidth@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + dependencies: + defaults "^1.0.3" + webpack-core@~0.6.9: version "0.6.9" resolved "https://registry.yarnpkg.com/webpack-core/-/webpack-core-0.6.9.tgz#fc571588c8558da77be9efb6debdc5a3b172bdc2" @@ -8680,57 +11218,61 @@ webpack-core@~0.6.9: source-list-map "~0.1.7" source-map "~0.4.1" -webpack-dev-middleware@^1.11.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-1.12.0.tgz#d34efefb2edda7e1d3b5dbe07289513219651709" +webpack-dev-middleware@1.12.2: + version "1.12.2" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-1.12.2.tgz#f8fc1120ce3b4fc5680ceecb43d777966b21105e" dependencies: memory-fs "~0.4.1" - mime "^1.3.4" + mime "^1.5.0" path-is-absolute "^1.0.0" range-parser "^1.0.3" time-stamp "^2.0.0" webpack-dev-server@^2.5.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-2.7.1.tgz#21580f5a08cd065c71144cf6f61c345bca59a8b8" + version "2.11.2" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-2.11.2.tgz#1f4f4c78bf1895378f376815910812daf79a216f" dependencies: ansi-html "0.0.7" + array-includes "^3.0.3" bonjour "^3.5.0" - chokidar "^1.6.0" + chokidar "^2.0.0" compression "^1.5.2" connect-history-api-fallback "^1.3.0" + debug "^3.1.0" del "^3.0.0" - express "^4.13.3" + express "^4.16.2" html-entities "^1.2.0" http-proxy-middleware "~0.17.4" - internal-ip "^1.2.0" + import-local "^1.0.0" + internal-ip "1.2.0" ip "^1.1.5" + killable "^1.0.0" loglevel "^1.4.1" - opn "4.0.2" + opn "^5.1.0" portfinder "^1.0.9" selfsigned "^1.9.1" serve-index "^1.7.2" - sockjs "0.3.18" + sockjs "0.3.19" sockjs-client "1.1.4" spdy "^3.4.1" strip-ansi "^3.0.0" - supports-color "^3.1.1" - webpack-dev-middleware "^1.11.0" - yargs "^6.0.0" + supports-color "^5.1.0" + webpack-dev-middleware "1.12.2" + yargs "6.6.0" -webpack-sources@^0.1.0, webpack-sources@^0.1.3: +webpack-sources@^0.1.0: version "0.1.5" resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-0.1.5.tgz#aa1f3abf0f0d74db7111c40e500b84f966640750" dependencies: source-list-map "~0.1.7" source-map "~0.5.3" -webpack-sources@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.0.1.tgz#c7356436a4d13123be2e2426a05d1dad9cbe65cf" +webpack-sources@^1.0.1, webpack-sources@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.1.0.tgz#a101ebae59d6507354d71d8013950a3a8b7a5a54" dependencies: source-list-map "^2.0.0" - source-map "~0.5.3" + source-map "~0.6.1" webpack@^1.13.0: version "1.15.0" @@ -8779,18 +11321,19 @@ webpack@^2.2.1: yargs "^6.0.0" websocket-driver@>=0.5.1: - version "0.6.5" - resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.6.5.tgz#5cb2556ceb85f4373c6d8238aa691c8454e13a36" + version "0.7.0" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.0.tgz#0caf9d2d755d93aee049d4bdd0d3fe2cca2a24eb" dependencies: + http-parser-js ">=0.4.0" websocket-extensions ">=0.1.1" websocket-extensions@>=0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.1.tgz#76899499c184b6ef754377c2dbb0cd6cb55d29e7" + version "0.1.3" + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29" whatwg-fetch@>=0.10.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84" + version "2.0.4" + resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz#dde6a5df315f9d39991aa17621853d720b85566f" whet.extend@~0.9.9: version "0.9.9" @@ -8800,9 +11343,13 @@ which-module@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" -which@^1.2.9, which@~1.2.10: - version "1.2.14" - resolved "https://registry.yarnpkg.com/which/-/which-1.2.14.tgz#9a87c4378f03e827cecaf1acdf56c736c01c14e5" +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + +which@1, which@^1.2.10, which@^1.2.9, which@^1.3.0, which@~1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a" dependencies: isexe "^2.0.0" @@ -8812,6 +11359,12 @@ wide-align@^1.1.0: dependencies: string-width "^1.0.2" +widest-line@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.0.tgz#0142a4e8a243f8882c0233aa0e0281aa76152273" + dependencies: + string-width "^2.1.1" + window-size@0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" @@ -8836,6 +11389,12 @@ wordwrap@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" +worker-farm@^1.5.2, worker-farm@^1.5.4: + version "1.6.0" + resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.6.0.tgz#aecc405976fab5a95526180846f0dba288f3a4a0" + dependencies: + errno "~0.1.7" + wrap-ansi@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" @@ -8849,45 +11408,51 @@ wrap-fn@^0.1.0: dependencies: co "3.1.0" -wrappy@1: +wrappy@1, wrappy@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" +write-file-atomic@^2.0.0, write-file-atomic@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.3.0.tgz#1ff61575c2e2a4e8e510d6fa4e243cce183999ab" + dependencies: + graceful-fs "^4.1.11" + imurmurhash "^0.1.4" + signal-exit "^3.0.2" + write@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" dependencies: mkdirp "^0.5.1" +xdg-basedir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" + xhr@^2.0.1: - version "2.4.0" - resolved "https://registry.yarnpkg.com/xhr/-/xhr-2.4.0.tgz#e16e66a45f869861eeefab416d5eff722dc40993" + version "2.4.1" + resolved "https://registry.yarnpkg.com/xhr/-/xhr-2.4.1.tgz#ba982cced205ae5eec387169ac9dc77ca4853d38" dependencies: global "~4.3.0" is-function "^1.0.1" parse-headers "^2.0.0" xtend "^4.0.0" -xml-char-classes@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/xml-char-classes/-/xml-char-classes-1.0.0.tgz#64657848a20ffc5df583a42ad8a277b4512bbc4d" - xml-parse-from-string@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz#a9029e929d3dbcded169f3c6e28238d95a5d5a28" xml2js@>=0.2.4, xml2js@^0.4.5: - version "0.4.17" - resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.17.tgz#17be93eaae3f3b779359c795b419705a8817e868" + version "0.4.19" + resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.19.tgz#686c20f213209e94abf0d1bcf1efaa291c7827a7" dependencies: sax ">=0.6.0" - xmlbuilder "^4.1.0" + xmlbuilder "~9.0.1" -xmlbuilder@^4.1.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-4.2.1.tgz#aa58a3041a066f90eaa16c2f5389ff19f3f461a5" - dependencies: - lodash "^4.0.0" +xmlbuilder@~9.0.1: + version "9.0.7" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d" "xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@~4.0.0, xtend@~4.0.1: version "4.0.1" @@ -8897,10 +11462,18 @@ y18n@^3.2.0, y18n@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" +y18n@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" + yallist@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" +yallist@^3.0.0, yallist@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.2.tgz#8452b4bb7e83c7c188d8041c1a837c773d6d8bb9" + yargs-parser@^2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-2.4.1.tgz#85568de3cf150ff49fa51825f03a8c880ddcc5c4" @@ -8914,6 +11487,47 @@ yargs-parser@^4.2.0: dependencies: camelcase "^3.0.0" +yargs-parser@^9.0.2: + version "9.0.2" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-9.0.2.tgz#9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077" + dependencies: + camelcase "^4.1.0" + +yargs@6.6.0, yargs@^6.0.0: + version "6.6.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-6.6.0.tgz#782ec21ef403345f830a808ca3d513af56065208" + dependencies: + 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@^11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-11.0.0.tgz#c052931006c5eee74610e5fc0354bedfd08a201b" + dependencies: + cliui "^4.0.0" + decamelize "^1.1.1" + find-up "^2.1.0" + get-caller-file "^1.0.1" + os-locale "^2.0.0" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^2.0.0" + which-module "^2.0.0" + y18n "^3.2.1" + yargs-parser "^9.0.2" + yargs@^3.31.0: version "3.32.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.32.0.tgz#03088e9ebf9e756b69751611d2a5ef591482c995" @@ -8945,24 +11559,6 @@ yargs@^4.7.1, yargs@~4.8.0: y18n "^3.2.1" yargs-parser "^2.4.1" -yargs@^6.0.0: - version "6.6.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-6.6.0.tgz#782ec21ef403345f830a808ca3d513af56065208" - dependencies: - 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@~3.10.0: version "3.10.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" @@ -8972,8 +11568,15 @@ yargs@~3.10.0: decamelize "^1.0.0" window-size "0.1.0" -yauzl@2.4.1, yauzl@^2.2.1: +yauzl@2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.4.1.tgz#9528f442dab1b2284e58b4379bb194e22e0c4005" dependencies: fd-slicer "~1.0.1" + +yauzl@^2.2.1, yauzl@^2.4.2: + version "2.9.1" + resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.9.1.tgz#a81981ea70a57946133883f029c5821a89359a7f" + dependencies: + buffer-crc32 "~0.2.3" + fd-slicer "~1.0.1"