From a721826821dfcd8a650eb26a7e34e71eb7bf42ee Mon Sep 17 00:00:00 2001 From: Proddy Date: Sun, 1 May 2022 13:00:48 +0200 Subject: [PATCH 1/9] fix Updating table component in the WebUI to support sorting & filtering #470 --- interface/src/project/DashboardStatus.tsx | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/interface/src/project/DashboardStatus.tsx b/interface/src/project/DashboardStatus.tsx index 1e9d7113f..c04005e6e 100644 --- a/interface/src/project/DashboardStatus.tsx +++ b/interface/src/project/DashboardStatus.tsx @@ -91,6 +91,7 @@ const DashboardStatus: FC = () => { BaseRow: ` font-size: 14px; color: white; + height: 32px; `, HeaderRow: ` text-transform: uppercase; @@ -126,6 +127,18 @@ const DashboardStatus: FC = () => { &:nth-of-type(1) { flex: 1; } + &:nth-of-type(2) { + text-align: right; + min-width: 64px; + } + &:nth-of-type(3) { + text-align: right; + min-width: 64px; + } + &:last-of-type { + text-align: right; + min-width: 96px; + } ` }); @@ -141,7 +154,7 @@ const DashboardStatus: FC = () => { try { await EMSESP.scanDevices(); enqueueSnackbar('Scanning for devices...', { variant: 'info' }); - } catch (error: any) { + } catch (error: unknown) { enqueueSnackbar(extractErrorMessage(error, 'Problem initiating scan'), { variant: 'error' }); } finally { setConfirmScan(false); From 71305135931488af8dc9c013896eb721b64e8fc5 Mon Sep 17 00:00:00 2001 From: Proddy Date: Sun, 1 May 2022 13:12:05 +0200 Subject: [PATCH 2/9] update packages --- interface/package-lock.json | 177 ++++++++------- interface/package.json | 14 +- mock-api/package-lock.json | 426 ++++++++++++++++++++++++------------ mock-api/package.json | 4 +- 4 files changed, 395 insertions(+), 226 deletions(-) diff --git a/interface/package-lock.json b/interface/package-lock.json index 22b7b9914..c529cfef0 100644 --- a/interface/package-lock.json +++ b/interface/package-lock.json @@ -12,15 +12,15 @@ "@emotion/styled": "^11.8.1", "@msgpack/msgpack": "^2.7.2", "@mui/icons-material": "^5.6.2", - "@mui/material": "^5.6.2", + "@mui/material": "^5.6.3", "@table-library/react-table-library": "^3.1.0", "@types/lodash": "^4.14.182", - "@types/node": "^17.0.26", + "@types/node": "^17.0.30", "@types/react": "^17.0.43", "@types/react-dom": "^17.0.14", "@types/react-router-dom": "^5.3.3", - "async-validator": "^4.0.8", - "axios": "^0.26.1", + "async-validator": "^4.1.1", + "axios": "^0.27.2", "http-proxy-middleware": "^2.0.6", "jwt-decode": "^3.1.2", "lodash": "^4.17.21", @@ -29,15 +29,15 @@ "react": "^17.0.2", "react-app-rewired": "^2.2.1", "react-dom": "^17.0.2", - "react-dropzone": "^12.0.5", + "react-dropzone": "^13.0.0", "react-icons": "^4.3.1", "react-router-dom": "^6.3.0", "react-scripts": "5.0.1", "sockette": "^2.0.6", - "typescript": "^4.6.3" + "typescript": "^4.6.4" }, "devDependencies": { - "nodemon": "^2.0.15", + "nodemon": "^2.0.16", "npm-run-all": "^4.1.5" } }, @@ -2856,9 +2856,9 @@ } }, "node_modules/@mui/base": { - "version": "5.0.0-alpha.77", - "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.77.tgz", - "integrity": "sha512-Zqm3qlczGViD3lJSYo8ZnQLHJ3PwGYftbDfVuh2Rq5OD88F7H6oDILlqknzty59NDkeSVO2qlymYmHOY1nLodg==", + "version": "5.0.0-alpha.78", + "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.78.tgz", + "integrity": "sha512-5L+GNe2M9/tFjQpjK2r837+kzRg/l6D5R9SQbG1wmSWejw5Ei8P+KXIgS/NLNi9g7dUT8bnCyzz9AZKQX1Jsfg==", "dependencies": { "@babel/runtime": "^7.17.2", "@emotion/is-prop-valid": "^1.1.2", @@ -2913,13 +2913,13 @@ } }, "node_modules/@mui/material": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.6.2.tgz", - "integrity": "sha512-bwMvroBrMgUTwUh/BcjhtcJwEw9uH4chV3+ZSj6RckOJtMj8U4yEeD7S4NgHE8Ioj5eObKFzHpih/cTD1sDRpg==", + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.6.3.tgz", + "integrity": "sha512-2VovFsbCEhic29NYoBF7zFrpH2sEOlKXXDhGjzxmWiI9OnC3SX63hapWunjaVsiRINVnjuMHuW1MOs4UtV8Gfg==", "dependencies": { "@babel/runtime": "^7.17.2", - "@mui/base": "5.0.0-alpha.77", - "@mui/system": "^5.6.2", + "@mui/base": "5.0.0-alpha.78", + "@mui/system": "^5.6.3", "@mui/types": "^7.1.3", "@mui/utils": "^5.6.1", "@types/react-transition-group": "^4.4.4", @@ -3013,9 +3013,9 @@ } }, "node_modules/@mui/system": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.6.2.tgz", - "integrity": "sha512-Wg9TRbvavSwEYk6UdpnoDx+CqJfaAN7AzlmwEx7DtGmx0snFVBST8FVb1Ev1vXosxEnq6/fe7ZDRobFVewvEPQ==", + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.6.3.tgz", + "integrity": "sha512-4SRi52a4ttZ2S4EHEDE8arVNuKqyQLTYUTF80WAZ0tQwnG20qwlBtzcrywCGItmVAMl7RUaYopyWOx3yVPvrmQ==", "dependencies": { "@babel/runtime": "^7.17.2", "@mui/private-theming": "^5.6.2", @@ -3763,9 +3763,9 @@ "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" }, "node_modules/@types/node": { - "version": "17.0.26", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.26.tgz", - "integrity": "sha512-z/FG/6DUO7pnze3AE3TBGIjGGKkvCcGcWINe1C7cADY8hKLJPDYpzsNE37uExQ4md5RFtTCvg+M8Mu1Enyeg2A==" + "version": "17.0.30", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.30.tgz", + "integrity": "sha512-oNBIZjIqyHYP8VCNAV9uEytXVeXG2oR0w9lgAXro20eugRQfY002qr3CUl6BAe+Yf/z3CRjPdz27Pu6WWtuSRw==" }, "node_modules/@types/parse-json": { "version": "4.0.0", @@ -4670,9 +4670,9 @@ } }, "node_modules/async-validator": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-4.0.8.tgz", - "integrity": "sha512-vx1kyOCuSJqB5IVatlybUkV/e22sdx+V0XohCWbBfbbzbiLFt6fHxfWg6UEBhFw0gVgZtaSLTJtugmP4rdGQAQ==" + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-4.1.1.tgz", + "integrity": "sha512-p4DO/JXwjs8klJyJL8Q2oM4ks5fUTze/h5k10oPPKMiLe1fj3G1QMzPHNmN1Py4ycOk7WlO2DcGXv1qiESJCZA==" }, "node_modules/asynckit": { "version": "0.4.0", @@ -4736,11 +4736,25 @@ } }, "node_modules/axios": { - "version": "0.26.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz", - "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", "dependencies": { - "follow-redirects": "^1.14.8" + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" + } + }, + "node_modules/axios/node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" } }, "node_modules/axobject-query": { @@ -7962,9 +7976,9 @@ } }, "node_modules/file-selector": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/file-selector/-/file-selector-0.4.0.tgz", - "integrity": "sha512-iACCiXeMYOvZqlF1kTiYINzgepRBymz1wwjiuup9u9nayhb6g4fSwiyJ/6adli+EPwrWtpgQAh2PoS7HukEGEg==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/file-selector/-/file-selector-0.5.0.tgz", + "integrity": "sha512-s8KNnmIDTBoD0p9uJ9uD0XY38SCeBOtj0UMXyQSLg1Ypfrfj8+dAvwsLjYQkQ2GjhVtp2HrnF5cJzMhBjfD8HA==", "dependencies": { "tslib": "^2.0.3" }, @@ -12026,9 +12040,9 @@ "integrity": "sha512-maHFz6OLqYxz+VQyCAtA3PTX4UP/53pa05fyDNc9CwjvJ0yEh6+xBwKsgCxMNhS8taUKBFYxfuiaD9U/55iFaw==" }, "node_modules/nodemon": { - "version": "2.0.15", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.15.tgz", - "integrity": "sha512-gdHMNx47Gw7b3kWxJV64NI+Q5nfl0y5DgDbiVtShiwa7Z0IZ07Ll4RLFo6AjrhzMtoEZn5PDE3/c2AbVsiCkpA==", + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.16.tgz", + "integrity": "sha512-zsrcaOfTWRuUzBn3P44RDliLlp263Z/76FPoHFr3cFFkOz0lTPAcIw8dCzfdVIx/t3AtDYCZRCDkoCojJqaG3w==", "dev": true, "hasInstallScript": true, "dependencies": { @@ -14423,12 +14437,12 @@ } }, "node_modules/react-dropzone": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/react-dropzone/-/react-dropzone-12.0.5.tgz", - "integrity": "sha512-zUjZigD0VJ91CSm9T1h7ErxFReBLaa9sjS2dUL0+inb0RROZpSJTNDHPY1rrBES5V2NXhF8v0kghmaHc81BMFg==", + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/react-dropzone/-/react-dropzone-13.0.0.tgz", + "integrity": "sha512-BwzHZlmwC2wFKtGbuWw6A+D+uUaJgUGuheALoVFwTNztwV+7NLzdUrHHUkF9mRkI9u5pJDivH3wo+BgSyYVoTQ==", "dependencies": { "attr-accept": "^2.2.2", - "file-selector": "^0.4.0", + "file-selector": "^0.5.0", "prop-types": "^15.8.1" }, "engines": { @@ -16354,9 +16368,9 @@ } }, "node_modules/typescript": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz", - "integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==", + "version": "4.6.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz", + "integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -19555,9 +19569,9 @@ "integrity": "sha512-rYEi46+gIzufyYUAoHDnRzkWGxajpD9vVXFQ3g1vbjrBm6P7MBmm+s/fqPa46sxa+8FOUdEuRQKaugo5a4JWpw==" }, "@mui/base": { - "version": "5.0.0-alpha.77", - "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.77.tgz", - "integrity": "sha512-Zqm3qlczGViD3lJSYo8ZnQLHJ3PwGYftbDfVuh2Rq5OD88F7H6oDILlqknzty59NDkeSVO2qlymYmHOY1nLodg==", + "version": "5.0.0-alpha.78", + "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.78.tgz", + "integrity": "sha512-5L+GNe2M9/tFjQpjK2r837+kzRg/l6D5R9SQbG1wmSWejw5Ei8P+KXIgS/NLNi9g7dUT8bnCyzz9AZKQX1Jsfg==", "requires": { "@babel/runtime": "^7.17.2", "@emotion/is-prop-valid": "^1.1.2", @@ -19578,13 +19592,13 @@ } }, "@mui/material": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.6.2.tgz", - "integrity": "sha512-bwMvroBrMgUTwUh/BcjhtcJwEw9uH4chV3+ZSj6RckOJtMj8U4yEeD7S4NgHE8Ioj5eObKFzHpih/cTD1sDRpg==", + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.6.3.tgz", + "integrity": "sha512-2VovFsbCEhic29NYoBF7zFrpH2sEOlKXXDhGjzxmWiI9OnC3SX63hapWunjaVsiRINVnjuMHuW1MOs4UtV8Gfg==", "requires": { "@babel/runtime": "^7.17.2", - "@mui/base": "5.0.0-alpha.77", - "@mui/system": "^5.6.2", + "@mui/base": "5.0.0-alpha.78", + "@mui/system": "^5.6.3", "@mui/types": "^7.1.3", "@mui/utils": "^5.6.1", "@types/react-transition-group": "^4.4.4", @@ -19617,9 +19631,9 @@ } }, "@mui/system": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.6.2.tgz", - "integrity": "sha512-Wg9TRbvavSwEYk6UdpnoDx+CqJfaAN7AzlmwEx7DtGmx0snFVBST8FVb1Ev1vXosxEnq6/fe7ZDRobFVewvEPQ==", + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.6.3.tgz", + "integrity": "sha512-4SRi52a4ttZ2S4EHEDE8arVNuKqyQLTYUTF80WAZ0tQwnG20qwlBtzcrywCGItmVAMl7RUaYopyWOx3yVPvrmQ==", "requires": { "@babel/runtime": "^7.17.2", "@mui/private-theming": "^5.6.2", @@ -20136,9 +20150,9 @@ "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" }, "@types/node": { - "version": "17.0.26", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.26.tgz", - "integrity": "sha512-z/FG/6DUO7pnze3AE3TBGIjGGKkvCcGcWINe1C7cADY8hKLJPDYpzsNE37uExQ4md5RFtTCvg+M8Mu1Enyeg2A==" + "version": "17.0.30", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.30.tgz", + "integrity": "sha512-oNBIZjIqyHYP8VCNAV9uEytXVeXG2oR0w9lgAXro20eugRQfY002qr3CUl6BAe+Yf/z3CRjPdz27Pu6WWtuSRw==" }, "@types/parse-json": { "version": "4.0.0", @@ -20838,9 +20852,9 @@ } }, "async-validator": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-4.0.8.tgz", - "integrity": "sha512-vx1kyOCuSJqB5IVatlybUkV/e22sdx+V0XohCWbBfbbzbiLFt6fHxfWg6UEBhFw0gVgZtaSLTJtugmP4rdGQAQ==" + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-4.1.1.tgz", + "integrity": "sha512-p4DO/JXwjs8klJyJL8Q2oM4ks5fUTze/h5k10oPPKMiLe1fj3G1QMzPHNmN1Py4ycOk7WlO2DcGXv1qiESJCZA==" }, "asynckit": { "version": "0.4.0", @@ -20876,11 +20890,24 @@ "integrity": "sha512-gd1kmb21kwNuWr6BQz8fv6GNECPBnUasepcoLbekws23NVBLODdsClRZ+bQ8+9Uomf3Sm3+Vwn0oYG9NvwnJCw==" }, "axios": { - "version": "0.26.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz", - "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", "requires": { - "follow-redirects": "^1.14.8" + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" + }, + "dependencies": { + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + } } }, "axobject-query": { @@ -23253,9 +23280,9 @@ } }, "file-selector": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/file-selector/-/file-selector-0.4.0.tgz", - "integrity": "sha512-iACCiXeMYOvZqlF1kTiYINzgepRBymz1wwjiuup9u9nayhb6g4fSwiyJ/6adli+EPwrWtpgQAh2PoS7HukEGEg==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/file-selector/-/file-selector-0.5.0.tgz", + "integrity": "sha512-s8KNnmIDTBoD0p9uJ9uD0XY38SCeBOtj0UMXyQSLg1Ypfrfj8+dAvwsLjYQkQ2GjhVtp2HrnF5cJzMhBjfD8HA==", "requires": { "tslib": "^2.0.3" } @@ -26186,9 +26213,9 @@ "integrity": "sha512-maHFz6OLqYxz+VQyCAtA3PTX4UP/53pa05fyDNc9CwjvJ0yEh6+xBwKsgCxMNhS8taUKBFYxfuiaD9U/55iFaw==" }, "nodemon": { - "version": "2.0.15", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.15.tgz", - "integrity": "sha512-gdHMNx47Gw7b3kWxJV64NI+Q5nfl0y5DgDbiVtShiwa7Z0IZ07Ll4RLFo6AjrhzMtoEZn5PDE3/c2AbVsiCkpA==", + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.16.tgz", + "integrity": "sha512-zsrcaOfTWRuUzBn3P44RDliLlp263Z/76FPoHFr3cFFkOz0lTPAcIw8dCzfdVIx/t3AtDYCZRCDkoCojJqaG3w==", "dev": true, "requires": { "chokidar": "^3.5.2", @@ -27766,12 +27793,12 @@ } }, "react-dropzone": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/react-dropzone/-/react-dropzone-12.0.5.tgz", - "integrity": "sha512-zUjZigD0VJ91CSm9T1h7ErxFReBLaa9sjS2dUL0+inb0RROZpSJTNDHPY1rrBES5V2NXhF8v0kghmaHc81BMFg==", + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/react-dropzone/-/react-dropzone-13.0.0.tgz", + "integrity": "sha512-BwzHZlmwC2wFKtGbuWw6A+D+uUaJgUGuheALoVFwTNztwV+7NLzdUrHHUkF9mRkI9u5pJDivH3wo+BgSyYVoTQ==", "requires": { "attr-accept": "^2.2.2", - "file-selector": "^0.4.0", + "file-selector": "^0.5.0", "prop-types": "^15.8.1" } }, @@ -29213,9 +29240,9 @@ } }, "typescript": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz", - "integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==" + "version": "4.6.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz", + "integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==" }, "unbox-primitive": { "version": "1.0.1", diff --git a/interface/package.json b/interface/package.json index b79479f39..27134b288 100644 --- a/interface/package.json +++ b/interface/package.json @@ -8,15 +8,15 @@ "@emotion/styled": "^11.8.1", "@msgpack/msgpack": "^2.7.2", "@mui/icons-material": "^5.6.2", - "@mui/material": "^5.6.2", + "@mui/material": "^5.6.3", "@table-library/react-table-library": "^3.1.0", "@types/lodash": "^4.14.182", - "@types/node": "^17.0.26", + "@types/node": "^17.0.30", "@types/react": "^17.0.43", "@types/react-dom": "^17.0.14", "@types/react-router-dom": "^5.3.3", - "async-validator": "^4.0.8", - "axios": "^0.26.1", + "async-validator": "^4.1.1", + "axios": "^0.27.2", "http-proxy-middleware": "^2.0.6", "jwt-decode": "^3.1.2", "lodash": "^4.17.21", @@ -25,12 +25,12 @@ "react": "^17.0.2", "react-app-rewired": "^2.2.1", "react-dom": "^17.0.2", - "react-dropzone": "^12.0.5", + "react-dropzone": "^13.0.0", "react-icons": "^4.3.1", "react-router-dom": "^6.3.0", "react-scripts": "5.0.1", "sockette": "^2.0.6", - "typescript": "^4.6.3" + "typescript": "^4.6.4" }, "scripts": { "start": "react-app-rewired start", @@ -97,7 +97,7 @@ ] }, "devDependencies": { - "nodemon": "^2.0.15", + "nodemon": "^2.0.16", "npm-run-all": "^4.1.5" } } diff --git a/mock-api/package-lock.json b/mock-api/package-lock.json index b9c537f6f..b0a9c3d66 100644 --- a/mock-api/package-lock.json +++ b/mock-api/package-lock.json @@ -11,9 +11,9 @@ "dependencies": { "@msgpack/msgpack": "^2.7.2", "compression": "^1.7.4", - "express": "^4.17.3", + "express": "^4.18.1", "express-sse": "^0.5.3", - "nodemon": "^2.0.15", + "nodemon": "^2.0.16", "ws": "^8.5.0" } }, @@ -122,23 +122,26 @@ } }, "node_modules/body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==", + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", + "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", "dependencies": { "bytes": "3.1.2", "content-type": "~1.0.4", "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.8.1", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.9.7", - "raw-body": "2.4.3", - "type-is": "~1.6.18" + "on-finished": "2.4.1", + "qs": "6.10.3", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" }, "engines": { - "node": ">= 0.8" + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" } }, "node_modules/boxen": { @@ -229,6 +232,18 @@ "node": ">=8" } }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/camelcase": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz", @@ -430,9 +445,9 @@ } }, "node_modules/cookie": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", - "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", "engines": { "node": ">= 0.6" } @@ -483,17 +498,21 @@ "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" }, "node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", "engines": { - "node": ">= 0.6" + "node": ">= 0.8" } }, "node_modules/destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } }, "node_modules/dot-prop": { "version": "5.3.0", @@ -559,37 +578,38 @@ } }, "node_modules/express": { - "version": "4.17.3", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.3.tgz", - "integrity": "sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", + "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.19.2", + "body-parser": "1.20.0", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.4.2", + "cookie": "0.5.0", "cookie-signature": "1.0.6", "debug": "2.6.9", - "depd": "~1.1.2", + "depd": "2.0.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "~1.1.2", + "finalhandler": "1.2.0", "fresh": "0.5.2", + "http-errors": "2.0.0", "merge-descriptors": "1.0.1", "methods": "~1.1.2", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "parseurl": "~1.3.3", "path-to-regexp": "0.1.7", "proxy-addr": "~2.0.7", - "qs": "6.9.7", + "qs": "6.10.3", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", - "send": "0.17.2", - "serve-static": "1.14.2", + "send": "0.18.0", + "serve-static": "1.15.0", "setprototypeof": "1.2.0", - "statuses": "~1.5.0", + "statuses": "2.0.1", "type-is": "~1.6.18", "utils-merge": "1.0.1", "vary": "~1.1.2" @@ -634,16 +654,16 @@ } }, "node_modules/finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", "dependencies": { "debug": "2.6.9", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "parseurl": "~1.3.3", - "statuses": "~1.5.0", + "statuses": "2.0.1", "unpipe": "~1.0.0" }, "engines": { @@ -679,6 +699,24 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/get-stream": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", @@ -741,6 +779,17 @@ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, "node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -749,6 +798,17 @@ "node": ">=4" } }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-yarn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", @@ -763,18 +823,18 @@ "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" }, "node_modules/http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", "dependencies": { - "depd": "~1.1.2", + "depd": "2.0.0", "inherits": "2.0.4", "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", + "statuses": "2.0.1", "toidentifier": "1.0.1" }, "engines": { - "node": ">= 0.6" + "node": ">= 0.8" } }, "node_modules/iconv-lite": { @@ -1093,9 +1153,9 @@ } }, "node_modules/nodemon": { - "version": "2.0.15", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.15.tgz", - "integrity": "sha512-gdHMNx47Gw7b3kWxJV64NI+Q5nfl0y5DgDbiVtShiwa7Z0IZ07Ll4RLFo6AjrhzMtoEZn5PDE3/c2AbVsiCkpA==", + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.16.tgz", + "integrity": "sha512-zsrcaOfTWRuUzBn3P44RDliLlp263Z/76FPoHFr3cFFkOz0lTPAcIw8dCzfdVIx/t3AtDYCZRCDkoCojJqaG3w==", "hasInstallScript": true, "dependencies": { "chokidar": "^3.5.2", @@ -1163,10 +1223,18 @@ "node": ">=8" } }, + "node_modules/object-inspect": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", + "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", "dependencies": { "ee-first": "1.1.1" }, @@ -1290,9 +1358,12 @@ } }, "node_modules/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==", + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "dependencies": { + "side-channel": "^1.0.4" + }, "engines": { "node": ">=0.6" }, @@ -1309,12 +1380,12 @@ } }, "node_modules/raw-body": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.3.tgz", - "integrity": "sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", "dependencies": { "bytes": "3.1.2", - "http-errors": "1.8.1", + "http-errors": "2.0.0", "iconv-lite": "0.4.24", "unpipe": "1.0.0" }, @@ -1420,23 +1491,23 @@ } }, "node_modules/send": { - "version": "0.17.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", - "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", "dependencies": { "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", + "depd": "2.0.0", + "destroy": "1.2.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", "fresh": "0.5.2", - "http-errors": "1.8.1", + "http-errors": "2.0.0", "mime": "1.6.0", "ms": "2.1.3", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "range-parser": "~1.2.1", - "statuses": "~1.5.0" + "statuses": "2.0.1" }, "engines": { "node": ">= 0.8.0" @@ -1448,14 +1519,14 @@ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" }, "node_modules/serve-static": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", - "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", "dependencies": { "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.17.2" + "send": "0.18.0" }, "engines": { "node": ">= 0.8.0" @@ -1466,17 +1537,30 @@ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/signal-exit": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==" }, "node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "engines": { - "node": ">= 0.6" + "node": ">= 0.8" } }, "node_modules/string-width": { @@ -1839,20 +1923,22 @@ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" }, "body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==", + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", + "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", "requires": { "bytes": "3.1.2", "content-type": "~1.0.4", "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.8.1", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.9.7", - "raw-body": "2.4.3", - "type-is": "~1.6.18" + "on-finished": "2.4.1", + "qs": "6.10.3", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" } }, "boxen": { @@ -1921,6 +2007,15 @@ } } }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, "camelcase": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz", @@ -2064,9 +2159,9 @@ "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" }, "cookie": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", - "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==" + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" }, "cookie-signature": { "version": "1.0.6", @@ -2105,14 +2200,14 @@ "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" }, "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" }, "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" }, "dot-prop": { "version": "5.3.0", @@ -2166,37 +2261,38 @@ "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" }, "express": { - "version": "4.17.3", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.3.tgz", - "integrity": "sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", + "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", "requires": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.19.2", + "body-parser": "1.20.0", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.4.2", + "cookie": "0.5.0", "cookie-signature": "1.0.6", "debug": "2.6.9", - "depd": "~1.1.2", + "depd": "2.0.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "~1.1.2", + "finalhandler": "1.2.0", "fresh": "0.5.2", + "http-errors": "2.0.0", "merge-descriptors": "1.0.1", "methods": "~1.1.2", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "parseurl": "~1.3.3", "path-to-regexp": "0.1.7", "proxy-addr": "~2.0.7", - "qs": "6.9.7", + "qs": "6.10.3", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", - "send": "0.17.2", - "serve-static": "1.14.2", + "send": "0.18.0", + "serve-static": "1.15.0", "setprototypeof": "1.2.0", - "statuses": "~1.5.0", + "statuses": "2.0.1", "type-is": "~1.6.18", "utils-merge": "1.0.1", "vary": "~1.1.2" @@ -2223,16 +2319,16 @@ } }, "finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", "requires": { "debug": "2.6.9", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "parseurl": "~1.3.3", - "statuses": "~1.5.0", + "statuses": "2.0.1", "unpipe": "~1.0.0" } }, @@ -2252,6 +2348,21 @@ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "optional": true }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, "get-stream": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", @@ -2299,11 +2410,24 @@ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + }, "has-yarn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", @@ -2315,14 +2439,14 @@ "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" }, "http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", "requires": { - "depd": "~1.1.2", + "depd": "2.0.0", "inherits": "2.0.4", "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", + "statuses": "2.0.1", "toidentifier": "1.0.1" } }, @@ -2548,9 +2672,9 @@ "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" }, "nodemon": { - "version": "2.0.15", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.15.tgz", - "integrity": "sha512-gdHMNx47Gw7b3kWxJV64NI+Q5nfl0y5DgDbiVtShiwa7Z0IZ07Ll4RLFo6AjrhzMtoEZn5PDE3/c2AbVsiCkpA==", + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.16.tgz", + "integrity": "sha512-zsrcaOfTWRuUzBn3P44RDliLlp263Z/76FPoHFr3cFFkOz0lTPAcIw8dCzfdVIx/t3AtDYCZRCDkoCojJqaG3w==", "requires": { "chokidar": "^3.5.2", "debug": "^3.2.7", @@ -2597,10 +2721,15 @@ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==" }, + "object-inspect": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", + "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==" + }, "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", "requires": { "ee-first": "1.1.1" } @@ -2693,9 +2822,12 @@ } }, "qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==" + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "requires": { + "side-channel": "^1.0.4" + } }, "range-parser": { "version": "1.2.1", @@ -2703,12 +2835,12 @@ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" }, "raw-body": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.3.tgz", - "integrity": "sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", "requires": { "bytes": "3.1.2", - "http-errors": "1.8.1", + "http-errors": "2.0.0", "iconv-lite": "0.4.24", "unpipe": "1.0.0" } @@ -2794,23 +2926,23 @@ } }, "send": { - "version": "0.17.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", - "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", "requires": { "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", + "depd": "2.0.0", + "destroy": "1.2.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", "fresh": "0.5.2", - "http-errors": "1.8.1", + "http-errors": "2.0.0", "mime": "1.6.0", "ms": "2.1.3", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "range-parser": "~1.2.1", - "statuses": "~1.5.0" + "statuses": "2.0.1" }, "dependencies": { "ms": { @@ -2821,14 +2953,14 @@ } }, "serve-static": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", - "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", "requires": { "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.17.2" + "send": "0.18.0" } }, "setprototypeof": { @@ -2836,15 +2968,25 @@ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, "signal-exit": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==" }, "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" }, "string-width": { "version": "4.2.3", diff --git a/mock-api/package.json b/mock-api/package.json index e0613c14a..b963eb4a8 100644 --- a/mock-api/package.json +++ b/mock-api/package.json @@ -13,9 +13,9 @@ "dependencies": { "@msgpack/msgpack": "^2.7.2", "compression": "^1.7.4", - "express": "^4.17.3", + "express": "^4.18.1", "express-sse": "^0.5.3", - "nodemon": "^2.0.15", + "nodemon": "^2.0.16", "ws": "^8.5.0" } } From 0143e89e27aa49364a2ac675cebe2f12f1a587df Mon Sep 17 00:00:00 2001 From: Proddy Date: Sun, 1 May 2022 13:12:30 +0200 Subject: [PATCH 3/9] table formatting --- interface/src/project/DashboardData.tsx | 16 ++++++++-------- .../src/project/SettingsCustomization.tsx | 19 ++++++------------- 2 files changed, 14 insertions(+), 21 deletions(-) diff --git a/interface/src/project/DashboardData.tsx b/interface/src/project/DashboardData.tsx index ca8781858..d13f1d0dd 100644 --- a/interface/src/project/DashboardData.tsx +++ b/interface/src/project/DashboardData.tsx @@ -207,7 +207,6 @@ const DashboardData: FC = () => { border-bottom: 1px solid transparent; &:last-of-type { text-align: right; - min-width: 64px; } `, HeaderCell: ` @@ -360,7 +359,7 @@ const DashboardData: FC = () => { const fetchCoreData = useCallback(async () => { try { setCoreData((await EMSESP.readCoreData()).data); - } catch (error: any) { + } catch (error: unknown) { enqueueSnackbar(extractErrorMessage(error, 'Failed to fetch core data'), { variant: 'error' }); } }, [enqueueSnackbar]); @@ -381,7 +380,7 @@ const DashboardData: FC = () => { const unique_id = parseInt(id); try { setDeviceData((await EMSESP.readDeviceData({ id: unique_id })).data); - } catch (error: any) { + } catch (error: unknown) { enqueueSnackbar(extractErrorMessage(error, 'Problem fetching device data'), { variant: 'error' }); } }; @@ -389,7 +388,7 @@ const DashboardData: FC = () => { const fetchSensorData = async () => { try { setSensorData((await EMSESP.readSensorData()).data); - } catch (error: any) { + } catch (error: unknown) { enqueueSnackbar(extractErrorMessage(error, 'Problem fetching sensor data'), { variant: 'error' }); } }; @@ -442,7 +441,7 @@ const DashboardData: FC = () => { enqueueSnackbar('Write command sent', { variant: 'success' }); } setDeviceValue(undefined); - } catch (error: any) { + } catch (error: unknown) { enqueueSnackbar(extractErrorMessage(error, 'Problem writing value'), { variant: 'error' }); } finally { refreshData(); @@ -533,7 +532,7 @@ const DashboardData: FC = () => { enqueueSnackbar('Sensor updated', { variant: 'success' }); } setSensor(undefined); - } catch (error: any) { + } catch (error: unknown) { enqueueSnackbar(extractErrorMessage(error, 'Problem updating sensor'), { variant: 'error' }); } finally { setSensor(undefined); @@ -741,6 +740,7 @@ const DashboardData: FC = () => { }} theme={data_theme} sort={dv_sort} + // layout={{ custom: true }} > {(tableList: any) => ( <> @@ -940,7 +940,7 @@ const DashboardData: FC = () => { } else { enqueueSnackbar('Analog sensor removed', { variant: 'success' }); } - } catch (error: any) { + } catch (error: unknown) { enqueueSnackbar(extractErrorMessage(error, 'Problem updating analog sensor'), { variant: 'error' }); } finally { setAnalog(undefined); @@ -968,7 +968,7 @@ const DashboardData: FC = () => { } else { enqueueSnackbar('Analog sensor updated', { variant: 'success' }); } - } catch (error: any) { + } catch (error: unknown) { enqueueSnackbar(extractErrorMessage(error, 'Problem updating analog'), { variant: 'error' }); } finally { setAnalog(undefined); diff --git a/interface/src/project/SettingsCustomization.tsx b/interface/src/project/SettingsCustomization.tsx index c8c020ddf..acc3296e9 100644 --- a/interface/src/project/SettingsCustomization.tsx +++ b/interface/src/project/SettingsCustomization.tsx @@ -108,7 +108,6 @@ const SettingsCustomization: FC = () => { min-width: 124px; width: 124px; padding-left: 0px; - } &:nth-of-type(2) { min-width: 70%; @@ -155,7 +154,7 @@ const SettingsCustomization: FC = () => { const fetchDevices = useCallback(async () => { try { setDevices((await EMSESP.readDevices()).data); - } catch (error: any) { + } catch (error: unknown) { setErrorMessage(extractErrorMessage(error, 'Failed to fetch device list')); } }, []); @@ -168,7 +167,7 @@ const SettingsCustomization: FC = () => { try { const data = (await EMSESP.readDeviceEntities({ id: unique_id })).data; setInitialMask(data); - } catch (error: any) { + } catch (error: unknown) { setErrorMessage(extractErrorMessage(error, 'Problem fetching device entities')); } }; @@ -250,7 +249,7 @@ const SettingsCustomization: FC = () => { try { await EMSESP.resetCustomizations(); enqueueSnackbar('All customizations have been removed. Restarting...', { variant: 'info' }); - } catch (error: any) { + } catch (error: unknown) { enqueueSnackbar(extractErrorMessage(error, 'Problem resetting customizations'), { variant: 'error' }); } finally { setConfirmReset(false); @@ -278,7 +277,7 @@ const SettingsCustomization: FC = () => { } else { enqueueSnackbar('Customization save failed', { variant: 'error' }); } - } catch (error: any) { + } catch (error: unknown) { enqueueSnackbar(extractErrorMessage(error, 'Problem sending entity list'), { variant: 'error' }); } setInitialMask(deviceEntities); @@ -414,17 +413,12 @@ const SettingsCustomization: FC = () => { - +
{(tableList: any) => ( <>
- OPTIONS + OPTIONS VALUE -
From 6b315d52a8b7543ce35bbf21754160ba7774e040 Mon Sep 17 00:00:00 2001 From: Proddy Date: Sun, 1 May 2022 13:12:40 +0200 Subject: [PATCH 4/9] update axioserror --- interface/src/SignIn.tsx | 10 +++++++--- .../src/components/upload/SingleUpload.tsx | 12 +++++++++--- .../src/components/upload/useFileUpload.ts | 2 +- .../authentication/Authentication.tsx | 6 +++--- .../src/contexts/features/FeaturesLoader.tsx | 2 +- .../framework/network/WiFiNetworkScanner.tsx | 19 ++++++++++++++----- interface/src/framework/ntp/NTPStatusForm.tsx | 2 +- .../src/framework/security/GenerateToken.tsx | 2 +- .../framework/system/FirmwareFileUpload.tsx | 1 - .../system/FirmwareRestartMonitor.tsx | 2 +- interface/src/framework/system/SystemLog.tsx | 4 ++-- .../src/framework/system/SystemStatusForm.tsx | 4 ++-- interface/src/project/HelpInformation.tsx | 2 +- interface/src/project/SettingsApplication.tsx | 4 ++-- interface/src/utils/endpoints.ts | 10 ++++++++-- interface/src/utils/useRest.ts | 4 ++-- 16 files changed, 55 insertions(+), 31 deletions(-) diff --git a/interface/src/SignIn.tsx b/interface/src/SignIn.tsx index 602c44588..b5e4139b1 100644 --- a/interface/src/SignIn.tsx +++ b/interface/src/SignIn.tsx @@ -9,6 +9,8 @@ import * as AuthenticationApi from './api/authentication'; import { PROJECT_NAME } from './api/env'; import { AuthenticationContext } from './contexts/authentication'; +import { AxiosError } from 'axios'; + import { extractErrorMessage, onEnterCallback, updateValue } from './utils'; import { SignInRequest } from './types'; import { ValidatedTextField } from './components'; @@ -42,9 +44,11 @@ const SignIn: FC = () => { try { const { data: loginResponse } = await AuthenticationApi.signIn(signInRequest); authenticationContext.signIn(loginResponse.access_token); - } catch (error: any) { - if (error.response?.status === 401) { - enqueueSnackbar('Invalid login details', { variant: 'warning' }); + } catch (error: unknown) { + if (error instanceof AxiosError) { + if (error.response?.status === 401) { + enqueueSnackbar('Invalid login details', { variant: 'warning' }); + } } else { enqueueSnackbar(extractErrorMessage(error, 'Unexpected error, please try again'), { variant: 'error' }); } diff --git a/interface/src/components/upload/SingleUpload.tsx b/interface/src/components/upload/SingleUpload.tsx index d58cc890d..f1cb6fb18 100644 --- a/interface/src/components/upload/SingleUpload.tsx +++ b/interface/src/components/upload/SingleUpload.tsx @@ -24,13 +24,19 @@ const getBorderColor = (theme: Theme, props: DropzoneState) => { export interface SingleUploadProps { onDrop: (acceptedFiles: File[]) => void; onCancel: () => void; - accept?: string | string[]; uploading: boolean; progress?: ProgressEvent; } -const SingleUpload: FC = ({ onDrop, onCancel, accept, uploading, progress }) => { - const dropzoneState = useDropzone({ onDrop, accept, disabled: uploading, multiple: false }); +const SingleUpload: FC = ({ onDrop, onCancel, uploading, progress }) => { + const dropzoneState = useDropzone({ + onDrop, + accept: { + 'application/octet-stream': ['.bin'] + }, + disabled: uploading, + multiple: false + }); const { getRootProps, getInputProps } = dropzoneState; const theme = useTheme(); diff --git a/interface/src/components/upload/useFileUpload.ts b/interface/src/components/upload/useFileUpload.ts index d7d476900..b7529020f 100644 --- a/interface/src/components/upload/useFileUpload.ts +++ b/interface/src/components/upload/useFileUpload.ts @@ -43,7 +43,7 @@ const useFileUpload = ({ upload }: MediaUploadOptions) => { }); resetUploadingStates(); enqueueSnackbar('Upload successful', { variant: 'success' }); - } catch (error: any) { + } catch (error: unknown) { if (axios.isCancel(error)) { enqueueSnackbar('Upload aborted', { variant: 'warning' }); } else { diff --git a/interface/src/contexts/authentication/Authentication.tsx b/interface/src/contexts/authentication/Authentication.tsx index 93f09b77f..9577fbee4 100644 --- a/interface/src/contexts/authentication/Authentication.tsx +++ b/interface/src/contexts/authentication/Authentication.tsx @@ -23,9 +23,9 @@ const Authentication: FC = ({ children }) => { const decodedMe = AuthenticationApi.decodeMeJWT(accessToken); setMe(decodedMe); enqueueSnackbar(`Logged in as ${decodedMe.username}`, { variant: 'success' }); - } catch (error: any) { + } catch (error: unknown) { setMe(undefined); - throw new Error('Failed to parse JWT ' + error.message); + throw new Error('Failed to parse JWT'); } }; @@ -49,7 +49,7 @@ const Authentication: FC = ({ children }) => { await AuthenticationApi.verifyAuthorization(); setMe(AuthenticationApi.decodeMeJWT(accessToken)); setInitialized(true); - } catch (error: any) { + } catch (error: unknown) { setMe(undefined); setInitialized(true); } diff --git a/interface/src/contexts/features/FeaturesLoader.tsx b/interface/src/contexts/features/FeaturesLoader.tsx index e02c3411c..8f412717c 100644 --- a/interface/src/contexts/features/FeaturesLoader.tsx +++ b/interface/src/contexts/features/FeaturesLoader.tsx @@ -16,7 +16,7 @@ const FeaturesLoader: FC = (props) => { try { const response = await FeaturesApi.readFeatures(); setFeatures(response.data); - } catch (error: any) { + } catch (error: unknown) { setErrorMessage(extractErrorMessage(error, 'Failed to fetch application details.')); } }, []); diff --git a/interface/src/framework/network/WiFiNetworkScanner.tsx b/interface/src/framework/network/WiFiNetworkScanner.tsx index 9f3798f5f..169bc6951 100644 --- a/interface/src/framework/network/WiFiNetworkScanner.tsx +++ b/interface/src/framework/network/WiFiNetworkScanner.tsx @@ -1,13 +1,14 @@ import { useEffect, FC, useState, useCallback, useRef } from 'react'; import { useSnackbar } from 'notistack'; +import { AxiosError } from 'axios'; + import { Button } from '@mui/material'; import PermScanWifiIcon from '@mui/icons-material/PermScanWifi'; import * as NetworkApi from '../../api/network'; import { WiFiNetwork, WiFiNetworkList } from '../../types'; import { ButtonRow, FormLoader, SectionContent } from '../../components'; -import { extractErrorMessage } from '../../utils'; import WiFiNetworkSelector from './WiFiNetworkSelector'; @@ -52,8 +53,12 @@ const WiFiNetworkScanner: FC = () => { newNetworkList.networks.sort(compareNetworks); setNetworkList(newNetworkList); } - } catch (error: any) { - finishedWithError(extractErrorMessage(error, 'Problem listing WiFi networks')); + } catch (error: unknown) { + if (error instanceof AxiosError) { + finishedWithError('Problem listing WiFi networks ' + error.response?.data.message); + } else { + finishedWithError('Problem listing WiFi networks'); + } } }, [finishedWithError]); @@ -64,8 +69,12 @@ const WiFiNetworkScanner: FC = () => { try { await NetworkApi.scanNetworks(); setTimeout(pollNetworkList, POLLING_FREQUENCY); - } catch (error: any) { - finishedWithError(extractErrorMessage(error, 'Problem scanning for WiFi networks')); + } catch (error: unknown) { + if (error instanceof AxiosError) { + finishedWithError('Problem scanning for WiFi networks ' + error.response?.data.message); + } else { + finishedWithError('Problem scanning for WiFi networks'); + } } }, [finishedWithError, pollNetworkList]); diff --git a/interface/src/framework/ntp/NTPStatusForm.tsx b/interface/src/framework/ntp/NTPStatusForm.tsx index 2e0f03957..51182af5f 100644 --- a/interface/src/framework/ntp/NTPStatusForm.tsx +++ b/interface/src/framework/ntp/NTPStatusForm.tsx @@ -86,7 +86,7 @@ const NTPStatusForm: FC = () => { enqueueSnackbar('Time set', { variant: 'success' }); setSettingTime(false); loadData(); - } catch (error: any) { + } catch (error: unknown) { enqueueSnackbar(extractErrorMessage(error, 'Problem updating time'), { variant: 'error' }); } finally { setProcessing(false); diff --git a/interface/src/framework/security/GenerateToken.tsx b/interface/src/framework/security/GenerateToken.tsx index e834b9d26..75296c946 100644 --- a/interface/src/framework/security/GenerateToken.tsx +++ b/interface/src/framework/security/GenerateToken.tsx @@ -33,7 +33,7 @@ const GenerateToken: FC = ({ username, onClose }) => { const getToken = useCallback(async () => { try { setToken((await SecurityApi.generateToken(username)).data); - } catch (error: any) { + } catch (error: unknown) { enqueueSnackbar(extractErrorMessage(error, 'Problem generating token'), { variant: 'error' }); } }, [username, enqueueSnackbar]); diff --git a/interface/src/framework/system/FirmwareFileUpload.tsx b/interface/src/framework/system/FirmwareFileUpload.tsx index 8e5a056f3..a0b212fdf 100644 --- a/interface/src/framework/system/FirmwareFileUpload.tsx +++ b/interface/src/framework/system/FirmwareFileUpload.tsx @@ -21,7 +21,6 @@ const FirmwareFileUpload: FC = ({ uploadFirmware }) => { /> )} { try { await SystemApi.readSystemStatus(POLL_TIMEOUT); document.location.href = '/firmwareUpdated'; - } catch (error: any) { + } catch (error: unknown) { if (new Date().getTime() < timeoutAt.current) { setTimeoutId(setTimeout(poll.current, POLL_INTERVAL)); } else { diff --git a/interface/src/framework/system/SystemLog.tsx b/interface/src/framework/system/SystemLog.tsx index 7878691f8..9d5413aa6 100644 --- a/interface/src/framework/system/SystemLog.tsx +++ b/interface/src/framework/system/SystemLog.tsx @@ -106,7 +106,7 @@ const SystemLog: FC = () => { if (response.status !== 200) { enqueueSnackbar('Problem applying log settings', { variant: 'error' }); } - } catch (error: any) { + } catch (error: unknown) { enqueueSnackbar(extractErrorMessage(error, 'Problem applying log settings'), { variant: 'error' }); } } @@ -158,7 +158,7 @@ const SystemLog: FC = () => { const fetchLog = useCallback(async () => { try { setLogEntries((await SystemApi.readLogEntries()).data); - } catch (error: any) { + } catch (error: unknown) { setErrorMessage(extractErrorMessage(error, 'Failed to fetch log')); } }, []); diff --git a/interface/src/framework/system/SystemStatusForm.tsx b/interface/src/framework/system/SystemStatusForm.tsx index 092ca03ba..62c333fce 100644 --- a/interface/src/framework/system/SystemStatusForm.tsx +++ b/interface/src/framework/system/SystemStatusForm.tsx @@ -81,7 +81,7 @@ const SystemStatusForm: FC = () => { try { await SystemApi.restart(); enqueueSnackbar('EMS-ESP is restarting...', { variant: 'info' }); - } catch (error: any) { + } catch (error: unknown) { enqueueSnackbar(extractErrorMessage(error, 'Problem restarting device'), { variant: 'error' }); } finally { setConfirmRestart(false); @@ -179,7 +179,7 @@ const SystemStatusForm: FC = () => { try { await SystemApi.factoryReset(); enqueueSnackbar('Device has been factory reset and will now restart', { variant: 'info' }); - } catch (error: any) { + } catch (error: unknown) { enqueueSnackbar(extractErrorMessage(error, 'Problem factory resetting the device'), { variant: 'error' }); } finally { setConfirmFactoryReset(false); diff --git a/interface/src/project/HelpInformation.tsx b/interface/src/project/HelpInformation.tsx index 9790071e9..803f30b83 100644 --- a/interface/src/project/HelpInformation.tsx +++ b/interface/src/project/HelpInformation.tsx @@ -48,7 +48,7 @@ const HelpInformation: FC = () => { document.body.removeChild(a); enqueueSnackbar('File downloaded', { variant: 'info' }); } - } catch (error: any) { + } catch (error: unknown) { enqueueSnackbar(extractErrorMessage(error, 'Problem with downloading'), { variant: 'error' }); } }; diff --git a/interface/src/project/SettingsApplication.tsx b/interface/src/project/SettingsApplication.tsx index 2213634ac..0ea86722b 100644 --- a/interface/src/project/SettingsApplication.tsx +++ b/interface/src/project/SettingsApplication.tsx @@ -64,7 +64,7 @@ const SettingsApplication: FC = () => { eth_clock_mode: response.data.eth_clock_mode }); } - } catch (error: any) { + } catch (error: unknown) { enqueueSnackbar(extractErrorMessage(error, 'Problem fetching board profile'), { variant: 'error' }); } finally { setProcessingBoard(false); @@ -103,7 +103,7 @@ const SettingsApplication: FC = () => { try { await EMSESP.restart(); enqueueSnackbar('EMS-ESP is restarting...', { variant: 'info' }); - } catch (error: any) { + } catch (error: unknown) { enqueueSnackbar(extractErrorMessage(error, 'Problem restarting device'), { variant: 'error' }); } }; diff --git a/interface/src/utils/endpoints.ts b/interface/src/utils/endpoints.ts index 86265b0a5..24d88fe1e 100644 --- a/interface/src/utils/endpoints.ts +++ b/interface/src/utils/endpoints.ts @@ -1,4 +1,10 @@ import { AxiosError } from 'axios'; -export const extractErrorMessage = (error: AxiosError, defaultMessage: string) => - (error.response && error.response.data ? error.response.data.message : error.message) || defaultMessage; +export const extractErrorMessage = (error: unknown, defaultMessage: string) => { + if (error instanceof AxiosError) { + return error.response && error.response.data && error?.response?.data?.message; + } else if (error instanceof Error) { + return error.message; + } + return defaultMessage; +}; diff --git a/interface/src/utils/useRest.ts b/interface/src/utils/useRest.ts index ca948d0ec..e889e4521 100644 --- a/interface/src/utils/useRest.ts +++ b/interface/src/utils/useRest.ts @@ -22,7 +22,7 @@ export const useRest = ({ read, update }: RestRequestOptions) => { setErrorMessage(undefined); try { setData((await read()).data); - } catch (error: any) { + } catch (error: unknown) { const message = extractErrorMessage(error, 'Problem loading data'); enqueueSnackbar(message, { variant: 'error' }); setErrorMessage(message); @@ -45,7 +45,7 @@ export const useRest = ({ read, update }: RestRequestOptions) => { } else { enqueueSnackbar('Settings saved', { variant: 'success' }); } - } catch (error: any) { + } catch (error: unknown) { const message = extractErrorMessage(error, 'Problem saving data'); enqueueSnackbar(message, { variant: 'error' }); setErrorMessage(message); From 6241999d2f3c67d8597cc5ea27ba61b14669ce2a Mon Sep 17 00:00:00 2001 From: Proddy Date: Sun, 1 May 2022 15:38:58 +0200 Subject: [PATCH 5/9] more formatting --- interface/src/project/DashboardData.tsx | 18 ++++++++++++------ .../src/project/SettingsCustomization.tsx | 14 ++++++++++---- 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/interface/src/project/DashboardData.tsx b/interface/src/project/DashboardData.tsx index d13f1d0dd..ca52cb24a 100644 --- a/interface/src/project/DashboardData.tsx +++ b/interface/src/project/DashboardData.tsx @@ -197,23 +197,29 @@ const DashboardData: FC = () => { border-top: 1px solid #177ac9; border-bottom: 1px solid #177ac9; color: white; - cursor: 'pointer', } `, BaseCell: ` - padding-left: 8px; + cursor: pointer; border-top: 1px solid transparent; border-right: 1px solid transparent; border-bottom: 1px solid transparent; + padding-left: 16px; + width: 124px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; &:last-of-type { text-align: right; } `, HeaderCell: ` - padding-left: 0px; - &:not(:last-of-type) { - border-right: 1px solid #565656; - } + &:nth-of-type(1) { + padding-left: 8px; + } + &:not(:last-of-type) { + border-right: 1px solid #565656; + } ` }); diff --git a/interface/src/project/SettingsCustomization.tsx b/interface/src/project/SettingsCustomization.tsx index acc3296e9..fd0703a6f 100644 --- a/interface/src/project/SettingsCustomization.tsx +++ b/interface/src/project/SettingsCustomization.tsx @@ -63,6 +63,7 @@ const SettingsCustomization: FC = () => { font-size: 14px; color: white; height: 32px; + min-height: 32px; `, HeaderRow: ` text-transform: uppercase; @@ -103,6 +104,9 @@ const SettingsCustomization: FC = () => { border-top: 1px solid transparent; border-right: 1px solid transparent; border-bottom: 1px solid transparent; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; &:nth-of-type(1) { left: 0px; min-width: 124px; @@ -115,12 +119,14 @@ const SettingsCustomization: FC = () => { } `, HeaderCell: ` - padding-left: 0px; &:nth-of-type(1) { padding-left: 24px; } - &:nth-of-type(3) { - border-left: 1px solid #565656; + &:nth-of-type(2) { + padding-left: 0px; + } + &:not(:last-of-type) { + border-right: 1px solid #565656; } ` }); @@ -429,7 +435,7 @@ const SettingsCustomization: FC = () => { NAME - VALUE + VALUE From 2c490e414804f05ba5d3bc46fe1636e19d0abfa0 Mon Sep 17 00:00:00 2001 From: Proddy Date: Sun, 1 May 2022 15:43:36 +0200 Subject: [PATCH 6/9] possible fix for #476 --- lib/async-mqtt-client/src/AsyncMqttClient.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/async-mqtt-client/src/AsyncMqttClient.cpp b/lib/async-mqtt-client/src/AsyncMqttClient.cpp index 98f0e5f29..7c0f269e9 100644 --- a/lib/async-mqtt-client/src/AsyncMqttClient.cpp +++ b/lib/async-mqtt-client/src/AsyncMqttClient.cpp @@ -426,7 +426,7 @@ void AsyncMqttClient::_handleQueue() { (void)realSent; _client.send(); _lastClientActivity = millis(); - _lastPingRequestTime = 0; + // _lastPingRequestTime = 0; // https://github.com/marvinroger/async-mqtt-client/issues/281#issuecomment-1112897839 #if ASYNC_TCP_SSL_ENABLED log_i("snd #%u: (tls: %u) %u/%u", _head->packetType(), realSent, _sent, _head->size()); #else From 7fe2b843e65baa566b15ac062b91269a490c40ac Mon Sep 17 00:00:00 2001 From: Proddy Date: Sun, 1 May 2022 15:54:07 +0200 Subject: [PATCH 7/9] b14 --- src/version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/version.h b/src/version.h index 5d3f3a8fe..4b88090e3 100644 --- a/src/version.h +++ b/src/version.h @@ -1 +1 @@ -#define EMSESP_APP_VERSION "3.4.0b13" +#define EMSESP_APP_VERSION "3.4.0b14" From c1a71afd7761bf631a7df439d8c576781aab0328 Mon Sep 17 00:00:00 2001 From: Proddy Date: Sun, 1 May 2022 15:54:49 +0200 Subject: [PATCH 8/9] update ArduinoJson to 6.19.4 --- lib/ArduinoJson/CHANGELOG.md | 8 ++++++++ lib/ArduinoJson/README.md | 4 ++-- .../src/ArduinoJson/Array/ElementProxy.hpp | 4 ++++ .../src/ArduinoJson/Document/JsonDocument.hpp | 17 +++++++---------- .../src/ArduinoJson/Object/MemberProxy.hpp | 4 ++++ .../src/ArduinoJson/Variant/VariantCompare.hpp | 6 +++--- lib/ArduinoJson/src/ArduinoJson/version.hpp | 4 ++-- 7 files changed, 30 insertions(+), 17 deletions(-) diff --git a/lib/ArduinoJson/CHANGELOG.md b/lib/ArduinoJson/CHANGELOG.md index 6a2e8a8d7..78cd12ac3 100644 --- a/lib/ArduinoJson/CHANGELOG.md +++ b/lib/ArduinoJson/CHANGELOG.md @@ -1,6 +1,14 @@ ArduinoJson: change log ======================= +v6.19.4 (2022-04-05) +------- + +* Add `ElementProxy::memoryUsage()` +* Add `MemberProxy::memoryUsage()` (issue #1730) +* Add implicit conversion from `JsonDocument` to `JsonVariant` +* Fix comparisons operators with `const JsonDocument&` + v6.19.3 (2022-03-08) ------- diff --git a/lib/ArduinoJson/README.md b/lib/ArduinoJson/README.md index a4c95cb97..ddf35475a 100644 --- a/lib/ArduinoJson/README.md +++ b/lib/ArduinoJson/README.md @@ -7,8 +7,8 @@ [![Fuzzing Status](https://oss-fuzz-build-logs.storage.googleapis.com/badges/arduinojson.svg)](https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:arduinojson) [![LGTM Grade](https://img.shields.io/lgtm/grade/cpp/github/bblanchon/ArduinoJson?label=quality&logo=lgtm)](https://lgtm.com/projects/g/bblanchon/ArduinoJson/) [![Coveralls branch](https://img.shields.io/coveralls/github/bblanchon/ArduinoJson/6.x?logo=coveralls)](https://coveralls.io/github/bblanchon/ArduinoJson?branch=6.x) -[![Arduino Library Manager](https://img.shields.io/static/v1?label=Arduino&message=v6.19.3&logo=arduino&logoColor=white&color=blue)](https://www.ardu-badge.com/ArduinoJson/6.19.3) -[![PlatformIO Registry](https://badges.registry.platformio.org/packages/bblanchon/library/ArduinoJson.svg?version=6.19.3)](https://registry.platformio.org/packages/libraries/bblanchon/ArduinoJson?version=6.19.3) +[![Arduino Library Manager](https://img.shields.io/static/v1?label=Arduino&message=v6.19.4&logo=arduino&logoColor=white&color=blue)](https://www.ardu-badge.com/ArduinoJson/6.19.4) +[![PlatformIO Registry](https://badges.registry.platformio.org/packages/bblanchon/library/ArduinoJson.svg?version=6.19.4)](https://registry.platformio.org/packages/libraries/bblanchon/ArduinoJson?version=6.19.4) [![GitHub stars](https://img.shields.io/github/stars/bblanchon/ArduinoJson?style=flat&logo=github)](https://github.com/bblanchon/ArduinoJson/stargazers) [![GitHub Sponsors](https://img.shields.io/github/sponsors/bblanchon?logo=github)](https://github.com/sponsors/bblanchon) diff --git a/lib/ArduinoJson/src/ArduinoJson/Array/ElementProxy.hpp b/lib/ArduinoJson/src/ArduinoJson/Array/ElementProxy.hpp index d54de4947..821cfba3c 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Array/ElementProxy.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Array/ElementProxy.hpp @@ -118,6 +118,10 @@ class ElementProxy : public VariantOperators >, return getUpstreamElement().size(); } + FORCE_INLINE size_t memoryUsage() const { + return getUpstreamElement().memoryUsage(); + } + template VariantRef getMember(TNestedKey* key) const { return getUpstreamElement().getMember(key); diff --git a/lib/ArduinoJson/src/ArduinoJson/Document/JsonDocument.hpp b/lib/ArduinoJson/src/ArduinoJson/Document/JsonDocument.hpp index 90e22e798..274cce714 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Document/JsonDocument.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Document/JsonDocument.hpp @@ -14,7 +14,8 @@ namespace ARDUINOJSON_NAMESPACE { -class JsonDocument : public Visitable { +class JsonDocument : public Visitable, + public VariantOperators { public: template typename TVisitor::result_type accept(TVisitor& visitor) const { @@ -295,16 +296,12 @@ class JsonDocument : public Visitable { _data.remove(adaptString(key)); } + FORCE_INLINE operator VariantRef() { + return getVariant(); + } + FORCE_INLINE operator VariantConstRef() const { - return VariantConstRef(&_data); - } - - bool operator==(VariantConstRef rhs) const { - return getVariant() == rhs; - } - - bool operator!=(VariantConstRef rhs) const { - return getVariant() != rhs; + return getVariant(); } protected: diff --git a/lib/ArduinoJson/src/ArduinoJson/Object/MemberProxy.hpp b/lib/ArduinoJson/src/ArduinoJson/Object/MemberProxy.hpp index e8fff4def..9a1bc83fd 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Object/MemberProxy.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Object/MemberProxy.hpp @@ -94,6 +94,10 @@ class MemberProxy : public VariantOperators >, return getUpstreamMember().size(); } + FORCE_INLINE size_t memoryUsage() const { + return getUpstreamMember().memoryUsage(); + } + FORCE_INLINE void remove(size_t index) const { getUpstreamMember().remove(index); } diff --git a/lib/ArduinoJson/src/ArduinoJson/Variant/VariantCompare.hpp b/lib/ArduinoJson/src/ArduinoJson/Variant/VariantCompare.hpp index a71f3e0d0..2f636156b 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Variant/VariantCompare.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Variant/VariantCompare.hpp @@ -131,9 +131,9 @@ struct RawComparer : ComparerBase { template struct Comparer::value>::type> : ComparerBase { - T rhs; + const T *rhs; // TODO: should be a VariantConstRef - explicit Comparer(T value) : rhs(value) {} + explicit Comparer(const T &value) : rhs(&value) {} CompareResult visitArray(const CollectionData &lhs) { ArrayComparer comparer(lhs); @@ -183,7 +183,7 @@ struct Comparer::value>::type> private: template CompareResult accept(TComparer &comparer) { - CompareResult reversedResult = rhs.accept(comparer); + CompareResult reversedResult = rhs->accept(comparer); switch (reversedResult) { case COMPARE_RESULT_GREATER: return COMPARE_RESULT_LESS; diff --git a/lib/ArduinoJson/src/ArduinoJson/version.hpp b/lib/ArduinoJson/src/ArduinoJson/version.hpp index d6a23d4c8..d2de577d5 100644 --- a/lib/ArduinoJson/src/ArduinoJson/version.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/version.hpp @@ -4,7 +4,7 @@ #pragma once -#define ARDUINOJSON_VERSION "6.19.3" +#define ARDUINOJSON_VERSION "6.19.4" #define ARDUINOJSON_VERSION_MAJOR 6 #define ARDUINOJSON_VERSION_MINOR 19 -#define ARDUINOJSON_VERSION_REVISION 3 +#define ARDUINOJSON_VERSION_REVISION 4 From da2c81818e0cd72afcee982141774f4b2a4dcbb5 Mon Sep 17 00:00:00 2001 From: Proddy Date: Sun, 1 May 2022 16:02:48 +0200 Subject: [PATCH 9/9] table formatting --- interface/src/project/DashboardStatus.tsx | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/interface/src/project/DashboardStatus.tsx b/interface/src/project/DashboardStatus.tsx index c04005e6e..347e89163 100644 --- a/interface/src/project/DashboardStatus.tsx +++ b/interface/src/project/DashboardStatus.tsx @@ -124,20 +124,28 @@ const DashboardStatus: FC = () => { border-top: 1px solid transparent; border-right: 1px solid transparent; border-bottom: 1px solid transparent; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; &:nth-of-type(1) { + padding-left: 8px; flex: 1; } &:nth-of-type(2) { + min-width: 15%; + width: 15%; text-align: right; - min-width: 64px; } &:nth-of-type(3) { + min-width: 15%; + width: 15%; text-align: right; - min-width: 64px; } &:last-of-type { + min-width: 15%; + width: 15%; text-align: right; - min-width: 96px; + padding-right: 8px; } ` });