diff --git a/bin/frontend.go b/bin/frontend.go index 07a94cbcaf..e6c1bc9bfc 100644 --- a/bin/frontend.go +++ b/bin/frontend.go @@ -34,7 +34,7 @@ var ( frontend_cmd = app.Command("frontend", "Run the frontend and GUI.") compression_flag = frontend_cmd.Flag("disable_artifact_compression", "Disables artifact compressions").Bool() - frontend_cmd_slave = frontend_cmd.Flag("slave", "This is a slave frontend").Bool() + frontend_cmd_minion = frontend_cmd.Flag("minion", "This is a minion frontend").Bool() ) func doFrontend() { @@ -82,7 +82,7 @@ func startFrontend(sm *services.Service) (*api.Builder, error) { // Start the frontend service if needed. This must happen // first so other services can contact the master node. - config_obj.Frontend.IsMaster = !*frontend_cmd_slave + config_obj.Frontend.IsMaster = !*frontend_cmd_minion err := sm.Start(frontend.StartFrontendService) if err != nil { return nil, err diff --git a/crypto/simple.go b/crypto/simple.go index 4a5e12208b..d0d339e977 100644 --- a/crypto/simple.go +++ b/crypto/simple.go @@ -75,7 +75,7 @@ func (self *Obfuscator) Decrypt(config_obj *config_proto.Config, name string) ( return "", err } - if len(cipher_text) < 16 { + if len(cipher_text) < 16 || len(cipher_text)%16 != 0 { return "", errors.New("Cipher error") } diff --git a/gui/velociraptor/package-lock.json b/gui/velociraptor/package-lock.json index 2dfd992377..f0cd414905 100644 --- a/gui/velociraptor/package-lock.json +++ b/gui/velociraptor/package-lock.json @@ -54,7 +54,7 @@ "react-split-pane": "^0.1.92", "react-step-wizard": "^5.3.5", "react-treebeard": "^3.2.4", - "recharts": "^1.8.5", + "recharts": "^2.0.9", "styled-components": "^5.2.0", "y18n": "^4.0.1" } @@ -3477,6 +3477,32 @@ "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" }, + "node_modules/@types/d3-path": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-1.0.9.tgz", + "integrity": "sha512-NaIeSIBiFgSC6IGUBjZWcscUJEq7vpVu7KthHN8eieTV9d9MqkSOZLH4chq1PmcKy06PNe3axLeKmRIyxJ+PZQ==" + }, + "node_modules/@types/d3-scale": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-3.2.2.tgz", + "integrity": "sha512-qpQe8G02tzUwt9sdWX1h8A/W0Q1+N48wMnYXVOkrzeLUkCfvzJYV9Ee3aORCS4dN4ONRLFmMvaXdziQ29XGLjQ==", + "dependencies": { + "@types/d3-time": "*" + } + }, + "node_modules/@types/d3-shape": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-2.0.0.tgz", + "integrity": "sha512-NLzD02m5PiD1KLEDjLN+MtqEcFYn4ZL9+Rqc9ZwARK1cpKZXd91zBETbe6wpBB6Ia0D0VZbpmbW3+BsGPGnCpA==", + "dependencies": { + "@types/d3-path": "^1" + } + }, + "node_modules/@types/d3-time": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-2.0.0.tgz", + "integrity": "sha512-Abz8bTzy8UWDeYs9pCa3D37i29EWDjNTjemdk0ei1ApYVNqulYlGUKip/jLOpogkPSsPz/GvZCYiC7MFlEk0iQ==" + }, "node_modules/@types/domhandler": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/@types/domhandler/-/domhandler-2.4.1.tgz", @@ -3637,6 +3663,11 @@ "@types/react": "*" } }, + "node_modules/@types/resize-observer-browser": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@types/resize-observer-browser/-/resize-observer-browser-0.1.5.tgz", + "integrity": "sha512-8k/67Z95Goa6Lznuykxkfhq9YU3l1Qe6LNZmwde1u7802a3x8v44oq0j91DICclxatTr0rNnhXx7+VTIetSrSQ==" + }, "node_modules/@types/resolve": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.8.tgz", @@ -6937,6 +6968,11 @@ "node": ">=8.0.0" } }, + "node_modules/css-unit-converter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/css-unit-converter/-/css-unit-converter-1.1.2.tgz", + "integrity": "sha512-IiJwMC8rdZE0+xiEZHeru6YoONC4rfPMqGm2W85jMIbkFvv5nFTwJVFHam2eFrN6txmoUYFAFXiv8ICVeTO0MA==" + }, "node_modules/css-what": { "version": "3.4.2", "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", @@ -7175,70 +7211,67 @@ } }, "node_modules/d3-array": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz", - "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==" - }, - "node_modules/d3-collection": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/d3-collection/-/d3-collection-1.0.7.tgz", - "integrity": "sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A==" + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz", + "integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==", + "dependencies": { + "internmap": "^1.0.0" + } }, "node_modules/d3-color": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-1.4.1.tgz", - "integrity": "sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-2.0.0.tgz", + "integrity": "sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ==" }, "node_modules/d3-format": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-1.4.5.tgz", - "integrity": "sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-2.0.0.tgz", + "integrity": "sha512-Ab3S6XuE/Q+flY96HXT0jOXcM4EAClYFnRGY5zsjRGNy6qCYrQsMffs7cV5Q9xejb35zxW5hf/guKw34kvIKsA==" }, "node_modules/d3-interpolate": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-1.4.0.tgz", - "integrity": "sha512-V9znK0zc3jOPV4VD2zZn0sDhZU3WAE2bmlxdIwwQPPzPjvyLkd8B3JUVdS1IDUFDkWZ72c9qnv1GK2ZagTZ8EA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-2.0.1.tgz", + "integrity": "sha512-c5UhwwTs/yybcmTpAVqwSFl6vrQ8JZJoT5F7xNFK9pymv5C0Ymcc9/LIJHtYIggg/yS9YHw8i8O8tgb9pupjeQ==", "dependencies": { - "d3-color": "1" + "d3-color": "1 - 2" } }, "node_modules/d3-path": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz", - "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-2.0.0.tgz", + "integrity": "sha512-ZwZQxKhBnv9yHaiWd6ZU4x5BtCQ7pXszEV9CU6kRgwIQVQGLMv1oiL4M+MK/n79sYzsj+gcgpPQSctJUsLN7fA==" }, "node_modules/d3-scale": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-2.2.2.tgz", - "integrity": "sha512-LbeEvGgIb8UMcAa0EATLNX0lelKWGYDQiPdHj+gLblGVhGLyNbaCn3EvrJf0A3Y/uOOU5aD6MTh5ZFCdEwGiCw==", + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-3.2.4.tgz", + "integrity": "sha512-PG6gtpbPCFqKbvdBEswQcJcTzHC8VEd/XzezF5e68KlkT4/ggELw/nR1tv863jY6ufKTvDlzCMZvhe06codbbA==", "dependencies": { - "d3-array": "^1.2.0", - "d3-collection": "1", - "d3-format": "1", - "d3-interpolate": "1", - "d3-time": "1", - "d3-time-format": "2" + "d3-array": "^2.3.0", + "d3-format": "1 - 2", + "d3-interpolate": "1.2.0 - 2", + "d3-time": "1 - 2", + "d3-time-format": "2 - 3" } }, "node_modules/d3-shape": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz", - "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-2.1.0.tgz", + "integrity": "sha512-PnjUqfM2PpskbSLTJvAzp2Wv4CZsnAgTfcVRTwW03QR3MkXF8Uo7B1y/lWkAsmbKwuecto++4NlsYcvYpXpTHA==", "dependencies": { - "d3-path": "1" + "d3-path": "1 - 2" } }, "node_modules/d3-time": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-1.1.0.tgz", - "integrity": "sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-2.0.0.tgz", + "integrity": "sha512-2mvhstTFcMvwStWd9Tj3e6CEqtOivtD8AUiHT8ido/xmzrI9ijrUUihZ6nHuf/vsScRBonagOdj0Vv+SEL5G3Q==" }, "node_modules/d3-time-format": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-2.3.0.tgz", - "integrity": "sha512-guv6b2H37s2Uq/GefleCDtbe0XZAuy7Wa49VGkPVPMfLL9qObgBST3lEHJBMUp8S7NdLQAGIvr2KXk8Hc98iKQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-3.0.0.tgz", + "integrity": "sha512-UXJh6EKsHBTjopVqZBhFysQcoXSv/5yLONZvkQ5Kk3qbwiUYkdX17Xa1PT6U1ZWXGGfB1ey5L8dKMlFq2DO0Ag==", "dependencies": { - "d3-time": "1" + "d3-time": "1 - 2" } }, "node_modules/damerau-levenshtein": { @@ -9301,6 +9334,11 @@ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, + "node_modules/fast-equals": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-2.0.0.tgz", + "integrity": "sha512-u6RBd8cSiLLxAiC04wVsLV6GBFDOXcTCgWkd3wEoFXgidPSoAJENqC9m7Jb2vewSvjBIfXV6icKeh3GTKfIaXA==" + }, "node_modules/fast-glob": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", @@ -10784,6 +10822,11 @@ "node": ">= 0.4" } }, + "node_modules/internmap": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz", + "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==" + }, "node_modules/invariant": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", @@ -13885,11 +13928,6 @@ "node": ">=0.10.0" } }, - "node_modules/math-expression-evaluator": { - "version": "1.2.22", - "resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.22.tgz", - "integrity": "sha512-L0j0tFVZBQQLeEjmWOvDLoRciIY8gQGWahvkztXUal8jH8R5Rlqo9GCvgqvXcy9LQhEWdQCVvzqAbxgYNt4blQ==" - }, "node_modules/md5.js": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", @@ -18081,14 +18119,18 @@ } }, "node_modules/react-resize-detector": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/react-resize-detector/-/react-resize-detector-2.3.0.tgz", - "integrity": "sha512-oCAddEWWeFWYH5FAcHdBYcZjAw9fMzRUK9sWSx6WvSSOPVRxcHd5zTIGy/mOus+AhN/u6T4TMiWxvq79PywnJQ==", + "version": "6.6.4", + "resolved": "https://registry.npmjs.org/react-resize-detector/-/react-resize-detector-6.6.4.tgz", + "integrity": "sha512-sAAh8TmOp59MFs2HR7D1VGbAq+zL+2klQhFbkXOH5Gy/EBEyHGiWXWMStoB+axSYr/Xw54owg6QRGSFj3z0dew==", "dependencies": { + "@types/resize-observer-browser": "^0.1.5", "lodash.debounce": "^4.0.8", "lodash.throttle": "^4.1.1", - "prop-types": "^15.6.0", - "resize-observer-polyfill": "^1.5.0" + "resize-observer-polyfill": "^1.5.1" + }, + "peerDependencies": { + "react": "^16.0.0 || ^17.0.0", + "react-dom": "^16.0.0 || ^17.0.0" } }, "node_modules/react-router": { @@ -18338,14 +18380,18 @@ } }, "node_modules/react-smooth": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/react-smooth/-/react-smooth-1.0.5.tgz", - "integrity": "sha512-eW057HT0lFgCKh8ilr0y2JaH2YbNcuEdFpxyg7Gf/qDKk9hqGMyXryZJ8iMGJEuKH0+wxS0ccSsBBB3W8yCn8w==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/react-smooth/-/react-smooth-2.0.0.tgz", + "integrity": "sha512-wK4dBBR6P21otowgMT9toZk+GngMplGS1O5gk+2WSiHEXIrQgDvhR5IIlT74Vtu//qpTcipkgo21dD7a7AUNxw==", "dependencies": { - "lodash": "~4.17.4", - "prop-types": "^15.6.0", + "fast-equals": "^2.0.0", "raf": "^3.4.0", - "react-transition-group": "^2.5.0" + "react-transition-group": "2.9.0" + }, + "peerDependencies": { + "prop-types": "^15.6.0", + "react": "^15.0.0 || ^16.0.0 || ^17.0.0", + "react-dom": "^15.0.0 || ^16.0.0 || ^17.0.0" } }, "node_modules/react-smooth/node_modules/dom-helpers": { @@ -18365,6 +18411,10 @@ "loose-envify": "^1.4.0", "prop-types": "^15.6.2", "react-lifecycles-compat": "^3.0.4" + }, + "peerDependencies": { + "react": ">=15.0.0", + "react-dom": ">=15.0.0" } }, "node_modules/react-split-grid": { @@ -18606,35 +18656,41 @@ } }, "node_modules/recharts": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/recharts/-/recharts-1.8.5.tgz", - "integrity": "sha512-tM9mprJbXVEBxjM7zHsIy6Cc41oO/pVYqyAsOHLxlJrbNBuLs0PHB3iys2M+RqCF0//k8nJtZF6X6swSkWY3tg==", + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/recharts/-/recharts-2.0.9.tgz", + "integrity": "sha512-JNsXE80PuF3hugUCE7JqDOMSvu5xQLxtjOaqFKKZI2pCJ1PVJzhwDv4TWk0nO4AvADbeWzYEHbg8C5Hcrh42UA==", "dependencies": { + "@types/d3-scale": "^3.0.0", + "@types/d3-shape": "^2.0.0", "classnames": "^2.2.5", - "core-js": "^2.6.10", - "d3-interpolate": "^1.3.0", - "d3-scale": "^2.1.0", - "d3-shape": "^1.2.0", - "lodash": "^4.17.5", - "prop-types": "^15.6.0", - "react-resize-detector": "^2.3.0", - "react-smooth": "^1.0.5", - "recharts-scale": "^0.4.2", - "reduce-css-calc": "^1.3.0" + "d3-interpolate": "^2.0.1", + "d3-scale": "^3.2.3", + "d3-shape": "^2.0.0", + "eventemitter3": "^4.0.1", + "lodash": "^4.17.19", + "react-is": "16.10.2", + "react-resize-detector": "^6.6.3", + "react-smooth": "^2.0.0", + "recharts-scale": "^0.4.4", + "reduce-css-calc": "^2.1.8" + }, + "peerDependencies": { + "react": "^16.0.0 || ^17.0.0", + "react-dom": "^16.0.0 || ^17.0.0" } }, "node_modules/recharts-scale": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/recharts-scale/-/recharts-scale-0.4.3.tgz", - "integrity": "sha512-t8p5sccG9Blm7c1JQK/ak9O8o95WGhNXD7TXg/BW5bYbVlr6eCeRBNpgyigD4p6pSSMehC5nSvBUPj6F68rbFA==", + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/recharts-scale/-/recharts-scale-0.4.5.tgz", + "integrity": "sha512-kivNFO+0OcUNu7jQquLXAxz1FIwZj8nrj+YkOKc5694NbjCvcT6aSZiIzNzd2Kul4o4rTto8QVR9lMNtxD4G1w==", "dependencies": { "decimal.js-light": "^2.4.1" } }, - "node_modules/recharts/node_modules/core-js": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", - "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==" + "node_modules/recharts/node_modules/react-is": { + "version": "16.10.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.10.2.tgz", + "integrity": "sha512-INBT1QEgtcCCgvccr5/86CfD71fw9EPmDxgiJX4I2Ddr6ZsV6iFXsuby+qWJPtmNuMY0zByTsG4468P7nHuNWA==" }, "node_modules/recursive-readdir": { "version": "2.2.2", @@ -18648,27 +18704,18 @@ } }, "node_modules/reduce-css-calc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz", - "integrity": "sha1-dHyRTgSWFKTJz7umKYca0dKSdxY=", + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-2.1.8.tgz", + "integrity": "sha512-8liAVezDmUcH+tdzoEGrhfbGcP7nOV4NkGE3a74+qqvE7nt9i4sKLGBuZNOnpI4WiGksiNPklZxva80061QiPg==", "dependencies": { - "balanced-match": "^0.4.2", - "math-expression-evaluator": "^1.2.14", - "reduce-function-call": "^1.0.1" + "css-unit-converter": "^1.1.1", + "postcss-value-parser": "^3.3.0" } }, - "node_modules/reduce-css-calc/node_modules/balanced-match": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", - "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=" - }, - "node_modules/reduce-function-call": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.3.tgz", - "integrity": "sha512-Hl/tuV2VDgWgCSEeWMLwxLZqX7OK59eU1guxXsRKTAyeYimivsKdtcV4fu3r710tpG5GmDKDhQ0HSZLExnNmyQ==", - "dependencies": { - "balanced-match": "^1.0.0" - } + "node_modules/reduce-css-calc/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" }, "node_modules/regenerate": { "version": "1.4.2", @@ -26466,6 +26513,32 @@ "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" }, + "@types/d3-path": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-1.0.9.tgz", + "integrity": "sha512-NaIeSIBiFgSC6IGUBjZWcscUJEq7vpVu7KthHN8eieTV9d9MqkSOZLH4chq1PmcKy06PNe3axLeKmRIyxJ+PZQ==" + }, + "@types/d3-scale": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-3.2.2.tgz", + "integrity": "sha512-qpQe8G02tzUwt9sdWX1h8A/W0Q1+N48wMnYXVOkrzeLUkCfvzJYV9Ee3aORCS4dN4ONRLFmMvaXdziQ29XGLjQ==", + "requires": { + "@types/d3-time": "*" + } + }, + "@types/d3-shape": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-2.0.0.tgz", + "integrity": "sha512-NLzD02m5PiD1KLEDjLN+MtqEcFYn4ZL9+Rqc9ZwARK1cpKZXd91zBETbe6wpBB6Ia0D0VZbpmbW3+BsGPGnCpA==", + "requires": { + "@types/d3-path": "^1" + } + }, + "@types/d3-time": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-2.0.0.tgz", + "integrity": "sha512-Abz8bTzy8UWDeYs9pCa3D37i29EWDjNTjemdk0ei1ApYVNqulYlGUKip/jLOpogkPSsPz/GvZCYiC7MFlEk0iQ==" + }, "@types/domhandler": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/@types/domhandler/-/domhandler-2.4.1.tgz", @@ -26626,6 +26699,11 @@ "@types/react": "*" } }, + "@types/resize-observer-browser": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@types/resize-observer-browser/-/resize-observer-browser-0.1.5.tgz", + "integrity": "sha512-8k/67Z95Goa6Lznuykxkfhq9YU3l1Qe6LNZmwde1u7802a3x8v44oq0j91DICclxatTr0rNnhXx7+VTIetSrSQ==" + }, "@types/resolve": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.8.tgz", @@ -29435,6 +29513,11 @@ "source-map": "^0.6.1" } }, + "css-unit-converter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/css-unit-converter/-/css-unit-converter-1.1.2.tgz", + "integrity": "sha512-IiJwMC8rdZE0+xiEZHeru6YoONC4rfPMqGm2W85jMIbkFvv5nFTwJVFHam2eFrN6txmoUYFAFXiv8ICVeTO0MA==" + }, "css-what": { "version": "3.4.2", "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", @@ -29631,70 +29714,67 @@ } }, "d3-array": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz", - "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==" - }, - "d3-collection": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/d3-collection/-/d3-collection-1.0.7.tgz", - "integrity": "sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A==" + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz", + "integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==", + "requires": { + "internmap": "^1.0.0" + } }, "d3-color": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-1.4.1.tgz", - "integrity": "sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-2.0.0.tgz", + "integrity": "sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ==" }, "d3-format": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-1.4.5.tgz", - "integrity": "sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-2.0.0.tgz", + "integrity": "sha512-Ab3S6XuE/Q+flY96HXT0jOXcM4EAClYFnRGY5zsjRGNy6qCYrQsMffs7cV5Q9xejb35zxW5hf/guKw34kvIKsA==" }, "d3-interpolate": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-1.4.0.tgz", - "integrity": "sha512-V9znK0zc3jOPV4VD2zZn0sDhZU3WAE2bmlxdIwwQPPzPjvyLkd8B3JUVdS1IDUFDkWZ72c9qnv1GK2ZagTZ8EA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-2.0.1.tgz", + "integrity": "sha512-c5UhwwTs/yybcmTpAVqwSFl6vrQ8JZJoT5F7xNFK9pymv5C0Ymcc9/LIJHtYIggg/yS9YHw8i8O8tgb9pupjeQ==", "requires": { - "d3-color": "1" + "d3-color": "1 - 2" } }, "d3-path": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz", - "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-2.0.0.tgz", + "integrity": "sha512-ZwZQxKhBnv9yHaiWd6ZU4x5BtCQ7pXszEV9CU6kRgwIQVQGLMv1oiL4M+MK/n79sYzsj+gcgpPQSctJUsLN7fA==" }, "d3-scale": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-2.2.2.tgz", - "integrity": "sha512-LbeEvGgIb8UMcAa0EATLNX0lelKWGYDQiPdHj+gLblGVhGLyNbaCn3EvrJf0A3Y/uOOU5aD6MTh5ZFCdEwGiCw==", + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-3.2.4.tgz", + "integrity": "sha512-PG6gtpbPCFqKbvdBEswQcJcTzHC8VEd/XzezF5e68KlkT4/ggELw/nR1tv863jY6ufKTvDlzCMZvhe06codbbA==", "requires": { - "d3-array": "^1.2.0", - "d3-collection": "1", - "d3-format": "1", - "d3-interpolate": "1", - "d3-time": "1", - "d3-time-format": "2" + "d3-array": "^2.3.0", + "d3-format": "1 - 2", + "d3-interpolate": "1.2.0 - 2", + "d3-time": "1 - 2", + "d3-time-format": "2 - 3" } }, "d3-shape": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz", - "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-2.1.0.tgz", + "integrity": "sha512-PnjUqfM2PpskbSLTJvAzp2Wv4CZsnAgTfcVRTwW03QR3MkXF8Uo7B1y/lWkAsmbKwuecto++4NlsYcvYpXpTHA==", "requires": { - "d3-path": "1" + "d3-path": "1 - 2" } }, "d3-time": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-1.1.0.tgz", - "integrity": "sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-2.0.0.tgz", + "integrity": "sha512-2mvhstTFcMvwStWd9Tj3e6CEqtOivtD8AUiHT8ido/xmzrI9ijrUUihZ6nHuf/vsScRBonagOdj0Vv+SEL5G3Q==" }, "d3-time-format": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-2.3.0.tgz", - "integrity": "sha512-guv6b2H37s2Uq/GefleCDtbe0XZAuy7Wa49VGkPVPMfLL9qObgBST3lEHJBMUp8S7NdLQAGIvr2KXk8Hc98iKQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-3.0.0.tgz", + "integrity": "sha512-UXJh6EKsHBTjopVqZBhFysQcoXSv/5yLONZvkQ5Kk3qbwiUYkdX17Xa1PT6U1ZWXGGfB1ey5L8dKMlFq2DO0Ag==", "requires": { - "d3-time": "1" + "d3-time": "1 - 2" } }, "damerau-levenshtein": { @@ -31350,6 +31430,11 @@ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, + "fast-equals": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-2.0.0.tgz", + "integrity": "sha512-u6RBd8cSiLLxAiC04wVsLV6GBFDOXcTCgWkd3wEoFXgidPSoAJENqC9m7Jb2vewSvjBIfXV6icKeh3GTKfIaXA==" + }, "fast-glob": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", @@ -32563,6 +32648,11 @@ "side-channel": "^1.0.2" } }, + "internmap": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz", + "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==" + }, "invariant": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", @@ -35021,11 +35111,6 @@ "object-visit": "^1.0.0" } }, - "math-expression-evaluator": { - "version": "1.2.22", - "resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.22.tgz", - "integrity": "sha512-L0j0tFVZBQQLeEjmWOvDLoRciIY8gQGWahvkztXUal8jH8R5Rlqo9GCvgqvXcy9LQhEWdQCVvzqAbxgYNt4blQ==" - }, "md5.js": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", @@ -38544,14 +38629,14 @@ "integrity": "sha512-X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg==" }, "react-resize-detector": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/react-resize-detector/-/react-resize-detector-2.3.0.tgz", - "integrity": "sha512-oCAddEWWeFWYH5FAcHdBYcZjAw9fMzRUK9sWSx6WvSSOPVRxcHd5zTIGy/mOus+AhN/u6T4TMiWxvq79PywnJQ==", + "version": "6.6.4", + "resolved": "https://registry.npmjs.org/react-resize-detector/-/react-resize-detector-6.6.4.tgz", + "integrity": "sha512-sAAh8TmOp59MFs2HR7D1VGbAq+zL+2klQhFbkXOH5Gy/EBEyHGiWXWMStoB+axSYr/Xw54owg6QRGSFj3z0dew==", "requires": { + "@types/resize-observer-browser": "^0.1.5", "lodash.debounce": "^4.0.8", "lodash.throttle": "^4.1.1", - "prop-types": "^15.6.0", - "resize-observer-polyfill": "^1.5.0" + "resize-observer-polyfill": "^1.5.1" } }, "react-router": { @@ -38737,14 +38822,13 @@ } }, "react-smooth": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/react-smooth/-/react-smooth-1.0.5.tgz", - "integrity": "sha512-eW057HT0lFgCKh8ilr0y2JaH2YbNcuEdFpxyg7Gf/qDKk9hqGMyXryZJ8iMGJEuKH0+wxS0ccSsBBB3W8yCn8w==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/react-smooth/-/react-smooth-2.0.0.tgz", + "integrity": "sha512-wK4dBBR6P21otowgMT9toZk+GngMplGS1O5gk+2WSiHEXIrQgDvhR5IIlT74Vtu//qpTcipkgo21dD7a7AUNxw==", "requires": { - "lodash": "~4.17.4", - "prop-types": "^15.6.0", + "fast-equals": "^2.0.0", "raf": "^3.4.0", - "react-transition-group": "^2.5.0" + "react-transition-group": "2.9.0" }, "dependencies": { "dom-helpers": { @@ -38976,34 +39060,36 @@ } }, "recharts": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/recharts/-/recharts-1.8.5.tgz", - "integrity": "sha512-tM9mprJbXVEBxjM7zHsIy6Cc41oO/pVYqyAsOHLxlJrbNBuLs0PHB3iys2M+RqCF0//k8nJtZF6X6swSkWY3tg==", + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/recharts/-/recharts-2.0.9.tgz", + "integrity": "sha512-JNsXE80PuF3hugUCE7JqDOMSvu5xQLxtjOaqFKKZI2pCJ1PVJzhwDv4TWk0nO4AvADbeWzYEHbg8C5Hcrh42UA==", "requires": { + "@types/d3-scale": "^3.0.0", + "@types/d3-shape": "^2.0.0", "classnames": "^2.2.5", - "core-js": "^2.6.10", - "d3-interpolate": "^1.3.0", - "d3-scale": "^2.1.0", - "d3-shape": "^1.2.0", - "lodash": "^4.17.5", - "prop-types": "^15.6.0", - "react-resize-detector": "^2.3.0", - "react-smooth": "^1.0.5", - "recharts-scale": "^0.4.2", - "reduce-css-calc": "^1.3.0" + "d3-interpolate": "^2.0.1", + "d3-scale": "^3.2.3", + "d3-shape": "^2.0.0", + "eventemitter3": "^4.0.1", + "lodash": "^4.17.19", + "react-is": "16.10.2", + "react-resize-detector": "^6.6.3", + "react-smooth": "^2.0.0", + "recharts-scale": "^0.4.4", + "reduce-css-calc": "^2.1.8" }, "dependencies": { - "core-js": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", - "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==" + "react-is": { + "version": "16.10.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.10.2.tgz", + "integrity": "sha512-INBT1QEgtcCCgvccr5/86CfD71fw9EPmDxgiJX4I2Ddr6ZsV6iFXsuby+qWJPtmNuMY0zByTsG4468P7nHuNWA==" } } }, "recharts-scale": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/recharts-scale/-/recharts-scale-0.4.3.tgz", - "integrity": "sha512-t8p5sccG9Blm7c1JQK/ak9O8o95WGhNXD7TXg/BW5bYbVlr6eCeRBNpgyigD4p6pSSMehC5nSvBUPj6F68rbFA==", + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/recharts-scale/-/recharts-scale-0.4.5.tgz", + "integrity": "sha512-kivNFO+0OcUNu7jQquLXAxz1FIwZj8nrj+YkOKc5694NbjCvcT6aSZiIzNzd2Kul4o4rTto8QVR9lMNtxD4G1w==", "requires": { "decimal.js-light": "^2.4.1" } @@ -39017,30 +39103,21 @@ } }, "reduce-css-calc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz", - "integrity": "sha1-dHyRTgSWFKTJz7umKYca0dKSdxY=", + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-2.1.8.tgz", + "integrity": "sha512-8liAVezDmUcH+tdzoEGrhfbGcP7nOV4NkGE3a74+qqvE7nt9i4sKLGBuZNOnpI4WiGksiNPklZxva80061QiPg==", "requires": { - "balanced-match": "^0.4.2", - "math-expression-evaluator": "^1.2.14", - "reduce-function-call": "^1.0.1" + "css-unit-converter": "^1.1.1", + "postcss-value-parser": "^3.3.0" }, "dependencies": { - "balanced-match": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", - "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=" + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" } } }, - "reduce-function-call": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.3.tgz", - "integrity": "sha512-Hl/tuV2VDgWgCSEeWMLwxLZqX7OK59eU1guxXsRKTAyeYimivsKdtcV4fu3r710tpG5GmDKDhQ0HSZLExnNmyQ==", - "requires": { - "balanced-match": "^1.0.0" - } - }, "regenerate": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", diff --git a/gui/velociraptor/package.json b/gui/velociraptor/package.json index 7bdc779a81..25a90603b6 100644 --- a/gui/velociraptor/package.json +++ b/gui/velociraptor/package.json @@ -50,7 +50,7 @@ "react-split-pane": "^0.1.92", "react-step-wizard": "^5.3.5", "react-treebeard": "^3.2.4", - "recharts": "^1.8.5", + "recharts": "^2.0.9", "styled-components": "^5.2.0", "y18n": "^4.0.1" }, diff --git a/gui/velociraptor/src/components/artifacts/line-charts.js b/gui/velociraptor/src/components/artifacts/line-charts.js index 8f985ba43d..e9424b4e7b 100644 --- a/gui/velociraptor/src/components/artifacts/line-charts.js +++ b/gui/velociraptor/src/components/artifacts/line-charts.js @@ -97,7 +97,7 @@ class TimeTickRenderer extends React.Component { let last_date = this.props.data[this.props.data.length -1][this.props.dataKey]; let value = date.getUTCFullYear().toString().padStart(4, "0") + "-" + - date.getUTCMonth().toString().padStart(2, "0") + "-" + + (date.getUTCMonth()+1).toString().padStart(2, "0") + "-" + date.getUTCDate().toString().padStart(2, "0"); if (last_date - first_date < 24 * 60 * 60) { diff --git a/gui/velociraptor/src/components/utils/csv.js b/gui/velociraptor/src/components/utils/csv.js index 6902516e8a..397ed15c55 100644 --- a/gui/velociraptor/src/components/utils/csv.js +++ b/gui/velociraptor/src/components/utils/csv.js @@ -1,6 +1,6 @@ import parse from 'csv-parse/lib/sync'; import stringify from 'csv-stringify/lib/sync'; - +import api from '../core/api-service.js'; import _ from 'lodash'; export function serializeCSV(data, columns) { @@ -14,12 +14,18 @@ export function serializeCSV(data, columns) { export function parseCSV(data) { - let records = parse(data, {skip_empty_lines: false}); - let obj_records = parse(data, {columns: true, skip_empty_lines: false}); + try { + let records = parse(data, {skip_empty_lines: false}); + let obj_records = parse(data, {columns: true, skip_empty_lines: false}); + + if (records && records.length > 0) { + return {columns: records[0], data: obj_records}; + } - if (records && records.length > 0) { - return {columns: records[0], data: obj_records}; + } catch(e) { + _.each(api.hooks, h=>h("Error: " + e)); + return {columns: ["Column1"], data: []}; } - return {}; + return {columns: ["Column1"], data: []}; } diff --git a/gui/velociraptor/yarn.lock b/gui/velociraptor/yarn.lock index 6440660005..ea39186983 100644 --- a/gui/velociraptor/yarn.lock +++ b/gui/velociraptor/yarn.lock @@ -1883,6 +1883,30 @@ "resolved" "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz" "version" "1.1.1" +"@types/d3-path@^1": + "integrity" "sha512-NaIeSIBiFgSC6IGUBjZWcscUJEq7vpVu7KthHN8eieTV9d9MqkSOZLH4chq1PmcKy06PNe3axLeKmRIyxJ+PZQ==" + "resolved" "https://registry.npmjs.org/@types/d3-path/-/d3-path-1.0.9.tgz" + "version" "1.0.9" + +"@types/d3-scale@^3.0.0": + "integrity" "sha512-qpQe8G02tzUwt9sdWX1h8A/W0Q1+N48wMnYXVOkrzeLUkCfvzJYV9Ee3aORCS4dN4ONRLFmMvaXdziQ29XGLjQ==" + "resolved" "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-3.2.2.tgz" + "version" "3.2.2" + dependencies: + "@types/d3-time" "*" + +"@types/d3-shape@^2.0.0": + "integrity" "sha512-NLzD02m5PiD1KLEDjLN+MtqEcFYn4ZL9+Rqc9ZwARK1cpKZXd91zBETbe6wpBB6Ia0D0VZbpmbW3+BsGPGnCpA==" + "resolved" "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "@types/d3-path" "^1" + +"@types/d3-time@*": + "integrity" "sha512-Abz8bTzy8UWDeYs9pCa3D37i29EWDjNTjemdk0ei1ApYVNqulYlGUKip/jLOpogkPSsPz/GvZCYiC7MFlEk0iQ==" + "resolved" "https://registry.npmjs.org/@types/d3-time/-/d3-time-2.0.0.tgz" + "version" "2.0.0" + "@types/domhandler@*", "@types/domhandler@2.4.1": "integrity" "sha512-cfBw6q6tT5sa1gSPFSRKzF/xxYrrmeiut7E0TxNBObiLSBTuFEHibcfEe3waQPEDbqBsq+ql/TOniw65EyDFMA==" "resolved" "https://registry.npmjs.org/@types/domhandler/-/domhandler-2.4.1.tgz" @@ -2038,6 +2062,11 @@ "@types/prop-types" "*" "csstype" "^3.0.2" +"@types/resize-observer-browser@^0.1.5": + "integrity" "sha512-8k/67Z95Goa6Lznuykxkfhq9YU3l1Qe6LNZmwde1u7802a3x8v44oq0j91DICclxatTr0rNnhXx7+VTIetSrSQ==" + "resolved" "https://registry.npmjs.org/@types/resize-observer-browser/-/resize-observer-browser-0.1.5.tgz" + "version" "0.1.5" + "@types/resolve@0.0.8": "integrity" "sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ==" "resolved" "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.8.tgz" @@ -2991,11 +3020,6 @@ "resolved" "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz" "version" "6.18.0" -"balanced-match@^0.4.2": - "integrity" "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=" - "resolved" "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz" - "version" "0.4.2" - "balanced-match@^1.0.0": "integrity" "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" "resolved" "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz" @@ -3932,11 +3956,6 @@ "resolved" "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz" "version" "2.6.12" -"core-js@^2.6.10": - "integrity" "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==" - "resolved" "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz" - "version" "2.6.11" - "core-js@^3.6.5": "integrity" "sha512-FfApuSRgrR6G5s58casCBd9M2k+4ikuu4wbW6pJyYU7bd9zvFc9qf7vr5xmrZOhT9nn+8uwlH1oRR9jTnFoA3A==" "resolved" "https://registry.npmjs.org/core-js/-/core-js-3.8.2.tgz" @@ -4188,6 +4207,11 @@ "mdn-data" "2.0.4" "source-map" "^0.6.1" +"css-unit-converter@^1.1.1": + "integrity" "sha512-IiJwMC8rdZE0+xiEZHeru6YoONC4rfPMqGm2W85jMIbkFvv5nFTwJVFHam2eFrN6txmoUYFAFXiv8ICVeTO0MA==" + "resolved" "https://registry.npmjs.org/css-unit-converter/-/css-unit-converter-1.1.2.tgz" + "version" "1.1.2" + "css-what@^3.2.1": "integrity" "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==" "resolved" "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz" @@ -4343,68 +4367,64 @@ "es5-ext" "^0.10.50" "type" "^1.0.1" -"d3-array@^1.2.0": - "integrity" "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==" - "resolved" "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz" - "version" "1.2.4" - -"d3-collection@1": - "integrity" "sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A==" - "resolved" "https://registry.npmjs.org/d3-collection/-/d3-collection-1.0.7.tgz" - "version" "1.0.7" +"d3-array@^2.3.0": + "integrity" "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==" + "resolved" "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz" + "version" "2.12.1" + dependencies: + "internmap" "^1.0.0" -"d3-color@1": - "integrity" "sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q==" - "resolved" "https://registry.npmjs.org/d3-color/-/d3-color-1.4.1.tgz" - "version" "1.4.1" +"d3-color@1 - 2": + "integrity" "sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ==" + "resolved" "https://registry.npmjs.org/d3-color/-/d3-color-2.0.0.tgz" + "version" "2.0.0" -"d3-format@1": - "integrity" "sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ==" - "resolved" "https://registry.npmjs.org/d3-format/-/d3-format-1.4.5.tgz" - "version" "1.4.5" +"d3-format@1 - 2": + "integrity" "sha512-Ab3S6XuE/Q+flY96HXT0jOXcM4EAClYFnRGY5zsjRGNy6qCYrQsMffs7cV5Q9xejb35zxW5hf/guKw34kvIKsA==" + "resolved" "https://registry.npmjs.org/d3-format/-/d3-format-2.0.0.tgz" + "version" "2.0.0" -"d3-interpolate@^1.3.0", "d3-interpolate@1": - "integrity" "sha512-V9znK0zc3jOPV4VD2zZn0sDhZU3WAE2bmlxdIwwQPPzPjvyLkd8B3JUVdS1IDUFDkWZ72c9qnv1GK2ZagTZ8EA==" - "resolved" "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-1.4.0.tgz" - "version" "1.4.0" +"d3-interpolate@^2.0.1", "d3-interpolate@1.2.0 - 2": + "integrity" "sha512-c5UhwwTs/yybcmTpAVqwSFl6vrQ8JZJoT5F7xNFK9pymv5C0Ymcc9/LIJHtYIggg/yS9YHw8i8O8tgb9pupjeQ==" + "resolved" "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-2.0.1.tgz" + "version" "2.0.1" dependencies: - "d3-color" "1" + "d3-color" "1 - 2" -"d3-path@1": - "integrity" "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==" - "resolved" "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz" - "version" "1.0.9" +"d3-path@1 - 2": + "integrity" "sha512-ZwZQxKhBnv9yHaiWd6ZU4x5BtCQ7pXszEV9CU6kRgwIQVQGLMv1oiL4M+MK/n79sYzsj+gcgpPQSctJUsLN7fA==" + "resolved" "https://registry.npmjs.org/d3-path/-/d3-path-2.0.0.tgz" + "version" "2.0.0" -"d3-scale@^2.1.0": - "integrity" "sha512-LbeEvGgIb8UMcAa0EATLNX0lelKWGYDQiPdHj+gLblGVhGLyNbaCn3EvrJf0A3Y/uOOU5aD6MTh5ZFCdEwGiCw==" - "resolved" "https://registry.npmjs.org/d3-scale/-/d3-scale-2.2.2.tgz" - "version" "2.2.2" +"d3-scale@^3.2.3": + "integrity" "sha512-PG6gtpbPCFqKbvdBEswQcJcTzHC8VEd/XzezF5e68KlkT4/ggELw/nR1tv863jY6ufKTvDlzCMZvhe06codbbA==" + "resolved" "https://registry.npmjs.org/d3-scale/-/d3-scale-3.2.4.tgz" + "version" "3.2.4" dependencies: - "d3-array" "^1.2.0" - "d3-collection" "1" - "d3-format" "1" - "d3-interpolate" "1" - "d3-time" "1" - "d3-time-format" "2" + "d3-array" "^2.3.0" + "d3-format" "1 - 2" + "d3-interpolate" "1.2.0 - 2" + "d3-time" "1 - 2" + "d3-time-format" "2 - 3" -"d3-shape@^1.2.0": - "integrity" "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==" - "resolved" "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz" - "version" "1.3.7" +"d3-shape@^2.0.0": + "integrity" "sha512-PnjUqfM2PpskbSLTJvAzp2Wv4CZsnAgTfcVRTwW03QR3MkXF8Uo7B1y/lWkAsmbKwuecto++4NlsYcvYpXpTHA==" + "resolved" "https://registry.npmjs.org/d3-shape/-/d3-shape-2.1.0.tgz" + "version" "2.1.0" dependencies: - "d3-path" "1" + "d3-path" "1 - 2" -"d3-time-format@2": - "integrity" "sha512-guv6b2H37s2Uq/GefleCDtbe0XZAuy7Wa49VGkPVPMfLL9qObgBST3lEHJBMUp8S7NdLQAGIvr2KXk8Hc98iKQ==" - "resolved" "https://registry.npmjs.org/d3-time-format/-/d3-time-format-2.3.0.tgz" - "version" "2.3.0" +"d3-time-format@2 - 3": + "integrity" "sha512-UXJh6EKsHBTjopVqZBhFysQcoXSv/5yLONZvkQ5Kk3qbwiUYkdX17Xa1PT6U1ZWXGGfB1ey5L8dKMlFq2DO0Ag==" + "resolved" "https://registry.npmjs.org/d3-time-format/-/d3-time-format-3.0.0.tgz" + "version" "3.0.0" dependencies: - "d3-time" "1" + "d3-time" "1 - 2" -"d3-time@1": - "integrity" "sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA==" - "resolved" "https://registry.npmjs.org/d3-time/-/d3-time-1.1.0.tgz" - "version" "1.1.0" +"d3-time@1 - 2": + "integrity" "sha512-2mvhstTFcMvwStWd9Tj3e6CEqtOivtD8AUiHT8ido/xmzrI9ijrUUihZ6nHuf/vsScRBonagOdj0Vv+SEL5G3Q==" + "resolved" "https://registry.npmjs.org/d3-time/-/d3-time-2.0.0.tgz" + "version" "2.0.0" "damerau-levenshtein@^1.0.6": "integrity" "sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug==" @@ -5361,7 +5381,7 @@ "resolved" "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz" "version" "1.8.1" -"eventemitter3@^4.0.0": +"eventemitter3@^4.0.0", "eventemitter3@^4.0.1": "integrity" "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" "resolved" "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz" "version" "4.0.7" @@ -5536,6 +5556,11 @@ "resolved" "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" "version" "3.1.3" +"fast-equals@^2.0.0": + "integrity" "sha512-u6RBd8cSiLLxAiC04wVsLV6GBFDOXcTCgWkd3wEoFXgidPSoAJENqC9m7Jb2vewSvjBIfXV6icKeh3GTKfIaXA==" + "resolved" "https://registry.npmjs.org/fast-equals/-/fast-equals-2.0.0.tgz" + "version" "2.0.0" + "fast-glob@^3.1.1": "integrity" "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==" "resolved" "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz" @@ -6627,6 +6652,11 @@ "has" "^1.0.3" "side-channel" "^1.0.2" +"internmap@^1.0.0": + "integrity" "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==" + "resolved" "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz" + "version" "1.0.1" + "invariant@^2.2.1", "invariant@^2.2.4": "integrity" "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==" "resolved" "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz" @@ -7950,7 +7980,7 @@ "resolved" "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz" "version" "4.5.0" -"lodash@^4.17.11", "lodash@^4.17.13", "lodash@^4.17.14", "lodash@^4.17.15", "lodash@^4.17.19", "lodash@^4.17.20", "lodash@^4.17.5", "lodash@>=3.5 <5", "lodash@~4.17.4": +"lodash@^4.17.11", "lodash@^4.17.13", "lodash@^4.17.14", "lodash@^4.17.15", "lodash@^4.17.19", "lodash@^4.17.20", "lodash@^4.17.5", "lodash@>=3.5 <5": "integrity" "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" "resolved" "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz" "version" "4.17.20" @@ -8051,11 +8081,6 @@ dependencies: "object-visit" "^1.0.0" -"math-expression-evaluator@^1.2.14": - "integrity" "sha512-L0j0tFVZBQQLeEjmWOvDLoRciIY8gQGWahvkztXUal8jH8R5Rlqo9GCvgqvXcy9LQhEWdQCVvzqAbxgYNt4blQ==" - "resolved" "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.22.tgz" - "version" "1.2.22" - "md5.js@^1.3.4": "integrity" "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==" "resolved" "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz" @@ -9825,6 +9850,11 @@ "resolved" "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz" "version" "3.3.1" +"postcss-value-parser@^3.3.0": + "integrity" "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + "resolved" "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz" + "version" "3.3.1" + "postcss-value-parser@^4.0.2", "postcss-value-parser@^4.1.0": "integrity" "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==" "resolved" "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz" @@ -10378,7 +10408,7 @@ "strip-ansi" "6.0.0" "text-table" "0.2.0" -"react-dom@^16.13.1", "react-dom@^17.0.0 || ^16.3.0 || ^15.5.4": +"react-dom@^15.0.0 || ^16.0.0 || ^17.0.0", "react-dom@^16.0.0 || ^17.0.0", "react-dom@^16.13.1", "react-dom@^17.0.0 || ^16.3.0 || ^15.5.4", "react-dom@>=15.0.0": "integrity" "sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag==" "resolved" "https://registry.npmjs.org/react-dom/-/react-dom-16.13.1.tgz" "version" "16.13.1" @@ -10425,6 +10455,11 @@ "resolved" "https://registry.npmjs.org/react-is/-/react-is-17.0.1.tgz" "version" "17.0.1" +"react-is@16.10.2": + "integrity" "sha512-INBT1QEgtcCCgvccr5/86CfD71fw9EPmDxgiJX4I2Ddr6ZsV6iFXsuby+qWJPtmNuMY0zByTsG4468P7nHuNWA==" + "resolved" "https://registry.npmjs.org/react-is/-/react-is-16.10.2.tgz" + "version" "16.10.2" + "react-json-view@^1.19.1": "integrity" "sha512-13p8IREj9/x/Ye4WI/JpjhoIwuzEgUAtgJZNBJckfzJt1qyh24BdTm6UQNGnyTq9dapQdrqvquZTo3dz1X6Cjw==" "resolved" "https://registry.npmjs.org/react-json-view/-/react-json-view-1.21.3.tgz" @@ -10495,15 +10530,15 @@ "resolved" "https://registry.npmjs.org/react-refresh/-/react-refresh-0.8.3.tgz" "version" "0.8.3" -"react-resize-detector@^2.3.0": - "integrity" "sha512-oCAddEWWeFWYH5FAcHdBYcZjAw9fMzRUK9sWSx6WvSSOPVRxcHd5zTIGy/mOus+AhN/u6T4TMiWxvq79PywnJQ==" - "resolved" "https://registry.npmjs.org/react-resize-detector/-/react-resize-detector-2.3.0.tgz" - "version" "2.3.0" +"react-resize-detector@^6.6.3": + "integrity" "sha512-sAAh8TmOp59MFs2HR7D1VGbAq+zL+2klQhFbkXOH5Gy/EBEyHGiWXWMStoB+axSYr/Xw54owg6QRGSFj3z0dew==" + "resolved" "https://registry.npmjs.org/react-resize-detector/-/react-resize-detector-6.6.4.tgz" + "version" "6.6.4" dependencies: + "@types/resize-observer-browser" "^0.1.5" "lodash.debounce" "^4.0.8" "lodash.throttle" "^4.1.1" - "prop-types" "^15.6.0" - "resize-observer-polyfill" "^1.5.0" + "resize-observer-polyfill" "^1.5.1" "react-router-dom@^5.2.0": "integrity" "sha512-gxAmfylo2QUjcwxI63RhQ5G85Qqt4voZpUXSEqCwykV0baaOTQDR1f0PmY8AELqIyVc0NEZUj0Gov5lNGcXgsA==" @@ -10622,15 +10657,14 @@ "@babel/runtime" "^7.7.6" "react-transition-group" "^4.3.0" -"react-smooth@^1.0.5": - "integrity" "sha512-eW057HT0lFgCKh8ilr0y2JaH2YbNcuEdFpxyg7Gf/qDKk9hqGMyXryZJ8iMGJEuKH0+wxS0ccSsBBB3W8yCn8w==" - "resolved" "https://registry.npmjs.org/react-smooth/-/react-smooth-1.0.5.tgz" - "version" "1.0.5" +"react-smooth@^2.0.0": + "integrity" "sha512-wK4dBBR6P21otowgMT9toZk+GngMplGS1O5gk+2WSiHEXIrQgDvhR5IIlT74Vtu//qpTcipkgo21dD7a7AUNxw==" + "resolved" "https://registry.npmjs.org/react-smooth/-/react-smooth-2.0.0.tgz" + "version" "2.0.0" dependencies: - "lodash" "~4.17.4" - "prop-types" "^15.6.0" + "fast-equals" "^2.0.0" "raf" "^3.4.0" - "react-transition-group" "^2.5.0" + "react-transition-group" "2.9.0" "react-split-grid@^1.0.3": "integrity" "sha512-iE7R7Ne6KOIstKH4hROG3pwPod3LGJ4TB1P2jmPY2/oYI9+Jw8K7Rj0z7C2ZkfDLgMK2vTc+vpYOkFzr/+eaIg==" @@ -10701,16 +10735,6 @@ "prop-types" "^15.6.2" "react-lifecycles-compat" "^3.0.4" -"react-transition-group@^2.5.0": - "integrity" "sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg==" - "resolved" "https://registry.npmjs.org/react-transition-group/-/react-transition-group-2.9.0.tgz" - "version" "2.9.0" - dependencies: - "dom-helpers" "^3.4.0" - "loose-envify" "^1.4.0" - "prop-types" "^15.6.2" - "react-lifecycles-compat" "^3.0.4" - "react-transition-group@^4.2.0", "react-transition-group@^4.3.0", "react-transition-group@^4.4.1": "integrity" "sha512-Djqr7OQ2aPUiYurhPalTrVy9ddmFCCzwhqQmtN+J3+3DzLO209Fdr70QrN8Z3DsglWql6iY1lDWAfpFiBtuKGw==" "resolved" "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.1.tgz" @@ -10721,6 +10745,16 @@ "loose-envify" "^1.4.0" "prop-types" "^15.6.2" +"react-transition-group@2.9.0": + "integrity" "sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg==" + "resolved" "https://registry.npmjs.org/react-transition-group/-/react-transition-group-2.9.0.tgz" + "version" "2.9.0" + dependencies: + "dom-helpers" "^3.4.0" + "loose-envify" "^1.4.0" + "prop-types" "^15.6.2" + "react-lifecycles-compat" "^3.0.4" + "react-treebeard@^3.2.4": "integrity" "sha512-TsvdUq2kbLavRXa8k4mmqfPse8HmSA9G9s1SZUtIpiYSccSwa0Tm6miMgx7DZ5gpKofQ+j/3Ua0rjsahM3/FQg==" "resolved" "https://registry.npmjs.org/react-treebeard/-/react-treebeard-3.2.4.tgz" @@ -10732,7 +10766,7 @@ "shallowequal" "^1.1.0" "velocity-react" "^1.4.1" -"react@^15.0.2 || ^16.0.0 || ^17.0.0", "react@^15.5.4", "react@^16.14.0", "react@^16.8.0 || ^17.0.0", "react@^17.0.0 || ^16.3.0 || ^15.5.4", "react@>= 16": +"react@^15.0.0 || ^16.0.0 || ^17.0.0", "react@^15.0.2 || ^16.0.0 || ^17.0.0", "react@^15.5.4", "react@^16.0.0 || ^17.0.0", "react@^16.14.0", "react@^16.8.0 || ^17.0.0", "react@^17.0.0 || ^16.3.0 || ^15.5.4", "react@>= 16", "react@>=15.0.0": "integrity" "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==" "resolved" "https://registry.npmjs.org/react/-/react-16.14.0.tgz" "version" "16.14.0" @@ -10833,29 +10867,31 @@ dependencies: "picomatch" "^2.2.1" -"recharts-scale@^0.4.2": - "integrity" "sha512-t8p5sccG9Blm7c1JQK/ak9O8o95WGhNXD7TXg/BW5bYbVlr6eCeRBNpgyigD4p6pSSMehC5nSvBUPj6F68rbFA==" - "resolved" "https://registry.npmjs.org/recharts-scale/-/recharts-scale-0.4.3.tgz" - "version" "0.4.3" +"recharts-scale@^0.4.4": + "integrity" "sha512-kivNFO+0OcUNu7jQquLXAxz1FIwZj8nrj+YkOKc5694NbjCvcT6aSZiIzNzd2Kul4o4rTto8QVR9lMNtxD4G1w==" + "resolved" "https://registry.npmjs.org/recharts-scale/-/recharts-scale-0.4.5.tgz" + "version" "0.4.5" dependencies: "decimal.js-light" "^2.4.1" -"recharts@^1.8.5": - "integrity" "sha512-tM9mprJbXVEBxjM7zHsIy6Cc41oO/pVYqyAsOHLxlJrbNBuLs0PHB3iys2M+RqCF0//k8nJtZF6X6swSkWY3tg==" - "resolved" "https://registry.npmjs.org/recharts/-/recharts-1.8.5.tgz" - "version" "1.8.5" +"recharts@^2.0.9": + "integrity" "sha512-JNsXE80PuF3hugUCE7JqDOMSvu5xQLxtjOaqFKKZI2pCJ1PVJzhwDv4TWk0nO4AvADbeWzYEHbg8C5Hcrh42UA==" + "resolved" "https://registry.npmjs.org/recharts/-/recharts-2.0.9.tgz" + "version" "2.0.9" dependencies: + "@types/d3-scale" "^3.0.0" + "@types/d3-shape" "^2.0.0" "classnames" "^2.2.5" - "core-js" "^2.6.10" - "d3-interpolate" "^1.3.0" - "d3-scale" "^2.1.0" - "d3-shape" "^1.2.0" - "lodash" "^4.17.5" - "prop-types" "^15.6.0" - "react-resize-detector" "^2.3.0" - "react-smooth" "^1.0.5" - "recharts-scale" "^0.4.2" - "reduce-css-calc" "^1.3.0" + "d3-interpolate" "^2.0.1" + "d3-scale" "^3.2.3" + "d3-shape" "^2.0.0" + "eventemitter3" "^4.0.1" + "lodash" "^4.17.19" + "react-is" "16.10.2" + "react-resize-detector" "^6.6.3" + "react-smooth" "^2.0.0" + "recharts-scale" "^0.4.4" + "reduce-css-calc" "^2.1.8" "recursive-readdir@2.2.2": "integrity" "sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg==" @@ -10864,21 +10900,13 @@ dependencies: "minimatch" "3.0.4" -"reduce-css-calc@^1.3.0": - "integrity" "sha1-dHyRTgSWFKTJz7umKYca0dKSdxY=" - "resolved" "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz" - "version" "1.3.0" - dependencies: - "balanced-match" "^0.4.2" - "math-expression-evaluator" "^1.2.14" - "reduce-function-call" "^1.0.1" - -"reduce-function-call@^1.0.1": - "integrity" "sha512-Hl/tuV2VDgWgCSEeWMLwxLZqX7OK59eU1guxXsRKTAyeYimivsKdtcV4fu3r710tpG5GmDKDhQ0HSZLExnNmyQ==" - "resolved" "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.3.tgz" - "version" "1.0.3" +"reduce-css-calc@^2.1.8": + "integrity" "sha512-8liAVezDmUcH+tdzoEGrhfbGcP7nOV4NkGE3a74+qqvE7nt9i4sKLGBuZNOnpI4WiGksiNPklZxva80061QiPg==" + "resolved" "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-2.1.8.tgz" + "version" "2.1.8" dependencies: - "balanced-match" "^1.0.0" + "css-unit-converter" "^1.1.1" + "postcss-value-parser" "^3.3.0" "regenerate-unicode-properties@^8.2.0": "integrity" "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==" @@ -11066,7 +11094,7 @@ "resolved" "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz" "version" "1.0.0" -"resize-observer-polyfill@^1.5.0": +"resize-observer-polyfill@^1.5.1": "integrity" "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" "resolved" "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz" "version" "1.5.1" diff --git a/services/frontend/frontend.go b/services/frontend/frontend.go index c0b73ad921..28b4ac83ae 100644 --- a/services/frontend/frontend.go +++ b/services/frontend/frontend.go @@ -132,8 +132,8 @@ func (self FrontendMetrics) ToDict() *ordereddict.Dict { Set("NodeName", self.NodeName) } -// The master frontend is responsible for aggregating slave stats into -// a single artifact that we can use to display in the GUI. +// The master frontend is responsible for aggregating minion stats +// into a single artifact that we can use to display in the GUI. type MasterFrontendManager struct { config_obj *config_proto.Config @@ -285,26 +285,26 @@ func (self MasterFrontendManager) Start(ctx context.Context, wg *sync.WaitGroup, return err } -type SlaveFrontendManager struct { +type MinionFrontendManager struct { config_obj *config_proto.Config name string } -func (self SlaveFrontendManager) IsMaster() bool { +func (self MinionFrontendManager) IsMaster() bool { return false } -// The slave replicates to the master node. -func (self SlaveFrontendManager) GetMasterAPIClient(ctx context.Context) ( +// The minion frontend replicates to the master node. +func (self MinionFrontendManager) GetMasterAPIClient(ctx context.Context) ( api_proto.APIClient, func() error, error) { return grpc_client.Factory.GetAPIClient(ctx, self.config_obj) } -func (self *SlaveFrontendManager) Start(ctx context.Context, wg *sync.WaitGroup, +func (self *MinionFrontendManager) Start(ctx context.Context, wg *sync.WaitGroup, config_obj *config_proto.Config) error { // If no service specification is set, we start only some - // services on slave frontends. + // services on minion frontends. if config_obj.Frontend.ServerServices == nil { config_obj.Frontend.ServerServices = &config_proto.ServerServicesConfig{ HuntDispatcher: true, @@ -319,7 +319,7 @@ func (self *SlaveFrontendManager) Start(ctx context.Context, wg *sync.WaitGroup, config_obj.Frontend.BindPort) logger := logging.GetLogger(self.config_obj, &logging.FrontendComponent) - logger.Info("Frontend: Server will be slave, with ID %v.", self.name) + logger.Info("Frontend: Server will be a minion, with ID %v.", self.name) // Push our metrics to the master node. return PushMetrics(ctx, wg, config_obj, self.name) @@ -327,7 +327,7 @@ func (self *SlaveFrontendManager) Start(ctx context.Context, wg *sync.WaitGroup, // Install a frontend manager. This must be the first service created // in the frontend. The service will determine if we are running in -// master or slave context. +// master or minion context. func StartFrontendService(ctx context.Context, wg *sync.WaitGroup, config_obj *config_proto.Config) error { if config_obj.Frontend == nil { @@ -343,7 +343,7 @@ func StartFrontendService(ctx context.Context, wg *sync.WaitGroup, return manager.Start(ctx, wg, config_obj) } - manager := &SlaveFrontendManager{config_obj: config_obj} + manager := &MinionFrontendManager{config_obj: config_obj} services.RegisterFrontendManager(manager) return manager.Start(ctx, wg, config_obj) } diff --git a/services/hunt_dispatcher/hunt_dispatcher.go b/services/hunt_dispatcher/hunt_dispatcher.go index edadfdf276..8f3e94d4a1 100644 --- a/services/hunt_dispatcher/hunt_dispatcher.go +++ b/services/hunt_dispatcher/hunt_dispatcher.go @@ -24,7 +24,7 @@ package hunt_dispatcher // hunt list periodically from the data store to receive fresh data. // In multi frontend deployments, each node has its own hunt -// dispatcher, initialized from the data store. On slave nodes, the +// dispatcher, initialized from the data store. On minion nodes, the // hunt dispatcher is not allowed to write updates to the data store, // only read them. The master's hunt dispatcher is responsible for // maintaining the hunt state across all nodes. In order to update a @@ -147,8 +147,8 @@ func (self *HuntDispatcher) ModifyHunt( if !services.GetFrontendManager().IsMaster() { // This is really a critical error. logger := logging.GetLogger(self.config_obj, &logging.FrontendComponent) - logger.Error("Unable to modify hunts on the slave. Please use MutateHunt()") - return errors.New("Unable to modify hunts on the slave. Please use MutateHunt()") + logger.Error("Unable to modify hunts on a minion node. Please use MutateHunt()") + return errors.New("Unable to modify hunts on a minion node. Please use MutateHunt()") } hunt_obj, pres := self.hunts[hunt_id] @@ -181,7 +181,7 @@ func (self *HuntDispatcher) _flush_stats(config_obj *config_proto.Config) error return nil } - // If we are a slave frontend we never flush data - it is up + // If we are a minion frontend we never flush data - it is up // to the master to sync the hunts if !services.GetFrontendManager().IsMaster() { return nil diff --git a/services/journal/journal.go b/services/journal/journal.go index 42c64a1e19..cb88cea06c 100644 --- a/services/journal/journal.go +++ b/services/journal/journal.go @@ -63,7 +63,7 @@ func (self *JournalService) Start(config_obj *config_proto.Config) error { func StartJournalService( ctx context.Context, wg *sync.WaitGroup, config_obj *config_proto.Config) error { - // Are we running on a slave frontend? If so we try to start + // Are we running on a minion frontend? If so we try to start // our replication service. fe_manager := services.GetFrontendManager() if fe_manager != nil && !fe_manager.IsMaster() { diff --git a/services/journal/replication_test.go b/services/journal/replication_test.go index a9ef099fe7..4fc93dd2dd 100644 --- a/services/journal/replication_test.go +++ b/services/journal/replication_test.go @@ -34,7 +34,7 @@ func (self MockFrontendService) IsMaster() bool { return false } -// The slave replicates to the master node. +// The minion replicates to the master node. func (self MockFrontendService) GetMasterAPIClient(ctx context.Context) ( api_proto.APIClient, func() error, error) { return self.mock, func() error { return nil }, nil @@ -78,8 +78,8 @@ func (self *ReplicationTestSuite) SetupTest() { self.ctrl = gomock.NewController(self.T()) self.mock = mock_proto.NewMockAPIClient(self.ctrl) - // Replication service only runs on the slave node. We mock - // the slave frontend manager so we can inject the RPC mock. + // Replication service only runs on the minion node. We mock + // the minion frontend manager so we can inject the RPC mock. services.RegisterFrontendManager(&MockFrontendService{self.mock}) } @@ -148,7 +148,7 @@ func (self *ReplicationTestSuite) TestSendingEvents() { return &emptypb.Empty{}, last_error } - // Push an event into the journal service on the slave. It + // Push an event into the journal service on the minion. It // will result in an RPC on the master to pass the event on. self.mock.EXPECT().PushEvents(gomock.Any(), gomock.Any()). DoAndReturn(record_push_event).AnyTimes()