You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@druid.apache.org by jo...@apache.org on 2019/02/26 04:55:10 UTC
[incubator-druid] branch master updated: Downgrade blueprintjs
version in the web console to one with a vanilla Apache 2.0 license (#7139)
This is an automated email from the ASF dual-hosted git repository.
jonwei pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-druid.git
The following commit(s) were added to refs/heads/master by this push:
new b8f7620 Downgrade blueprintjs version in the web console to one with a vanilla Apache 2.0 license (#7139)
b8f7620 is described below
commit b8f762037ad98e3649269177fa2229ed839ae03b
Author: Vadim Ogievetsky <va...@gmail.com>
AuthorDate: Mon Feb 25 20:54:56 2019 -0800
Downgrade blueprintjs version in the web console to one with a vanilla Apache 2.0 license (#7139)
* revert bp
* fix tests
* move @types/hjson to dev dep
* removed all the package upgrades
---
.../druid/cli/RouterJettyServerInitializer.java | 1 +
web-console/.gitignore | 1 +
web-console/package-lock.json | 1422 ++++++++++----------
web-console/package.json | 14 +-
web-console/script/build | 4 +
web-console/script/clean | 3 +-
web-console/script/cp-to | 1 +
web-console/src/components/auto-form.tsx | 30 +-
.../spec-dialog.scss => components/filler.scss} | 10 +-
web-console/src/components/filler.tsx | 259 ++++
web-console/src/components/header-bar.scss | 12 +-
web-console/src/components/header-bar.tsx | 55 +-
web-console/src/components/rule-editor.tsx | 79 +-
web-console/src/components/sql-control.tsx | 52 +-
web-console/src/console-application.scss | 21 +-
web-console/src/console-application.tsx | 8 +-
web-console/src/dialogs/about-dialog.tsx | 13 +-
web-console/src/dialogs/async-action-dialog.tsx | 20 +-
.../src/dialogs/coordinator-dynamic-config.tsx | 18 +-
web-console/src/dialogs/retention-dialog.test.ts | 3 +
web-console/src/dialogs/retention-dialog.tsx | 10 +-
web-console/src/dialogs/snitch-dialog.tsx | 44 +-
web-console/src/dialogs/spec-dialog.scss | 7 +-
web-console/src/dialogs/spec-dialog.tsx | 35 +-
web-console/src/entry.scss | 8 +-
web-console/src/entry.ts | 3 +-
.../src/singletons/react-table-defaults.tsx | 2 +-
web-console/src/utils/general.tsx | 8 +-
web-console/src/views/datasource-view.scss | 2 +-
web-console/src/views/datasource-view.tsx | 8 +-
web-console/src/views/home-view.scss | 2 +-
web-console/src/views/home-view.tsx | 9 +-
web-console/src/views/segments-view.scss | 2 +-
web-console/src/views/segments-view.tsx | 8 +-
web-console/src/views/servers-view.scss | 1 +
web-console/src/views/servers-view.tsx | 10 +-
web-console/src/views/tasks-view.tsx | 35 +-
web-console/tsconfig.json | 4 +-
web-console/unified-console.html | 2 +-
39 files changed, 1243 insertions(+), 983 deletions(-)
diff --git a/services/src/main/java/org/apache/druid/cli/RouterJettyServerInitializer.java b/services/src/main/java/org/apache/druid/cli/RouterJettyServerInitializer.java
index 57b6cbb..d76fe83 100644
--- a/services/src/main/java/org/apache/druid/cli/RouterJettyServerInitializer.java
+++ b/services/src/main/java/org/apache/druid/cli/RouterJettyServerInitializer.java
@@ -66,6 +66,7 @@ public class RouterJettyServerInitializer implements JettyServerInitializer
"/",
"/coordinator-console/*",
"/public/*",
+ "/assets/*",
"/old-console/*",
"/pages/*",
"/unified-console.html",
diff --git a/web-console/.gitignore b/web-console/.gitignore
index 540af4c..1e0bebd 100644
--- a/web-console/.gitignore
+++ b/web-console/.gitignore
@@ -2,6 +2,7 @@ node/
node_modules/
resources/
public/
+assets/
lib/*.css
coordinator-console/
diff --git a/web-console/package-lock.json b/web-console/package-lock.json
index ad3f8f7..d0abc17 100644
--- a/web-console/package-lock.json
+++ b/web-console/package-lock.json
@@ -14,22 +14,22 @@
}
},
"@babel/core": {
- "version": "7.2.2",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.2.2.tgz",
- "integrity": "sha512-59vB0RWt09cAct5EIe58+NzGP4TFSD3Bz//2/ELy3ZeTeKF6VTD1AXlH8BGGbCX0PuobZBsIzO7IAI9PH67eKw==",
+ "version": "7.3.4",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.3.4.tgz",
+ "integrity": "sha512-jRsuseXBo9pN197KnDwhhaaBzyZr2oIcLHHTt2oDdQrej5Qp57dCCJafWx5ivU8/alEYDpssYqv1MUqcxwQlrA==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.0.0",
- "@babel/generator": "^7.2.2",
+ "@babel/generator": "^7.3.4",
"@babel/helpers": "^7.2.0",
- "@babel/parser": "^7.2.2",
+ "@babel/parser": "^7.3.4",
"@babel/template": "^7.2.2",
- "@babel/traverse": "^7.2.2",
- "@babel/types": "^7.2.2",
+ "@babel/traverse": "^7.3.4",
+ "@babel/types": "^7.3.4",
"convert-source-map": "^1.1.0",
"debug": "^4.1.0",
"json5": "^2.1.0",
- "lodash": "^4.17.10",
+ "lodash": "^4.17.11",
"resolve": "^1.3.2",
"semver": "^5.4.1",
"source-map": "^0.5.0"
@@ -53,12 +53,6 @@
"minimist": "^1.2.0"
}
},
- "ms": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
- "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
- "dev": true
- },
"source-map": {
"version": "0.5.7",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
@@ -68,14 +62,14 @@
}
},
"@babel/generator": {
- "version": "7.3.0",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.3.0.tgz",
- "integrity": "sha512-dZTwMvTgWfhmibq4V9X+LMf6Bgl7zAodRn9PvcPdhlzFMbvUutx74dbEv7Atz3ToeEpevYEJtAwfxq/bDCzHWg==",
+ "version": "7.3.4",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.3.4.tgz",
+ "integrity": "sha512-8EXhHRFqlVVWXPezBW5keTiQi/rJMQTg/Y9uVCEZ0CAF3PKtCCaVRnp64Ii1ujhkoDhhF1fVsImoN4yJ2uz4Wg==",
"dev": true,
"requires": {
- "@babel/types": "^7.3.0",
+ "@babel/types": "^7.3.4",
"jsesc": "^2.5.1",
- "lodash": "^4.17.10",
+ "lodash": "^4.17.11",
"source-map": "^0.5.0",
"trim-right": "^1.0.1"
},
@@ -152,9 +146,9 @@
}
},
"@babel/parser": {
- "version": "7.3.1",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.3.1.tgz",
- "integrity": "sha512-ATz6yX/L8LEnC3dtLQnIx4ydcPxhLcoy9Vl6re00zb2w5lG6itY6Vhnr1KFRPq/FHNsgl/gh2mjNN20f9iJTTA==",
+ "version": "7.3.4",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.3.4.tgz",
+ "integrity": "sha512-tXZCqWtlOOP4wgCp6RjRvLmfuhnqTLy9VHwRochJBCP2nDm27JnnuFEnXFASVyQNHk36jD1tAammsCEEqgscIQ==",
"dev": true
},
"@babel/plugin-syntax-object-rest-spread": {
@@ -167,9 +161,9 @@
}
},
"@babel/runtime": {
- "version": "7.3.1",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.3.1.tgz",
- "integrity": "sha512-7jGW8ppV0ant637pIqAcFfQDDH1orEPGJb8aXfUozuCU3QqX7rX4DA8iwrbPrR1hcH0FTTHz47yQnk+bl5xHQA==",
+ "version": "7.3.4",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.3.4.tgz",
+ "integrity": "sha512-IvfvnMdSaLBateu0jfsYIpZTxAc2cKEXEMiezGGN75QcBcecDUKd3PgLAncT0oOgxKy8dd8hrJKj9MfzgfZd6g==",
"requires": {
"regenerator-runtime": "^0.12.0"
}
@@ -186,20 +180,20 @@
}
},
"@babel/traverse": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.2.3.tgz",
- "integrity": "sha512-Z31oUD/fJvEWVR0lNZtfgvVt512ForCTNKYcJBGbPb1QZfve4WGH8Wsy7+Mev33/45fhP/hwQtvgusNdcCMgSw==",
+ "version": "7.3.4",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.3.4.tgz",
+ "integrity": "sha512-TvTHKp6471OYEcE/91uWmhR6PrrYywQntCHSaZ8CM8Vmp+pjAusal4nGB2WCCQd0rvI7nOMKn9GnbcvTUz3/ZQ==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.0.0",
- "@babel/generator": "^7.2.2",
+ "@babel/generator": "^7.3.4",
"@babel/helper-function-name": "^7.1.0",
"@babel/helper-split-export-declaration": "^7.0.0",
- "@babel/parser": "^7.2.3",
- "@babel/types": "^7.2.2",
+ "@babel/parser": "^7.3.4",
+ "@babel/types": "^7.3.4",
"debug": "^4.1.0",
"globals": "^11.1.0",
- "lodash": "^4.17.10"
+ "lodash": "^4.17.11"
},
"dependencies": {
"debug": {
@@ -210,50 +204,30 @@
"requires": {
"ms": "^2.1.1"
}
- },
- "ms": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
- "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
- "dev": true
}
}
},
"@babel/types": {
- "version": "7.3.0",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.3.0.tgz",
- "integrity": "sha512-QkFPw68QqWU1/RVPyBe8SO7lXbPfjtqAxRYQKpFpaB8yMq7X2qAqfwK5LKoQufEkSmO5NQ70O6Kc3Afk03RwXw==",
+ "version": "7.3.4",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.3.4.tgz",
+ "integrity": "sha512-WEkp8MsLftM7O/ty580wAmZzN1nDmCACc5+jFzUt+GUFNNIi3LdRlueYz0YIlmJhlZx1QYDMZL5vdWCL0fNjFQ==",
"dev": true,
"requires": {
"esutils": "^2.0.2",
- "lodash": "^4.17.10",
+ "lodash": "^4.17.11",
"to-fast-properties": "^2.0.0"
}
},
"@blueprintjs/core": {
- "version": "3.12.0",
- "resolved": "https://registry.npmjs.org/@blueprintjs/core/-/core-3.12.0.tgz",
- "integrity": "sha512-nZGVzgel8YjFye14MU39iMLHTx7iBxG/vPrl432q6pJ7PDuk0M2vJK/eH/0pWISzhTK+/t78mpt3WhUelsvkQg==",
- "requires": {
- "@blueprintjs/icons": "^3.5.1",
- "@types/dom4": "^2.0.0",
- "classnames": "^2.2",
- "dom4": "^2.0.1",
- "normalize.css": "^8.0.0",
- "popper.js": "^1.14.1",
- "react-popper": "^1.0.0",
- "react-transition-group": "^2.2.1",
- "resize-observer-polyfill": "^1.5.0",
- "tslib": "^1.9.0"
- }
- },
- "@blueprintjs/icons": {
- "version": "3.5.1",
- "resolved": "https://registry.npmjs.org/@blueprintjs/icons/-/icons-3.5.1.tgz",
- "integrity": "sha512-sognhg9kAViMCrd2sZJ9KAo0vSm7Co/cBHGLSxblPodV4cI7xyzFi1cavPx+d1D3Q72ATOM46T0N7dggVac/Tw==",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@blueprintjs/core/-/core-1.0.1.tgz",
+ "integrity": "sha1-gfv9/g6gK7kLgLG+MaAec+tiWAY=",
"requires": {
"classnames": "^2.2",
- "tslib": "^1.9.0"
+ "dom4": "^1.8",
+ "normalize.css": "4.1.1",
+ "pure-render-decorator": "~1.1.1",
+ "tether": "^1.2"
}
},
"@csstools/convert-colors": {
@@ -285,16 +259,11 @@
"dev": true
},
"@types/d3-array": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-1.2.4.tgz",
- "integrity": "sha512-3r1fOAAb+SGfcOGXty/LGvoP0ovMec4UtGNUyHOSzYyvSGpmt+eNMxLowol/3HryusevznSfcHZebEShXMwsZA==",
+ "version": "1.2.6",
+ "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-1.2.6.tgz",
+ "integrity": "sha512-/EcY/15X5tnwkMT2txpjiLUNJj5xHA2vGHOXI8NTYGhETK914RRLQLjNm6EpAI1D2IY5vh3CzuLODnqBAwKjPA==",
"dev": true
},
- "@types/dom4": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@types/dom4/-/dom4-2.0.1.tgz",
- "integrity": "sha512-kSkVAvWmMZiCYtvqjqQEwOmvKwcH+V4uiv3qPQ8pAh1Xl39xggGEo8gHUqV4waYGHezdFw0rKBR8Jt0CrQSDZA=="
- },
"@types/history": {
"version": "4.7.2",
"resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.2.tgz",
@@ -302,41 +271,42 @@
"dev": true
},
"@types/hjson": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/@types/hjson/-/hjson-2.4.0.tgz",
- "integrity": "sha512-U1/DhtNB1DeIjJjusD3MwAnX1AeAmxlTrBK+R+hvJ07VBDeNgbQI0lb8rLCMXWRH30ok+x6U31ZoEYgwztJkKA=="
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@types/hjson/-/hjson-2.4.1.tgz",
+ "integrity": "sha512-yXq/C73UHM8GQc6RYJnUXUgxudr2Q9227Iawhkp03YCnfJJTc+6LJnnVLx+UR/Dvw6imO5Q3vpGNmR9IRBI0JQ==",
+ "dev": true
},
"@types/jest": {
- "version": "23.3.13",
- "resolved": "https://registry.npmjs.org/@types/jest/-/jest-23.3.13.tgz",
- "integrity": "sha512-ePl4l+7dLLmCucIwgQHAgjiepY++qcI6nb8eAwGNkB6OxmTe3Z9rQU3rSpomqu42PCCnlThZbOoxsf+qylJsLA==",
+ "version": "23.3.14",
+ "resolved": "https://registry.npmjs.org/@types/jest/-/jest-23.3.14.tgz",
+ "integrity": "sha512-Q5hTcfdudEL2yOmluA1zaSyPbzWPmJ3XfSWeP3RyoYvS9hnje1ZyagrZOuQ6+1nQC1Gw+7gap3pLNL3xL6UBug==",
"dev": true
},
"@types/lodash": {
- "version": "4.14.120",
- "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.120.tgz",
- "integrity": "sha512-jQ21kQ120mo+IrDs1nFNVm/AsdFxIx2+vZ347DbogHJPd/JzKNMOqU6HCYin1W6v8l5R9XSO2/e9cxmn7HAnVw==",
+ "version": "4.14.121",
+ "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.121.tgz",
+ "integrity": "sha512-ORj7IBWj13iYufXt/VXrCNMbUuCTJfhzme5kx9U/UtcIPdJYuvPDUAlHlbNhz/8lKCLy9XGIZnGrqXOtQbPGoQ==",
"dev": true
},
"@types/lodash.debounce": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/@types/lodash.debounce/-/lodash.debounce-4.0.4.tgz",
- "integrity": "sha512-W3oJCQXSCmOE9uIqOdrUWT08YNSXyqXed8JhxJKCe4SH40yxz5HSdtStN1ZQYkvT7S/tae8PA34Y0TO5C7Z8Ng==",
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/@types/lodash.debounce/-/lodash.debounce-4.0.5.tgz",
+ "integrity": "sha512-f7x1/7U8xNDCYgO0UEB9bRkYDxmOl3OAFZS5l4PvTa6gtURzy1Mxv2f7f1+WBSGgOGhl5jia+Hw027H1f+S90Q==",
"dev": true,
"requires": {
"@types/lodash": "*"
}
},
"@types/mocha": {
- "version": "5.2.5",
- "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.5.tgz",
- "integrity": "sha512-lAVp+Kj54ui/vLUFxsJTMtWvZraZxum3w3Nwkble2dNuV5VnPA+Mi2oGX9XYJAaIvZi3tn3cbjS/qcJXRb6Bww==",
+ "version": "5.2.6",
+ "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.6.tgz",
+ "integrity": "sha512-1axi39YdtBI7z957vdqXI4Ac25e7YihYQtJa+Clnxg1zTJEaIRbndt71O3sP4GAMgiAm0pY26/b9BrY4MR/PMw==",
"dev": true
},
"@types/node": {
- "version": "10.12.18",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.18.tgz",
- "integrity": "sha512-fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ==",
+ "version": "10.12.27",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.27.tgz",
+ "integrity": "sha512-e9wgeY6gaY21on3ve0xAjgBVjGDWq/xUteK0ujsE53bUoxycMkqfnkUgMt6ffZtykZ5X12Mg3T7Pw4TRCObDKg==",
"dev": true
},
"@types/numeral": {
@@ -346,15 +316,15 @@
"dev": true
},
"@types/prop-types": {
- "version": "15.5.8",
- "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.5.8.tgz",
- "integrity": "sha512-3AQoUxQcQtLHsK25wtTWIoIpgYjH3vSDroZOUr7PpCHw/jLY1RB9z9E8dBT/OSmwStVgkRNvdh+ZHNiomRieaw==",
+ "version": "15.5.9",
+ "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.5.9.tgz",
+ "integrity": "sha512-Nha5b+jmBI271jdTMwrHiNXM+DvThjHOfyZtMX9kj/c/LUj2xiLHsG/1L3tJ8DjAoQN48cHwUwtqBotjyXaSdQ==",
"dev": true
},
"@types/react": {
- "version": "16.7.21",
- "resolved": "https://registry.npmjs.org/@types/react/-/react-16.7.21.tgz",
- "integrity": "sha512-8BPxwygC83LgaIjOVVLrzB4mpP2u1ih01fbfy76L3h9OgKN+fNyMVPXj/0mGpWnxImjiM/2lqb3YOeT2Ca+NYQ==",
+ "version": "16.8.5",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-16.8.5.tgz",
+ "integrity": "sha512-8LRySaaSJVLNZb2dbOGvGmzn88cbAfrgDpuWy+6lLgQ0OJFgHHvyuaCX4/7ikqJlpmCPf4uazJAZcfTQRdJqdQ==",
"dev": true,
"requires": {
"@types/prop-types": "*",
@@ -362,18 +332,18 @@
}
},
"@types/react-dom": {
- "version": "16.0.11",
- "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.0.11.tgz",
- "integrity": "sha512-x6zUx9/42B5Kl2Vl9HlopV8JF64wLpX3c+Pst9kc1HgzrsH+mkehe/zmHMQTplIrR48H2gpU7ZqurQolYu8XBA==",
+ "version": "16.8.2",
+ "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.8.2.tgz",
+ "integrity": "sha512-MX7n1wq3G/De15RGAAqnmidzhr2Y9O/ClxPxyqaNg96pGyeXUYPSvujgzEVpLo9oIP4Wn1UETl+rxTN02KEpBw==",
"dev": true,
"requires": {
"@types/react": "*"
}
},
"@types/react-router": {
- "version": "4.4.3",
- "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-4.4.3.tgz",
- "integrity": "sha512-8GmjakEBFNCLJbpg9jtDp1EDvFP0VkIPPKBpVwmB3Q+9whFoHu8rluMUXUE5SoGkEQvVOtgJzWmUsJojNpFMQQ==",
+ "version": "4.4.4",
+ "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-4.4.4.tgz",
+ "integrity": "sha512-TZVfpT6nvUv/lbho/nRtckEtgkhspOQr3qxrnpXixwgQRKKyg5PvDfNKc8Uend/p/Pi70614VCmC0NPAKWF+0g==",
"dev": true,
"requires": {
"@types/history": "*",
@@ -392,184 +362,188 @@
}
},
"@types/react-table": {
- "version": "6.7.21",
- "resolved": "https://registry.npmjs.org/@types/react-table/-/react-table-6.7.21.tgz",
- "integrity": "sha512-XiYCcn/CBajrj18vLA3kO79AHr5yZTCJe2kl87ZNTRxLO14y9D0IGeGZ3xLsqhfYrJSkkVzAJV8v+bQ4nuKCRQ==",
+ "version": "6.7.22",
+ "resolved": "https://registry.npmjs.org/@types/react-table/-/react-table-6.7.22.tgz",
+ "integrity": "sha512-gFW1QLTMmcPKUVsb2YCF9m6FwwTelVRehb8hjJRluM9KKJl5ANA0jSYZz4zN9fVFsMn11BoYO43a/3jKi2XH/w==",
"dev": true,
"requires": {
"@types/react": "*"
}
},
"@webassemblyjs/ast": {
- "version": "1.7.11",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.7.11.tgz",
- "integrity": "sha512-ZEzy4vjvTzScC+SH8RBssQUawpaInUdMTYwYYLh54/s8TuT0gBLuyUnppKsVyZEi876VmmStKsUs28UxPgdvrA==",
+ "version": "1.8.3",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.8.3.tgz",
+ "integrity": "sha512-xy3m06+Iu4D32+6soz6zLnwznigXJRuFNTovBX2M4GqVqLb0dnyWLbPnpcXvUSdEN+9DVyDeaq2jyH1eIL2LZQ==",
"dev": true,
"requires": {
- "@webassemblyjs/helper-module-context": "1.7.11",
- "@webassemblyjs/helper-wasm-bytecode": "1.7.11",
- "@webassemblyjs/wast-parser": "1.7.11"
+ "@webassemblyjs/helper-module-context": "1.8.3",
+ "@webassemblyjs/helper-wasm-bytecode": "1.8.3",
+ "@webassemblyjs/wast-parser": "1.8.3"
}
},
"@webassemblyjs/floating-point-hex-parser": {
- "version": "1.7.11",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.11.tgz",
- "integrity": "sha512-zY8dSNyYcgzNRNT666/zOoAyImshm3ycKdoLsyDw/Bwo6+/uktb7p4xyApuef1dwEBo/U/SYQzbGBvV+nru2Xg==",
+ "version": "1.8.3",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.3.tgz",
+ "integrity": "sha512-vq1TISG4sts4f0lDwMUM0f3kpe0on+G3YyV5P0IySHFeaLKRYZ++n2fCFfG4TcCMYkqFeTUYFxm75L3ddlk2xA==",
"dev": true
},
"@webassemblyjs/helper-api-error": {
- "version": "1.7.11",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.11.tgz",
- "integrity": "sha512-7r1qXLmiglC+wPNkGuXCvkmalyEstKVwcueZRP2GNC2PAvxbLYwLLPr14rcdJaE4UtHxQKfFkuDFuv91ipqvXg==",
+ "version": "1.8.3",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.3.tgz",
+ "integrity": "sha512-BmWEynI4FnZbjk8CaYZXwcv9a6gIiu+rllRRouQUo73hglanXD3AGFJE7Q4JZCoVE0p5/jeX6kf5eKa3D4JxwQ==",
"dev": true
},
"@webassemblyjs/helper-buffer": {
- "version": "1.7.11",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.11.tgz",
- "integrity": "sha512-MynuervdylPPh3ix+mKZloTcL06P8tenNH3sx6s0qE8SLR6DdwnfgA7Hc9NSYeob2jrW5Vql6GVlsQzKQCa13w==",
+ "version": "1.8.3",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.3.tgz",
+ "integrity": "sha512-iVIMhWnNHoFB94+/2l7LpswfCsXeMRnWfExKtqsZ/E2NxZyUx9nTeKK/MEMKTQNEpyfznIUX06OchBHQ+VKi/Q==",
"dev": true
},
"@webassemblyjs/helper-code-frame": {
- "version": "1.7.11",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.11.tgz",
- "integrity": "sha512-T8ESC9KMXFTXA5urJcyor5cn6qWeZ4/zLPyWeEXZ03hj/x9weSokGNkVCdnhSabKGYWxElSdgJ+sFa9G/RdHNw==",
+ "version": "1.8.3",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.3.tgz",
+ "integrity": "sha512-K1UxoJML7GKr1QXR+BG7eXqQkvu+eEeTjlSl5wUFQ6W6vaOc5OwSxTcb3oE9x/3+w4NHhrIKD4JXXCZmLdL2cg==",
"dev": true,
"requires": {
- "@webassemblyjs/wast-printer": "1.7.11"
+ "@webassemblyjs/wast-printer": "1.8.3"
}
},
"@webassemblyjs/helper-fsm": {
- "version": "1.7.11",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.11.tgz",
- "integrity": "sha512-nsAQWNP1+8Z6tkzdYlXT0kxfa2Z1tRTARd8wYnc/e3Zv3VydVVnaeePgqUzFrpkGUyhUUxOl5ML7f1NuT+gC0A==",
+ "version": "1.8.3",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.3.tgz",
+ "integrity": "sha512-387zipfrGyO77/qm7/SDUiZBjQ5KGk4qkrVIyuoubmRNIiqn3g+6ijY8BhnlGqsCCQX5bYKOnttJobT5xoyviA==",
"dev": true
},
"@webassemblyjs/helper-module-context": {
- "version": "1.7.11",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.11.tgz",
- "integrity": "sha512-JxfD5DX8Ygq4PvXDucq0M+sbUFA7BJAv/GGl9ITovqE+idGX+J3QSzJYz+LwQmL7fC3Rs+utvWoJxDb6pmC0qg==",
- "dev": true
+ "version": "1.8.3",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.3.tgz",
+ "integrity": "sha512-lPLFdQfaRssfnGEJit5Sk785kbBPPPK4ZS6rR5W/8hlUO/5v3F+rN8XuUcMj/Ny9iZiyKhhuinWGTUuYL4VKeQ==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.8.3",
+ "mamacro": "^0.0.3"
+ }
},
"@webassemblyjs/helper-wasm-bytecode": {
- "version": "1.7.11",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.11.tgz",
- "integrity": "sha512-cMXeVS9rhoXsI9LLL4tJxBgVD/KMOKXuFqYb5oCJ/opScWpkCMEz9EJtkonaNcnLv2R3K5jIeS4TRj/drde1JQ==",
+ "version": "1.8.3",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.3.tgz",
+ "integrity": "sha512-R1nJW7bjyJLjsJQR5t3K/9LJ0QWuZezl8fGa49DZq4IVaejgvkbNlKEQxLYTC579zgT4IIIVHb5JA59uBPHXyw==",
"dev": true
},
"@webassemblyjs/helper-wasm-section": {
- "version": "1.7.11",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.11.tgz",
- "integrity": "sha512-8ZRY5iZbZdtNFE5UFunB8mmBEAbSI3guwbrsCl4fWdfRiAcvqQpeqd5KHhSWLL5wuxo53zcaGZDBU64qgn4I4Q==",
+ "version": "1.8.3",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.3.tgz",
+ "integrity": "sha512-P6F7D61SJY73Yz+fs49Q3+OzlYAZP86OfSpaSY448KzUy65NdfzDmo2NPVte+Rw4562MxEAacvq/mnDuvRWOcg==",
"dev": true,
"requires": {
- "@webassemblyjs/ast": "1.7.11",
- "@webassemblyjs/helper-buffer": "1.7.11",
- "@webassemblyjs/helper-wasm-bytecode": "1.7.11",
- "@webassemblyjs/wasm-gen": "1.7.11"
+ "@webassemblyjs/ast": "1.8.3",
+ "@webassemblyjs/helper-buffer": "1.8.3",
+ "@webassemblyjs/helper-wasm-bytecode": "1.8.3",
+ "@webassemblyjs/wasm-gen": "1.8.3"
}
},
"@webassemblyjs/ieee754": {
- "version": "1.7.11",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.7.11.tgz",
- "integrity": "sha512-Mmqx/cS68K1tSrvRLtaV/Lp3NZWzXtOHUW2IvDvl2sihAwJh4ACE0eL6A8FvMyDG9abes3saB6dMimLOs+HMoQ==",
+ "version": "1.8.3",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.8.3.tgz",
+ "integrity": "sha512-UD4HuLU99hjIvWz1pD68b52qsepWQlYCxDYVFJQfHh3BHyeAyAlBJ+QzLR1nnS5J6hAzjki3I3AoJeobNNSZlg==",
"dev": true,
"requires": {
"@xtuc/ieee754": "^1.2.0"
}
},
"@webassemblyjs/leb128": {
- "version": "1.7.11",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.7.11.tgz",
- "integrity": "sha512-vuGmgZjjp3zjcerQg+JA+tGOncOnJLWVkt8Aze5eWQLwTQGNgVLcyOTqgSCxWTR4J42ijHbBxnuRaL1Rv7XMdw==",
+ "version": "1.8.3",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.8.3.tgz",
+ "integrity": "sha512-XXd3s1BmkC1gpGABuCRLqCGOD6D2L+Ma2BpwpjrQEHeQATKWAQtxAyU9Z14/z8Ryx6IG+L4/NDkIGHrccEhRUg==",
"dev": true,
"requires": {
- "@xtuc/long": "4.2.1"
+ "@xtuc/long": "4.2.2"
}
},
"@webassemblyjs/utf8": {
- "version": "1.7.11",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.7.11.tgz",
- "integrity": "sha512-C6GFkc7aErQIAH+BMrIdVSmW+6HSe20wg57HEC1uqJP8E/xpMjXqQUxkQw07MhNDSDcGpxI9G5JSNOQCqJk4sA==",
+ "version": "1.8.3",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.8.3.tgz",
+ "integrity": "sha512-Wv/WH9Zo5h5ZMyfCNpUrjFsLZ3X1amdfEuwdb7MLdG3cPAjRS6yc6ElULlpjLiiBTuzvmLhr3ENsuGyJ3wyCgg==",
"dev": true
},
"@webassemblyjs/wasm-edit": {
- "version": "1.7.11",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.11.tgz",
- "integrity": "sha512-FUd97guNGsCZQgeTPKdgxJhBXkUbMTY6hFPf2Y4OedXd48H97J+sOY2Ltaq6WGVpIH8o/TGOVNiVz/SbpEMJGg==",
+ "version": "1.8.3",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.3.tgz",
+ "integrity": "sha512-nB19eUx3Yhi1Vvv3yev5r+bqQixZprMtaoCs1brg9Efyl8Hto3tGaUoZ0Yb4Umn/gQCyoEGFfUxPLp1/8+Jvnw==",
"dev": true,
"requires": {
- "@webassemblyjs/ast": "1.7.11",
- "@webassemblyjs/helper-buffer": "1.7.11",
- "@webassemblyjs/helper-wasm-bytecode": "1.7.11",
- "@webassemblyjs/helper-wasm-section": "1.7.11",
- "@webassemblyjs/wasm-gen": "1.7.11",
- "@webassemblyjs/wasm-opt": "1.7.11",
- "@webassemblyjs/wasm-parser": "1.7.11",
- "@webassemblyjs/wast-printer": "1.7.11"
+ "@webassemblyjs/ast": "1.8.3",
+ "@webassemblyjs/helper-buffer": "1.8.3",
+ "@webassemblyjs/helper-wasm-bytecode": "1.8.3",
+ "@webassemblyjs/helper-wasm-section": "1.8.3",
+ "@webassemblyjs/wasm-gen": "1.8.3",
+ "@webassemblyjs/wasm-opt": "1.8.3",
+ "@webassemblyjs/wasm-parser": "1.8.3",
+ "@webassemblyjs/wast-printer": "1.8.3"
}
},
"@webassemblyjs/wasm-gen": {
- "version": "1.7.11",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.11.tgz",
- "integrity": "sha512-U/KDYp7fgAZX5KPfq4NOupK/BmhDc5Kjy2GIqstMhvvdJRcER/kUsMThpWeRP8BMn4LXaKhSTggIJPOeYHwISA==",
+ "version": "1.8.3",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.3.tgz",
+ "integrity": "sha512-sDNmu2nLBJZ/huSzlJvd9IK8B1EjCsOl7VeMV9VJPmxKYgTJ47lbkSP+KAXMgZWGcArxmcrznqm7FrAPQ7vVGg==",
"dev": true,
"requires": {
- "@webassemblyjs/ast": "1.7.11",
- "@webassemblyjs/helper-wasm-bytecode": "1.7.11",
- "@webassemblyjs/ieee754": "1.7.11",
- "@webassemblyjs/leb128": "1.7.11",
- "@webassemblyjs/utf8": "1.7.11"
+ "@webassemblyjs/ast": "1.8.3",
+ "@webassemblyjs/helper-wasm-bytecode": "1.8.3",
+ "@webassemblyjs/ieee754": "1.8.3",
+ "@webassemblyjs/leb128": "1.8.3",
+ "@webassemblyjs/utf8": "1.8.3"
}
},
"@webassemblyjs/wasm-opt": {
- "version": "1.7.11",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.11.tgz",
- "integrity": "sha512-XynkOwQyiRidh0GLua7SkeHvAPXQV/RxsUeERILmAInZegApOUAIJfRuPYe2F7RcjOC9tW3Cb9juPvAC/sCqvg==",
+ "version": "1.8.3",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.3.tgz",
+ "integrity": "sha512-j8lmQVFR+FR4/645VNgV4R/Jz8i50eaPAj93GZyd3EIJondVshE/D9pivpSDIXyaZt+IkCodlzOoZUE4LnQbeA==",
"dev": true,
"requires": {
- "@webassemblyjs/ast": "1.7.11",
- "@webassemblyjs/helper-buffer": "1.7.11",
- "@webassemblyjs/wasm-gen": "1.7.11",
- "@webassemblyjs/wasm-parser": "1.7.11"
+ "@webassemblyjs/ast": "1.8.3",
+ "@webassemblyjs/helper-buffer": "1.8.3",
+ "@webassemblyjs/wasm-gen": "1.8.3",
+ "@webassemblyjs/wasm-parser": "1.8.3"
}
},
"@webassemblyjs/wasm-parser": {
- "version": "1.7.11",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.11.tgz",
- "integrity": "sha512-6lmXRTrrZjYD8Ng8xRyvyXQJYUQKYSXhJqXOBLw24rdiXsHAOlvw5PhesjdcaMadU/pyPQOJ5dHreMjBxwnQKg==",
+ "version": "1.8.3",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.3.tgz",
+ "integrity": "sha512-NBI3SNNtRoy4T/KBsRZCAWUzE9lI94RH2nneLwa1KKIrt/2zzcTavWg6oY05ArCbb/PZDk3OUi63CD1RYtN65w==",
"dev": true,
"requires": {
- "@webassemblyjs/ast": "1.7.11",
- "@webassemblyjs/helper-api-error": "1.7.11",
- "@webassemblyjs/helper-wasm-bytecode": "1.7.11",
- "@webassemblyjs/ieee754": "1.7.11",
- "@webassemblyjs/leb128": "1.7.11",
- "@webassemblyjs/utf8": "1.7.11"
+ "@webassemblyjs/ast": "1.8.3",
+ "@webassemblyjs/helper-api-error": "1.8.3",
+ "@webassemblyjs/helper-wasm-bytecode": "1.8.3",
+ "@webassemblyjs/ieee754": "1.8.3",
+ "@webassemblyjs/leb128": "1.8.3",
+ "@webassemblyjs/utf8": "1.8.3"
}
},
"@webassemblyjs/wast-parser": {
- "version": "1.7.11",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.7.11.tgz",
- "integrity": "sha512-lEyVCg2np15tS+dm7+JJTNhNWq9yTZvi3qEhAIIOaofcYlUp0UR5/tVqOwa/gXYr3gjwSZqw+/lS9dscyLelbQ==",
+ "version": "1.8.3",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.8.3.tgz",
+ "integrity": "sha512-gZPst4CNcmGtKC1eYQmgCx6gwQvxk4h/nPjfPBbRoD+Raw3Hs+BS3yhrfgyRKtlYP+BJ8LcY9iFODEQofl2qbg==",
"dev": true,
"requires": {
- "@webassemblyjs/ast": "1.7.11",
- "@webassemblyjs/floating-point-hex-parser": "1.7.11",
- "@webassemblyjs/helper-api-error": "1.7.11",
- "@webassemblyjs/helper-code-frame": "1.7.11",
- "@webassemblyjs/helper-fsm": "1.7.11",
- "@xtuc/long": "4.2.1"
+ "@webassemblyjs/ast": "1.8.3",
+ "@webassemblyjs/floating-point-hex-parser": "1.8.3",
+ "@webassemblyjs/helper-api-error": "1.8.3",
+ "@webassemblyjs/helper-code-frame": "1.8.3",
+ "@webassemblyjs/helper-fsm": "1.8.3",
+ "@xtuc/long": "4.2.2"
}
},
"@webassemblyjs/wast-printer": {
- "version": "1.7.11",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.7.11.tgz",
- "integrity": "sha512-m5vkAsuJ32QpkdkDOUPGSltrg8Cuk3KBx4YrmAGQwCZPRdUHXxG4phIOuuycLemHFr74sWL9Wthqss4fzdzSwg==",
+ "version": "1.8.3",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.8.3.tgz",
+ "integrity": "sha512-DTA6kpXuHK4PHu16yAD9QVuT1WZQRT7079oIFFmFSjqjLWGXS909I/7kiLTn931mcj7wGsaUNungjwNQ2lGQ3Q==",
"dev": true,
"requires": {
- "@webassemblyjs/ast": "1.7.11",
- "@webassemblyjs/wast-parser": "1.7.11",
- "@xtuc/long": "4.2.1"
+ "@webassemblyjs/ast": "1.8.3",
+ "@webassemblyjs/wast-parser": "1.8.3",
+ "@xtuc/long": "4.2.2"
}
},
"@xtuc/ieee754": {
@@ -579,9 +553,9 @@
"dev": true
},
"@xtuc/long": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.1.tgz",
- "integrity": "sha512-FZdkNBDqBRHKQ2MEbSC17xnPFOhZxeJ2YGSfr2BKf3sujG49Qe3bB+rGCwQfIaA7WHnGeGkSijX4FuBCdrzW/g==",
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz",
+ "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==",
"dev": true
},
"abab": {
@@ -629,9 +603,9 @@
},
"dependencies": {
"acorn": {
- "version": "6.0.5",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.0.5.tgz",
- "integrity": "sha512-i33Zgp3XWtmZBMNvCr4azvOFeWVw1Rk6p3hfi3LUDvIFraOMywb1kAtrbi+med14m4Xfpqm3zRZMT+c0FNE7kg==",
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.1.0.tgz",
+ "integrity": "sha512-MW/FjM+IvU9CgBzjO3UIPCE2pyEwUsoFl+VGdczOPEdxfGFjuKny/gN54mOuX7Qxmb9Rg9MCn2oKiSUeW+pjrw==",
"dev": true
}
}
@@ -643,9 +617,9 @@
"dev": true
},
"ajv": {
- "version": "6.7.0",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.7.0.tgz",
- "integrity": "sha512-RZXPviBTtfmtka9n9sy1N5M5b82CbxWIR6HIis4s3WQTXDJamc/0gpCWNGz6EWdWp4DOfjzJfhz/AS9zVPjjWg==",
+ "version": "6.9.2",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.9.2.tgz",
+ "integrity": "sha512-4UFy0/LgDo7Oa/+wOAlj44tp9K78u38E5/359eSrqEp1Z5PdVfimCcs7SluXMP755RUQu6d2b4AvF0R1C9RZjg==",
"dev": true,
"requires": {
"fast-deep-equal": "^2.0.1",
@@ -661,9 +635,9 @@
"dev": true
},
"ajv-keywords": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.3.0.tgz",
- "integrity": "sha512-CMzN9S62ZOO4sA/mJZIO4S++ZM7KFWzH3PPWkveLhy4OZ9i1/VatgwWMD46w/XbGCBy7Ye0gCk+Za6mmyfKK7g==",
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.0.tgz",
+ "integrity": "sha512-aUjdRFISbuFOl0EIZc+9e4FfZp0bDZgAdOOf30bJmw8VM9v84SHyVyxDfbWxpGYbdZD/9XoKxfHVNmxPkhwyGw==",
"dev": true
},
"amdefine": {
@@ -679,9 +653,9 @@
"dev": true
},
"ansi-escapes": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz",
- "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz",
+ "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==",
"dev": true
},
"ansi-html": {
@@ -897,12 +871,12 @@
"dev": true
},
"async": {
- "version": "2.6.1",
- "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz",
- "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==",
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.6.2.tgz",
+ "integrity": "sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==",
"dev": true,
"requires": {
- "lodash": "^4.17.10"
+ "lodash": "^4.17.11"
}
},
"async-each": {
@@ -936,16 +910,16 @@
"dev": true
},
"autoprefixer": {
- "version": "9.4.6",
- "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.4.6.tgz",
- "integrity": "sha512-Yp51mevbOEdxDUy5WjiKtpQaecqYq9OqZSL04rSoCiry7Tc5I9FEyo3bfxiTJc1DfHeKwSFCUYbBAiOQ2VGfiw==",
+ "version": "9.4.9",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.4.9.tgz",
+ "integrity": "sha512-OyUl7KvbGBoFQbGQu51hMywz1aaVeud/6uX8r1R1DNcqFvqGUUy6+BDHnAZE8s5t5JyEObaSw+O1DpAdjAmLuw==",
"dev": true,
"requires": {
- "browserslist": "^4.4.1",
- "caniuse-lite": "^1.0.30000929",
+ "browserslist": "^4.4.2",
+ "caniuse-lite": "^1.0.30000939",
"normalize-range": "^0.1.2",
"num2fraction": "^1.2.2",
- "postcss": "^7.0.13",
+ "postcss": "^7.0.14",
"postcss-value-parser": "^3.3.1"
}
},
@@ -971,19 +945,21 @@
}
},
"babel-jest": {
- "version": "24.0.0",
- "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-24.0.0.tgz",
- "integrity": "sha512-YGKRbZUjoRmNIAyG7x4wYxUyHvHPFpYXj6Mx1A5cslhaQOUgP/+LF3wtFgMuOQkIpjbVNBufmOnVY0QVwB5v9Q==",
+ "version": "24.1.0",
+ "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-24.1.0.tgz",
+ "integrity": "sha512-MLcagnVrO9ybQGLEfZUqnOzv36iQzU7Bj4elm39vCukumLVSfoX+tRy3/jW7lUKc7XdpRmB/jech6L/UCsSZjw==",
"dev": true,
"requires": {
"babel-plugin-istanbul": "^5.1.0",
- "babel-preset-jest": "^24.0.0"
+ "babel-preset-jest": "^24.1.0",
+ "chalk": "^2.4.2",
+ "slash": "^2.0.0"
}
},
"babel-plugin-istanbul": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-5.1.0.tgz",
- "integrity": "sha512-CLoXPRSUWiR8yao8bShqZUIC6qLfZVVY3X1wj+QPNXu0wfmrRRfarh1LYy+dYMVI+bDj0ghy3tuqFFRFZmL1Nw==",
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-5.1.1.tgz",
+ "integrity": "sha512-RNNVv2lsHAXJQsEJ5jonQwrJVWK8AcZpG1oxhnjCUaAjL7xahYLANhPUZbzEQHjKy1NMYUwn+0NPKQc8iSY4xQ==",
"dev": true,
"requires": {
"find-up": "^3.0.0",
@@ -992,19 +968,19 @@
}
},
"babel-plugin-jest-hoist": {
- "version": "24.0.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.0.0.tgz",
- "integrity": "sha512-ipefE7YWNyRNVaV/MonUb/I5nef53ZRFR74P9meMGmJxqt8s1BJmfhw11YeIMbcjXN4fxtWUaskZZe8yreXE1Q==",
+ "version": "24.1.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.1.0.tgz",
+ "integrity": "sha512-gljYrZz8w1b6fJzKcsfKsipSru2DU2DmQ39aB6nV3xQ0DDv3zpIzKGortA5gknrhNnPN8DweaEgrnZdmbGmhnw==",
"dev": true
},
"babel-preset-jest": {
- "version": "24.0.0",
- "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-24.0.0.tgz",
- "integrity": "sha512-ECMMOLvNDCmsn3geBa3JkwzylcfpThMpAdfreONQm8EmXcs4tXUpXZDQPxiIMg7nMobTuAC2zDGIKrbrBXW2Vg==",
+ "version": "24.1.0",
+ "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-24.1.0.tgz",
+ "integrity": "sha512-FfNLDxFWsNX9lUmtwY7NheGlANnagvxq8LZdl5PKnVG3umP+S/g0XbVBfwtA4Ai3Ri/IMkWabBz3Tyk9wdspcw==",
"dev": true,
"requires": {
"@babel/plugin-syntax-object-rest-spread": "^7.0.0",
- "babel-plugin-jest-hoist": "^24.0.0"
+ "babel-plugin-jest-hoist": "^24.1.0"
}
},
"balanced-match": {
@@ -1096,9 +1072,9 @@
"dev": true
},
"binary-extensions": {
- "version": "1.12.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.12.0.tgz",
- "integrity": "sha512-DYWGk01lDcxeS/K9IHPGWfT8PsJmbXRtRd2Sx72Tnb8pcYZQFF1oSDb8hJtS1vhp212q1Rzi5dUf9+nq0o9UIg==",
+ "version": "1.13.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.0.tgz",
+ "integrity": "sha512-EgmjVLMn22z7eGGv3kcnHwSnJXmFHjISTY9E/S5lIcTD3Oxw05QTcBLNkJFzcb3cNueUdF/IN4U+d78V0zO8Hw==",
"dev": true
},
"block-stream": {
@@ -1157,6 +1133,12 @@
"requires": {
"safer-buffer": ">= 2.1.2 < 3"
}
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
}
}
},
@@ -1174,6 +1156,11 @@
"multicast-dns-service-types": "^1.1.0"
}
},
+ "brace": {
+ "version": "0.11.1",
+ "resolved": "https://registry.npmjs.org/brace/-/brace-0.11.1.tgz",
+ "integrity": "sha1-SJb8ydVE7vRfS7dmDbMg07N5/lg="
+ },
"brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
@@ -1320,14 +1307,14 @@
}
},
"browserslist": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.4.1.tgz",
- "integrity": "sha512-pEBxEXg7JwaakBXjATYw/D1YZh4QUSCX/Mnd/wnqSRPPSi1U39iDhDoKGoBUcraKdxDlrYqJxSI5nNvD+dWP2A==",
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.4.2.tgz",
+ "integrity": "sha512-ISS/AIAiHERJ3d45Fz0AVYKkgcy+F/eJHzKEvv1j0wwKGKD9T3BrwKr/5g45L+Y4XIK5PlTqefHciRFcfE1Jxg==",
"dev": true,
"requires": {
- "caniuse-lite": "^1.0.30000929",
- "electron-to-chromium": "^1.3.103",
- "node-releases": "^1.1.3"
+ "caniuse-lite": "^1.0.30000939",
+ "electron-to-chromium": "^1.3.113",
+ "node-releases": "^1.1.8"
}
},
"bs-logger": {
@@ -1385,12 +1372,6 @@
"integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=",
"dev": true
},
- "builtin-modules": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
- "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
- "dev": true
- },
"builtin-status-codes": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",
@@ -1496,9 +1477,9 @@
}
},
"caniuse-lite": {
- "version": "1.0.30000932",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000932.tgz",
- "integrity": "sha512-4bghJFItvzz8m0T3lLZbacmEY9X1Z2AtIzTr7s7byqZIOumASfr4ynDx7rtm0J85nDmx8vsgR6vnaSoeU8Oh0A==",
+ "version": "1.0.30000939",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000939.tgz",
+ "integrity": "sha512-oXB23ImDJOgQpGjRv1tCtzAvJr4/OvrHi5SO2vUgB0g0xpdZZoA/BxfImiWfdwoYdUTtQrPsXsvYU/dmCSM8gg==",
"dev": true
},
"capture-exit": {
@@ -1516,6 +1497,11 @@
"integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
"dev": true
},
+ "chain-function": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/chain-function/-/chain-function-1.0.1.tgz",
+ "integrity": "sha512-SxltgMwL9uCko5/ZCLiyG2B7R9fY4pDZUw7hJ4MhirdjBLosoDqkWABi3XMucddHdLiFJMb7PD2MZifZriuMTg=="
+ },
"chalk": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
@@ -1539,24 +1525,31 @@
}
},
"chokidar": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz",
- "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==",
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.2.tgz",
+ "integrity": "sha512-IwXUx0FXc5ibYmPC2XeEj5mpXoV66sR+t3jqu2NS2GYwCktt3KF1/Qqjws/NkegajBA4RbZ5+DDwlOiJsxDHEg==",
"dev": true,
"requires": {
"anymatch": "^2.0.0",
- "async-each": "^1.0.0",
- "braces": "^2.3.0",
- "fsevents": "^1.2.2",
+ "async-each": "^1.0.1",
+ "braces": "^2.3.2",
+ "fsevents": "^1.2.7",
"glob-parent": "^3.1.0",
- "inherits": "^2.0.1",
+ "inherits": "^2.0.3",
"is-binary-path": "^1.0.0",
"is-glob": "^4.0.0",
- "lodash.debounce": "^4.0.8",
- "normalize-path": "^2.1.1",
+ "normalize-path": "^3.0.0",
"path-is-absolute": "^1.0.0",
- "readdirp": "^2.0.0",
- "upath": "^1.0.5"
+ "readdirp": "^2.2.1",
+ "upath": "^1.1.0"
+ },
+ "dependencies": {
+ "normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "dev": true
+ }
}
},
"chownr": {
@@ -1729,12 +1722,12 @@
"dev": true
},
"compressible": {
- "version": "2.0.15",
- "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.15.tgz",
- "integrity": "sha512-4aE67DL33dSW9gw4CI2H/yTxqHLNcxp0yS6jB+4h+wr3e43+1z7vm0HU9qXOH8j+qjKuL8+UtkOxYQSMq60Ylw==",
+ "version": "2.0.16",
+ "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.16.tgz",
+ "integrity": "sha512-JQfEOdnI7dASwCuSPWIeVYwc/zMsu/+tRhoUvEfXz2gxOA2DNjmG5vhtFdBlhWPPGo+RdT9S3tgc/uH5qgDiiA==",
"dev": true,
"requires": {
- "mime-db": ">= 1.36.0 < 2"
+ "mime-db": ">= 1.38.0 < 2"
}
},
"compression": {
@@ -1760,6 +1753,12 @@
"requires": {
"ms": "2.0.0"
}
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
}
}
},
@@ -1921,15 +1920,6 @@
"sha.js": "^2.4.8"
}
},
- "create-react-context": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/create-react-context/-/create-react-context-0.2.2.tgz",
- "integrity": "sha512-KkpaLARMhsTsgp0d2NA/R94F/eDLbhXERdIq3LvX2biCAXcDvHYoOqHfWCHf1+OLj+HKBotLG3KqaOOf+C1C+A==",
- "requires": {
- "fbjs": "^0.8.0",
- "gud": "^1.0.0"
- }
- },
"cross-spawn": {
"version": "6.0.5",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
@@ -2038,24 +2028,24 @@
"dev": true
},
"cssom": {
- "version": "0.3.4",
- "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.4.tgz",
- "integrity": "sha512-+7prCSORpXNeR4/fUP3rL+TzqtiFfhMvTd7uEqMdgPvLPt4+uzFUeufx5RHjGTACCargg/DiEt/moMQmvnfkog==",
+ "version": "0.3.6",
+ "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.6.tgz",
+ "integrity": "sha512-DtUeseGk9/GBW0hl0vVPpU22iHL6YB5BUX7ml1hB+GMpo0NX5G4voX3kdWiMSEguFtcW3Vh3djqNF4aIe6ne0A==",
"dev": true
},
"cssstyle": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.1.1.tgz",
- "integrity": "sha512-364AI1l/M5TYcFH83JnOH/pSqgaNnKmYgKrm0didZMGKWjQB60dymwWy1rKUgL3J1ffdq9xVi2yGLHdSjjSNog==",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.2.1.tgz",
+ "integrity": "sha512-7DYm8qe+gPx/h77QlCyFmX80+fGaE/6A/Ekl0zaszYOubvySO2saYFdQ78P29D0UsULxFKCetDGNaNRUdSF+2A==",
"dev": true,
"requires": {
"cssom": "0.3.x"
}
},
"csstype": {
- "version": "2.6.1",
- "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.1.tgz",
- "integrity": "sha512-wv7IRqCGsL7WGKB8gPvrl+++HlFM9kxAM6jL1EXNPNTshEJYilMkbfS2SnuHha77uosp/YVK0wAp2jmlBzn1tg==",
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.2.tgz",
+ "integrity": "sha512-Rl7PvTae0pflc1YtxtKbiSqq20Ts6vpIYOD5WBafl4y123DyHUeLrRdQP66sQW8/6gmX8jrYJLXwNeMqYVJcow==",
"dev": true
},
"currently-unhandled": {
@@ -2118,11 +2108,11 @@
"dev": true
},
"debug": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
- "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+ "version": "3.2.6",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
"requires": {
- "ms": "2.0.0"
+ "ms": "^2.1.1"
}
},
"decamelize": {
@@ -2150,36 +2140,13 @@
"dev": true
},
"default-gateway": {
- "version": "2.7.2",
- "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-2.7.2.tgz",
- "integrity": "sha512-lAc4i9QJR0YHSDFdzeBQKfZ1SRDG3hsJNEkrpcZa8QhBfidLAilT60BDEIVUUGqosFp425KOgB3uYqcnQrWafQ==",
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.1.2.tgz",
+ "integrity": "sha512-xhJUAp3u02JsBGovj0V6B6uYhKCUOmiNc8xGmReUwGu77NmvcpxPVB0pCielxMFumO7CmXBG02XjM8HB97k8Hw==",
"dev": true,
"requires": {
- "execa": "^0.10.0",
+ "execa": "^1.0.0",
"ip-regex": "^2.1.0"
- },
- "dependencies": {
- "execa": {
- "version": "0.10.0",
- "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz",
- "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==",
- "dev": true,
- "requires": {
- "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"
- }
- },
- "get-stream": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
- "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
- "dev": true
- }
}
},
"default-require-extensions": {
@@ -2341,6 +2308,11 @@
"integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
"dev": true
},
+ "diff-match-patch": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/diff-match-patch/-/diff-match-patch-1.0.4.tgz",
+ "integrity": "sha512-Uv3SW8bmH9nAtHKaKSanOQmj2DnlH65fUpcrMdfdaOxUG02QQ4YGZ8AE7kKOMisF7UqvOlGKVYWRvezdncW9lg=="
+ },
"diff-sequences": {
"version": "24.0.0",
"resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-24.0.0.tgz",
@@ -2359,12 +2331,11 @@
}
},
"dir-glob": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz",
- "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==",
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz",
+ "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==",
"dev": true,
"requires": {
- "arrify": "^1.0.1",
"path-type": "^3.0.0"
}
},
@@ -2402,9 +2373,9 @@
}
},
"dom4": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/dom4/-/dom4-2.1.4.tgz",
- "integrity": "sha512-7NNKNViuZYu4GaZMUsSbsV6MFsT/ZpYNKP1NT4YIUgAvwPR8ODuvQEZZ7vRC1u5Y4dHwQ7je/UNOlRRWkaCyvw=="
+ "version": "1.8.5",
+ "resolved": "https://registry.npmjs.org/dom4/-/dom4-1.8.5.tgz",
+ "integrity": "sha512-ehHzOGGkVQOwU9HyZ99gHwkx4ybrRl/P1vJM7EH1nS9XsgHwO+J0KwCnVQrn8iQvpstGwFrtrX7aSNQ43QuK4A=="
},
"domain-browser": {
"version": "1.2.0",
@@ -2427,9 +2398,9 @@
"integrity": "sha512-0sYnfUHHMoajaud/i5BHKA12bUxiWEHJ9rxGqVEppFxsEcxef0TZQ5J59lU+UniEBcz/sG5fTESRyS7cOm3tSQ=="
},
"duplexify": {
- "version": "3.6.1",
- "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.1.tgz",
- "integrity": "sha512-vM58DwdnKmty+FSPzT14K9JXb90H+j5emaR4KYbr2KTIz00WHGbWOe5ghQTx233ZCLZtrGDALzKwcjEtSt35mA==",
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz",
+ "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==",
"dev": true,
"requires": {
"end-of-stream": "^1.0.0",
@@ -2455,9 +2426,9 @@
"dev": true
},
"electron-to-chromium": {
- "version": "1.3.108",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.108.tgz",
- "integrity": "sha512-/QI4hMpAh48a1Sea6PALGv+kuVne9A2EWGd8HrWHMdYhIzGtbhVVHh6heL5fAzGaDnZuPyrlWJRl8WPm4RyiQQ==",
+ "version": "1.3.113",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.113.tgz",
+ "integrity": "sha512-De+lPAxEcpxvqPTyZAXELNpRZXABRxf+uL/rSykstQhzj/B0l1150G/ExIIxKc16lI89Hgz81J0BHAcbTqK49g==",
"dev": true
},
"elliptic": {
@@ -2590,9 +2561,9 @@
"dev": true
},
"escodegen": {
- "version": "1.11.0",
- "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.11.0.tgz",
- "integrity": "sha512-IeMV45ReixHS53K/OmfKAIztN/igDHzTJUhZM3k1jMhIZWjk45SMwAtBsEXiJp3vSPmTcu6CXn7mDvFHRN66fw==",
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.11.1.tgz",
+ "integrity": "sha512-JwiqFD9KdGVVpeuRa68yU3zZnBEOcPs0nKW7wZzXky8Z7tffdYUHbe11bPCV5jYlK6DVdKLWLm0f5I/QlL0Kmw==",
"dev": true,
"requires": {
"esprima": "^3.1.3",
@@ -2755,6 +2726,12 @@
"requires": {
"is-extendable": "^0.1.0"
}
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
}
}
},
@@ -2768,9 +2745,9 @@
}
},
"expect": {
- "version": "24.0.0",
- "resolved": "https://registry.npmjs.org/expect/-/expect-24.0.0.tgz",
- "integrity": "sha512-qDHRU4lGsme0xjg8dXp/RQhvO9XIo9FWqVo7dTHDPBwzy25JGEHAWFsnpmRYErB50tgi/6euo3ir5e/kF9LUTA==",
+ "version": "24.1.0",
+ "resolved": "https://registry.npmjs.org/expect/-/expect-24.1.0.tgz",
+ "integrity": "sha512-lVcAPhaYkQcIyMS+F8RVwzbm1jro20IG8OkvxQ6f1JfqhVZyyudCwYogQ7wnktlf14iF3ii7ArIUO/mqvrW9Gw==",
"dev": true,
"requires": {
"ansi-styles": "^3.2.0",
@@ -2833,6 +2810,12 @@
"ms": "2.0.0"
}
},
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ },
"path-to-regexp": {
"version": "0.1.7",
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
@@ -3071,6 +3054,12 @@
"requires": {
"ms": "2.0.0"
}
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
}
}
},
@@ -3124,21 +3113,21 @@
"dev": true
},
"flush-write-stream": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.3.tgz",
- "integrity": "sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz",
+ "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==",
"dev": true,
"requires": {
- "inherits": "^2.0.1",
- "readable-stream": "^2.0.4"
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.3.6"
}
},
"follow-redirects": {
- "version": "1.6.1",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.6.1.tgz",
- "integrity": "sha512-t2JCjbzxQpWvbhts3l6SH1DKzSrx8a+SsaVf4h6bG4kOXUuPYS/kg2Lr4gQSb7eemaHqJkOThF1BGyjlUkO1GQ==",
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.7.0.tgz",
+ "integrity": "sha512-m/pZQy4Gj287eNy94nivy5wchN3Kp+Q5WgUPNy5lJSZ3sgkVKSYV/ZChMAQVIgx1SqfZ2zBZtPA2YlXIWxxJOQ==",
"requires": {
- "debug": "=3.1.0"
+ "debug": "^3.2.6"
}
},
"for-in": {
@@ -3929,12 +3918,6 @@
"resolve-dir": "^1.0.0"
}
},
- "global-modules-path": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/global-modules-path/-/global-modules-path-2.3.1.tgz",
- "integrity": "sha512-y+shkf4InI7mPRHSo2b/k6ix6+NLDtyccYv86whhxrSGX9wjPX1VMITmrDbE1eh7zkzhiWtW2sHklJYoQ62Cxg==",
- "dev": true
- },
"global-prefix": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz",
@@ -3949,30 +3932,30 @@
}
},
"globals": {
- "version": "11.10.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-11.10.0.tgz",
- "integrity": "sha512-0GZF1RiPKU97IHUO5TORo9w1PwrH/NBPl+fS7oMLdaTRiYmYbwK4NWoZWrAdd0/abG9R2BU+OiwyQpTpE6pdfQ==",
+ "version": "11.11.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-11.11.0.tgz",
+ "integrity": "sha512-WHq43gS+6ufNOEqlrDBxVEbb8ntfXrfAUU2ZOpCxrBdGKW3gyv8mCxAfIBD0DroPKGrJ2eSsXsLtY9MPntsyTw==",
"dev": true
},
"globby": {
- "version": "8.0.2",
- "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.2.tgz",
- "integrity": "sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w==",
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-9.0.0.tgz",
+ "integrity": "sha512-q0qiO/p1w/yJ0hk8V9x1UXlgsXUxlGd0AHUOXZVXBO6aznDtpx7M8D1kBrCAItoPm+4l8r6ATXV1JpjY2SBQOw==",
"dev": true,
"requires": {
- "array-union": "^1.0.1",
- "dir-glob": "2.0.0",
- "fast-glob": "^2.0.2",
- "glob": "^7.1.2",
- "ignore": "^3.3.5",
- "pify": "^3.0.0",
- "slash": "^1.0.0"
+ "array-union": "^1.0.2",
+ "dir-glob": "^2.2.1",
+ "fast-glob": "^2.2.6",
+ "glob": "^7.1.3",
+ "ignore": "^4.0.3",
+ "pify": "^4.0.1",
+ "slash": "^2.0.0"
},
"dependencies": {
- "slash": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
- "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=",
+ "pify": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+ "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
"dev": true
}
}
@@ -4006,11 +3989,6 @@
"integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=",
"dev": true
},
- "gud": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/gud/-/gud-1.0.0.tgz",
- "integrity": "sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw=="
- },
"handle-thing": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.0.tgz",
@@ -4161,16 +4139,6 @@
"resolve-pathname": "^2.2.0",
"value-equal": "^0.4.0",
"warning": "^3.0.0"
- },
- "dependencies": {
- "warning": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz",
- "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=",
- "requires": {
- "loose-envify": "^1.0.0"
- }
- }
}
},
"hjson": {
@@ -4195,9 +4163,9 @@
"integrity": "sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw=="
},
"homedir-polyfill": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz",
- "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz",
+ "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==",
"dev": true,
"requires": {
"parse-passwd": "^1.0.0"
@@ -4272,15 +4240,15 @@
}
},
"http-proxy-middleware": {
- "version": "0.18.0",
- "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.18.0.tgz",
- "integrity": "sha512-Fs25KVMPAIIcgjMZkVHJoKg9VcXcC1C8yb9JUgeDvVXY0S/zgVIhMb+qVswDIgtJe2DfckMSY2d6TuTEutlk6Q==",
+ "version": "0.19.1",
+ "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz",
+ "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==",
"dev": true,
"requires": {
- "http-proxy": "^1.16.2",
+ "http-proxy": "^1.17.0",
"is-glob": "^4.0.0",
- "lodash": "^4.17.5",
- "micromatch": "^3.1.9"
+ "lodash": "^4.17.11",
+ "micromatch": "^3.1.10"
}
},
"http-signature": {
@@ -4345,9 +4313,9 @@
"dev": true
},
"ignore": {
- "version": "3.3.10",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz",
- "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==",
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
+ "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
"dev": true
},
"ignore-styles": {
@@ -4440,13 +4408,21 @@
"dev": true
},
"internal-ip": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-3.0.1.tgz",
- "integrity": "sha512-NXXgESC2nNVtU+pqmC9e6R8B1GpKxzsAQhffvh5AL79qKnodd+L7tnEQmTiUAVngqLalPbSqRA7XGIEL5nCd0Q==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.2.0.tgz",
+ "integrity": "sha512-ZY8Rk+hlvFeuMmG5uH1MXhhdeMntmIaxaInvAmzMq/SHV8rv4Kh+6GiQNNDQd0wZFrcO+FiTBo8lui/osKOyJw==",
"dev": true,
"requires": {
- "default-gateway": "^2.6.0",
- "ipaddr.js": "^1.5.2"
+ "default-gateway": "^4.0.1",
+ "ipaddr.js": "^1.9.0"
+ },
+ "dependencies": {
+ "ipaddr.js": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz",
+ "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==",
+ "dev": true
+ }
}
},
"interpret": {
@@ -4527,15 +4503,6 @@
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
"integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
},
- "is-builtin-module": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
- "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
- "dev": true,
- "requires": {
- "builtin-modules": "^1.0.0"
- }
- },
"is-callable": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz",
@@ -4773,9 +4740,9 @@
"dev": true
},
"istanbul-api": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-2.1.0.tgz",
- "integrity": "sha512-+Ygg4t1StoiNlBGc6x0f8q/Bv26FbZqP/+jegzfNpU7Q8o+4ZRoJxJPhBkgE/UonpAjtxnE4zCZIyJX+MwLRMQ==",
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-2.1.1.tgz",
+ "integrity": "sha512-kVmYrehiwyeBAk/wE71tW6emzLiHGjYIiDrc8sfyty4F8M02/lrgXSm+R1kXysmF20zArvmZXjlE/mg24TVPJw==",
"dev": true,
"requires": {
"async": "^2.6.1",
@@ -4786,7 +4753,7 @@
"istanbul-lib-instrument": "^3.1.0",
"istanbul-lib-report": "^2.0.4",
"istanbul-lib-source-maps": "^3.0.2",
- "istanbul-reports": "^2.1.0",
+ "istanbul-reports": "^2.1.1",
"js-yaml": "^3.12.0",
"make-dir": "^1.3.0",
"minimatch": "^3.0.4",
@@ -4855,38 +4822,32 @@
"requires": {
"ms": "^2.1.1"
}
- },
- "ms": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
- "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
- "dev": true
}
}
},
"istanbul-reports": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.1.0.tgz",
- "integrity": "sha512-azQdSX+dtTtkQEfqq20ICxWi6eOHXyHIgMFw1VOOVi8iIPWeCWRgCyFh/CsBKIhcgskMI8ExXmU7rjXTRCIJ+A==",
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.1.1.tgz",
+ "integrity": "sha512-FzNahnidyEPBCI0HcufJoSEoKykesRlFcSzQqjH9x0+LC8tnnE/p/90PBLu8iZTxr8yYZNyTtiAujUqyN+CIxw==",
"dev": true,
"requires": {
- "handlebars": "^4.0.11"
+ "handlebars": "^4.1.0"
}
},
"jest": {
- "version": "24.0.0",
- "resolved": "https://registry.npmjs.org/jest/-/jest-24.0.0.tgz",
- "integrity": "sha512-1Z2EblP4BnERbWZGtipGb9zjHDq7nCHgCY7V57F5SYaFRJV4DE1HKoOz+CRC5OrAThN9OVhRlUhTzsTFArg2iQ==",
+ "version": "24.1.0",
+ "resolved": "https://registry.npmjs.org/jest/-/jest-24.1.0.tgz",
+ "integrity": "sha512-+q91L65kypqklvlRFfXfdzUKyngQLOcwGhXQaLmVHv+d09LkNXuBuGxlofTFW42XMzu3giIcChchTsCNUjQ78A==",
"dev": true,
"requires": {
"import-local": "^2.0.0",
- "jest-cli": "^24.0.0"
+ "jest-cli": "^24.1.0"
},
"dependencies": {
"jest-cli": {
- "version": "24.0.0",
- "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-24.0.0.tgz",
- "integrity": "sha512-mElnFipLaGxo1SiQ1CLvuaz3eX07MJc4HcyKrApSJf8xSdY1/EwaHurKwu1g2cDiwIgY8uHj7UcF5OYbtiBOWg==",
+ "version": "24.1.0",
+ "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-24.1.0.tgz",
+ "integrity": "sha512-U/iyWPwOI0T1CIxVLtk/2uviOTJ/OiSWJSe8qt6X1VkbbgP+nrtLJlmT9lPBe4lK78VNFJtrJ7pttcNv/s7yCw==",
"dev": true,
"requires": {
"ansi-escapes": "^3.0.0",
@@ -4901,16 +4862,16 @@
"istanbul-lib-instrument": "^3.0.1",
"istanbul-lib-source-maps": "^3.0.1",
"jest-changed-files": "^24.0.0",
- "jest-config": "^24.0.0",
+ "jest-config": "^24.1.0",
"jest-environment-jsdom": "^24.0.0",
"jest-get-type": "^24.0.0",
"jest-haste-map": "^24.0.0",
"jest-message-util": "^24.0.0",
"jest-regex-util": "^24.0.0",
- "jest-resolve-dependencies": "^24.0.0",
- "jest-runner": "^24.0.0",
- "jest-runtime": "^24.0.0",
- "jest-snapshot": "^24.0.0",
+ "jest-resolve-dependencies": "^24.1.0",
+ "jest-runner": "^24.1.0",
+ "jest-runtime": "^24.1.0",
+ "jest-snapshot": "^24.1.0",
"jest-util": "^24.0.0",
"jest-validate": "^24.0.0",
"jest-watcher": "^24.0.0",
@@ -4942,27 +4903,26 @@
}
},
"jest-config": {
- "version": "24.0.0",
- "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-24.0.0.tgz",
- "integrity": "sha512-9/soqWL5YSq1ZJtgVJ5YYPCL1f9Mi2lVCp5+OXuYBOaN8DHSFRCSWip0rQ6N+mPTOEIAlCvcUH8zaPOwK4hePg==",
+ "version": "24.1.0",
+ "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-24.1.0.tgz",
+ "integrity": "sha512-FbbRzRqtFC6eGjG5VwsbW4E5dW3zqJKLWYiZWhB0/4E5fgsMw8GODLbGSrY5t17kKOtCWb/Z7nsIThRoDpuVyg==",
"dev": true,
"requires": {
"@babel/core": "^7.1.0",
- "babel-jest": "^24.0.0",
+ "babel-jest": "^24.1.0",
"chalk": "^2.0.1",
"glob": "^7.1.1",
"jest-environment-jsdom": "^24.0.0",
"jest-environment-node": "^24.0.0",
"jest-get-type": "^24.0.0",
- "jest-jasmine2": "^24.0.0",
+ "jest-jasmine2": "^24.1.0",
"jest-regex-util": "^24.0.0",
- "jest-resolve": "^24.0.0",
+ "jest-resolve": "^24.1.0",
"jest-util": "^24.0.0",
"jest-validate": "^24.0.0",
"micromatch": "^3.1.10",
"pretty-format": "^24.0.0",
- "realpath-native": "^1.0.2",
- "uuid": "^3.3.2"
+ "realpath-native": "^1.0.2"
}
},
"jest-diff": {
@@ -5042,22 +5002,23 @@
}
},
"jest-jasmine2": {
- "version": "24.0.0",
- "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-24.0.0.tgz",
- "integrity": "sha512-q1xEV9KHM0bgfBj3yrkrjRF5kxpNDkWPCwVfSPN1DC+pD6J5wrM9/u2BgzhKhALXiaZUUhJ+f/OcEC0Gwpw90A==",
+ "version": "24.1.0",
+ "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-24.1.0.tgz",
+ "integrity": "sha512-H+o76SdSNyCh9fM5K8upK45YTo/DiFx5w2YAzblQebSQmukDcoVBVeXynyr7DDnxh+0NTHYRCLwJVf3tC518wg==",
"dev": true,
"requires": {
"@babel/traverse": "^7.1.0",
"chalk": "^2.0.1",
"co": "^4.6.0",
- "expect": "^24.0.0",
+ "expect": "^24.1.0",
"is-generator-fn": "^2.0.0",
"jest-each": "^24.0.0",
"jest-matcher-utils": "^24.0.0",
"jest-message-util": "^24.0.0",
- "jest-snapshot": "^24.0.0",
+ "jest-snapshot": "^24.1.0",
"jest-util": "^24.0.0",
- "pretty-format": "^24.0.0"
+ "pretty-format": "^24.0.0",
+ "throat": "^4.0.0"
}
},
"jest-leak-detector": {
@@ -5107,9 +5068,9 @@
"dev": true
},
"jest-resolve": {
- "version": "24.0.0",
- "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-24.0.0.tgz",
- "integrity": "sha512-uKDGyJqNaBQKox1DJzm27CJobADsIMNgZGusXhtYzl98LKu/fKuokkRsd7EBVgoDA80HKHc3LOPKuYLryMu1vw==",
+ "version": "24.1.0",
+ "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-24.1.0.tgz",
+ "integrity": "sha512-TPiAIVp3TG6zAxH28u/6eogbwrvZjBMWroSLBDkwkHKrqxB/RIdwkWDye4uqPlZIXWIaHtifY3L0/eO5Z0f2wg==",
"dev": true,
"requires": {
"browser-resolve": "^1.11.3",
@@ -5118,30 +5079,31 @@
}
},
"jest-resolve-dependencies": {
- "version": "24.0.0",
- "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-24.0.0.tgz",
- "integrity": "sha512-CJGS5ME2g5wL16o3Y22ga9p5ntNT5CUYX40/0lYj9ic9jB5YHm/qMKTgbFt9kowEBiMOFpXy15dWtBTEU54+zg==",
+ "version": "24.1.0",
+ "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-24.1.0.tgz",
+ "integrity": "sha512-2VwPsjd3kRPu7qe2cpytAgowCObk5AKeizfXuuiwgm1a9sijJDZe8Kh1sFj6FKvSaNEfCPlBVkZEJa2482m/Uw==",
"dev": true,
"requires": {
"jest-regex-util": "^24.0.0",
- "jest-snapshot": "^24.0.0"
+ "jest-snapshot": "^24.1.0"
}
},
"jest-runner": {
- "version": "24.0.0",
- "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-24.0.0.tgz",
- "integrity": "sha512-XefXm2XimKtwdfi2am4364GfCmLD1tOjiRtDexY65diCXt4Rw23rxj2wiW7p9s8Nh9dzJQNmrheqZ5rzvn762g==",
+ "version": "24.1.0",
+ "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-24.1.0.tgz",
+ "integrity": "sha512-CDGOkT3AIFl16BLL/OdbtYgYvbAprwJ+ExKuLZmGSCSldwsuU2dEGauqkpvd9nphVdAnJUcP12e/EIlnTX0QXg==",
"dev": true,
"requires": {
+ "chalk": "^2.4.2",
"exit": "^0.1.2",
"graceful-fs": "^4.1.15",
- "jest-config": "^24.0.0",
+ "jest-config": "^24.1.0",
"jest-docblock": "^24.0.0",
"jest-haste-map": "^24.0.0",
- "jest-jasmine2": "^24.0.0",
+ "jest-jasmine2": "^24.1.0",
"jest-leak-detector": "^24.0.0",
"jest-message-util": "^24.0.0",
- "jest-runtime": "^24.0.0",
+ "jest-runtime": "^24.1.0",
"jest-util": "^24.0.0",
"jest-worker": "^24.0.0",
"source-map-support": "^0.5.6",
@@ -5149,9 +5111,9 @@
}
},
"jest-runtime": {
- "version": "24.0.0",
- "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-24.0.0.tgz",
- "integrity": "sha512-UeVoTGiij8upcqfyBlJvImws7IGY+ZWtgVpt1h4VmVbyei39tVGia/20VoP3yvodS6FdjTwBj+JzVNuoh/9UTw==",
+ "version": "24.1.0",
+ "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-24.1.0.tgz",
+ "integrity": "sha512-59/BY6OCuTXxGeDhEMU7+N33dpMQyXq7MLK07cNSIY/QYt2QZgJ7Tjx+rykBI0skAoigFl0A5tmT8UdwX92YuQ==",
"dev": true,
"requires": {
"@babel/core": "^7.1.0",
@@ -5162,19 +5124,19 @@
"fast-json-stable-stringify": "^2.0.0",
"glob": "^7.1.3",
"graceful-fs": "^4.1.15",
- "jest-config": "^24.0.0",
+ "jest-config": "^24.1.0",
"jest-haste-map": "^24.0.0",
"jest-message-util": "^24.0.0",
"jest-regex-util": "^24.0.0",
- "jest-resolve": "^24.0.0",
- "jest-snapshot": "^24.0.0",
+ "jest-resolve": "^24.1.0",
+ "jest-snapshot": "^24.1.0",
"jest-util": "^24.0.0",
"jest-validate": "^24.0.0",
"micromatch": "^3.1.10",
"realpath-native": "^1.0.0",
"slash": "^2.0.0",
- "strip-bom": "3.0.0",
- "write-file-atomic": "^2.4.2",
+ "strip-bom": "^3.0.0",
+ "write-file-atomic": "2.4.1",
"yargs": "^12.0.2"
}
},
@@ -5185,9 +5147,9 @@
"dev": true
},
"jest-snapshot": {
- "version": "24.0.0",
- "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-24.0.0.tgz",
- "integrity": "sha512-7OcrckVnfzVYxSGPYl2Sn+HyT30VpDv+FMBFbQxSQ6DV2K9Js6vYT6d4SBPKp6DfDiEL2txNssJBxtlvF+Dymw==",
+ "version": "24.1.0",
+ "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-24.1.0.tgz",
+ "integrity": "sha512-th6TDfFqEmXvuViacU1ikD7xFb7lQsPn2rJl7OEmnfIVpnrx3QNY2t3PE88meeg0u/mQ0nkyvmC05PBqO4USFA==",
"dev": true,
"requires": {
"@babel/types": "^7.0.0",
@@ -5195,7 +5157,7 @@
"jest-diff": "^24.0.0",
"jest-matcher-utils": "^24.0.0",
"jest-message-util": "^24.0.0",
- "jest-resolve": "^24.0.0",
+ "jest-resolve": "^24.1.0",
"mkdirp": "^0.5.1",
"natural-compare": "^1.4.0",
"pretty-format": "^24.0.0",
@@ -5393,9 +5355,9 @@
"dev": true
},
"kleur": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.1.tgz",
- "integrity": "sha512-P3kRv+B+Ra070ng2VKQqW4qW7gd/v3iD8sy/zOdcYRsfiD+QBokQNOps/AfP6Hr48cBhIIBFWckB9aO+IZhrWg==",
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.2.tgz",
+ "integrity": "sha512-3h7B2WRT5LNXOtQiAaWonilegHcPSf9nLVXlSTci8lu1dZUuui61+EsPEZqSVxY7rXYmB2DVKMQILxaO5WL61Q==",
"dev": true
},
"lcid": {
@@ -5429,12 +5391,6 @@
"type-check": "~0.3.2"
}
},
- "lightercollective": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/lightercollective/-/lightercollective-0.1.0.tgz",
- "integrity": "sha512-J9tg5uraYoQKaWbmrzDDexbG6hHnMcWS1qLYgJSWE+mpA3U5OCSeMUhb+K55otgZJ34oFdR0ECvdIb3xuO5JOQ==",
- "dev": true
- },
"load-json-file": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
@@ -5503,6 +5459,16 @@
"resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
"integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168="
},
+ "lodash.get": {
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
+ "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk="
+ },
+ "lodash.isequal": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
+ "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA="
+ },
"lodash.mergewith": {
"version": "4.6.1",
"resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz",
@@ -5607,6 +5573,12 @@
"tmpl": "1.0.x"
}
},
+ "mamacro": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/mamacro/-/mamacro-0.0.3.tgz",
+ "integrity": "sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA==",
+ "dev": true
+ },
"map-age-cleaner": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz",
@@ -5655,14 +5627,14 @@
"dev": true
},
"mem": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/mem/-/mem-4.0.0.tgz",
- "integrity": "sha512-WQxG/5xYc3tMbYLXoXPm81ET2WDULiU5FxbuIoNbJqLOOI8zehXFdZuiUEgfdrU2mVB1pxBZUGlYORSrpuJreA==",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/mem/-/mem-4.1.0.tgz",
+ "integrity": "sha512-I5u6Q1x7wxO0kdOpYBB28xueHADYps5uty/zg936CiG8NTe5sJL8EjrCuLneuDW3PlMdZBGDIn8BirEVdovZvg==",
"dev": true,
"requires": {
"map-age-cleaner": "^0.1.1",
"mimic-fn": "^1.0.0",
- "p-is-promise": "^1.1.0"
+ "p-is-promise": "^2.0.0"
}
},
"memory-fs": {
@@ -5854,18 +5826,18 @@
"dev": true
},
"mime-db": {
- "version": "1.37.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz",
- "integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==",
+ "version": "1.38.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.38.0.tgz",
+ "integrity": "sha512-bqVioMFFzc2awcdJZIzR3HjZFX20QhilVS7hytkKrv7xFAn8bM1gzc/FOX2awLISvWe0PV8ptFKcon+wZ5qYkg==",
"dev": true
},
"mime-types": {
- "version": "2.1.21",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz",
- "integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==",
+ "version": "2.1.22",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.22.tgz",
+ "integrity": "sha512-aGl6TZGnhm/li6F7yx82bJiBZwgiEa4Hf6CNr8YO+r5UHr53tSTYZb102zyU50DOWWKeOv0uQLRL0/9EiKWCog==",
"dev": true,
"requires": {
- "mime-db": "~1.37.0"
+ "mime-db": "~1.38.0"
}
},
"mimic-fn": {
@@ -6000,6 +5972,15 @@
"integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==",
"dev": true
},
+ "debug": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
"glob": {
"version": "7.1.2",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
@@ -6014,6 +5995,12 @@
"path-is-absolute": "^1.0.0"
}
},
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ },
"supports-color": {
"version": "5.4.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz",
@@ -6040,9 +6027,9 @@
}
},
"ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
+ "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
},
"multicast-dns": {
"version": "6.2.3",
@@ -6204,21 +6191,22 @@
"dev": true
},
"node-notifier": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.3.0.tgz",
- "integrity": "sha512-AhENzCSGZnZJgBARsUjnQ7DnZbzyP+HxlVXuD0xqAnvL8q+OqtSX7lGg9e8nHzwXkMMXNdVeqq4E2M3EUAqX6Q==",
+ "version": "5.4.0",
+ "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.4.0.tgz",
+ "integrity": "sha512-SUDEb+o71XR5lXSTyivXd9J7fCloE3SyP4lSgt3lU2oSANiox+SxlNRGPjDKrwU1YN3ix2KN/VGGCg0t01rttQ==",
"dev": true,
"requires": {
"growly": "^1.3.0",
+ "is-wsl": "^1.1.0",
"semver": "^5.5.0",
"shellwords": "^0.1.1",
"which": "^1.3.0"
}
},
"node-releases": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.5.tgz",
- "integrity": "sha512-6C2K0x1QlYTz9wCueMN/DVZFcBVg/qsj2k9iV5gV/+OvG4KNrl7Nu7TWbWFQ3/Z2V10qVFQWtj5Xa+VBodcI6g==",
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.8.tgz",
+ "integrity": "sha512-gQm+K9mGCiT/NXHy+V/ZZS1N/LOaGGqRAAJJs3X9Ah1g+CIbRcBgNyoNYQ+SEtcyAtB9KqDruu+fF7nWjsqRaA==",
"dev": true,
"requires": {
"semver": "^5.3.0"
@@ -6329,13 +6317,13 @@
}
},
"normalize-package-data": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
- "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==",
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
+ "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
"dev": true,
"requires": {
"hosted-git-info": "^2.1.4",
- "is-builtin-module": "^1.0.0",
+ "resolve": "^1.10.0",
"semver": "2 || 3 || 4 || 5",
"validate-npm-package-license": "^3.0.1"
}
@@ -6356,9 +6344,9 @@
"dev": true
},
"normalize.css": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/normalize.css/-/normalize.css-8.0.1.tgz",
- "integrity": "sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg=="
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/normalize.css/-/normalize.css-4.1.1.tgz",
+ "integrity": "sha1-TwsdWiNTgyUrBNhWa4Zsxfytnww="
},
"npm-run-path": {
"version": "2.0.2",
@@ -6399,9 +6387,9 @@
"integrity": "sha1-StCAk21EPCVhrtnyGX7//iX05QY="
},
"nwsapi": {
- "version": "2.0.9",
- "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.0.9.tgz",
- "integrity": "sha512-nlWFSCTYQcHk/6A9FFnfhKc14c3aFhfdNBXgo8Qgi9QTBu/qg3Ww+Uiz9wMzXd1T8GFxPc2QIHB6Qtf2XFryFQ==",
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.1.1.tgz",
+ "integrity": "sha512-T5GaA1J/d34AC8mkrFD2O0DR17kwJ702ZOtJOsS8RpbsQZVOC2/xYFb1i/cw+xdM54JIlMuojjDOYct8GIWtwg==",
"dev": true
},
"oauth-sign": {
@@ -6447,9 +6435,9 @@
}
},
"object-keys": {
- "version": "1.0.12",
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz",
- "integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag=="
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.0.tgz",
+ "integrity": "sha512-6OO5X1+2tYkNyNEx6TsCxEqFfRWaqx6EtMiSbGrw8Ob8v9Ne+Hl8rBAgLBZn5wjEz3s/s6U1WXFUFOcxxAwUpg=="
},
"object-visit": {
"version": "1.0.1",
@@ -6516,9 +6504,9 @@
}
},
"on-headers": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz",
- "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz",
+ "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==",
"dev": true
},
"once": {
@@ -6649,9 +6637,9 @@
"dev": true
},
"p-is-promise": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz",
- "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.0.0.tgz",
+ "integrity": "sha512-pzQPhYMCAgLAKPWD2jC3Se9fEfrD9npNos0y150EeqZll7akhEgGhTW/slB6lHku8AvYGiJ+YJ5hfHKePPgFWg==",
"dev": true
},
"p-limit": {
@@ -6708,9 +6696,9 @@
}
},
"parse-asn1": {
- "version": "5.1.3",
- "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.3.tgz",
- "integrity": "sha512-VrPoetlz7B/FqjBLD2f5wBVZvsZVLnRUrxVLfRYhGXCODa/NWE4p3Wp+6+aV3ZPL3KM7/OZmxDIwwijD7yuucg==",
+ "version": "5.1.4",
+ "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.4.tgz",
+ "integrity": "sha512-Qs5duJcuvNExRfFZ99HDD3z4mAi3r9Wl/FOjEOijlxwCZs7E7mW2vjTpgQ4J8LpTF8x5v+1Vn5UQFejmWT11aw==",
"dev": true,
"requires": {
"asn1.js": "^4.0.0",
@@ -6855,9 +6843,9 @@
}
},
"pirates": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.0.tgz",
- "integrity": "sha512-8t5BsXy1LUIjn3WWOlOuFDuKswhQb/tkak641lvBgmPOBUQHXveORtlMCp6OdPV1dtuTaEahKA8VNz6uLfKBtA==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz",
+ "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==",
"dev": true,
"requires": {
"node-modules-regexp": "^1.0.0"
@@ -6878,11 +6866,6 @@
"integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==",
"dev": true
},
- "popper.js": {
- "version": "1.14.6",
- "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.14.6.tgz",
- "integrity": "sha512-AGwHGQBKumlk/MDfrSOf0JHhJCImdDMcGNoqKmKkU+68GFazv3CQ6q9r7Ja1sKDZmYWTckY/uLyEznheTDycnA=="
- },
"portfinder": {
"version": "1.0.20",
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.20.tgz",
@@ -6908,6 +6891,12 @@
"requires": {
"ms": "2.0.0"
}
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
}
}
},
@@ -6939,9 +6928,9 @@
}
},
"postcss-cli": {
- "version": "6.1.1",
- "resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-6.1.1.tgz",
- "integrity": "sha512-18PQO4qCDWY6vggnG3k+i5zrUnRc4I6P4MpKQWGbNyTfWBaRgu/nScunw6VH5QnUKtRu0NuPF5SpxhcYzWVXDg==",
+ "version": "6.1.2",
+ "resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-6.1.2.tgz",
+ "integrity": "sha512-jIWfIkqt8cTThSpH8DBaNxHlBf99OKSem2RseRpfVPqWayxHKQB0IWdS/IF5XSGeFU5QslSDTdVHnw6qggXGkA==",
"dev": true,
"requires": {
"chalk": "^2.1.0",
@@ -6949,7 +6938,7 @@
"dependency-graph": "^0.8.0",
"fs-extra": "^7.0.0",
"get-stdin": "^6.0.0",
- "globby": "^8.0.0",
+ "globby": "^9.0.0",
"postcss": "^7.0.0",
"postcss-load-config": "^2.0.0",
"postcss-reporter": "^6.0.0",
@@ -7194,9 +7183,9 @@
}
},
"postcss-modules-local-by-default": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-2.0.4.tgz",
- "integrity": "sha512-WvuSaTKXUqYJbnT7R3YrsNrHv/C5vRfr5VglS4bFOk0MYT4CLBfc/xgExA+x2RftlYgiBDvWmVs191Xv8S8gZQ==",
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-2.0.5.tgz",
+ "integrity": "sha512-iFgxlCAVLno5wIJq+4hyuOmc4VjZEZxzpdeuZcBytLNWEK5Bx2oRF9PPcAz5TALbaFvrZm8sJYtJ3hV+tMSEIg==",
"dev": true,
"requires": {
"css-selector-tokenizer": "^0.7.0",
@@ -7442,22 +7431,23 @@
"dev": true
},
"prompts": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.0.1.tgz",
- "integrity": "sha512-8lnEOSIGQbgbnO47+13S+H204L8ISogGulyi0/NNEFAQ9D1VMNTrJ9SBX2Ra03V4iPn/zt36HQMndRYkaPoWiQ==",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.0.3.tgz",
+ "integrity": "sha512-H8oWEoRZpybm6NV4to9/1limhttEo13xK62pNvn2JzY0MA03p7s0OjtmhXyon3uJmxiJJVSuUwEJFFssI3eBiQ==",
"dev": true,
"requires": {
- "kleur": "^3.0.0",
+ "kleur": "^3.0.2",
"sisteransi": "^1.0.0"
}
},
"prop-types": {
- "version": "15.6.2",
- "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz",
- "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==",
+ "version": "15.7.2",
+ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz",
+ "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==",
"requires": {
- "loose-envify": "^1.3.1",
- "object-assign": "^4.1.1"
+ "loose-envify": "^1.4.0",
+ "object-assign": "^4.1.1",
+ "react-is": "^16.8.1"
}
},
"proxy-addr": {
@@ -7541,6 +7531,14 @@
"integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
"dev": true
},
+ "pure-render-decorator": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/pure-render-decorator/-/pure-render-decorator-1.1.1.tgz",
+ "integrity": "sha1-9eC3bOEoeOadpBp+6GJ/71S19Xo=",
+ "requires": {
+ "fbjs": "^0.8.0"
+ }
+ },
"qs": {
"version": "6.5.2",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
@@ -7566,9 +7564,9 @@
"dev": true
},
"randombytes": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz",
- "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
+ "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
"dev": true,
"requires": {
"safe-buffer": "^5.1.0"
@@ -7614,44 +7612,51 @@
}
},
"react": {
- "version": "16.7.0",
- "resolved": "https://registry.npmjs.org/react/-/react-16.7.0.tgz",
- "integrity": "sha512-StCz3QY8lxTb5cl2HJxjwLFOXPIFQp+p+hxQfc8WE0QiLfCtIlKj8/+5tjjKm8uSTlAW+fCPaavGFS06V9Ar3A==",
+ "version": "16.8.3",
+ "resolved": "https://registry.npmjs.org/react/-/react-16.8.3.tgz",
+ "integrity": "sha512-3UoSIsEq8yTJuSu0luO1QQWYbgGEILm+eJl2QN/VLDi7hL+EN18M3q3oVZwmVzzBJ3DkM7RMdRwBmZZ+b4IzSA==",
"requires": {
"loose-envify": "^1.1.0",
"object-assign": "^4.1.1",
"prop-types": "^15.6.2",
- "scheduler": "^0.12.0"
+ "scheduler": "^0.13.3"
+ }
+ },
+ "react-ace": {
+ "version": "6.4.0",
+ "resolved": "https://registry.npmjs.org/react-ace/-/react-ace-6.4.0.tgz",
+ "integrity": "sha512-woTTgGk9x4GRRWiM4QLNOspjaJAYLX3UZ3J2XRYQvJiN6wyxrFY9x7rdOKc+4Tj+khb/ccPiDj/kll4UeJEDPw==",
+ "requires": {
+ "brace": "^0.11.1",
+ "diff-match-patch": "^1.0.4",
+ "lodash.get": "^4.4.2",
+ "lodash.isequal": "^4.5.0",
+ "prop-types": "^15.6.2"
+ }
+ },
+ "react-addons-css-transition-group": {
+ "version": "15.6.2",
+ "resolved": "https://registry.npmjs.org/react-addons-css-transition-group/-/react-addons-css-transition-group-15.6.2.tgz",
+ "integrity": "sha1-nkN2vPQLUhfRTsaFUwgc7ksIptY=",
+ "requires": {
+ "react-transition-group": "^1.2.0"
}
},
"react-dom": {
- "version": "16.7.0",
- "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.7.0.tgz",
- "integrity": "sha512-D0Ufv1ExCAmF38P2Uh1lwpminZFRXEINJe53zRAbm4KPwSyd6DY/uDoS0Blj9jvPpn1+wivKpZYc8aAAN/nAkg==",
+ "version": "16.8.3",
+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.8.3.tgz",
+ "integrity": "sha512-ttMem9yJL4/lpItZAQ2NTFAbV7frotHk5DZEHXUOws2rMmrsvh1Na7ThGT0dTzUIl6pqTOi5tYREfL8AEna3lA==",
"requires": {
"loose-envify": "^1.1.0",
"object-assign": "^4.1.1",
"prop-types": "^15.6.2",
- "scheduler": "^0.12.0"
+ "scheduler": "^0.13.3"
}
},
- "react-lifecycles-compat": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz",
- "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA=="
- },
- "react-popper": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/react-popper/-/react-popper-1.3.2.tgz",
- "integrity": "sha512-UbFWj55Yt9uqvy0oZ+vULDL2Bw1oxeZF9/JzGyxQ5ypgauRH/XlarA5+HLZWro/Zss6Ht2kqpegtb6sYL8GUGw==",
- "requires": {
- "@babel/runtime": "^7.1.2",
- "create-react-context": "<=0.2.2",
- "popper.js": "^1.14.4",
- "prop-types": "^15.6.1",
- "typed-styles": "^0.0.7",
- "warning": "^4.0.2"
- }
+ "react-is": {
+ "version": "16.8.3",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.8.3.tgz",
+ "integrity": "sha512-Y4rC1ZJmsxxkkPuMLwvKvlL1Zfpbcu+Bf4ZigkHup3v9EfdYhAlWAaVyA19olXq2o2mGn0w+dFKvk3pVVlYcIA=="
},
"react-router": {
"version": "4.3.1",
@@ -7665,6 +7670,16 @@
"path-to-regexp": "^1.7.0",
"prop-types": "^15.6.1",
"warning": "^4.0.1"
+ },
+ "dependencies": {
+ "warning": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz",
+ "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==",
+ "requires": {
+ "loose-envify": "^1.0.0"
+ }
+ }
}
},
"react-router-dom": {
@@ -7678,25 +7693,36 @@
"prop-types": "^15.6.1",
"react-router": "^4.3.1",
"warning": "^4.0.1"
+ },
+ "dependencies": {
+ "warning": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz",
+ "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==",
+ "requires": {
+ "loose-envify": "^1.0.0"
+ }
+ }
}
},
"react-table": {
- "version": "6.8.6",
- "resolved": "https://registry.npmjs.org/react-table/-/react-table-6.8.6.tgz",
- "integrity": "sha1-oK2LSDkxkFLVvvwBJgP7Fh5S7eM=",
+ "version": "6.9.2",
+ "resolved": "https://registry.npmjs.org/react-table/-/react-table-6.9.2.tgz",
+ "integrity": "sha512-sTbNHU8Um0xRtmCd1js873HXnXaMWeBwZoiljuj0l1d44eaqjKyYPK/3HCBbJg1yeE2O5pQJ3Km0tlm9niNL9w==",
"requires": {
"classnames": "^2.2.5"
}
},
"react-transition-group": {
- "version": "2.5.3",
- "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-2.5.3.tgz",
- "integrity": "sha512-2DGFck6h99kLNr8pOFk+z4Soq3iISydwOFeeEVPjTN6+Y01CmvbWmnN02VuTWyFdnRtIDPe+wy2q6Ui8snBPZg==",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-1.2.1.tgz",
+ "integrity": "sha512-CWaL3laCmgAFdxdKbhhps+c0HRGF4c+hdM4H23+FI1QBNUyx/AMeIJGWorehPNSaKnQNOAxL7PQmqMu78CDj3Q==",
"requires": {
- "dom-helpers": "^3.3.1",
- "loose-envify": "^1.4.0",
- "prop-types": "^15.6.2",
- "react-lifecycles-compat": "^3.0.4"
+ "chain-function": "^1.0.0",
+ "dom-helpers": "^3.2.0",
+ "loose-envify": "^1.3.1",
+ "prop-types": "^15.5.6",
+ "warning": "^3.0.0"
}
},
"read-cache": {
@@ -7772,9 +7798,9 @@
}
},
"realpath-native": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-1.0.2.tgz",
- "integrity": "sha512-+S3zTvVt9yTntFrBpm7TQmQ3tzpCrnA1a/y+3cUHAc9ZR6aIjG0WNLR+Rj79QpJktY+VeW/TQtFlQ1bzsehI8g==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-1.1.0.tgz",
+ "integrity": "sha512-wlgPA6cCIIg9gKz0fgAPjnzh4yR/LnXovwuo9hvyGvx3h8nX4+/iLZplfUWasXpqD8BdnGnP5njOFjkUwPzvjA==",
"dev": true,
"requires": {
"util.promisify": "^1.0.0"
@@ -7911,23 +7937,23 @@
}
},
"request-promise-core": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.1.tgz",
- "integrity": "sha1-Pu4AssWqgyOc+wTFcA2jb4HNCLY=",
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.2.tgz",
+ "integrity": "sha512-UHYyq1MO8GsefGEt7EprS8UrXsm1TxEvFUX1IMTuSLU2Rh7fTIdFtl8xD7JiEYiWU2dl+NYAjCTksTehQUxPag==",
"dev": true,
"requires": {
- "lodash": "^4.13.1"
+ "lodash": "^4.17.11"
}
},
"request-promise-native": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.5.tgz",
- "integrity": "sha1-UoF3D2jgyXGeUWP9P6tIIhX0/aU=",
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.7.tgz",
+ "integrity": "sha512-rIMnbBdgNViL37nZ1b3L/VfPOpSi0TqVDQPAvO6U14lMzOLrt5nilxCQqtDKhZeDiW0/hkCXGoQjhgJd/tCh6w==",
"dev": true,
"requires": {
- "request-promise-core": "1.1.1",
- "stealthy-require": "^1.1.0",
- "tough-cookie": ">=2.3.3"
+ "request-promise-core": "1.1.2",
+ "stealthy-require": "^1.1.1",
+ "tough-cookie": "^2.3.3"
}
},
"require-directory": {
@@ -7954,11 +7980,6 @@
"integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=",
"dev": true
},
- "resize-observer-polyfill": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz",
- "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg=="
- },
"resolve": {
"version": "1.10.0",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.0.tgz",
@@ -8323,9 +8344,9 @@
"dev": true
},
"scheduler": {
- "version": "0.12.0",
- "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.12.0.tgz",
- "integrity": "sha512-t7MBR28Akcp4Jm+QoR63XgAi9YgCUmgvDHqf5otgAj4QvdoBE4ImCX0ffehefePPG+aitiYHp0g/mW6s4Tp+dw==",
+ "version": "0.13.3",
+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.13.3.tgz",
+ "integrity": "sha512-UxN5QRYWtpR1egNWzJcVLk8jlegxAugswQc984lD3kU7NuobsO37/sRfbpTdBjtnD5TBNFA2Q2oLV5+UmPSmEQ==",
"requires": {
"loose-envify": "^1.1.0",
"object-assign": "^4.1.1"
@@ -8413,6 +8434,12 @@
"requires": {
"ms": "2.0.0"
}
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
}
}
},
@@ -8445,6 +8472,12 @@
"requires": {
"ms": "2.0.0"
}
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
}
}
},
@@ -8611,6 +8644,12 @@
"is-extendable": "^0.1.0"
}
},
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ },
"source-map": {
"version": "0.5.7",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
@@ -8714,15 +8753,6 @@
"url-parse": "^1.4.3"
},
"dependencies": {
- "debug": {
- "version": "3.2.6",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
- "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
- "dev": true,
- "requires": {
- "ms": "^2.1.1"
- }
- },
"faye-websocket": {
"version": "0.11.1",
"resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.1.tgz",
@@ -8731,12 +8761,6 @@
"requires": {
"websocket-driver": ">=0.5.1"
}
- },
- "ms": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
- "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
- "dev": true
}
}
},
@@ -8834,12 +8858,6 @@
"requires": {
"ms": "^2.1.1"
}
- },
- "ms": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
- "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
- "dev": true
}
}
},
@@ -8866,12 +8884,6 @@
"ms": "^2.1.1"
}
},
- "ms": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
- "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
- "dev": true
- },
"readable-stream": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.1.1.tgz",
@@ -9242,20 +9254,20 @@
}
},
"terser": {
- "version": "3.14.1",
- "resolved": "https://registry.npmjs.org/terser/-/terser-3.14.1.tgz",
- "integrity": "sha512-NSo3E99QDbYSMeJaEk9YW2lTg3qS9V0aKGlb+PlOrei1X02r1wSBHCNX/O+yeTRFSWPKPIGj6MqvvdqV4rnVGw==",
+ "version": "3.16.1",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-3.16.1.tgz",
+ "integrity": "sha512-JDJjgleBROeek2iBcSNzOHLKsB/MdDf+E/BOAJ0Tk9r7p9/fVobfv7LMJ/g/k3v9SXdmjZnIlFd5nfn/Rt0Xow==",
"dev": true,
"requires": {
"commander": "~2.17.1",
"source-map": "~0.6.1",
- "source-map-support": "~0.5.6"
+ "source-map-support": "~0.5.9"
}
},
"terser-webpack-plugin": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.2.1.tgz",
- "integrity": "sha512-GGSt+gbT0oKcMDmPx4SRSfJPE1XaN3kQRWG4ghxKQw9cn5G9x6aCKSsgYdvyM0na9NJ4Drv0RG6jbBByZ5CMjw==",
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.2.3.tgz",
+ "integrity": "sha512-GOK7q85oAb/5kE12fMuLdn2btOS9OBZn4VsecpHDywoUC/jLhSAKOiYo0ezx7ss2EXPMzyEWFoE0s1WLE+4+oA==",
"dev": true,
"requires": {
"cacache": "^11.0.2",
@@ -9263,15 +9275,15 @@
"schema-utils": "^1.0.0",
"serialize-javascript": "^1.4.0",
"source-map": "^0.6.1",
- "terser": "^3.8.1",
+ "terser": "^3.16.1",
"webpack-sources": "^1.1.0",
"worker-farm": "^1.5.2"
}
},
"test-exclude": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-5.0.0.tgz",
- "integrity": "sha512-bO3Lj5+qFa9YLfYW2ZcXMOV1pmQvw+KS/DpjqhyX6Y6UZ8zstpZJ+mA2ERkXfpOqhxsJlQiLeVXD3Smsrs6oLw==",
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-5.1.0.tgz",
+ "integrity": "sha512-gwf0S2fFsANC55fSeSqpb8BYk6w3FDvwZxfNjeF6FRgvFa43r+7wRiA/Q0IxoRU37wB/LE8IQ4221BsNucTaCA==",
"dev": true,
"requires": {
"arrify": "^1.0.1",
@@ -9280,6 +9292,11 @@
"require-main-filename": "^1.0.1"
}
},
+ "tether": {
+ "version": "1.4.5",
+ "resolved": "https://registry.npmjs.org/tether/-/tether-1.4.5.tgz",
+ "integrity": "sha512-fysT1Gug2wbRi7a6waeu39yVDwiNtvwj5m9eRD+qZDSHKNghLo6KqP/U3yM2ap6TNUL2skjXGJaJJTJqoC31vw=="
+ },
"throat": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/throat/-/throat-4.1.0.tgz",
@@ -9525,11 +9542,6 @@
"mime-types": "~2.1.18"
}
},
- "typed-styles": {
- "version": "0.0.7",
- "resolved": "https://registry.npmjs.org/typed-styles/-/typed-styles-0.0.7.tgz",
- "integrity": "sha512-pzP0PWoZUhsECYjABgCGQlRGL1n7tOHsgwYv3oIiEpJwGhFTuty/YNeduxQYzXXa3Ge5BdT6sHYIQYpl4uJ+5Q=="
- },
"typedarray": {
"version": "0.0.6",
"resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
@@ -9537,9 +9549,9 @@
"dev": true
},
"typescript": {
- "version": "3.2.4",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.2.4.tgz",
- "integrity": "sha512-0RNDbSdEokBeEAkgNbxJ+BLwSManFy9TeXz8uW+48j/xhEXv1ePME60olyzw2XzUqUBNAYFeJadIqAgNqIACwg==",
+ "version": "3.3.3333",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.3.3333.tgz",
+ "integrity": "sha512-JjSKsAfuHBE/fB2oZ8NxtRTk5iGcg6hkYXMnZ3Wc+b2RSqejEqTaem11mHASMnFilHrax3sLK0GDzcJrekZYLw==",
"dev": true
},
"ua-parser-js": {
@@ -9833,9 +9845,9 @@
}
},
"warning": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.2.tgz",
- "integrity": "sha512-wbTp09q/9C+jJn4KKJfJfoS6VleK/Dti0yqWSm6KMvJ4MRCXFQNapHuJXutJIrWV0Cf4AhTdeIe4qdKHR1+Hug==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz",
+ "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=",
"requires": {
"loose-envify": "^1.0.0"
}
@@ -9877,15 +9889,15 @@
"dev": true
},
"webpack": {
- "version": "4.29.0",
- "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.29.0.tgz",
- "integrity": "sha512-pxdGG0keDBtamE1mNvT5zyBdx+7wkh6mh7uzMOo/uRQ/fhsdj5FXkh/j5mapzs060forql1oXqXN9HJGju+y7w==",
+ "version": "4.29.5",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.29.5.tgz",
+ "integrity": "sha512-DuWlYUT982c7XVHodrLO9quFbNpVq5FNxLrMUfYUTlgKW0+yPimynYf1kttSQpEneAL1FH3P3OLNgkyImx8qIQ==",
"dev": true,
"requires": {
- "@webassemblyjs/ast": "1.7.11",
- "@webassemblyjs/helper-module-context": "1.7.11",
- "@webassemblyjs/wasm-edit": "1.7.11",
- "@webassemblyjs/wasm-parser": "1.7.11",
+ "@webassemblyjs/ast": "1.8.3",
+ "@webassemblyjs/helper-module-context": "1.8.3",
+ "@webassemblyjs/wasm-edit": "1.8.3",
+ "@webassemblyjs/wasm-parser": "1.8.3",
"acorn": "^6.0.5",
"acorn-dynamic-import": "^4.0.0",
"ajv": "^6.1.0",
@@ -9901,7 +9913,7 @@
"mkdirp": "~0.5.0",
"neo-async": "^2.5.0",
"node-libs-browser": "^2.0.0",
- "schema-utils": "^0.4.4",
+ "schema-utils": "^1.0.0",
"tapable": "^1.1.0",
"terser-webpack-plugin": "^1.1.0",
"watchpack": "^1.5.0",
@@ -9909,27 +9921,17 @@
},
"dependencies": {
"acorn": {
- "version": "6.0.5",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.0.5.tgz",
- "integrity": "sha512-i33Zgp3XWtmZBMNvCr4azvOFeWVw1Rk6p3hfi3LUDvIFraOMywb1kAtrbi+med14m4Xfpqm3zRZMT+c0FNE7kg==",
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.1.0.tgz",
+ "integrity": "sha512-MW/FjM+IvU9CgBzjO3UIPCE2pyEwUsoFl+VGdczOPEdxfGFjuKny/gN54mOuX7Qxmb9Rg9MCn2oKiSUeW+pjrw==",
"dev": true
- },
- "schema-utils": {
- "version": "0.4.7",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz",
- "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==",
- "dev": true,
- "requires": {
- "ajv": "^6.1.0",
- "ajv-keywords": "^3.1.0"
- }
}
}
},
"webpack-cli": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.2.1.tgz",
- "integrity": "sha512-jeJveHwz/vwpJ3B8bxEL5a/rVKIpRNJDsKggfKnxuYeohNDW4Y/wB9N/XHJA093qZyS0r6mYL+/crLsIol4WKA==",
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.2.3.tgz",
+ "integrity": "sha512-Ik3SjV6uJtWIAN5jp5ZuBMWEAaP5E4V78XJ2nI+paFPh8v4HPSwo/myN0r29Xc/6ZKnd2IdrAlpSgNOu2CDQ6Q==",
"dev": true,
"requires": {
"chalk": "^2.4.1",
@@ -9937,10 +9939,8 @@
"enhanced-resolve": "^4.1.0",
"findup-sync": "^2.0.0",
"global-modules": "^1.0.0",
- "global-modules-path": "^2.3.0",
"import-local": "^2.0.0",
"interpret": "^1.1.0",
- "lightercollective": "^0.1.0",
"loader-utils": "^1.1.0",
"supports-color": "^5.5.0",
"v8-compile-cache": "^2.0.2",
@@ -9959,12 +9959,12 @@
}
},
"webpack-dev-middleware": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.4.0.tgz",
- "integrity": "sha512-Q9Iyc0X9dP9bAsYskAVJ/hmIZZQwf/3Sy4xCAZgL5cUkjZmUZLt4l5HpbST/Pdgjn3u6pE7u5OdGd1apgzRujA==",
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.6.0.tgz",
+ "integrity": "sha512-oeXA3m+5gbYbDBGo4SvKpAHJJEGMoekUbHgo1RK7CP1sz7/WOSeu/dWJtSTk+rzDCLkPwQhGocgIq6lQqOyOwg==",
"dev": true,
"requires": {
- "memory-fs": "~0.4.1",
+ "memory-fs": "^0.4.1",
"mime": "^2.3.1",
"range-parser": "^1.0.3",
"webpack-log": "^2.0.0"
@@ -9979,9 +9979,9 @@
}
},
"webpack-dev-server": {
- "version": "3.1.14",
- "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.1.14.tgz",
- "integrity": "sha512-mGXDgz5SlTxcF3hUpfC8hrQ11yhAttuUQWf1Wmb+6zo3x6rb7b9mIfuQvAPLdfDRCGRGvakBWHdHOa0I9p/EVQ==",
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.2.1.tgz",
+ "integrity": "sha512-sjuE4mnmx6JOh9kvSbPYw3u/6uxCLHNWfhWaIPwcXWsvWOPN+nc5baq4i9jui3oOBRXGonK9+OI0jVkaz6/rCw==",
"dev": true,
"requires": {
"ansi-html": "0.0.7",
@@ -9989,13 +9989,13 @@
"chokidar": "^2.0.0",
"compression": "^1.5.2",
"connect-history-api-fallback": "^1.3.0",
- "debug": "^3.1.0",
+ "debug": "^4.1.1",
"del": "^3.0.0",
"express": "^4.16.2",
"html-entities": "^1.2.0",
- "http-proxy-middleware": "~0.18.0",
+ "http-proxy-middleware": "^0.19.1",
"import-local": "^2.0.0",
- "internal-ip": "^3.0.1",
+ "internal-ip": "^4.2.0",
"ip": "^1.1.5",
"killable": "^1.0.0",
"loglevel": "^1.4.1",
@@ -10009,9 +10009,9 @@
"sockjs-client": "1.3.0",
"spdy": "^4.0.0",
"strip-ansi": "^3.0.0",
- "supports-color": "^5.1.0",
+ "supports-color": "^6.1.0",
"url": "^0.11.0",
- "webpack-dev-middleware": "3.4.0",
+ "webpack-dev-middleware": "^3.5.1",
"webpack-log": "^2.0.0",
"yargs": "12.0.2"
},
@@ -10028,6 +10028,15 @@
"integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
"dev": true
},
+ "debug": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
"decamelize": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/decamelize/-/decamelize-2.0.0.tgz",
@@ -10046,15 +10055,6 @@
"ansi-regex": "^2.0.0"
}
},
- "supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
- "dev": true,
- "requires": {
- "has-flag": "^3.0.0"
- }
- },
"yargs": {
"version": "12.0.2",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.2.tgz",
@@ -10246,9 +10246,9 @@
"dev": true
},
"write-file-atomic": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.2.tgz",
- "integrity": "sha512-s0b6vB3xIVRLWywa6X9TOMA7k9zio0TMOsl9ZnDkliA/cfJlpHXAscj0gbHVJiTdIuAYpIyqS5GW91fqm6gG5g==",
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.1.tgz",
+ "integrity": "sha512-TGHFeZEZMnv+gBFRfjAcxL5bPHrsGKtnb4qsFAws7/vlh+QfwAaySIw4AXP9ZskTTh5GWu3FLuJhsWVdiJPGvg==",
"dev": true,
"requires": {
"graceful-fs": "^4.1.11",
diff --git a/web-console/package.json b/web-console/package.json
index 7694075..111ad80 100644
--- a/web-console/package.json
+++ b/web-console/package.json
@@ -17,9 +17,9 @@
"start": "webpack-dev-server --hot --open"
},
"dependencies": {
- "@blueprintjs/core": "^3.12.0",
- "@types/hjson": "^2.4.0",
+ "@blueprintjs/core": "1.0.1",
"axios": "^0.18.0",
+ "brace": "^0.11.1",
"classnames": "^2.2.6",
"d3-array": "^2.0.3",
"druid-console": "^0.0.2",
@@ -28,16 +28,20 @@
"hjson": "^3.1.2",
"lodash.debounce": "^4.0.8",
"numeral": "^2.0.6",
- "react": "^16.7.0",
- "react-dom": "^16.7.0",
+ "prop-types": "^15.7.2",
+ "react": "^16.8.3",
+ "react-ace": "^6.4.0",
+ "react-addons-css-transition-group": "^15.6.2",
+ "react-dom": "^16.8.3",
"react-router": "^4.3.1",
"react-router-dom": "^4.3.1",
- "react-table": "^6.8.6",
+ "react-table": "^6.9.2",
"tslib": "^1.9.3"
},
"devDependencies": {
"@types/classnames": "^2.2.7",
"@types/d3-array": "^1.2.4",
+ "@types/hjson": "^2.4.0",
"@types/jest": "^23.3.13",
"@types/lodash.debounce": "^4.0.4",
"@types/mocha": "^5.2.5",
diff --git a/web-console/script/build b/web-console/script/build
index 147f0e6..7537122 100755
--- a/web-console/script/build
+++ b/web-console/script/build
@@ -23,6 +23,10 @@ cp -r ./node_modules/druid-console/coordinator-console .
cp -r ./node_modules/druid-console/pages .
cp ./node_modules/druid-console/index.html .
+echo "Copying blueprint assets in..."
+sed 's|url("assets|url("/assets|g' "./node_modules/@blueprintjs/core/dist/blueprint.css" > lib/blueprint.css
+cp -r "./node_modules/@blueprintjs/core/dist/assets" .
+
echo "Transpiling ReactTable CSS..."
PATH="./target/node:$PATH" ./node_modules/.bin/stylus lib/react-table.styl -o lib/react-table.css
diff --git a/web-console/script/clean b/web-console/script/clean
index 3464483..fd51cf8 100755
--- a/web-console/script/clean
+++ b/web-console/script/clean
@@ -17,9 +17,10 @@
# limitations under the License.
rm -rf \
- lib/react-table.css \
+ lib/*.css \
node_modules \
coordinator-console \
pages \
public \
+ assets \
index.html
diff --git a/web-console/script/cp-to b/web-console/script/cp-to
index 81240ff..d2bdeb7 100755
--- a/web-console/script/cp-to
+++ b/web-console/script/cp-to
@@ -24,3 +24,4 @@ cp -r coordinator-console "$1"
cp -r old-console "$1"
cp -r pages "$1"
cp -r public "$1"
+cp -r assets "$1"
diff --git a/web-console/src/components/auto-form.tsx b/web-console/src/components/auto-form.tsx
index bdbb27a..39e8baa 100644
--- a/web-console/src/components/auto-form.tsx
+++ b/web-console/src/components/auto-form.tsx
@@ -19,20 +19,8 @@
import { resolveSrv } from 'dns';
import * as React from 'react';
import axios from 'axios';
-import {
- FormGroup,
- Button,
- InputGroup,
- Dialog,
- NumericInput,
- Classes,
- Tooltip,
- AnchorButton,
- TagInput,
- Intent,
- ButtonGroup,
- HTMLSelect
-} from "@blueprintjs/core";
+import { InputGroup } from "@blueprintjs/core";
+import { HTMLSelect, FormGroup, NumericInput, TagInput } from "../components/filler";
interface Field {
name: string;
@@ -67,7 +55,7 @@ export class AutoForm<T> extends React.Component<AutoFormProps<T>, AutoFormState
const { model, onChange } = this.props;
return <NumericInput
value={(model as any)[field.name]}
- onValueChange={v => {
+ onValueChange={(v: any) => {
if (isNaN(v)) return;
onChange(Object.assign({}, model, { [field.name]: v }));
}}
@@ -79,7 +67,7 @@ export class AutoForm<T> extends React.Component<AutoFormProps<T>, AutoFormState
const { model, onChange } = this.props;
return <NumericInput
value={(model as any)[field.name]}
- onValueChange={v => {
+ onValueChange={(v: number) => {
if (isNaN(v)) return;
onChange(Object.assign({}, model, { [field.name]: v }));
}}
@@ -102,12 +90,14 @@ export class AutoForm<T> extends React.Component<AutoFormProps<T>, AutoFormState
private renderBooleanInput(field: Field): JSX.Element {
const { model, onChange } = this.props;
return <HTMLSelect
- options={["True", "False"]}
value={(model as any)[field.name] === true ? "True" : "False"}
- onChange={e => {
+ onChange={(e: any) => {
onChange(Object.assign({}, model, { [field.name]: e.currentTarget.value === "True" }));
}}
- />
+ >
+ <option value="True">True</option>
+ <option value="False">False</option>
+ </HTMLSelect>
}
private renderStringArrayInput(field: Field): JSX.Element {
@@ -118,7 +108,7 @@ export class AutoForm<T> extends React.Component<AutoFormProps<T>, AutoFormState
onChange={(v: any) => {
onChange(Object.assign({}, model, { [field.name]: v }));
}}
- addOnBlur={true}
+ fill
/>;
}
diff --git a/web-console/src/dialogs/spec-dialog.scss b/web-console/src/components/filler.scss
similarity index 91%
copy from web-console/src/dialogs/spec-dialog.scss
copy to web-console/src/components/filler.scss
index 63c9c79..b4ee310 100644
--- a/web-console/src/dialogs/spec-dialog.scss
+++ b/web-console/src/components/filler.scss
@@ -16,8 +16,12 @@
* limitations under the License.
*/
-.post-spec-dialog {
- .post-spec-dialog-textarea {
- margin: 20px;
+.pt-select {
+ &.pt-fill {
+ flex: 1;
}
}
+
+.form-group {
+ margin: 0 0 15px;
+}
diff --git a/web-console/src/components/filler.tsx b/web-console/src/components/filler.tsx
new file mode 100644
index 0000000..30809b8
--- /dev/null
+++ b/web-console/src/components/filler.tsx
@@ -0,0 +1,259 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import { Button } from '@blueprintjs/core';
+import * as React from 'react';
+import classNames from 'classnames';
+import './filler.scss';
+
+
+export const IconNames = {
+ ERROR: "error" as "error",
+ PLUS: "plus" as "plus",
+ REFRESH: "refresh" as "refresh",
+ APPLICATION: "application" as "application",
+ GRAPH: "graph" as "graph",
+ MAP: "map" as "map",
+ TH: "th" as "th",
+ USER: "user" as "user",
+ GIT_BRANCH: "git-branch" as "git-branch",
+ COG: "cog" as "cog",
+ MULTI_SELECT: "multi-select" as "multi-select",
+ STACKED_CHART: "stacked-chart" as "stacked-chart",
+ GANTT_CHART: "gantt-chart" as "gantt-chart",
+ DATABASE: "database" as "database",
+ SETTINGS: "settings" as "settings",
+ HELP: "help" as "help",
+ SHARE: "share" as "share",
+ CROSS: "cross" as "cross",
+ ARROW_LEFT: "arrow-left" as "arrow-left",
+ CARET_RIGHT: "caret-right" as "caret-right",
+ TICK: "tick" as "tick",
+ ARROW_RIGHT: "right-arrow" as "right-arrow",
+ TRASH: "trash" as "trash",
+ CARET_DOWN: "caret-down" as "caret-down",
+ ARROW_UP: "arrow-up" as "arrow-up",
+ ARROW_DOWN: "arrow-down" as "arrow-down",
+};
+export type IconNames = typeof IconNames[keyof typeof IconNames];
+
+export class H5 extends React.Component<{}, {}> {
+ render() {
+ const { children } = this.props;
+ return <h5>{children}</h5>;
+ }
+}
+
+export class Card extends React.Component<{ interactive?: boolean }, {}> {
+ render() {
+ const { interactive, children } = this.props;
+ return <div className={classNames("pt-card", { 'pt-interactive': interactive })}>
+ {children}
+ </div>;
+ }
+}
+
+export class Icon extends React.Component<{ icon: string, color?: string }, {}> {
+ render() {
+ const { color, icon } = this.props;
+ return <span className={classNames('pt-icon-standard', 'pt-icon-' + icon)} style={{ color }}/>;
+ }
+}
+
+export class ControlGroup extends React.Component<{}, {}> {
+ render() {
+ return <div className="pt-control-group" {...this.props}/>;
+ }
+}
+
+export class ButtonGroup extends React.Component<{ vertical?: boolean, fixed?: boolean }, {}> {
+ render() {
+ const { vertical, fixed, children } = this.props;
+ return <div className={classNames("pt-button-group", { 'pt-vertical': vertical, 'pt-fixed': fixed })}>
+ {children}
+ </div>;
+ }
+}
+
+export class Label extends React.Component<{}, {}> {
+ render() {
+ const { children } = this.props;
+ return <label className="pt-label">{children}</label>;
+ }
+}
+
+export class FormGroup extends React.Component<{ className?: string, label?: string }, {}> {
+ render() {
+ const { className, label, children } = this.props;
+ return <div className={classNames("form-group", className)}>
+ { label ? <Label>{label}</Label> : null }
+ {children}
+ </div>;
+ }
+}
+
+
+export const Alignment = {
+ LEFT: "left" as "left",
+ RIGHT: "right" as "right",
+};
+export type Alignment = typeof Alignment[keyof typeof Alignment];
+
+export class Navbar extends React.Component<{ className?: string }, {}> {
+ render() {
+ const { className, children } = this.props;
+ return <nav className={classNames("pt-navbar", className)}>
+ {children}
+ </nav>;
+ }
+}
+
+export class NavbarGroup extends React.Component<{ align: Alignment }, {}> {
+ render() {
+ const { align, children } = this.props;
+ return <div className={classNames('pt-navbar-group', 'pt-align-' + align)}>
+ {children}
+ </div>;
+ }
+}
+
+export class NavbarDivider extends React.Component<{}, {}> {
+ render() {
+ return <span className="pt-navbar-divider"/>;
+ }
+}
+
+export class HTMLSelect extends React.Component<{ key?: string; style?: any; onChange: any; value: any; fill?: boolean }, {}> {
+ render() {
+ const { key, style, onChange, value, fill, children } = this.props;
+ return <div className={classNames("pt-select", { 'pt-fill': fill })} key={key} style={style}>
+ <select onChange={onChange} value={value}>{children}</select>
+ </div>;
+ }
+}
+
+export class TextArea extends React.Component<{ className?: string; onChange?: any; value?: string }, {}> {
+ render() {
+ const { className, value, onChange } = this.props;
+ return <textarea
+ className={classNames("pt-input", className)}
+ value={value}
+ onChange={onChange}
+ />;
+ }
+}
+
+export interface NumericInputProps {
+ value: number | null;
+ onValueChange: any;
+ min?: number;
+ max?: number;
+ stepSize?: number;
+ majorStepSize?: number
+}
+
+export class NumericInput extends React.Component<NumericInputProps, { stringValue: string }> {
+
+ static defaultProps = {
+ stepSize: 1,
+ majorStepSize: 10
+ }
+
+ constructor(props: NumericInputProps) {
+ super(props);
+ this.state = {
+ stringValue: typeof props.value === 'number' ? String(props.value) : ''
+ }
+ }
+
+ private constrain(n: number): number {
+ const { min, max } = this.props;
+ if (typeof min === 'number') n = Math.max(n, min);
+ if (typeof max === 'number') n = Math.min(n, max);
+ return n
+ }
+
+ private handleChange = (e: any) => {
+ let stringValue = e.target.value.replace(/[^\d.+-]/g, '');
+ let numValue = parseFloat(stringValue);
+ if (isNaN(numValue)) {
+ this.setState({ stringValue });
+ } else {
+ numValue = this.constrain(numValue);
+ stringValue = String(numValue);
+ this.setState({ stringValue });
+ this.props.onValueChange(numValue);
+ }
+ }
+
+ private handleClick = (e: any, direction: number) => {
+ const { stepSize, majorStepSize } = this.props;
+ const { stringValue } = this.state;
+ const diff = direction * (e.shiftKey ? majorStepSize as number : stepSize as number);
+ const numValue = this.constrain((parseFloat(stringValue) || 0) + diff);
+ this.setState({ stringValue: String(numValue) });
+ this.props.onValueChange(numValue);
+ }
+
+ render() {
+ const { stringValue } = this.state;
+
+ return <ControlGroup>
+ <input className="pt-input" value={stringValue} onChange={this.handleChange}/>
+ <ButtonGroup fixed>
+ <Button iconName="caret-up" onClick={(e: any) => this.handleClick(e, +1)}/>
+ <Button iconName="caret-down" onClick={(e: any) => this.handleClick(e, -1)}/>
+ </ButtonGroup>
+ </ControlGroup>;
+ }
+}
+
+export interface TagInputProps {
+ values: string[];
+ onChange: any;
+ fill?: boolean;
+}
+
+export class TagInput extends React.Component<TagInputProps, { stringValue: string }> {
+ constructor(props: TagInputProps) {
+ super(props);
+ this.state = {
+ stringValue: Array.isArray(props.values) ? props.values.join(', ') : ''
+ }
+ }
+
+ handleChange = (e: any) => {
+ let stringValue = e.target.value;
+ let newValues = stringValue.split(',').map((v: string) => v.trim());
+ let newValuesFiltered = newValues.filter(Boolean);
+ this.setState({
+ stringValue: newValues.length === newValuesFiltered.length ? newValues.join(', ') : stringValue
+ });
+ this.props.onChange(newValuesFiltered);
+ }
+
+ render() {
+ const { fill } = this.props;
+ const { stringValue } = this.state;
+ return <input
+ className={classNames("pt-input", {'pt-fill': fill })}
+ value={stringValue}
+ onChange={this.handleChange}
+ />;
+ }
+}
diff --git a/web-console/src/components/header-bar.scss b/web-console/src/components/header-bar.scss
index c3a6c18..32a17a7 100644
--- a/web-console/src/components/header-bar.scss
+++ b/web-console/src/components/header-bar.scss
@@ -17,9 +17,10 @@
*/
.header-bar {
- overflow: hidden;
+ z-index: 10;
.logo {
+ position: relative;
width: 100px;
height: 50px;
@@ -31,4 +32,13 @@
height: 75px;
}
}
+
+ .config-popover .pt-popover-content,
+ .legacy-popover .pt-popover-content {
+ width: 240px;
+ }
+
+ .help-popover .pt-popover-content {
+ width: 180px;
+ }
}
diff --git a/web-console/src/components/header-bar.tsx b/web-console/src/components/header-bar.tsx
index c96584c..892f229 100644
--- a/web-console/src/components/header-bar.tsx
+++ b/web-console/src/components/header-bar.tsx
@@ -17,12 +17,9 @@
*/
import * as React from 'react';
-import {
- Button,
- Classes,
- AnchorButton, NavbarGroup, Alignment, NavbarHeading, NavbarDivider, Popover, Position, Navbar, Menu, MenuItem
-} from "@blueprintjs/core";
-import { IconNames } from "@blueprintjs/icons";
+import classNames from 'classnames';
+import { Button, Classes, AnchorButton, Popover, Position, Menu, MenuItem } from "@blueprintjs/core";
+import { IconNames, NavbarGroup, Alignment, NavbarDivider, Navbar } from "../components/filler";
import { AboutDialog } from "../dialogs/about-dialog";
import { CoordinatorDynamicConfigDialog } from '../dialogs/coordinator-dynamic-config';
import "./header-bar.scss";
@@ -90,19 +87,19 @@ export class HeaderBar extends React.Component<HeaderBarProps, HeaderBarState> {
const { aboutDialogOpen, coordinatorDynamicConfigDialogOpen } = this.state;
const legacyMenu = <Menu>
- <MenuItem icon={IconNames.GRAPH} text="Legacy coordinator console" href={LEGACY_COORDINATOR_CONSOLE} target="_blank" />
- <MenuItem icon={IconNames.MAP} text="Legacy overlord console" href={LEGACY_OVERLORD_CONSOLE} target="_blank" />
+ <MenuItem iconName={IconNames.GRAPH} text="Legacy coordinator console" href={LEGACY_COORDINATOR_CONSOLE} target="_blank" />
+ <MenuItem iconName={IconNames.MAP} text="Legacy overlord console" href={LEGACY_OVERLORD_CONSOLE} target="_blank" />
</Menu>;
const helpMenu = <Menu>
- <MenuItem icon={IconNames.GRAPH} text="About" onClick={() => this.setState({ aboutDialogOpen: true })} />
- <MenuItem icon={IconNames.TH} text="Docs" href={DRUID_DOCS} target="_blank" />
- <MenuItem icon={IconNames.USER} text="User group" href={DRUID_USER_GROUP} target="_blank" />
- <MenuItem icon={IconNames.GIT_BRANCH} text="GitHub" href={DRUID_GITHUB} target="_blank" />
+ <MenuItem iconName={IconNames.GRAPH} text="About" onClick={() => this.setState({ aboutDialogOpen: true })} />
+ <MenuItem iconName={IconNames.TH} text="Docs" href={DRUID_DOCS} target="_blank" />
+ <MenuItem iconName={IconNames.USER} text="User group" href={DRUID_USER_GROUP} target="_blank" />
+ <MenuItem iconName={IconNames.GIT_BRANCH} text="GitHub" href={DRUID_GITHUB} target="_blank" />
</Menu>;
const configMenu = <Menu>
- <MenuItem icon={IconNames.COG} text="Coordinator dynamic config" onClick={() => this.setState({ coordinatorDynamicConfigDialogOpen: true })}/>
+ <MenuItem iconName={IconNames.COG} text="Coordinator dynamic config" onClick={() => this.setState({ coordinatorDynamicConfigDialogOpen: true })}/>
</Menu>;
return <Navbar className="header-bar">
@@ -111,32 +108,30 @@ export class HeaderBar extends React.Component<HeaderBarProps, HeaderBarState> {
{this.renderLogo()}
</a>
<NavbarDivider />
- <AnchorButton className={Classes.MINIMAL} icon={IconNames.MULTI_SELECT} text="Datasources" href="#datasources" active={active === 'datasources'} />
- <AnchorButton className={Classes.MINIMAL} icon={IconNames.FULL_STACKED_CHART} text="Segments" href="#segments" active={active === 'segments'} />
- <AnchorButton className={Classes.MINIMAL} icon={IconNames.GANTT_CHART} text="Tasks" href="#tasks" active={active === 'tasks'} />
- <AnchorButton className={Classes.MINIMAL} icon={IconNames.DATABASE} text="Data servers" href="#servers" active={active === 'servers'} />
+ <AnchorButton className={classNames(Classes.MINIMAL, { 'pt-active': active === 'datasources' })} iconName={IconNames.MULTI_SELECT} text="Datasources" href="#datasources" />
+ <AnchorButton className={classNames(Classes.MINIMAL, { 'pt-active': active === 'segments' })} iconName={IconNames.STACKED_CHART} text="Segments" href="#segments" />
+ <AnchorButton className={classNames(Classes.MINIMAL, { 'pt-active': active === 'tasks' })} iconName={IconNames.GANTT_CHART} text="Tasks" href="#tasks" />
+ <AnchorButton className={classNames(Classes.MINIMAL, { 'pt-active': active === 'servers' })} iconName={IconNames.DATABASE} text="Data servers" href="#servers" />
<NavbarDivider />
- <AnchorButton className={Classes.MINIMAL} icon={IconNames.CONSOLE} text="SQL" href="#sql" active={active === 'sql'} />
- <Popover content={configMenu} position={Position.BOTTOM_LEFT}>
- <Button className={Classes.MINIMAL} icon={IconNames.SETTINGS} text="Config"/>
+ <AnchorButton className={classNames(Classes.MINIMAL, { 'pt-active': active === 'sql' })} iconName={IconNames.APPLICATION} text="SQL" href="#sql" />
+ <Popover className="config-popover" content={configMenu} position={Position.BOTTOM_LEFT} inline>
+ <Button className={Classes.MINIMAL} iconName={IconNames.SETTINGS} text="Config"/>
</Popover>
</NavbarGroup>
<NavbarGroup align={Alignment.RIGHT}>
- <Popover content={legacyMenu} position={Position.BOTTOM_LEFT}>
- <Button className={Classes.MINIMAL} icon={IconNames.SHARE} text="Legacy" />
+ <Popover className="legacy-popover" content={legacyMenu} position={Position.BOTTOM_RIGHT} inline>
+ <Button className={Classes.MINIMAL} iconName={IconNames.SHARE} text="Legacy" />
</Popover>
- <Popover content={helpMenu} position={Position.BOTTOM_LEFT}>
- <Button className={Classes.MINIMAL} icon={IconNames.LIFESAVER} text="Help" />
+ <Popover className="help-popover" content={helpMenu} position={Position.BOTTOM_RIGHT} inline>
+ <Button className={Classes.MINIMAL} iconName={IconNames.HELP} text="Help" />
</Popover>
</NavbarGroup>
- <AboutDialog
- isOpen={aboutDialogOpen}
+ { aboutDialogOpen ? <AboutDialog
onClose={() => this.setState({ aboutDialogOpen: false })}
- />
- <CoordinatorDynamicConfigDialog
- isOpen={coordinatorDynamicConfigDialogOpen}
+ /> : null }
+ { coordinatorDynamicConfigDialogOpen ? <CoordinatorDynamicConfigDialog
onClose={() => this.setState({ coordinatorDynamicConfigDialogOpen: false })}
- />
+ /> : null }
</Navbar>;
}
}
diff --git a/web-console/src/components/rule-editor.tsx b/web-console/src/components/rule-editor.tsx
index 5ba92c1..a431ce6 100644
--- a/web-console/src/components/rule-editor.tsx
+++ b/web-console/src/components/rule-editor.tsx
@@ -18,16 +18,8 @@
import * as React from 'react';
import axios from 'axios';
-import {
- FormGroup,
- Button,
- ControlGroup,
- Card,
- InputGroup,
- HTMLSelect,
- Collapse, NumericInput, TagInput,
-} from "@blueprintjs/core";
-import { IconNames } from "@blueprintjs/icons";
+import { Button, InputGroup, Collapse } from "@blueprintjs/core";
+import { IconNames, FormGroup, HTMLSelect, Card, ControlGroup, NumericInput, TagInput } from "../components/filler";
import './rule-editor.scss';
export interface Rule {
@@ -156,27 +148,32 @@ export class RuleEditor extends React.Component<RuleEditorProps, RuleEditorState
const ruleTiers = Object.keys(tieredReplicants).sort();
return ruleTiers.map(tier => {
return <ControlGroup key={tier}>
- <Button minimal style={{pointerEvents: 'none'}}>Replicants:</Button>
+ <Button className="pt-minimal" style={{pointerEvents: 'none'}}>Replicants:</Button>
<NumericInput
value={tieredReplicants[tier]}
- onValueChange={v => {
+ onValueChange={(v: number) => {
if (isNaN(v)) return;
onChange(RuleEditor.changeTierReplication(rule, tier, v));
}}
min={1}
max={256}
/>
- <Button minimal style={{pointerEvents: 'none'}}>Tier:</Button>
+ <Button className="pt-minimal" style={{pointerEvents: 'none'}}>Tier:</Button>
<HTMLSelect
fill={true}
value={tier}
- options={tiers.filter(t => t === tier || !tieredReplicants[t])}
- onChange={e => onChange(RuleEditor.changeTier(rule, tier, e.target.value))}
- />
+ onChange={(e: any) => onChange(RuleEditor.changeTier(rule, tier, e.target.value))}
+ >
+ {
+ tiers.filter(t => t === tier || !tieredReplicants[t]).map((t) => {
+ return <option key={t} value={t}>{t}</option>;
+ })
+ }
+ </HTMLSelect>
<Button
disabled={ruleTiers.length === 1}
onClick={() => this.removeTier(tier)}
- icon={IconNames.TRASH}
+ iconName={IconNames.TRASH}
/>
</ControlGroup>;
});
@@ -187,22 +184,20 @@ export class RuleEditor extends React.Component<RuleEditorProps, RuleEditorState
if (Object.keys(rule.tieredReplicants || {}).length >= Object.keys(tiers).length) return null;
return <FormGroup className="right">
- <Button onClick={this.addTier} minimal icon={IconNames.PLUS}>Add a tier</Button>
+ <Button onClick={this.addTier} className="pt-minimal" iconName={IconNames.PLUS}>Add a tier</Button>
</FormGroup>;
}
renderColocatedDataSources() {
const { rule, onChange } = this.props;
- return <ControlGroup>
- <Button minimal style={{pointerEvents: 'none'}}>Colocated datasources:</Button>
+ return <FormGroup label="Colocated datasources:">
<TagInput
values={rule.colocatedDataSources || []}
onChange={(v: any) => onChange(RuleEditor.changeColocatedDataSources(rule, v)) }
- addOnBlur={true}
- fill={true}
+ fill
/>
- </ControlGroup>;
+ </FormGroup>;
}
render() {
@@ -211,30 +206,18 @@ export class RuleEditor extends React.Component<RuleEditorProps, RuleEditorState
if (!rule) return null;
- const ruleLoadTypes: {label: string, value: LoadType}[] = [
- {label: 'Load', value: 'load'},
- {label: 'Drop', value: 'drop'},
- {label: 'Broadcast', value: 'broadcast'}
- ];
-
- const ruleTimeTypes: {label: string, value: TimeType}[] = [
- {label: 'forever', value: 'Forever'},
- {label: 'by period', value: 'ByPeriod'},
- {label: 'by interval', value: 'ByInterval'}
- ];
-
const ruleLoadType = RuleEditor.getLoadType(rule);
const ruleTimeType = RuleEditor.getTimeType(rule);
return <div className="rule-editor">
<div className="title">
- <Button className="left" minimal rightIcon={isOpen ? IconNames.CARET_DOWN : IconNames.CARET_RIGHT} onClick={() => this.setState({isOpen: !isOpen})}>
+ <Button className="left pt-minimal" rightIconName={isOpen ? IconNames.CARET_DOWN : IconNames.CARET_RIGHT} onClick={() => this.setState({isOpen: !isOpen})}>
{RuleEditor.ruleToString(rule)}
</Button>
<div className="spacer"/>
- {moveUp ? <Button minimal icon={IconNames.ARROW_UP} onClick={moveUp}/> : null}
- {moveDown ? <Button minimal icon={IconNames.ARROW_DOWN} onClick={moveDown}/> : null}
- <Button minimal icon={IconNames.TRASH} onClick={onDelete}/>
+ {moveUp ? <Button className="pt-minimal" iconName={IconNames.ARROW_UP} onClick={moveUp}/> : null}
+ {moveDown ? <Button className="pt-minimal" iconName={IconNames.ARROW_DOWN} onClick={moveDown}/> : null}
+ <Button className="pt-minimal" iconName={IconNames.TRASH} onClick={onDelete}/>
</div>
<Collapse isOpen={isOpen}>
@@ -243,14 +226,20 @@ export class RuleEditor extends React.Component<RuleEditorProps, RuleEditorState
<ControlGroup>
<HTMLSelect
value={ruleLoadType}
- options={ruleLoadTypes}
- onChange={e => onChange(RuleEditor.changeLoadType(rule, e.target.value as any))}
- />
+ onChange={(e: any) => onChange(RuleEditor.changeLoadType(rule, e.target.value as any))}
+ >
+ <option value="load">Load</option>
+ <option value="drop">Drop</option>
+ <option value="broadcast">Broadcast</option>
+ </HTMLSelect>
<HTMLSelect
value={ruleTimeType}
- options={ruleTimeTypes}
- onChange={e => onChange(RuleEditor.changeTimeType(rule, e.target.value as any))}
- />
+ onChange={(e: any) => onChange(RuleEditor.changeTimeType(rule, e.target.value as any))}
+ >
+ <option value="Forever">forever</option>
+ <option value="ByPeriod">by period</option>
+ <option value="ByInterval">by interval</option>
+ </HTMLSelect>
{ ruleTimeType === 'ByPeriod' && <InputGroup value={rule.period || ''} onChange={(e: any) => onChange(RuleEditor.changePeriod(rule, e.target.value as any))}/>}
{ ruleTimeType === 'ByInterval' && <InputGroup value={rule.interval || ''} onChange={(e: any) => onChange(RuleEditor.changeInterval(rule, e.target.value as any))}/>}
</ControlGroup>
diff --git a/web-console/src/components/sql-control.tsx b/web-console/src/components/sql-control.tsx
index 4b3e391..96dd780 100644
--- a/web-console/src/components/sql-control.tsx
+++ b/web-console/src/components/sql-control.tsx
@@ -18,11 +18,14 @@
import * as React from 'react';
import * as classNames from 'classnames';
-import {
- TextArea,
- Intent,
- Button
-} from "@blueprintjs/core";
+import * as ace from 'brace'
+import AceEditor from "react-ace";
+import 'brace/mode/sql';
+import 'brace/mode/hjson';
+import 'brace/theme/solarized_dark';
+import 'brace/ext/language_tools';
+import { Intent, Button } from "@blueprintjs/core";
+import { IconNames } from './filler';
export interface SqlControlProps extends React.Props<any> {
initSql: string | null;
@@ -31,39 +34,56 @@ export interface SqlControlProps extends React.Props<any> {
export interface SqlControlState {
query: string;
+ autoCompleteOn: boolean;
}
export class SqlControl extends React.Component<SqlControlProps, SqlControlState> {
constructor(props: SqlControlProps, context: any) {
super(props, context);
this.state = {
- query: props.initSql || ''
+ query: props.initSql || '',
+ autoCompleteOn: true
};
}
- private handleChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {
+ private handleChange = (newValue: string): void => {
this.setState({
- query: e.target.value
- });
+ query: newValue
+ })
}
render() {
const { onRun } = this.props;
- const { query } = this.state;
+ const { query, autoCompleteOn } = this.state;
const isRune = query.trim().startsWith('{');
- // Maybe use: https://github.com/securingsincity/react-ace/blob/master/docs/Ace.md
+ // Set the key in the AceEditor to force a rebind and prevent an error that happens otherwise
return <div className="sql-control">
- <TextArea
- className="bp3-fill"
- large={true}
- intent={Intent.PRIMARY}
+ <AceEditor
+ key={isRune ? "hjson" : "sql"}
+ mode={isRune ? "hjson" : "sql"}
+ theme="solarized_dark"
+ name="ace-editor"
onChange={this.handleChange}
+ focus={true}
+ fontSize={14}
+ width={'100%'}
+ height={"30vh"}
+ showPrintMargin={false}
value={query}
+ editorProps={{
+ $blockScrolling: Infinity
+ }}
+ setOptions={{
+ enableBasicAutocompletion: isRune ? false : autoCompleteOn,
+ enableLiveAutocompletion: isRune ? false : autoCompleteOn,
+ showLineNumbers: true,
+ tabSize: 2,
+ }}
/>
<div className="buttons">
- <Button rightIcon="caret-right" onClick={() => onRun(query)}>{isRune ? 'Rune' : 'Run'}</Button>
+ <Button rightIconName={IconNames.CARET_RIGHT} onClick={() => onRun(query)}>{isRune ? 'Rune' : 'Run'}</Button>
</div>
</div>
}
diff --git a/web-console/src/console-application.scss b/web-console/src/console-application.scss
index 536e59c..875b13d 100644
--- a/web-console/src/console-application.scss
+++ b/web-console/src/console-application.scss
@@ -19,20 +19,9 @@
@import "./variables";
.console-application {
+ position: relative;
height: 100%;
- .bp3-navbar {
- position: absolute;
- top: 0;
- left: 0;
- right: 0;
- }
-
- .bp3-navbar-group > a {
- text-decoration: inherit;
- color: inherit;
- }
-
.view-container {
position: absolute;
top: 50px;
@@ -44,6 +33,10 @@
&.scrollable {
overflow-y: scroll;
}
+
+ .app-view {
+ position: relative;
+ }
}
.control-separator {
@@ -66,9 +59,5 @@
font-size: 35px;
line-height: 35px;
}
-
- label.bp3-label {
- margin-bottom: 7px;
- }
}
}
diff --git a/web-console/src/console-application.tsx b/web-console/src/console-application.tsx
index 38c4c9d..29ab130 100644
--- a/web-console/src/console-application.tsx
+++ b/web-console/src/console-application.tsx
@@ -26,10 +26,10 @@ import { HeaderBar, HeaderActiveTab } from './components/header-bar';
import { localStorageGet, localStorageSet } from './utils';
import { DRUID_DOCS_SQL, LEGACY_COORDINATOR_CONSOLE, LEGACY_OVERLORD_CONSOLE } from './variables';
import { HomeView } from './views/home-view';
-import { ServersView } from './views/servers-view';
import { DatasourcesView } from './views/datasource-view';
-import { TasksView } from './views/tasks-view';
import { SegmentsView } from './views/segments-view';
+import { ServersView } from './views/servers-view';
+import { TasksView } from './views/tasks-view';
import { SqlView } from './views/sql-view';
import "./console-application.scss";
@@ -59,7 +59,7 @@ export class ConsoleApplication extends React.Component<ConsoleApplicationProps,
// Status works but SQL 405s => the SQL endpoint is disabled
AppToaster.show({
- icon: 'error',
+ iconName: 'error',
intent: Intent.DANGER,
timeout: 120000,
message: <>
@@ -161,7 +161,7 @@ export class ConsoleApplication extends React.Component<ConsoleApplicationProps,
}} />
</Switch>
</div>
- </HashRouter>
+ </HashRouter>;
}
}
diff --git a/web-console/src/dialogs/about-dialog.tsx b/web-console/src/dialogs/about-dialog.tsx
index 73b3874..ee1fe0b 100644
--- a/web-console/src/dialogs/about-dialog.tsx
+++ b/web-console/src/dialogs/about-dialog.tsx
@@ -18,11 +18,10 @@
import * as React from 'react';
import { Button, Dialog, Classes, AnchorButton, Intent } from "@blueprintjs/core";
-import { IconNames } from "@blueprintjs/icons";
+import { IconNames } from "../components/filler";
import { DRUID_COMMUNITY, DRUID_DEVELOPER_GROUP, DRUID_USER_GROUP, DRUID_WEBSITE } from '../variables';
export interface AboutDialogProps extends React.Props<any> {
- isOpen: boolean,
onClose: () => void
}
@@ -36,15 +35,15 @@ export class AboutDialog extends React.Component<AboutDialogProps, AboutDialogSt
}
render() {
- const { isOpen, onClose } = this.props;
+ const { onClose } = this.props;
return <Dialog
- icon={IconNames.INFO_SIGN}
+ iconName={IconNames.GRAPH}
onClose={onClose}
title="Apache Druid"
- isOpen={isOpen}
- usePortal={true}
- canEscapeKeyClose={true}
+ isOpen
+ inline
+ canEscapeKeyClose
>
<div className={Classes.DIALOG_BODY}>
<p>
diff --git a/web-console/src/dialogs/async-action-dialog.tsx b/web-console/src/dialogs/async-action-dialog.tsx
index 881aaba..0dc5af1 100644
--- a/web-console/src/dialogs/async-action-dialog.tsx
+++ b/web-console/src/dialogs/async-action-dialog.tsx
@@ -19,22 +19,14 @@
import classNames from 'classnames';
import * as React from 'react';
import {
- FormGroup,
Button,
InputGroup,
Dialog,
- NumericInput,
Classes,
- Tooltip,
- AnchorButton,
- TagInput,
Intent,
- ButtonGroup,
- ProgressBar,
- MaybeElement,
- Icon,
- IconName
+ ProgressBar
} from "@blueprintjs/core";
+import { Icon, FormGroup, ButtonGroup, NumericInput, TagInput } from '../components/filler';
import { AppToaster } from '../singletons/toaster';
export interface AsyncAlertDialogProps extends React.Props<any> {
@@ -43,7 +35,7 @@ export interface AsyncAlertDialogProps extends React.Props<any> {
confirmButtonText: string;
cancelButtonText?: string;
className?: string,
- icon?: IconName | MaybeElement;
+ icon?: string;
intent?: Intent;
successText: string;
failText: string;
@@ -88,17 +80,19 @@ export class AsyncActionDialog extends React.Component<AsyncAlertDialogProps, As
render() {
const { action, onClose, className, icon, intent, confirmButtonText, cancelButtonText, children } = this.props;
const { working } = this.state;
+ if (!action) return null;
const handleClose = () => onClose(false);
return <Dialog
- isOpen={Boolean(action)}
+ isOpen
+ inline
className={classNames(Classes.ALERT, 'async-alert-dialog', className)}
canEscapeKeyClose={!working}
onClose={handleClose}
>
<div className={Classes.ALERT_BODY}>
- { icon && <Icon icon={icon} iconSize={40} intent={intent} /> }
+ { icon && <Icon icon={icon} /> }
{ !working && <div className={Classes.ALERT_CONTENTS}>{children}</div> }
</div>
{
diff --git a/web-console/src/dialogs/coordinator-dynamic-config.tsx b/web-console/src/dialogs/coordinator-dynamic-config.tsx
index f24fd16..474b0e2 100644
--- a/web-console/src/dialogs/coordinator-dynamic-config.tsx
+++ b/web-console/src/dialogs/coordinator-dynamic-config.tsx
@@ -19,15 +19,14 @@
import { Intent } from '@blueprintjs/core';
import * as React from 'react';
import axios from 'axios';
-import { IconNames } from "@blueprintjs/icons";
import { AppToaster } from '../singletons/toaster';
+import { IconNames } from '../components/filler';
import { AutoForm } from '../components/auto-form';
import { getDruidErrorMessage } from '../utils';
import { SnitchDialog } from './snitch-dialog';
import './coordinator-dynamic-config.scss';
export interface CoordinatorDynamicConfigDialogProps extends React.Props<any> {
- isOpen: boolean,
onClose: () => void
}
@@ -43,6 +42,10 @@ export class CoordinatorDynamicConfigDialog extends React.Component<CoordinatorD
}
}
+ componentDidMount(): void {
+ this.getClusterConfig();
+ }
+
async getClusterConfig() {
let config: Record<string, any> | null = null;
try {
@@ -50,7 +53,7 @@ export class CoordinatorDynamicConfigDialog extends React.Component<CoordinatorD
config = configResp.data
} catch (e) {
AppToaster.show({
- icon: IconNames.ERROR,
+ iconName: IconNames.ERROR,
intent: Intent.DANGER,
message: `Could not load coordinator dynamic config: ${getDruidErrorMessage(e)}`
});
@@ -73,7 +76,7 @@ export class CoordinatorDynamicConfigDialog extends React.Component<CoordinatorD
});
} catch (e) {
AppToaster.show({
- icon: IconNames.ERROR,
+ iconName: IconNames.ERROR,
intent: Intent.DANGER,
message: `Could not save coordinator dynamic config: ${getDruidErrorMessage(e)}`
});
@@ -87,15 +90,14 @@ export class CoordinatorDynamicConfigDialog extends React.Component<CoordinatorD
}
render() {
- const { isOpen, onClose } = this.props;
+ const { onClose } = this.props;
const { dynamicConfig } = this.state;
return <SnitchDialog
className="coordinator-dynamic-config"
- isOpen={ isOpen }
+ isOpen
onSave={this.saveClusterConfig}
- onOpening={() => {this.getClusterConfig()}}
- onClose={ onClose }
+ onClose={onClose}
title="Coordinator dynamic config"
>
<p>
diff --git a/web-console/src/dialogs/retention-dialog.test.ts b/web-console/src/dialogs/retention-dialog.test.ts
index 71cb2d8..24c7ca8 100644
--- a/web-console/src/dialogs/retention-dialog.test.ts
+++ b/web-console/src/dialogs/retention-dialog.test.ts
@@ -16,6 +16,9 @@
* limitations under the License.
*/
+import * as React from 'react';
+(React as any).PropTypes = require('prop-types'); // Trick blueprint 1.0.1 into accepting React 16 as React 15.
+
import { reorderArray } from './retention-dialog';
describe('reorderArray', () => {
diff --git a/web-console/src/dialogs/retention-dialog.tsx b/web-console/src/dialogs/retention-dialog.tsx
index 36a244a..a6e02af 100644
--- a/web-console/src/dialogs/retention-dialog.tsx
+++ b/web-console/src/dialogs/retention-dialog.tsx
@@ -18,11 +18,8 @@
import * as React from 'react';
import axios from 'axios';
-import {
- FormGroup,
- Button,
-} from "@blueprintjs/core";
-import { IconNames } from "@blueprintjs/icons";
+import { Button } from "@blueprintjs/core";
+import { FormGroup, IconNames } from '../components/filler';
import { RuleEditor, Rule } from '../components/rule-editor';
import { SnitchDialog } from './snitch-dialog';
@@ -148,6 +145,7 @@ export class RetentionDialog extends React.Component<RetentionDialogProps, Reten
saveDisabled={false}
canOutsideClickClose={false}
isOpen
+ inline
onClose={onCancel}
title={`Edit retention rules: ${datasource}${datasource === '_default' ? ' (cluster defaults)' : ''}`}
onReset={this.reset}
@@ -162,7 +160,7 @@ export class RetentionDialog extends React.Component<RetentionDialogProps, Reten
{(currentRules || []).map(this.renderRule)}
</FormGroup>
<FormGroup className="right">
- <Button icon={IconNames.PLUS} onClick={this.addRule}>New rule</Button>
+ <Button iconName={IconNames.PLUS} onClick={this.addRule}>New rule</Button>
</FormGroup>
{
(!currentRules.length && datasource !== '_default') &&
diff --git a/web-console/src/dialogs/snitch-dialog.tsx b/web-console/src/dialogs/snitch-dialog.tsx
index 1892302..d20971e 100644
--- a/web-console/src/dialogs/snitch-dialog.tsx
+++ b/web-console/src/dialogs/snitch-dialog.tsx
@@ -18,7 +18,6 @@
import * as React from 'react';
import {
- FormGroup,
Button,
InputGroup,
Dialog,
@@ -26,8 +25,8 @@ import {
Classes,
Intent,
} from "@blueprintjs/core";
+import { IconNames, FormGroup } from '../components/filler';
-import { IconNames } from "@blueprintjs/icons";
export interface SnitchDialogProps extends IDialogProps {
onSave: (author: string, comment: string) => void;
@@ -107,12 +106,12 @@ export class SnitchDialog extends React.Component<SnitchDialogProps, SnitchDialo
<FormGroup label={"Who is making this change?"}>
<InputGroup value={author} onChange={(e: any) => this.changeAuthor(e.target.value)}/>
</FormGroup>
- <FormGroup className={"comment"}>
+ <FormGroup label={"Why are you making this change?"} className={"comment"}>
<InputGroup
+ className="pt-large"
value={comment}
- placeholder={"Why are you making this change?"}
+ placeholder={"Enter description here"}
onChange={(e: any) => this.changeComment(e.target.value)}
- large={true}
/>
</FormGroup>
</div>
@@ -128,38 +127,25 @@ export class SnitchDialog extends React.Component<SnitchDialogProps, SnitchDialo
const { showFinalStep } = this.state;
return <div className={Classes.DIALOG_FOOTER_ACTIONS}>
- <FormGroup>
- { showFinalStep
- ? <Button onClick={this.back} icon={IconNames.ARROW_LEFT}>Back</Button>
- : onReset ? <Button onClick={this.reset} intent={"none"}>Reset</Button> : null
- }
-
- { showFinalStep
- ? <Button disabled={saveDisabled} text="Save" onClick={this.save} intent={Intent.PRIMARY} rightIcon={IconNames.TICK}/>
- : <Button disabled={saveDisabled} text="Next" onClick={this.goToFinalStep} intent={Intent.PRIMARY} rightIcon={IconNames.ARROW_RIGHT}/>
- }
- </FormGroup>
+ { showFinalStep
+ ? <Button onClick={this.back} iconName={IconNames.ARROW_LEFT}>Back</Button>
+ : onReset ? <Button onClick={this.reset} intent={"none" as any}>Reset</Button> : null
+ }
+
+ { showFinalStep
+ ? <Button disabled={saveDisabled} text="Save" onClick={this.save} intent={Intent.PRIMARY as any} rightIconName={IconNames.TICK}/>
+ : <Button disabled={saveDisabled} text="Next" onClick={this.goToFinalStep} intent={Intent.PRIMARY as any} rightIconName={IconNames.ARROW_RIGHT}/>
+ }
</div>
}
- onOpening = (node: HTMLElement) => {
- const { onOpening } = this.props;
-
- this.setState({
- author: '',
- comment: ''
- });
-
- onOpening && onOpening(node);
- }
-
render() {
- const { isOpen, onClose, className, children, saveDisabled } = this.props;
+ const { onClose, className, children, saveDisabled } = this.props;
const { showFinalStep } = this.state;
if (showFinalStep) return this.renderFinalStep();
- return <Dialog {...this.props} onOpening={this.onOpening}>
+ return <Dialog isOpen inline {...this.props}>
<div className={Classes.DIALOG_BODY}>
{children}
</div>
diff --git a/web-console/src/dialogs/spec-dialog.scss b/web-console/src/dialogs/spec-dialog.scss
index 63c9c79..511ddca 100644
--- a/web-console/src/dialogs/spec-dialog.scss
+++ b/web-console/src/dialogs/spec-dialog.scss
@@ -18,6 +18,11 @@
.post-spec-dialog {
.post-spec-dialog-textarea {
- margin: 20px;
+ background-color: #232C35;
+ margin-bottom: 10px;
+
+ .ace_gutter {
+ background-color: #232C35;
+ }
}
}
diff --git a/web-console/src/dialogs/spec-dialog.tsx b/web-console/src/dialogs/spec-dialog.tsx
index 52410ba..8cd8065 100644
--- a/web-console/src/dialogs/spec-dialog.tsx
+++ b/web-console/src/dialogs/spec-dialog.tsx
@@ -17,13 +17,13 @@
*/
import * as React from "react";
-import axios from 'axios';
-import {Button, Classes, Dialog, Intent, EditableText} from "@blueprintjs/core";
+import { Button, Classes, Dialog, Intent } from "@blueprintjs/core";
import "./spec-dialog.scss"
-import {QueryManager} from "../utils";
+import AceEditor from "react-ace";
+import "brace/theme/solarized_dark";
+import "brace/mode/json"
export interface SpecDialogProps extends React.Props<any> {
- isOpen: boolean;
onSubmit: (spec: JSON) => void;
onClose: () => void;
title: string;
@@ -59,22 +59,33 @@ export class SpecDialog extends React.Component<SpecDialogProps, SpecDialogState
}
render() {
- const { isOpen, onClose, title } = this.props;
+ const { onClose, title } = this.props;
const { spec } = this.state;
return <Dialog
className={"post-spec-dialog"}
- isOpen={isOpen}
+ isOpen
onClose={onClose}
title={title}
>
- <EditableText
+ <AceEditor
+ mode="json"
+ theme="solarized_dark"
className={"post-spec-dialog-textarea"}
- multiline={true}
- minLines={30}
- maxLines={30}
- placeholder={"Enter the spec JSON to post"}
- onChange={ (e) => {this.setState({ spec: e })}}
+ onChange={ (e) => {this.setState({ spec: e })} }
+ fontSize={12}
+ showPrintMargin={false}
+ showGutter={true}
+ highlightActiveLine={true}
+ value={spec}
+ width={"100%"}
+ setOptions={{
+ enableBasicAutocompletion: true,
+ enableLiveAutocompletion: true,
+ showLineNumbers: true,
+ enableSnippets: true,
+ tabSize: 2,
+ }}
/>
<div className={Classes.DIALOG_FOOTER}>
<div className={Classes.DIALOG_FOOTER_ACTIONS}>
diff --git a/web-console/src/entry.scss b/web-console/src/entry.scss
index 981b695..f74afd5 100644
--- a/web-console/src/entry.scss
+++ b/web-console/src/entry.scss
@@ -17,13 +17,9 @@
*/
@import '../node_modules/normalize.css/normalize';
-@import '../node_modules/@blueprintjs/core/lib/css/blueprint';
+@import '../lib/blueprint';
@import '../lib/react-table';
-* {
- position: relative;
-}
-
html,
body {
//font-family: 'Open Sans', Helvetica, Arial, sans-serif;
@@ -33,7 +29,7 @@ body {
}
body {
- &.bp3-dark {
+ &.pt-dark {
background: rgb(41, 55, 66);
}
diff --git a/web-console/src/entry.ts b/web-console/src/entry.ts
index 3b753f1..ae2892c 100644
--- a/web-console/src/entry.ts
+++ b/web-console/src/entry.ts
@@ -19,6 +19,7 @@
import 'es6-shim/es6-shim';
import 'es7-shim'; // Webpack with automatically pick browser.js which does the shim()
import * as React from 'react';
+(React as any).PropTypes = require('prop-types'); // Trick blueprint 1.0.1 into accepting React 16 as React 15.
import * as ReactDOM from 'react-dom';
import "./singletons/react-table-defaults";
import "./entry.scss";
@@ -34,7 +35,7 @@ ReactDOM.render(
{
version: '0.0.1'
}
- ),
+ ) as any,
container
);
diff --git a/web-console/src/singletons/react-table-defaults.tsx b/web-console/src/singletons/react-table-defaults.tsx
index 0b82cda..86cfd6d 100644
--- a/web-console/src/singletons/react-table-defaults.tsx
+++ b/web-console/src/singletons/react-table-defaults.tsx
@@ -25,7 +25,7 @@ import { countBy, makeTextFilter } from '../utils';
class FullButton extends React.Component {
render() {
- return <Button fill={true} {...this.props}/>;
+ return <Button className="pt-fill" {...this.props}/>;
}
}
diff --git a/web-console/src/utils/general.tsx b/web-console/src/utils/general.tsx
index 873e634..a64015d 100644
--- a/web-console/src/utils/general.tsx
+++ b/web-console/src/utils/general.tsx
@@ -16,8 +16,8 @@
* limitations under the License.
*/
-import { Button, InputGroup, Intent, HTMLSelect } from '@blueprintjs/core';
-import { IconNames } from "@blueprintjs/icons";
+import { Button, InputGroup, Intent } from '@blueprintjs/core';
+import { IconNames, HTMLSelect } from "../components/filler";
import * as numeral from "numeral";
import * as React from 'react';
import { Filter, FilterRender } from 'react-table';
@@ -43,7 +43,7 @@ export function makeTextFilter(placeholder: string = ''): FilterRender {
key={key}
onChange={(e: any) => onChange(e.target.value)}
value={filterValue}
- rightElement={filterValue ? <Button icon={IconNames.CROSS} intent={Intent.NONE} minimal={true} onClick={() => onChange('')} /> : undefined}
+ rightElement={filterValue ? <Button iconName={IconNames.CROSS} className="pt-minimal" onClick={() => onChange('')} /> : undefined}
placeholder={placeholder}
/>
}
@@ -55,7 +55,7 @@ export function makeBooleanFilter(): FilterRender {
return <HTMLSelect
key={key}
style={{ width: '100%' }}
- onChange={event => onChange(event.target.value)}
+ onChange={(event: any) => onChange(event.target.value)}
value={filterValue || "all"}
fill={true}
>
diff --git a/web-console/src/views/datasource-view.scss b/web-console/src/views/datasource-view.scss
index 5e9229e..3983437 100644
--- a/web-console/src/views/datasource-view.scss
+++ b/web-console/src/views/datasource-view.scss
@@ -22,7 +22,7 @@
.ReactTable {
position: absolute;
- top: 60px;
+ top: 50px;
bottom: 0;
width: 100%;
}
diff --git a/web-console/src/views/datasource-view.tsx b/web-console/src/views/datasource-view.tsx
index ed3a582..6e62ced 100644
--- a/web-console/src/views/datasource-view.tsx
+++ b/web-console/src/views/datasource-view.tsx
@@ -22,10 +22,11 @@ import * as classNames from 'classnames';
import ReactTable from "react-table";
import { Filter } from "react-table";
import { Button, Intent, Switch } from "@blueprintjs/core";
-import { IconNames } from "@blueprintjs/icons";
+import { IconNames } from "../components/filler";
import { AppToaster } from '../singletons/toaster';
import { RuleEditor } from '../components/rule-editor';
import { AsyncActionDialog } from '../dialogs/async-action-dialog';
+import { RetentionDialog } from '../dialogs/retention-dialog';
import {
addFilter,
formatNumber,
@@ -35,7 +36,6 @@ import {
QueryManager,
pluralIfNeeded, queryDruidSql, getDruidErrorMessage
} from "../utils";
-import { RetentionDialog } from '../dialogs/retention-dialog';
import "./datasource-view.scss";
@@ -439,12 +439,12 @@ GROUP BY 1`);
<div className="control-bar">
<div className="control-label">Datasources</div>
<Button
- icon={IconNames.REFRESH}
+ iconName={IconNames.REFRESH}
text="Refresh"
onClick={() => this.datasourceQueryManager.rerunLastQuery()}
/>
<Button
- icon={IconNames.CONSOLE}
+ iconName={IconNames.APPLICATION}
text="Go to SQL"
onClick={() => goToSql(this.datasourceQueryManager.getLastQuery())}
/>
diff --git a/web-console/src/views/home-view.scss b/web-console/src/views/home-view.scss
index 5b8f8ea..bf35409 100644
--- a/web-console/src/views/home-view.scss
+++ b/web-console/src/views/home-view.scss
@@ -28,7 +28,7 @@
color: inherit;
}
- .bp3-card {
+ .pt-card {
height: 160px;
}
}
diff --git a/web-console/src/views/home-view.tsx b/web-console/src/views/home-view.tsx
index 7258fe8..83df542 100644
--- a/web-console/src/views/home-view.tsx
+++ b/web-console/src/views/home-view.tsx
@@ -19,14 +19,13 @@
import axios from 'axios';
import * as React from 'react';
import * as classNames from 'classnames';
-import { H5, Card, Icon } from "@blueprintjs/core";
-import { IconName, IconNames } from "@blueprintjs/icons";
+import { H5, Card, Icon, IconNames } from "../components/filler";
import { QueryManager, pluralIfNeeded, queryDruidSql, getHeadProp } from '../utils';
import './home-view.scss';
export interface CardOptions {
href: string;
- icon: IconName;
+ icon: string;
title: string;
loading?: boolean;
content: JSX.Element | string;
@@ -268,7 +267,7 @@ GROUP BY 1`);
return <div className="home-view app-view">
{this.renderCard({
href: "/status",
- icon: IconNames.INFO_SIGN,
+ icon: IconNames.GRAPH,
title: "Status",
loading: state.statusLoading,
content: state.status ? `Apache Druid is running version ${state.status.version}` : '',
@@ -286,7 +285,7 @@ GROUP BY 1`);
{this.renderCard({
href: "#segments",
- icon: IconNames.FULL_STACKED_CHART,
+ icon: IconNames.STACKED_CHART,
title: "Segments",
loading: state.segmentCountLoading,
content: pluralIfNeeded(state.segmentCount, 'segment'),
diff --git a/web-console/src/views/segments-view.scss b/web-console/src/views/segments-view.scss
index a58cfc0..31816a4 100644
--- a/web-console/src/views/segments-view.scss
+++ b/web-console/src/views/segments-view.scss
@@ -22,7 +22,7 @@
.ReactTable {
position: absolute;
- top: 60px;
+ top: 50px;
bottom: 0;
width: 100%;
diff --git a/web-console/src/views/segments-view.tsx b/web-console/src/views/segments-view.tsx
index a5cad17..920f61a 100644
--- a/web-console/src/views/segments-view.tsx
+++ b/web-console/src/views/segments-view.tsx
@@ -21,8 +21,8 @@ import * as React from 'react';
import * as classNames from 'classnames';
import ReactTable from "react-table";
import { Filter } from "react-table";
-import { H5, Button } from "@blueprintjs/core";
-import { IconNames } from "@blueprintjs/icons";
+import { Button } from "@blueprintjs/core";
+import { H5, IconNames } from "../components/filler";
import {
addFilter,
makeBooleanFilter,
@@ -261,12 +261,12 @@ export class SegmentsView extends React.Component<SegmentsViewProps, SegmentsVie
<div className="control-bar">
<div className="control-label">Segments</div>
<Button
- icon={IconNames.REFRESH}
+ iconName={IconNames.REFRESH}
text="Refresh"
onClick={() => this.segmentsQueryManager.rerunLastQuery()}
/>
<Button
- icon={IconNames.CONSOLE}
+ iconName={IconNames.APPLICATION}
text="Go to SQL"
onClick={() => goToSql(this.segmentsQueryManager.getLastQuery().query)}
/>
diff --git a/web-console/src/views/servers-view.scss b/web-console/src/views/servers-view.scss
index 5430709..45bbf2a 100644
--- a/web-console/src/views/servers-view.scss
+++ b/web-console/src/views/servers-view.scss
@@ -31,6 +31,7 @@
}
.fill-indicator {
+ position: relative;
width: 100%;
height: 100%;
background-color: #dadada;
diff --git a/web-console/src/views/servers-view.tsx b/web-console/src/views/servers-view.tsx
index 1657b17..89ac5c4 100644
--- a/web-console/src/views/servers-view.tsx
+++ b/web-console/src/views/servers-view.tsx
@@ -22,8 +22,8 @@ import * as classNames from 'classnames';
import ReactTable from "react-table";
import { Filter } from "react-table";
import { sum } from "d3-array";
-import { Button, H1, Switch } from "@blueprintjs/core";
-import { IconNames } from "@blueprintjs/icons";
+import { Button, Switch } from "@blueprintjs/core";
+import { IconNames } from '../components/filler';
import { addFilter, formatBytes, formatBytesCompact, QueryManager, queryDruidSql } from "../utils";
import "./servers-view.scss";
@@ -334,12 +334,12 @@ WHERE "server_type" = 'historical'`);
<div className="control-bar">
<div className="control-label">Historicals</div>
<Button
- icon={IconNames.REFRESH}
+ iconName={IconNames.REFRESH}
text="Refresh"
onClick={() => this.serverQueryManager.rerunLastQuery()}
/>
<Button
- icon={IconNames.CONSOLE}
+ iconName={IconNames.APPLICATION}
text="Go to SQL"
onClick={() => goToSql(this.serverQueryManager.getLastQuery())}
/>
@@ -356,7 +356,7 @@ WHERE "server_type" = 'historical'`);
<div className="control-bar">
<div className="control-label">MiddleManagers</div>
<Button
- icon={IconNames.REFRESH}
+ iconName={IconNames.REFRESH}
text="Refresh"
onClick={() => this.middleManagerQueryManager.rerunLastQuery()}
/>
diff --git a/web-console/src/views/tasks-view.tsx b/web-console/src/views/tasks-view.tsx
index 8f39458..e5855f2 100644
--- a/web-console/src/views/tasks-view.tsx
+++ b/web-console/src/views/tasks-view.tsx
@@ -21,8 +21,8 @@ import * as React from 'react';
import * as classNames from 'classnames';
import ReactTable from "react-table";
import { Filter } from "react-table";
-import { Button, H1, ButtonGroup, Intent, Label, Alert } from "@blueprintjs/core";
-import { IconNames } from "@blueprintjs/icons";
+import { Button, Intent, Alert } from "@blueprintjs/core";
+import { ButtonGroup, Label, IconNames } from "../components/filler";
import { addFilter, QueryManager, getDruidErrorMessage, countBy, formatDuration, queryDruidSql } from "../utils";
import { AsyncActionDialog } from "../dialogs/async-action-dialog";
import { SpecDialog } from "../dialogs/spec-dialog";
@@ -524,12 +524,12 @@ ORDER BY "rank" DESC, "created_time" DESC`);
<div className="control-bar">
<div className="control-label">Supervisors</div>
<Button
- icon={IconNames.REFRESH}
+ iconName={IconNames.REFRESH}
text="Refresh"
onClick={() => this.supervisorQueryManager.rerunLastQuery()}
/>
<Button
- icon={IconNames.PLUS}
+ iconName={IconNames.PLUS}
text="Submit supervisor"
onClick={() => this.setState({ supervisorSpecDialogOpen: true })}
/>
@@ -542,43 +542,40 @@ ORDER BY "rank" DESC, "created_time" DESC`);
<div className="control-label">Tasks</div>
<Label>Group by</Label>
<ButtonGroup>
- <Button active={groupTasksBy === null} onClick={() => this.setState({ groupTasksBy: null })}>None</Button>
- <Button active={groupTasksBy === 'type'} onClick={() => this.setState({ groupTasksBy: 'type' })}>Type</Button>
- <Button active={groupTasksBy === 'datasource'} onClick={() => this.setState({ groupTasksBy: 'datasource' })}>Datasource</Button>
- <Button active={groupTasksBy === 'status'} onClick={() => this.setState({ groupTasksBy: 'status' })}>Status</Button>
+ <Button className={classNames({ 'pt-active': groupTasksBy === null })} onClick={() => this.setState({ groupTasksBy: null })}>None</Button>
+ <Button className={classNames({ 'pt-active': groupTasksBy === 'type' })} onClick={() => this.setState({ groupTasksBy: 'type' })}>Type</Button>
+ <Button className={classNames({ 'pt-active': groupTasksBy === 'datasource' })} onClick={() => this.setState({ groupTasksBy: 'datasource' })}>Datasource</Button>
+ <Button className={classNames({ 'pt-active': groupTasksBy === 'status' })} onClick={() => this.setState({ groupTasksBy: 'status' })}>Status</Button>
</ButtonGroup>
<Button
- icon={IconNames.REFRESH}
+ iconName={IconNames.REFRESH}
text="Refresh"
onClick={() => this.taskQueryManager.rerunLastQuery()}
/>
<Button
- icon={IconNames.CONSOLE}
+ iconName={IconNames.APPLICATION}
text="Go to SQL"
onClick={() => goToSql(this.taskQueryManager.getLastQuery())}
/>
<Button
- icon={IconNames.PLUS}
+ iconName={IconNames.PLUS}
text="Submit task"
onClick={() => this.setState({ taskSpecDialogOpen: true })}
/>
</div>
{this.renderTaskTable()}
-
- <SpecDialog
- isOpen={ supervisorSpecDialogOpen }
+ { supervisorSpecDialogOpen ? <SpecDialog
onClose={() => this.setState({ supervisorSpecDialogOpen: false })}
onSubmit={this.submitSupervisor}
title="Submit supervisor"
- />
- <SpecDialog
- isOpen={ taskSpecDialogOpen }
+ /> : null }
+ { taskSpecDialogOpen ? <SpecDialog
onClose={() => this.setState({ taskSpecDialogOpen: false })}
onSubmit={this.submitTask}
title="Submit task"
- />
+ /> : null }
<Alert
- icon={IconNames.ERROR}
+ iconName={IconNames.ERROR}
intent={Intent.PRIMARY}
isOpen={Boolean(alertErrorMsg)}
confirmButtonText="OK"
diff --git a/web-console/tsconfig.json b/web-console/tsconfig.json
index 9900cf0..56fdba0 100644
--- a/web-console/tsconfig.json
+++ b/web-console/tsconfig.json
@@ -21,8 +21,8 @@
},
"include": [
- "**/*.ts",
- "**/*.tsx"
+ "src/**/*.ts",
+ "src/**/*.tsx"
],
"exclude": [
"**/*.test.ts"
diff --git a/web-console/unified-console.html b/web-console/unified-console.html
index 564f682..4c056fc 100644
--- a/web-console/unified-console.html
+++ b/web-console/unified-console.html
@@ -24,7 +24,7 @@
<meta name="description" content="Apache Druid web console">
<link rel="shortcut icon" href="/favicon.png">
</head>
-<body class="bp3-dark mouse-mode">
+<body class="pt-dark mouse-mode">
<div class="app-container"></div>
<script src="public/web-console-0.14.0.js"></script>
</body>
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@druid.apache.org
For additional commands, e-mail: commits-help@druid.apache.org